작성
·
244
1
안녕하세요 맛비님!
코드 분석중에 궁금한 점이 있어서 연락드립니다.
Top의 Sync FIFO 부분에 의문점이 생기는데요
m_valid 신호는 WVALID, m_data 는 WDATA로 나가고 m_ready 신호는 WREADY 신호로 리셋이 걸리고 난 이후 1로 박혀있습니다.
그래서 RDMA 는 잘 동작하지만 WDMA의 AW channel에서 특정한 이유로 AWREADY신호를 아주 오랜시간 받지 못하게 된다면 AW channel에서 handshake가 일어나지 않지만 W channel에 handshake는 계속 일어 난다는 가정이 만들어 졌는데요.. 이렇게 되면 오작동하는게 아닌가 싶어서 여쭤봅니다.
답변 1
0
안녕하세요 🙂
AW Channel 과 W Channel 은 독립 채널이고, 스펙상 WVALID & WREADY handshake 이전까지 AW Channel 의 handshake 보다 W Channel 의 Handshake 가 앞서도 됩니다.
하지만 대부분의 시스템은 순서를 AW Channel -> W Channel -> B Channel 순으로 맞춰서 설계가 되어 있고요.
질문자님께서 우려하시는 다음 상황은
AWREADY신호를 아주 오랜시간 받지 못하게 된다면 AW channel에서 handshake가 일어나지 않지만 W channel에 handshake는 계속 일어 난다는 가정이 만들어 졌는데요..
AW Channel 의 Handshake 가 무기한 발생하지 않는 상태에서, W Channel 의 무제한 Handshake 는 시스템상 문제가 있겠죠. 잘못 설계한거에요. AW Channel 의 Handshake 가 발생하지 않으면, W Channel, B Channel 또한 같이 holding 되어야 합니다.
질문자님께서 우려하신 상황이 제가 드린 코드에서 재현이 된다면 리포팅 해주시면 감사하겠습니다.
즐공하세요 :)