-
카테고리
-
세부 분야
반도체
-
해결 여부
미해결
[15] delay valid & data 관련질문
23.08.22 19:57 작성 조회수 396
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가 한 사이클 늦게 밀릴 것이라고 코드해석이 되는데, 아마 당연히 제가 틀렸겠지요..?이 부분이 어떻게 동시에 싱크를 맞춰서 딜레이 되는 건지 궁금합니다. 감사합니다..
![course-thumbnail](https://cdn.inflearn.com/public/courses/326697/cover/c6b237e2-2180-40e2-9a1b-bad14762da82/326697-eng.png?w=240)
설계독학맛비'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번은 궁금하신 부분을 이해하지 못했습니다.
자세히 설명해 주시면 감사하겠습니다.
즐공하세요 :)
![고다휘님의 프로필](https://cdn.inflearn.com/public/main/profile/default_profile.png?w=48)
고다휘
질문자2023.08.23
그 다음 강의 들었더니 딜레이 부분 맛비님께서 실수하신 버그라고 하셔서
제 생각이 맞았구나 싶었는데 아닌가요? 제가 질문드린 부분 정확히 짚으시면서 이 부분으로 인해 한사이클 딜레이가 잘못됐다고 하셨더라구요.
답변 1