基于FPGA的计时器设计最终Word下载.docx
- 文档编号:18540729
- 上传时间:2022-12-19
- 格式:DOCX
- 页数:31
- 大小:2.67MB
基于FPGA的计时器设计最终Word下载.docx
《基于FPGA的计时器设计最终Word下载.docx》由会员分享,可在线阅读,更多相关《基于FPGA的计时器设计最终Word下载.docx(31页珍藏版)》请在冰豆网上搜索。
随着电子设计自动化技术和可编程逻辑器件的出现和飞速发展,在设计周期得到大大的缩短的同时系统成本也有了大幅度的降低,显然标准逻辑器件的组装已远不能满足这方面的要求。
而VerilogHDL能提供高阶电路描述语言的方式,让复杂的电路可以通过VerilogHDL编辑器的电路合成方式,轻易而且快速的达到设计的规格。
由于VerilogHDL电路描述语言能涵盖的范围相当广,能适用于各种不同阶层的设计工程师的需要,所以VerilogHDL电路设计毫无疑问的成为硬件设计工程师的必备工具。
本系统是用Verilog编写的基于AlteraDE2的电话计费器。
该设计采用了现场可编程逻辑器件FPGA设计,并基于硬件描述语言VerilogHDL在Altera公司的QuartusⅡ软件上实现仿真。
根据电话局反馈回来的信号,此信号是提前预设的,数码管显示通话类型、用户余额以及通话时长(包括秒数和分钟数)。
根据每种通话类型的计费价格不同,当系统所设置的余额数不够,用户将无法拨通电话,当用户余额小于指定金额时,系统发出警告信号,提醒用户。
当告警时间过长(超过1分钟)时自动切断通话信号。
当用户结束通话,系统清零。
关键词:
Verilog,FPGA,通话信号,计时器
Abstract
Withtherapiddevelopmentofelectronicdesignautomationtechnologyandprogrammablelogicdeviceswhichgreatlyshortenthedesignperiodandreducedthecostofthesystematthesametime.Apparently,theassemblyofstandardlogicdevicescannotmeettherequirementsinthisregard.VerilogHDLcanprovidehigh-levelcircuitdescriptionlanguage,whichallowscomplexcircuitbytheVerilogHDLEditorcircuitsynthesismethodaswellbymeetingthedesignspecificationappropriately.VerilogHDLcircuitdescriptionlanguagecoversaverywiderange,whichcanbeappliedtoavarietyofdifferentsectorsoftheneedsofdesignengineers,thecircuitdesignofVerilogHDLwithoutadoubttobecomeanessentialtoolforhardwaredesignengineers.
ThesystemisbasedonAlteraDE2writtenbyVerilogphonedevices.ItisusedbyFieldProgrammableGateArrayFPGAbasedonVerilogHDLhardwaredescriptionlanguagetodesignandAltera'
sQuartusⅡinsoftwareforemulation.Accordingtothefeedbackofthetelephoneofficebacksignalwhichisactuallypre-designed,digitalpipedisplaytype,userbalanceandphonecallduration(includingthenumberofsecondsorminutes).Dependingonthebillingpriceofeachcalltypeisdifferent,whenabegantobalancethesetisnotenough,theuserwillnotbeabletodialthephone,andwhenthebalanceislessthanthespecifiedmoney,issuingawarningsignalsystem,remindingtousers.Whenthealarmtimeistoolong(morethan1minutes),theconversationsignalwillbeautomaticallycutoff.Whentheuserendthecall,thesystemwillbereseted.
Keywords:
Verilog,FPGA,Callingsignal,calculagraph
1绪论
1.1课题研究的目的
时钟计时器在现在应用场合非常的广泛,近年来,随着科学技术的进步和时代的发展,人们对时钟的功能和精度提出了越来越高的要求,各种时钟的设计也越来越重要。
秒表/时钟计时器是在一种计时器上实现两种基本功能的一种器件。
它广泛应用于各种场所,同时,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于集成化,而受到广大消费者的喜爱。
近年来随着计算机技术的飞速发展,计算机也正式形成了通用计算机系统和嵌入式计算机系统二个分支。
单片机作为最典型的嵌入式系统,由于其微小的体积和极低的成本,广泛应用于家用电器、仪器仪表、工业控制单元以及通信产品中,成为现代电子系统中最重要的智能化工具。
同时数模电技术、微电子技术也快速发展使得大量集成芯片出现,从而实现很多简单功能代替了原来的模拟电路。
这样利用单片机、集成芯片和电子电路就可以很方便的进行设计,其中最典型、现在应用也很多的就是电子产品的设计。
本设计就是利用单片机技术将秒表和时钟两种计时器的功能集中到一种计时装置上,从而实现计时器功能的集成化,使其使用起来更加方便。
本设计的一大特点就是在硬件设计中采用实时时钟芯片来实现计时,大大简化了硬件电路,从而使设计更加简便易行。
1.2国内外发展现状
在国外,电子计时器在集成电路发明后,只用短短几年时间就完成了技术飞跃,经过激烈的市场竞争,现在的计时器技术己经相当成熟。
计时器已慢慢地脱离原来的“辅助计时工具的功能定位,正向着多功能化、可编程化方向发展,在各个领域都得到了广泛的应用。
国内也有厂商利用计时器芯片开发新的产品,但对计时器技术的研究、计时器芯片的设计还处于起步阶段。
计时器的主要功能还是在于“计时”,不妨称之为“低档计时器”。
即便是对这种计时器,很多厂商也只从事计时器的设计、销售业务。
1.3课题的主要技术路线
在本次设计基于现场可编程逻辑器件FPGA进行设计,应用硬件描述语言VerilogHDL编程并在Altera公司的QuartusⅡ软件上实现仿真。
需要进行计时功能的实现,
通过拨码开关输入、数码管显示来达成运算目的。
2FPGA技术及硬件描述语言
2.1FPGA的介绍
2.1.1可编程逻辑器件发展简史
随着微电子设计技术与工艺的发展,数字集成电路从电子管、晶体管、中小规模集成电路、超大规模集成电路逐步发展到今天的专用集成电路(ASIC)。
ASIC的出现降低了产品的生产成本,提高了系统的可靠性,缩小了设计的物理尺寸,推动了社会的数字化进程。
但是ASIC因其设计周期长,改版投资大,灵活性差等缺陷制约着它的应用范围。
硬件工程师希望有一种更灵活的设计方法,根据需要,在实验室就能设计、更改大规模数字逻辑,研制自己的ASIC并马上投入使用,这是提出可编程逻辑器件的基本思想。
可编程逻辑器件随着微电子制造工艺的发展取得了长足的进步。
从早期的只能存储少量数据,完成简单逻辑功能的可编程只读存储器(PROM)、紫外线可擦除只读存储器(EPROM)和电可擦除只读存储器(E2PROM),发展到能完成中大规模的数字逻辑功能的可编程阵列逻辑(PAL)和通用阵列逻辑(GAL),今天已经发展成为可以完成超大规模的复杂组合逻辑与时序逻辑的复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)。
随着工艺技术的发展与市场的需要,超大规模、高速、低功耗的新型FPGA/CPLD不断推陈出新。
新一代的FPGA甚至集成了中央处理器(CPU)或数字处理器(DSP)内核,在一片FPGA上进行软硬件协同设计,为实现片上可编程系统(SOPC,SystemOnProgrammableChip)提供了强大的硬件支持。
2.1.2可编程逻辑器件的基本结构
可编程逻辑器件的基木结构如图2.1所示。
由输入控制电路、与阵列、或阵列以及输出控制电路组成。
在输入控制电路中,输入信号经过输入缓冲单元产生每个输入变量的原变量和反变量,并作为与阵列的输入项。
与阵列由若干个与门组成,输入缓冲单元提供的各输入项被有选择地连接到各个与门输入端,每个与门的输出则是部分输入变量的乘积项。
各与门输出又作为或阵列的输入,这样或阵列的输出就是输入变量的与或形式。
输出控制电路将或阵列输出的与或式通过三态门、寄存器等电路,一方面产生输出信号,另一方面作为反馈信号送回输入端,以便实现更复杂的逻辑功能。
因此,利用可编程逻辑器件可以方便地实现各种逻辑功能。
图2.1可编程逻辑器件的基木结构
2.1.3可编程逻辑器件分类
广义上讲,可编程逻辑器件是指一切通过软件手段更改、配置器件内部连接结构和逻辑单元,完成既定设计功能的数字集成电路。
目前常用的可编程逻辑器件主要有简单的逻辑阵列(PAL/GAL)、复杂可编程逻辑器件(CPLD)和现场可编程门阵列(FPGA)等3大类。
1、PAL/GAL
PAL是ProgrammableArrayLogic的缩写,即可编程阵列逻辑;
GAL是GenericArrayLogic的缩写,即通用可编程阵列逻辑。
PAL/GAL是早期可编程逻辑器件的发展形式,其特点是大多基于E2CMOS工艺,结构较为简单,可编程逻辑单元多为与、或阵列,可编程逻辑单元密度较低,仅能使用于某些简单的数字逻辑电路。
虽然PAL/GAL密度较低,但是它们一出现即以其低功耗,低成本、高可靠性、软件可编程、可重复更改等特点引发了数字电路领域的巨大震动。
虽然目前较复杂的逻辑电路一般使用CPLD甚至FPGA完成,但是对应很多简单的数字逻辑电路,GAL等简单的可编程逻辑器件仍然被大量使用。
目前,国内外很多对成本十分敏感的设计都在使用GAL等低成本可编程逻辑器件,越来越多的74系列逻辑电路被GAL取代。
GAL等器件发展至今已经近20年了,新一代的GAL以功能灵活,小封装、低成本、重复可编程、应用灵活等特点依然在数字电路领域扮演着重要的角色。
目前比较大的GAL器件供应商主要是Lattice半导体。
2、CPLD
CPLD是ComplexProgrammableLogicDevice的缩写,即复杂的可编程逻辑器件。
CPLD是在PAL、GAL的基础上发展起来的,一般也采用称为E2CMOS工艺,也有少数厂商采用Flash工艺,其基本结构由可编程I/O单元、基本逻辑单元、布线池和其他辅助功能模块构成。
CPLD可实现的逻辑功能比PAL、GAL有了大幅度的提升,一般可以完成设计中较复杂、较高速度的逻辑功能,如接口转换、总线控制等。
CPLD的主要器件供应商有Altera、Lattice和Xilinx等。
3、FPGA
FPGA是FieldProgrammableGateArray的缩写,即现场可编程门阵列。
FPGA是在CPLD的基础上发展起来的新型高性能可编程逻辑器件,它一般采用SRAM工艺,也有一些专用器件采用Flash工艺或反熔丝(Anti-Fuse)工艺等。
FPGA的集成度很高,其器件密度从数万系统门到数千万系统门不等,可以完成极其复杂的时序与组合逻辑电路功能,适用于高速、高密度的高端数字逻辑电路设计领域。
FPGA的基本组成部分有可编程输入/输出单元,基本可编程逻辑单元、嵌入式RAM、丰富的布线资源、底层嵌入功能单元、内嵌专用硬核等。
FPGA的主要器件供应商有Xilinx、Altera、Lattice、Actel和Atmel等。
2.1.4AlteraCycloneⅡ系列器件介绍
AlteraCycloneⅡ采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。
采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,CycloneⅡ器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。
CycloneⅡ器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。
CycloneⅡ器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装,这些都为诸如视频显示、数字电视DTV)、机顶盒STB)、DVD播放器、DSL调制解调器、家用网关和中低端路由器等批量应用进行了优化。
本设计正是采用CycloneⅡ系列的芯片EP2C35672C6。
该芯片的空间足够应付该系统所需要的资源。
2.1.5FPGA的开发流程
FPGA开发基本流程包括:
设计输入、设计仿真、设计综合、布局布线等,它们的连接关系如图2.2所示。
图2.2中FPGA开发流程图设计综合是整个FPGA设计流程中一个重要的步骤,它将HDL代码生成用于布局布线的网表和相应的约束。
而且随着新一代FPGA芯片频率和密度的增长,时序收敛问题越来越严重,综合已经成为整个设计成败的关键。
通常芯片供应商的FPGA软件中都包含综合功能,但它相对简单,不能适应新一代FPGA芯片的发展,需要更加专业的综合工具。
图2.2AlteraFPGA的开发流程
2.2FPGA设计方法
在FPGA设计中,有许多重要的原则和规律可循,掌握这些原则和规律,人们可以设计出许多高性能的电子系统。
硬件原则主要针对HDL代码编写而言的。
硬件描述语言,它通过对硬件的抽象,最终实现在芯片内部的实际电路。
因此评判一段HDL代码的优劣的最终标准是:
其描述并实现的硬件电路的性能(主要是指面积和速度)。
评价一个设计的代码水平,主要从设计工程师所构想的硬件实现方案的效率以及合理性来分析。
一个硬件系统,通过何种方式进行模块划分与任务分配,使用算法和实现功能,以及FPGA的规模估算、数据接口设计等,具体到FPGA的设计就要求对设计的全局有个宏观上的合理安排。
一般来说实时性要求高、频率快、功耗小的功能模块适合使用CPLD实现。
而FPGA与CPLD相比,更适合实现规模较大、频率较高、寄存器资源使用较多的设计。
面积和速度的平衡与互换原则进行FPGA设计时的一个重要原则。
这里“面积”是指一种设计所要消耗的FPGA/CPLD的逻辑资源的数量,对于FPGA可以用所消耗的触发器(FF)和查找表(LUT)来衡量,更一般的衡量方式可以用设计所占用的等价逻辑门数。
“速度”是指设计在芯片上稳定运行,所能够达到的最高频率,这个频率由设计的时序状况决定,和设计满足的时钟周期,时钟建立时间(ClockSetupTime),时钟保持时间(ClockHoldTime)等众多时序特征量密切相关。
面积和速度是对立统一的矛盾体。
要求一个设计同时具备运行频率最高而且面积最小是不现实的。
科学的设计方法是在满足设计时序要求的前提下,占用最小的芯片面积。
或者在所规定的面积下,频率更高。
这两种目标充分体现了面积和速度的平衡思想。
相比之下,满足时序、工作频率的要求更重要一些,当两者冲突时,采用速度优先的准则。
采用同步时序设计是FPGA设计的一个重要原则。
它可以使静态时序分析变得简单而且可靠,能有效地避免毛刺的影响,使设计更加有效,还可以减小环境对芯片的影响。
在遵循这一原则的时候,应该尽可能的在设计中使用同一时钟,时钟走全局网络,同时避免使用混合时钟采样数据。
2.3利用硬件描述语言(HDL)的硬件电路设计方法
硬件描述语言,就是可以描述电路的功能、信号连接关系及定时关系的语言。
它能比电路图更有效地表示硬件电路的特性。
利用硬件描述语言编程来表示逻辑器件及系统硬件的功能和行为,是该设计方法的一个重要特征。
随着大规模专用集成电路(ASIC)的开发和研制,为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发时间,各ASIC研制和生产厂家相继开发了用于各自目的的硬件描述语言。
其中最有代表性的是美国国防部开发的VHDL语言,Verilog公司开发的VerilogHDL以及日本电子工业振兴协会开发的UDL/I语言。
利用硬件描述语言(HDL)的硬件电路设计方法具有以下特点:
首先是该设计方法是首先从系统设计入手,从顶层进行功能划分和结构设计。
其次,系统中可大量采用ASIC芯片由于目前众多的制造ASIC芯片的厂家,他们的工具软件都可以支持HDL语言的编程,因此,硬件设计人员在设计硬件电路时,无须受只能使用通用元器件的限制,而可以根据硬件电路设计的需要,设计自用的ASIC芯片或可编程逻辑器件。
这样最终会使系统电路设计更趋合理,体积也可大为缩小。
采用系统早期仿真从自上至下的设计过程可以看到,在系统设计过程中要进行三级仿真,即行为层次仿真、RTL层次仿真和门级层次仿真。
也就是说进行系统数学模型的仿真、系统数据流的仿真和系统门级电路原理的仿真。
这三级仿真贯穿系统硬件设计的全过程,从而可以在系统设计早期发现设计中存在的问题。
在采用传统的硬件电路设计方法时,往往要求设计者在设计电路前应写出该电路的逻辑表达式或真值表(或时序电路的状态表)。
这一工作是很困难和繁杂的,特别是在系统比较复杂时更是如此。
在用HDL语言设计硬件电路时,就可以使设计者免除编写逻辑表达式或真值表之苦。
这样使硬件电路的设计难度有了大幅度的下降,从而也缩短了硬件电路的设计周期。
在传统的硬件电路设计中,最后形成的主要文件是电原理图,而采用HDL语言设计系统硬件电路时,主要的设计文件是用HDL语言编写的源程序。
如果需要也可以转换为电原理图形式输出。
用HDL语言源程序作为归档文件有很多好处。
其一是资料量小,便于保存。
其二是可继承性好。
当设计其它硬件电路时,可以使用文件中的某些库、进程和过程等描述某些局部硬件电路的程序。
其三是阅读方便。
阅读程序比阅读原理图要更容易一些。
阅读者很容易在程序中看出某一硬件电路的工作原理和逻辑关系。
而阅读电原理图,推知其工作原理却需要较多的硬件知识和经验,而且看起来也不那么一目了然。
2.4VerilogHDL语言的设计流程
VerilogHDL语言采用自顶而下(Top-Down)设计的基本概念。
现代集成电路制造工艺技术的改进,使得在一个芯片上集成数十万乃至数千万个器件成为可能。
但很难设想仅有一个设计师独立设计如此大规模的电路而不出现错误。
利用层次化、结构化的设计方法,一个完整的硬件设计任务首先由总设计师划分为若干个可操作的模块,编制出相应的模型(行为的或结构的),通过仿真加以验证后,再把这些模块分配给下一层的设计师。
这就允许多个设计师同时对其下层设计师完成的设计用行为级上层模块对其所做的设计进行验证。
为了提高设计质量,如果其中有一部分模块可由商业渠道可得,用户可以购买它们的知识产权的使用权(IP核的重用),以节省时间和开发经费,图2.3为自顶而下(Top-Down)的示意图,以设计树的形式绘出。
自顶而下的设计(即Top-Down设计)是从系统级开始,把系统划分为基本单元,然后再把每个基本单元划分为下一层次的基本单元,一直这样做下去,直到可以直接用EDA元件库中的基本元件来实现为止。
对于设计开发整机电子产品的单位和个人来说,新产品的开发总是从系统设计入手,先进方案的总体论证、功能描述、任务和指标的分配。
随着系统变得复杂和庞大,特别需要在样机问世之前,对产品的全貌有一定的预见性。
目前,EDA技术的发展使得设计师有可能实现真正的自顶而下的设计。
图2.3Top-Dowm设计思想
复杂数字逻辑电路和系统的层次化、结构化设计隐含着对系统硬件设计方案的逐次分解。
在设计过程中的任意层次,至少得有一种形式来描述硬件。
硬件的描述特别是行为描述通常成为行为建模。
在集成电路设计的每一层次,硬件可以分为一些模块,该层次的硬件结构由这些模块的互联描述,该层次的硬件的行为有这些模块的行为描述。
这些模块称为该层次的基本单元。
而该层次的基本单元又由下一层次的基本单元互联而成。
如此下去,完整的硬件设计就可以由图1.1所示的设计树描述。
在不同的层次都可以进行仿真以对设计思想进行验证。
EDA工具提供了有效的手段来管理错综复杂的层次,即可以很方便的查看某一层次某模块的源代码或电路图以改正仿真时发现的错误。
以下是具体模块的设计编译和仿真的过程。
在不同的层次做具体模块的设计所用的方法也有所不同,在高层次上往往编写一些行为级的模块通过仿真加以验证,其主要目的是系统性能的总体考虑和各模块的指标分配,并非具体电路的实现,因而综合及其以后的步骤往往不需进行。
而当设计的层次比较接近底层时,行为描述往往需要用电路逻辑来实现。
这时的模块不仅需要通过仿真加以验证,还需要进行综合、优化、布线和后仿真。
总之具体电路是从底向逐步的。
EDA工具往往不仅支持HDL描述也支持电路图输入,有效地利用这两种方法是提高设计效率的办法之一。
图2.4所示的流程图简要地说明了模块的编译和测试过程。
从图中可以看出,模块设计流程主要有两大主要功能部分组成:
设计开发:
即从编写设计文件→综合到布局布线→电路生成这样一系列步骤。
设计验证:
也就是进行各种仿真的一系列步骤,如果在仿真过程中发现问题就返回设计输入进行修改。
具体工艺器件的优化、映像和布局布线。
由于各种ASIC和FPGA器件的工艺各不相同,因而当用不同厂家的不同器件来实现已验证的逻辑网表(EDIF文件)就需要不同的基本单元库与布线延迟模型与之对应,才能进行优化、映像和布局布线,以及布局布线后准确的仿真验证。
基本单元库与布线延迟模型由熟悉本厂工艺的工程师提供,再由EDA厂商的工程师编入相应的处理程序,而逻辑电路设计师只需用一文件说明所用的工艺期间和约束条件,EDA工具就会自动地根据这一文件选择相应的库和模型进行准确的处理,从而大大提高设计效率。
图2.4HDL设计流程图
2.5QuartusⅡ概述及其设计流程
2.5.1QuartusⅡ概述
QuartusⅡ是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。
QuartusⅡ可以在XP、Linux以及
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 计时器 设计 最终