module seven_seg1 ( in , o );
input [2:0]in ;
output [6:0]o ;
always@(*)
begin
case (in)
0: o=7'b1111110 ;
1: o=7'b0110000 ;
2: o=7'b1101101 ;
3: o=7'b1111001 ;
4: o=7'b0110011 ;
5: o=7'b1011011 ;
6: o=7'b0011111 ;
7: o=7'b1110000 ;
8: o=7'b1111111 ;
9: o=7'b1110011 ;
default: o= 7'b0000000 ;
endcase
end
endmodule
我已经写了上面的代码,但是ModelSim显示了这个错误:
错误:(vlog-13069) C:/Modeltech_pe_edu_10.4a/examples/beh.v(18):接近“end”:语法错误,意外结束。
运行 Modelsim 时我没有收到该错误。我确实得到了对
o
的非法引用。那是因为您正在对线路进行程序分配。您需要通过将 o
声明为 reg
来将其设为变量。
module seven_seg1 (
input [2:0]in ,
output reg [6:0]o );
always@(*)
begin
case (in)
0: o=7'b1111110 ;
1: o=7'b0110000 ;
2: o=7'b1101101 ;
3: o=7'b1111001 ;
4: o=7'b0110011 ;
5: o=7'b1011011 ;
6: o=7'b0011111 ;
7: o=7'b1110000 ;
8: o=7'b1111111 ;
9: o=7'b1110011 ;
default: o= 7'b0000000 ;
endcase
end
endmodule