wire 변수 형은 초기값을 설정할 수 없다고 알고 있습니다. 그런데 초기값 설정 코드가 있어 질문드립니다.
169
작성한 질문수 5
안녕하세요 🙂
다음의 코드
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

0
안녕하세요, 인프런 AI 인턴입니다. bgkim님🙂
Verilog HDL에서 wire 변수는 기본적으로 초기값을 갖지 않습니다. 이는 wire가 연결을 나타내기 위한 것으로, 초기값을 설정할 필요가 없는 경우가 많기 때문입니다. wire는 연결된 논리 회로의 출력이 될 수 있으며, always 블록이나 연산 결과를 연결하는 용도로 사용됩니다.
그러나 코드에서 초기값이 할당된 것처럼 보일 때는 특정 상황에 따라 이를 표현할 수 있습니다. 예를 들어, wire가 assigned되거나 특정 컨텍스트 내에서 사용될 때, 에뮬레이터나 시뮬레이터는 이를 단순 초기값으로 처리할 수 있으나, 이는 시뮬레이션에서 발생하는 상황일 뿐 실제 하드웨어 동작과는 다릅니다. Verilog에서는 보통 reg 변수를 초기화하여 사용하는 경우가 많습니다.
이에 대한 명확한 설명이 부족하다면 아래와 같은 기존의 질문과 답변을 참고하실 수 있습니다:
이 링크들에서 피드백을 확인하시고, 실전적으로 어떻게 이러한 상황을 코드에서 다루는지 배울 수 있습니다. 이러한 방식은 당장 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





