基于VHDL设计的频率计

合集下载

基于VHDL语言数字频率计的设计

基于VHDL语言数字频率计的设计

关于数字频率计设计[摘要]本报告介绍了一种以大规模可编程逻辑芯片为设计载体,由顶到底分层设计,多功能数字频率计的设计方法。

该频率计采用VHDL语言程序与原理图相结合的方法,极大地减少了硬件资源占用。

该数字频率计测量范围为0到9999HZ,基准频率为1HZ,结果用4只7段数码管显示十进制结果。

中间用到了设置控制电路、计数电路、锁存电路和译码电路等模块。

仿真结果表明,该数字频率计性能优异,设计语言灵活,硬件更简单,速度更快。

[关键词]数字频率计;控制电路;计数电路;锁存电路With regard to the design of digital frequency meter[Abstract] The present report describes a large-scale programmable logic chip design carrier, in the end by a top-tiered design, multi-function digital frequency meter design methods. The frequency counter using VHDL language programs, and the method of combining schematic, greatly reducing the hardware footprint. The digital frequency meter measurement range from 0 to 9999HZ, the base frequency of 1HZ, the results with the four 7-segment LED display decimal results. Intermediate used for setting up control circuit, counting circuit, latch circuit and decoding circuit modules. The simulation results show that the digital frequency meter high-performance, design language flexibility, hardware simpler and faster.[Key words]digital frequency meter; control circuit; counting circuit; Latch Circuit目录摘要 (I)Abstract (II)第1章引言 (3)第2章VHDL的简述 (4)2.1 VHDL的发展 (4)2.2 VHDL的特点 (4)2.3 VHDL语言结构 (4)2.3.1 实体(ENTITY) (5)2.3.2结构体(ARCHITECTURE) (6)2.4 VHDL软件设计简介 (6)第3章频率计方案的设计 (8)3.1 方案一 (8)3.2 方案二 (11)3.3 方案比较 (12)3.4 方案改造 (12)第4章利用VHDL语言设计频率计 (13)4.1 系统功能的分析与电路设置 (13)4.2 测频原理 (13)4.3 测频模块工作描述及VHDL程序 (13)4.3.1 计数模块(CNT10) (13)4.3.2 锁存模块(REG16B) (14)4.3.3 控制模块(TESTCTL) (15)4.3.4 译码模块(DISPLAR) (15)4.3.5 测频主系统实现(FREQ) (16)4.3.6 原理图的制作 (18)第5章数字频率计仿真及分析 (19)5.1 MAX+PLUS II的特点 (19)5.2 MAX+PLUS II的编译、仿真简介 (19)5.3 多功能数字频率计编译及仿真 (20)5.3.1 编译结果的记载 (20)5.3.2 仿真结果的记载 (22)5.4 引脚锁定 (23)5.5 程序的下载和测试 (24)第6章实验过程中遇到的问题及分析 (25)结论 (25)致谢 (26)参考文献 (27)附录 (28)附录一方案一总程序 (28)附录二原理图 (34)附录三实验结果记录 (35)第1章引言随着计算机技术和半导体技术的发展,传统的硬件电路电路设计方法已大大落后于当今技术的发展,一种崭新的、采用硬件描述语言的硬件电路设计方法已经兴起,这是电子设计自动化(EDA)领域的一次重大变革。

基于VHDL语言的数字频率计设计

基于VHDL语言的数字频率计设计

数 码 管显示 ,最 大 读 数分 别 为 9 9 Hz 9 9k 、 . 9k 、9 . Hz 9 9k , 9 Hz 小数 点 随量 程 变 换 自动 移 位 ) ,量 程 自动 转
换 规则 :
硬件 描述语 言对 高层 次的 系统行 为进 行描述 ,在 系统

