inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

n_state 구성에 대한 질문

해결된 질문

257

김상현

작성한 질문수 62

1

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
 
안녕하세요 맛비님!
질문 있습니다.
 
fsm_counter_test.v의 line 57번부터 69번까지 보면 n_state를 이제 현재 상태와 입력 값에 따라 계산하는데요.
보시면 always @(*) 로 되어 있는데, n_state는 combinational logic인건가요?
만약 sequential이라면 always @(posedge clk or negedge reset_n) 으로 작성해야할 것 같아서요...
 
combinational이면 reg [1:0] n_state로 되어있는 것을 wire [1:0] n_state 로 변경 후 assign으로 설계해도 되는건가요?
 
질문이 좀 난잡한 것 같네요. 죄송합니다..

fpga 임베디드 verilog-hdl

답변 2

1

김상현

안녕하세요. 답변 감사합니다.
 
combinational이면 reg [1:0] n_state로 되어있는 것을 wire [1:0] n_state 로 변경 후 assign으로 설계해도 되는건가요?
 
Verilog 의 Syntax 이기 때문에, 다음 한줄이면 설명이 충분하다 생각해요.
always@ 안에 사용되기 때문에, reg 가 맞습니다.
 
제가 여기서 말하고자하던건 always@ 이것을 사용하지 않고 n_state를 wire로 선언한 후 assign으로 설계한다는 것이었습니다. 한 번 도전해보려했는데... 어떻게 해야할지 감이 안오네요.

0

설계독학맛비

안녕하세요 :)

제가 여기서 말하고자하던건 always@ 이것을 사용하지 않고 n_state를 wire로 선언한 후 assign으로 설계한다는 것이었습니다. 한 번 도전해보려했는데... 어떻게 해야할지 감이 안오네요.

아... 예상을 못했습니다. 공부때문에 해보시려는 거겠죠..?

보편적으로 사용하는 방법은 아니에요. (해본적이 없어요)

assign 으로 case 를 사용할 수 없기때문에, 꼭해야한다 라고 하면, 3상태 문을 사용하지 않을까 싶어요.  순수하게 궁금해 하시니까 적습니다. (하지만 비추천 입니다.)

wire [1:0] n_state;

assign n_state = ( (c_state == S_IDLE) & i_run) ? S_RUN  :  ( (c_state == S_RUN) & is_done) ? S_DONE : ( c_state == S_DONE)  ? S_IDLE : S_IDLE;

 

즐공하세요 :)

                

 

 

0

설계독학맛비

안녕하세요 :)

 

fsm_counter_test.v의 line 57번부터 69번까지 보면 n_state를 이제 현재 상태와 입력 값에 따라 계산하는데요.
보시면 always @(*) 로 되어 있는데, n_state는 combinational logic인건가요?
만약 sequential이라면 always @(posedge clk or negedge reset_n) 으로 작성해야할 것 같아서요...
 
해당 링크의 글을 읽어보세요 유사 질문을 많이 받아서, 보시면 답변이 되실꺼에요 :)
Combinational Logic 입니다.
 
 
combinational이면 reg [1:0] n_state로 되어있는 것을 wire [1:0] n_state 로 변경 후 assign으로 설계해도 되는건가요?
 
Verilog 의 Syntax 이기 때문에, 다음 한줄이면 설명이 충분하다 생각해요.
always@ 안에 사용되기 때문에, reg 가 맞습니다.
 
 
즐공하세요 :)

latency 개념 구현

1

84

3

비바도 all os버전

1

68

2

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

1

69

2

다운로드용량

1

68

2

비바도리눅스설치

1

79

2

전체path복사넣기

1

60

2

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

1

143

2

explorer.exe오류

1

102

3

mobaxterm설치오류

1

86

2

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

1

53

2

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

1

123

2

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

0

59

1

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

1

60

3

16장 mealy 설계.

1

73

2

14장 Cycle 관련, Testbench 코드.

1

63

2

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

1

60

1

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

1

64

2

build에러 질문

0

55

2

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

1

71

2

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

1

105

2

5장 DFF특성에 대한 질문

1

74

3

vivado linux 사용 이유.

1

135

2

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

1

103

2

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

1

92

2