实验一、项目创建、编译和下载
实验二、FPGA译码器组合逻辑
因为破解不充分无法打开实验三signaltap功能,先完成了实验一实验二,提前写了博客
链接:(1条消息) Verilog HDL01——FPGA电路开发实验初步使用_钶的博客-CSDN博客
实验三、计数器波形仿真和signalTap
组建一个计数器模块,建BD文件形成电路,对电路做波形仿真如下
初次使用signaltap,时钟采样深度128,采样模式为连续采样,触发流程为状态触发,触发位置为前端触发,触发条件为1个
错误尝试:
我试着改成分片的输出,波形只有4个周期
**由下一个实验得到分片采样需要设置分片的触发信号,比如这个实验采用OV作为触发信号,会得到以下结果(状态触发流程)
学生实验:
1、把计数最大值改到17,那就是把输出CNTVAL增加一位,9替换成17
2、更改OV的值,只要在if-else语句里更改即可
3、时钟在50MHz,变化太快,看起来OV的LED一直亮着,人眼无法识别闪烁。
实验四、时间基准电路和带使能的多周期计数器
本实验设计目标
• 设计时间基准电路和带使能的多周期计数器
• 时间基准电路生成同步时间基准信号
• 多周期计数器对时间基准信号进行计数
1、电路部分
从RTL图可以看得出,本质上是一个两级计数器级联的的电路结构
– 第一级计数器生成时间基准信号
– 第二级计数器用时间基准信号作为计数使能
上面是第一个计数器,下面是第二个计数器的内部,可以看到有多出一个使能端口
2、波形仿真
波形仿真需要把参数最大值改小,如果没有改小波形从signaltap可以看出OV的变化要在9小时产生一次,波形仿真难以完成(对end time的更改以秒为最大单位,9小时很难实现)
波形仿真的时间尺度不宜太长。编译器有可能会优化掉中间结果。
3、signalTap
signaltap中采样时钟选择clk50,采用深度128,使用en_out为触发信号,选中segmented模式,8段16样点
使用状态触发,触发位置是前触发
不分片采样得到的波形
同一时刻,只能观测到一个计数值不利于调试
分片采样可以完成更多关注每次en_out信 号为1的时刻附近的其他信号情况
学生实验
仿照本实验,请完成以下任务
• 1、参照代码,把后级计数器的计数范围改为0-15。
更改计数模块的Verilog语句即可
• 2、把计数器的0-15计数值经过译码,在DE0 的 HEX LED上显示成0-9-A-F的十六 进制数
在输出15(F)时输出高电平,亮灯;
• 3、修改时间基准发生器,设计一个使用2个HEX LED,精度为0.1秒,范围为0-9.9秒的计时秒表。
• 4、自行设计上面计时器的附加控制功能(清零、暂 停)。