인프런 커뮤니티 질문&답변
n_state 구성에 대한 질문
해결된 질문
작성
·
249
1
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1: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으로 설계해도 되는건가요?
질문이 좀 난잡한 것 같네요. 죄송합니다..
답변 2
1
김상현
질문자
안녕하세요. 답변 감사합니다.
combinational이면 reg [1:0] n_state로 되어있는 것을 wire [1:0] n_state 로 변경 후 assign으로 설계해도 되는건가요?
Verilog 의 Syntax 이기 때문에, 다음 한줄이면 설명이 충분하다 생각해요.
always@ 안에 사용되기 때문에, reg 가 맞습니다.
제가 여기서 말하고자하던건 always@ 이것을 사용하지 않고 n_state를 wire로 선언한 후 assign으로 설계한다는 것이었습니다. 한 번 도전해보려했는데... 어떻게 해야할지 감이 안오네요.
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 가 맞습니다.
즐공하세요 :)





안녕하세요 :)
제가 여기서 말하고자하던건 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;
즐공하세요 :)