inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

fsm_counter_test.v의 line 59에서, n_state = S_IDLE; 를 n_state <= S_IDLE;로 쓰면 안 되는 이유

385

베릴로그응애
1

다른 수강생분들이 코드 짜는 연습을 하실 때, 실수하실 수 있는 부분인 것 같아 학습 내용을 공유합니다!

핵심

fsm_counter_test.v의 line 59에서, n_state = S_IDLE; 의 할당을 non-blocking 할당(<=)으로 하면 c_state가 영원히 IDLE에 머물게 되어 시뮬레이션이 끝나지 않습니다.

문제가 생긴 이유

답변 1

1

설계독학맛비

내용공유 감사합니다 :)

Combinational Logic 은 blocking (=) 문

Sequential Logic 은 Non-blocking(<=) 문

을 사용한다는 Rule 을 잘 지키시면,  오류를 줄일 수 있을 것 같아요.

읽어보면 좋을 link  https://dreamsailor.tistory.com/7

훌륭합니다 :)