inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

[FPGA 5장] LED 깜박이기 (PL 영역을 사용해보자 + Clock Frequency 를 이해하고 계신가요?) - 실습편

wire 변수 형은 초기값을 설정할 수 없다고 알고 있습니다. 그런데 초기값 설정 코드가 있어 질문드립니다.

169

bgkim

작성한 질문수 5

1

안녕하세요 🙂

 

다음의 코드

 

wire [31:0] w_i_cnt_th_25M = 32'd25; 또는

wire [31:0] w_i_cnt_th_25M = 32'd25000000;

 

는 wire 변수를 선언하면서 초기값을 할당하는 코드 같습니다.

 

verilog 에서 wire 변수는 초기값 할당이 불가능하다고 나와있습니다.

 

위코드가 에러없이 수행되는 이유를 설명해주세요 ?

 

FPGA 보드에서 위와 같은 코드를 사용할 수 있나요 ?

 

감사합니다.

 

fpga 임베디드

답변 2

0

설계독학맛비

안녕하세요 🙂

"verilog 에서 wire 변수는 초기값 할당이 불가능하다고 나와있습니다.

위코드가 에러없이 수행되는 이유를 설명해주세요 ?"

그렇게 생각하신 출처가 어딘지 알 수 있을까요? (어디서 배우신걸까요...?)

문법을 알고있다고 가정하고, 강의를 진행하기 때문에, 상세 설명은 스킵하지만.

IEEE Verilog 2001 스펙문서를 참고하면 wire 변수 선언과 동시에 assign 을 허용하고 (문구는 당장 찾기 어렵지만) 예제코드가 존재합니다. (이유는 이걸로.. 충분하겠죠?)

https://picture.iczhiku.com/resource/eetop/WyKEdIyHgLhiwNmV.pdf

image.png

 

 

 

 

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. bgkim님🙂

Verilog HDL에서 wire 변수는 기본적으로 초기값을 갖지 않습니다. 이는 wire가 연결을 나타내기 위한 것으로, 초기값을 설정할 필요가 없는 경우가 많기 때문입니다. wire는 연결된 논리 회로의 출력이 될 수 있으며, always 블록이나 연산 결과를 연결하는 용도로 사용됩니다.

그러나 코드에서 초기값이 할당된 것처럼 보일 때는 특정 상황에 따라 이를 표현할 수 있습니다. 예를 들어, wire가 assigned되거나 특정 컨텍스트 내에서 사용될 때, 에뮬레이터나 시뮬레이터는 이를 단순 초기값으로 처리할 수 있으나, 이는 시뮬레이션에서 발생하는 상황일 뿐 실제 하드웨어 동작과는 다릅니다. Verilog에서는 보통 reg 변수를 초기화하여 사용하는 경우가 많습니다.

이에 대한 명확한 설명이 부족하다면 아래와 같은 기존의 질문과 답변을 참고하실 수 있습니다:

  1. HDL 11장 COUNTER의 관하여 질문이 있습니다.
  2. LED 깜박이기 LED 파형 그래프 오류 해결법.

이 링크들에서 피드백을 확인하시고, 실전적으로 어떻게 이러한 상황을 코드에서 다루는지 배울 수 있습니다. 이러한 방식은 당장 FPGA 보드에서 사용할 때 주의해야 할 점도 포함됩니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

UART0, 1 중 선택

1

51

2

datamoverbram모듈질문

1

63

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

290

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