基于fpga的等精度数字频率计设计课程设计正文 大学论文.docx
- 文档编号:11985827
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:31
- 大小:266.50KB
基于fpga的等精度数字频率计设计课程设计正文 大学论文.docx
《基于fpga的等精度数字频率计设计课程设计正文 大学论文.docx》由会员分享,可在线阅读,更多相关《基于fpga的等精度数字频率计设计课程设计正文 大学论文.docx(31页珍藏版)》请在冰豆网上搜索。
基于fpga的等精度数字频率计设计课程设计正文大学论文
课程设计
题目:
基于FPGA的等精度数字频率计设计
摘要
伴随着集成电路(IC)技术的发展,电子设计自动化(EDA)逐渐成为重要的设计手段,已经广泛应用于模拟与数字电路系统等许多领域。
电子设计自动化是一种实现电系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,它吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,促进了工程发展。
数字频率计是一种基本的测量仪器。
它被广泛应用与航天、电子、测控等领域。
采用等精度频率测量方法具有测量精度保持恒定,不随所测信号的变化而变化的特点。
本文首先综述了EDA技术的发展概况,FPGA/CPLD开发的涵义、优缺点,VHDL语言的历史及其优点,概述了EDA软件平台QUARTUSⅡ;然后介绍了频率测量的一般原理,利用等精度测量原理,通过FPGA运用VHDL编程,利用FPGA(现场可编程门阵列)芯片设计了一个8位数字式等精度频率计,该频率计的测量范围为0-100MHZ,利用QUARTUSⅡ集成开发环境进行编辑、综合、波形仿真,并下载到CPLD器件中,经实际电路测试,仿真和实验结果表明,该频率计有较高的实用性和可靠性。
关键词:
电子设计自动化;VHDL语言;频率测量;数字频率计
目录
摘要I
目录III
1.绪论1
1.2基于EDA的FPGA/CPLD开发2
1.3硬件描述语言(HDL)3
VHDL语言简介3
1.4QuartusII概述4
2.频率测量6
2.1数字频率计工作原理概述6
2.2采用等精度测量
本章小结.......................................................................................................................8
3.数字频率计的系统设计与功能仿真8
3.1系统的总体设计8
3.2信号源模块9
3.3锁存器12
3.4十进制计数器13
3.5显示模块14
3.5.1显示模块设计14
3.52显示电路15
3.5.3译码器15
本章小结16
结论16
附录:
频率计顶层文件18
信号源模块源程序19
32位锁存器源程序19
有时钟使能的十进制计数器的源程序20
显示模块源程序21
1.绪论
21世纪人类将全面进入信息化社会,对微电子信息技术和微电子VLSI基
础技术将不断提出更高的发展要求,微电子技术仍将继续是21世纪若干年代中
最为重要的和最有活力的高科技领域之一。
而集成电路(IC)技术在微电子领
域占有重要的地位。
伴随着IC技术的发展,电子设计自动化(ElectronicDesign
Automation,EDA)己经逐渐成为重要设计手段,其广泛应用于模拟与数字电
路系统等许多领域。
EDA是指以计算机大规模可编程逻辑器件的开发软件及实验开发系统为设计工具,通过有关开发软件,自动完成用软件方式设计的电子系统到硬件系统的逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射、编程下载等工作,最终形成集成电子系统或专用集成芯片的一门新技术[1]。
VHDL(超高速集成电路硬件描述语言)是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(TheInstituteofElectricalandElectronicsEngineers)的一种工业标准硬件描述语言。
相比传统的电路系统的设计方法,VHDL具有多层次描述系统硬件功能的能力,支持自顶向下(Top_Down)和基于库(LibraryBased)的设计的特点,因此设计者可以不必了解硬件结构。
从系统设计入手,在顶层进行系统方框图的划分和结构设计,在方框图一级用VHDL对电路的行为进行描述,并进行仿真和纠错,然后在系统一级进行验证,最后再用逻辑综合优化工具生成具体的门级逻辑电路的网表,下载到具体的CPLD器件中去,从而实现可编程的专用集成电路(ASIC)的设计。
数字频率计是数字电路中的一个典型应用,实际的硬件设计用到的器件较多,连线比较复杂,而且会产生比较大的延时,造成测量误差,可靠性差。
随着复杂可编程逻辑器件(CPLD)的广泛应用,以EDA工具作为开发手段,运用VHDL语言。
将使整个系统大大简化。
提高整体的性能和可靠性。
数字频率计是通信设备、音、视频等科研生产领域不可缺少的测量仪器。
采用VHDL编程设计实现的数字频率计,除被测信号的整形部分、键输入部分和数码显示部分外,其余全部在一片FPGA芯片上实现。
整个系统非常精简,且具有灵活的现场可更改性。
本文用VHDL在CPLD器件上实现一种8位数字频率计测频系统,能够用十进制数码显示被测信号的频率,不仅能够测量正弦波、方波和三角波等信号的频率,而且能对其他多种频率信号进行测量。
具有体积小、可靠性高、功耗低的特点。
1.2基于EDA的FPGA/CPLD开发
我国的电子设计技术发展到今天,将面临一次更大意义的突破,即
FPGA/CPLD(FieldProgrammableGateArray,现场可编程门阵列/Complex
ProgrammableLogicDevice,复杂可编程逻辑器件)在EDA基础上的广泛应用。
从某种意义上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结
构,但却是一种更高层次的循环,它在更高层次上容纳了过去数字技术的优秀
部分,对(MicroChipUnit)MCU系统是一种扬弃,在电子设计的技术操作
和系统构成的整体上发生了质的飞跃。
如果说MCU在逻辑的实现上是无限的
话,那么FPGA/CPLD不但包括了MCU这一特点,而且可以触及硅片电路线
度的物理极限,并兼有串、并行工作方式,高速、高可靠性以及宽口径适用性
等诸多方面的特点。
不但如此,随着EDA技术的发展和FPGA/CPLD在深亚微
米领域的进军,它们与MCU,MPU,DSP,A/D,D/A,RAM和ROM等独立
器件间的物理与功能界限已日趋模糊。
特别是软/硬IP芯核(知识产权芯核;IntelligencePropertyCore,一种已注册产权的电路设计)产业的迅猛发展,嵌入式通用及标准FPGA器件的呼之欲出,片上系统(SOC)已经近在咫尺。
FPGA/CPLD以其不可替代的地位及伴随而来的极具知识经济特征的IP芯核产业的崛起,正越来越受到业内人士的密切关注。
FPGA/CPLD简介
FPGA和CPLD都是高密度现场可编程逻辑芯片,都能够将大量的逻辑功
能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。
复杂可编
程逻辑器件CPLD是由PAL(ProgrammableArrayLogic,可编程数组逻辑)或
GAL(GenericArrayLogic,通用数组逻辑)发展而来的。
它采用全局金属互连
导线,因而具有较大的延时可预测性,易于控制时序逻辑;但功耗比较大。
现
场可编程门阵列(FPGA)是由掩膜可编程门阵列(MPGA)和可编程逻辑器件
二者演变而来的,并将它们的特性结合在一起,因此FPGA既有门阵列的高逻
辑密度和通用性,又有可编程逻辑器件的用户可编程特性。
FPGA通常由布线资
源分隔的可编程逻辑单元(或宏单元)构成数组,又由可编程I/O单元围绕
数组构成整个芯片。
其内部资源是分段互联的,因而延时不可预测,只有编程
完毕后才能实际测量。
CPLD和FPGA建立内部可编程逻辑连接关系的编程技术有三种:
基于反熔丝技术的器件只允许对器件编程一次,编程后不能修改。
其优点是集成度、工作频率和可靠性都很高,适用于电磁辐射干扰较强的恶劣环境。
基于EEPROM内存技术的可编程逻辑芯片能够重复编程100次以上,系统掉电后编程信息也不会丢失。
编程方法分为在编程器上编程和用下载电缆编程。
用下载电缆编程的器件,只要先将器件装焊在印刷电路板上,通过PC,SUN工作站、ATE(自动测试仪)或嵌入式微处理器系统,就能产生编程所用的标准5V,3.3V或2.5V逻辑电平信号,也称为ISP(InSystemProgrammable)方式编程,其调试和维修也很方便。
基于SRAM技术的器件编程数据存储于器件的RAM区中,使之具有用户设计的功能。
在系统不加电时,编程数据存储在EPROM、硬盘、或软盘中。
系统加电时将这些编程数据实时写入可编程器件,从而实现板级或系统级的动态配置。
1.3硬件描述语言(HDL)
硬件描述语言(HDL)是相对于一般的计算机软件语言如C,Pascal而言的。
HDL是用于设计硬件电子系统的计算机语言,它描述电子系统的逻辑功能、电
路结构和连接方式。
设计者可以利用HDL程序来描述所希望的电路系统,规
定其结构特征和电路的行为方式;然后利用综合器和适配器将此程序变成能控
制FPGA和CPLD内部结构、并实现相应逻辑功能的门级或更底层的结构网表
文件和下载文件。
硬件描述语言具有以下几个优点:
a.设计技术齐全,方法灵
活,支持广泛。
b.加快了硬件电路的设计周期,降低了硬件电路的设计难度。
c.采用系统早期仿真,在系统设计早期就可发现并排除存在的问题。
d.语言设
计与工艺技术无关。
e.语言标准,规范,易与共享和复用。
就FPGA/CPLD开
发来说,VHDL语言是最常用和流行的硬件描述语言之一。
本次设计选用的就
是VHDL语言,下面将主要对VHDL语言进行介绍。
VHDL语言简介
VHDL是超高速集成电路硬件描述语言的英文字头缩写简称,其英文全名是Very-High-SpeedIntegratedCircuitHardwareDescriptionLanguage。
它是在70~80年代中由美国国防部资助的VHSIC(超高速集成电路)项目开发的产品,诞生于1982年。
1987年底,VHDL被IEEE(TheInstituteofElectricalandElectronicsEngineers)确认为标准硬件描述语言。
自IEEE公布了VHDL的标准版本((IEEEstd1076-1987标准)之后,各EDA公司相继推出了自己的VHDL设计环境。
此后,VHDL在电子设计领域受到了广泛的接受,并逐步取代了原有的非标准HDL。
1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即ANSI/IEEEstd1076-1993版本。
1996年IEEE1076.3成为VHDL综合标准。
VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适用于可编程逻辑芯片的应用设计。
与其它的HDL相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
就目前流行的EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标器件的网表文件己不成问题。
VHDL语言在硬件设计领域的作用将与C和C++在软件设计领域的作用一样,在大规模数字系统的设计中,它将逐步取代如逻辑状态表和逻辑电路图等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述工具,它将成为数字系统设计领域中所有技术人员必须掌握的一种语言。
VHDL和可编程逻辑器件的结合作为一种强有力的设计方式,将为设计者的产品上市带来创纪录的速度。
1.4QuartusII概述
QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。
QuartusII在21世纪初推出,是Altera前一代FPGA/CPLD集成开发环境MAX+PLUSII的更新换代产品,其界面友好,使用便捷。
它提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。
Altera的QuartusII提供了完整的多平台设计环境,能满足各种特定设计的需要,也是单芯片可编程系统(SOPC)设计的综合性环境和SOPC开发的基本设计工具,并为AlteraDSP开发包进行系统模型设计提供了集成组合环境。
QuartusII设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、Verilog逻辑综合器。
QuartusII也可利用第三方的综合工具。
同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具,如ModelSim。
此外,QuartusII与MATLAB和DSPBuilder结合,可以进行基于FPGA的DSP系统开发和数字通信模块的开发。
QuartusII包括模块化的编译器。
编译器包括的功能模块有分析/综合器(Analsis&Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(TimingAnalyzer)、设计辅助模块(DesignAssistant)、EDA网表文件生成器(EDANetlistWriter)、编辑数据接口(CompilerDatabaseInterface)等。
可以通过选择StartCompilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。
还可以通过选择CompilerTool(Tools菜单),在CompilerTool窗口中运行该模块来启动编译器模块。
在CompilerTool窗口中,可以打开该模块的设置文件或报告文件,或打开其他相关窗口。
此外,QuartusII还包含许多十分有用的LPM(LibraryofParameterizedModules)模块,它们是复杂或高级系统构建的重要组成部分,在SOPC设计中被大量使用,也可以与QuartusII普通设计文件一起使用。
Altera提供的LPM函数均基于Altera器件的结构做了优化设计。
在许多实用情况中,必须使用宏功能模块才可以使用一些Altera特定器件的硬件功能,如各类片上存储器、DSP模块、LVDS驱动器、PLL以及SERDES和DDIO电路模块等。
QuartusII编译器支持的硬件描述语言有VHDL(支持VHDL’87及VHDL’97标准)、VerilogHDL及AHDL(AlteraHDL)。
QuartusII支持层次化设计,可以在一个新的编辑输入环境中对使用不同输入设计方式完成的模块(元件)进行调用,从而解决了原理图与HDL混合输入设计的问题。
在设计输入之后,QuartusII的编译器将给出设计输入的错误报告。
可以使用QuartusII带有的RTLViewer观察综合后的RTL图。
QuartusII作为目前CPLD/FPGA开发工具理想的综合、仿真软件,具有许多优良的特性。
(1)继承了MAX+PLUSII的优点
图形输入依然形象,图形符号与MAX+PLUSII一样符合数字电路的特点,大量74系列器件符号使能初学者在较短的时间里利用图形编辑设计出需要的电路。
文本输入几乎和MAX+PLUSII相同,而且在文本的每一行都有行号,使用语言编写的电路清晰易读。
低层编辑仍然采用Chipview方式,引脚排列位置映射了实际器件引脚,只要简单地鼠标拖放即可完成低层编辑。
(2)支持的器件更多
除了支持MAX3000、MAX7000、FLEX6000、FLEX10KE、ACEX1K等MAX+PLUSII已经支持的器件外,还支持PEX20K、APEX20KE、AREXII、EXCALIBUR-ARM、Mercury、Stratix等MAX+PLUSII下无法支持的大容量高性能的器件。
(3)增加了网络编辑功能
QuartusII支持一个工作组环境下的设计要求,包括支持基于Internet的协作设计,与Cadence、ExemplarLogi、MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。
(4)提升了调试能力
QuartusII增加了一个新的快速适配编译选项,可保留最佳性能的设置,加快了编译过程,可缩短50%的编译时间,对设计性能的影响小。
(5)不足之处
软件结构庞大,使用复杂,不如MAX+PLUSII简单、易学易用。
2.频率测量
2.1数字频率计工作原理概述
数字频率计的设计原理实际上是测量单位时间内的周期数。
这种方法免去了实测以前的预测,同时节省了划分频段的时间,克服了原来高频段采用测频模式而低频段采用测周期模式的测量方法存在换挡速度慢的缺点。
采用一个标准的基准时钟,在单位时间(1s)里对被测信号的脉冲数进行计数,即为信号的频率。
由于闸门的起始和结束时刻对于信号来说是随机的,将会有一个脉冲周期的量化误差。
进一步分析测量准确度:
设待测信号脉冲周期为Tx,频率为Fx,当测量时间为T=1s时,测量准确度为&=Tx/T=1/Fx。
由此可知直接测频法的测量准确度与信号的频率有关:
当待测信号频率较高时,测量准确度也较高,反之测量准确度也较低。
因此直接测频法只适合测量频率较高的信号,不能满足在整个测量频段内的测量精度保持不变的要求。
为克服低频段测量的不准确问题,采用门控信号和被测信号对计数器的使能信号进行双重控制,大大提高了准确度。
当门控信号为1时,使能信号并不为1,只有被测信号的上升沿到来时,使能端才开始发送有效信号,两个计数器同时开始计数。
当门控信号变为0时,使能信号并不是立即改变,而是当被测信号的下一个上升沿到来时才变为0,计数器停止计数。
因此测量的误差最多为一个标准时钟周期。
当采用100MHz的信号作为标准信号时,误差最大为0.01μs。
计算每秒钟内待测信号脉冲个数。
这就要求计数使能信号TSTEN能产生一个1秒脉宽的周期信号,并对频率计的每一计数器cnt10的ENA使能端进行同步控制。
当TSTEN为高电平时,允许计数;低电平时,停止计数,并保持其所计的数。
在停止计数期间,首先需要一个锁存信号LOAD的上跳沿将计数器在前1秒钟的计数值锁存进32位锁存器REG32B中,并由外部的译码器译出并稳定显示。
锁存信号之后,必须由清零信号CLR_CNT对计数器进行清零,为下一秒钟的计数操作做准备。
当系统正常工作时,脉冲发生器提供的1Hz的输入信号,经过测频控制信号发生器进行信号的变换,产生计数信号,被测信号通过信号整形电路产生同频率的矩形波,送入计数模块,计数模块对输入的矩形波进行计数,将计数结果送入锁存器中,保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。
在数码显示管上可以看到计数结果[3]。
频率测量方案
采用等精度频率测量法,测量精度保持恒定,不随所测信号的变化而变化。
在快速测量的要求下,要保证较高精度的测频,必须采用较高的标准频率信号。
单片机受本身时钟频率和若干指令运算的限制,测频速度较慢,无法满足高速、高精度的测频要求;而采用高集成度、高速的现场可编程门阵列FPGA为实现高速、高精度的测频提供了保证。
2.3.2等精度测频原理
等精度测频方法是在直接测频方法的基础上发展起来的。
它的闸门时间不是固定的值,而是被测信号周期的整数倍,即与被测信号同步,因此,避除了对被测信号计数所产生±1个字误差,并且达到了在整个测试频段的等精度测量。
其测频原理如图2.1所示。
在测量过程中,有两个计数器分别对标准信号和被测信号同时计数。
首先给出闸门开启信号(预置闸门上升沿),此时计数器并不开始计数,而是等到被测信号的上升沿到来时,计数器才真正开始计数。
然后预置闸门关闭信号(下降沿)到时,计数器并不立即停止计数,而是等到被测信号的上升沿到来时才结束计数,完成一次测量过程。
可以看出,实际闸门时间t与预置闸门时间t1并不严格相等,但差值不超过被测信号的一个周期[4]。
图2.1等精度测频原理波形图
等精度测频的实现方法可简化为图2.2所示。
CNT1和CNT2是两个可控计数器,标准频率信号从CNT1的时钟输入端CLK输入;经整形后的被测信号从CNT2的时钟输入端CLK输入。
当预置门控信号为高电平时,经整形后的被测信号的上升沿通过D触发器的Q端同时启动CNT1和CNT2。
CNT1、CNT2同时对标准频率信号和经整形后的被测信号进行计数,分别为NS与NX。
当预置门信号为低电平的时候,后而来的被测信号的上升沿将使两个计数器同时关闭,所测得的频率为(FS/NS)*NX。
则等精度测量方法测量精度与预置门宽度的标准频率有关,与被测信号的频率无关。
在预置门时间和常规测频闸门时间相同而被测信号频率不同的情况下,等精度测量法的测量精度不变。
图2.2等精度测频实现原理图
本章小结
本章从各个方面说明了频率计的工作原理,对等精度频率计的实现,在理论上起到了作用。
3.数字频率计的系统设计与功能仿真
3.1系统的总体设计
当系统正常工作时,由系统时钟提供的100MHz的输入信号,经过信号源模块,先通过100分频产生1MHZ的时钟信号,再将1MHZ的时钟信号分频产生多种频率输出,其中1HZ的输出频率被作为控制模块的时钟输入,7812HZ的输出频率被作为显示模块的时钟输入,由控制模块产生的计数使能信号testen和清零信号clr对计数模块进行控制,而由其产生的锁存信号load对锁存模块进行控制,一旦计数使能信号为高电平,并且时钟上升沿到来,计数器便开始正常计数,清零信号到来则计数清零,而当锁存信号为高电平时,数据便被锁存器锁存,然后将锁存的数据输出到显示模块显示出来,数据锁存保证系统可以稳定显示数据,显示译码驱动电路将二进制表示的计数结果转换成相应的能够在数码显示管上可以显示的十进制结果。
在数码显示管上可以看到计数结果。
数字频率计的原理框图如图3.1所示。
主要由5个模块组成,分别是:
信号源模块、控制模块、计数模块、锁存器模块和显示器模块[6]。
图3.1数字频率计的原理框图
根据数字频率计的系统原理,cnt控制信号发生器。
testctl的计数使能信号testen能产生一个1s宽的周期信号,并对频率计的每一计数器Cnt10的ENA使能端进行同步控制:
当testen高电平时允许计数、低电平时停止计数。
reg32b为锁存器。
在信号load的上升沿时,立即对模块的输入口的数据锁存到reg32b的内部,并由reg32b的输出端输出,然后,七段译码器可以译码输出。
在这里使用了锁存器,好处是可以稳定显示数据,不会由于周期性的清零信号而不断闪烁。
Cnt10为十进制计数器。
有一时钟使能输入端ENA,用于锁定计数值。
当高电平时允许计数,低电平时禁止计数。
将八个十进制计数器Cnt10级联起来实现8位十进制计数功能[2,7]。
disply为七段译码显示驱动电路,可以将频率计数的结果译成能在数码管上显示的相对应的阿拉伯数字,便于读取测量的结果。
为了实现系统功能,测频控制信号发生器testctl、计数器Cnt10、锁存器reg32b存在一个工作时序的问题,设计时需要综合考虑。
8位数字频率计的顶层框图(endfreq.bdf),设计实现包括信号源模块(F1MHZ、CNT)、频率计模块(FREQ)和显示模块(display)三大模块。
下面分别介绍三个模块的结构和实现方法。
3.2信号源模块
信号源是为了产生1MHz的门控信号和待测的定频信号,而对输入系统时钟clk(50MHz)进行分频的模块,设计源代码PIN1MHZ.VHD对输入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于fpga的等精度数字频率计设计课程设计正文 大学论文 基于 fpga 精度 数字频率计 设计 课程设计 正文 大学 论文