월 59,400원
5개월 할부 시다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
WSL에서 build 실패
안녕하세요 맛비님 :)우분투로 build하려고하니 다음과 같은 에러메세지가 뜨는데 해결방안이 있을까요? 다른 분의 질문글을 참고하여 chmod +x build 명령어를 실행하여도 여전히 build가 되지 않네요 :(*verilog season1 파일로 되돌아가서 빌드를 시도하여도 같은 에러메세지가 뜹니다!
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[lab8] application project 생성에서 문제가 있습니다.
저는 zcu106 보드로 ILA 생성 연습 중에 있습니다. 다만 VITIS에 프로젝트를 올리려할 때, 계속 다음과 같은 문제가 뜨네요. 다른 프로젝트에서도 VITIS에 올리려 할 때 아래 사진과 같은 문제가 발생합니다.구글링해서 XILINX 홈페이지에서 저와 동일한 문제를 찾은 사람의 글을 찾은 결과, IP의 Makefile에서 replace OUTS = .o with OUTS = $(addsuffix .o, $(basename $(wildcard .c))) 과 같은 답변을 확인하고 수정해봤지만, 결과는 동일했습니다.저는 VIVADO와 VITIS 모두 2022.1 버전을 사용하고 있습니다.VITIS LOG View에는 다음과 같은 문구가 적혀있습니다.org.eclipse.cdt.internal.core.settings.model.ExceptionFactory.createCoreException(ExceptionFactory.java:26)org.eclipse.cdt.core.CCorePlugin.mapCProjectOwner(CCorePlugin.java:890)org.eclipse.cdt.core.CCorePlugin$1.run(CCorePlugin.java:945)org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)org.eclipse.cdt.core.CCorePlugin.createCProject(CCorePlugin.java:930)com.xilinx.sdx.sdk.core.gen.AppCreationHandler.createCProject(AppCreationHandler.java:92)com.xilinx.sdx.sdk.core.gen.StandaloneProjectHandler.createCoreApp(StandaloneProjectHandler.java:67)com.xilinx.sdx.sdk.core.gen.AppCreationHandler.createApplication(AppCreationHandler.java:79)com.xilinx.sdx.sdk.core.gen.AppCreationHandler.execute(AppCreationHandler.java:69)com.xilinx.sdx.sdk.core.SdkAppCreationHandler.executeInternal(SdkAppCreationHandler.java:75)org.apache.logging.log4j.core.impl.MutableLogEvent@53c54af916:37:53 ERROR : Failed to create application projectcom.xilinx.sdx.sdk.core.gen.StandaloneProjectHandler.createCoreApp(StandaloneProjectHandler.java:150)com.xilinx.sdx.sdk.core.gen.AppCreationHandler.createApplication(AppCreationHandler.java:79)com.xilinx.sdx.sdk.core.gen.AppCreationHandler.execute(AppCreationHandler.java:69)com.xilinx.sdx.sdk.core.SdkAppCreationHandler.executeInternal(SdkAppCreationHandler.java:75)com.xilinx.sdx.sdk.core.SdkAppCreationHandler.lambda$1(SdkAppCreationHandler.java:67)org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2292)org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2312)com.xilinx.sdx.sdk.core.SdkAppCreationHandler.execute(SdkAppCreationHandler.java:66)com.xilinx.sdx.npw.NewProjectCreationHandler.createApplicationProject(NewProjectCreationHandler.java:237)com.xilinx.sdx.npw.NewProjectCreationHandler.internalExecute(NewProjectCreationHandler.java:385)org.apache.logging.log4j.core.impl.MutableLogEvent@53c54af9
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
zybo z7-20 구매 후 첫 연결해봤습니다.
auto connect를 해도 보드가 안떠서 케이블도 두꺼운 케이블로 바꿔보고 프로그램과 노트북도 껏다 켜봤는데 그대로입니다.. 보드에 연결 후 전원을 키면 빨간불만 들어오는게 아니라 전체 LED가 이쁘게(?) 번갈아가며 깜빡이는데 혹시 이게 문제일까요?
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab12 를 진행하며 질문이 있습니다!
안녕하세요 맛비님. Lab12 를 강의를 듣고, 혼자서 코드를 수정하며 진행중에 있는데 몇가지 질문이 있습니다! (코드 질문은 아닙니다ㅎㅎ) 해당 lab 의 목적은 AXI4-Lite 인터페이스를 이용해서 레지스터에 접근하고, 레지스터의 내용을 통해 BRAM 에 access 하는 과정으로 알고 있습니다.그렇다면 설계하신 myip_v1_0_S00_AXI 모듈 외부에서 AXI4-Lite 를 이용해 0x08 혹은 0x0C 레지스터에 접근하고 해당 레지스터의 output 을 이용해 BRAM 으로 접근하는것이 맞는 동작이 아닐까 싶어서요!AXI4-Lite -> Register -> BRAM 으로 이루어져야 할 것 같은데 현재는 AXI4-Lite ->Register, BRAM 동시접근 형태로 되어 있는 것 같아서 여쭤보고 싶습니다. (예전에 들었을 때 모듈 외부에서 들어오는 신호들은 F/F 으로 한번 latch 해서 사용하는게 타이밍적으로 안전하다... 라는 말도 들었던 것 같아서 그렇습니다...ㅎㅎ)R 채널의 rresp 는 따로 delay 를 주지는 않으신 것으로 봤는데... 현재 코드상에서는 모두 OKAY 를 주기 때문에 따로 문제될 것 같지는 않지만 delay 를 주는게 맞겠죠...?R 채널을 통해 Read 를 수행하실 때 0x0C 에 접근하여 BRAM 내부 데이터를 읽어오는 부분 때문에 무조건적으로 rvalid 에 1cycle delay 를 주신 것을 확인하였습니다. 그런데 만약 0x08 번지같이 BRAM 에 access 하지 않는 address 를 읽어온다면 굳이 rvalid 에 1cycle delay 를 줄 필요가 없겠죠? 해당 부분은 BRAM access 하는 address 이거나, 아닌 케이스로 나누어서 따로 rvalid 를 assign 하면 될까요?
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI Outstanding 링크
안녕하세요.이글루스 블로그가 서비스를 종료해 글을 볼 수가 없어요.찾아보니 작성자가 다른 블로그에 글을 옮겨놓은것 같더라구요. 링크 수정하시면 좋을 것 같아요.https://www.donghyun53.net/ahb-%eb%8c%80%eb%b9%84-axi-%ed%94%84%eb%a1%9c%ed%86%a0%ec%bd%9c%ec%9d%98-%ec%9e%a5%ec%a0%90-%eb%aa%87-%ea%b0%80%ec%a7%80/
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab18,19 질문
안녕하세요 맛비님! 항상 강의 잘 듣고 있습니다. lab18, 19에서 질문이 있습니다! lab18의 tb 코드에서 보면 i_run을 한 clk 주기동안만 켰다가 바로 끄도록 해두셨는데 이렇게 하신 이유가 있을까요? (i_run을 켜두면 이후에 문제가 생긴다든가..)lab19의 main.c 코드에서는 ctrl_reg에 run 신호를 주고 이후에는 손대지 않는 것 같은데 이 부분이 tb와 어떻게 같아지는지 궁금합니다!lab19의 data_mover_bram에서 input으로 i_run을 받을 때 q_b0가 동시에 들어오지 않고, 다음 clk에 o_read가 켜지고 그 다음 clk에 q_b0가 들어오게 되는 이유가 궁금합니다!(tb 시뮬레이션에서 보았습니다)느낌상 bram을 거쳐야 하기 때문에 <<data_mover_bram의 ce가 켜지면서 output으로 나가고 이게 u_bram0에 input으로 들어가면서 bram이 q0를 내보내줄 수 있는.. >> 이런 과정일 것 같은데 이게 두 클락만에 벌어질 수 있는 일인가요,..?? 이게 아니라면 어떤 과정이 있어서 i_run과 q_b0가 두 클락 차이가 나는지 궁금합니다2번 그림에서 o_write가 켜지는 동시에 bram0의 reg의 값을 읽는 게 아니라 o_write가 켜지고 다음 상승 엣지에서 bram0의 0번째 값을 읽는 거 아닌가요? 그런데 왜 addr0_b0(data_mover_bram에서의 cnt 값)가 다음 상승 엣지에서 바로 1이 되는지 궁금합니다. cnt가 1이 됐다는 건 0번째 값을 이미 읽었다는 의미가 아닌가요,,?? 너무 장황하게 쓴 것 같은데 생각의 흐름에서 틀린 부분이 있다면 짚어주시면 감사하겠습니다ㅜㅜ!!!
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
zybo board 내의 dram
안녕하세요 수업에서 제공한 실습들에서는 zybo board 내의 DRAM은 사용하지 않은 것인가요? FPGA 구조에 대해 검색하다가, FPGA board에는 fpga 칩과 메모리인 dram이 포함되어 있다는 것을 보았는데, 실습들에서는 my_ip 내부의 registers와 BRAM들만 사용하는 것 같아서 질문드립니다. 만약 사용하지 않으신 거라면, 그렇게 하신 이유가 따로 있는 건지 궁금합니다. 감사합니다.
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
read response 관련
안녕하세요 fpga 7강 AXI4-Lite의 verilog code를 보다가 질문이 있어 어렇게 올립니다.19분 41초 쯤 read와 관련된 verilog code를 보면 보여지는 AXI-lite의 5개의 channel 과는 다르게 Read response 관련해서 S_AXI_RRESP가 있는 이유가 궁금하며 read response와 관련된 ready/valid handshake가 없고 read에 관련된 handshake 만 있는 이유 또한 궁금합니다.
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
코드 작성 관련 질문
안녕하세요 강의를 잘 듣고 있는 수강생입니다!다름이 아니라 맛비님께서는 강의에 사용하시는 코드를 모두 제공 해 주셔서 해당 코드를 기반으로 강의를 진행하다 보니 제가 직접 RTL 코드를 작성할만한 타이밍이 많이 없더라구요ㅠㅠ (제가 그냥 무지성으로 강의만 듣고 따라하는 것도 있는 것 같습니다...^^;;)강의를 들으며 강의에서 사용하시는 RTL 을 직접 코딩하며 진행 해 보고 싶은데 어떤식으로 하면 될까요...? 제공 해 주시는 타이밍 다이어그램과 블록 다이어그램을 기반으로 혼자 작성 해 보는 방식으로 진행 해 보면 될까요?
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
레지스터 데이터 이동 관련 질문입니다.
안녕하세요, 양질의 강의 늘 감사합니다.다름이 아니고, 9장 강의를 보고 직접 실습해보던 중 다른 질문에서 올라온 것 처럼 vivado에서 GUI상 address가 다르게 표시되는 문제를 겪었습니다. 아래의 사진입니다. 하지만 IP configuration을 다시 만지니 제대로 뜨기도 하여 tool의 error라고 생각하여 넘어갔습니다.하지만 Vitis에서 PL 제어를 할 때 LED가 원하는대로 동작하지 않는 것을 확인했습니다. 그래서 vivado에서 디버거로 레지스터 단위로 주소를 확인해보려고 했습니다 분명 이처럼 base address는 0x43c00000이지만 레지스터에 데이터를 써보아도ARADDR에는 base address가 전혀 반영되지 않고 base address가 0부터 계산되고 있습니다. Xil_Out32의 첫번째 인자에 여러가지 base address를 넣어봐도 reg_num*AXI_DATA_BYTE만 반영되어 0, 4, 8, c .. 이렇게만 주소값으로 들어가네요.. 다음 랩도 주소값을 사용할텐데 진행이 어려울까 걱정됩니다.vivado, vitis 2022.1이고, zybo z7-10입니다. 감사합니다ㅜㅜ
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
synthesis error
안녕하세요 맛비님.노트북 새로 구매후에 vitis 설치부터 다시 해보고있는데,이전 노트북에서는 분명 잘 되었던 bitstream generation이 에러가 뜨면서 안되네요 ㅠㅠ아래는 Log내용입니다...TclStackFree: incorrect freePtr. Call out of sequence? 용량 줄이는 선택옵션으로 설치했는데(Socs 체크) 이게 문제일까요?보드추가 인식까지 완료한상태입니다... 재설치를 한번 해보았는데도 똑같네요 ㅠㅠ 컴퓨터 사양은 ram 16gb, cpu 4.5ghz, sdd 용량도 넉넉하여 사양문제는 아닐듯한데 커뮤니티 히스토리 검색해보아도 유사사례가없네요.. 혹시 이런 경험 있으신가요?
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
안녕하세요! 타이밍 관련 질문입니다
axi_lite ip를 만들고 시뮬레이션을 보던 와중에 궁금증이 생겨 질문합니다.다른 채널의 신호들은 ready/valid handshake를 정확히 지켜서 r/v가 켜진 후 다음 clk edge 에서 신호가 업데이트 되는데 AR 채널만 다른 타이밍에 업데이트 되더라구요!아직 코드를 자세히 리뷰해보지 않았는데 맛비님의 설명도 듣고싶습니다 감사합니다
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
간단한 질문입니다!
Vitis에서 더미파일을 만든 후 FPGA에 비트스트림을 올렸는데, Vivado에서 비트스트림 만들고 바로 올리지 않고 굳이 vitis에서 올렸던 특별한 이유가 있나요?!처음에는 PS에서 공급하는 CLK 주기를 조작하기 위해서라고 생각했는데, 생각해보니 vivado에서 block design 할 때 clk 주기를 이미 줬더라구요..! 궁금합니다 PL영역 안에서 (PS와의 연결 없이) 사용하는 clk의 기본 클락 주파수가 있을텐데, (아마 100Mhz였나요..) 이를 PS와의 연결 없이 조절할 수는 없는건가요?!감사합니다 :)
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
chapter19 코드 질문
안녕하세요 맛비님!우선 항상 강의 잘 듣고 있습니다:)다름이 아니라 chapter 19에서 myip_v1_0_S00_AXI.v 코드에서 질문이 있어 글 남기게 되었습니다.사진 속의 부분처럼 register에 관한 코드가 왜 이렇게 많이 있는지.. 잘 이해가 되지 않습니다.저는 이 코드 파일은 AXI를 정의하는 내용이고, 따라서 mem0_axi_addr에 'h8, 'hc, 그리고 mem1_axi_addr에 'h10, 'h14만 적으면 되기 때문에 저렇게 많이 정의할 필요가 없지 않나 하는 생각이 들었습니다.직접 register에 data를 적는 게 아니라 BRAM에 data를 적기 위한 내용이 아닌가요? 따라서 두 번째 사진 같은 부분의 필요가 잘 이해 되지 않습니다. lab19_main.c에서 보면do{read_data = Xil_In32((XPAR_LAB16_MATBI_0_BASEADDR) + (STATUS_REG*AXI_DATA_BYTE));} while( (read_data & IDLE) != IDLE);에서도 그렇고do{read_data = Xil_In32((XPAR_LAB16_MATBI_0_BASEADDR) + (STATUS_REG*AXI_DATA_BYTE));} while( (read_data & DONE) != DONE );에서도 모두 AXI address에 STATUS_REG*AXI_DATA_BYTE = 4를 넣어줬는데, S00_AXI 파일에서는 address가 'h4일 때에 대해서는 정의된 바가 없는 것 같아서요,S00_AXI 코드 맨 마지막 부분always @(posedge clk) beginif(!reset_n) begin // sync reset_nslv_reg1 <= 32'b0;end else beginslv_reg1[0] <= i_idle;slv_reg1[1] <= i_running;slv_reg1[2] <= r_done;// no use [31:3]endend을 보면 reg1과 연관이 있는 것 같은데 어느 부분을 보고 이걸 알 수 있는 건가요?항상 감사합니다!
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI 관련 질문 2가지
지금까지는 맛비님이 제공해주신 코드를 활용하여 인터페이스를 이해하는데만 집중했습니다.하지만 문득 제가 직접 디자인이 가능할까 싶어 처음 단계부터 시도 해봤는데요. AXI4-LITE IP를 생성하는 것까지는 알겠는데, Verilog 코드로 작성된-myip_v1_0.v-- myip_v1_0_S00_AXI.v이 형태의 템플릿은 어떻게 생성하는지를 모르겠습니다,, 혹시 강의에서 이미 설명해주신 내용이라면 몇 강에서 말씀해주셨는지 알려주시면 감사드리겠습니다. (일단 저는 찾지 못 했습니다,,) 추가로 for ( byte_index = 0; byte_index <= (C_S_AXI_DATA_WIDTH/8)-1; byte_index = byte_index+1 ) if ( S_AXI_WSTRB[byte_index] == 1 ) begin // Respective byte enables are asserted as per write strobes // Slave register 0 slv_reg0[(byte_index*8) +: 8] <= S_AXI_WDATA[(byte_index*8) +: 8]; end여기서 S_AXI_WSTRB 관련해서 궁금한 점이 있습니다.AXI4-LITE IP로 인가된 DATA를 reg에 4byte을 모두 write 하려면, WSTRB가 4'b1111 이어야 하는 것으로 알고 있습니다.하지만 WSTRB에 4'b1111 값을 할당하는 코드를 어디서도 찾질 못 하겠습니다,, HW, SW 모두 찾아봤지만 못 찾았습니다 ,,코드는 잘 작동하고 있고 실습에서도 이상은 없었습니다. WSTRB는 4'b1111이 맞고 제가 코드를 찾지 못 하는 것일 테지요 ,,, 해당 코드가 어디에 있는지 알려주시면 감사드리겠습니다 ! 항상 수고에 감사드립니다.
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[Lab12] 시뮬레이션 결과([0:31]mem [0:511])에 질문있습니다.
안녕하세요 맛비님!Lab12 simulation 결과에 대해 궁금한점이 있습니다.시뮬레이션 결과에서 BRAM의 [31:0] mem[0:511]을 보면 mem[0] 부터 mem[31]까지만 값이 보이고, 이후 mem[32]부터는 값이 보이지 않습니다. 즉 32bit 데이터 32개만 보입니다.BIT크기의 문제인가 싶어서 8bit로 수정한 뒤 시뮬레이션을 돌린결과 128개만 보입니다. 두 경우 모두 bitwidth × memdepth = 1024로 동일한데, axi vip를 사용한 시뮬레이션의 경우 버퍼, 메모리등의 데이터를 보여주는데 개수의 한계가 존재하는건가요? mem[0]부터 mem[511]까지 다 확인하고 싶은데 axi vip 테스트벤치의 코드를 수정하면 가능할까요? 가능하다면 어느 부분을 수정해야하나요!
- 해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 4강] PS 영역에 대해
안녕하세요.강의를 보면서, Processing system에 대해 궁금증이 생겨 질문 드립니다. 일단 저는 Quartus로 Verilog HDL을 조금 배운 학부생 3학년이고, Xilinx Tool은 완전히 처음 접해봅니다. 원래 Vitis HLS에 관심이 생겨서 알아보다 이 강의를 수강하기에 이르렀네요.Vitis에서 C Code를 작성하는 이유가 궁금합니다.Zynq에는 ARM Cortex A9 Processor가 있기 때문에, Vitis에서 C Code를 작성해도 FPGA에 들어갈 수 있는 것인가요? C Code가 Compile되어 ARM Assembly Code가 되고, 그 Assembly Code가 ARM Cortex A9 Processor에서 돌아가는 것인지 궁금합니다.Vitis HLS에서는 C Code가 Logic Gate로?제가 알기로는 Vitis HLS가 C/C++ Code를 Verilog HDL로 바꾸어준다고 이해하고 있는데, 이 이해가 맞나요?그러면, 위에서 말한 것처럼 Vitis에서 작성한 C Code와 Vitis HLS에서 작성한 C Code는 완전히 다른 것인가요? 양질의 강의 감사드립니다.
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 15장] BRAM Data Mover 모듈 설계 질문
안녕하세요 ! 다름이 아니라 초보자 입장에서 문득 햇갈리는 부분이 있어서 질문 남겨드립니다. data mover bram 코드 리뷰를 해주셨는데 해당 코드를 testbench를 포함하여 직접 다 작성한 것인지 아니면 templet 코드를 수정한 것인지 궁금합니다. 항상 친절하고 꼼꼼한 강의 감사합니다 !
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Xilinx Zynq FSBL 방법에 대해서 궁금합니다.
보드로 맛비님 강의도 듣고, 실습 해보던 중에Zynq FSBL(First Stage Bootloader) 방법이 있더라구요.이 방법과 강의에서 사용하는 방법이 어떻게 다른지,Zybo Z7-10 보드로도 가능한 것인지 궁금합니다!
- 미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
빌드/디버깅 시 JTEG 관련 문
안녕하세요.다름이 아니라 혹시 Debug As 나 Run As 실행 시 아래와 같은 에러가 발생 하는 경우에는어떻게 해결해야 하는지 도움을 주실 수 있으실까요? 저는 현재 아래 사진의 ZYBO Z7 보드를 사용하고 있습니다.