작성
·
64
1
안녕하세요 맛비님 강의 잘 보고있습니다.🙂
[1. 질문 챕터] : lab2 cnn설계 rtl 중 cnn_kernel 부분에 궁금한 점이 있어서 질문드리게됐습니다.
[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂
맛비님 솔루션 코드 부분인데,
acc_idx가 +1 되는건 1cycle이 지나고 아닌가요?
always @(*) begin으로 시작해서 acc_kernel을 0으로 초기화 해주셨고
그 아래줄에 r_mul의 인덱스에 해당하는 부분을 for문으로 loop를 돌면서 acc_kernel의 각 인덱스에 값을 할당하는 걸로 보이는데 clk edge 마다 acc_kernel을 0으로 초기화해주는데 아래 for문이 무슨 의미가 있나 싶어 질문하게되었습니다.
[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.)
================ 다음 내용은 읽어보시고 지우시면 됩니다.=================
질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!
현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)
강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)
이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)
개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..
글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)
서로 예의를 지키며 존중하는 문화를 만들어가요.
질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )
먼저 유사한 질문이 있었는지 검색해보세요.
잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
==================
답변 1
0
안녕하세요 🙂
여쭤보신 내용은 verilog HDL 문법 질문 같아요.
acc_idx가 +1 되는건 1cycle이 지나고 아닌가요?
for loop 의 acc_idx +1 을 보시면,
generate 라는 문법이 사용되었고요. 즉, for loop 의 수만 큼 logic 이 생성됩니다.
Verilog HDL generate 문법을 공부하시면 이해에 도움이 되실꺼에요. acc_idx+1 은 1cycle 과 어떤 연관이 있는지 모르겠네요. (연관이 없다고 생각이 들어요)
always @(*) begin으로 시작해서 acc_kernel을 0으로 초기화 해주셨고
그 아래줄에 r_mul의 인덱스에 해당하는 부분을 for문으로 loop를 돌면서 acc_kernel의 각 인덱스에 값을 할당하는 걸로 보이는데 clk edge 마다 acc_kernel을 0으로 초기화해주는데 아래 for문이 무슨 의미가 있나 싶어 질문하게되었습니다.
always@(*) 구문은 clock 의 edge 와 무관합니다. Combinational Logic 을 기술할 때 사용하는 문법 중 하나에요.
Verilog 문법이라.. 해당 강의에서는 Verilog 를 안다고 가정하고 진행하기 때문에, Verilog 공부를 추천 드려요.
즐공하세요 🙂
빠른 답변 감사드립니다.
다음학기에 가속기설계 과목을 듣을 예정이라 대학교 방학과 동시에 맛비님 첫번째 강의부터 지금 3번째 강의까지 달려왔는데 (verilog자체를 이번 방학에 처음 접했습니다.) 정말 많은 것을 배웠습니다.
공부하면 할수록 더욱 이 분야 공부를 더 하고 싶어졌고 앞으로 포기하지않고 열심히 정진하여 훌륭한 하드웨어 설계자가 되도록 하겠습니다!