对象<name>未在verlog中声明

1 verilog

这是我的代码,据我所知,LED已定义

module sevenseg (LEDs,in);
output reg [6:0] LEDs;
input [3:0] in;

always@(in) begin 
    case(in)
        0 : LEDs = 7'b1000000;
        1 : LEDs = 7'b1111001;
        2 : LEDs = 7'b0100100;
        3 : LEDs = 7'b0110000;
        4 : LEDs = 7'b0011001;
        5 : LEDs = 7'b0001010;
        6 : LEDs = 7'b0000010;
        7 : LEDs = 7'b1111000;
        8 : LEDs = 7'b0000000;
        9 : LEDs = 7'b00010000;
        default : LEDs = 7'b1111111;
    endcase
end 
endmodule 
Run Code Online (Sandbox Code Playgroud)

这是编译错误

错误(10161):7seg2.v(39)处的Verilog HDL错误:未声明对象"LED​​"

错误:Quartus II 64位分析和综合不成功.1错误,1警告

错误(293001):Quartus II完全编译失败.3个错误,1个警告

Gre*_*reg 5

您正在混合ANSI和非ANSI标头样式.这是非法的语法.一些模拟器/合成器允许它,但这是不好的做法.

您应该使用ANSI:IEEE Std1800-2012§23.2.2.2ANSI 样式的端口声明列表

module sevenseg (
output reg [6:0] LEDs,
input [3:0] in );
Run Code Online (Sandbox Code Playgroud)

或非ANSI:IEEE Std1800-2012§23.2.2.1 非ANSI样式的端口声明

module sevenseg (LEDs,in);
output [6:0] LEDs; // only an output here
input [3:0] in;
reg [6:0] LEDs; // declare as reg after all inputs/outputs/inouts
Run Code Online (Sandbox Code Playgroud)

IEEE Std 1364-1995需要非ANSI.自IEEE Std 1364-2001以来,支持ANSI.