묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 15장] BRAM Data Mover 모듈 설계 질문
안녕하세요 ! 다름이 아니라 초보자 입장에서 문득 햇갈리는 부분이 있어서 질문 남겨드립니다. data mover bram 코드 리뷰를 해주셨는데 해당 코드를 testbench를 포함하여 직접 다 작성한 것인지 아니면 templet 코드를 수정한 것인지 궁금합니다. 항상 친절하고 꼼꼼한 강의 감사합니다 !
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Verilog Module argument에 대해 질문이 있습니다.
안녕하세요.Vivado Xilinx에서 찾을 수 있는 'xilinx_true_dual_port_no_change_2_clock_ram'의 Verilog 코드를 분석하다가 막힌 부분이 있어서 질문을 드립니다.이해가 되지 않는 부분은 모듈의 인자값 addra, addrb의 정의부분입니다.해당코드는 메모리를 정의해주는 코드이기에 메모리의 Depth길이에 따라서 input으로 받는 Address의 길이를 모듈내에 정의된 함수 'clogb2'로 설정합니다.궁금한것은 모듈내부에 정의된 함수로 모듈 인자값을 설정할 수 있는 것이 궁금합니다.무엇보다 본 코드는 Xilinx에서 제공한 것인데, RTL코드를 Block Design 모듈로 불러올때 함수를 사용하는 부분에서 Error가 나옵니다.(단, clogb2(RAM_PEPTH-1)를 다른 숫자로 치환하면 Error는 없음) module xilinx_true_dual_port_no_change_2_clock_ram #( parameter RAM_WIDTH = 18, // Specify RAM data width parameter RAM_DEPTH = 2048, // Specify RAM depth (number of entries) parameter RAM_PERFORMANCE = "HIGH_PERFORMANCE", // Select "HIGH_PERFORMANCE" or "LOW_LATENCY" parameter INIT_FILE = "" // Specify name/location of RAM initialization file if using one (leave blank if not) ) ( input [clogb2(RAM_DEPTH-1)-1:0] addra, // Port A address bus, width determined from RAM_DEPTH input [clogb2(RAM_DEPTH-1)-1:0] addrb, // Port B address bus, width determined from RAM_DEPTH input [RAM_WIDTH-1:0] dina, // Port A RAM input data input [RAM_WIDTH-1:0] dinb, // Port B RAM input data input clka, // Port A clock input clkb, // Port B clock input wea, // Port A write enable input web, // Port B write enable input ena, // Port A RAM Enable, for additional power savings, disable port when not in use input enb, // Port B RAM Enable, for additional power savings, disable port when not in use input rsta, // Port A output reset (does not affect memory contents) input rstb, // Port B output reset (does not affect memory contents) input regcea, // Port A output register enable input regceb, // Port B output register enable output [RAM_WIDTH-1:0] douta, // Port A RAM output data output [RAM_WIDTH-1:0] doutb // Port B RAM output data ); reg [RAM_WIDTH-1:0] BRAM [RAM_DEPTH-1:0]; reg [RAM_WIDTH-1:0] ram_data_a = {RAM_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] ram_data_b = {RAM_WIDTH{1'b0}}; // The following code either initializes the memory values to a specified file or to all zeros to match hardware generate if (INIT_FILE != "") begin: use_init_file initial $readmemh(INIT_FILE, BRAM, 0, RAM_DEPTH-1); end else begin: init_bram_to_zero integer ram_index; initial for (ram_index = 0; ram_index < RAM_DEPTH; ram_index = ram_index + 1) BRAM[ram_index] = {RAM_WIDTH{1'b0}}; end endgenerate always @(posedge clka) if (ena) if (wea) BRAM[addra] <= dina; else ram_data_a <= BRAM[addra]; always @(posedge clkb) if (enb) if (web) BRAM[addrb] <= dinb; else ram_data_b <= BRAM[addrb]; // The following code generates HIGH_PERFORMANCE (use output register) or LOW_LATENCY (no output register) generate if (RAM_PERFORMANCE == "LOW_LATENCY") begin: no_output_register // The following is a 1 clock cycle read latency at the cost of a longer clock-to-out timing assign douta = ram_data_a; assign doutb = ram_data_b; end else begin: output_register // The following is a 2 clock cycle read latency with improve clock-to-out timing reg [RAM_WIDTH-1:0] douta_reg = {RAM_WIDTH{1'b0}}; reg [RAM_WIDTH-1:0] doutb_reg = {RAM_WIDTH{1'b0}}; always @(posedge clka) if (rsta) douta_reg <= {RAM_WIDTH{1'b0}}; else if (regcea) douta_reg <= ram_data_a; always @(posedge clkb) if (rstb) doutb_reg <= {RAM_WIDTH{1'b0}}; else if (regceb) doutb_reg <= ram_data_b; assign douta = douta_reg; assign doutb = doutb_reg; end endgenerate // The following function calculates the address width based on specified RAM depth function integer clogb2; input integer depth; for (clogb2=0; depth>0; clogb2=clogb2+1) depth = depth >> 1; endfunction endmodule
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
Counter를 이용한 LED 제어 실습 관련 문의
안녕하세요.Counter를 이용한 LED 제어 실습 중 마지막 부분에서LED 점등이 되지 않아 문의 드립니다.vitis에서 빌드까지는 성공 하였고,Run As 혹은 Debus As 실행 시 저는 강의노트에서 보이는것 처럼 보드에 점등이 되질 않네요.무엇이 문제인지 모르겠습니다.. Vitis Log를 보니, 에러 메시지는 아래와 같습니다.14:56:28 ERROR : Could not find ARM device on the board for connection 'Local'.Check if the target is in:1. Split JTAG - No operations are possible with ARM DAP.2. Non JTAG bootmode - Bootrom may need time to enable DAP.Please try again.Troubleshooting hints:1. Check whether board is connected to system properly.2. In case of zynq board, check whether Digilent/Xilinx cable switch settings are correct.3. If you are using Xilinx Platform Cable USB, ensure that status LED is green.
-
미해결설계독학맛비'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 보드를 사용하고 있습니다.
-
미해결Verilog FPGA Program 1 (Zynq mini 7020)
Zynq 보드 다운로드 - 32~33 부분 실행이 안됩니다.
Zynq 보드 다운로드 - 32~33 부분을 진행 중 입니다.그런데 아래와 같은 에러메시지가 나오면서 동작하질 않네요.. 저는 현재 Zybo-z7-10 보드를 사용 중입니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI관련 질문이 있습니다
always @(*) begin // Address decoding for reading registers case ( axi_araddr[ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] ) 4'h0 : reg_data_out <= slv_reg0; 4'h1 : reg_data_out <= slv_reg1; 4'h2 : reg_data_out <= slv_reg2; 4'h3 : reg_data_out <= mem0_q1[C_S_AXI_DATA_WIDTH-1:0]; // (lab12) from bram out //4'h3 : reg_data_out <= slv_reg3; 4'h4 : reg_data_out <= slv_reg4; 4'h5 : reg_data_out <= slv_reg5; 4'h6 : reg_data_out <= slv_reg6; 4'h7 : reg_data_out <= slv_reg7; 4'h8 : reg_data_out <= slv_reg8; 4'h9 : reg_data_out <= slv_reg9; 4'ha : reg_data_out <= slv_rega; 4'hb : reg_data_out <= slv_regb; 4'hc : reg_data_out <= slv_regc; 4'hd : reg_data_out <= slv_regd; 4'he : reg_data_out <= slv_rege; 4'hf : reg_data_out <= slv_regf; default : reg_data_out <= 0; endcase end안녕하세요. 맛비님 LAB13 진행하면서 궁금한 점이 생겼습니다.case ( axi_araddr [ADDR_LSB+OPT_MEM_ADDR_BITS:ADDR_LSB] )위 코드에서 ADDR_LSB = 2, 이고 OPT_MEM_ADDR_BITS = 1이기 때문에 다시 작성하게 되면, case ( axi_araddr [ 3 : 2 ] ) 이렇게 간략할 수 있습니다. 이렇게 되면 case 문으로 판단하는 변수는 2개의 Bit이지 않나요 ?? 근데 4bit의 값에 따라 (4'h0~4'hf) case 구문이 진행되면 어떻게 되는건지 잘 모르겠습니다 ,, 또, 0~15까지의 숫자를 2진수로 적었을 때, 아래와 같이 정리할 수 있습니다. 이렇게 됐을 때, axi_araddr [3] , [2] 의 bit를 가져왔을 때,0,1,2,3 = 0 04,5,6,7 = 0 18,9,10,11 = 1 012,13,14,15 = 1 1이렇게 값이 같은 구간이 생기지 않나요 ?? 아직 제가 잘 이해를 하지 못 한 것 같습니다. 조언 부탁드립니다,,, 휴일에도 항상 수고에 감사드립니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI4-Lite WDATA/RDATA 초기화와 관련된 질문이 있습니다!
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================안녕하세요 맛비님 흥미롭고 좋은 강의 잘 보고 있습니다! 복습하고 있는데, 왜 처음 보는 내용처럼 생소한지 큭큭.. 여하튼 제가 복습하면서 이전까지는 그냥 지나갔는데, 오늘 보니 조금 궁금한 사항이 생겨서 이렇게 질문 게시판에 글을 남기게 되었습니다.아래 사진을 확인해보시면, W와 R channel의 Handshake가 발생하기 이전부터 default 값으로 4가 인가되고 있습니다. 그런데 Vitis에서도 따로 초기값을 설정해주지 않은 것 같은데 왜 0이 아닌.. 4가 들어오는지 궁금하여 이렇게 질문글을 작성하게 되었습니다.늘 많이 배우고 있습니다! 유튜브 라방 그리고 HDL season2 기대하겠습니다! 감사합니다 :)
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Verilog HDL Season 2 강의 오픈 일정 관련 문의 입니다!
저는 지금 맛비님의 커리큘럼을 거의 전부 수강 하고 있고,강의를 통해서 정말 많은 도움 받고 있습니다.그래서 설계독학맛비님의 Verilog HDL Season 2 강의 오픈하면 수강 하려고 기다리고 있었는데, 6월 16일에 오픈 하는거 맞나요? ㅎㅎ
-
미해결Verilog를 이용한 FPGA 활용 기초
FPGA MCU Porting
안녕하세요 현재 반도체 설계 업종에 종사하고 있습니다.Full custom 설계를 하다가 이번에 RTL 설계 부서로 이동할 것 같은데 DFT 관련 부서라고 합니다.본 강의가 도움이 많이 되어서 FPGA MCU Porting 을 다음 강의로 들어보려고 하는데 RTL 설계 Flow 를 익히는 관점에서 도움이 될까요?추후에 DDR Controller 까지 들어서 현업에서 도움 받으려고 합니다.그리고 새소식 게시판에 MCU Porting 수강하면 Flash 모듈을 무료로 주신다고 하셨는데 모듈 종류가 뭔지 궁금합니다좋은 강의 감사합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
AXI VIP에 대한 질문입니다.
안녕하세요 맛비님 좋은 강의 항상 감사합니다.!먼저 AXI VIP 관련 질문입니다.AXI VIP를 AXI 내부 Custom IP를 포함한 모듈에 대해서 Slave Register Write에 기반한 Custom IP 동작의 결과를 다시 Read하는 동작도 검증하는데 사용할 수 있나요? AXI4-Lite가 아닌 AXI4-Standard 인터페이스에 대한 동작도 검증 가능한가요?다음으로, AXI4-Lite의 Address, Data Channel의 동작에 대한 질문입니다. 예제에서, Write 동작에 대해서는 Address와 Data에 대한 Handshake가 동시에 발생하고, Read 동작에 대해서는 Address Handshake 이후 Data Handshake가 발생하는데 특별한 차이가 있는지 궁금합니다. 감사합니다. 감사합니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
빌드 권한 문제가 발생 합니다.
안녕하세요.코드리뷰의 강의를 수강 하고 자도 맛비님 처럼 코드를 실횅 시켜보기 위하여설계독학맛비's 실전 Verilog HDL Season 1설치강의를 참고하여 설치를 마치고,matbi@DESKTOP-G0O5LTL:~/Chapter_21_prj_fc_core_sim/HW$ ./build위와 같이 실행해 본 결과-bash: ./build: Permission denied위와 같은 에러가 발생 하면서 빌드가 되지 않습니다.chmod -x buildchmod -x clear위와 같이 하고 나서 빌드를 해도 여전히 권한문제로 인해 실행이 되지 않네요 ㅜㅠ어떻게 해결해야 할까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
코드리뷰편 코드 실행 시 권한 문제
안녕하세요.코드 리뷰편의 코드를 실행 해보기 위해서/Chapter_21_prj_fc_core_sim/HW$ ./build위와 같이 실행 한 결과, ./build: Permission denied와 같은 에러 메시지가 발생 합니다.chmod -x buildchmod -x clean를 하고 난 후에도 권한 문제로 인해 코드 실행이 안되네요 ㅠㅠ어떻게 해결 해야 할까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
Ubuntu 설치 관련 문의
안녕하세요.설계독학맛비's 실전 Verilog HDL Season 1강의를 참고 하여 환경을 설치 하고 있는데,우분투 설치하고 진행 하는 도중 아래와 같은 창이 뜹니다.어떻게 해결해야 하나요?추가로,sudo apt-get update 명령어를 실행시Release file for http://archive.ubuntu.com/ubuntu/dists/focal-updates/InRelease is not valid yet (invalid for another 32min 22s). Updates for this repository will not be applied.위와 같은 에러 메시지가 나오는데, 이건 어떻게 해결 가능 할까요?+++ 일단 위의 이슈들 무시 하고 나머지 과정 진행 한 결과 Vivado 설치 및 실행되는것 까지는 확인 하였습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
코드 실행 관련 문의 드립니다.
=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 안녕하세요.강의 중에 코드리뷰편 마다 코드를 실행해보고, 파형을 분석하는게 나오는데, 제가 verilog 이전 편을 커리큘럼대로 수강 하지 않고, verilog 문법은 어느 정도 알고 있어서 바로 이 수업으로 신청하고, 이 강의를 다 수강 하고 나면 다음 커리큘럼인 '설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)' 까지 수강하려고 합니다. 다름이 아니라, 제가 설계독학맛비's 실전 Verilog HDL Season 1 를 수강하지 않았는데, 해당 강의의 무료로 올려주신, 환경 setup 강의를 들으면 맛비님 처럼 저도 직접 코드를 실행 해 볼 수 있는건가요?
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
reg 뒤에 붙는 signed 표현에 대해서 질문 드려요!
reg 뒤에 signed 를 붙여도 합성 가능한 코드인가요?또 $signed 함수를 사용한 부분도 실제로 합성이 가능한지 궁금합니다...!
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
lab16 빌드 후 2번(DATA Mover BRAM RUN) 실행시 오류
안녕하세요.맛비님이 올려주신 c code 에서는 85번째 줄에서 조건이assert( (0 < data) && (data < MEM_DEPTH));와 같이 나와있어서 4096을 입력하게 되면assertion "(0 < data) && (data < MEM_DEPTH)" failed: file "../src/lab16_main.c", line 85, function: main와 같은 메시지가 나오며 실행이 되지 않습니다. 강의를 보면서 코드를 비교해보았는데,맛비님의 c code에는assert( (0 < data) && (data <= MEM_DEPTH));와 같이 등호가 있어서, 저도 등호를 넣고 다시 실행 해보니, 그렇게 한 경우에는 4096 입력 시 정상 작동 합니다! 올려주신 c code 수정이 필요할 것 같습니다!
-
미해결Verilog FPGA Program 1 (Arty A7-35T)
안녕하세요 fpga_intro_v16 192p에 질문있습니다!
첫번째 질문은 i2c 컨트롤러 설계를 위해 reg8*8 모듈이 필요한 이유가 슬레이브 모듈이 예를들어 온습도센서라 가정하였을때 온도,습도값들을 저장하기 위해서 필요한것인가요? 즉 슬레이브에서 마스터로 보내주는 데이터를 저장하기 위함인가요? 잘모르겠어서 질문드립니다. 항상 수준낮은 질문드려서 죄송합니다.
-
해결됨설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
5장 실습이후 직접 코드를 따로 만들어서 같은 과정을 실행하면 led가 안켜지네요..
현재 사용하는 보드는 Arty z7-10입니다.강의들으면서 실습으로 주신파일들로는 과정을 다 성공했는데왜 코드를 직접 작성하면 led가 안켜질까요.. 코드를 직접 작성하고 강의 영상의 과정을 그대로 따라가면서 진행했는데 이유를 도저히 모르겠습니다...정말 바뀐거 라고는 코드만 직접 작성한거 말고는 모든 과정이 동일하게 진행되었습니다.회로 합성, vitis 구동한 뒤 더미코드 작성해서 빌드하고 launch hardware까지 다 되는데 led만 안켜지네요.. ㅠㅠ 작성한 verilog코드와 xdc파일 같이 첨부합니다.xdc파일의 경우 같은 파일로 배포해주신 코드에 대해서는 동작을 해서 바뀐것이 없습니다.
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[lab10] Vivado 10_fsm_counter_ctrl_project 진행 중 Address Map 관련 문의 입니다
안녕하세요.Lab10 실습 진행 중 강의 영상과 다르게 나오는 부분이 있어서 문의 드립니다.저는 강의 내용과는 다르게, Address Map 그림에서 주소가0x43c_00000x43c1_0000으로 나오지 않고, 0x00x0으로 나오고 있습니다. 그리고 64K 가 아닌, 16B 로 나와있는데, 혹시 원인이 무엇인지,해결방법 알려주시면 감사합니다. 아래에 해당 과정에서 실습한 Diagram, Address Editor, Address Map 사진 첨부 해 드립니다.