本帖最后由 fpgaw 于 2010-7-13 15:04 编辑
在Max700064slc44-10中,com1~4分别是数码管的开关,低电平有效
想让4个数码管从0000计数到7777,因为板上资源的限制,最高位是7不是9,
下面的代码在ModelSim中仿真结果正确,可是在板子上却跑不起来,
请大家帮忙分析一下,先谢谢了
module work(clk,com1,com2,com3,com4,a,b,c,d,e,f,g);
input clk;
output com1,com2,com3,com4,a,b,c,d,e,f,g;
reg com1,com2,com3,com4,a,b,c,d,e,f,g;
reg[1:0] switch;
reg[2:0] count1,count2,count3,count4;
initial
begin
com1=1;
com2=1;
com3=1;
com4=1;
a=0;
b=0;
c=0;
d=0;
e=0;
f=0;
g=0;
switch=2'b00;
count1=3'b000;
count2=3'b001;
count3=3'b010;
count4=3'b011;
end
always @ (posedge clk)
switch=switch+1;
always @ (switch)
begin
case(switch)
2'b00: begin com1=0;com2=1;com3=1;com4=1;end
2'b01: begin com2=0;com1=1;com3=1;com4=1;end
2'b10: begin com3=0;com1=1;com2=1;com4=1;end
2'b11: begin com4=0;com1=1;com2=1;com3=1;end
endcase
end
always @ (com1 or com2 or com3 or com4)
begin
if(com1==0)
case(count1)
3'b000: {a,b,c,d,e,f,g}=7'b1111110;
3'b001: {a,b,c,d,e,f,g}=7'b0110000;
3'b010: {a,b,c,d,e,f,g}=7'b1101101;
3'b011: {a,b,c,d,e,f,g}=7'b1111001;
3'b100: {a,b,c,d,e,f,g}=7'b0110011;
3'b101: {a,b,c,d,e,f,g}=7'b1011011;
3'b110: {a,b,c,d,e,f,g}=7'b1011111;
3'b111: {a,b,c,d,e,f,g}=7'b1110000;
endcase
else if(com2==0)
begin
if(count3==3'b111)
count2=count2+1;
case(count2)
3'b000: {a,b,c,d,e,f,g}=7'b1111110;
3'b001: {a,b,c,d,e,f,g}=7'b0110000;
3'b010: {a,b,c,d,e,f,g}=7'b1101101;
3'b011: {a,b,c,d,e,f,g}=7'b1111001;
3'b100: {a,b,c,d,e,f,g}=7'b0110011;
3'b101: {a,b,c,d,e,f,g}=7'b1011011;
3'b110: {a,b,c,d,e,f,g}=7'b1011111;
3'b111: {a,b,c,d,e,f,g}=7'b1110000;
endcase
end
else if(com3==0)
begin
if(count4==3'b111)
count3=count3+1;
case(count3)
3'b000: {a,b,c,d,e,f,g}=7'b1111110;
3'b001: {a,b,c,d,e,f,g}=7'b0110000;
3'b010: {a,b,c,d,e,f,g}=7'b1101101;
3'b011: {a,b,c,d,e,f,g}=7'b1111001;
3'b100: {a,b,c,d,e,f,g}=7'b0110011;
3'b101: {a,b,c,d,e,f,g}=7'b1011011;
3'b110: {a,b,c,d,e,f,g}=7'b1011111;
3'b111: {a,b,c,d,e,f,g}=7'b1110000;
endcase
end
else if(com4==0)
begin
count4=count4+1;
case(count4)
3'b000: {a,b,c,d,e,f,g}=7'b1111110;
3'b001: {a,b,c,d,e,f,g}=7'b0110000;
3'b010: {a,b,c,d,e,f,g}=7'b1101101;
3'b011: {a,b,c,d,e,f,g}=7'b1111001;
3'b100: {a,b,c,d,e,f,g}=7'b0110011;
3'b101: {a,b,c,d,e,f,g}=7'b1011011;
3'b110: {a,b,c,d,e,f,g}=7'b1011111;
3'b111: {a,b,c,d,e,f,g}=7'b1110000;
endcase
end
end
endmodule |