묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
HW 가속기로 만드는 법
안녕하세요 맛비님.이번 강의에서 8비트 곱셈 Core 모듈은 SW보다 HW의 수행 시간이 더 느리기 때문에 HW 가속기로써 적합하지 않다고 말씀해주셔서 다음과 같이 질문 두 가지 남깁니다.병렬 처리하는 HW가 더 빠를 것이라고 생각되었는데, 왜 SW의 수행 능력이 더 빨랐던 걸까요?제 생각에는 SW가 처리하기에 너무나도 단순한 곱셈밖에 없었기 때문에(복잡하지 않았기 때문에),Data loading하는 양이 적어 연산하는 양 자체가 작았기 때문에,AXI4가 아닌 AXI4-Lite를 사용함으로써 Data를 1byte씩만 보낼 수 있었기 때문에라고 생각되는데 틀린 부분이나 더 이유가 있을까요?8비트 곱셈 Core 모듈이 HW 가속기로써 작동하게 만들어주려면 어떤 조치를 취하실 것인지 궁금합니다. HW의 연산 시간이 SW의 연산 시간보다 빨라야 HW 가속기로써의 역할을 하는 것이 아니라, Data loading 시간 + HW의 연산 시간 + HW의 결과를 넘기는 시간이 SW의 연산시간보다 빨라야 HW가속기로써 적합한 것인데, 이를 한 문장으로 표현할 수 있을까요? (HW의 수행 시간이 SW의 수행 시간보다 빠르다? 와 같이) 항상 감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
passwd: Authentication token manipulation error
처음 ubuntu를 키고 id를 정하고 엔터를 누르고 password쓰라고 해서 쓰려고 했더니만 아예 글이 써지질 않습니다.그래서 아예 ubuntu를 새로 다시 깔았는데 제목과 같은 오류 메시지만 떠서 검색해본 결과 $ sudo reboot를 쳐봤더니만 그대로 password가 설정되지 않은채로 install 되어 모바엑스텀에서 파일을 깔려고 할때마다 password를 치라고 창이 나오면 그대로 멈춰서 자판이 쳐지질 않아서 도무지 다음 단계로 갈 수가 없습니다. 어떻게 해야 좋을까요?ㅠㅠ
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Vivado, Vitis 설계 내용 수정 후 프로그램 실행
Vivado, Vitis 설계 내용을 수정한 후 보드에 프로그램을 바로 올려서 확인하는 방법이 있는지 궁금합니다. 현재는 Block design을 수정하게 되면 아래 과정을 진행하여 보드에서 동작을 확인합니다. Synthesis, implementation, Generate Bitstream -> xsa file을 추출하여 Vitis에서 다시 Application project를 생성 -> Build Project, Run as hardware 이러한 과정을 모두 거치는 것이 시간이 너무 오래 걸립니다. 혹시 위 과정에서 설계 내용을 수정했을 때 하지 않아도 되는 과정이 있을까요?? 또는 추출한 xsa file을 Application Project를 생성하지 않고 바로 적용시키는 방법이 있을까요??
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
FPGA 9장 Integrated logic analyzer(ILA) / include .h 라이브러리 관련 문의
FPGA 9장 Integrated logic analyzer(ILA) 관련 문의이전 8장 강의에서는 HW IP Core 디버깅을 위해서 ILA를 사용 했었습니다.9장에서는 S00_AXI - M_AXi_GP0 에 대해 따로 ILA ip를 만들지 않고 Wrapper 처리 하였는데,1) AXI interface-PS 디버깅 검증을 위해 항상 필요한것이 아닌가요?2) 함수 include .h라이브러리에서"xil_io.h" 라이브러리에서 Write/Read 기능을 이용하여"xparameters.h"에 있는 라이브러리 Base Address을 이용한 것을 확인하였습니다. include 폴더에는 수많은 라이브러리 .h 파일이 존재하는데, "xil_io.h"에 write/read를 할 수 있는 함수가 있다. / "xparameters.h"에 Base Address에 대한 정보를 사용자가 쓸 수 있다. 각 라이브러리안에 기능들을 확인할 수 있는 문서가 따로 있을까요? 없다면 SW를 구현할때 저 파일을 일일이 다 보면서 사용자가 어떤 함수를 구현할지 결정해야 할까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
시뮬링크 관련 이슈
ERROR: [XSIM 43-3225] Cannot find design unit work.hello_world in library work located at xsim.dir/work.ERROR: Please check the snapshot name which is created during 'xelab',the current snapshot name "xsim.dir/hello_world/xsimk" does not exist 이런 에러가 떠서질문을 검색해보니 gcc가 잘 설치가 안되어 있다길래sudo apt-get updatesudo apt-get install gcc설치했음에도 ./build 가 실행이 안됩니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
노트북에 설치할 용량이 없는데 윈도우 비바도로 그냥 배워도 될까요>
가능할까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Serial 통신이 아예 안되는 것 같습니다,,,
================== 제가 지금 사용하고 있는 보드는 Z7-10 보드입니다.(중고나라에서 구매했습니다. 여담이지만 판매자분도 맛비님 강좌 수강생이더라구요. 현재는 취업 후에 보드가 필요하지 않아 저에게 판매를 한 상태이구요. 문제를 인지 후에 혹여나 판매자분한테 정보를 얻을 수 있을까 싶어서 추가 연락을 취해봤지만, 답장이 없는 상태입니다,,) Vivado 버전은 2022.2와 2020.2 버전 둘 다 사용해봤습니다. 맛비님 블로그에서 보드 마스터 압축 파일을 다운 받고다음 경로에 설치 했습니다. Vivado 프로젝트 경로입니다.Zynq IP 상태입니다. 3. Vitis 프로젝트 경로입니다. 4. Serial port입니다. 5. 바이티스 코드입니다.scanf도 아니고 그냥 바로 출력하도록 만들었는데도터미널에 아무것도 출력되지 않습니다,, 7. 보드 모습입니다.제가 놓친 부분이 있을까요??Z7-10 보드로 강의 듣는 수강생도 꽤 많아 보이지만 저와 같은 문제를 겪은 사람은 없는 것 같아 보입니다,, 중고 보드의 고장 문제일 수도 있을까요?? ㅠㅠ
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
HDL 11장 COUNTER의 관하여 질문이 있습니다.
안녕하세요??output [6:0] o_cnt; 이 부분을 따로 밑에서 assign o_cnt = cnt; 로 선언해주지 않고 output reg[6:0] o_cnt로 선언하여 밑에 적어 놓은 코드와 같이 변경을 해보았습니다. module counter_100(input clk, reset_n,output reg [6:0] o_cnt ); always@(posedge clk or negedge reset_n) beginif(!reset_n) begin o_cnt<= 0;end else if (o_cnt <100 ) begin o_cnt <= o_cnt + 1;endendmodule이런 식으로 설계를 해도 되는 건지 궁금하여 여쭤봅니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
BRAM layency
맛비님 안녕하세요 ! BRAM Ctrl 부분을 복습 도중 질문 사항이 생겨 글남기게 되었습니다. 강의와 다르게 비바도에서 직접 bram ip를 불러와서 테스트 벤치를 작성해보려고 했습니다. 이때 Total Port B Read Latency가 2 clock cycle 이라고 나와있습니다.이 경우에 제가 PORT A에서 DATA를 받아 메모리에 쓰고 B에서 OUTPUT를 통해 출력을 읽는데 2 Clock에 latency가 걸린다고 이해하면 되는지 궁금합니다.(이것의 기준이 PORT A, B 의 clk가 같을때 얘기인지 궁금합니다.)
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN Core 모듈 질문
안녕하세요 맛비님 항상 좋은 강의 잘 듣고 있습니다.질문 두 가지만 드리겠습니다!CNN 연산 모듈의 latency가 4 cycle인데, throughput은 몇인가요? 수업에서 했던 시뮬레이션은 입력 데이터를 여러 번 넣는 과정이 아닌 한 번만 넣고 하나의 결과가 나온 시뮬레이션이지만, 사실 이 모듈은 파이프라인 구조로 되어있는 모듈이기 때문에, 입력데이터를 여러 번 넣는 과정을 진행한다면 throughtput은 1이라고 봐도 무방한가요?기존 CNN 연산 모듈 말고, Winograd convolution 연산을 구현한 모듈로 얼마만큼의 resources(LUT, slices)들이 줄었는지 발전시켜보혀고 하는데 맛비님 생각이 궁금합니다! =================강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Verilog 문법 관련 질문입니다.
안녕하세요! Verilog 문법 관련 질문드립니다.!always @(a, b, sel) begin if (sel) op = a; else op=b;end이런 형태의 Code가 Latch를 유발할 수 있는 Code인가요? if문 혹은 case문에서 조건을 따질 때, x 혹은 z가 condition으로 입력되는 경우 Latch가 생성되지 않도록 합성되는지 궁금합니다. (위 코드에서 op=b가 실행되는지 궁금합니다. )
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
step2에서 설치 오류
vi /root/.Xilinx/install_config.txt 넣으면 강의와 같은 화면이 뜨는게 아니라 저렇게 나옵니다.저 물결이 의미하는게 무엇인가요 ? 그리고 어떻게 하면 해결할수 있을까요...
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
코드 재실행
안녕하세요, 맛비님.Lab 4 Hello world print 진행 중 궁금한 것이 있습니다.Hello world 프린트는 잘 됩니다.그런데 무한루프 while(1) 도는 중에 (terminal에 계속 hello world 출력 중) 소스 코드를 수정하고 다시 re build 를 하여 run하려 할 때 에러가 납니다.혹시 1. 코드가 계속 도는 중에 이렇게 re build를 하면 안되는 것인지 2. 무한루프 도는 중에 중간에 강제로 stop할 방법이 있는지여쭈어봐도 될까요?감사합니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
FPGA 이용한 장치 만들기
안녕하세요.생초짜로서 강의 잘듣고 있습니다.6장에서 Verilog HDL과 등등으로 실제 칩을 제작하는 과정에 대해서 확인했습니다. 칩을 만들면 결국, 고정되어 다른 기능을 가질 수 없기 때문에, FPGA가 나온걸로 알고 있습니다.그러면, 최종적으로 FPGA를 이용한 장치를 만들려면, FPGA칩들을 이용하여 보드형태로 만들어서 사용하는가요? 아니면 여러 교육용 보드를 활용해서 만드는 건가요? 첫번째가 맞을 것 같은데요.. 첫번째라면 이에 대한 자료나 방법등을 배우려면 어찌하나요? 어찌든지, FPGA를 이용한 장치를 만들고 싶은 계획은 있는데, 이래저래 모르는 부분이 많아 질문드렸습니다. 감사합니다.
-
해결됨ARM Cortex-M 프로세서 프로그래밍
프로그램 다운로드가 안됩니다...
강사님 안녕하세요.질문 있습니다.혹시 강사님께서 실습 보드에 따로 파워를 공급해주나요?USB ST-LINK 단자로만 사용하고 있는데 드라이버 업데이트도 다 되어있고(제거 후 설치까지 해봤습니다.) 펌웨어 업데이트도 다 했는데 자꾸 디버그만 누르면Error in final launch sequence:Failed to start GDB serverFailed to start GDB serverjava.lang.NullPointerException 위와 같은 에러 메세지만 출력되고 디버그가 실행되지 않습니다. 무엇이 문제인지 모르겠습니다. 너무 답답하네요.ST-LINK Utility 프로그램으로 연결해보니 잘되는 것을 보아 전원이나 연결 문제는 아닌 것 같습니다.위 log처럼 디버그 configure를 설정해도 같은 문제가 발생하네요. ㅠㅠ
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
강의자료
맛비님 안녕하세요, 실전 HDL Season 1 실습자료 외에 강의자료는 없는지 궁금합니다. 항상 감사합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
용어 정리
안녕하세요 맛비님.이번 강의를 들으면서 수업 관련 개념을 명확하게 하고자 용어 정리를 하고자 합니다!지금까지 해온 것들을 보면,CNN 연산 모듈을 설계했냐? -> 그렇다. input feature map을 input으로 넣어 output feature map을 도출했냐? -> 아니다. kernel의 size만큼 input feature map에서 window 해서 kernel size의 channel input만큼 해당하는 부분을 Convolution 연산하였다. 최종적으로는 output feature map 1포인트의 channel output만큼 해당하는 값을 구했다. 라고 할 수 있을까요? 처음 듣는 사람이 window라는 말을 잘 이해하지 못한다면 어떻게 쉽게 말할 수 있을까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
c code build 오류관련 질문
14장 pipeline 실습편 03:25쯤 내용에서 make를 입력했는데 Command 'make' not found, but can be installed with:sudo apt install make # version 4.2.1-1.2, orsudo apt install make-guile # version 4.2.1-1.2이렇게 나와서 sudo apt install make를 입력했습니다. 그런 다음 다시 해봤더니 이번에는g++ -g -Wall -o test test.cmake: g++: Command not foundmake: *** [Makefile:15: test] Error 127이런 에러가 나왔습니다. 그래서 질문글을 찾아봤는데 du6293님이 저와 비슷한 사례로 글을 남겨주셔서 거기 나와있는 해결책 대로 sudo apt install gcc를 입력했고 이어서 sudo apt install g++도 입력했습니다. 그런데도 똑같이 Error 127이 떴습니다. 보니까 sudo apt install g++하고 나서 맨 밑에 'E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?' 이런 문구가 있더라고요. 이후에 구글 찾아보면서 이것저것 해봤는데 계속 같은 오류만 뜹니다. 이 부분에 관해 아시는 부분이 있다면 도와주시면 감사하겠습니다.추가적으로 'sudo apt install g++' 이렇게 입력하면서 생긴 오류부분 사진으로 첨부했습니다!
-
해결됨ARM Cortex-M 프로세서 프로그래밍
thumb2명령어와 thumb명령어가 섞여있을 때 플래시 메모리 읽기 동작
안녕하세요. 강의 잘 보고 있습니다.강의를 보다 질문이 있어서 글 남깁니다...1. 강사님께서 예로 보여주신 플래시 메모리 내용이 아래처럼 되어 있는데요.0x080001d4 ldr0x080001d6 mov0x080001d8 str0x080001da ldr0x080001dc mov...이 메모리 안에는 현재 Thumb명령어만 있다고 가정한 것으로 이해해도 될까요? Thumb2명령어라면 주소가 2가 아니라 4씩 증가해야할 것 같아서요.2.플래시 메모리의 성능 향상을 위해 버스 크기가 128bit라 하셨습니다. thumb명령어의 경우 8번, thumb2 명령어의 경우 4번의 읽기가 가능하다는 것인데, 만약 이 두 명령어가 섞여있다면 어떻게 되는건가요?0x080001d4 ldr0x080001d6 mov.w0x080001da str.w0x080001de ldr.w0x080001e2 mov.w...이렇게 되어 있다면 총 96bit밖에 읽을 수 없는 것인가요? 3.D-Code는 어떤 역할을 하는 것인가요? 코드 영역에 있는 const 데이터 등을 읽어들일 때 사용하는 버스인가요?그렇다면 명령어랑 데이터랑 플래시메모리 버퍼에 같이 저장될 수도 있는 것인가요?
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Timing constraints 관련 질문
안녕하세요 맛비님강의를 수강중 궁금함이 생겨서 질문 남겨드립니다. [1번 질문]chapter 5강을 수강하던 도중 timing constraint가 생겨 해당 critical path에 ff를 추가하여 문제를 해결하셨습니다.제가 수정 전과 후 코드를 둘 다 implementation 수행하여 utilization report를 확인해 본 결과 다음과 같이 나온 것은 확인하였습니다.<With timing constraints>LUT : 1184LUTRAM : 60FF : 1054BRAM : 8 <Without timing constraints>LUT : 1185LUTRAM : 60FF : 1123BRAM : 8위와 같은 결과를 보고 어떻게 해석해야할지 모르겠습니다. ㅜㅜ예를들어 추가한 플립플롭이 LUT 1개를 사용하고 해당 부분에 register가 69(1123-1054)개사용되는건지.. 아니면 다른 고려해야할 사항이 있는지 궁금합니다. [2번 질문]timing constraints 해결 전 후 퍼포먼스 차이가 거의 없고, latency만 1 증가 했을 뿐 throughput은 동일하다고 말씀하셨습니다. 퍼포먼스 차이가 거의 없다는 말이 [1번 질문] 에서와 같이 하드웨어 자원 사용량이나 power 소비부분에서 크게 차이가 없다는 말인지,혹은 vitis 상에서 보드와 연결해 빌드를 하였을 때 소요되는 시간이나 clock수의 차이가 얼마 안난다는 말인지 구체적으로 모르겠습니다 ㅜㅜ 추가로 latency와 throughput은 이론적으로 잘 이해가 되었습니다. 다만 눈으로 확인할 수 있는 방법이 있는지 궁금합니다 ! [3번 질문]제가 timing constraints가 발생한 버전과, 이를 해결한 버전 모두를 generate bitstream하여 VITIS상에서 보드에 올려 빌드해 보았습니다.실행 전에 가설로는 timing constraints가 발생한 버전에서는 VITIS에서 구동이 되지 않을거라 생각했는데, 예상과 달리 결과값까지 잘 출력되었습니다.여기서 의문점이 생긴 것이 FPGA보드상에서 timing constraints가 존재하는 모듈이 왜 잘 돌아가는지, 해결하지 않을 경우 나중에 어떤 단계에서 무슨 문제가 발생하는지 궁금합니다. [4번 질문]BRAM의 data width = 32bit로 설정하셨는데 특별한 이유가 있는지 궁금합니다. 혹시 axi4_lite가 32bit로 제한 또는 제안되기 때문인가요?또한 실습에서 사용하신 dual port bram의 width 최대 사이즈가 몇인지 어떻게 확인할 수 있을까요!제가 찾아본 바로는여기서는 72 bit인 것 같고..여기서는 range가 최대 4608이라고 나와있어서 뭐가 뭔지 도통 헷갈립니다..ㅠㅠ [마지막 질문]마지막으로 input의 갯수를 4096개로 설정하신 이유가 궁금합니다 !또한 output도 4096개를 만드는게 여러 딥러닝 모델에서 채택하고 있기 때문인가요 ? 항상 꼼곰하고 좋은 강의 올려주셔서 감사합니다 !