묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
17장 - FSM COUNTER - num_count 관하여
Step.4 num_cnt 캡처 부분에서 클락의 rising edge 일때, i_run이 1인 상태면 제가 표기한 부분에서 num_cnt에 i_num의 값인 100이 입력되어야 할 것 같은데, 이렇게 한 사이클 뒤의 클락에서 num_cnt에 100이 입력되는 이유가 궁금합니다! 125ns 에서는 i_num_cnt의 값이 100으로 천이되고 있는 상태여서 그런걸까요? 마찬가지로 이 부분에서도 클락의 rising edge와 o_done이 만족되면 num_cnt가 0으로 초기화 되어야 한다면표기 드린 부분에서 num_cnt가 0이 되어야 할 것 같은데, 한 사이클 이후에 0으로 초기화 되는 이유가 궁금합니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 오류 sudo apt-get update
sudo apt-get update에서 오류가 납니다! 네트워크 연결 오류같은데... 혹시 해결법을 아시는지요? ㅜㅜ 구글링해서 나오는 방법은 거의 다 시도해봤습니다
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
vivado 설치오류
위 내용을 볼 때 ip 매칭관련 문제 같습니다. 혹시 해결방안 있는 지 여쭤봅니다.
-
해결됨설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
이 강의 수강을 위해 fpga 구입이 필요할까요?
설계독학맛비 지식공유자님, 안녕하세요!인프런 운영 매니저 자미라고 합니다.고객센터 통해서, 예비 수강생의 질문이 들어와 제가 대신 여쭤봅니다. 강의 구매 전으로 아래 내용이 필요한 지 여쭤보셨어요. [ 질문 ]hw가속기 강의를 듣기전에 지금 fpga 구입을 해야하는지 궁금하여 문의 드립니다.학교에서 zynq보드랑 fpga보드가 있는데 ps영역도 사용해야하므로, zynq보드를 사용해야할것같은데 저희가 따로 zybo를 구입해야하는지 궁금합니다. 만약 zynq(zedboard)보드로 이용이 가능한지 혹은 외부소자도 따로 구입을 해야하는지 궁금하여 문의글 남깁니다. 감사합니다.+) 세 개 zynq, zybo arty 세 개 중에 추천해주신다면 감사합니다.이라는 내용에 대해 질문해주셔서, 이 부분에 대해 강사님께서 확인 후 답변 남겨주시면 제가 전달해드리도록 하겠습니다.참고로, 저희가 제공하는 [수강 전 문의하기] 라는 기능을 통한다면 수강생이 바로 질문하실 수 있는데요!이 강의는 그 기능을 제공하고 있지 않아 제가 대신 질문을 통해 남기는 점 양해해 주시길 바랍니다. 😃 항상 좋은 지식 나누어 주셔서 감사드립니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
RDMA 안에 input [31:0] mem; 이 나타내는 값
안녕하세요 🙂 강의 잘 보고 있습니다[1. 질문 챕터] : 38장-2부 6분때[2. 질문 내용] : 표나 이전 강의에서는 input [31:0] mem; 이 최종 주소를 나타낸다고 했는데 강의나 주석에서는 base address를 타나낸다고 하네요. 어느쪽이 맞는 것인가요?🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : 어느쪽이 맞는 것인가요? ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
STOP_WATCH Vitis 에러
안녕하세요 맛비님Season1 프로젝트부분인 STOP_WATCH를 공부하고 있는데 절차대로 모두 하고 vitis에서 build 후 run을 실행하면 다음과 같은 에러가 나오는데 해결을 계속 해보다가 결국 안되서 어떤 부분이 잘못되면 해당 에러가 나올 수 있을지 여쭤봐도 될까요? vivado와 vitis는 2023.2 버전을 사용중이고 해당 보드(Cora-z7)를 다른 사람 컴퓨터로 테스트 해봤을 땐 괜찮았습니다.
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
locked access의 잠금 범위
안녕하세요 🙂좋은 강의 감사드립니다[1. 질문 챕터] : 36강 3:33[2. 질문 내용] : locked access 에서 interconnect 전체를 잠그는 것인가요? 아니면 타겟 slave만 잠그는 것인가요?[3. 시도했던 내용, 그렇게 생각하는 이유] : exclusive access는 slave의 특정 region만 잠그는 것으로 명확하게 이해가 되었습니다. 그런데 locked access 부분에서는 둘 중 어떤 것을 의미하는지를 잘 모르겠습니다. ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
tick에 관련된 질문입니다.
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================질문 챕터 : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 2. 시,분,초 만들기 - Part2질문 always @(posedge clk) begin if(reset) begin r_cnt_val <= {P_COUNT_BIT{1'b0}}; o_tick_gen <= 1'b0; end else if (i_run_en & i_tick) begin if(r_cnt_val == P_INPUT_CNT -1) begin r_cnt_val <= 0; o_tick_gen <= 1'b1; end else begin r_cnt_val <= r_cnt_val + 1'b1; end end else begin o_tick_gen <= 1'b0; end end위 코드에서 else if (i_run_en & i_tick)이 부분의 경우 아래 그림과 같이 set up Time(두번째 사진 1) 에 의해 59 -> 0에서 tick이 1로 전달되는게 아니라 그 다음 posedge clk (두번째 사진 2) 0 -> 1일 때 tick이 1로 전달되는게 맞나요?질문 드린게 맞다면 그냥 negedge에서 확인하면 되는게 아닌지 궁금하여 질문 드립니다.
-
미해결설계독학맛비's 실전 AI HW 설계를 위한 바이블, CNN 연산 완전정복 (Verilog HDL + FPGA 를 이용한 가속기 실습)
혹시 AI 관련 강의도 Zybo Board가 필요한가요?
혹시 AI 관련 강의도 Zybo Board가 필요한가요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 always 관련해서 질문 있습니다
안녕하세요 맛비님강의 잘 듣고 있는 도중에 always 블럭으로 combination logic을 기술하는 경우 제가 명확하게 알고 있는지 궁금합니다. always로 코드를 작성 할 때, 그 안에 내부 변수는 reg로 사용하고, 이 reg변수는 register,latch(보통의 경우 의도하지 않은), combination logic을 만들 때 사용되는 것으로 알고 있습니다. 저는 always 블럭을 사용할 때, 의도하지 않은 latch가 발생하는 것을 완전히 피하고 싶습니다.그래서 코드 작성 스타일을 이렇게 하면 좋을지 궁금합니다. /*output combination 2*/ reg done; //this is not a register, it is just combination logic circuit reg running; //this is not a register, Do not confuse reg idle; //this is not a register, you must not make latch always@(*)begin done = 0; running = 0; idle = 0; case(c_state) S_IDLE : idle = 1; S_RUN : running = 1; S_DONE : done = 1 default : begin done = 0; running = 0; idle = 0; end endcase end default에 그 외적인 정의되지 않은 동작에 대해 처리하도록 작성하거나case문을 시작하기 전에 각각 초기값을 작성해두면 되는 것으로 알고 있습니다. 하지만 이놈의...chatGPT는 초기값도 작성하고 default문을 둘 다 작성 안하면 latch가 발생할 가능성이 있다고 해서... 이 점이 궁금합니다. 사실 위의 코드처럼 작성하면 정말로 latch가 생길 여지가 없어 보입니다만...아시다시피 번거로움이라는 이슈로... 아 그리고 질문이 하나 더 있습니다.fsm_counter부분에서 state로 동작을 제어한다는 개념을 반복해서 공부하고 있습니다. assign o_done = done; assign o_running = running; assign o_idle = idle; reg [31:0] r_cnt_num; //this is register to capture input value always @(posedge clk or negedge reset_n) begin if(!reset_n)begin r_cnt_num <= 0; end else if(i_run) begin r_cnt_num <= i_cnt_num; end else if(o_running) begin r_cnt_num <= r_cnt_num; end else if(o_done) begin r_cnt_num <= 0; end end reg [31:0] r_cnt_core; assign is_done = o_running&&(r_cnt_core == r_cnt_num -1); /*counter core part*/ always@(posedge clk or negedge reset_n) begin if(!reset_n)begin r_cnt_core <=0; end else if(o_idle)begin r_cnt_core<=0; end else if(o_running)begin r_cnt_core <= r_cnt_core + 1; end else if(is_done)begin r_cnt_core <=0; end end 이 부분은 위에 질문 코드 바로 뒤에 이어지는 코드입니다.바로 위의 블럭에서 첫번째 capture register를 기술하는 부분에서run state일 때도 register가 어떻게 동작해야하는지 꼭 기술해야할까요?이 부분은 맛비님 코드에서 작성되어있지는 않던데, 제가 생각하기에는...run state일 때 register의 동작이 어떻게 될지 예상이 안가서 직접 작성해주는게 좋아보이는데..어떻게 생각하시나요? 두번째 always블럭 또한 같은 맥락으로 idle상태일 때 core 내부에 있는 register의 동작도 기술해주는 것이 필수적일까요? 위의 코드는 수업에 다루신 코드를 제가 schematic을 보고 다시 작성한 코드입니다. 저의 질문은 여기까지입니다. 감사합니다.
-
미해결Verilog ZYNQ Program 1 (Zynq mini 7020)
FSBL 관련
Vitis2024.1.0 사용 하고 있고, ZynqMini 7020 으로 공부하고 있습니다. 1, 정상적으로 Boot 이미지를 만들고, 2 ,정상적으로 Flash에 Download 한 것 같습니다.그런데.. 스위치 변경 하여 QSPI 모드로 다시 시작하는데 QSPI Boot로 동작 안되는 것 같습니다. 어디를 봐야 할까요??? vitis에서 zynqmin7020 물리고 jtag mode 에서는 run 또는 debug 동작은 잘 됩니다.
-
미해결디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
QDR에 대한 질문
DDR2에 대한 설명을 해주실 때 QDR이 적용되었다고 설명해주셨는데,SK하이닉스 뉴스룸에서 GDDR DRAM 관련 자료를 찾아보다 GDDR5부터 QDR이 적용되었다고 하는 게시물를 봤습니다.해당 게시물에서는 시스템 클록(CK)과 이를 두 배로 높인 데이터 클록(WCK)을 모두 사용하여 클록 속도를 4배로 높여준다고 설명하고 있습니다.강의에서 설명해주신 페이즈가 다른 클록 2개를 쓰는 QDR과는 조금 다른데 그렇다면 DDR2부터 적용된 QDR과 GDDR5에 적용된 QDR은 용어는 같지만 다른 개념인가요?게시물 링크:https://news.skhynix.co.kr/post/go-beyond-graphics내용: GDDR6의 놀라운 점은 더 있습니다. 바로 고도화된 ‘DDR’입니다. DDR이 클록 한 번에 두 번의 데이터를 내보낸다고 했는데요. GDDR6는 시스템 클록(CK)과 이를 두 배로 높인 데이터 클록(WCK)을 모두 사용하는데, 이 과정에서 클록을 4배로 높여줍니다. ‘쿼드 데이터 레이트(Quad Data Rate·QDR)’ 기술을 이용하는 것이죠. 참고로 QDR는 그래픽 메모리에서 GDDR5부터 적용되기 시작했습니다. 정리하면 GDDR5와 GDDR6의 CK가 1.75Gbps라고 했을 때, GDDR5는 최종 데이터(DQ) 속도가 7Gbps에 그칩니다. 이와 달리 GDDR6의 경우 14Gbps까지 올릴 수 있습니다.
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
TPSRAM 질문있습니다!
SRAM 에서는 Write할 때 입력 data를 넣고 1클럭 뒤에 memory에 저장이되고, Read할 때는 주소를 불러오자마자 바로 Read가 됐던걸 확인할 수 있었는데,질문1) TPSRAM에서의 동작은 wa에 wd를 넣고 1클럭 후에 memory에 write 값이 저장되는 부분은 동일한건가요? 질문2) SRAM에서와 달리 ra에서 rd가 나오기까지 1클럭이 늦게 나오는 이유는 F/F을 하나 거치기 때문인지도 궁금합니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
Window 환경에서 시뮬레이션 진행 시 axi_vip_pkg가 선언되지 않았다고 합니다.
회사 사정상 리눅스 설치가 용이하지 않아서 윈도우 환경에서 하려고 합니다.AXI_VIP 시뮬레이션을 하려고 하는데,AXI_VIP_PKG가 선언되지 않았다는 에러 메시지가 뜨는데요.혹시 윈도우 환경에서 시뮬레이션을 하려면 어떤 선행 작업이 필요할 까요?
-
해결됨설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
테스트 벤치에 질문이 있습니다.
안녕하세요 덕분에 AXI4에 대해 많이 배웠고 또 검증하는데 있어서 많은 경험을 쌓았습니다.40장 영상을 토대로 맛비님께서 알려주신 빌드의 형식이 아닌, block design 형태로 만들어서 좀더 직관성 있게 만들어보고자 시도 중에 있습니다. (차후 다른 커스텀ip를 불러와 파라미터를 block쪽에서 수정 및 재활용)따라서 블럭 디자인은 다음과 같고 최상위 TB의 인스턴스 및 ctrl, m00_axi 경로 수정을 해주었습니다. (사용하지않는 인스턴스 및 wire 삭제)결과적으로 말씀드리면 기존과 동일한 결과값을 보이며 마지막 에러또한 뜨지않아 정상적이라 생각합니다.하지만 Tcl Console 창에서 경고가 대량으로 발생하였는데 아마 Cache Value 문제라 생각됩니다.Warning: [AW_REACTIVE_0] (axi_vip_pkg.\axi_transaction::set_cache ) 1935000 ns : Attempted to send CACHE(0x0000) when SUPPORTS_NARROW is low. According to UG1037,AxCACHE[1] has to be 1 to ensure that any downstream upsizer can fully pack data up to wider widths Time: 1935 us Iteration: 1 Process: /axi_vip_pkg/axi_slv_wr_driver(C_AXI_WDATA_WIDTH=64,C_AXI_RDATA_WIDTH=64,C_AXI_WID_WIDTH=1,C_AXI_RID_WIDTH=1,C_AXI_AWUSER_WIDTH=1,C_AXI_WUSER_WIDTH=1,C_AXI_BUSER_WIDTH=1,C_AXI_ARUSER_WIDTH=1,C_AXI_RUSER_WIDTH=1,C_AXI_SUPPORTS_NARROW=0)::get_and_drive/GET_AND_DRIVE Scope: axi_vip_pkg.\axi_transaction::set_cache File: /tools/Xilinx/Vivado/2023.1/data/xilinx_vip/hdl/axi_vip_pkg.sv Line: 2909올라간 코드에서는 Cache Value는 형식상 있을뿐 사용하지않는걸로 알고있는데혹시 저러한 경고문을 접해본 경험이 있으신가요?터무니없는 질문 봐주셔서 감사합니다..
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
permission denied
안녕하세요 🙂빌드나 클린을 실행할 경우 permission denied가 나옵니다 지금은 명령어 하나하나 마다 chmod +x 명령어를 사용해 허가를 주고있는데 이를 한번에 해결할 수 있는 방법은 없나요?==================
-
해결됨설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
[Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 3
안녕하세요 🙂[1. 질문 챕터] : [Verilog HDL/FPGA 외전1 - 시계만들기] Chapter 3[2. 질문 내용] : 23분 즈음에 3개의 아키텍쳐의 결과를 정리해서 올려주신다고 했는데 결과가 없어서 질문드립니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
build 실행 안되시는 분들 이렇게 해결하시면 됩니다.
CRITICAL WARNING: [Common 17-183] Failed to open handle xvlog.log. Please check access permission of directory '/home/j/Matbi_VerilogHDL_Season1'. You should restart the application from a writable working directory. 이런 경고문 뜨시는 분들은 build 파일이 들어있는 폴더에 접근 권한이 없어서 발생하는 문제인데, " Matbi_VerilogHDL_Season1"이 설치 되어있는 폴더로 가셔서sudo chmod -R 777 Matbi_VerilogHDL_Season1==> "Matbi_VerilogHDL_Season1" 디렉토리 하위 모든 폴더, 실행파일에 대하여 모든 사용자가 접근가능하게 변경하는 명령어이렇게 하시면 xvlog, xelab, xsim 접근이 가능해져서 문제가 해결됩니다... 저처럼 헤매시는 분들 계실까봐 공유해봐요!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
설치 문제
지금 1번째 설치 부분부터 막혔는데 도와주세요우분투 22.04버전, vivado 2022.2 버전으로 다운받아서 했는데다운이 다 됐다가 저런식으로 warn이라고 뜨면서 안되는데 뭐가 문제일까요... 사실 처음에 vivado도 2024.1 버전으로 하다가 저런식으로 똑같이 문제돼서 우분투 완전히 삭제했다가 vivado 2022.2 버전으로 낮추고 다시 한거거든요그리고 강의에서는 20.04로 했는데 22.04로 해도 된다고 해서 그대로 했는데 그게 문제인건가요?설치하는데 시간이 너무 많이 잡아먹혀서 어떻게 해야될지 모르겠네요
-
해결됨디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
Wrapper 사용하는 이유에 대해 궁금합니다.
모듈을 따로 작성하고 따로 인스턴스화 하는 대신 Wrapper을 사용하는 이유는 합성/검증 과정에서 중간에 있는 인스턴스화 코드 부분을 수정하기보다는 맨 윗줄을 `define 부분만 수정하는 것(parameter와 유사한 이유)이 편리해서인가요?