精品基于VHDL的12位十进制数字频率计的设计仿真论文.doc

精品基于VHDL的12位十进制数字频率计的设计仿真论文.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
精品基于VHDL的12位十进制数字频率计的设计仿真论文

基于VHDL的12位十进制数字频率计的设计仿真 一、功能与要求: 该计数器的功能:对被测试信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,同时将计数器清零,为下一次采样测量做好准备。要求如下: 1.用VHDL完成12位十进制数字频率计的设计及仿真。 2.频率测量范围:1Hz~10KHz,分成两个频段,即1~999Hz,1KHz~10KHz,用三位数码管显示测量频率,用LED显示表示单位,如亮绿灯表示Hz,亮红灯表示KHz。 3.具有自动校验和测量两种功能,即能用标准时钟校验、测量精度。 4.具有超量程报警功能,在超出目前量程档的测量范围时,发出灯光和音响信号。 二、设计思路 图2.1是频率计数器的原理图。 图2.1频率计数器的原理图 1、基本原理:计算单位时间内待测信号的脉冲个数,各模块设计成process。 测量/校验选择模块(test_meas) 测频控制信号发生器(二分频)(clk_process) 计数器模块(cnt_process) 送存选择、报警模块(tostore_process) 锁存模块(store_process) 扫描显示模块(cnt3_process,bus_process, disp_process) 2、各模块功能 图2.2测量校验选择 如图2.2为测量/校验选择模块,该模块的信号如下: 输入信号:选择信号selet,被测信号meas,测试信号test; 输出信号:CP1。 当selet=0时,为测量状态,CP1=meas;当selet=1时,为校验状态,CP1=test。 校验与测量共用一个电路,只是被测信号CP1不同而已。 图2.3测频控制信号发生器(二分频) 如图2.3为测频控制信号发生器(二分频),该模块的信号如下: 输入信号:1HZ时钟信号; 输出信号:1秒定时信号(周期为2秒)。 图2.4计数器、送存选择、报警模块 1、如图2.4为计数器、送存选择、报警模块,模块的功能如下: 设置:量程档控制开关K,单位显示信号Y, 当K=0时,为1~999Hz量程档,数码管显示的数值为被测信号频率值,unit显示绿色,即单位为Hz; 当K=1时,为1KHz~10KHz量程档??被测信号频率值为数码管显示的数值乘1000,unit显示红色,即单位为KHz。 2、其中四级十进制计数器模块(带进位C)模块功能如下: 输入信号:RD、CP,用于计数开始、清零、锁存 输出信号:Q4~Q1设置超出量程档测量范围示警信号alert。 若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz;如果被测信号频率超过此范围,示警信号驱动灯光、扬声器报警; 若被测信号为1KHz~10KHz(K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围,报警。 3、送存选择、报警电路状态表如表2.1。 表2.1送存选择、报警电路状态表 图2.5锁存,扫描显示模块 图2.5为锁存、扫描显示模块,该模块功能如下: 锁存器输入信号:D3~D1,LD; 输出信号:Q3~Q1 ,小数点单位显示unit。 图2.6扫描显示电路 如如2.6扫描显示电路,该模块包含两个模块: 七段显示译码器电路(DEC_LED); 分时总线切换电路(SCAN)。 三、原理图说明 图3.1频率计显示原理图 如图3.1,输入有扫描时钟clkscan,分频时钟clk1hz,单位选择键K,被测信号meas,测试信号test,测试校验选择键sel。 输出有数码管信号led,数码管选择信号ms123,报警信号alert,单位显示信号unit。 四、源代码说明 --实体声明 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; entity dig_frq is Port ( clk1hz : in STD_LOGIC; clkscan : in std_logic; test : in STD_LOGIC; meas : in STD_LOGIC; sel : in STD_LOGIC; k : in STD_LOGIC; alert : out STD_LOGIC; unit : out STD_LOGIC; ms123 : out STD_LOGIC_VECTOR (2 downto 1); led : ou

文档评论(0)

sanshengyuan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档