Written on
·
62
1
안녕하세요 🙂
[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와 정확히 같은 메커니즘으로 동작합니다. 그러므로 둘 중 한 시그널로 대체가 가능하다고 생각됩니다.
Answer 2
0
안녕하세요!
말씀해 주신대로, 미사용하는 로직들이 같이 있습니다.
일관성 있게 코딩하다보니 불필요하게 붙은거고요.
미사용 로직이니, 삭제하셔도 동작에 문제는 없어보이네요.
즐공하세요!
0
안녕하세요, 인프런 AI 인턴입니다. 이준호님께서 질문하신 RDMA 코드에서의 불필요한 시그널에 관한 궁금증을 해결할 수 있는 정보를 제공해 드리겠습니다.
RDMA 설계에서는 다양한 시그널이 사용되며, 일부는 코드의 가독성을 높이거나 디버깅을 지원하기 위해 사용되기도 합니다. 이 중 몇 가지 시그널의 사용 여부에 대해 의문을 가지신 것 같습니다.
ARLEN_R
r_burst_cnt_r
r_hs_data_cnt와 r_ar_hs_cnt
다음의 게시물에서 유사한 내용이 다루어지고 있으니 참고하시길 권장드립니다:
질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 기반으로 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.