《基于VHDL的数字频率计的设计与仿真毕业设计1.doc》由会员分享,可在线阅读,更多相关《基于VHDL的数字频率计的设计与仿真毕业设计1.doc(35页珍藏版)》请在三一办公上搜索。
1、1 引言1.1 设计背景随着计算机技术和半导体技术的发展,传统的硬件电路电路设计方法已大大落后于当今技术的发展,一种崭新的、采用硬件描述语言的硬件电路设计方法已经兴起,这是电子设计自动化(EDA)领域的一次重大变革。目前,广泛使用的硬件描述语言VHDL(Very Speed Integrated Circuit Hardware Description Language)和Verilog HDL;它们先后被批准为国际标准语言。据统计,目前在美国硅谷约有90%以上的ASIC和FPGA采用硬件描述语言进行设计,VHDL的应用已成为当今以及未来EDA解决方案的核心,而且是复杂数字系统设计的核心。数字
2、频率计1是电子测量与仪表技术最基础的电子仪表类别之一,它是一种用十进制数字显示被测信号频率、周期、占空比的数字测量仪器,是在数字电路中的一个典型应用;实际的硬件设计的多功能数字频率计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差、可靠性差,随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言,将使整大大简化,提高整体个系统的性能和可靠性;它是计算机、通信设备、音频视频等科研生产领域不可缺少的测量仪器。采用VHDL编程设计实习的多功能数字频率计,具有体积小,可靠性高,功耗低的特点;整个系统非常精简,且具有灵活的现场可更改性。数字频率计是计算
3、机、通讯设备、音频视频等科研生产领域不可缺少的测量仪器,而且它是数字电压必不可少的部件。当今数字频率计不仅是作为电压表,计算机,天线电广播通讯设备,工艺过程自动化装置、多种仪表仪器与家庭电器等许多电子产品中的数据信息输出显示器反映到人们眼帘。集成数字频率计由于所用元件少、投资少、体积小、功耗低,且可靠性高、功能强、易于设计和研发,使得它具有技术上的实用性和应用的广泛性。不论从我们用的彩色电视机、电冰箱、DVD还有我们现在家庭常用到的数字电压表数字万用表等等都包含有频率计。现在频率计已是向数字智能方向发展,即可以很精确的读数也精巧易于控制。数字频率计已是现在频率计发展的方向,它不仅可以很方便的读
4、数。而且还可以使频率的测量范围和测量准确度上都比较先进.而且频率计的使用已设计到很多的方面,数字卫星,数字通讯等高科技的领域都有应用,今天数字频率计的发展已经不仅仅是一个小电子产品的发展也是整个民族乃至整个国家的发展,所以频率计的发展是一个整体的趋势。1.2 国内外发展现状及研究概况当今社会,随着科技的进步,电子技术得到了飞速的发展与应用,数字系统的设计也有了很大的进步,如今运行速度快、在功能更加强大的基础上更加便于使用携带成了发展的方向。60年代以来,在半导体器件和计算机技术发展的基础上,结合电测技术创造出了完全新的数字式仪表。它在测试方法、原理、仪器结构和操作方法上完全与前面所讲的模式式仪
5、表不同,在质的方面也有很大的飞跃,70年代以来,把微型计算机的功能引入数字仪表,产生了新型智能化仪表,它具有程序控制、信息储存数据处理和自动检修功能,使数字仪表向高准确度、多功能、高可靠性和低价格方面大大迈进了一步。近代的数字频率计就其功能而言,早已超出了早期只能测量频率的范畴,而具有测量周期、频率比、脉冲时间、累加计数等用途,并能输出标准频率、时标脉冲、闸门时间脉冲及编码信号等,成为一机多能、测频范围宽、测量精度高、测量速度快、自动化程度高、直接数字显示、操作简便的常用电子仪器,它在教学、科研、生产、国防中得到广泛使用。现如今到处可见到处理离散信息的数字电路。数字电路制造工业的进步,使得系统
6、设计人员能在更小的空间内实现更多的功能,从而提高系统可靠性和速度。而数字频率计也有了广泛的发展,从早期主要是扩展测量范围,提高测量精度、稳定度等,到如今除通常通用频率计所具有的功能外,还要有数据处理功能,统计分析功能,时域分析功能等等,或者包含电压测量等其他功能。目前应用现代技术可以轻松地将频率计的测频上限扩展到微波频段。1.3 常用数字频率计的测量方法全同步频率测量法:在给出参考闸门信号后,通过一个脉冲同步检测器检测被测信号脉冲沿和标准时钟信号脉冲沿的同步信息,当它们同步就开始计时;参考闸门关闭后,亦检测被测信号脉冲沿和标准时钟信号脉冲沿的同步信息,当它们同步则停止计时。对于任意的标准时钟和
7、被测信号,要找到两者脉冲完全同步的时刻来开启、关闭闸门是不现实的,但有可能找在实现脉冲同步检测电路时,也存在一个脉冲同步检测的误差范围。若以这个脉冲同步检测电路检测到脉冲同步的时刻作为开关信号,可以使得实际闸门的开关发生在标准时钟和被测信号都足够接近的时刻,从而达到计算值量化误差的最小化。M/T法:是目前使用比较广泛的一种频率测量方法。其核心思想是通过闸门信号与被信号同步,将闸门时间T控制为被测信号周期的整数倍。M/T法通过提高标准时钟频率或加大门闸门时间来提高频率测量精度,而全同步频率测量法可以使用较低标准时钟频率、较短闸门时间来获得较好的频率测量精度。本文提出的全同步频率测量方法可以在较低
8、的标准时钟频率、较短的闸门时间条件下显著提高频率测量的精度,适用于各种频率测量场合。 被除数与除数的倒数相乘法:即将除数作为寄存器的地址,其倒数的小数部分作为寄存器的内容,通过一次寄存器寻址来计算除数的倒数。这种方法在一个时钟周期内即可完成一个完整的除法运算,虽然速度较高,但对于多字节除法运算,不仅程序复杂,而且占用资源较多。根据频率计的实际情况,本设计采用串行除法运算,利用多个时钟周期完成一个完整的除法运算,从而兼顾了频率计对速度和资源两方面的要求。高速串行BCD码除法:是建立在BCD码减法运算基础上的循环运算。用被除数减除数得到部分余数的BCD码,如果够减,则使商加1;否则,余数和商同时左
9、移四位,并记录移位的次数m,根据对有效位数的不同要求,可以m进行赋值,如果要求保留8位有效数字,则m=8。在这种循环除法运算中,减少循环的次数是提高运算速度比较有效的方法。在一般循环式除法运算中,是从低位开始进行循环相减,循环次数等于商。采用VHDL语言设计一个复杂的电路系统,运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法进行设计。在顶层对内部各功能块的连接关系和对外的接口关系进行了描述,而功能块的逻辑功能和具体实现形式则由下一层模块来描述。根据频率计的系统原理框图,运用自顶向下的设计思想,设计的系统顶层电路图。各功能模块采用VHDL语言来描述。在计数模块中,通过译码完成的信号和
10、标准信号计数器的溢出信号对门控信号进行控制。可以根据不同的情况选择门控信号的时间范围,使设计具有一定的灵活性。2 VHDL简述和QuartusII 概述2.1 VHDL的发展VHDL诞生于1982年。在1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言,自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。而Verilog HDL是由GDA(Gateway Design Automation)公司的PhilMoorby在1983年末首创的,最初只设计了
11、一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具,1985年Moorby推出它的第三个商用仿真器Verilog XL,获得了巨大的成功,从而使得Verilog HDL迅速得到推广应用。1989年CADENCE公司收购了GDA公司公开发表了Verilog HDL,并成立LV1组织以促进Verilog HDL成为IEEE标准,即IEEE Standard 1364-1995.VHDL的英文全名是VHSIC(Very High Speed Interated Circuit)Hardare Description Language,支持各种模式的设计方法:自顶向下与自底向上或混合方法
12、,在面对当今许多电子产品生命周期的缩短,需要多次重新设计以其融入最新技术、改变工艺等方面,VHDL具有良好的适应性。用VHDL设计的最大优点是设计者可以专心致力于其功能的实现,而不需要对不影响功能的与工艺有关的因素花费过多的时间和精力。2.2 VHDL的特点VHDL语言主要用于描述数字系统的结构,行为,功能和接口。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可是部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将
13、设计实体分成内外部分的概念是VHDL系统设计的基本点。VHDL程序组成部分由实体、构造体、配置、包集合、库5个部分组成。各组成部分的作用是:(1)实体:用于描述所设计的系统的外部接口信号。(2)构造体:用于描述系统内部结构和行为。(3)配置:用于从库中选取不同单元(器件)来组成系统设计的不同版本。(4)包集合:存放各设计模块都能共享的数据类型,常数和子程序等。(5)库:可由系统工程师生成或由ASIC芯片商提供,以便在设计中共享。 VHDL语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。所以VHDL具有如下系统优势: (1)与其他的硬件描述语言相
14、比,VHDL具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。 (2) VHDL丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。 (3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效,高速的完成必须有多人甚至多个代发组共同并行工作才能实现。 (4)对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动的把VHDL描述设计转变成门级
15、网表。(5) VHDL对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。 (6) VHDL语言支持自上而下(Top Down)和基于库(Library Base)的设计方法,还支持同步电路、异步电路,FPGA以及其他随机电路的设计; (7) VHDL语言具有多层次描述系统硬件功能的能力可以从系统的数字模型直到门级电路,其高层次的行为描述可以与低层次的RTL描述和结构描述混合使用,还可以自定义数据,给编程人员带来较大的自由和方便; (8)VHDL具有电路仿真与验证功能,可以保证设计的正确性,用户甚至不必编写如何测试向量便可以进行源代码
16、级的调试,而且设计者可以非常方便地比较各种方案之间的可行性及其优劣,不需要任何实际的电路实验; (9)VHDL语言可以与工艺无关编程; (10)VHDL语言标准、规范,易于共享和复用。2.3 VHDL语言结构1.USE定义区2.PACKAGGE定义区3.ENTITY定义区4.ARCHITECTURE定义区Component定义区信号定义Data Flow描述Behavior Process描述Structure描述5.CONFIGURATION定义区定义使用哪些自定义元件库描述电路内部的功能,说明电路执行什么动作或功能决定哪一个architecture能被使用定义电路实体的外观:I/O接口的规
17、格定义元件库 图2.1 VHDL程序结构框图 图2.1中是VHDL的全部结构,但实际上并不需要全部结构,就像在许多设计项中大部分工程师只用到VHDL其中的30%的语法;通常图2.2结构才是基本和必须的。 USE定义区ENTITY定义区ARCHITETURE定义区 图2.2 VHDL程序基本结构2.4 集成开发软件QuartusIIQuartusII是Altera公司推出的新一代开发软件,适合于大规模逻辑电路设计,其设计流概括为设计输入、设计编译、设计仿真和设计下载过程。QuartusII支持多种编辑输入法,包括图形编辑输入法,VHDL,VerilogHDL和AHDL的文本编辑输入法,符号编辑输
18、入法,以及内存编辑输入法。QuartusII与MATLAB和DSP Builder结合可以进行基于FPGA的DSP系统开发,是DSP硬件系统9实现的关键EDA工具,与SOPC Builder结合,可实现SOPC系统开发。Quartus(R) II 软件中的工程由所有设计文件和与设计有关的设置组成。可以使用 Quartus II Block Editor、Text Editor、MegaWizard(R) Plug-In Manager(Tools 菜单)和 EDA 设计输入工具10建立包括 Altera(R) 宏功能模块、参数化模块库 (LPM) 函数和知识产权 (IP) 函数在内的设计。可以
19、使用Settings 对话框(Assignments 菜单)和 Assignment Editor 设定初始设计约束条件。如图2.2所示为设计输入流程图。 图2.3 设计输入流程图这次设计将以QuartusII软件来进行各个数据的操作,将仿真的图形数据来分析该课题。本设计所选择的QuartusII文本编辑输入法,在文本编辑窗口中完成VHDL设计文件的编辑,然后对设计文件进行编译、仿真操作。此次设计中主要应用到了Quartus II的VHDL语言的编程和图形仿真。3 系统设计方法概述3.1 电子系统的设计方法现代电子系统一般由模拟子系统、数字子系统和微处理器子系统三大部分组成。从概念上讲,凡是利
20、用数字技术处理和传输信息的电子系统都可以称为数字系统。传统的数字系统设计只能对电路板进行设计,通过设计电路板来实现系统功能4。利用EDA工具,采用可编程器件,通过设计芯片来实现系统功能,这种方法称为基于芯片的设计方法。新的设计方法能够由设计者定义器件的内部逻辑,将原来由电路板设计完成的大部分工作放在芯片的设计中进行。这样不仅可以通过芯片设计实现多种数字逻辑系统,而且由于管脚定义的灵活性,大大减轻了电路图设计和电路板设计的工作量和难度,从而有效的增强了设计的灵活性,提高了工作效率。同时,基于芯片的设计可以认减少芯片的数量,缩小系统体积,降低能源消耗。如图3.16所示为电子系统的传统设计方法和基于
21、芯片的设计方法比照。可编程器件 固定功能元件 电路板的设计芯片设计电子电路电子系统 a)传统设计方法 (b)基于芯片设计方法 图 3.1 电子系统的传统设计方法和基于芯片的设计方法比照 可编程逻辑器件和EDA技术给今天的硬件系统设计者提供了强有力的工具,使得电子系统的设计方法发生了质的变化。现在,只要拥有一台计算机、一套相应的EDA软件和空白的可编程逻辑器件芯片,在实验室里就可以完成数字系统的设计和生产。3.2 “自顶向下”与“自顶向上”的设计方法过去,电子产品设计的基本思路一直是先选用标准通用集成电路片,再由这些芯片和其他元件自下而上的构成电路、子系统和系统。这样设计出的电子系统所用元件的种
22、类和数量均较多,体积与功耗大,可靠性差。随着集成电路技术的不断进步,现在人们可以把数以亿计的晶体管,几万门、几十万门、甚至几百万门的电路集成在一块芯片上。基于EDA技术的设计方法为“自顶向下”设计,其步骤是采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行行为描述和定义,结合多层次的仿真技术,在确保设计的可行性与正确性的前提下,完成功能确认。然后利用EDA工具的逻辑综合功能,把功能描述转换为某一具体目标芯片的网表文件,经编程器下载到可编程目标芯片中(如FPGA芯片),使该芯片能够实现设计要求的功能。这样,一块芯片就是一个数字电路系统5。使电路系统体积
23、大大减小,可靠性得到提高。半导体集成电路己由早期的单元集成、部件电路集成发展到整机电各集成和系统电路集成。电子系统的设计方法也由过去的那种集成电路厂家提供通用芯片,整机系统用户采用这些芯片组成电子系统的“bottom-up”(自底向上)方法改变为一种新的“top-down”(自顶向下)设计方法7。在这种新的设计方法中,由整机系统用户对整个系统注行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路ASIC来实现,且这些专用集成电路是由系统和电路设计师亲自参与设计的,直至完成电路到芯片版图的设计,再交由IC工厂加工,或者是用可编程ASIC(例如CPLD和FPGA)现场编程实现。3.3 数字
24、频率计系统组成系统主要由4 个电路模块组成,分别是: 测频控制信号发生器电路,计数模块电路,动态扫描电路sm和显示译码驱动电路。因为是4位十进制数字频率计,所以计数器需用4个。由于实验硬件要求所以设计一个动态LED 数码管显示即扫描模块。当系统正常工作时,脉冲发生器提供的1HZ 的输入信号,经过测频控制信号发生器进行信号的变换,产生一个2秒的计数信号和一个清零信号,被测信号被送入计数模块,计数模块对输入的矩形波进行计数,然后将计数结果送入动态扫描电路进行选择输出,输出结果由显示译码驱动电路将二进制表示的(BCD码)计数结果转换成相应的十进制结果,在数码管上可以看到计数结果。3.4 目标芯片EP
25、1C3T100C目标芯片11选用Altera公司生产的FPGA产品EP1C3T系列9中的EP1C3T100C,它具有高密度、低成本、低功率等特点,利用EP1C3T系列CPLD可编程逻辑器件的EAB可在系统中实现逻辑功能和存贮功能。它采用了重复可构造的CMOS SRAM工艺,并把连续的快速通道互连与独特的嵌入式阵列结构相结合,同时可结合众多可编程器件来完成普通门阵列的宏功能。每一个EP1C3T器件均包括一个嵌入式阵列和一个逻辑阵列,因而设计人员可轻松地开发集存贮器、数字信号处理器及特殊逻辑等强大功能于一身的芯片。 图3.2 EP1C3T100C芯片外观图4 频率计方案的设计4.1 频率计的基本原
26、理频率计又称为频率计数器,是一种专门对被测信号频率进行测量的电子测量仪器。数字频率计的基本原理是用一个频率稳定度高的频率源作为基准时钟,通常情况下计算每秒内待测信号的脉冲个数,此时我们称闸门时间为1秒。闸门时间也可以大于或小于一秒。闸门时间越长,得到的频率值就越准确,但闸门时间越长则每测一次频率的间隔就越长。闸门时间越短,测的频率值刷新就越快,但测得的频率精度就受影响。数字频率计的主要功能是测量周期信号的频率。频率是单位时间(1S)内信号发生周期变化的次数。如果我们能在给定的1S时间内对信号波形计数,并将计数结果显示出来,就能读取被测信号的频率。数字频率计首先必须获得相对稳定与准确的时间,同时
27、将被测信号转换成幅度与波形均能被数字电路识别的脉冲信号,然后通过计数器计算这一段时间间隔内的脉冲个数,将其换算后显示出来。其最基本的工作原理可以简述为:当被测信号在特定时间段T内的周期个数为N时,则被测信号的频率f=N/T。频率计主要由四个部分构成:时基(T)电路、输入电路、计数显示电路以及控制电路。在一个测量周期过程中,被测周期信号在输入电路中经过放大、整形、微分操作之后形成特定周期的窄脉冲,送到主门的一个输入端。主门的另外一个输入端为时基电路产生电路产生的闸门脉冲。在闸门脉冲开启主门的期间,特定周期的窄脉冲才能通过主门,从而进入计数器进行计数,计数器的显示电路则用来显示被测信号的频率值,内
28、部控制电路则用来完成各种测量功能之间的切换并实现测量设置。频率测量的基本原理是计算每秒钟内待测信号的脉冲个数.测频的基本原理要求测频控制信号发生器的计数使能信号能产生一个1s脉宽的周期信号,并对频率计的每一个计数器的使能端进行同步控制。当使能信号为高电平时允许计数,为低电平时停止计数,并保持其所计脉冲个数。在停止计数期间,首先需要一个锁存信号的上跳沿将计数器在前1s的计数值锁存进锁存器中,并由外部的7段译码器译出,并稳定显示。锁存信号之后,必须有一个清零信号对计数器进行清零,为下1s的技术操作做准备。其中控制信号频率始终为1Hz,那么使能信号的脉宽正好为1s,可以用作技术闸门信号。然后根据测频
29、的时序要求,可得出锁存信号和清零信号的逻辑描述。计数完成后,利用技术使能信号反向值的上跳沿产生一个锁存信号。0.5s后,清零信号产生一个清零信号上跳沿。计数器的特殊之处是,有一时钟使能输入端,用于锁存计数值。当高电平时计数允许,低电平时计数禁止。锁存器的设计要求:若已有24位BCD码存于此模块的输入口,在锁存信号的上跳沿后即被锁存到寄存器内部,并由寄存器的输出端输出,然后有实验箱上7段译码器译成能在数码管上显示输出的相应数值。 只要知道了N和T就可以求得频率。常用数字频率测量方法有M法、T法和M/T法。M法是在给定的闸门时间内测量被测信号的脉冲个数,进行换算得出被测信号的频率。这种测量方法的测
30、量精度取决于闸门时间和被测信号频率。当被测信号频率较低时将产生较大误差,除非闸门时间取得很大。所以这种方法比较适合测量高频信号的频率。T法是通过测量被测信号的周期然后换算出被测信号的频率。这种测量方法的测量精度取决于被测信号的周期和计时精度,当被测信号频率较高时,对计时精度的要求就很高。这种方法比较适合测量频率较低的信号。M/T法具有以上两种方法的优点,它通过测量被测信号数个周期的时间然后换算得出被测信号的频率,可兼顾低频与高频信号,提高了测量精度。但是,M法、T法和M/T法存在1个字的计数误差问题:M法存在被测闸门内1个被测信号的脉冲个数误差,T法或M/T法也存在1个字的计时误差。这个问题成
31、为限制测量精度提高的一个重要原因。所以我们在设计之前必须要研究以往的设计方法,通过研究各种设计方法的优点和实用性还有他们各自的设计需要如硬件和软件的组成,我们通过研究可以看出,我发现通过用VHDL编程实现软件的仿真,在各个模块的共同作用下,通过对测量信号上升沿的计数,我们可以简单,容易的读出我们所测量的信号的频率。4.2 模块的划分根据系统设计要求,系统设计采用自顶向下的设计方法,系统的组成框图如图4. 1所示,包括时基产生与测频时序控制电路模块,以及待测信号脉冲计数电路模块和锁存与译码显示控制电路模块。时基产生与测频时序控制电路待测信号脉冲计数电路锁存与译码显示电路ENCLR待测信号F_IN
32、标准时钟CLK图4.1 数字频率计的组成框图 (1)时基产生与测频时序控制电路模块 时基产生与测频时序控制电路的主要产生计数允许信号EN、清零信号CLR和锁存信号LOCK。 (2) 待测信号脉冲计数电路模块 待测信号脉冲计数电路是对待测脉冲信号的频率进行测量,它可由4个十进制加法计数器组成,其中EN为计数选通控制信号,CLR为计数器清零信号。在计数器清零信号CLR清零后,当计数选通控制信号EN有效时,开始对待测信号进行计数。如果计数选通控制信号EN的宽度为1s,那么计数结果就为待测信号的频率;如果计数选通信号EN的宽度为100ms,那么待测信号的频率等于计数结果10。 (3) 锁存与译码显示控
33、制电路模块 锁存与译码显示控制电路用于实现记忆显示,在测量过程中不刷新新的数据,直到测量过程结束后,锁存显示测量结果,并且保存到下一次测量结束。锁存与译码显示电路的功能是对四位BCD码进行锁存,并转换为对应的4组七段码,用于驱动数码管。4.3 频率计的设计方案 根据频率计的测频原理,可以选择合适的时基信号即闸门时间,对输入被测信号脉冲进行计数,实现测频的目的。在这个设计前,我们加入了一项测试周期的功能。在实验过程中,要在频率计提供的基信号和输入信号之间做出选择,充当时基信号即闸门时间。当测频率的时候,要以输入信号作为时钟信号,因为输入信号的频率大于频率计提供的基准频率,在频率计提供的基准信号周
34、期内,计算输入信号的周期数目,再乘以频率计基准频率,就是输入信号的频率值了。此时的时基信号为频率计的基准信号。当测周期的时候,要以频率及提供的基准信号作为时钟信号,因为频率及提供的时基频率大于输入信号的频率,在输入信号周期内,计算频率计提供的基准信号的周期数目,再乘以基准信号频率,就是输入信号的周期值了。此时的时基信号为输入信号。 (1)时基的设计 输入信号是随意的,没法预知其频率是多少,如何选取频率计提供的基准信号是关键。测量频率时,在某个挡进行测量的时候,就需要提供该挡的时基。在10KHZ挡,该挡最大读数为9.99KHZ,同时也说明最小的读数是0.0KHZ,所以提供的时基应该是频率为0.0
35、1KHZ的脉冲.同样的方法100KHZ挡提供的时基应该是频率为0.1KHZ的脉冲,1MHZ挡提供的时基应该是频率为1KHZ的脉冲。同样用到3个分频器,但是节约了资源。可以考虑使用状态机来实现这3种时基,因为采用状态机来控制时序很清楚,不容易出错。状态机用1KHZ(周期为1ms)的脉冲信号触发,因为所要生产的时基中,频率最大的就是1KHZ的脉冲,要产生高电频为10ms和1ms的脉冲信号,可以采用100个状态的状态机,从状态1,状态2到状态100. (2)计数器的设计 各个档之间的转换应遵循设计要求,要根据在时基有效时间内的计数值进行判断。计数器可以直接定义成一个整形信号,这样计数器(即加1)就十
36、分方便,只要使用语句“计数器=计数器+1;”就可以。但这个计数值要作为显示输出,就要将这个计数器用个位、十位,百位分开表示,而且要遵循“加一逢十”的规则。这样可以直接通过七段译码器进行显示。 (3)模块的划分 计数器在各个挡是被反复应用的,如果在各个挡分别设计计数器,就造成资源的浪费,而且在测量周期和频率时,计数器的时钟信号和输入信号要进行调换,但是计数功能是一样的,所以将计数器设计成单独的模块。7段译码器在各位,十位,百位中也都被利用了,因此也将其设计成单独的模块,重复引用就不需要在3个显示的时候重复书写译码电路了。图4.2 四位十进制频率计顶层文件原理图 TESTCTL为测频控制信号发生器
37、。TESTCTL的计数使能信号TSTEN能产生一个1 s宽的周期信号,并对频率计的每一计数器CNT10的ENA使能端进行同步控制:当TSTEN高电平时允许计数、低电平时停止计数 REG4B为锁存器。在信号Load的上升沿时,立即对模块的输入口的数据锁存到REG4B的内部,并由REG4B的输出端输出,然后,七段译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。CNT10为十进制计数器。有一时钟使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。4.4 系统的总体设计 综上所述,频率计的总体系统可以设计为:当系统正常工作时,由系
38、统时钟提供的50MHz的输入信号,经过信号源模块,通过分频器产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,其它不同的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号和清零信号对计数模块进行控制,而由其产生的锁存信号对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。在数码显示管上可以看到计数结果。因
39、此数字频率计的最终系统组成可以详细划分为六个模块,分别是:信号源模块、控制模块、计数模块、锁存器模块、译码模块和显示器模块。信号源模块对系统输入的时钟进行分频操作, 获得1HZ的信号作为控制模块的时钟输入,和其他各种不同的频率的信号作为显示模块的时钟输入。计数模块在闸门时间内对被测信号进行计数, 有一时钟使能输入端ENA,用于锁定计数值。当高电平时允许计数,低电平时禁止计数。将四个十进制计数器CNT10级联起来实现4 位十进制计数功能 。数字锁存器在固定时间基准的后周期开始工作,即当闸门计数时间结束, 闸门下降沿到来时, 锁存此时计数模块的各项输出。在信号LOAD的上升沿时,立即对模块的输入口
40、的数据锁存到锁存器的内部,并由锁存器的输出端输出,然后,译码器可以译码输出。在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。数码译码模块主要是用来完成各种码制之间的转换。例如可用来完成BCD十进制数、十进制数BCD之间数制的转换。显示模块则在七段数码管片选信号控制下, 将锁存器保存的BCD 码数由译码模块译出后, 以十进制形式显示。控制模块是整个系统的控制部分,所有的控制信号几乎都由此模块产生,控制着其它几个模块的工作.控制模块根据外部对系统的复位和开始等信号,实现系统内部的复位、开始测频等功能,并通过优化模块的标志信号实现连续无间断的频率测量.控制模块首先通过
41、对基准时钟分频得到模块所用时钟,使所产生的测量开始指令脉冲的宽度符合基准时间产生模块的输入要求,然后检测各输入信号,确定各模块的复位、测量、输出等操作.当控制模块接收到优化模块的标志信号时,控制模块先检测在最新一次复位后是否已经接受过系统开始测量脉冲信号.若是,则输出频率测量开始脉冲信号,使基准时间产生模块开始频率测量,同时送到优化模块,复位优化模块的内部变量,使优化模块能够再次输出反馈标志信号.这样,系统只需在开始施加一次频率测量开始脉冲信号,即可实现连续不间断的频率测量.4.5 各模块的实现 4.5.1 测频控制信号发生器的功能模块及仿真 测频控制信号发生器的功能模块如图4.2所示。 图4
42、.3 测频控制信号发生器的功能模块图频率计的关键是设计一个测频率控制信号发生器,产生测量频率的控制时序。控制模块是整个系统的控制部分,所有的控制信号几乎都由此模块产生,控制着其它几个模块的工作。控制模块根据外部对系统的复位和开始等信号,实现系统内部的复位、开始测频等功能,并通过优化模块的标志信号实现连续无间断的频率测量。控制时钟信号CLK取为1Hz,2分频后即可产生一个脉宽为1秒的时钟TSTEN,以此作为计数闸门信号。当TSTEN为高电平时,允许计数;当TSTEN由高电平变为低电平(下降沿到来)时,应产生一个锁存信号,将计数值保存起来;锁存数据后,还要在下次TSTEN上升沿到来之前产生零信号C
43、LR_CNT,将计数器清零,为下次计数作准备,如图4.4所示为测频控制信号仿真图。 图4.4 测频控制信号仿真图4.5.2 十进制计数器的功能模块及仿真计数是一种最简单基本的运算,计数器就是实现这种运算的逻辑电路,计数器在数字系统中主要是对脉冲的个数进行计数,以实现测量、计数和控制的功能,同时兼有分频功能,计数器是由基本的计数单元和一些控制门所组成,计数单元则由一系列具有存储信息功能的各类触发器构成,这些触发器有RS触发器、T触发器、D触发器及JK触发器等。计数器在数字系统中应用广泛,如在电子计算机的控制器中对指令地址进行计数,以便顺序取出下一条指令,在运算器中作乘法、除法运算时记下加法、减法
44、次数,又如在数字仪器中对脉冲的计数等等。计数器可以用来显示产品的工作状态,一般来说主要是用来表示产品已经完成了多少份的折页配页工作。它主要的指标在于计数器的位数,常见的有3位和4位的。很显然,3位数的计数器最大可以显示到999,4位数的最大可以显示到9999。 十进制计数器的功能模块如图4.5所示。 图4.5 十进制计数器的功能模块图该仿真的作用是实现十进制计数功能。从仿真图4.6中可以得出,当第一个CNT10计数输出 CQ=9 时,下一秒时钟上升沿到来时,将产生一个CARRY_OUT信号作为下一个CNT10 的时钟信号,同时CQ 清零,依次递推到4个CNT10。 图4.6 十进制计数器仿真图
45、4.5.3 四位锁存器REG4B的设计和实现 四位锁存器的功能模块图 图4.7 四位锁存器的功能模块图 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓存,其次完成高速的控制其与慢速的外设的不同步问题,再其次是解决驱动的问题,最后是解决一个 I/O 口既能输出也能输入的问题。仿真图4.8的LOAD 信号上升沿到来时将对输入到内部的 CNT10 计数信号进行锁存。当输入信号上升到时就会产生锁存,否则,不进行锁存,该仿真在上升沿的时候,将其锁存起来,直到下个上升沿才会改变锁存的数据,如仿
46、真在“0000”的时候上升,则对“0000”进行锁存。 图4.8 四位锁存器的仿真图 4.5.4 系统时钟分频的功能模块及仿真 系统时钟分频的分频功能模块如图4.9所示; 图4.9 系统时钟分频的分频功能模块图 该模块由系统时钟分频模块12为TESTCTL的计数能使信号TSTEN产生一个1S 脉宽的周期信号,并对频率计中的 4位十进制计数器CNT10的 ENA 使能端进行同步控制。TSTEN高电平时允许计数;当低电平时停止计数,并保持其所计的脉冲数。在停止计数期间,从仿真图4.10中可以看出,一个锁存信号LOAD 的上跳沿将计数器在前一秒的计数值锁存进锁REG4B中,并由外部的十进制 7 段数码管显示计数值。设置锁存器的好处是数据显示稳定,不会由于周期性的清零信号而不断闪烁。锁存信号后,必须有一个清零信号 CLR_CNT对计数器进行清零,为下一秒的计数操作做准备。 图4.10 系统时钟分频功能的仿真图4.5.5 数码管译码的功能模块及仿真 数码管译码的功能模块如图4.13所示。