inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

모듈과 always블록의 관계(?)에 대한 질문입니다.

해결된 질문

341

김민호

작성한 질문수 3

1

안녕하세요, 맛비님.

강의 영상을 통해 항상 많은 배움을 얻는 중입니다. 감사합니다.

 

파이프라인 실습편 강의의 Q&A를 읽다가 질문이 하나 생겼습니다.

해당 질문의 답변중에 모듈간의 handshake를 통해 timing을 맞춘다고 답변을 해주신 게 있습니다.

모듈간에 handshake가 필요한 건 이해하였습니다.

제가 궁금한 건, 만약 모듈들을 한 모듈안의 always(clk) 구문으로 구현한다면, always 구문간에 통신할 때도 handshake가 필요한 지 궁금합니다. 제 생각에는 한 모듈안에 여러 always(clk) 구문으로 구현하더라도 각 alway 블록이 하나의 모듈과 같다고 생각이 들긴 합니다. 질문을 정리하면 다음과 같습니다.

1. 모듈들을 한 모듈안의 always 구문으로 보통 구현하지 않는 것 같은데, 가독성을 위한 이유 말고 다른 이유가 있는지

2. 한 모듈 안의 여러 always 구문 v.s. always 블록마다 모듈로 구현 -> 차이점이 무엇인지

 

기존에 질문이 있을 것 같아서 찾아봤는데 없는 것 같아서 질문드립니다 ㅠ

아직 많이 헷갈리네요 ㅠ

읽어주셔서 감사합니다.

 

김민호 드림

 

 

verilog-hdl 임베디드 fpga

답변 1

1

설계독학맛비

안녕하세요 :)

 

제가 궁금한 건, 만약 모듈들을 한 모듈안의 always(clk) 구문으로 구현한다면, always 구문간에 통신할 때도 handshake가 필요한 지 궁금합니다.

원론적인 이야기를 할꺼에요.

handshake 는 Data 전달에 용이하게 하기 위한 방법 중 하나 입니다.

즉, 동일 모듈내에서 handshake 없이 Data 전달이 가능하다는 전제라면 필요없습니다. (가능함)

제 생각에는 한 모듈안에 여러 always(clk) 구문으로 구현하더라도 각 alway 블록이 하나의 모듈과 같다고 생각이 들긴 합니다. 질문을 정리하면 다음과 같습니다.

1. 모듈들을 한 모듈안의 always 구문으로 보통 구현하지 않는 것 같은데, 가독성을 위한 이유 말고 다른 이유가 있는지

한 모듈 내의 다중 always 문으로 사용하셔도 무방합니다.

제 예제코드를 기준으로는 가독성이 가장 큰 이유입니다. :) 

2. 한 모듈 안의 여러 always 구문 v.s. always 블록마다 모듈로 구현 -> 차이점이 무엇인지

모듈로 나누면 hierarchy 가 발생하는데요. hierarchy 에 따른 합성 Tool 이 다른 결과를 만들게 됩니다. (이는 Tool 마다 다름으로 여기서 답변드릴 내용은 아닐 것 같아요.)

"모듈간 hierarchy 를 flatten 시킨다는 가정, 그리고 모듈간의 로직이 동일하다" 이면 차이점은 없다. 생각합니다.

즐공하세요 :)

0

김민호

이해가 되었습니다. 감사합니다!

latency 개념 구현

1

126

3

비바도 all os버전

1

93

2

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

1

100

2

다운로드용량

1

82

2

비바도리눅스설치

1

97

2

전체path복사넣기

1

73

2

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

1

181

2

explorer.exe오류

1

119

3

mobaxterm설치오류

1

102

2

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

1

62

2

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

1

149

2

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

0

73

1

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

1

72

3

16장 mealy 설계.

1

81

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

117

2

5장 DFF특성에 대한 질문

1

87

3

vivado linux 사용 이유.

1

152

2

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

1

114

2

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

1

98

2