VHDL课程设计报告 频率计.docx

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

自适应数字频率计数器设计1. 前言传统的数字频率计一般是由分离元件搭接而成,用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差大、可靠性差。后来随着单片机的大规模的应用, 出现了不少用单片机控制的频率测量系统。相对于以前用分离元件搭接起来的频率测量系统, 单片机控制的频率测量系统在频率测量范围、频率测量精度和频率测量速度上都有了很大的提高。但由于单片机工作频率的限制、单片机内部计数器位数的限制等因素, 由单片机控制的频率测量系统无法在频率测量范围、频率测量精度和频率测量速度上取得重大突破。若再增加别的器件, 以弥补单片机的不足, 不仅会大大增加系统的复杂性, 而且不利于系统的集成化。以E D A 工具作为开发平台,运用V H D L 语言,将使整个系统大大简化,从而提高整体的性能和可靠性。 本课题采用的是等精度数字频率计,在一片FPGA开发板里实现了数字频率计的绝大部分功能, 它的集成度远远超过了以往的数字频率计。又由于数字频率计最初的实现形式是用硬件描述语言写成的程序, 具有通用性和可重用性。 所以在外在的条件(如基准频率的提高, 基准频率精度的提高)的允许下,只需对源程序作很小的改动, 就可以使数字频率计的精度提高几个数量级。同时对于频率精度要求不高的场合, 可以修改源程序, 使之可以用较小的器件实现, 从而降低系统的整体造价。2. 设计要求设计一个频率计,频率测量范围为1-9999KHZ,量程分别为10 、100、 1M三档,要求如下:a. 当读数大于999时,频率计处于超量程状态,下一次测量时,量程自动增大1档b. 当读数小于099时,频率计处于欠量程状态,下一次测量时,量程自动减小1档c. 当超过频率范围时,显示器自动溢出3.整体设计当被测频率进入时候,档位1、2能自动换挡实现功能,在档位1中,有一个LED灯亮(表示Hz);档位2中有2个LED灯亮(表示kHz);当计数频率超出9999kHz的时候,显示“E”而且LED灯全部熄灭,表示溢出功能。在程序代码中,必须要清晰表示出计数的运行状况。档位1:当被测频率为0—9999Hz时候,直接显示f x的值(单位为Hz);档位2:当被测频率为10k—9999kHz时候,显示10-9999(单位kHz);4. 设计原理根据频率的定义和频率测量的基本原理,测定信号的频率必须有一个脉宽为1 秒的输入信号脉冲计数允许的信号;1 秒计数结束后,计数值被锁入锁存器,计数器清0,为下一测频计数周期作好准备。测频控制信号可以由一个独立的发生器来产生。5. 设计程序5.1顶层文件LIBRARY IEEE; --频率计顶层文件LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQTEST ISPORT ( CLK1HZ : IN STD_LOGIC;FSIN : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);LED : OUT STD_LOGIC_VECTOR(1 DOWNTO 0) );END FREQTEST;ARCHITECTURE struc OF FREQTEST ISCOMPONENT FTCTRLPORT (CLKK : IN STD_LOGIC; -- 1HzCNT_EN : OUT STD_LOGIC; -- 计数器时钟使能RST_CNT : OUT STD_LOGIC; -- 计数器清零Load : OUT STD_LOGIC ); -- 输出锁存信号END COMPONENT;COMPONENT COUNTERPORT (FIN : IN STD_LOGIC; -- 时钟信号CLR : IN STD_LOGIC; -- 清零信号ENABL : IN STD_LOGIC; -- 计数使能信号DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); -- 计数结果END COMPONENT;COMPONENT REG32BPORT ( LK : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(15 DOWNTO 0);LEDOUT : OUT STD_LOGIC_VECTOR(1 DOWNTO 0));END COMPONENT;SIGNAL TSTEN1 : STD_LOGIC;SIGNAL CLR_CNT1 : STD_LOGIC;SIGNAL Load1 : STD_LOGIC;SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL CARRY_OUT1 : ST

文档评论(0)

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

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

1亿VIP精品文档

相关文档