fsm_counter모듈의 o_done
92
작성한 질문수 1
안녕하세요 🙂 강의 잘 수강하고 있습니다!
[1. 질문 챕터] : 9분05초
[2. 질문 내용] : fsm_counter모듈에서 o_running과 o_idle은 assign문으로 처리하고 o_done은 reg타입 선언 후 always문으로 사용하는지가 궁금합니다.
[3. 시도했던 내용, 그렇게 생각하는 이유] : is_done이 always문의 영향을 받아 counter의 값에 영향을 받고 이가 n_state를 S_DONE으로 만들기 때문인가요?
답변 2
0
안녕하세요 🙂
강의에서 언급드렸던 것으로 기억하고요.
다양한 코딩 스타일을 보여드리려고 한거에요.
문법의 차이 입니다. 동일한 기능을 합니다.
o_done 은 assign 으로 처리하셔도 됩니다.
즐공하세요.
0
안녕하세요, 인프런 AI 인턴입니다. 김민수님!
FSM 모듈에서 o_running, o_idle은 assign 문으로, o_done은 reg 타입을 선언하여 always 문으로 사용하는 이유에 대해 여러 번 비슷한 질문이 있어 답변드리겠습니다.
관련 질문 및 답변:
-
o_done이reg타입으로 사용된 이유와,assign으로 처리 가능한지를 묻는 질문입니다. 강의에서는 두 유형의 예시를 모두 보여주고, 둘 다 가능하다고 설명하고 있습니다. 이는 Verilog에서reg는 주로always블록 내에서 변수가 상태에 따라 변할 때 사용되는 반면,wire는 연속할당(assign)에 사용되기 때문입니다.
-
- 비슷한 내용의 질문으로,
o_done,o_running,o_idle의 구현 차이에 대해 다루고 있습니다. 강의에서는 의도적으로 두 가지 스타일의 코딩을 보여줍니다. 합성 결과에 있어서 차이가 없다는 점 또한 강조합니다.
- 비슷한 내용의 질문으로,
o_done을 reg로 선언하고 always 블록 안에서 업데이트하는 이유는 주로 state machine 내에서 특정 조건을 충족했을 때 즉각적으로 반응하도록 하기 위함입니다. 반면 o_running과 o_idle 같은 경우는 상태에 대한 간단한 컨디션을 assign을 통해 처리할 수 있습니다. 이는 assign 문은 선언된 wire를 통해 지속적으로 신호를 업데이트할 수 있기 때문입니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
UART0, 1 중 선택
1
49
2
datamoverbram모듈질문
1
61
2
vitis 설치엣 alveo kria versal 등 옵션을 끄고 설치를 했습니다.
1
96
2
vitis 설치 관련 질문 있습니다!
1
84
2
FPGA 공식문서 읽는법
1
95
2
보드 추가의 클릭창이 없습니다.
1
70
2
Edit in IP Packager에서 코드 수정 후 IP 수정하면 simulation에서 수정된 코드로 작동이 안됩니다
1
81
2
BRAM의 Read / Write를 다 수행했는지 확인할 때 사용되는 num_cnt / i_num_cnt 관련 질문
1
106
1
Vitis 코드 작성
1
130
2
vivado 및 vitis 리눅스 환경 설치 관련 질문드립니다.
1
288
3
[9장 led 점등 시간 제어 불가]
1
81
2
Platform Invalid 오류
1
145
3
WSL 설치 관련 문의드립니다!!
1
96
2
Vivado 툴, 파일 질문드립니다!
1
150
2
9장 LED 점등 안됨
1
109
3
Edit in IP Packager 이후에
1
82
1
Fpga 로직
1
89
2
pmu-fw is not running
1
126
2
Create Project에 대해서 궁금해요
1
89
2
장치관리자 USB 포트
1
98
2
FPGA 7장 AXI_LITE I/F질문
1
89
1
bram mover에서 합성할때
1
77
2
타이밍 위반 질문
1
78
2
rvalid 초기화
1
66
2





