. -
. . -
流水灯实验报告
实验二流水灯
实验目的
学会编写一个简单的流水灯程序并掌握分频的方法。熟悉Modelsim仿真软件的使用。
实验要求
用Quartus编写流水灯程序,在Modelsim软件中进行仿真。
实验仪器和设备
硬件:计算机
软件:Quartus、Modelsim、(UE)
实验内容
将时钟周期进行分频。
编写Verilog程序实现LED等依次亮灭,用Modelsim进行仿真,绘制波形图。
实验设计
(一)分频原理
已知时钟周期f为50MHz,周期T为1/f,即20ns。若想得到四分频计数器,即周期为80ns的时钟,需要把时钟进行分频。即每四个时钟周期合并为一个周期。原理图如图1所示。
图1 四分频原理图
(二)流水灯设计思路
1、实现4盏LED灯依次隔1s亮灭,即周期为1s;
. -
. . -
2、计算出频率f为1/T=1Hz;
3、设置计数器t,当检测到clk上升沿时开始计数,当t计数到24_999_999时,clk_4跳变为1,LED灯亮起,当t计数49_999_999时,clk_4置0,LED灯熄灭。
4、给LED赋初值4’b0001,第一盏灯亮。
5、利用位拼接,实现循环。
(三)设计框图
图2 设计基本框图
(四)位拼接的用法
若输入a=4'b1010,b=3'b101,c=4'b0101,想要使输出d=5'b10001
用位拼接,符号“{}”:d<={b[2:1],c[1],a[2:1]}
即把b的低1~2位10,c的低1位0,a的低1~2位01拼接起来,得到10 0 01。
流水灯
4'b0001
4'b0010
4'b0100
4'b1000
相当于把低三位左移,并最高位放在最低位。
用位拼接可写为:
led<={led[2:0],led[3]};
低三位最高位
. -
.
verilog流水灯实验报告 来自beplayapp体育下载www.apt-nc.com转载请标明出处.