级 进行验 证 ,最 后再 用逻 辑综合 优 化工具 生成 具体
摘 要 介 绍 了 VHD L语 言在 数 字频 率 计 设 计 中的 具 体 应 甩 ,说 明 了 实现 电子 电路 设 计 的 自动 化 ( A)过 程 和 ED
E A 技 术在 现 代 数 字 系统 设 计 中的 重要 地 位 和 作 用 。 D 关 键 词 VH E A 自下 至上 自上 至 下 综 合 编 程 下载 DL D
M od f M u tme a ds or li di Pr s nt ton e e a i wih t U S r e
[ ] 94 2 7 23 C ,1 9 , 5 ~ 7
5 Pr b k r n,B, gh v n, a ha a a Ra a a S V.Sy hr nia i n nc o z to
的 门级逻辑 电路 的 网表 ,其 对应 的物理 实 现是专 用集 成 电路 ( I 。 AS C)
( )读数 大 于 9 9时 ( 1 9 不考虑 小数 点 ,下同 ) ,频 率计 处 于超 量程 状态 ,此时显 示器 发 出溢 出指示 ( 显
示 F F ,下次 测量 ,量 程 自动增 大一档 。 F )
设 计一个 3位 十进 制 数字 频率 计 ,其 测量范 围 为
1MH , 程分 1 Hz 0 Hz z三档 ( 位 z量 0k 、1 0k 、1MH 3

基于VHDL的数字频率计的设计

基于VHDL的数字频率计的设计

目录第一章概述 (1)1.1 设计概述 (1)1.2设计内容 (1)1.3 设计原理 (1)1.4 设计功能 (2)第二章技术与开发工具 (3)2.1 VHDL简介 (3)2.1.1简介 (3)2.1.2 VHDL程序组成部分 (4)2.1.3 VHDL系统优势 (4)2.2 MAX+PLUSⅡ (5)2.2.1 软件简介 (5)2.2.2 软件组成 (6)2.2.3设计流程 (7)第三章系统分析 (8)3.1数字频率计的设计任务及要求 (8)3.2 模块的划分 (8)3.3设计分析 (9)第四章各功能模块基于VHDL的设计 (10)4.1 时基产生与测频时序控制电路模块的VHDL源程序 (10)4.2 待测信号脉冲计数电路模块的VHDL源程序 (11)4.2.1 十进制加法计数器的VHDL源程序 (11)4.2.2待测信号脉冲计数器的VHDL源程序 (12)4.3 锁存与译码显示控制电路模块的VHDL源程序 (13)4.3.1 译码显示电路的VHDL源程序 (13)4.3.2 锁存与译码显示控制模块的VHDL源程序 (14)4.4 顶层电路的VHDL源程序 (16)第五章数字频率计波形仿真 (18)5.1 时基产生与测频时序控制电路模块的仿真 (18)5.2 待测信号脉冲计数电路模块的仿真 (18)5.2.1 十进制加法计数器的仿真 (18)5.2.2待测信号脉冲计数器的仿真 (19)5.3 锁存与译码显示控制电路模块的仿真 (19)5.3.1 译码显示电路的仿真 (19)5.3.2 锁存与译码显示控制模块的仿真 (20)5.4 数字频率计系统的仿真 (20)结论 (22)参考文献 (23)摘要本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。

该频率计采用VHDL硬件描述语言编程以MAX+PLUSⅡ为开发环境,极大地减少了硬件资源的占用。

数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。

基于VHDL的等精度频率计设计—毕业设计论文

基于VHDL的等精度频率计设计—毕业设计论文

摘要基于传统测频原理的频率计的测量精度将随被测信号频率的下降而降低,在实用中有较大的局限性,本设计采用单片机AT89C51作为主要的控制单元,用来完成电路的信号测试控制、数据运算处理、键盘扫描和控制数码管显示等功能,待测信号经过LM358放大后又经过74HC14形成系统需要的矩形波,然后送入复杂可编程逻辑器件(CPLD),最后由可编程逻辑器件CPLD进行各种时序控制及计数测频功能,并用8位8段LED进行显示。

关键词单片机可编程逻辑器件频率计AbstractBased on the traditional principle of measuring the frequency of the frequency of measurement accuracy will be tested with thefrequency and reduce the decline in the more practical limitations.SCM AT89C51 use this design as the main control unit, the signals used to complete the circuit test control, data processing, keyboard scanning and digital control of the show, and other functions, under test signal LM358 Larger then after a 74 HC14 system needs Rectangular waves, and then into the complex programmable logic devices (CPLD), programmable logic devices by the end CPLD various control and timing count frequency measurement functions, and with eight 8 of the LED display.Keywords: SCMC CPLD Cymometer目录1 引言 (1)1.1课题分析 (1)1.2等精度频率计在国内外发展概况 (1)1.3M AX+P LUS II简介及VHDL语言简介 (3)1.4课题要求 (6)2 等精度频率计的方案选择及原理分析 (7)2.1等精度频率计测频原理 (7)2.2系统原理框图 (9)2.3周期测量 (9)2.4脉冲宽度测量 (10)2.5周期脉冲信号占空比的测量 (10)3 等精度频率计硬件设计 (11)3.1键盘控制模块 (11)3.2显示模块 (12)3.3主控模块 (13)3.4信号输入放大和整形模块 (16)3.5音频输出电路 (17)3.6CPLD功能模块描述 (18)4 等精度频率计软件设计方案 (19)4.1VHDL语言 (19)4.2VHDL软件设计方案 (21)4.3所需VHDL文件及波形仿真结果 (22)4.4单片机的汇编语言编程 (24)5 电路系统调试 (28)6 结论 (29)致谢 (33)附录一:元器件清单 (34)附录二:程序清单 (36)附录三:原理图 (36)1 引言1.1 课题分析在现代电子系统中,数字系统所占的比例越来越大。

用VHDL语言设计频率计

用VHDL语言设计频率计

模块设计 分频器 由于设计的需要,我们进行三种分频的设 计:10分频、100分频、1000分频。这三 种分频对500Hz的信号进行分频,得到的是 50Hz、5Hz、0.5Hz的信号,将它们作为计 数闸门。
图4 分频器模块
闸门 闸门选择电路实际就是3选1电路,相对简 单,分频所得信号一起送入闸门,在控制 器的控制下,选出其中一路信号作为计数 闸门送入计数器。
图5 闸门模块
计数器 我们采用的是直接测频法,所以计数器就是在闸 门信号有效期间对被测信号进行计数。直接测频 法
图6 计数器模块
锁存器 锁存器用于将计数器的计数结果锁存,以 便于较稳定的显示测量结果。计数器完成 计数后,计数结果要立即锁存,在闸门低 电平期间,即计数器停止工作期间,计数 的结果要在锁存器中保持,直到新的计数 结果产生为止。
用VHDL语言设计数字频率计
付宝成 2006年6月
第一部分 设计要Байду номын сангаас及意义
一、设计的意义 频率测量是电子测量领域最基本的测量之一。随 着数字电子技术的发展,频率测量成为一项越来 越普遍的工作,测频原理及测频方法受到越来越 多的关注。 具有50多年发展历史的频率计是数字电路中的典 型仪器。它是实验室中常用的仪器之一,同时也 是计算机、通讯设备、音频视频等科研领域不可 缺少的测量仪器,是一种典型的数字化、自动化 的测量仪器,并越来越趋于小型化。
二、设计要求 测量方波信号的频率 测量的频率范围是1~100KHz 测量结果用十进制数显示 具有自动校验和测量两种功能 具有超量程报警功能,在超出测量范围 时,发出指示信号
第二部分 设计的内容
频率测量一般有测频法与测周期法两种基 本方法,其原理如下: 测频法:由标准时钟分频产生一门控信号, 在门控信号下对输入的被测信号周期进行 计数,也叫直接测频法。如图1所示。 设输入信号频率为Fx,门控信号有效电平 时间为T,在此有效电平时间内的计数值为 N,则输入信号的频率为:Fx=N/T。

基于VHDL频率计的设计

基于VHDL频率计的设计

频率计一、实验目的1.学习并熟悉使用max+plusⅡ软件。

2.掌握各频率计各逻辑模块的功能与设计方法。

二、实验原理频率测量基本原理是计算每秒钟内待测信号的脉冲个数。

要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制。

当TSTEN为高电平时,允许计数;为低电频时停止计数,并保持其所计的脉冲信号。

在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前一秒的计数值锁存进32位锁存器REG32B中,并由周期性的清零信号并不断闪烁。

所存信号之后,必需有一清零信号CLR_CNT 对计数器进行清零,为下一秒的计数做准备。

测试控制信号发生器的工作时序如图。

为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时其值翻转。

三、实验内容和代码—————————————cnt10——————————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT10 ISPORT (CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT :OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK, CLR, ENA)BEGINIF CLR = '1' THEN CQI <= 0;ELSIF CLK'EVENT AND CLK = '1' THENIF ENA = '1' THENIF CQI < 9 THEN CQI <= CQI + 1;ELSE CQI <= 0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI)BEGINIF CQI = 9 THEN CARRY_OUT <= '1';ELSE CARRY_OUT <= '0'; END IF;END PROCESS;CQ <= CQI;END behav;——————————————REG32GB——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT (Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) ); END REG32B;ARCHITECTURE behav OF REG32B ISBEGINPROCESS(Load, DIN)BEGINIF Load'EVENT AND Load='1' THEN DOUT <=DIN;END IF;END PROCESS;END behav; ——————————————TESTCTL——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL ISPORT (CLK : IN STD_LOGIC;TSTEN : OUT STD_LOGIC;CLR_CNT : OUT STD_LOGIC;Load : OUT STD_LOGIC);END TESTCTL;ARCHITECTURE behav OF TESTCTL ISSIGNAL Div2CLK : STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THENDiv2CLK <= NOT Div2CLK;END IF;END PROCESS;PROCESS(CLK, Div2CLK)BEGINIF CLK = '0' AND Div2CLK ='0' THEN CLR_CNT <= '1';ELSE CLR_CNT <= '0'; END IF;END PROCESS;Load <= NOT Div2CLK; TSTEN <= Div2CLK;END behav;——————————FREQTEST——————————LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY FREQTEST ISPORT(CLK : IN STD_LOGIC;FSIN : IN STD_LOGIC;DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END FREQTEST;ARCHITECTURE struc OF FREQTEST ISCOMPONENT TESTCTLPORT(CLK : IN STD_LOGIC ; TSTEN : OUT STD_LOGIC ;CLR_CNT : OUT STD_LOGIC ; Load : OUT STD_LOGIC );END COMPONENT;COMPONENT CNT10PORT(CLK : IN STD_LOGIC ; CLR : IN STD_LOGIC ; ENA : IN STD_LOGIC ;CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);CARRY_OUT : OUT STD_LOGIC);END COMPONENT;COMPONENT REG32BPORT( Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END COMPONENT ;SIGNAL Load1,TSTEN1,CLR_CNT1: STD_LOGIC;SIGNAL DTO1 : STD_LOGIC_VECTOR(31 DOWNTO 0);SIGNAL CARRY_OUT1: STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINU1 : TESTCTL PORT MAP(CLK => CLK, TSTEN =>TSTEN1,CLR_CNT => CLR_CNT1, Load => Load1 );U2 : REG32B PORT MAP(Load => Load1, DIN => DTO1, DOUT => DOUT );U3 : CNT10 PORT MAP(CLK => FSIN ,CLR => CLR_CNT1, ENA => TSTEN1,CQ => DTO1(3 DOWNTO 0), CARRY_OUT => CARRY_OUT1(0) ); U4 : CNT10 PORT MAP(CLK => CARRY_OUT1(0), CLR => CLR_CNT1,ENA => TSTEN1, CQ => DTO1(7 DOWNTO 4),CARRY_OUT => CARRY_OUT1(1) );U5 : CNT10 PORT MAP(CLK => CARRY_OUT1(1), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(11 DOWNTO 8),CARRY_OUT => CARRY_OUT1(2) );U6 : CNT10 PORT MAP(CLK => CARRY_OUT1(2), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(15 DOWNTO 12),CARRY_OUT => CARRY_OUT1(3) );U7 : CNT10 PORT MAP(CLK => CARRY_OUT1(3), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(19 DOWNTO 16),CARRY_OUT => CARRY_OUT1(4) );U8 : CNT10 PORT MAP(CLK => CARRY_OUT1(4), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(23 DOWNTO 20),CARRY_OUT => CARRY_OUT1(5) );U9 : CNT10 PORT MAP(CLK => CARRY_OUT1(5), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(27 DOWNTO 24),CARRY_OUT => CARRY_OUT1(6) );U10 : CNT10 PORT MAP(CLK => CARRY_OUT1(6), CLR => CLR_CNT1,ENA => TSTEN1,CQ => DTO1(31 DOWNTO 28) ); END struc;四、实验原理图:五、实验仿真波形:本次设计我们采用GW48 EDA实验箱,选择芯片EP1K30TC144-1,选择模式0,引七、编程下载在实验箱上选择CLOCK2输入为1Hz,模式选择模式0,引脚映射如上表所示。

基于vhdl数字频率计设计说明书

基于vhdl数字频率计设计说明书

一、设计功能与要求设计数字频率计,满足如下功能:(1)用VHDL语言完成数字频率计的设计及仿真。

(2)频率测量范围:1∼10KHz,分成两个频段,即1∼999Hz,1KHz∼10KHz,用三位数码管显示测量频率,且用LED(发光二极管)来表示所显示单位,我们这里定义亮绿灯表示以Hz为单位,亮红灯表示以KHz为单位。

(3)具有自动校验和测量两种功能,即既能用于标准时钟的校验,同时也可以用于未知信号频率的测量。

(4)具有超量程报警功能,在超出目前所选量程档的测量范围时,会发出音响报警信号。

二、设计思路通过计算已知单位时间内待测信号的脉冲个数来计算被测信号的频率,同时通过动态扫描方式在三个数码管上显示出测得频率值。

如下图1的系统框图所示,计数器对CP信号进行计数,在1秒定时结束后,将计数器结果送锁存器锁存,并通过时钟下降沿将不再变化的测量值送至数码管显示。

在下一个计数时钟信号上升沿到来时,再次重新计数。

图1 系统设计框架图系统各个模块介绍如下:(1)测量/校验选择模块:输入信号:选择信号selin,被测信号measure,标准校验信号test;输出信号:CP;当selin=0时,为测量状态,CP=measure;当selin=1时,为校验状态,CP=test。

校验与测量共用一个电路,只是被测信号CP不同而已。

(2)测频控制信号发生器(二分频):输入信号:1Hz时钟信号clk;输出信号:1秒钟高电平基准信号clk1(周期为2秒);(3)四级十进制计数器模块(带进位C):输入信号:clk1、CP,用于计数开始、清零、锁存。

输出信号:q4~q1设置超出量程档测量范围示警信号alert。

若被测信号频率小于1KHz(K=0),则计数器只进行三级十进制计数,最大显示值为999.Hz,如果被测信号频率超过此范围,示警信号扬声器报警;若被测信号为1KHz~10KHz (K=1),计数器进行四位十进制计数,取高三位显示,最大显示值为9.99KHz,如果被测信号频率超过此范围, 示警信号扬声器报警。

基于vhdl的频率计设计

基于vhdl的频率计设计

基于vhdl的频率计设计课程论文(设计)题目基于quartus的频率计的设计院系电子与信息工程学院专业电子与通信工程学生姓名学号指导教师二O一四年元月三日一、频率计的说明 (3)二、顶层原理图 (4)三、底层模块设计 (4)3.1十进制加法计数器CNT10 (4)3.2十二进制加法计数器CNT12 (5)3.3控制模块CODE (6)3.4锁存器LOCK (7)四、底层模块的仿真 (7)4.1LOCK模块的仿真结果 (7)4.2CNT12的仿真结果 (8)4.3CNT10模块的仿真结果 (8)4.4CODE模块的仿真结果 (8)五、频率计顶层原理图的输入 (9)六、频率计仿真结果 (9)总结 (10)一、频率计的说明频率就是周期性信号在单位时间(1S )内的变化次数。

频率计的作用就是测量输入信号的频率,我设计的频率计的原理是若在一定1S 的时间间隔内测得这个周期性信号的重复变化次数为N ,则其频率可表示为:f=N 。

如下图1.1所示,通过定义闸门信号为1s 后,通过统计下该时间内有多少次脉冲即可得到相应的频率。

图1.1系统测量频率的原理系统的框图如下图1.2所示,首先由时基电路产生基准信号,通过控制电路产生出1s 的闸门信号,闸门电路把1s 内截取的检测信号传递给计数器,通过计数器计数就可以得到需要测量的频率。

锁存器的作用就是为了保存当前的频率交给显示电路显示。

计数器锁存器显示电路闸门电路计数脉冲控制电路锁存信号清零信号闸门信号时基电路被测信号图1.2系统原理框图二、顶层原理图如下图2.1所示,系统顶层原理图包括CNT12、CODE 、CNT10、LOCK 、CODE 模块。

其中CNT10和CNT12分别为10和12进制计数器,CODE 则为控制模块输出清零、锁存、和闸门信号,LOCK 则为锁存模块,负责将采集的频率数值锁存起来方便显示,CODE 模块则是将二进制转换成十进制的模块。

系统中的clk1为为我们为测试时候的输入闸门信号,通过CNT12信号后模拟1s 的闸门的信号,系统输出的端口为4个QQ[3..0],这样方便系统仿真,也可以减少系统的复杂程度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于VHDL设计的频率计专业:信息工程学号:姓名:一、实验任务及要求1、设计一个可测频率的数字式频率计,测量范围为1Hz~12MHz。

该频率计的逻辑图如图所示。

2、用层次化设计方法设计该电路,编写各个功能模块的程序。

3、仿真各功能模块,通过观察有关波形确认电路设计是否正确。

4、完成电路设计后,用实验系统下载验证设计的正确性。

二、设计说明与提示由上图可知8位十进制数字频率计,由一个测频控制信号发生器TESTCTL、8个有时钟使能的十进制计数器CNT10、一个32位锁存器REG32B组成。

1、测频控制信号发生器设计要求。

频率测量的基本原理是计算每秒种内待测信号的脉冲个数。

这就要求TESTCTL的计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同不控制。

当TSTEN高电平时允许计数、低电平时停止计数,并保持其所计的数。

在停止计数期间,首先需要一个锁存信号Load的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的7段译码器译出并稳定显示。

设置锁存器的好处是为了显示的数据稳定,不会由于周期性的清零信号而不断闪烁。

锁存信号之后,必须有一清零信号CLR_CNT对计数器进行清零,为下1秒钟的计数操作做准备。

测频控制信号发生器的工作时序如下图。

为了产生这个时序图,需首先建立一个由D触发器构成的二分频器,在每次时钟CLK上沿到来时使其值翻转。

其中控制信号时钟CLK的频率1Hz,那么信号TSTEN的脉宽恰好为1秒,可以用作闸门信号。

然后根据测频的时序要求,可得出信号Load和CLR_CNT 的逻辑描述。

由图可见,在计数完成后,即计数使能信号TSTEN在1秒的高电平后,利用其反相值的上跳沿产生一个锁存信号Load,0.5秒后,CLR_CNT产生一个清零信号上跳沿。

高质量的测频控制信号发生器的设计十分重要,设计中要对其进行仔细的实时仿真(TIMING SIMULATION),防止可能产生的毛剌。

2、寄存器REG32B设计要求。

若已有32位BCD码存在于此模块的输入口,在信号Load的上升沿后即被锁存到寄存器REG32B的内部,并由REG32B的输出端输出,经7段译码器译码后,能在数码管上显示输出的相对应的数值。

3、十进制计数器CNT10设计要求。

此十进制计数器的特殊之处是,有一时钟使能输入端ENA,当高电平时计数允许,低电平时禁止计数。

三、各个模块设计程序与时序仿真(1)测频控制信号发生器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY TESTCTL ISPORT (CLK : IN STD_LOGIC;TSTEN : OUT STD_LOGIC;CLR_CNT : OUT STD_LOGIC;Load : OUT STD_LOGIC);END TESTCTL;ARCHITECTURE behav OF TESTCTL ISSIGNAL Div2CLK : STD_LOGIC;BEGINPROCESS(CLK)BEGINIF CLK'EVENT AND CLK = '1' THENDiv2CLK <= NOT Div2CLK;END IF;END PROCESS;PROCESS(CLK, Div2CLK)BEGINIF CLK = '0' AND Div2CLK ='0' THEN CLR_CNT <= '1';ELSE CLR_CNT <= '0'; END IF;END PROCESS;Load <= NOT Div2CLK; TSTEN <= Div2CLK;END behav;时序仿真如下:符合测频控制信号发生器的要求。

(2)寄存器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY REG32B ISPORT (Load : IN STD_LOGIC;DIN : IN STD_LOGIC_VECTOR(31 DOWNTO 0);DOUT : OUT STD_LOGIC_VECTOR(31 DOWNTO 0) );END REG32B;ARCHITECTURE behav OF REG32B ISBEGINPROCESS(Load, DIN)BEGINIF Load'EVENT AND Load='1' THEN DOUT <=DIN;END IF;END PROCESS;END behav;时序仿真如下:如上图时序仿真图所示,当DIN输入一个数字时,遇到LOAD的上升沿过后,输出DOUT锁入输入的数字,符合锁存器的设计要求。

(3)十进制计数器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY CNT10 ISPORT (CLK: IN STD_LOGIC;CLR: IN STD_LOGIC;ENA: IN STD_LOGIC;CQ: OUT INTEGER RANGE 0 TO 15;CARRY_OUT :OUT STD_LOGIC );END CNT10;ARCHITECTURE behav OF CNT10 ISSIGNAL CQI: INTEGER RANGE 0 TO 15;BEGINPROCESS(CLK, CLR, ENA)BEGINIF CLR = '1' THEN CQI <= 0;ELSIF CLK'EVENT AND CLK = '1' THENIF ENA = '1' THENIF CQI < 9 THEN CQI <= CQI + 1;ELSE CQI <= 0;END IF;END IF;END IF;END PROCESS;PROCESS(CQI)BEGINIF CQI = 9 THEN CARRY_OUT <= '1';ELSE CARRY_OUT <= '0'; END IF;END PROCESS;CQ <= CQI;END behav;时序仿真图如下:如上图所示,ENA为高电平,CLK输入时钟信号时,当输入第十个时钟信号时,CARRY_OUT进1位。

当ENA为低电平时,CQ不再进行计数,符合要求。

(4)顶层原理图顶层文件仿真图:输入的测试频率是10Hz,显示输出为10Hz,所以仿真结果正确。

(5)引脚分布根据该实验——频率计的设计要求,选择模式“0”。

模式“0”的电路结构图如下:NO.0实验电路结构图HEXPIO2PIO3PIO4PIO5PIO7PIO6D1D2D3D4D5D6D7D8D16D15D14D13D12D11数码1数码2数码3数码4数码5数码6数码7数码8S P E A K E R扬声器译码器译码器译码器译码器译码器译码器译码器译码器FPGA/CPLD PIO15-PIO12PIO11-PIO8PIO7--PIO2HEX 键1键2键3键4键5键6键7键8PIO47-PIO44PIO43-PIO40PIO39-PIO36PIO35-PIO32PIO31-PIO28PIO27-PIO24PIO23-PIO20PIO19-PIO16目标芯片各个口对应的引脚如下表:结构图上的信号名GW48-CCP ,GWAK100A EP1K100QC208GW48-SOC+/ GW48-DSPEP20K200/300EQC240GWAK30/50 EP1K30/50TQC144GWAC3 EP1C3TC144引脚号引脚名称引脚号引脚名称引脚号 引脚名称 引脚号 引脚名称PIO16 30 I/O 7 I/O16 30 I/O16 39 I/O16 PIO17 31 I/O 8 I/O17 31 I/O17 40 I/O17 PIO18 36 I/O 9 I/O18 32 I/O18 41 I/O18 PIO19 37 I/O 10 I/O19 33 I/O19 42 I/O19 PIO20 38 I/O 11 I/O20 36 I/O20 47 I/O20 PIO21 39 I/O 13 I/O21 37 I/O21 48 I/O21 PIO22 40 I/O 16 I/O22 38 I/O22 49 I/O22 PIO23 41 I/O 17 I/O23 39 I/O23 50 I/O23 PIO24 44 I/O 18 I/O24 41 I/O24 51 I/O24 PIO25 45 I/O 20 I/O25 42 I/O25 52 I/O25 PIO26 113 I/O 131 I/O26 65 I/O26 67 I/O26 PIO27 114 I/O 133 I/O27 67 I/O27 68 I/O27 PIO28 115 I/O 134 I/O28 68 I/O28 69 I/O28 PIO29116I/O135I/O2969I/O2970I/O29PIO30 119 I/O 136 I/O30 70 I/O30 71 I/O30PIO31 120 I/O 138 I/O31 72 I/O31 72 I/O31PIO32 121 I/O 143 I/O32 73 I/O32 73 I/O32PIO33 122 I/O 156 I/O33 78 I/O33 74 I/O33PIO34 125 I/O 157 I/O34 79 I/O34 75 I/O34PIO35 126 I/O 160 I/O35 80 I/O35 76 I/O35PIO36 127 I/O 161 I/O36 81 I/O36 77 I/O36PIO37 128 I/O 163 I/O37 82 I/O37 78 I/O37PIO38 131 I/O 164 I/O38 83 I/O38 83 I/O38PIO39 132 I/O 166 I/O39 86 I/O39 84 I/O39PIO40 133 I/O 169 I/O40 87 I/O40 85 I/O40PIO41 134 I/O 170 I/O41 88 I/O41 96 I/O41PIO42 135 I/O 171 I/O42 89 I/O42 97 I/O42PIO43 136 I/O 172 I/O43 90 I/O43 98 I/O43PIO44 139 I/O 173 I/O44 91 I/O44 99 I/O44PIO45 140 I/O 174 I/O45 92 I/O45 103 I/O45PIO46 141 I/O 178 I/O46 95 I/O46 105 I/O46PIO47 142 I/O 180 I/O47 96 I/O47 106 I/O47 CLOCK0 182 I/O 185 I/O 126 INPUT1 123 I/O CLOCK2 184 I/O 181 I/O 54 INPUT3 124 I/O该频率计一共用到如上的引脚。

相关文档
最新文档