-
카테고리
-
세부 분야
반도체
-
해결 여부
미해결
[15] delay valid & data 관련질문
23.08.22 19:57 작성 조회수 392
1
안녕하세요, 질문을 자주드리게되네요..ㅎㅎ 고생해주셔서 감사합니다. data_mover_bram 코드를 작성 중 마지막 부분에서 delay관련 코드가 나오는데요, CORE_DELAY=5기준,
00000->00001->00011->00111->01111->11111
: r_core_delay[4]를 ce_b1에 할당하므로, r_valid가 유지되는 채로 5cycle이 지나 b1에 clock이 인가되기 시작할 것입니다.data를 delay시키는 코드 부분에서,
if (|r_core_delay) r_core_data[0] <=mem_data;
이므로, 1번에 제가 제시한 시퀀스 기준,
r_core_delay=00001이 되고난 그 다음 clock 즉 r_core_delay=00010이 되는 clock에
r_core_data[0]에 mem data가 쓰일 것이라고 생각이되는데, 틀린 생각인가요?만약 그것이 맞다면 이후 ->[1]->[2]->[3]->[4]
와 같이 추가적으로 4cycle, 총 5cycle이 필요한데, r_core_delay 보다 한 사이클 늦게 5cycle이 시작되므로 최종적으로 delay를 미루는 시간보다 data가 한 사이클 늦게 밀릴 것이라고 코드해석이 되는데, 아마 당연히 제가 틀렸겠지요..?이 부분이 어떻게 동시에 싱크를 맞춰서 딜레이 되는 건지 궁금합니다. 감사합니다..
설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
[FPGA 15장] FSM 을 이용한 BRAM Data Mover 모듈 설계 - 코드리뷰편
강의실 바로가기
답변을 작성해보세요.
0
설계독학맛비
지식공유자2023.08.23
안녕하세요 :)
5 cycle 이냐, 4 cycle 이냐. 이런 cycle 의 이슈는 기준을 어디에 보느냐에 따라 서로 다른 답을 할 수 있습니다.
당연히 시뮬레이션은 전달드린 코드 대로 동작합니다.
코드에 대한 타이밍 설명을 물어보시는 거라면, 답변 범위를 최대한 좁혀주셔야 도움이 될 것 같습니다. (사실 가장 답변드리기 난감한 부분이기도 해요. 이 타이밍에 뭐가 어떻게 된다, 이거를 전부 설명드리는건... 제가 답변해드리기 어려울 것 같습니다. 양해부탁드립니다.)
타이밍 sync 관련해서는 전달드린 코드와 waveform 을 참고 부탁드립니다.
1번 같은 경우
1이라는 입력이 계속 들어온다는 가정이면 맞습니다.
2,3번은 궁금하신 부분을 이해하지 못했습니다.
자세히 설명해 주시면 감사하겠습니다.
즐공하세요 :)
고다휘
질문자2023.08.23
그 다음 강의 들었더니 딜레이 부분 맛비님께서 실수하신 버그라고 하셔서
제 생각이 맞았구나 싶었는데 아닌가요? 제가 질문드린 부분 정확히 짚으시면서 이 부분으로 인해 한사이클 딜레이가 잘못됐다고 하셨더라구요.
답변 1