으로, 즉 :ModelSim을 컴파일러 동일하지의 Quartus
그리고 thers이 같은를 Verilog 코드의 조각이었다
if (cnt == `END_CNT)
...
reg [7:0] cnt;
always @(posedge clk)
if (en)
cnt <= cnt +1;
...
이는 할당 블록까지 reg 권한을 정의한다는 것을 의미하며 정의 전에 변수를 사용할 수 있습니다. 제 코딩 스타일이며 Quartus에서도 괜찮습니다.
하지만 ModelSim을에서 파일을 컴파일 할 때, "변수가 정의되지 않은"오류가 올 것, 나는 if
문 위의 정의 라인을 이동해야 :
reg [7:0] cnt;
...
if (cnt == `END_CNT)
...
always @(posedge clk)
if (en)
cnt <= cnt +1;
...
나는 다음과 같은 코드를 많이 가지고, 그리고 그것은 나를 그렇게 괴롭힌다. ModelSim 초보자로서, 나는 거기에 내 문제를 다루는 컴파일러 설정 (난 아무것도 찾을 수 없습니다) 궁금해?
는 IEEE 표준 1800년부터 2012년까지 절에 따르면 6.5 그물과 변수 "들이 사용되기 전에 데이터는 암시 적 그물 떨어져 선언한다 ". 코드가 Std를 따르지 않으므로 모든 선언을 이동해야합니다. – toolic
제 경험상, Modelsim은 언어 법의 시행과 관련하여 가장 엄격한 시뮬레이터입니다. @toolic 의견을 답해야합니다. – dwikle
@ dwikle : 내 의견은 "modelsim 컴파일러 설정이 있습니까?"라는 질문에 대한 답변을 제공하지 않으며 SO 사용자는 그다지 관대하지 않습니다. – toolic