안녕하세요 맛비님! 해당 강의의 코드를 보면 [0:0] 이렇게 표현되어 있는 부분들이 있는데 찾아본 결과로는 AXI 규격에서 vector 형식을 사용해야 하기 때문에 벡터임을 표현하기 위해서라고 나옵니다. AXI4 stream 규격에 맞추기 위해 1bit임에도 [0:0] 을 붙여서 벡터로 선언되고 있다고 이해하면 될까요?
안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ================== [1. 질문 챕터] : 38장-2부 RDMA 코드리뷰 [2. 질문 내용] : 맛비님의 강의와 코드를 토대로 제 스타일의 DMA 코드를 구성해보고 있습니다. 그러던 중, RDMA.v의 코드 중 불필요한 시그널이라고 생각되는 부분이 생겼는데요. 제 지식이 부족한 탓에 필요한 시그널들을 맘대로 없애는 것 아닐까 두려워 질문드립니다. 강의 때 설명해주신 부분인데 제가 듣지 못했던 거라면 정말 죄송합니다... 1) ARLEN_R 해당 시그널은 AR 채널의 FIFO에서 R 채널로 출력되는, R 채널에 버스트 길이를 알려주는 시그널인데요. 버스트의 마지막을 체크하는 로직이 RLAST && r_hs 로 이루어지므로 이 시그널은 코드 내에서 전혀 사용되고 있지 않습니다. 그러므로 AR 채널에서 R 채널에 버스트 길이를 알려주는 행위 자체가 의미가 있는지 의문을 갖게 되었습니다. 어떠한 데이터든 FIFO에 넣어줌으로서 empty_n 시그널만 활성화 시켜줘도 전체 transaction이 끝나지 않았음을 R 채널에 알려줄 수 있지 않을까요? 2) r_burst_cnt_r always @(posedge ap_clk) begin if(ap_rst) begin r_burst_cnt_r <= 'b0; end else if (w_s_idle_r | is_burst_done_r) begin r_burst_cnt_r <= 'b0; end else if (r_hs) begin r_burst_cnt_r <= r_burst_cnt_r + 1'b1; end end 위와 같은 맥락으로 현재 transaction의 현재 버스트 횟수를 알려주는 해당 시그널도 특별히 사용되는 부분이 없습니다. 디버깅을 위한 코드일까요...? 3) r_hs_data_cnt always @(posedge ap_clk) begin if(ap_rst) begin r_hs_data_cnt <= 'b0; end else if (w_s_idle) begin r_hs_data_cnt <= 'b0; end else if (ar_hs) begin r_hs_data_cnt <= r_hs_data_cnt + burst_len_ar; end end always @(posedge ap_clk) begin if(ap_rst) begin r_ar_hs_cnt <= 'b0; end else if (w_s_idle) begin r_ar_hs_cnt <= 'b0; end else if (ar_hs) begin r_ar_hs_cnt <= r_ar_hs_cnt + burst_len_ar; end end 해당 시그널은 위 코드에서 보시다시피 r_ar_hs_cnt와 정확히 같은 메커니즘으로 동작합니다. 그러므로 둘 중 한 시그널로 대체가 가능하다고 생각됩니다.
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 맛비님, 베릴로그1부터 하드웨어 가속기 설계까지 강의 모두 잘 듣었고 다시 복습하며 공부에 큰 도움이 되고 있습니다. 제가 새로운 노트북을 셋업하는 과정에서 비바도를 잘 설치 완료하였고, 17:58부분도 동일하게 zybo 제외 부분은 0으로 off하였는데, 이번에 zybo가 아닌 다른 보드를 사용하려고 보니 vivado board 리스트에 안뜨는 현상이 발생하더라고요. 혹시 비바도 설치를 완료하고 이 config파일을 수정할 수 있는 방법이 있나요?? 알려주시면 감사하겠습니다! github에서 보드 master 폴더 다운 받은 후 board/하단에 board_files를 생성해주고 master/new/보드 관련 파일들 모두 복사 붙여넣기했습니다. explorer.exe로 열어서 paste하니 권한이 필요하다고 떠서 sudo로 복사해주었습니다. 새로 켰다가 다시 실행해도 보드가 안뜨네요,, https://inf.run/7CWXm 이전에 다른 분이 질문하신 거에 대한 답변으로 path 설정해주면 된다고 답변해주셨는데 안되어서 혹시 제가 잘못 진행한 부분이 있는지 알려주시면 도움이 될 것 같습니다. 참고로, 완전 처음 보드를 검색했을 때 뜨다가 갑자기 1초만에 새로고침되면서 사라지고 이후에 아예 안뜨고 있습니다. task-vivado store에는 보드 이름이 있길래 install 해둔 상태입니다. 안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ==================
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
SRAM에 대한 내용에서 SRAM의 write 동작은 다음 cycle에 메모리에 값이 저장되고, read 동작은 다음 cycle이 아닌 해당 cycle에서 바로 읽어온다고 배웠던 것 같은데, SRAM 기본 모델링 코드로 시뮬레이션을 돌렸을 때 read 동작에서 다음 cycle에 dout에 값이 읽히는 걸 볼 수 있었습니다. cs==1 이면 dout에 '다음 cycle'에 값이 뜨는데, 이 동작은 SRAM 이론시간에 배웠던 "read 동작은 해당 사이클에 바로 읽을 수 있다"라는 내용과 다른 점이 무엇인지 궁금합니다. (물론 코드 상으로는 dout<= mem[ad] 로 작성했기때문에 당연히 그 다음 posedge clk에 값이 업데이트되는게 맞지만, SRAM 이론을 배울 때 들은 내용과 헷갈려서 질문 드립니다.)
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
CHAPTER4의 Gate logic 내용에서 XOR 게이트를 설명하실 때 gate로 표현한 논리회로에서는 worst path를 보면 cap이 더 많이 발생하여 speed도 늦고, power소모도 커진다고 하셨고 pmos와 nmos로 나타낸 회로처럼 설계하면 speed, power, area, cost 에서 더 좋은 결과를 낼 수 있다고 하셨는데 이 두 회로의 차이가 무엇인가요? 결국 둘 다 XOR을 나타내는 회로인 것 같은데 무슨 차이가 있는지 궁금합니다.
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
CHAPTER4 의 Gate logic 내용에서 AND게이트가 NAND, NOT을 붙여 6개의 게이트를 쓰게 되고, OR게이트는 OR+NOT게이트를 붙여 6개의 게이트를 쓰게 된다고 말씀하셨습니다. 여기서 6개의 게이트를 쓴다는 것이, MOSFET을 6개 사용한다는 뜻인가요? 만약 그렇다면 MOSFET을 게이트라고 부르는 이유가 궁금합니다.
디지털 회로설계 실무 : Computer Architecture 와 SoC 프로토콜 Digital IP 설계하기
자료 공유해주신 wrapper verilog 코드와 강의 마지막 RTL 합성 결과에서 din[31:0] 이 din[7:0]으로 instantiation 되어있는데 input 크기가 달라서 문제가 되는 것 아닌지 문의 드립니다. module 이름의 64x8로 미루어 볼 때, 과제는 WIDTH=64, DEPTH=8을 가지는 SRAM을 구현하는 것으로 보이는데 그렇다면 공유해주신 코드 `ifdef SIM sram_model #(64, 8) u_sram (clk, cs, we, ad, din, dout); 에서 파라미터를 넘겨주는 값이 (64, 8)이 아니고 (8, 64)가 맞는 것이 아닌지 해서 질문드립니다. 감사합니다.
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 🙂 [1. 질문 챕터] : [HDL 0장] Hello World 프로그램 (맛비 세계에 오신 것을 환영합니다.) 3분 30초경 [2. 질문 내용] : vi, gedit 두 가지방법으로 모두 시도해보았습니다. 기존에 적혀있던 hello matbi's world 를 hello world 로 적은 후, esc -> :wq 했습니다.(vi) 하지만 출력은 계속 기존 메세지로 나오네요. .v 파일에 제가 수정한 내용이 적용이 안된 것 같습니다. vi 내용입니다. 해당 내용 esc -> :wq 후에 finish에는 ; 없는거 수정했습니다. 빌드내용입니다. 아래쪽 보시면 [INFO] hello Matbi's world 가 나오고있네요 [3. 시도했던 내용, 그렇게 생각하는 이유] : vi 입력 후 다른 화면으로 넘어가는데 그 중간 절차가 궁금합니다.
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 🙂 [1. 질문 챕터] : 섹션2. 제공하는 실습파일 및 실행 환경에 대해 알아보아요 (약 2분 경) [2. 질문 내용] : [3. 시도했던 내용, 그렇게 생각하는 이유] : 설치영상(22버전)과 참고하라고 기재하신 https://www.inflearn.com/community/questions/755175/%EC%A0%9C%EA%B0%80-%EB%B3%B4%EB%A0%A4%EA%B3%A0-%EB%A7%8C%EB%93%A0-vivado-2022-02-%EA%B7%B8%EB%A6%AC%EA%B3%A0-ubuntu-22-04-%EC%84%A4%EC%B9%98-%EC%A0%84%EB%B6%80-%EC%B5%9C%EC%8B%A0-%EB%B2%84%EC%A0%84%EC%9C%BC%EB%A1%9C-flow 링크보고 설치했습니다. 그 후에, 해당 강의를 따라가던 도중 ./build 를 실행했는데 사진과 같이 Permission denied 가 발생하네요. 해결법 알려주시면 감사하겠습니다.
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Command 'chomd' not found, did you mean: command 'chmod' from deb coreutils (8.30-3ubuntu2) Try: sudo apt install <deb name> (질문) deb name을 뭘로 해야하는지요? 안녕하세요 🙂 [1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요. [2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂 [3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.================= 질문 내용을 작성해주실 때, 위의 3단계 로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!! 현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ) 강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등) 이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요) 개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등.. 글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.) 서로 예의를 지키며 존중하는 문화를 만들어가요. 질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! ) 먼저 유사한 질문이 있었는지 검색해보세요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. ==================
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Verilog HDL Season 1 (Clock부터 Internal Memory까지) 강좌 에서 섹션 2 실습을 위한 무료 환경 Setup(2강) 4분 55초 쯤 Linux 커널 업데이트 패키지 부분 에서 다운로드가 진행되지 않아서 질문 드렸습니다! 설치 영상에 따르면 프롬프트에서 에러가 나온 뒤에 Windows 기능 켜기/끄기 에서 "Hyper-V", "Linux 용 Windows 하위 시스템", "가상 머신 플랫폼" 을 체크한 뒤에 "x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지" 를 다운로드 받은 후에 재부팅하면 Ubuntu가 정상적으로 작동하였습니다. 하지만 저는 먼저 처음 Ubuntu를 실행했을 때 이렇게 에러 설명 부분에 물음표("?") 모양이 많이 나오고 x64 머신용 최신 WSL2 Linux 커널 업데이트 패키지를 다운로드 할 때에도 이러한 창이 나타납니다. 위 현상은 Windows 기능 켜기/끄기에 3가지 항목 모두 체크한 상태에서 재부팅을 하고 난 뒤에 발생했습니다(가상 머신 플랫폼은 Virtual Machine Platform와 같다고 생각했습니다) 혹시나 제가 잘못 건드린 부분이 있을까하여 컴퓨터를 포맷을 한 뒤에 다시 실행했는데도 똑같았고, Ubuntu를 다른 버전으로 시도해보았으나 모두 똑같은 현상이 발생했습니다. 혹시 제가 어디서 잘못했는지, 놓친 부분이 있는지 알 수 있을까요?