急求高手改verilog程序

来源:百度知道 编辑:UC知道 时间:2024/09/20 02:35:30
module traffic(clk,leg_sega,leg_diga);

input clk;
output leg_sega;
output leg_diga;

reg[7:0] leg_sega;
reg[4:0] leg_diga;
reg f2;
integer a1;
integer a2;
integer n;

a1<=2;
a2<=5;

always @(posedge clk) begin
if(n==9999999) begin
n<=0;
f2<=~f2;
end
else begin
n<=n+1;
end
end
case(a2)
0:begin leg_sega<=8'b11111100; leg_diga<=4'b0001;end
1:begin leg_sega<=8'b01100000; leg_diga<=4'b0001;end
2:begin leg_sega<=8'b11011010; leg_diga<=4'b0001;end
3:begin leg_sega<=8'b11110010; leg_diga<=4'b0001;end
4:begin leg_sega<=8'b01100110; leg_diga<=4'b0001;end
5:begin leg_sega<=8'b10110110; leg_diga<=4'b0001;end
6:begin leg_sega<=8'b10111110; leg_diga<=4'b0001;end
7:begin leg_sega<=8'b11100000; leg_diga<=4'b0001;e

module traffic(clk,leg_sega,leg_diga);

input clk;
output leg_sega;
output leg_diga;

reg[7:0] leg_sega;
reg[4:0] leg_diga;
reg f2;
integer a1=2;
integer a2=5;
integer n;

//a1=2; 赋初值不能这样,要在定义它的时候赋,像上面我该的那样
//a2=5;

always @(posedge clk) begin
if(n==9999999) begin
n<=0;
f2<=~f2;
end
else begin
n<=n+1;
end
//end在VERILOG里不管怎样你的语句都应该在赋值语句里(assign,always等等)这个end结束了上一个always又没有其他的always包含下面的CASE所以出错或者你没给全代码。不过下面的CASE语句没错。
case(a2)
0:begin leg_sega<=8'b11111100; leg_diga<=4'b0001;end
1:begin leg_sega<=8'b01100000; leg_diga<=4'b0001;end
2:begin leg_sega<=8'b11011010; leg_diga<=4'b0001;end
3:begin leg_sega<=8'b11110010; leg_diga<=4'b0001;end
4:begin leg_sega<=8'b01100110; leg_diga<=4'b0001;end
5:begin leg_sega<=8'b10110110; leg