2016-08-09 16 views
0

Ich habe diesen einfachen Testcode (test.v), um einen Kompilierungsfehler zu erzeugen.NOTTST-Fehler: erwartet eine Aussage in Verilog

`timescale 1ns/10ps 

`define START 'h10000000; 
`define WIDTH 800 
`define HEIGHT 600 

module test; 
integer ifm_addr; 
integer ifm_idx; 

initial begin 
    ifm_idx = 0; 
    ifm_addr = `START + ifm_idx*4*`HEIGHT*`WIDTH; 
end 

initial begin 
#1000; 
$finish; 
end 

endmodule 

wenn ich ncvlog test.v laufen, bekomme ich diesen Fehler, und ich kann nicht herausfinden, was los ist.

ncvlog: 12.20-s008: (c) Copyright 1995-2013 Cadence Design Systems, Inc. 
    ifm_addr = `START + ifm_idx*4*`HEIGHT*`WIDTH; 
         | 
ncvlog: *E,NOTSTT (test.v,11|19): expecting a statement [9(IEEE)]. 
    ifm_addr = `START + ifm_idx*4*`HEIGHT*`WIDTH; 
           | 
ncvlog: *E,MISEXX (test.v,11|28): expecting an '=' or '<=' sign in an assignment [9.2(IEEE)]. 

Bitte helfen!

EDIT: Der Fehler war wegen der ; am Ende define START 'h10000000. Es erscheint + nach einer Anweisung im initial Block.

Antwort

0

Sie haben ifm_idx nicht definiert.

module test; 
    integer ifm_addr; 
    integer ifm_idx; 


    initial begin 
    ifm_addr = `START + ifm_idx*4*`HEIGHT*`WIDTH; 
    end 
+0

mein schlecht, habe ich ifm_idx declation (aktualisierte Code), aber den gleichen Fehler sehe .. –

+0

versuchen Entfernen des ' 'H-vom definieren. Es hat auf eda playground für mich gut funktioniert, sobald ifm_idx definiert wurde. – Morgan

+2

Oh, der Fehler war wegen ';' am Ende von 'define START' h10000000. –