一 实验目的
1、熟悉利用Quartus II 9.0 软件开发数字电路的基本流程以及熟悉Quartus II软件的操作。
2、了解使用VHDL语言和原理图设计进行HDL描述的实现方法。
3、掌握多功能计数器设计的基本设计思路,软件环境参数配置,时序仿真,管脚分配,并且利用JTAG接口进行下载的常规设计流程。
4、掌握使用SIGNALTAP II进行硬件采样的具体过程。
二 实验前的准备
1、将红色的MODUL_SEL拨码开关组合的1、2、8拨上,3、4、5、6、7拨下,使数码管显示当前模式为:C1.
2、检查JTAG TO USB转换接口和USB连接线的连接,并且将JTAG线连接到核心板上的JTAG接口(核心板的第二个十针的插口)处。
三 实验要求
设计一个含异步清零RST,同步使能EN,进位输出COUT的4位12进制计数器的VHDL实现方案。
四 实验内容
1、建立CNT12B的工程,利用VHDL语言设计多功能计数器的程序文件,并对其进行编辑,保存,综合。给出各语句的作用的说明。
2、给出VHDL设计方案的时序仿真波形,根据波形详细描述设计的功能特点。
3、锁定好引脚(附录1),并进行硬件下载测试。采用板载时钟(50MHz,PIN_L1)输入作为计数器时钟。LED会有连续亮度的区别。此外,在实验箱上测试所有控制信号和输出信号,包括异步清零RST(PIN_AB17)、同步使能EN(PIN_U18)的同步和异步特性。
4、将实验过程和实验结果的测试详细过程写进实验报告。
(1)5、使用SIGNALTAP II 对此计数器进行实时测试,要求,计数器时钟输入采用50MHz,使用ENA的上升沿作为触发,采样深度128,采样时钟采用50MHz时钟输入。将实时采集的数据图形写进实验报告,并对其作出分析。
五 电路设计、仿真与硬件分析
(1)多功能计数器的设计代码
多功能计数器的设计代码图
(2)时序图与端口设置
多功能计数器时序图(已添加端口)
端口设置图
(3)仿真波形
(4)RTL图
分析:功能是在每个上升沿时递增计数,当计数值达到11时,将复位为0。同时,当计数值达到1011时,输出一个进位信号。各端口的作用如下:
CLK | 时钟信号,用于触发计数器的工作。如果时钟信号(CLK)的上升沿发生,并且使能信号(EN)为高电平,则执行递增操作。当计数值达到11时,将其重置为0。 |
RST | 复位信号,当为低电平('0')时,将计数器复位为0。如果复位信号(RST)为低电平,将变量 Q 的所有位设置为0。 |
EN | 使能信号,当为高电平('1')时,允许计数器递增。如果时钟信号(CLK)的上升沿发生,并且使能信号(EN)为高电平,则执行递增操作。当计数值达到11时,将其重置为0。 |
DOUT | 进位输出,当计数值达到1011时为高电平('1'),否则为低电平('0')。判断是否达到1011,如果是,设置进位信号(COUT)为高电平,否则为低电平。将当前计数值赋给输出端口 DOUT。 |
COUT | 进位输出,当计数值达到1011时为高电平('1'),否则为低电平('0')。判断是否达到1011,如果是,设置进位信号(COUT)为高电平,否则为低电平。将当前计数值赋给输出端口 DOUT。 |
PROCESS | 基于时钟的进程,当时钟信号(CLK)发生上升沿时执行。 |
VARIABLE Q | 一个4位的变量,用于存储当前计数值。 |
(5)实际硬件运行图
多功能计数器实际硬件运行图
(6)signalTAP II运行结果
多功能计数器signalTAPII运行结果
逻辑分析仪运行分析:
此代码运行之后可以正常运行,每个时钟上升沿时递增,允许复位和使能控制;输出的4位计数值在0到11之间循环,并在达到11时复位为0,而且进位信号在计数值达到1011时为高电平,否则为低电平。
六.实验结论
由仿真试验可知:
(1)设计功能正确,成功实现了异步清零RST,同步使能EN,进位输出COUT的四位十二进制计数器;
(2)EN为使能控制端,当其为高电平时正常计数,当其为低电平时暂停计数;RST为清零控制端,当其为低电平时清零;CLK为时钟信号,由时钟信号的上升沿触发计数;
(3)从仿真结果图可以发现,凡当计数从9计到10时有一毛刺信号,如果器件速度高,且系统优化恰当,不一定会出现毛刺。
由硬件测试可知
(1)硬件测试成功,成功绑定了对应端口。
(2)从Signal Tap II结果观察得知,可以实现计数,完成了实现了对应电路的设计。