인프런 커뮤니티 질문&답변

Taiwan님의 프로필 이미지
Taiwan

작성한 질문수

설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)

[HDL 14장] HW 가속기의 비밀인 Pipeline 을 이해해보자 (실습편)

pipeline 관련 질문입니다.

작성

·

268

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
 
https://drive.google.com/file/d/1bg2zOcgteYXHaAhuwsGsy7zQtwcDCiea/view?usp=sharing
 
 
 
안녕하세요 맛비님. pipe line 복습하다가 pipeline을 사용하지 않으면 clk의 1cycle이 아닌 3cycle 마다 결과값이 한번씩 출력이 되어야하는 것으로 알고 있습니다.
 
flip flop을 단순히 제거하여서 결과값을 도출하였는데 아마 test bench의 @(posedge clk) 마다 i_value 값을 1씩 증가시키는 문법 때문인지 1cycle 마다 결과값이 도출되었습니다.
파이프라인이 test bench의 for 루프 문에 적용된 것인지 DUT의 flip flop에 의해 적용된건지 궁금합니다! 
 
- 아니면 dalay를 주기위해 flip flop을 사용하는 것인가요?

답변 1

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 :)

공지사항 대로 개인이 임의로 수정한 코드는 봐드리고 있지 않구요.

이 문장에서 잘못되었음을 확인했습니다.

f/f 으로 인하여 cycle 이 딜레이 됩니다. 다시 확인 부탁드릴께요. 즐공하세요 :)

안녕하세요 맛비님. pipe line 복습하다가 pipeline을 사용하지 않으면 clk의 1cycle이 아닌 3cycle 마다 결과값이 한번씩 출력이 되어야하는 것으로 알고 있습니다.

 

Taiwan님의 프로필 이미지
Taiwan
질문자

아하 이해됐습니다 감사합니다..

질문 하나만 더 드리겠습니다... 제가 이해한 바로는 결과값이 나오는 주기에서 파이프라인이 더 이득인 것으로 이해하고 있었습니다. 

파이프라인을 쓰지 않았을때 2사이클이 더 값이 빨리나오고 결과값이 1사이클 마다 나오게되면 사용하지 않을때와 비슷한 결과값 효율이지 않나 질문드립니다..

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

이해 감사드립니다 :)

영상에서 pipeline 이론편을 보셨으면 이해가 되실 것 같습니다. (retiming)

예를들어 Combinational Logic 이 10 ns 가 걸린다고 가정하겠습니다.

100 MHz 에 돌릴때는 10ns 의 주기를 갖기 때문에, 10ns 의 로직에서는 Timing Violation 이 없습니다.

하지만 200 MHz 로 Freq 를 2배 올리고 싶습니다.

200 MHz 는 5ns 의 주기로, 10ns 를 1 cycle 처리시 Timing Violation 이 발생합니다.

이 경우 Logic 은 정상 동작하지 않습니다.

이때, F/F 으로 10ns 의 Logic 을 5ns F/F 5ns 로 나눈다고 가정하겠습니다.

이때는 200 MHz 는 Timing Violation 이 아니죠.

 

하고싶은 이야기는, Pipeline 은 중간에 저장 소자가 있다라는 전제하에 성립합니다. (이론편 참고)

현재 여쭤보신 상황은, Pipeline 을 유지하던 F/F 을 없앤다고 해서, Pipeline 이 깨지는 Case 가 아닙니다. 다만 Logic 의 Delay 가 늘어난거죠. "모든 Case 에서 중간의 F/F 을 제거했다고 해서 Pipeline 이 아니다" 가 아닙니다.

 

즉,  F/F 을 제거하면,  Timing Violation 에 의한 Freq 차이가 발생, Performance 가 다른 결과를 만들 수 있습니다.

 

Taiwan님의 프로필 이미지
Taiwan
질문자

아 logic을 계산한 후 다음 posedge clk이 오기까지 기다리는 그 delay가 길어졌다는 말씀이시군요. 감사합니다. 이해 완전히 됐습니다. 

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

적어주신 문장은 옳습니다. :)

추가로 "중간의 F/F 을 없앴다고 해서, Pipeline 이 아니다." 

위 말이 false 임을 이해하셨다면, 성공입니다 ㅎ

즐공하세요 :) 

Taiwan님의 프로필 이미지
Taiwan

작성한 질문수

질문하기