인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

bgkim님의 프로필 이미지
bgkim

작성한 질문수

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

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

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

작성

·

37

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 보드에서 위와 같은 코드를 사용할 수 있나요 ?

 

감사합니다.

 

답변 2

0

설계독학맛비님의 프로필 이미지
설계독학맛비
지식공유자

안녕하세요 🙂

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

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

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

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

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

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

image.png

 

 

 

 

0

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

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

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

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

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

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

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

bgkim님의 프로필 이미지
bgkim

작성한 질문수

질문하기