基于EDA技术的综合计时系统的设计Word下载.docx
《基于EDA技术的综合计时系统的设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于EDA技术的综合计时系统的设计Word下载.docx(32页珍藏版)》请在冰点文库上搜索。
VHDL
论文(设计)题目的来源、理论和实践意义:
论文(设计)的主要内容及创新点:
附:
本人签名:
年月日
中文摘要…………………………………………………………1
英文摘要…………………………………………………………1
一、引言…………………………………………………………2
二、EDA技术概述…………………………………………………3
(一)EDA技术介绍………………………………………………3
(二)硬件描述语言(VHDL)的简介………………………………6
(三)现场可编程门阵列(FPGA)的简介…………………………7
(四)QuartusⅡ设计软件的简介…………………………………9
三、综合计时系统设计与分析…………………………………11
(一)系统设计要求……………………………………………11
(二)系统设计方案………………………………………………11
(三)系统仿真……………………………………………………22
(四)设计技巧分析………………………………………………26
四、总结与展望………………………………………………………27
五、参考文献…………………………………………………………28
摘要:
电子设计自动化(EDA)是以计算机为操作平台、以硬件描述语言为设计语言、以可编程器件为实验载体进行必要的元件建模和系统仿真的电子产品自动化设计过程。
运用EDA技术进行电子系统分的设计,有着设计快速、调试方便、研制周期短、系统可靠性高等优点。
EDA技术是现代电子设计的发展趋势。
本设计主要利用VHDL语言在EDA平台上设计一个综合计时系统,在设计中采用了自上而下的方法。
它可以显示年、月、日、分、秒、星期。
计时系统的内部功能模块可以分为三个部分:
综合计时电路、显示控制电路、调整控制电路。
其中综合计时电路用于完成各种计时功能,显示控制电路用于完成计时结果的显示,调整控制电路用于调整计时系统的有关参数。
关键词:
VHDL;
DesignofComprehensiveMeteringSystemsBasedonEDA
Abstract:
ElectronicDesignAutomation(EDA)usescomputerasitsworkbench,hardwaredescriptionlanguageasitsdesignlanguage,programmablelogicdeviceasitsexperimentcarrier,itisanautomaticdesignprocessofelectronicproductfordevicemodelingandsystemsimulation.Ithasmanymeritssuchasfastdesign,easydebug,shortdevelopingperiodandhighsystemreliability.EDAtechniqueisthedevelopingtrendofmodernelectronicdesign.ThepurposeofthisdissertationistodesignacomprehensivetimingsystembasedonEDAplatformbyusingVHDLlanguage.Itusesthemethodoftop-downinthisdesign.Itdisplayyears,months,dates,hours,minutes,secondsandweeks;
Thesystemdividedintothreepartsonfunctionmodule,mean:
counter-timemoduleuseforcountingtime;
display-controlmoduleusefordisplayingtime;
modify-timemoduleformodifyingtime..
Keywords:
EDAtechnology;
Comprehensivetimingsystem;
FPGA;
VHDL
一、引言
运用EDA工具,通过设计芯片来实现数字系统功能的设计方法正在成为现代电子系统设计的主流方法。
应用这种设计方法设计数字系统时,从系统总体要求出发,自上而下地将设计细化,将功能具体化、模块化,直到最底层的模块适合用硬件描述预言或原理图描述为止,经过编译、综合、适配、下载等步骤,完成设计任务。
这种基于芯片的设计方法具有设计灵活、修改快捷、调试方便、研制周期短、系统可靠性高等优点。
克服了用中小规模集成电路构成系统的诸多缺点而被广泛应用。
以下介绍基于EDA技术设计综合计时系统的一种方案。
二、EDA技术概述
(一)EDA技术介绍
1.1EDA技术简介
在电子设计技术领域,可编程逻辑器件(如PLD,GAL)的应用,已有了很好的普及。
这些器件为数字系统的设计带来极大的灵活性。
由于这类器件可以通过软件编程而对其硬件的结构和工作方式进行重构,使得硬件的设计可以如同软件设计那样方便快捷。
这一切极大地改变了传统的数字系统设计方法、设计过程、乃至设计观念。
纵观可编程逻辑器件的发展史,它在结构原理、集成规模、下载方式、逻辑设计手段等方面的每一次进步都为现代电子设计技术的革命与发展提供了不可或缺的强大动力。
随着可编程逻辑器件集成规模不断扩大,自身功能的不断完善和计算机辅助设计技术的提高,在现代电子系统设计领域中的EDA便应运而生了。
传统的数字电路设计模式,如利用卡诺图的逻辑化简手段以及难懂的布尔方程表达方式和相应的TTL或4000系列小规模集成芯片的堆砌技术正在迅速地退出历史舞台[1]。
电子设计自动化(EDA)是一种实现电子系统或电子产品自动化设计的技术,它与电子技术、微电子技术的发展密切相关,吸收了计算机科学领域的大多数最新研究成果,以高性能的计算机作为工作平台,是20世纪90年代初从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展而来的[2]。
EDA技术就是以计算机为工具,在EDA软件平台上,根据硬件描述语言HDL完成的设计文件,自动地完成逻辑编译、化简、分割、综合及优化、布局线、仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
设计者的工作仅限于利用软件的方式来完成对系统硬件功能的描述,在EDA工具的帮助下和应用相应的FPG刀CPLD器件,就可以得到最后的设计结果。
尽管目标系统是硬件,但整个设计和修改过程如同完成软件设计一样方便和高效。
当然,这里的所谓EDA主要是指数字系统的自动化设计,因为这一领域的软硬件方面的技术已比较成熟,应用的普及程度也已比较大。
而模拟电子系统的EDA正在进入实用,其初期的EDA工具不一定需要硬件描述语言。
此外,从应用的广度和深度来说,由于电子信息领域的全面数字化,基于EDA的数字系统的设计技术具有更大的应用市场和更紧迫的需求性[3]。
1.2EDA技术发展过程
EDA技术的发展始于70年代,至今经历了三个阶段。
电子线路的CAD(计算机辅助设计)是EDA发展的初级阶段,是高级EDA系统的重要组成部分。
它利用计算机的图形编辑、分析和存储等能力,协助工程师设计电子系统的电路图、印制电路板和集成电路板图;
采用二维图形编辑与分析,主要解决电子线路设计后期的大量重复性工作,可以减少设计人员的繁琐重复劳动,但自动化程度低,需要人工干预整个设计过程。
这类专用软件大多以微机为工作平台,易于学用,设计中小规模电子系统可靠有效,现仍有很多这类专用软件被广泛应用于工程设计。
80年代初期,EDA技术开始技术设计过程的分析,推出了以仿真(逻辑模拟、定时分析和故障仿真)和自动布局与布线为核心的EDA产品,这一阶段的EDA已把三维图形技术、窗口技术、计算机操作系统、网络数据交换、数据库与进程管理等一系列计算机学科的最新成果引入电子设计,形成了CAE—计算机辅助工程。
也就是所谓的EDA技术中级阶段。
其主要特征是具备了自动布局布线和电路的计算机仿真、分析和验证功能。
其作用已不仅仅是辅助设计,而且可以代替人进行某种思维[4]。
CAE这种以原理图为基础的EDA系统,虽然直观,且易于理解,但对复杂的电子设计很难达到要求,也不宜于设计的优化。
所以,90年代出现了以自动综合器和硬件描述语言为基础,全面支持电子设计自动化的ESDA(电子系统设计自动化),即高级EDA阶段、也就是目前常说的EDA。
过去传统的电子系统电子产品的设计方法是采用自底而上(Bottomup)的程式,设计者先对系统结构分块,直接进行电路级的设计[5]。
这种设计方式使设计者不能预测下一阶段的问题,而且每一阶段是否存在问题,往往在系统整机调试时才确定,也很难通过局部电路的调整使整个系统达到既定的功能和指标,不能保证设计一举成功。
EDA技术高级阶段采用一种新的设计概念:
自顶而下(TopDown)的设计程式和并行工程(eoncurrentengineering)的设计方法,设计者的精力主要集中在所要电子产品的准确定义上,EDA系统去完成电子产品的系统级至物理级的设计。
此阶段EDA技术的主要特征是支持高级语言对系统进行描述,高层次综合理论得到了巨大的发展,可进行系统级的仿真和综合[5]。
1.3EDA设计流程
完整地了解利用EDA技术进行设计开发的流程对于正确地选择和使用EDA软件,优化设计项目,提高设计效率是十分有益的。
一个完整的、典型EDA设计流程既是自顶向下设计方法的具体实施途径,也是EDA工具软件身的组成结构。
在实践中进一步了解支持这一设计流程的诸多设计工具,利于有效地排除设计中出现的问题,提高设计质量和总结设计经验。
其设流程包括[6]:
1.3.1设计输入(原理图/HDL文本编辑)
(1).图形输入
图形输入通常包括状态图输入、波形图输入和原理图输入三种常用法。
状态图输入方法就是根据电路的控制条件和不同的转换方式,用绘图方法,在EDA工具的状态图编辑器上绘制出状态图,然后由EDA编译器和合器将此状态变化流程图形编译综合成电路网表。
波形图输入方法则是将待设计的电路看成是一个黑盒子,只需告诉工具该黑盒电子电路的输入和输出时序波形图,EDA工具即能据此完成黑子电路的设计。
原理图输入方法类似于传统电子设计方法的原理图编辑输入方式,即EDA软件的图形编辑界面上绘制能完成特定功能的电路原理图[7]。
(2).HDL文本输入
这种方式与传统的计算机软件语言编辑输入基本一致。
就是将使用了种硬件描述语言(HDL)的电路设计文本,如VHDL或Verilog的源程序,进行编辑输入。
可以说,应用HDL文本输入的方法为EDA技术的应用和发展打开了个广阔的天地[8]。
1.3.2综合
综合就是将电路的高级语言(如行为描述)转换成低级的,可与FPGA/CPLD的基本结构相映射的网表文件或程序。
整个综合过程就是将设计者在EDA平台上编辑输入的HDL文本、原图或状态图形描述,依据给定的硬件结构组件和约束控制条件进行编译、化、转换和综合,最终获得门级电路甚至更底层的电路描述网表文件。
1.3.3适配
适配器也称为结构综合器,它的功能是将由综合器产生的网表文件配于指定的目标器件中,使之产生最终的下载文件,如JEDEC、Jam格式的件。
适配所选定的目标器件(FPGA/CPLD芯片)必须属于原综合器指定的目器件系列。
适配完成后可以利用适配所产生的仿真文作精确的时序仿真,同时产生可用于编程的文件。
1.3.4时序仿真与功能仿真
在编程下载前必须利用EDA工具对适配生成的结果进行模拟测试,就所谓的仿真。
仿真就是让计算机根据一定的算法和一定的仿真库对EDA设进行模拟,以验证设计,排除错误。
1.3.5编程下载
把适配后生成的下载或配置文件,通过编程器或编程电缆向FPGA,CPLD进行下载,以便进行硬件调试和验证(HardwareDebugging)。
通常将对CPLD的下载称为编程(Program),对FPGA中的SRAM进行直接下载方式称为配置(Configure)。
1.3.6硬件测试
最后是将含有载入了设计的FPGA或CPLD的硬件系统进行统一的测以便最终验证设计项目在目标系统上的实际工作情况,以排除错误,改进计。
(二)硬件描述语言(VHDL)的简介
2.1硬件描述语言VHDL
硬件描述语言(HDL—HardwareDescriptionLanguage)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。
例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强,易于修改和发现错误。
早期的硬件描述语言,如ABEL–HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。
为了克服以上不足,1985年美国国防部正式推出了VHDL(VeryHighSpeedICHardwareDescriptionLanguage)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEESTD-1076)。
VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成。
2.2VHDL的组成
一个VHDL设计由若干个VHDL文件构成,每个文件主要包含如下三个分中的一个或全部:
(1)程序包(Package);
(2)实体(Entity);
(3)结构体(Architecture).
一个完整的VHDL设计必须包含一个实体和一个与之对应的结构体。
个实体可对应多个结构体,以说明采用不同方法来描述电路。
2.3VHDL的优点
应用VHDL进行工程设计的优点是多方面的,具体如下:
[9]
(1)与其他的硬件描述语言相比,VHDL具有更强的行为描述能力。
强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。
就目前流行EDA工具和VHDL综合器而言,将基于抽象的行为描述风格的VHDL程序综合成为具体的FPGA和CPLD等目标期间的网表文件已不成问题,只是在综合与优化效率上略有差异。
(2)VHDL具有丰富的仿真语句和库函数,使得在任何大系统的设计早期,就能查验设计系统的功能可行性,随时可对系统进行仿真模拟,使设计者对整个工程的结构和功能可行性作出判断。
(3)VHDL语句的行为描述能力和程序结构,决定它对具有支持大规模设计的分解和已有设计的再利用功能。
(4)用VHDL完成一个确定的设计,可以利用EDA工具进行逻辑综合和优化,并自动把VHDL描述设计转变成门级网表(根据不同的视线芯片)。
这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。
利用EDA工具的逻辑优化功能,可以自动地把一个综合后的设计变成一个更小、更高的电路系统。
反过来,设计者还可以容易地从综合和优化的电路获得设计信息,返回去更新修改VHDL设计描述,使之更加完善。
(5)VHDL对设计的描述具有相对独立性。
设计者可以不懂硬件的结构,也不必管最终设计的目的器件是什么,而进行独立的设计。
正因为VHDL的硬件描述于具体的工艺技术和硬件结构无关,所以VHDL设计程序的硬件实现器件有广阔的选择范围,其中包括各种系列的CPLD、FPGA及各种门阵列器件。
(6)由于VHDL具有类属描述语句和子程序调用等功能,对于完成的设计,在不改变源程序的条件下,只需改变类属参量或函数,就能轻易地改变设计的规模和结构。
(三)现场可编程门阵列(FPGA)的简介
3.1FPGA的简介和基本结构
FPGA(FieldProgrammableGateArray)即现场可编程门阵列,是大规模可编程逻辑器件。
FPGA器件极其开发系统是开发大规模数字机场电路的新技术。
他利用计算机辅助设计,绘制出实现用户逻辑的原理图、编辑布尔方程或用硬件描述语言等方式作为设计输入;
然后经一系列转换程序、自动布局布线、模拟仿真的过程;
最后生成配置FPGA器件的数据文件,对FPGA器件初始化。
这样就实现了满足用户要求的专用集成电路,真正达到了用户自行设计、自行研制和自行生产集成电路的目的[9]。
FPGA器件在结构上,由逻辑功能块排列为阵列,它的结构可以分为三个部分:
可编程逻辑块CLB(ConfigurableLogicBlock)、可编程I/O块IOB(InputOutputBlock)和可编程内部连线PI(ProgrammableInterconnect)。
如图1-1所示,CLB在其间中排列为阵列,周围有环形内部连线,IOB分布在四周的管脚上[10]。
1-1FPGA的结构原理
周边可配置的IOB为内部逻辑与器件封装引脚之间提供可编程接口;
CLB阵列实现用户指定的逻辑功能;
PI类似于印制电路板上的引线,可编程为在模块间传递信号的网络。
3.2FPGA的基本特点和工作原理
概括地说,FPGA器件具有下列优点:
高密度、高速率、系列化、标准化、小型化、多功能、低功耗、低成本,设计灵活方便,可无限次反复编程,并可现场模拟调试验证。
使用FPGA器件,一般可以在几天到几周内完成一个电子系统的设计和制作,缩短研制周期,达到快速上市和进一步降低成本的要求。
其基本特点有:
(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;
主从模式可以支持一片PROM编程多片FPGA;
串行模式可以采用串行PROM编程FPGA;
外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
(四)QuartusⅡ设计软件的简介
4.1QuartusII简介
QuartusII是Altera公司推出的CPLD/F[GA开发工具,QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;
芯片(电路)平面布局连线编辑;
LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;
功能强大的逻辑综合工具;
完备的电路功能仿真与时序逻辑仿真工具;
定时/时序分析与关键路径延时分析;
可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;
支持软件源文件的添加和创建,并将它们链接起来生成编程文件;
使用组合编译方式可一次完成整体设计流程;
自动定位编译错误;
高效的期间编程与验证工具;
可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;
能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
4.2QuartusII设计流程
设计输入:
完成期间的硬件描述,包括文本编辑器、块与符号编辑器、MegaWizard插件管理器、约束编辑器和布局编辑器等工具;
综合:
包括分析和综合器以、辅助工具和RTL查看器等工具;
布局连线:
将设计综合后的网表文件映射到实体器件的过程,包括Fitter工具、约束编辑器、布局图编辑器、芯片编辑器和增量布局连线工具;
时序分析;
仿真:
QuartusII提供了功能仿真和时序仿真两种工具;
器件编程与配置:
包括四种编程模式,即被动串行模式、JTAG模式、主动串行模式和插座内编程模式。
三、综合计时系统设计与分析
(一)系统设计要求
设计一个综合性的计时系统,要求能实现年、月、日、时、分、秒及星期的计数等综合计时功能,同时将计时结果通过15个七段数码管显示,并且可通过两个设置键,对计时系统的有关参数进行调整。
具体系统功能面板如图3-1所示。
图3-1系统功能面板
根据系统设计要求可知,本综合计时系统可分成三个主要模块:
综合计时电路、显示控制电路和调整控制电路。
其中综合计时电路用于完成各种计时的功能,在面板上体现为面板上方的15个七段数码管,依次可以显示年、月、日、时、分、秒及星期;
显示控制电路用于完成计时结果的显示控制及显示译码等功能,集成后体现为面板下方左侧的按键电路;
而调整控制电路则用于调整计时系统的有关参数,可参照面板上右下角的两个按键:
模式和调整。
(二)系统设计方案
2.1综合计时电路的设计
根据系统的设计要求,综合计时电路可分为计秒电路、计分电路、计时电路、计星期电路、计日电路、计月电路、计年电路等7个子模块,这7个子模块必须都具有预置、计数和进位功能,设计思想如下:
(1)计秒电路:
以直接输入或由分频器产生的秒脉冲作为计秒电路的计数时钟信号,待计数至60瞬间,进位,计分电路加1,而计秒电路则清零并重新计秒。
(2)计分电路、计时电路:
其设计思想与计秒电路类似。
(3)计日电路:
将计时电路产生的进位脉冲信号作为计日电路的计数时钟信号,通过系统辨认,确定本月总天数X(包括28、29、30、31四种情况),待计数至X+1瞬间,进位,计月电路加1,而计日电路返回1重新开始计数。
(4)计星期电路:
将计时电路产生的进位脉冲信号作为计星期电路的计数时钟信号,待计数至7