我在Verilog中得到了一个期待'endmodule'的错误

时间:2015-04-06 16:09:21

标签: verilog

我查看了我的代码,我没有看错。以下是具体的错误,任何帮助表示赞赏:错误:HDLC编译器:26 - " myGates.v"第33行期待' endmodule'发现'输入'分析文件<" myGates.prj">失败。

module myGates(
    input sw0,
    input sw1,
    input sw2,
    input sw3,
    output ld0, 
     output ld1, 
     output ld2, 
     output ld3, 
     output ld7
    );

     input sw0, sw1, sw2, sw3;
     output ld0, ld1, ld2, ld3, ld7;
     wire w1, w2;

     assign ld0 = sw0;
     assign ld1 = sw1;
     assign ld2 = sw2;
     assign ld3 = sw3;

     and u1 (w1, sw0, sw1);
     and u2 (w2, sw2, sw3);
     and u3 (ld7, w1, w2);
endmodule

1 个答案:

答案 0 :(得分:2)

您正在混合ANSI和非ANSI标头样式。你必须选择一个

ANSI:自IEEE标准1364-2001(推荐)以来支持:

module myGates( // direction, type, range, and name here
    input sw0, sw1, sw2, sw3, 
    output ld0, ld1, ld2, ld3, 
    output ld7
  );

  wire w1, w2; // internal wire/reg

  // your code ...
endmodule

非ANSI:IEEE std 1364-1995和IEEE之前的规定。自IEEE std 1364-2001以来,这得到了后向可比性的支持。

module myGates( // name only here
    sw0, sw1, sw2, sw3, 
    ld0, ld1, ld2, ld3, 
    ld7
  );

  input sw0, sw1, sw2, sw3; // direction & range here
  output ld0, ld1, ld2, ld3;
  output ld7;
  // <- if 'reg' type, then type & range here 

  wire w1, w2; // internal wire/reg

  // your code ...
endmodule