LAB 3
实验3:
a. 内容:设计一个0-17计数器,当计数值为17时,输出OV为1,其他输 出为0。
步骤:新建项目和BDF文件,保持项目名称和顶层设计名称相同;编写verilog代码创建计数器模块,并为其创建符号;在BDF文件中调用创建的符号,完成电路设计;观察RTL视图以及计数器模块内部电路结构;根据手册分配管脚,不用的管脚设置为三态,进行编译;创建VWF文件,利用Node Finder添加观测信息,设置时钟激励进行仿真;新建SignalTap文件并加入到工程文件中,添加采样时钟和待观察数据信号,重新编译和下载;分析数据的正确性。
结果:VWF文件中观察波形仿真后的结果会发现有毛刺,是因为相邻计数值之间发生了不止一位的数值变化,发生竞争冒险现象;而且当计数值为17时,输出OV变为1。
b. 内容:设计一个0-17计数器,当计数值为0-8时,输出OV为0;计数值为9-17时,输出OV为1。
步骤:新建项目和BDF文件,保持项目名称和顶层设计名称相同;编写verilog代码创建计数器模块,并为其创建符号;在BDF文件中调用创建的符号,完成电路设计;观察RTL视图以及计数器模块内部电路结构;根据手册分配管脚,不用的管脚设置为三态,进行编译;创建VWF文件,利用Node Finder添加观测信息,设置时钟激励并进行仿真;新建SignalTap文件并加入到工程文件中,添加采样时钟和待观察数据信号,重新编译和下载;分析数据的正确性。
结果:VWF文件中观察波形仿真后的结果会发现有毛刺,是因为相邻计数值之间发生了不止一位的数值变化,发生竞争冒险现象;如果时钟设置为50MHZ,将输出OV外接一个LED灯,那么会发现LED灯会隔一段时间就亮一次,亮灭交替。