基于vhdl语言数字频率计的设计说明书内容摘要:

信号输入 tkeep1:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 计数值个位 tkeep2:OUT STD_LOGIC_VECTOR(3 DOWNTO 0)。 计数值十位 tkeep3:OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。 计数值百位 END ENTITY frequency。 ARCHITECTURE one OF frequency IS SIGNAL tcou1:STD_LOGIC_VECTOR(3 DOWNTO 0)。 内部计数值个位 SIGNAL tcou2:STD_LOGIC_VECTOR(3 DOWNTO 0)。 内部计数值十位 SIGNAL tcou3:STD_LOGIC_VECTOR(3 DOWNTO 0)。 内部计数值百位 BEGIN ctrcou:PROCESS(treset,tclk) 控制计数功能的进程 BEGIN IF treset=39。 139。 THEN tcou1=0000。 tcou2=0000。 tcou3=0000。 ELSE IF tclk39。 EVENT and tclk=39。 139。 THEN IF tsig=39。 139。 THEN 时基信号高 电平为判断条件有效的时候遇到时钟上升沿触发 IF tcou3=1010THEN tcou3=1010。 如果百位为 10,百位不变 ELSE IF tcou1=1001AND tcou2=1001AND tcou3=1001THEN 如果计数值为 999 tcou1=0000。 tcou2=0000。 tcou3=1010。 则计数值百位变成 10,十位、个位变成 0 ELSIF tcou1=1001AND tcou2=1001THEN 如果百位小于 9,十位为 9 且个位为 9 的时候 通 信 工 程 专 业 课 程 设 计 Ⅱ 10 tcou1=0000。 tcou2=0000。 tcou3=tcou3+1。 百位数值加 1,十位、个位清零 ELSIF tcou1=1001THEN 如果百位和十位都小于 9 且个位为 9 的时候 tcou1=0000。 tcou2=tcou2+1。 个位清零,十为数值加 1 ELSE tcou1=tcou1+1。 其他情况就是个位数值加 1 END IF。 END IF。 ELSE tcou1=0000。 tcou2=0000。 tcou3=0000。 END IF。 END IF。 END IF。 END PROCESS ctrcou。 oputctr:PROCESS(treset,tsig) 控制数值输出的进程 BEGIN IF treset=39。 139。 THEN tkeep1=0000。 tkeep2=0000。 tkeep3=0000。 ELSE IF tsig39。 EVENT AND tsig=39。 039。 THEN 时钟下降沿触发输出各位数值 tkeep1=tcou1。 tkeep2=tcou2。 tkeep3=tcou3。 END IF。 END IF。 END PROCESS oputctr。 END one。 七段译码器将 4 位 BCD 码以七段译码器的形式输出。 可以使用一个 7 位向量来分别表示 7段译码器中的 7 段。 程序如下: LIBRARY IEEE。 USE。 USE。 USE。 ENTITY display IS PORT(data_in:IN STD_LOGIC_VECTOR(3 DOWNTO 0)。 通 信 工 程 专 业 课 程 设 计 Ⅱ 11 输入为 4 位 二进制数,范围从 0 到 9 data_out:OUT STD_LOGIC_VECTOR(0 DOWNTO 6))。 7 段译码输出 END ENTITY display。 ARCHITECTURE one OF display IS SIGNAL indata:STD_LOGIC_VECTOR(3 DOWNTO 0)。 内部数值信号 BEGIN PROCESS(data_in) 输出入信号作为进程的敏感触发进程 BEGIN indata=data_in。 将输入信号赋值给内部数值信号 CASE indata IS WHEN0000=data_out=1111110。 0 到 7 段译码 (以下类推 ) WHEN0001=data_out=0110000。 WHEN0010=data_out=1101101。 WHEN0011=data_out=1111001。 WHEN0100=data_out=0110011。 WHEN 0101=data_out=1011011。 WHEN 0110=data_out=1011111。 WHEN 0111=data_out=1110000。 WHEN 1000=data_out=1111111。 WHEN 1001=data_out=1111011。 WHEN OTHERS=data_out=0110001。 其他时候输出出错表示 END CASE。 END PROCESS。 END one。 错误 !未找到引用源。 数字频率计的综合设计 要设计的数字频率计需要 3 个输入端口,一个脉冲输入端口 clk(频率为20MHZ);一个异步复位端口 reset,用于使系统回到初始状态;还有一个就是测试信号的输入端口 testsignal,用于输入待测的信号。 该频率计需要 7 个输出端口,要有一个表示是显示频率还是周期的输出端口unit;还有 3 个显示频率值的 7 端译码输出端口 display1,display2 和 diaplay3,以及 3 个小数点输 出端口 dot向量。 程序如附录 错误 !未找到引用源。 方案二 本方案是由 8 位十进制数字频率计的电路逻辑图,它由一个测频控制信号发生器通 信 工 程 专 业 课 程 设 计 Ⅱ 12 TESTCTL, 8 个有时钟使能的十进制计数器 CNT10,一个 32 位锁存器 REG32B 组成。 以下分别叙述频率计各逻辑模块的功能与设计方法。 频率测量的基本原理使计算每秒钟内待测信号的脉冲个数,这就要求 TESTCTL 的计数使能信号 TSTEN 能产生一个 1秒脉宽的周期信号,并对频率计每一计数器 CNT10的 ENA 使能端进行同步测控。 当 TETEN 高电频时允许计数;低电频时,停止计数,并保持其所计的数。 在停止计数期间,首先需要一个锁存信号 LOAD 的上跳沿将计数器在前一秒钟的计数值锁存进 32 位锁存器 REG32B 中,并由外部的七段译码器译出并稳定显示。 锁存信号之后,必须有一个清零信号 CLR_CNT 对计数器进行清零,为下 1秒钟的技术操作作准备。 REG32B 的设计 设置锁存器的好处是,显示的数据稳定,不会由于周期性的清零信号而不断闪烁。 若已有 32 位 BCD 码存在于此模块的输入端口,在信号 LOAD 的上升 沿后即被锁存到寄存器 REG32B 的输出端输出,然后由实验板上的 7 段译码器译成能在数码管上显示的相对的数值。 CNT10 的设计 设计一个有一时钟使能输入端 ENA,用于锁定计数值。 当高电平时计数允许,低电平时计数禁止。 方案比较 方案一可同时实现测频率和测周期两个功能,且可实现小数点随量程变化自动移位的功能,测试的最大频率能达到 1MHZ。 同时采用了记忆显示方法,及测量过程中不显示数据,待测量过程结束以后,显示测频结果,并将此结果保持到下次测量结束。 虽然实现的功能较多,但是程序繁杂, 且管脚众多,实验室无法达到此程序所需的硬件要求。 而方案二仅仅只能测量频率,测量范围为 99999999HZ,其程序分块明了,调用简单。 与方案一比较方案二更为合理。 方案改造 方案二虽然程序分块明了,调用简单。 但是范围达到 99999999HZ,实验室器材无法达到所要管脚的要求,故改为 4为计数器来计数,范围达到 9999HZ。 此时 32位锁存器 REG32B 应该为 16位锁存器 REG16B。 通 信 工 程 专 业 课 程 设 计 Ⅱ 13 第 4 章 利用 VHDL 语言设计频率计 系统功能的分析与电路设置 由于多功能数字频率计是一个需对数字信号 进行测量和显示的系统,因此需要设置控制电路、计数电路、锁存电路和译码电路等。 测控电路是对计数电路进行工作和时序控制。 锁存电路的主要功能是对计数输出的数据进行锁定保存,即使在前级计数电路的计数器清零以后,锁存器是对单个十进制计数器进行保存,因此锁存器的个数由前一级计数电路的十进制计数器的个数决定。 译码显示电路由译码器和显示器构成。 译码器的功能是,将锁存器保存并输出的四位二进制代码表示的十进制数进行译码转换,将其转换能直接驱动数码管显示与其对应的十进制数字字符的输出信号。 显示器由数码管电路构成。 由于被测信号可能 具有多个位数的频率,因此需要多个数码管对其进行显示(本实验需要 4 个)。 测频原理 图 测试原理框图 如图 预测门信号是一个脉冲, t t2 是十进制计数器。 测频模块工作描述及 VHDL程序 各个模块的描述在方案二里已经介绍,这里只介绍各个模块的 VHDL 程序。 计数模块( CNT10) Library IEEE。 Use。 Entity CNT10 is Port(CLK:IN STD_LOGIC。 计数时钟信号 D Q CNT1 CLKEN CLK OUT CLR CNT2 CLKEN CLK OUT CLR 通 信 工 程 专 业 课 程 设 计 Ⅱ 14 ClR:IN STD_LOGIC。 清零信号 ENA:IN STD_LOGIC。 计数使能信号 CQ:OUT INTEGER RANGE 0 TO 15。 4。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。