基本时序逻辑设计
实验目的
- 熟练掌握时序逻辑设计规范
- 掌握Verilog HDL时序逻辑模块的设计和仿真。
- 掌握开发板上基本输出资源的使用方法。
- 掌握测试和错误修改方法。
预习要求
- 了解EDA数字系统设计的基本流程。
- 了解时序逻辑过程块设计的基本规范和模型
- 了解七段管的工作特性。
- 了解组合逻辑和时序逻辑电路设计的主要特性和区别。
实验原理
- SW上拨为输出高电平、下拨为输出低电平
- KEY0-KEY3正常情况下输出高电平,按下输出低电平,松开按键恢复到弹起状态输出高电平
- 7段数码管:HEX0[6:0]—-HEX7[6:0],每个7段管信号对应数码管,6—-0,低电平时发光,高电平不亮。
- 分频电路参考:由50MHz信号,经过分频变成1Hz。原理:0-25000000计数,满2500万后新的时钟CLK1反转,计数归零,从0开始重新计数到2500万后,新时钟再反转,使得CLK1一个周期内包含2500万*2个CLOCK_50(50Mhz)时钟周期,为1hz
1
2
3
4
5
6
7
8
9
10
11
12
13module divclk1hz(reset,clk50,clk1);
input clk50,reset;//clk50为输入50Mhz信号,reset为复位信号
output reg clk1;//新产生的1hz信号
integer i=0;//50Mhz频率下,周期计数器
always@(posedge clk50)
begin
if(!reset) begin i=0;end
else begin
if(i==25000000) begin i=0; clk1=~clk1;end
else i=i+1;
end
end
endmodule
实验内容
- 字符移位:在8个7段管上显示HELLO _(可以显示下划线或不亮也可),每隔1秒钟,字符序列左移或右移一个七段管的位置。系统外部时钟50Mhz。左/右移位可以通过一个波动开关sw0来控制。
- 计时器:在6个七段管上分别显示 小时(0-23或11)、分(0-59)、秒(0-59),各占2个管。外部时钟50Mhz。可以用按键来产生一个复位信号key,当按键按下立刻(异步)将时间复位成0小时、0分、0秒重新开始计时
- 扩展:将时分秒计时器,变成可调的计时器。可以分别对小时、分、秒设定初始值。
设定的方法可以采用,从外部输入一个值,比如小时可以从5开始;也可以通过按键把小时当前的值增加或者减少来实现值的调整。 - 在文件代码综合测试过程中,总结错误原因,掌握错误定位和改进的方法。
实验要求
- 按照上面的提示完善报告
- 将程序编译过程中出现的主要错误及解决方案进行总结
- 掌握和练习数字系统的分析步骤,并将一些核心步骤进行记录
- 将编写的程序与仿真结果进行记录
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 QXA!
评论