inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)

[FPGA 10장] FSM 기본코어 IDLE -> RUN -> DONE 모듈을 FPGA 에 올려보기 HW Sleep 함수 구현 (PS <-> PL 간의 통신 방법 익히기2) - 실습편

fsm_counter모듈의 o_done

92

김민수

작성한 질문수 1

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으로 만들기 때문인가요?

fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요 🙂

강의에서 언급드렸던 것으로 기억하고요.

다양한 코딩 스타일을 보여드리려고 한거에요.

문법의 차이 입니다. 동일한 기능을 합니다.

o_done 은 assign 으로 처리하셔도 됩니다.

즐공하세요.

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. 김민수님!

FSM 모듈에서 o_running, o_idleassign 문으로, o_donereg 타입을 선언하여 always 문으로 사용하는 이유에 대해 여러 번 비슷한 질문이 있어 답변드리겠습니다.

관련 질문 및 답변:

  1. fsm_counter 관련 질문입니다!

    • o_donereg 타입으로 사용된 이유와, assign으로 처리 가능한지를 묻는 질문입니다. 강의에서는 두 유형의 예시를 모두 보여주고, 둘 다 가능하다고 설명하고 있습니다. 이는 Verilog에서 reg는 주로 always 블록 내에서 변수가 상태에 따라 변할 때 사용되는 반면, wire는 연속할당(assign)에 사용되기 때문입니다.
  2. FSM 코드 리뷰 중 질문드립니다

    • 비슷한 내용의 질문으로, o_done, o_running, o_idle의 구현 차이에 대해 다루고 있습니다. 강의에서는 의도적으로 두 가지 스타일의 코딩을 보여줍니다. 합성 결과에 있어서 차이가 없다는 점 또한 강조합니다.

o_donereg로 선언하고 always 블록 안에서 업데이트하는 이유는 주로 state machine 내에서 특정 조건을 충족했을 때 즉각적으로 반응하도록 하기 위함입니다. 반면 o_runningo_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