一 实验目的
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接口(核心板的第二个十针的插口)处。
三 实验要求
分别设计带计数使能的12分频器和7分频器的VHDL实现方案
四 实验内容
(一)12分频器的设计
1、根据偶数分频器的原理确定12分频器的设计方案和主要实现流程。
2、建立DIV12的工程,利用VHDL语言设计12分频器的主体程序文件,并对其进行编辑,保存,综合。给出各语句的作用的说明。(VHDL描述方法)
3、对12分频器的设计方案进行时序仿真,并根据波形详细描述设计的功能特点。
(二)7分频器的设计
1、根据奇数分频器的原理确定7分频器的设计方案和主要实现流程。
2、建立DIV7的工程,利用VHDL语言设计7分频器的主体程序文件,并对其进行编辑,保存,综合。给出各语句的作用的说明。
3、对7分频器的设计方案进行时序仿真,并根据波形详细描述设计的功能特点。
(三)硬件功能测试
1、使用SIGNALTAP II 分别对12分频器和7分频器进行实时测试。
2、对12分频器,时钟采用50MHz输入。然后将网表文件下载到实验箱芯片中,观察LED灯是否被点亮。之后,采用SignalTAP II采集12分频的数据。在SignalTAP II中,采集数据采用50MHz作为时钟,采用深度128,可不设置触发。将实时采集的数据图形写进实验报告,并对其作出分析。
3、对7分频器,由于在分频时,VHDL程序采用了两个PROCESS语句,检测时钟的上升沿和下降沿,要求,分频器时钟输入采用25MHz(可在CLK输入后接入一个二分频器实现25MHz),使用ENA的上升沿作为触发,采样深度128,采样时钟采用50MHz时钟输入。将实时采集的数据图形写进实验报告,并对其作出分析。
4、将实验过程和实验结果的测试详细过程写进实验报告。
五.实验电路设计、仿真与硬件测试
(1)分频器设计代码
如图为十二分频分频器的代码图
十二分频分频器代码图
如图为七分频分频器的代码图
七分频分频器代码图、
(2)分频器的RTL图与分析
如图为十二分频器的RTL图
十二分频器的RTL图
分析:
CLK0 | 输入时钟信号,这是需要分频的时钟。 |
CLK_OUT | 输出时钟信号,是输入时钟信号的十二分频。 |
OUTQ | 一个内部信号,用于存储输出时钟信号的状态。 |
COUNT | 一个临时变量,用于计数时钟的上升沿。 在时钟信号(CLK0)的上升沿检测条件,并递增 COUNT。 当 COUNT 小于5时,什么都不做,只是递增 COUNT。 当 COUNT 达到5时,重置 COUNT 为零,并将 OUTQ 取反,这样可以实现十二分频。 输出时钟信号 CLK_OUT 被赋予 OUTQ 的值,实现了十二分频的输出。 |
如图为七分频器的RTL图
七分频器的RTL图
分析:
CLK | 输入时钟信号,这是需要分频的时钟。 |
K_OR、K1、K2 | 输出信号,其中 K1 和 K2 是两个独立的七分频输出,而 K_OR 是这两个输出的逻辑 OR。 |
C1、C2 | 两个计数器,分别用于实现两个不同相位的七分频。 |
M1、M2 | 两个辅助信号,表示两个计数器是否需要进行状态切换。 在每个时钟上升沿检测,如果 C1 的当前状态为 "110",则将其重置为 "000",否则递增 C1。 如果 C1 的当前状态为 "011" 或 "110",则翻转 M1 的状态。 在每个时钟下降沿检测,如果 C2 的当前状态为 "110",则将其重置为 "000",否则递增 C2。 如果 C2 的当前状态为 "011" 或 "110",则翻转 M2 的状态。 |
K1 和 K2 | K1 和 K2 分别设置为 M1 和 M2 的状态,表示两个独立的七分频输出。 |
K_OR | K_OR 设置为 M1 OR M2,表示两个输出的逻辑 OR。 |
(3)分频器的时序仿真
如图为十二分频的仿真时序图
十二分频的时序图
如图为七分频的仿真时序图
七分频仿真时序图
(4)SignalTAP II运行结果与分析
十二分频的运行结果图
分析:对于每六个输入时钟周期,输出时钟 CLK_OUT 的状态会翻转一次,从而实现了十二分频。通过递增 COUNT 直到5,然后将其复位为零,并在每次复位时翻转输出时钟状态,以实现分频。
七分频的运行结果图
分析:实现了一个七分频器,其中包含两个计数器,分别在时钟的上升沿和下降沿进行操作;通过对计数器状态的控制,实现了七分频的功能。其中输出包括两个独立的七分频信号 K1 和 K2,以及它们的逻辑 OR 结果 K_OR。
(5)实际硬件运行情况
十二分频的实验硬件运行情况
六.实验总结
由仿真试验可知:
- 设计功能正确,实现12分频器和7分频器都带计数使能;
- 由仿真结果图可知:偶数分频器是当计数器计数到N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号;奇数分频器需要对待分频时钟上升沿和下降沿分别进行N/(2N-1)分频,然后将两个分频所得的时钟信号相或
由硬件测试可知
(1)硬件测试成功,成功绑定了对应端口。
(2)从Signal Tap II结果观察得知,可以实现计数,完成了实现了对应电路的设计。