inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

pipeline 관련 질문입니다.

342

Taiwan

작성한 질문수 14

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을 사용하는 것인가요?

임베디드 verilog-hdl fpga

답변 1

0

설계독학맛비

안녕하세요 :)

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

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

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

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

 

0

Taiwan

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

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

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

0

설계독학맛비

이해 감사드립니다 :)

영상에서 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 가 다른 결과를 만들 수 있습니다.

 

0

Taiwan

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

0

설계독학맛비

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

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

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

즐공하세요 :) 

latency 개념 구현

1

126

3

비바도 all os버전

1

91

2

초기화를 reset_n 이 '1'일 때가 아닌 '0' 일 때 실행시키는 이유 질문

1

98

2

다운로드용량

1

82

2

비바도리눅스설치

1

97

2

전체path복사넣기

1

73

2

Vivado 2025.2 리눅스 설치 후 실행 에러와 솔루션 (libxv_commontasks.so)

1

178

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

102

2

./build시, waveform 'divide color' 사용

1

61

2

Latch와 관련하여 (Time borrowing, Latch-based design)

1

145

2

clean 명령어가 안되는데, 따로 저장해줘야 하는지 궁금합니다.

0

73

1

안녕하세요 설치 관련 질문 드립니다.

1

72

3

16장 mealy 설계.

1

80

2

14장 Cycle 관련, Testbench 코드.

1

75

2

21강(16장) 초기값 설정이 적용되는 시점 질문

1

68

1

20강(15장) - 밀리 머신 관련하여 질문 드립니다.

1

76

2

build에러 질문

0

63

2

1장 ./build에서 에러가 나요

1

82

2

FPGA 강의 보드 문의 드립니다.

1

115

2

5장 DFF특성에 대한 질문

1

87

3

vivado linux 사용 이유.

1

150

2

메모리의 형태가 전체설계에 미치는 영향이 궁금합니다.

1

113

2

디스코드 멤버쉽 등업 관련 문제

1

96

2