基于FPGA的数字秒表的设计毕业论文.docx

上传人:b****7 文档编号:9669828 上传时间:2023-02-05 格式:DOCX 页数:53 大小:305.58KB
下载 相关 举报
基于FPGA的数字秒表的设计毕业论文.docx_第1页
第1页 / 共53页
基于FPGA的数字秒表的设计毕业论文.docx_第2页
第2页 / 共53页
基于FPGA的数字秒表的设计毕业论文.docx_第3页
第3页 / 共53页
基于FPGA的数字秒表的设计毕业论文.docx_第4页
第4页 / 共53页
基于FPGA的数字秒表的设计毕业论文.docx_第5页
第5页 / 共53页
点击查看更多>>
下载资源
资源描述

基于FPGA的数字秒表的设计毕业论文.docx

《基于FPGA的数字秒表的设计毕业论文.docx》由会员分享,可在线阅读,更多相关《基于FPGA的数字秒表的设计毕业论文.docx(53页珍藏版)》请在冰豆网上搜索。

基于FPGA的数字秒表的设计毕业论文.docx

基于FPGA的数字秒表的设计毕业论文

基于FPGA的数字秒表的设计

第1章绪论

电子设计的必由之路是数字化已成为共识。

在数字化的道路上,我国电子设计技术的发展经历了,并将继续经历许多重大的变革与飞跃、从应用SSI通用数字电路芯片构成电路系统,到广泛地应用MCU(微控制器或单片机),在电子系统设计上发生厂具有里程碑意义的飞跃,这一飞跃不但克服了纯SSI数字电路系统许多不可逾越的困难,同时也为电子设计技术的应用开拓了更广阔的前景。

它使得电子系统的智能化水平在广度和深度上产生了质的飞跃。

MCU的广便应用并没有抛弃SSI的应用,而是为它们在电于系统中找到了更合理的地位。

随着社会经济发展的延伸、各类新型电子产品的开发为我们提出了许多全新的课题和更高的要求。

FPGA/CPLD(现场可编程逻辑器件/复杂可编程逻辑器件)在EDA基础上的广泛应用.从某种意义上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构,但这是—种更高层次的循环,应是一次否定之否定的运动,它在更高层次上容纳了过去数字技术的优秀部分,对MCU系统将是—种扬弃,但在电子设计的技术操作和系统构成的整体上却发生质的飞跃。

如果说MCU在逻辑的实现上是无限的话,那么高速发展的FPGA/CPLD不但包括了MCU这一特点,并兼有串、并工作方式和高速、高可靠性以及宽口径适用等诸多方面的特点、不仅如此,随着EDA技术的发展和FPGA/CPLD在深亚微米领域的进军、它们与MCU、MPU、DSP、A/D、D/A、RAM和ROM等独立器件问的物理与功能界限正日趋模糊。

特别是软/硬IP芯核产业的迅猛发展,嵌入式通用与标准CPLD和FPGA器件的出现,片上系统已近在咫尺。

以大规模集成电路为物质基础的EDA技术终于打破了软硬件之间最后的屏障,使软硬件工程师们有了共同的语言[1]。

1.1课题背景

当前电子系统的设计正朝着速度快,容量大,体积小,质量轻,用电省的方向发展。

推动该潮流迅速发展的决定性因素就是使用了现代化的EDA设计工具。

EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,是90年代初,从CAD(计算机辅助没计)、CAM(算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的。

EDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件自动地完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑行局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

设计者的工作仅限于利用软件的方式,即利用硬件描述语言来完成对系统硬件功能的描述,在EDA工具的帮助下就可以得到最后的设计结果。

尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效[2]。

EDA技术中最为瞩目的功能,即最具现代电子设计技术特征的功能就是日益强大的逻辑设计仿真测试技术。

EDA仿真测试技术只需通过计算机就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫锚测试。

这一切都极大地提高了大规模系统电子设计的自动化程度。

另一方面,高速发展的CPLD/FPGA器件又为EDA技术的不断进步奠定可坚实的物质基础。

CPLD/FPGA器件更广泛的应用及厂商间的竞争,使得普通的设计人员获得廉价的器件和EDA软件成为可能。

现代的EDA工具软件已突破了早期仅能进行PCB版图设计,或类似某些仅限于电路功能模拟的、纯软件范围的局限,以最终实现可靠的硬件系统为目标,配备了系统设计自动化的全部工具。

如配置了各种常用的硬件描叙平台VHDL、VerilogHDL、ABELHDL等;配置了多种能兼用和混合使用的逻辑描述输入工具,如硬件描述语言文本输入法(其中包括布尔方程描述方式、原理图描述方式、状态图描述方式等)以及原理图输入法、波形输入法等;同时还配置了高性能的逻辑综合、优化和仿真模拟工具[3]。

1.2硬件描述语言

硬件描述语言(HardwareDescriptionLanguage)是硬件设计人员和电子设计自动化(EDA)工具之间的界面。

其主要目的是用来编写设计文件,建立电子系统行为级的仿真模型。

即利用计算机的巨大能力对用VerilogHDL或VHDL建模的复杂数字逻辑进行仿真,然后再自动综合以生成符合要求且在电路结构上可以实现的数字逻辑网表(Netlist),根据网表和某种工艺的器件自动生成具体电路,然后生成该工艺条件下这种具体电路的延时模型。

仿真验证无误后,用于制造ASIC芯片或写入CPLD和FPGA器件中。

随着PC平台上的EDA工具的发展,PC平台上的VerilogHDL和VHDL仿真综合性能已相当优越,这就为大规模普及这种新技术铺平了道路。

目前国内只有少数重点设计单位和高校有一些工作站平台上的EDA工具,而且大多数只是做一些线路图和版图级的仿真与设计,只有个别单位展开了利用VerilogHDL和VHDL模型(包括可综合和不可综合)的进行复杂的数字逻辑系统的设计。

随着电子系统向集成化、大规模、高速度的方向发展,HDL语言将成为电子系统硬件设计人员必须掌握的语言[3]。

1.2.1VHDL语言

VHDL(VeryHighSpeedIntegratedCircuitHardwareDescriptionLanguage,超高集成电路硬件描叙语言)诞生于1982年,是由美国国防部开发的一种快速设计电路的工具,目前已经成为IEEE(TheInstituteofElectricalandElectronics)的一种工业标准硬件描叙语言。

VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适合用于可编程逻辑芯片的应用设计。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。

VHDL的程序特点是将一项工程设计,或称为设计实体(可以是个元件、电路模块或一个系统)分成外部(或称可示部分,即端口)和内部(或称为不可视部分,即结构体)两部分,外部负责对设计实体和端口引脚命名和说明,内部负责对模块功能和算法进行描述。

在对一个设计实体定义了外部界面后,一旦其内部结构、功能开发完成,即可生成共享功能模块,这就意味着,在顶层综合或其他设计中可以直接调用这个实体模块。

VHDL具有较强的行为描述能力,可避开具体的器件结构,从逻辑功能和行为上进行描述和设计[3]。

1.2.2VerilogHDL语言

VerilogHDL是在1983年,由GDA(GateWayDesignAutomatio)公司的PhilMoorby首创的。

PhilMoorby后来成为Verilog-XL的主要设计者和(CadenceDesignSystem)的第一个合伙人。

在1984-1985年Moorby设计出第一个关于Verilog-XL的仿真器,1986年他对VerilogHDL的发展又作出另一个巨大贡献,提出了用于快速门级仿真的XL算法。

随着Verilog-XL算法的成功,VerilogHDL语言得到迅速发展。

1989年Cadence公司收购了GDA公司,VerilogHDL语言成为Cadence公司的私有财产,1990年,Cadence公司公开了VerilogHDL语言,成立了OVI(OpenVerilogInternatiinal)组织来负责VerilogHDL的发展。

IEEE于1995年制定了VerilogHDL的IEEE标准,即VerilogHDL1364-1995。

1987年,IEEE接受VHDL(VHSICHadewareDescriptionLanguage)为标准HDL,即IEEE1076-87标准,1993年进一步修订,定为ANSI/IEEE1076-93标准。

现在很多EDA供应商把VerilogHDL作为其EDA软件输入/输出的标准。

例如,Cadence、Synopsys、Viewlogic、MentorGraphic等厂商都提供了VHDL的支持[4]。

1.2.3VerilogHDL与VHDL的比较

VerilogHDL和VHDL作为描述硬件电路设计的语言,其共同的特点在于:

能形式化地抽象表示电路的行为和结构;支持逻辑设计中层次与范围的描述;可借用高级语言的精巧结构来简化电路行为的描述;具有电路仿真与验证机制以保证设计的正确性;支持电路描述由高层到低层的综合转换;硬件描述与实现工艺无关;便于文档管理;易于理解和设计重用。

目前版本的VerilogHDL与VHDL在行为级抽象建模的覆盖范围方面也有所不同。

一般认为VerilogHDL在系统抽象方面比VHDL强一些。

VerilogHDL较为适合算法级(Alogrithem)、寄存器传输级(RTL)、逻辑级(Logic)、门级(Gate)、设计。

而VHDL更为适合特大型的系统级(System)设计。

1.2.4VHDL设计中电路简化问题的探讨[8]

 随着集成电路技术的发展,用传统的方法进行芯片或系统设计已不能满足要求,迫切需要提高设计效率。

在这样的技术背景下,能大大降低设计难度的VHDL设计方法正越来越广泛地被采用。

但是VHDL设计是行为级的设计所带来的问题是设计者的设计思考与电路结构相脱节。

设计者主要是根据VHDL的语法规则对系统目标的逻辑行为进行描述,然后通过综合工具进行电路结构的综合、编译、优化,通过仿真工具进行逻辑功能仿真和系统时延的仿真。

用VHDL进行集成电路的设计,牵涉到对VHDL语言的使用方法和对设计的理解程度。

本文讨论了以下几个简化和优化电路设计的3个值得注意的方面:

(1)在用VHDL进行设计中要注意避免不必要的寄存器描述。

(2)在编写程序前要先对整个设计进行较深入的了解,科学的划分设计,多设想几种方案再进行比较,用多个较少位数的单元取代较多位数的单元。

(3)在延时要求不高的情况下,可提取逻辑电路公因子,把它分解成含有中间变量的多级电路。

1.2.5VHDL和MAX+PLUSII在设计数字电路中的应用[9]

以VHDL为工具的EDA设计方法与传统的人工设计方法相比,有以下几个优点:

1、缩短了开发周期;2、提高了效率;3、产品的质量得到了提高。

用VHDL进行数字系统开发与设计,其设计的抽象层次有6个,分别是系统级、芯片级、寄存器级、门级、电路级和版图/硅片级,可以在不同的抽象层次级别上设计系统。

使用MAX+PLUSII作为开发环境时应该根据软件支持的芯片资源情况选择合适的设计层次。

在VHDL设计中,常常采用多进程描述的方法来进行程序设计,通过使用进程可以把整体的功能局部化,分块设计,多个进程通过进程间通信机制互相配合,达到设计要求。

当进程比较多的时候,它们之间的配合问题就比较复杂,因此在设计之前应该合理规划安排。

1.2.6用EDA方法设计数字系统的灵活性[10]

用EDA方法设计数字系统,就是以硬件描述语言为系统逻辑描述的主要手段完成计数器设计文件,再运用EDA开发软件,对设计文件自动地完成逻辑编译、化间、分割、综合及优化逻辑仿真。

直到对特定目标芯片的适配编译、逻辑映射和编程下载。

在本文中是以EDA技术中的ISP软件为开发平台,来说明EDA方法设计数字系统的灵活性。

1、设计输入方式的灵活性,使用EDA方法设计数字系统可以按照设计要求和硬件描述语言的语法规则编写输入文件,而把其余的大部分工作留给计算机完成,真正体现了EDA方法的优点。

尤其是设计复杂的数字系统或者需要改动系统功能时,设计效率可成倍提高,EDA方法的优越性就会更加突出;2、功能仿真的灵活性,用EDA方法设计数字系统是同一个测试向量可以对任何一种设计输入方式产生的源文件进行仿真,而不许要单独编写测试文件;3、功能扩展的灵活性,在数字系统设计输入过程中,用EDA方法实现了硬件设计软件化,所以改动源文件的内容即可改变系统功能,使其扩展为复杂度更高的数字系统。

1.2.7VHDLsimulation[11]

VHDLisalanguagefordescribingdigitalsystems;thereforeitshouldbeofnosurprisethatstandardevent-drivenlogicsimulationalgorithmsareused.Suchalgorithmsaremosteasilydescribedintermsofthesimulationofstructuralmodels.Behaviouralmodelsareevaluatedinmuchthesameway,whereaprocesscanbethoughtofasanelement.

Theobjectiveofeven-drivensimulationistominimizetheworkdonebythesimulator.Thereforethestateofthecircuitisonlyevaluatedwhenachangeoccursinthecircuit.Itispossibletopredictwhentheoutputofanelementmightchangebecauseweknowthatsuchachangecanonlyoccurafteraninputchanges.Ifweonlymonitortheinputstoelements,wecanonlyknowthatanoutputmightchange;thelogicfunctionoftheelementdetermineswhetherornotachangeactuallyoccurs.Aswealsoknowthedlaysthroughtheelement,weknowwhentheoutputmightchange.Thusanelementonlyneedstobeevaluatedwhenitisknownthatitsoutputmightchangebutnototherwise.Nevertheless,evenbypredictingapossiblechange,itisonlynecessarytore-evaluateelementswhenthepossiblechangesoccur.Byfollowingthepossibleeventsthroughthecircuitwecanminimizethecomputationdonebythesimulator.Onlyelementsthatchangeneedtobeevaluated;anythingthatisnotchangingisignored.

1.3设计指标

设计一个基于FPGA的数字秒表的具体化技术指标如下。

1.有启/停开关,用于开始/结束计时操作

2.表计时长度为59.分59.99秒,超过计时长度,有溢出则报警,计时长度可手动设置。

3.置复位开关,在任何情况下只要按下复位开关,秒表都要无条件进行复位清0操作。

4.用FPGA器件实现,用VHDL语言编程,并进行下载,仿真。

 

1.4本文工作

详细分析课题任务,对数字系统设计的历史和现状进行分析,并对数字秒表的VHDL设计原理进行了深入的研究,并将其综合。

本文设计了一个基于FPGA的数字秒表,设计选用ALTERA公司的FPGA芯片FLEX10K系列的EPF10K10LC84-4,在开发软件MAX+PLUS2进行输入、编译、综合、仿真并下载到在系统可编程实验板中测试实现。

信号源是由实验板上的时钟信号经分频而得到的0.01秒信号。

而我采用了EDA技术,整个设计仅分两步:

首先,在MAXPLUSⅡ开发工具中,先用VHDL语言分别编写出以上几个模块的文本文件(称为底层文件),并将它们分别转换成相应的器件,然后分别进行时序仿真,每个器件的时序仿真结果与设计要求一致;然后,再将这几个模块共相关芯片按电路设计图连接起来,形成顶层文件后进行整个系统的综合,并将整个数字秒表作为一个器件进行时序仿真。

仿真完成后,将程序下载到大规模可编程逻辑器件EPM7128SLC84-15中,确定引脚的功能,即可实现数字秒表的芯片化。

第2章EDA设计方法及其应用

传统的电路设计方法都是自底向上进行设计的,也就是首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成个模块后进行连接,最后形成系统。

而基于EDA技术的设计方法则是自顶向下进行设计的,也就是首先采用可完全独立于目标器件芯片物理结构的硬件描述语言,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术,在确保设计的可行性于正确的前提下,完成功能确认。

然后利用EDA工具的逻辑综合功能,进行逻辑映射及布局布线,在利用产生的仿真文件进行包括功能和时序的验证,以确保实际系统的性能[5]。

2.1分析方法

在基于EDA技术的系统设计最重要的环节——在系统的基本功能或行为级上对设计的产品进行描述和定义时,我们是采用自顶向下分析,自底向上设计。

所谓“自顶向下分析”就是指将数字系统的整体分解为各个系统和模块,若子系统规模较大,则还需将子系统进一步分解为更小的子系统和模块,层层分解,直至整个系统中各个子系统关系合理、并便于逻辑电路级的设计和实现为止。

图2.1是一个自顶向下设计的结构分解图。

所谓“自底向上设计”,就是在自顶向下分析建立各种设计模型的基础上,先进行低层模块的设计,完成低层模块设计后再进行高一层次的设计,依次类推,直到完成顶层的设计为止。

采用该方法进行分析和设计时,高层设计进行功能和接口描述,说明模块的功能和接口,模块功能的更详细的描述在下一层次说明,最底层的设计才涉及具体的寄存器和逻辑门电路等方式的描述[6]。

采用自顶向下的设计方法有如下优点:

⑴自顶向下设计方法是一种模块化设计方法。

对设计的描述从上到下逐步由粗略到详细,符合常规的逻辑思维习惯。

⑵由于高层设计同器件无关,可以完全独立于目标器件的结构,在设计的最初阶段,设计人员可以不受芯片结构的约束,集中精力对产品进行最适应市场需求的设计,从而避免了传统设计方法的再设计风险,缩短了产品的上市周期。

⑶由于系统采用硬件描述语言进行设计,可以完全对立于目标器件的结构,因此设计易于在各种集成电路工艺或可编程器件之间移植。

⑷适合多个设计同时进行设计。

现在随着技术的不断进步,许多设计由一个设计者已无法完成,必须经过多个设计者分工协作完成一项设计的情况越来越多,在这种情况下,应用自顶向下设计方法便于由多个设计者同时进行设计,对设计任务进行合理分配,用系统工程的方法对设计进行管理。

针对具体的设计,实施自顶向下设计方法的形式会有所不同,但均需要遵循以下两条原则:

逐步分解功能,分层次进行设计。

在个设计层次上,考虑相应的仿真验证问题。

2.2表示方法

2.2.1文本表示方法

在EDA的设计中,最一般化、普遍性的设计表示方式就是文本表示方式,也就是利用硬件描述语言(HDL)用软件编程方式来表达自己的设计。

根据文本表示方式所使用的抽象层次,我们又可将文本表示方式分为:

行为描述,结构描述,数据流(寄存器传输级)描述。

行为描述就是设计一个部件是通过定义它的输入/输出响应来描述,也就是说对一个部件的设计,只描述了所希望电路的功能/行为,而没有直接指明或涉及实现这些行为的硬件结构。

结构描述就是设计一个部件是通过一些基本部件的互连来描述,也就是说对一个不见的设计,是通过描述该设计部件的硬件结构/硬件组成来表示的。

数据流描述就是一个部件通过一些寄存器部件的互连并在寄存器之间插入组合逻辑来描述,这类积存器或者显示地通过元件具体装配,或者通过推论作隐含的描述[7]。

2.2.2图形表示方式

在EDA的设计中,有时也用图形表示方式来表示自己的设计。

图形表示方式常用的有原理图、状态图、波形图等。

图形表示方式的优点是直观、方便,但是其存在以下缺点:

①设计的可读性差;②设计的复用性差;③设计的移植性差;④入档、交流、交付不方便。

2.2.3文本、图形混用方式

在EDA的设计中,根据自己设计所使用的性能及如何使设计简单易行,有时也经常采用文本、图形混用的形式。

2.3实现方法

2.3.1硬件描述语言编程实现法

硬件描述语言编程实现法,就是用VHDL、VerilogHDL等硬件描述语言来表达自己的设计思想,并使用EDA工具提供的文本编辑器以文本的方式进行设计输入的一种实现方法。

它是EDA的设计中最一般化、最具普遍性的实现方法,根据设计系统的实际情况,实际可从行为级、寄存器级、门电路级等不同层次进行描述,非常灵活,并且设计的移植性非常好。

所有EDA工具都支持文本方式的编程和编译。

2.3.2原理图设计实现法

原理图设计实现法,就是利用原理图表示自己的设计思想,并使用EDA工具提供的图形编辑器以原理图的方式进行设计输入的一种实现方法。

原理图输入法的实现方式,简单、直观、方便,并且可利用许多现成的单元器件或根据需要设计的元器件。

2.3.3参数可设置兆功能块实现法

参数可设置兆功能块实现法,就是设计者可以根据实际电路的设计需要,选择LPM(LibraryofParameterizedModuels,参数可设置模块库,简称LPM)库中的适当模块,并为其设定适当的参数以满足自己设计的需要的一中实现方法。

作为EDIF标准的一部分,LPM形式得到了EDA工具的良好支持,LPM中功能模块的内容丰富。

在EDA的设计中,以图形或硬件描述语言模块形式调用兆功能块进行设计,使得基于EDA技术的电子设计能够有效地利用其他优秀电子工程技术人员的硬件设计成果,使得设计效率和可靠性有了很大的提高。

2.3.4软的或硬的IP实现法

软的或硬的IP核实现法,就是在大型系统的设计中,对于某些功能模块的设计,通过调用已经购买的有关公司或电子工程技术人员的软的或硬的IP(知识产权)核来实现自己设计的实现方法。

使用该方法,可以快速而高效地实现大型系统的设计或系统集成[2]。

第3章设计思想与方案论证

实现数字秒表的方法有多种,可以用单片机作为控制芯片,采用AT89C52单片机,数字显示采用共阳七段LED显示器,P0口输出段码数据,P2.0-P2.5口作为列扫描输出,P1.0、P1.1、P1.3口接三个开关按钮,用以实现调时及秒表/时钟功能切换设置。

也可以用FPGA作为控制芯片,采用EDA技术用VHDL语言实现硬件电路。

当然每一种方案都有其各自的优点。

本章详细列举、说明了三种不同实现数字秒表的方案,对三种方案的优缺点进行了对比,选出了最佳方案。

3.1设计思想

1.方案1:

基于单片机控制的数字秒表

1.秒表计时器采用六位LED数码管显示分、秒,0.1S,0.01S。

使用按键开关可实现计时调整、秒表功能。

2. 系统硬件电路的设计

秒表/时钟计时器的硬件电路设计采用AT89C52单片机,数字显示采用共阳七段LED显示器,P0口输出段码数据,P2.0-P2.5口作为列扫描输出,P1.0、P1.1、P1.3口接三个开关按钮,用以实现调时及秒表功能切换设置。

为了给共阳LED数码管提供驱动电压,采用三极管8550作电源驱动

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 交通运输

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1