inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[HDL 17장] HW 의 동작을 제어하는 FSM 을 이해해보자. (실습응용편)

Hdl 17장 FSM 실습,o_done을 reg type으로 선언하신 이유가 궁금합니다

265

scryid

작성한 질문수 15

1

🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.Hdl17장

[2. 질문 내용] : o_done을 reg type으로 선언하신 이유가 궁금합니다

[3. 시도했던 내용, 그렇게 생각하는 이유] :

다른 신호들 처럼 wire type으로 선언하고 assign으로 상태 변화를 감지해도 되지않을까요?

다음 always문장을 날려버리고

// Step 3. always block to compute output
  // always @(c_state)
    always @(*) begin
        o_done = 0; // To prevent Latch
        case(c_state)
            S_DONE:	o_done = 1;
        endcase
    end

assign o_done = (c_state==S_DONE)?1:0 이렇게 코드를 정의해도 될것같아서 질문드립니다.

o_done을 reg type으로 선언하신 이유를 잘 모르겠습니다.

장점이 있어서 그렇게 하신걸까요?

verilog-hdl fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요 🙂

말씀해주신대로, 하셔도 됩니다.

저 코드 내에서의 장점은.. 못찾겠고요 ㅎ

각자의 코딩스타일..? 정도 같아요. (저도 가끔 질문자님이 써주신 assign 방식도 혼용사용하기에, 간단한거면요)

즐공하세요 🙂

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

질문하신 Hdl 17장 o_done을 reg type으로 선언한 이유에 대해 같은 강의 내에서 질문된 유사한 경우를 참조할 수 있습니다. 특히 o_done 같은 출력 신호를 reg 타입으로 선언하는 경우와 wire 타입으로 선언하는 경우의 차이와 선택 기준에 대해 궁금하신 것 같습니다.

관련 질문 및 답변:

  1. fsm_counter 관련 질문입니다!

    • 본 질문에서는 fsm_counter 모듈에서 o_done에 관한 것을 wire 타입으로 선언하고 아래와 같이 표현하면 되는지에 대해 질문을 하였고, 강의에서 설명한 내용을 기반으로 한 답변이 제공되었습니다.
    • 이런 식의 질문은 Verilog HDL에서 reg 타입과 wire 타입의 차이와 상황에 따른 적절한 사용을 이해하는 데 중요한 요소가 될 수 있습니다.
  2. FSM 실습편에서 질문

    • 해당 질문에서는 FSM 실습 중 출력 단자를 왜 reg형 자료형으로 선언하였는지 궁금해했습니다. 이 역시 regwire의 선택에 대한 근본적인 이해를 요구하는 문제입니다.
  3. HDL 11장 COUNTER의 관하여 질문이 있습니다.

    • 여기서는 output reg를 사용하여 counter 모듈에서 출력 단자의 선언 방법에 대한 변경을 시도하고 그 가능성에 대해 질문했습니다. 이 역시 출력 인터페이스에 reg 타입을 사용하는 것의 적절성에 대한 답변을 포함합니다.

각각의 질문과 답변에서 보이는 공통점은, reg 타입과 wire 타입 선택에는 Verilog HDL의 논리적 해석 방식에 따른 차이가 있으며, 상황에 따라 선택이 달라질 수 있다는 점입니다. reg 타입은 주로 가변적인 신호나 always 블록 내에서 값을 지정할 때 사용되고, wire는 연속적인(assign statement) 값을 지정할 때 사용된다는 기본적인 차이를 이해하는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

latency 개념 구현

1

84

3

비바도 all os버전

1

67

2

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

1

68

2

다운로드용량

1

68

2

비바도리눅스설치

1

79

2

전체path복사넣기

1

60

2

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

1

142

2

explorer.exe오류

1

99

3

mobaxterm설치오류

1

84

2

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

1

51

2

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

1

122

2

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

0

57

1

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

1

60

3

16장 mealy 설계.

1

71

2

14장 Cycle 관련, Testbench 코드.

1

63

2

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

1

59

1

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

1

63

2

build에러 질문

0

54

2

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

1

70

2

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

1

104

2

5장 DFF특성에 대한 질문

1

73

3

vivado linux 사용 이유.

1

135

2

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

1

102

2

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

1

92

2