작성
·
51
1
안녕하세요 🙂
[HDL 35장 AXI-Stream I/F 실습편] 내용 중 sync_fifo 사용의 이유에 대해서 궁금하여 질문 드립니다.
제 짧은 생각으로는 현재 matbi_gradation.v 에서 sync_fifo를 없애고, 바로 AXI-stream output port로 연결해도 동일하게 동작할거라고 생각하였습니다.
그럼에도 지금은 fifio가 depth 4로 선언이 되어 있습니다.
[질문 1] 혹시 sync_fifo를 굳이 중간에 두는 이유가 무엇인지 궁금합니다.
[질문 2] 현업에서 저런 식으로 output을 내보내기 전에 sync_fifo를 보통 두는 것이 일반적이기 때문이라서 그런 것인지, 맛비님의 의도가 궁금합니다..!!
[질문 3] 또한 만약 sync_fifo를 두는 것이 일반적이라고 하더라도, 그러면 fifo depth를 1 혹은 2로 두어도 충분할거 같은데, 4로 설정하신 특별한 이유가 있는지도 궁금합니다!
항상 좋은 강의 감사드립니다.
답변 1
0
안녕하세요 🙂
sync fifo 를 중간에 두는 이유는 data 의 latency 을 보완하고 pipeline 을 유지하기 위함입니다.
그렇다면 왜 4 냐?
이 질문의 답은 예제 코드에서는 충분히 4로 준거고요. 알고계신대로 depth 값이 1 혹은 2가 충분하다면 그렇게 변경하셔도 되겠습니다. 모든 상황에서 고정으로 숫자를 가져가지는 않아서, 설계자의 생각이 반영된 자유도가 높은 값 선택이라고 생각하시면 되겠습니다.
실제 현업에서도 이런 fifo 의 depth 를 정하는 과정이 존재해요. 초반에 확정지어서 가지는 않습니다.
즐공하세요!