目录
一、 课程设计任务: ..................................................................................................................... 2 二、 课程设计原理: ..................................................................................................................... 2 三、 课程设计所需仪器: ............................................................................................................. 2 四、 课程设计使用的硬件资源及原理框图: ............................................................................. 2 五、 设计过程及操作: ................................................................................................................. 3
1、 FTCTRL测频控制模块: ............................................................................................... 3 2、 计数器模块: ................................................................................................................... 3 3、 REG32B锁存器模块 ....................................................................................................... 3 4、 DECL7S译码器模块 ....................................................................................................... 4 5、 分频器模块 ....................................................................................................................... 4 6、 MUX多路选择器模块。 ................................................................................................ 4 7、 器件连接: ....................................................................................................................... 4 8、 操作过程: ....................................................................................................................... 4 六、 设计各个模块代码: ............................................................................................................. 5
1:FTCTRL模块 ..................................................................................................................... 5 2:CNT_10计数器模块 .......................................................................................................... 5 3:REG32B锁存器模块 ......................................................................................................... 6 4:DECL7S译码器模块 ......................................................................................................... 6 5:any_10 10分频器模块 ....................................................................................................... 7 6:any_5 5分频器模块 ........................................................................................................ 7 7:any_16 16分频模块 ........................................................................................................ 8 8:MUX多路选择器模块 ...................................................................................................... 9 9:顶层例化代码 ..................................................................................................................... 9 七、总电路: ................................................................................................................................. 12 八、管脚配置: ............................................................................................................................. 13 九、设计结果: ............................................................................................................................. 14
1
一、课程设计任务: 设计8位十进制频率计
二、课程设计原理:
根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1秒的对输 入信号脉冲计数允许的信号;1秒计数结束后,计数值锁入锁存器的锁存信号和为下一测频 计数周期作准备的计数器清0信号。这清0个信号可以由一个测频控制信号发生器TESTCTL 产生,它的设计要求是,TESTCTL的计数使能信号CNT_EN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的EN使能端进行同步控制。当CNT_EN高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD 的上跳沿将计数器在前1秒钟的计数值锁存进各锁存器REG4B中,并由外部的7段译码器译出,显示计数值。设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。锁存信号之后,必须有一清零信号RST_CNT对计数器进行清零,为下1秒钟的计数操作作准备。
三、课程设计所需仪器:
Altrea DE2-115实验箱;quartusII 12.1;modelsim仿真软件。
四、课程设计使用的硬件资源及原理框图: 1、50MHz时钟源两个 2、拨动开关
3、7段数码管/液晶显示屏
2
五、设计过程及操作:
1、FTCTRL测频控制模块:
频率计的核心控制部分为FTCTRL,该模块的技术是能信号CNT_EN能产生一个1s脉宽的周期信号(由于实验箱提供的是50MHz的高频信号,所以需要通过分频器获得1s脉宽信号),并对频率计中的计数器的EN使能端进行同步测控。当CNT_EN高电平时允许计数;低电平时停止计数,并保持其所设计的脉冲数。在停止计数期间,首先需要一个锁存信号LOAD的上升沿将计数器在前一秒钟的计数器的计数值锁存进锁存器REG32B中,并由外部的十六进制7段译码器译出,显示计数值。锁存信号后,必须有一清零信号RST_CNT对计数器清零,为下一秒的计数操作做准备。
2、计数器模块:
由于设计要求为8位十进制输出,所以采用的是十进制加法带进位的计数器级联的形式完成计数功能,每个单独的计数器有4位的十进制DOUT(3 DOWNTO 0)输出和一个进位COUT输出,输入的RST复位端、EN使能端和计数信号CLK端。级联时,将被测信号接入第一个各位的CNT_10计数器的CLK端,并且将每上一个的进位端与下一个的计数器CNT_10的计数CLK相连。
3、REG32B锁存器模块
锁存器为32位,包括一个锁存信号LK,32位的输入和输出。
3
4、DECL7S译码器模块
因为每个计数器输出的是二进制数,所以转化到七段数码管上需要通过4-7译码器译码。实验箱的数码管为共阳极。需要8个数码管同时显示,所以需要8个译码器。
5、分频器模块
由于实验箱只提供50MHz的信号,所以需要分频得到1Hz的信号以及不同的频率进行测试,所以需要分频器。本设计分频器采用的是5分频器any_5、10分频器any_10和16分频器any_16。
6、MUX多路选择器模块。
由于实验箱提供的信号源有限,所以要进行测试,必须使用多路选择器来进行对不同的分频信号进行测试来验证频率计的功能是否完成。本次设计采用的是4选1多路选择器。
7、器件连接:
以上各部份器件已经完善。需要将这些器件连接起来完成最终的设计,所以本次设计采取了元件例化,用例化语句将各个器件连接起来。顶层文件见代码段。
8、操作过程: A建立项目 B选择器件:
器件系列(Device Family) Cyclone IV E
器件型号(Available Devices) EP4CE115F29C7 C建立设计文档,new vhdl file,并编辑保存。
D点击按键栏(或Processing菜单中)的Start compilation 进行编译
E编译正确完成后,点击按键栏(或Assignments菜单中)的Pin Planner进行引脚锁定 F双击Location栏,在下拉菜单中选择需要锁定的引脚(EP4C115F芯片引脚分布详见附录)
G再次编译项目 H连接实验箱 I 程序下载 点击按键栏(或Tools菜单)的Programmer,此时没有添加硬件,点击Hardware Setup选择硬件。在Currently selected hardware下拉菜单中选择USB-Blaster后,点击Close,回到Programmer页面。在Hardware Setup栏中可看到USB-Blaster。注意Mode为缺省的JTAG接口硬件选择完毕。点击Start开始下载。Progress进度完成后下载完毕。
4
六、设计各个模块代码:
1:FTCTRL模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY FTCTRL IS
PORT ( CLKK :IN STD_LOGIC;
CNT_EN,RST_CNT :OUT STD_LOGIC; LOAD: OUT STD_LOGIC ); END FTCTRL;
ARCHITECTURE behav of FTCTRL IS SIGNAL DIV2CLK :STD_LOGIC :='0'; BEGIN
PROCESS (CLKK) BEGIN
IF CLKK 'EVENT AND CLKK='1' THEN DIV2CLK<=NOT DIV2CLK; END IF;
END PROCESS;
PROCESS (CLKK,DIV2CLK) BEGIN
IF CLKK='0' AND DIV2CLK='0' THEN RST_CNT<='1'; ELSE RST_CNT<='0';END IF; END PROCESS;
LOAD <=NOT DIV2CLK; CNT_EN <=DIV2CLK; END behav;
2:CNT_10计数器模块
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY CNT10 IS
PORT( RST ,EN,CLK: IN STD_LOGIC; COUT :OUT STD_LOGIC;
DOUT :OUT STD_LOGIC_VECTOR(3 DOWNTO 0)); END CNT10;
ARCHITECTURE BHV OF CNT10 IS BEGIN
PROCESS(CLK,RST,EN)
VARIABLE Q1 :STD_LOGIC_VECTOR(3 DOWNTO 0);
5
基于VHDL语言的频率计设计



