一、实验目的
1、熟悉同步时序电路的设计方法;
2、学习跑马灯的设计原理和实践,并对其进行仿真和硬件测试。
二、实验原理
试验箱上有16个连成一排的LED灯,它们受FPGA IO引脚的控制,通过这些引脚输出高低电平可以控制这16个灯的点亮或熄灭,控制这些灯以不同的方式点亮或熄灭即可获得跑马灯的显示效果。
三、实验内容:
设计一个具有多种LED灯显示模式的电路,基本模式如下:
1、先奇数灯,后偶数灯。
2、先偶数灯,后奇数灯。
3、LED灯依次点亮。
4、自己设计一种模式。
四、程序编写
module paomadeng(CLK, RST, K1,K2,ledout);
parameter M=16;
input CLK, K1, K2, RST;
output reg[M:1] ledout;
reg[M:1] yw;
always @(posedge CLK or negedge RST)
if(!RST)
begin
ledout=16'h0000;
case ({K1, K2})
2'b00:yw=16'h5555;
2'b01:yw=16'haaaa;
2'b10:yw=16'h0001;
2'b11:yw=16'h8000;
default:yw=16'h0001;
endcase
end
else
case ({K1, K2})
2'b00:
begin
ledout=yw;
yw=~yw;
end
2'b01:
begin
ledout=yw;
yw=~yw;
end
2'b10:
begin
ledout=yw;
if (ledout[M]==1) yw=16'h0001;
else yw=yw<<1;
end
2'b11:
begin
ledout=yw;
if (ledout[1]==1) yw=16'h8000;
else yw=yw>>1;
end
default:ledout=16'hffff;
endcase
endmodule
五、波形仿真
限于纸面大小,将LED灯显示模式分开仿真:
1.先奇数灯亮后偶数灯亮
2.先偶数灯亮后奇数灯亮
(k1=0,k2=1时先出现偶数灯亮)
3.LED依次点亮
(上为LED从低依次点亮)
(LED从高依次点亮)
因篇幅问题不能全部显示,请点此查看更多更全内容