- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
武汉职业技术学院电信学院
武汉职业技术学院电信学院
湖北职业技术学院
《EDA 技术》课程设计报告
题 目 动态输出 4 位十进制频率计的设计
所在学院 电子信息工程学院
专业班级 电信 08304
学生姓名 马 强
学 号指导教师 王 芳
完成日期 2010 年 11 月 18 日
目 录
一、概述 3
二、设计正文 4
(一)设计目的 4
(二)设计实现 4
1、端口说明 4
2、Cnt10 模块说明 5
3、Tctl 模块说明 6
4、锁存器reg16 模块说明 8
5、Scan_led 模块说明 9
6、顶层文件仿真 10
7、硬件下载 11
三、总结 13
四、感言 14
五、参考文献 15
概 述
此次设计的主要目的是学习掌握频率计的设计方法;掌握动态扫描输出电路的实现方法;学习较复杂的数字系统设计方法。通过单位时间(1 秒)内频率的计数来实现频率计的设计。此设计主要用四位十进制计数器,所以频率计数范围为100~9999Hz。然后锁存防止闪烁显示,最后由译码扫描显示电路输出到数码管进行显示输出。并且下载后会有一秒钟的延时后才会显示输出所计频率输出。设计下载后能够进行仿真频率的计数和静态显示,但是分频的设计程序有所缺陷导致长时间显示后会有 1Hz 的抖动。通过这次的设计能够更清楚的理解VHDL 程序的描述语言,进行简单程序的编写和仿真。
动态输出 4 位十进制频率计的设计
一、目的
学习掌握频率计的设计方法。
掌握动态扫描输出电路的实现方法。
学习较复杂的数字系统设计方法
二、设计实现
4 位十进制频率计外部接口如图 1 所示,顶层文件如图 2 所示, 包含 4 中模块;Tctl、reg16、scan_led 和 4 个cnt10。
端口说明
F1Hz:给Tctl 模块提供 1Hz 的频率输入。Fin:被测频率输入。
scan_led:给 scan_led 模块提供扫描输入频率输入。bt[1..0]:片选信号输出。
sg[6..0]:译码信号输出。cout:进位输出。
武汉职业技术学院电信学院
图一 四位十进制频率计的外部接口
图二 四位十进制频率计顶层文件
cnt10 模块说明
cnt10 为含异步清零和同步时钟使能的十进制计数器,采用级联的方法进行计数,计数范围与所用 cnt10 级联个数有关,本次设计采用的是四个cnt10 的级联,所以测频范围为 0~9999Hz。
计数模块cnt10 的源代码如下所示:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY cnt10 IS
PORT(rst,en,clk:IN STD_LOGIC;
Q:OUT STD_LOGIC_VECTOR(3 DOWNTO 0);
武汉职业技术学院电信学院
cout:OUT STD_LOGIC);
END cnt10;
ARCHITECTURE BEHAV OF cnt10 IS
SIGNAL cnt:STD_LOGIC_VECTOR(3 DOWNTO 0);
BEGIN
PROCESS(rst,en,clk)
BEGIN
IF rst=1THEN cnt=0000;
ELSIF(clkEVENT AND clk=1)AND en=1THEN
IF cnt=1001THEN
cnt=0000;
cout=1;
ELSE
cnt=cnt+1;
cout=0;
END IF;
END IF;
END PROCESS;
Q=cnt;
END BEHAV;
Tctl 模块说明
根据频率的定义和测量的基本原理,测定信号的频率必须有一个
脉宽为 1 秒的对输入信号脉冲计数允许的信号;1 秒计数结束后,计
数值锁入锁存器的锁存信号和为下一测频计数周期做准备的计数器
清 0 信号。这三个信号可以由一个测频控制信号发生器Tctl 产生,
其设计要求是Tctl 的计数使能信号en 能产生一个 1 秒脉宽的周期信
号,并对频率计的每一计数器cnt10 的 en 使能进行同步控制、当en
高电平时,允许计数;低电平时停止计数,并保持其所计的脉冲数。
在停止计数期间,首先需要一个锁存信号load 的上升沿将计数器前
1 秒钟的计数值锁存进各锁存器reg16 中,并由外部的译码器译出并
显示计数值。锁存信号之后,必须有一清零信号 rst 对计数器进行清
零,为下 1 秒钟的技术操作做准备。
武汉职业技术学院电信学院
控制模块Tctl 源代码如下:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY Tctl IS
PORT
文档评论(0)