inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[HDL 11장] 설계능력 향상을 위한 Counter 제대로 이해해보기 (실습편)

질문입니다

345

윤동욱

작성한 질문수 8

1

안녕하세요

맛비님의 코드 습관?을 보면 매번 reg 데이터를 assign으로 할당하여 wire로 데이터를 내보내는데요(즉, output) 

저는 공부할 때 데이터를 내보낼땐 reg 데이터로 내보내는 것이 좋다고 알고 있습니다. 

물론 reg 데이터를 바로 assign문에 할달이 되서 로직이 생긴다거나 그러진 않을 것 같지만 (제 눈엔 assign으로 코에서에 o_cnt로 내보내나 cnt로 내보내나 차이가 없다고 보입니다) 어떤 코드 스타일에 습관을 들이는게 좋을지 궁금하여 질문드립니다.(저의 경우는 cnt를 바로 내보내는 스타일입니다)

좀 질문이 횡설수설한거 같아 질문이 이해가 안된다면 제가 다시 질문하겠습니다. 

 

감사합니다

fpga 임베디드 verilog-hdl

답변 2

1

윤동욱

image

제 질문이 제대로 전달이 되었을지 걱정이었는데

제가 알고싶은걸 딱 알려주셔서 정말 감사합니다. 다음 강의를 이어 학습하여 이론을 좀더 보강할게요

0

설계독학맛비

안녕하세요 :)

알고계신대로 별도의 logic 이 생성되진 않습니다.

 

결국 제 코드도 reg output 인거죠?

reg output 을 내보내면, Timing 관점에서 유리합니다. (pipeline 이론강의편 참고. reg 를 중간에 넣음으로써 Timing 이 유리해지죠?)

이게 또.... 참고로 세상에 무조건 이라는 것은 없습니다.

Top 모듈 관점에서는 알고계신 reg output 이 중요하고요.

내부 모듈 관점에서는 필수는 아닙니다. (이거는 실제로 설계해보시면서 알아가시면 됩니다. 글로적기에는 너무 힘드네요 ㅎ)

우선 reg output 을 사용한다는 습관이면 충분합니다.

 

Coding 스타일일 뿐이에요. 정답은 없습니다. 

만약에 현업가시면 코딩 가이드 룰이 있을 수 있으니 맞춰서 하시면 됩니다. (룰북 없다면 알아서)

 

즐공하세요 :)

 

latency 개념 구현

1

85

3

비바도 all os버전

1

71

2

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

1

71

2

다운로드용량

1

71

2

비바도리눅스설치

1

80

2

전체path복사넣기

1

62

2

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

1

148

2

explorer.exe오류

1

105

3

mobaxterm설치오류

1

89

2

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

1

55

2

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

1

125

2

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

0

62

1

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

1

63

3

16장 mealy 설계.

1

74

2

14장 Cycle 관련, Testbench 코드.

1

64

2

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

1

60

1

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

1

68

2

build에러 질문

0

57

2

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

1

73

2

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

1

105

2

5장 DFF특성에 대한 질문

1

76

3

vivado linux 사용 이유.

1

137

2

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

1

103

2

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

1

92

2