1、摘 要 本文介绍了一种自顶向下分层设计多功能数字频率计的设计方法。该频率计采用VHDL硬件描述语言编程以MAX+PLUS为开发环境,极大地减少了硬件资源的占用。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。该数字频率计的测量范围为l0Hz10MHz,响应时间小于等于15秒;其测试结果由4只七段数码管稳定显示,测量误差小于等于1 。仿真波形与分析结果表明,所设计的电路通过硬件仿真能够满足数字频率计的功能要求,具有理论与实践意义,实现了电子电路自动化的过程。数字频率计模块划分的设计具有相对独立性,可以对模块单独进行设计、调试和修改,缩短了设计周期。关键
2、词:VHDL 数字频率计 EDA MAX+PLUS第一章 概述第一节 课题研究背景数字频率计是电子测量与仪表技术最基础的电子仪表类别之一, 数字频率计是计算机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。当今数字频率计不仅是作为电压表、计算机、天线电广播通讯设备、工艺过程自动化装置。多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元件少、投资少,体积小,功耗低,且可靠性高,功能强,易于设计和研发,使得它具有技术上的实用性和应用的广泛性。不论从我们用的彩色电视机、电冰箱,DVD,还有我们现在家庭常用到的数字电
3、压表数字万用表等等都包含有频率计。现在频率计已是向数字智能方向发展,即可以很精确的读数也精巧易于控制。数字频率计已是现在频率计发展的方向,它不仅可以很方便的读数,而且还可以使频率的测量范围和测量准确度上都比模拟先进.而且频率计的使用已是很多的方面,数字卫星、数字通讯等高科技的领域都有应用,今天数字频率计的发展已经不仅仅是一个小电子产品的发展也是整个民族乃至整个国家的发展,所以频率计的发展是一个整体的趋势。而从民族产业上来说,我们在这种产业中还落后于西方发达国家,这将会关系到民族产业的兴衰。所以我们必须很重视当前的情况,学习发达国家的先进技术以发展本国的产业。第二节 设计概述所谓频率,就是周期信
4、号在单位时间(1s)里变化的次数。本数字频率计的设计思路是:(一) 根据频率计的测频原理,可以选择合适的时基信号对输入被测信号脉冲进行计数,实现测频的目的。(二) 根据数字频率计的基本原理,本文设计方案的基本思想是分为三个模块来实现其功能,即时基产生与测频时序控制电路模块、待测信号脉冲计数电路模块和锁存与译码显示控制电路模块,并且分别用VHDL对其进行编程,实现计数电路、锁存电路、显示电路等。第三节 设计原理众所周知,频率信号易于传输,抗干扰性强,可以获得较好的测量精度。因此,频率检测是电子测量领域最基本的测量之一。频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,对比测量其他信号的频
5、率。通常情况下计算每秒内待测信号的脉冲个数,即闸门时间为1s。闸门时间越长,得到的频率值就越准确,但闸门时间越长,则每测一次频率的间隔就越长。闸门时间越短,测得的频率值刷新就越快,但测得的频率精度就受影响。一般取1s作为闸门时间。数字频率计的关键组成部分包括测频控制信号发生器、计数器、锁存器、译码驱动电路和显示电路,其原理框图如图1. 1所示。计数器锁存器译码驱动电路数码管显示测频控制信号发生器图1.1 原理框图待测信号第二章 VHDL程序语言和FPGA简介一 VHDL程序语言介绍:VHDL语言描述能力强,覆盖面广,抽象能力强,可读性好,既能被人容易读懂又能被计算机识别。VHDL语言中设计实体
6、,程序包,涉及库,为设计人员重复利用别人的设计提供了技术手段。当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:一 采用自上而下的设计方法。即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。第二层次是RTL方式描述。第三层次是逻辑综合。二.系统可大量采用PLD芯片。利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。三.采用系统早期仿真。在系统设计过程中要进行三级仿真。这三级仿真贯穿系统
7、设计的全过程,从而可以在系统设计的早期发现设计中存在的问题,大大缩短系统设计的周期。四.降低了硬件电路设计难度。在传统的设计方法中,往往要求设计者在设计电路之前写出该电路的逻辑表达式或真值表(或时序电路的状态表)。而利用VHDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦,从而大大缩短了设计的周期。五.主要设计文件是用VHDL语言编写的源程序。 与传统的电路原理图相比,使用VHDL源程序有许多好处:其一是资料量小,便于保存。其二是可继承性好。其三是阅读方便。二 FPGA 简介FPGA是英文Field Programmable Gate Array的缩写,即现场可编程门阵列,
8、它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。FPGA采用了逻辑单元阵列LCA(Logic Cell Array)这样一个新概念,内部包括可配置逻辑模块CLB(Configurable Logic Block)、输出输入模块IOB(Input Output Block)和内部连线(Interconnect)三个部分。FPGA的基本特点主要有: 1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。2)FPGA可做其它全定制或
9、半定制ASIC电路的中试样片。3)FPGA内部有丰富的触发器和IO引脚。4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。三 VHDL 在FPGA中的运用近30年来,由于微电子学和计算机科学的迅速发展,给EDA(电子设计自动化)行业带来了巨大的变化。可以说EDA产业已经成为电子信息类产品的支柱产业。就FPGA和CPLD开发而言,比较流行的HDL主要有Verilog HDL、VHDL、ABEL-HDL和 AHDL 等,其中VHDL和Verilog HDL因适合标准化的发展方向而最终成为IEEE标
10、准。随着电子技术的高速发展,CPLD的出现以其高速、高可靠性、串并行工作方式等突出优点在电子设计中广泛应用,并代表着未来EDA设计的方向。CPLD的设计采用了高级语言(如VHDL语言),进一步打破了软硬件之间的界限,加速了产品的开发过程。采用先进的CPLD(复杂可编程逻辑器件)取代传统的标准集成电路、接口电路也是电子技术发展的必然趋势。EDA(电子设计自动化) 代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC) 实现,然后采用硬件描述语言(HDL) 完成系统行为级设计,最
11、后通过综合器和适配器生成最终目标器件。 采用VDHL 编程设计实现的数字频率计, 除被测信号的整形部分、键输入部分和数码显示部分以外, 其余全部在一片FPGA 芯片上实现, 整个设计过程变得十分透明、快捷和方便。四 软件组成MAX+PLUS软件采用模块化结构,包括设计输入、项目处理、项目校验和器件编程4个部分,所有这些部分都集成在一个可视化的操作环境下。(一) 设计输入MAX+PLUS的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入等多种方式。另外,还可以利用第三方EDA工具生成的网表文件输入(二) 项目处理设计处理的任务就是对项目进行编译(Compile),编译实际就是将
12、设计者编写的设计改为可以用于生产的“语言”。编译器通过读入设计文件并产生用于编程、仿真和定时分析的输出文件来完成编译工作。MAX+PLUS提供的编译软件,只需简单的操作。(三) 项目校验MAX+PLUS提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,要再用专用软件进行仿真。如果发现了错误,则应对设计输入进行部分修改直至无误。(四) 器件编程MAX+PLUS通过编程器(Device Programmer)将编译器生成的编程文件编程或配置到Altera CPLD器件中,然后加入实际激励信号进行测试,检查是否达到了设计要求?在设计过程中,如果出现错误,则需要重新回到设计输入阶段,改
13、正错误或调整电路后重复上述过程。五 设计流程使用MAX+PLUS进行可编程逻辑器件开发主要包括4个阶段:设计输入、编译处理、验证(包括功能仿真、时序仿真、和定时分析)和器件编程,流程如图设计要求设计输入编译处理验证器件编程器件测试系统产品设计修改图2.1 设计流程图第三章 系统分析第一节 数字频率计的设计任务及要求设计一个四位十进制的数字频率计,要求具有以下功能:(一) 测量范围:1Hz10kHz。(二) 测量误差1%。(三) 响应时间15s。(四) 显示时间不少于1s。(五) 具有记忆显示的功能,即在测量的过程中不刷新数据,等数据过程结束后才显示测量结果,给出待测信号的频率值,并保存到下一次
14、测量结束。等精度测量法 等精度测量法的机理是在标准频率比较测量法的基础上改变计数器的计数开始和结束与闸门门限的上升沿和下降沿的严格关系。当闸门门限的上升沿到来时,如果待测量信号的上升沿未到时两组计数器也不计数,只有在待测量信号的上升沿到来时,两组计数器才开始计数;当闸门门限的下降沿到来时,如果待测量信号的一个周期未结束时两组计数器也不停止计数,只有在待测量信号的一个周期结束时两组计数器才停止计数。这样就克服了待测量信号的脉冲周期不完整的问题,其误差只由标准频率信号产生, 与待测量信号的频率无关。最大误差为正负一个标准频率周期,即t=1/f0。由于一般标准信号频率都在几十兆赫兹以上,因此误差小于
15、 10-6HZ。考虑到精度问题这次我们选择了等精度方法,具体实现逻辑框图如图一图一首先按键发出一个清零信号CLR,使2个32 bit的计数器和D触发器置0,然后按键再发出允许测频命令,即使预置门控信号GATE为高电平,这时D触发器要一直等到被测信号的上升沿通过时,Q端才被置1,即使计数器1和计数器2的EN同时为1,将启动计算器计数,系统进入计算允许周期。这时,计数器1和2分别对被测信号和标准频率信号同时计数。当Tc秒过后,预置门控信号被D触发器置为低电平,但此时2个32 bit的计数器仍然没有停止计数,一直等到随后而至的被测信号的上升沿到来时,才通过D触发器将这2个计算器同时关闭。由图所示的测
16、频时序图可见,GATE的宽度和发生的时间都不会影响计数使能信号允许计数的周期总是恰好等于待测信号XCLK的完整周期,这正是确保XCLK在任何频率条件下都能保持恒定测量精度的关键。因为,此时GATE的宽度Tc改变以及随机的出现时间造成的误差最多只有基准时钟BCLK信号的一个时钟周期。第二节 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图3. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。时基产生与测频时序控制电路待测信号脉冲计数电路锁存与译码显示电路ENCLRLOCKq0:15z10:6z20:6z30:6z
17、40:6待测信号F_IN标准时钟CLK图3.1 数字频率计的组成框图(一) 时基产生与测频时序控制电路模块时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CCLR和锁存信号LOCK。(二) 待测信号脉冲计数电路模块待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。(三)
18、 锁存与译码显示控制电路模块锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。四 Bin转BCD码模块由于要求数码管10进制输出,因此需要一个二进制转bcd码的模块。操作是这样的:用两个寄存器,一个32bit,一个40bit,分别存bin码和有待实现的bcd码。接下来,逐位将BIN的最高位移入BCD的最低位。同时,将BCD的40位寄存器按每四位划成一块,我们称之为个十百千好了。但记住,个,十,百,千等都有4个bit位。1.
19、将bin31(bin是bin31:0)移入bcd0。这样,bin31就变成了原来的bin30,bin0=0。2.分别检查个十百千里存的数是不是大于等于5(按二进制换十进制那样换算),如果是,加3。3.重做1,2直到全部移进去。第三节 设计分析一 测频模块逻辑结构利用VHDL程序设计的测频模块逻辑结构如图所示,其中有关的接口信号规定如下:TP(P2.7):TF=0 时等精度测频;TF=1 时测脉宽; CLR/TRIG(P2.6):当TF=0 时系统全清零功能;当TF=1 时CLRTRIG 的上跳沿将启动CNT2 ,进行脉宽测试计数; ENDD (P2.4):脉宽计数结束状态信号,ENDD=1计数
20、结束;CHOICE(P3.2):自校/测频选择,CHOICE=1 测频;CHOICE=0自校; START(P2.5):当TF=0 时,作为预置门闸,门宽可通过键盘由单片机控制,START=1时预置门开;当TF=1时,START有第二功能,此时,当START=0时测负脉宽,当START=1时测正脉宽。利用此功能可分别获得脉宽和占空比数据。 EEDN(P2.3):等精度测频计数结束状态信号,EEND=0时计数结束。 SELP2.2(P2.2,P2.1,P2.0):计数值读出选通控制;当SEL2.0=“000”,“001”, “010”. “111”时,将CNT1,CNT2的计数值分8次,每次读出
21、8位,并传达到单片机的P0口。图4.1 测频模块逻辑图二 各模块功能和工作步骤如下:(一) 测频/测周期的实现被测信号脉冲从CONTRL模块的FIN端输入,标准频率信号从CONTRL 的FSD端输入,CONTRL的CLR是此模块电路的工作初始化信号输入端。在进行频率或周期测量时,其工作步骤如下: 令TF=0,选择等精度测频,然后再CONTRL的CLR端加一正脉冲信号以完成测试电路状态的初始化。 由预置门控信号将CONTRL的START端置高电平,预置门开始定时,此时由被测信号的上沿打开计数器CNT1进行计数,同时使标准频率信号进入计数器CNT2。 预置门定时结束信号把CONTRL的START端
22、置为低电平(由单片机来完成),在被测信号的下一次脉冲的上沿到来时,CNT1停止计数,同时关断CNT2对FS的计数。 计数结束后,CONTRL的EEND端将输出低电平来指示测量计数结束,单片机得到此信号后,即可利用ADRC(P2.2),ADRB(P2.1),ADRA(P2.0)分别读回CNT1 和CNT2的计数值,并根据精度测量公式进行运算,计算出被测信号的频率或周期值。(二) 控制部件设计如图所示,当D触发器的输入端START为高电平时,若FIN端来一个上升沿,则Q端变为高电平,导通FIN-CLK1和FSD-CLK2,同时EEND被置为高电平作为标志;当D触发器的输入端START为低电平时,若
23、FIN端输入一个脉冲上沿,则FIN-CLK1与FSD-CLK2的信号通道被切断。图4.2 测频与测周期控制部分电路计数部件设计 图中的计数器CNT1/CNT2是32位二进制计数器,通过DSEL模块的控制,单片机可分4次将其32位数据全部读数。(三) 脉冲宽度测量和占空比测量模块设计 根据上述脉宽测量原理,设计如图(CONTRL)所示的电路原理示意图。该信号的上沿和下沿信号对应于未经处理时的被测信号50%幅度时的上沿和下沿.被测信号从FIN端输入,CLR为初始化信号START为工作使能信号.CONTRL2模块的PUL端与GATE的输入端PUL连接.图4.3 脉冲宽度测量原理图测量脉冲宽度的工作步
24、骤如下: 向CONTRL的CLR端送一个脉冲以便进行电路的工作状态初始化. 将GATE的CNL端置高电平,表示开始脉冲宽度测量,这时CNT2的输入信号为FSD. 在被测脉冲的上沿到来时,CONTRL2的PUL端输出高电平,标准频率信号进入计数器CNT2. 在被测脉冲的下沿到来时,CONTRL2的PUL端输出低电平,计数器CNT2被关断. 由单片机读出计数器CNT2的结果,并通过上述测量原理公式计算出脉冲宽度.(四) 电路显示模块系统硬件电路中,单片机MCU与FPGA进行数据交换占用了P0口、P1口和P3口,因此数据显示电路的设计采用静态显示的方式,显示电路由8个共阳极七段数码管和8片1位串入8
25、位并出的74LS164芯片组成。 图4.4 显示电路图这种显示方式不仅占用单片机端口少,而且充分利用了单片机的资源,容易掌握其编码规律,简化了软件编程,在实验过程中,也体现出较高的可靠性。数据显示电路如图4.4所示。第四章 各功能模块基于VHDL的设计第一节 时基产生与测频时序控制电路模块的VHDL源程序程序ctrl.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CTRL IS PORT(CLK: IN STD_LOGIC; -系统时钟 LOCK: OUT STD_LOGIC
26、; -锁存信号 EN: OUT STD_LOGIC; -计数允许信号 CLR: OUT STD_LOGIC); -清零信号END;ARCHITECTURE ART OF CTRL IS SIGNAL Q: STD_LOGIC_VECTOR(3 DOWNTO 0); -定义变量BEGINPROCESS(CLK) BEGIN IF(CLKEVENT AND CLK=1)THEN -检测时钟上升沿 IF Q=1111THEN Q=0000; -计数大于15,清零 ELSE Q=Q+1; -允许计数 END IF; END IF; EN=NOT Q(3); LOCK=Q(3) AND NOT(Q(2)
27、 AND Q(1); CLR=Q(3) AND Q(2) AND NOT(Q(1); END PROCESS;END ART; 程序主要讲述了由时钟信号产生计数允许信号、清零信号和锁存信号,而且限定了响应时间为不超过15s。第二节 待测信号脉冲计数电路模块的VHDL源程序一 十进制加法计数器的VHDL源程序程序cb10.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CB10 IS PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER S
28、TD_LOGIC_VECTOR(3 DOWNTO 0); -计数输信号END CB10;ARCHITECTURE ART OF CB10 IS -结构体 BEGIN PROCESS(CLK,CLR,EN) BEGIN IF CLR=1 THEN COUNT10=0000; -计数器清零 ELSIF RISING_EDGE(CLK) THEN -检测时钟上升沿 IF(EN=1) THEN -检测是否允许计数 IF COUNT10=1001 THEN COUNT10=0000; -计数值满9清零 ELSE COUNT10=COUNT10+1; -允许计数 END IF; END IF; END I
29、F; END PROCESS;END ART; 程序主要讲述了十进制加法计数器的使用,在符合了一定的标准以后十进制的使用,在计数器满9后清零。二 待测信号脉冲计数器的VHDL源程序程序count.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY COUNT IS PORT(CLK: IN STD_LOGIC; -待测时钟信号 EN: IN STD_LOGIC; -计数选通控制信号 CLR: IN STD_LOGIC; -计数器清零信号 QA,QB,QC,QD: BUFFER ST
30、D_LOGIC_VECTOR(3 DOWNTO 0); -结果输出信号END;ARCHITECTURE ART OF COUNT IS COMPONENT CB10 -元件CB10引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; COUNT10: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); -计数输出信号 END COMPONENT; SIGNAL CLK2: STD_LOGIC; SIGNAL CLK3: STD_LOGIC; SIGNAL CLK4: STD_LOGIC; BEGIN CLK2=NOT QA(3); CLK3=NOT
31、QB(3); CLK4=NOT QC(3); U1:CB10 PORT MAP(CLK,EN,CLR,QA); -元件引用例示 U2:CB10 PORT MAP(CLK2,EN,CLR,QB); -元件引用例示 U3:CB10 PORT MAP(CLK3,EN,CLR,QC); -元件引用例示 U4:CB10 PORT MAP(CLK4,EN,CLR,QD); -元件引用例示END ART;第三节 锁存与译码显示控制电路模块的VHDL源程序一 译码显示电路的VHDL源程序程序bcd7.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY BCD7
32、 IS PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); -BCD输入信号 LED: OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -七段译码输出信号END;ARCHITECTURE ART OF BCD7 IS BEGIN LED=0111111 WHEN BCD=0000 ELSE -对照七段字形显示译码器真值表 0000110 WHEN BCD=0001 ELSE 1011011 WHEN BCD=0010 ELSE 1001111 WHEN BCD=0011 ELSE 1100110 WHEN BCD=0100 ELSE 110
33、1101 WHEN BCD=0101 ELSE 1111101 WHEN BCD=0110 ELSE 0000111 WHEN BCD=0111 ELSE 1111111 WHEN BCD=1000 ELSE 1101111 WHEN BCD=1001 ELSE 0000000;END ART; 程序主要讲述了七段译码器的显示问题,对应的给出了信号输入过程中七段译码器的各种显示。二 锁存与译码显示控制模块的VHDL源程序程序lock.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY LOCK IS PORT(LOCK: IN STD_LOGI
34、C; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-频率计数输出END;ARCHITECTURE ART OF LOCK IS SIGNAL QAL,QBL,QCL,QDL: STD_LOGIC_VECTOR(3 DOWNTO 0); COMPONENT BCD7 -元件BCD7引用说明语句 PORT(BCD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LED: OUT STD_LOGIC_VECTOR(6 DOWN
35、TO 0); END COMPONENT; BEGIN PROCESS(LOCK) BEGIN IF(LOCKEVENT AND LOCK=1)THEN -检测时钟上升沿 QAL=QA; QBL=QB; QCL=QC; QDL=QD; END IF; END PROCESS; U0: BCD7 PORT MAP(QAL,LEDA); -元件引用例示 U1: BCD7 PORT MAP(QBL,LEDB); -元件引用例示 U2: BCD7 PORT MAP(QCL,LEDC); -元件引用例示 U3: BCD7 PORT MAP(QDL,LEDD); -元件引用例示END ART; 程序主要讲
36、述了调用七段译码器的显示,将输入的信号经过译码之后在七段译码器上进行显示。第四节 顶层电路的VHDL源程序程序pinlvji.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY PINLVJI IS PORT(F_IN,CLK: IN STD_LOGIC; ENT,LOCKT,CLRT: BUFFER STD_LOGIC; Z1,Z2,Z3,Z4: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END PINLVJI;ARCHITECTURE ART OF PINLVJI IS SIGNAL ENS,LOCKS,CLRS:
37、STD_LOGIC; SIGNAL QAS,QBS,QCS,QDS: STD_LOGIC_VECTOR(3 DOWNTO 0);COMPONENT CTRL -元件CTRL引用说明语句 PORT(CLK: IN STD_LOGIC; EN,LOCK,CLR: OUT STD_LOGIC);END COMPONENT;COMPONENT COUNT -元件COUNT引用说明语句 PORT(CLK,EN,CLR: IN STD_LOGIC; QA,QB,QC,QD: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);END COMPONENT;COMPONENT LOCK -元件L
38、OCK引用说明语句 PORT(LOCK: IN STD_LOGIC; QA,QB,QC,QD: IN STD_LOGIC_VECTOR(3 DOWNTO 0); LEDA,LEDB,LEDC,LEDD: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END COMPONENT; BEGIN ENT=ENS; LOCKT=LOCKS; CLRT=CLRS; U1:CTRL PORT MAP(CLK,ENS,LOCKS,CLRS); -元件引用例示 U2:COUNT PORT MAP(F_IN,ENS,CLRS,QAS,QBS,QCS,QDS); -元件引用例示 U3:LOCK
39、 PORT MAP(LOCKS,QAS,QBS,QCS,QDS,Z1,Z2,Z3,Z4); -元件引用例示 END ART;第五章 数字频率计波形仿真第一节 时基产生与测频时序控制电路模块的仿真图5.1 时基产生与测频时序控制模块的仿真图图5. 2 时基产生与测频时序控制电路模块的仿真图的详细 图5.1显示的是时基产生与测频时序控制电路模块的仿真图,很鲜明的给出了时钟信号与计数允许信号、清零信号和锁存信号的关系,而图5. 2更加详细的给出了计数允许信号、清零信号和锁存信号与变量Q之间所存在的相对应的关系。第二节 待测信号脉冲计数电路模块的仿真一 十进制加法计数器的仿真图5.3 十进制加法计数器
40、的仿真图 图5.3显示的是十进制加法计数器的仿真图,它详细的给出了计数输出信号与计数允许信号和清零信号之间的关系,能清楚的理解当CLR为0时,输出为0;在EN为1选通有效后,则开始计数。二 待测信号脉冲计数器的仿真图5.4 测信号脉冲计数器的仿真 图5.4显示的是测信号脉冲计数器的仿真图,以图文的形式更直接的表现了信号脉冲的计数值,简介明了。第三节 锁存与译码显示控制电路模块的仿真一 译码显示电路的仿真图5.5 译码显示电路的仿真图 图5.5显示的是译码显示电路的仿真图,它直接用图形诠释了程序中语句的意思,让人一目了然,更简单的了解了模块的作用。5.3.2 锁存与译码显示控制模块的仿真图5.6
41、 锁存与译码显示控制电路的仿真图 图5.6显示的是锁存与译码显示控制电路的仿真图,给人第一感觉很繁琐,但是联系程序再看图就可以很轻松的清楚程序中之前还存在的疑惑也将图从而理解透彻。第四节 数字频率计系统的仿真图5.7 数字频率计系统的仿真图5.7显示的是数字频率计系统的仿真图,它系统的体现了所设计的频率计的作用。结论本设计采用EDA技术,利用测频法的原理和VHDL语言,采用自顶向下的设计方法,实现了1Hz10kHz测量范围的四位十进制的数字频率计,并在MAX+PLUS软件平台下对设计项目进行的了编译和时序仿真。实验结果表明,该系统能够满足本次设计的要求,并且具有测量误差小,可靠性高的优点。本文的设计工作能作为电子测量与仪表技术的基础,为计算机、通讯设备、音频视频等科研生产领域提供较好的参考。通过本次课程的设计,加深了我对课程上所学到的电子设计自动化理论知识的认识和理解,重新让自己认识到了这门学科在应用方面的广阔前景,并且通过知识与应用于实践的结合更加丰富了自己的知识,扩展了知识面,较系统的掌握电子设计自动化应用开发。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100