묻고 답해요
156만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
레지스터 값 쓰기 오류 관련 질문
바쁘신중 수고많으십니다. zybo z7-10으로 현 강의를 수강중인 학생입니다.지금껏 강의를 따라오면서 이상이 없었는데, 실제로 따라하는 과정에서 레지스터에 값을 쓰는 동작이 잘 되지 않아 질문드립니다.우선, 강의 내용을 여러번 돌려보며 제가 놓친 부분이 없는지 파악하였고, 사용된 코드 역시 맛비님이 제공해주신 파일로 모두 복사해서 사용했습니다.그럼에도, 레지스터에 쓰는 동작에 약간 문제가 있는것 같습니다.. vivado와 vitis 양쪽 모두 문제가 발생하지 않았는데, fpga에 c파일을 올리고 나서 입력으로 값을 넣어주면 led가 점멸하지않고 steady하게 켜져있는...문제가 발생하고있습니다(값을 넣지 않으면 스위치를 켜도 점등하지 않음) 다른 예시로, 제가 본 강의를 응용해보고자 레지스터 10개에 값을 입력하는 실습을 진행하였는데 이때는 0~2번째 레지스터에만 값이 정상적으로 입력되고 3번째에는 '1', 4~8번은 '0', 9번은 쓰레기값이 저장되는 것을 확인했습니다. 혹시 FPGA의 불량일까요? 혹은, 값을 입력하는 data = Xil_In32()쪽을 수정하면 해결될지, 맛비님 생각은 어떠실까 여쭤봅니다.. =================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
WSL기반 vivado설치를 D드라이브에 설치
유튜브에 올라온 vivado2022.2설치를 보면서 따라하던 과정에서, 제가 우분투, mobaxterm, vivado가 설치되는 리눅스 환경까지 C드라이브가 아닌 D드라이브에 설치를 하고 싶습니다. 리눅스 환경은 C드라이브에서만 가능한가요? D드라이브의 용량만 사용할 수는 없는 건가요? wsl을 microsoft store에서 다운을 받으니, 설정에서 의도적으로 새로 설치되는 앱을 D드라이브로 향하도록 설정하였습니다. 그렇고 나서 D드라이브에 WindowsApps라는 파일이 자동으로 생성되었습니다. 그 상태에서 wsl을 microsoft store에서 다운을 받고 실행했을 땐 정상적으로 작동했습니다. 하지만 저는 정확히 wsl(ubuntu)가 정확히 어디에 설치되었는지 의심이 되었고, 찾아보던 중 앱의 위치를 바꾸는 방법이 있었습니다. 그래서 이것을 따라 우분투를 D드라이브로 이동을 시켜보았습니다. 최종적으로 다시 ubuntu를 실행해 보니 "파일을 찾을 수 없다고" 나왔습니다.C드라이브 용량을 사용하지 않고, D드라이브에 리눅스 포함 vivado 모든 파일을 저장하는 것이 가능한가요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
윈도우에서 리눅스 환경 처럼 Build 하기
안녕하세요 맛비님의 2가지 강의를 모두 수강했는데요 복습을 하던 중 문득 제가 만든 모듈의 웨이브폼을 간단하게 확인하고 싶어서 질문 드렸습니다 윈도우 환경에서 리눅스에서 하던 것 처럼 간단하게 cmd 창에서 build 를 통해서 tb와 모듈을 빌드하고 웨이브폼을 관찰할 수 있는 방법이 있을까요..?이제 막 공부하고 있는 초보 개발자입니다 ㅠ 시간 되실때 질문 받아주시면 감사하겠습니다
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
XSA 파일 생성 관련 문의
강의 내용과는 무관할 수 있습니다. 혹시 Vitis 및 Vivado를 사용하시면서 경험해보셨을까 싶어서 문의드립니다.OS: Windows10, Windows 11, Ubuntu 20.04Vitis 2021.2 (윈도우용), Vivado 2021.2.1 (윈도우용)Vitis 2021.2 (리눅스용), Vivado 2021.2.1 (리눅스용)보드 디자인 내에 MPSoC 블록 1개, Bram cotrol 블록 총 72개, AXI interconnector 2개 등으로 구성되어 있고, MPSoc의 FPD에서 AXI interconnec로 연결 후 AXI Interconnector에 bram control이 연결되는 구조입니다.입력에서 메모리에 저장되는 경로가 2개일 때(Bram control 70개)까지는 bitstream 생성 및 XSA생성, Vitis에서 플랫폼 생성이 드라이버 생성 등이 모두 정상이었습니다.경로가 2개에서 4개로 늘려면 Bram control은 72개까지 사용까지 늘어난 상태에서 bitstream도 잘 생성되었고, XSA 파일도 만들었습니다.Vitis에서 XSA파일을 읽어와 플랫폼을 만들고 확인해보면, PS영역(MPSoC 설정)의 Address 범위는 확인이 되는데, PL영역(Bram control)의 address는 보이지 않습니다. PS영역은 driver가 생성이 되었는데, PL영역의 driver가 생성되지 않습니다.윈도우10, 11, 우분투에서 진행해 봤는데 모두 동일한 증상을 보입니다.혹시 이런 경험이 있으신지요?강의와 무관한 내용이지만 혹시 경험이 있으시다면 답변 부탁 드리겠습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
13분 30분 정도 부터의 맛비의 버그2 부분 질문 드립니다.
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================CNT_BIT를 31비트로 설정하신 이유가 있으신지가 궁금합니다. 만약 4096을 사용해야한다면 13비트면 충분한데 31비트로 설정할 경우 비트를 과투자하게 되는게 아닌지 궁금합니다. 그리고 0x00~0xFFF 까지의 4096의 depth를 사용하기 때문에 12bit도 충분하지 않은가 생각했었는데 0~4095가 아닌 1~4096을 사용하는 이유도 궁금합니다..
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI Verification IP와 실제 PS 연결 후 동작 차이
안녕하세요, 맛비님. 유익한 강의 감사드립니다.Lab 13 memory read/write 실습까지 마치고, 제가 설계한 core로 테스트해보는 중 문제가 생겨 문의 드립니다.우선, register 0~3까지 사용하는 block 이며 0, 1에서 데이터를 받아 core에 넘겨주고, core가 메모리에 어떠한 데이터를 쓴 뒤, 강의처럼 2의 메모리 주소에 있는 데이터를, 3에 넣는 방식으로 설계해보았습니다.이 동작은 AXI Verification IP에서는 의도대로 동작을 하고 있습니다.그러나 이 core를 zynq에 연결하여 bitstream을 작성 후 vitis에서 똑같이 해보려했는데, 제대로 출력되지 않고, 항상 0이 출력됩니다.이렇게 두 결과값이 다를수도 있는 것인가요..?감사합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
BRAM 메모리 공간의 절대 주소 문의
안녕하십니까?이 강의에서 BRAM 영역의 Width와 관계없이,Addr[0], Addr[1]로 표현하셨는데,이 메모리 공간의 실제 주소(절대 주소)가 어떻게 되는지 궁금합니다.예로 0x4000 0000 에 BRAM을 할당 했을때,Addr[0] :Addr[1] :각강의 주소가 어떻게 되나요?Width : 16 or 32일 때 가정해서Width와 관계없이, 무조건 1씩 증가하는 것으로 봐야 하나요?만약 VITIS에서 접근할려고 할 때, 주소를 어떻게 해야 할지 궁금합니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN 연산 모듈 질문입니다.
안녕하세요 맛비님.맛비님께서 3차원 Convolution 연산 모듈을 설계하기 위해서 3개의 계층을 가진 모듈로 설계하셨던 것에 궁금한 게 생겨서 질문드립니다.1차원 연산을 위한 최하위 계층, 그 위의 2차원 연산을 위한 하위 계층, 그 위의 3차원 연산을 위한 Top 계층, 이렇게 세 개의 계층을 나누셨는데,1.한 모듈에서 Register를 많이 추가하여 이 기능을 전부 할 순 없나요? (FSM으로) 즉 하나의 계층을 가진 모듈로 3차원 연산 모듈을 구현할 수는 없는 건가요?2. 이와 같이 할 경우 단점이란 것이 존재할까요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
chapter_2 , build 파일 실행불가...
기존에 이미 작성되어있던 코드를 지우고 제가 영상보면서 연습 차 다시 작성했는데..-_-;저장하고 그 후에 ./build 실행하니 다양한 오류가 뜨더라구요... raineesm@DESKTOP-VLU7A79:~/Matbi_VerilogHDL_Season1/chapter_2$ ./buildWARNING: [XSIM 43-3479] Unable to increase the current process stack size.INFO: [VRFC 10-2263] Analyzing Verilog file "/home/raineesm/Matbi_VerilogHDL_Season1/chapter_2/tb_clock_generator.v" into library workINFO: [VRFC 10-311] analyzing module tb_clock_generatorERROR: [VRFC 10-8414] extra comma in port association list is not allowed [/home/raineesm/Matbi_VerilogHDL_Season1/chapter_2/tb_clock_generator.v:56]ERROR: [VRFC 10-8530] module 'tb_clock_generator' is ignored due to previous errors [/home/raineesm/Matbi_VerilogHDL_Season1/chapter_2/tb_clock_generator.v:21]Vivado Simulator v2022.2Copyright 1986-1999, 2001-2022 Xilinx, Inc. All Rights Reserved.Running: /home/raineesm/tools/Xilinx/Vivado/2022.2/bin/unwrapped/lnx64.o/xelab tb_clock_generator -debug wave -s tb_clock_generatorMulti-threading is on. Using 2 slave threads.ERROR: [XSIM 43-3225] Cannot find design unit work.tb_clock_generator 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/tb_clock_generator/xsimk" does not exist
-
해결됨Verilog를 이용한 FPGA 활용 기초
reg 선언 후
reg를 선언 후에 F/F에서 사용하지 않고 내부 IP Block으로 바로 연결되어도 괜찮을까요?
-
해결됨Verilog를 이용한 FPGA 활용 기초
행렬과 관련하여 문의드립니다.
기초가 너무 부족한 학생입니다.reg signed [15:0] data [0:31];16bit 데이터를 32개의 어레이로 선언하는 방식이 이것이 맞는지 궁금합니다.사실 RTL anlysis를 통해서 schematic이 제대로 생성되었는지 확인하였는데, 다음 synthesis 과정에서 constraint wizard로 적절히 파일을 생성해준 다음 synthesis를 진행하였습니다.그런데 error와 warning은 없는데 schematic이나 utilization 정보를 보면 터무니 없는 정보들이 나옵니다.혹시 어떤 부분을 확인하면 도움이 될까요? 저는 개인적으로 어레이 선언한 부분이 잘못된 것인가해서 앞서 질문을 드렸는데 synthesis에서 에러는 안뜨고 전혀 엉뚱한 결과를 내서 디버깅중입니다. ㅜㅜ
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
CNN 알고리즘 + FPGA 연동 방법
맛비님 안녕하세요! 항상 좋은 강의 감사합니다. 다름이 아니라, 질문 사항이 있어 글 남기게 되었습니다.CNN 가속기를 설계한 후 YOLO나 Lesnet과 같은 알고리즘과 접목하여 CNN 객체 인식을 동작하고 싶은 상황입니다. 하단의 프로세스로 진행하는 것을 생각하고 있는데 각 단계별 가능여부가 궁금합니다. 1) XIlinx 상에서 CNN 알고리즘 library를 import한다-> (vitis AI 라이브러리가 있으나, 이를 지원하는 보드가 한정적이라, 해당 라이브러리가 아닌 다른 라이브러리 혹은 tool이 있는지 궁금합니다)2) 알고리즘에서 CNN 연산 가속기 부분만 따로 가져와 연산을 돌린 후 Vitis 상에서 입력 받는다-> 이러한 구상이 적용 가능한지 궁금합니다. 편하실 때 답변 부탁드리겠습니다. 감사합니다.
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
bashrc 경로 설정
제가 복습하며 공부하다가 실수로 파일을 몇개 지워서 일부를 복구했고 .bashrc를 다시 설정하려는데 어떤 것이 문제인지 도저히 모르겠습니다.위와 같이 source를 직접 설정해주고 하면 실행은 됩니다.위 사진은 .bashrc 에디터로 들어와 source 경로를 설정하였습니다. home의 상위 디렉토리에 mnt/d드라이브를 설치하였기 때문에 위와 같이 디렉토리를 설정하였습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
RTL analysis와 관련해서....
강의와는 조금 벗어난 질문이라 드리기가 조심스럽지만, 디버깅 과정에서 너무 답답하여 맛비님께 질문드립니다.RTL anlysis를 통해서 schematic이 제대로 생성되었는지 확인하였는데,다음 synthesis 과정에서 constraint wizard로 적절히 파일을 생성해준 다음 synthesis를 진행하였습니다.그런데 error와 warning은 없는데 schematic이나 utilization 정보를 보면 터무니 없는 정보들이 나옵니다.혹시 어떤 부분을 확인하면 도움이 될까요?제가 vivado 관련 기본 개념들이 너무 없어서 막히는 부분이 많은 것 같습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
강의자료가 다운로드 안됩니다
안녕하세요 강의 보면서 열심히 따라 하고 있습니다.우선 좋은 강의 제공해주셔서 감사합니다다름이 아니라, 강의 자료 다운 받으려고 하니까 .zip 파일 내에 내용이 아무것도 없고 압축 풀기를 진행해도 계속 오류가 발생합니다.One Drive 내에 있는 강의 자료 다시 한번 확인해주실 수 있을까요??
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
ILA 생성 관련 문의
단순한 LED/SWITCH 입력 예제를 작성해서 ILA를 추가해 보고자 했습니다. 그런데, Bitstream 생성 후 Program Device를 하고 ILA 활성화가 되지 않네요.아래와 같은 경고메시지가 나오며, Resolution: 1. Make sure the clock connected to the debug hub (dbg_hub) core is a free running clock and is active. 2. Make sure the BSCAN_SWITCH_USER_MASK device property in Vivado Hardware Manager reflects the user scan chain setting in the design and refresh the device. To determine the user scan chain setting in the design, open the implemented design and use 'get_property C_USER_SCAN_CHAIN [get_debug_cores dbg_hub]'. For more details on setting the scan chain property, consult the Vivado Debug and Programming User Guide (UG908). Program Device 창에는 There are no debug cores 와 같은 상태 메시지가 표시됩니다.구글링 결과https://support.xilinx.com/s/article/64764?language=en_US와 같은 내용이 나오는데, 혹시나 어떻게 조치를 해야 할까요?VIVADO 2021.2 사용중입니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
다른 보드 및 강의자료
나중에 2편도 살 예정인데 현재 보드는 basys3로 하고있습니다. 제가 초보자이고 학생이라 다른 보드는 구입하는게 무리입니다. 이 보드로 쭉 진행해도 괜찮을까요 ? 또한 강의자료 ppt는 따로 못구하나요 ?
-
해결됨Verilog FPGA Program 1 (Arty A7-35T)
SPI Master 부분 질문입니다.
안녕하세요 좋은 자료로 많은 공부를 하고있습니다.제가 초보라 초보적인 질문임을 용서해주세요강의자료 45/98 SPI Master -4 부분을 보면125 LINES: SCK_CNT==FRQ ? 1'B0:SCK_CNT+1'B1;133 LINES: SCK_CNT==10'B0 > SCK_INDEX+1'B1:SCK_INDEX;라고 되어있는데요 강사님께서 의도하시는 바는 SCK_CNT==FREQ 에서 0을 만들고 동시에 SCK_CNT ==0이 되니까 SCK_INDEX 값을 하나 증가 시키고 싶은건 알겠는데요.두 해당 블럭이 각기 ALWAYS 문 안에 있어서 f/f이면 클락이 있을때 동시에 두 블럭이 동작하면 아래 130-134 LINES의 블럭은 SCK_CNT ==0이 되기 전에 벌써 판단을 함으로 SCK_INDEX +1 동작이 한 클락 뒤에 이루어 지는게 아닌가요? 원래는 동시에 이루어 지고 싶은 의도이나...동일한 질문 선상에서라인 141을 보시면 S_READY & READY_CNT==10'D0을 비교하는데요 이도 마찬가지로 의도는 S_READY 상태가 되면 0을 출력하겠다는 의도로 해석됩니다. 그런데 112 라인에서 더 빠르게 동작하여 READY_CNT값이 먼저 1이 증가하면 141 라인은 동작이 불가한거 아닌가 하는 복잡한 생각이 들어 혼란스럽습니다저런 문제는 걱정 안해도 되는 것인지 궁금합니다. 실제 로직을 구현하고 클락이 빨라지면 문제가 될 것 같기도 한데 혹시 저런것도 다 염두해 두고 로직을 설계해야하는것인지 FPGA를 시작하는 아기로써 겁먹고 문의드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 파일이 실행이 안돼요...
우선 맛비실습압축파일을 제 사용자 파일에다 복사하고 unzip실행을 했는데 안되더라구요;그래서 아예 explorer.exe 명령어 실행해서 어거지로 클릭해가면서 파일 압축 풀었고,그런다음에 ./build 파일 실행시키니까 permission denied 되었다고 해서 chmod +x 명령어 해서 실행파일로 설정 한 다음에 다시 또 ./build 하니까 이런 상황이 벌어졌습니다...^0ㅜ.... gcc 는 root 계정에서도 그리고 사용자 계정에서도 sudo apt install gcc 해가면서 설치만 5번 한거 같아요... 어떡해야 좋을까요? (눈물...
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
질문사항
맛비님 안녕하세요 ! 궁금사항이 생겨 글 남기게 되었습니다. NVIDIA의 GPU 같은 경우 '쿠다'라는 소프트웨어 플랫폼을 제가 이용해봤습니다. 수업시간에 설명해주신 inference를 위한 NPU 소프트웨어 플랫폼도 학생이 무료로 이용할 수 있는게 있을까요 ?MNIST 모델에 대해 설명해주실때 0~9까지 표현하기 위해 one-hot label을 10bit를 사용하셨는데, 4 bit를 사용해도 0~9가지 다 표현 가능하지 않나요 ?