内容发布更新时间 : 2024/12/23 22:08:15星期一 下面是文章的全部内容请认真阅读。
中年CLK接clock2,若选择clock2=8Hz,门控信号CNT_EN的脉宽恰好为1s。然后建立一个新的原理图设计层次,在此基础上将其扩展为8位频率计,仿真测试改频率计待测信号的最高频率,并与硬件实测的结果进行比较。
三、实验仪器
1)计算机及操作系统; 2)QuartusII软件。 3)编程电缆。
四、实验原理
利用教材介绍的2位计数器模块,连接它们的计数进位,用四个计数模块就能完成一个8位有时钟使能的计数器;对于测频控制器的控制信号,在仿真过程中应该注意它们可能的毛刺现象。最后按照设计流程和方法即可完成全部设计。
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉冲宽度为1秒的输入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号并为下一测频计数周期做准备的计数器清0信号。这3个信号可以由一个测频控制信号发生器产生,即TESTCTL。
TESTCTL的计数是能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA是能端进行同步控制。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进个锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清0信号而不断闪烁。锁存信号后,必须有一清0信号RST_CNT对计数器进行清零,为下1秒的计数操作作准备。数字频率计的关键组成部分包括一个测频控制信号发生器、一个计数器和一个锁存器,另外包含外电路的信号整形电路、脉冲发生器、译码驱动电路和显示电路,其原理框图如图1所示。
信号整形电路 计数器 锁存器 译码驱动电路 数码显示 脉冲发生器 测频控制信号发生器
图1 数字频率计原理框图
工作原理:系统正常工作时,脉冲信号发生器输入1Hz的标准信号,经过测频控制信号发生器的处理,2分频后即可产生一个脉宽为1秒的时钟信号,以此作为计数闸门信号。测量信号时,将被测信号通过信号整形电路,产生同频率的矩形波,输入计数器作为时钟。当计数闸门信号高电平有效时,计数器开始计数,并将计数结果送入锁存器中。设置锁存器的好处是显示的数据稳定,不会由于周期性的清零信号而不断闪烁。最后将锁存的数值由外部的七段译码器译码并在数码管上显示。
五、实验步骤
1、完成32位寄存器的设计
1) 32位锁存器程序编译; 2) 32位锁存器程序允许生成模块; 3) 32位锁存器模块。 2、完成32位计数器的设计
1) 32位计数器程序编译; 2) 32位计数器程序允许生成模块; 3) 32位计数器。 3、完成频率计控制电路的设计
1)频率计控制电路程序编译;
2)频率计控制电路程序允许生成模块; 3)频率计控制电路。
4、完成一个8位16进制频率计电路的设计
1)8位16进制频率计电路程序编译;
2)8位16进制频率计电路程序允许生成模块; 3)8位16进制频率计电路。
六、实验结果及分析
1、测频控制器仿真波形:
图2 测频控制器仿真波形图
2、32位锁存器仿真波形:
图3 锁存器仿真波形图
3、32位计数器仿真波形:
图4 计数器仿真波形图
4、8位16进制频率计仿真波形如图7所示:
图5 8位十六进制频率计仿真波形
七、思考题
1、简述Quartus的设计流程。
答:Quartus II 图形用户界面的基本设计流程如下:
1)使用New Project Wizard(File菜单)建立新工程,并指定目标器件或器件系列;
2)使用Text Editor 建立 Verilog、VHDL 或 AHDL(Altera) 设计,用Block Editor 建立原理图或示意图;示意图中可以包含代表其他设计文件的符号,还可以使用MegaWizard Plug – In Manager(Tools菜单)生成宏功能模块和IP功能模块。
3)(可选)使用Assignment Editor、Settings对话框( Assignment 菜单)、Floorplan Editor、LogicLock功能 指定初始设计约束条件。
4)(可选)使用SOPC Builder 或 DSP Builder 建立系统级设计。 5)(可选)使用Software Builder 为 Excalibur 器件处理器或 Nios嵌入式处理器建立软件和编程文件。
6)使用 Analysis & Synthesis 综合设计。
7)(可选)使用Simulator 和 Generate Functional Simulation Netlist 命令在设计中仿真。
8)使用 Fitter 对设计执行布局布线。
9)使用PowerPlay、Power Analyzer 执行功耗估算和分析。 10)使用Timing Analyzer 对设计进行时序分析。 11)使用Simulator 对设计进行时序仿真。
12)(可选)使用物理综合、时序逼近(Timing Closure) 布局图、LogicLock功能、Settings对话框 和 Assignment Editor 进行时序改进,实现时序逼近。
13)使用Assembler 为设计建立编程文件。
14)使用编程文件Programmer 和 Altera 硬件对器件进行编程,或将编程文件转换为其他文件格式以供嵌入式处理器等其他系统使用。
15)(可选)使用SignalTap II Logic Analyzre、SignalProbe 功能 或 Chip Editor对设计进行调试。
16)(可选)使用Chip Editor 、Resource Property Editor 和 Change
Manager 进行工程更改管理。
2. 功能仿真与时序仿真有什么不同?
时序仿真使用的仿真器和功能仿真使用的仿真器是相同的,所需的流程和激励也是相同的;惟一的差别是为时序仿真加载到仿真器的设计包括基于实际布局布线设计的最坏情况的布局布线延时,并且在仿真结果波形图中,时序仿真后的信号加载了时延,而功能仿真没有。
3. 还有什么其他方法实现频率计功能?
答:用STC89C52RC单片机可以实现频率计的功能。
附1:全加器原理图
附2:频率计相关程序:测频控制电路
LIBRARY IEEE ;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FTCTRL IS