华农FPGA实验_实验三 数控分频器的设计

一 实验目的

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分频器的时序仿真

如图为十二分频的仿真时序图

十二分频的时序图

如图为七分频的仿真时序图

七分频仿真时序图

4SignalTAP II运行结果与分析

十二分频的运行结果图

分析:对于每六个输入时钟周期,输出时钟 CLK_OUT 的状态会翻转一次,从而实现了十二分频。通过递增 COUNT 直到5,然后将其复位为零,并在每次复位时翻转输出时钟状态,以实现分频。

分频的运行结果图

分析:实现了一个七分频器,其中包含两个计数器,分别在时钟的上升沿和下降沿进行操作;通过对计数器状态的控制,实现了七分频的功能。其中输出包括两个独立的七分频信号 K1 和 K2,以及它们的逻辑 OR 结果 K_OR。

5)实际硬件运行情况

十二分频的实验硬件运行情况

六.实验总结

由仿真试验可知:

  1. 设计功能正确,实现12分频器和7分频器都带计数使能;
  2. 由仿真结果图可知:偶数分频器是当计数器计数到N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号;奇数分频器需要对待分频时钟上升沿和下降沿分别进行N/(2N-1)分频,然后将两个分频所得的时钟信号相或

由硬件测试可知

(1)硬件测试成功,成功绑定了对应端口。

(2)从Signal Tap II结果观察得知,可以实现计数,完成了实现了对应电路的设计。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值