VHDL出租车计费.doc_第1页
VHDL出租车计费.doc_第2页
VHDL出租车计费.doc_第3页
VHDL出租车计费.doc_第4页
VHDL出租车计费.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录1 引言12 VHDL介绍22.1 硬件描述语言VHDL22.2 VHDL语言的特点33 QuartusII软件简介53.1软件介绍53.2界面介绍53.2.1软件打开界面53.2.2代码输入界面63.2.3功能仿真界面73.2.4波形仿真界面74 计费器设计与仿真84.1硬件电路设计84.2软件代码设计84.2.1启动-停止功能代码84.2.2暂停功能代码104.2.3复位功能代码104.2.4数码管显示功能代码104.3系统功能仿真114.3.1波形仿真图114.3.2波形仿真结果分析115引脚锁定及下载125.1引脚锁定125.2下载125.3结果分析136设计总结14参考文献15附录16课程设计说明书1 引言VHDL的英文全名是VHSIC(Very High Speed Integrated Circuit)Hardware Descriptiong Language,诞生于1982年。1987年底,VHDL被美国国防部确认为标准硬件描述语言 。自IEEE公布了VHDL的标准版本,IEEE-1076(简称87版)之后,各EDA公司相继推出了自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。此后VHDL在电子设计领域得到了广泛的接受,并逐步取代了原有的非标准的硬件描述语言。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,(简称93版)。现在,VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。有专家认为,在新的世纪中,VHDL于Verilog语言将承担起大部分的数字系统设计任务。 VHDL语言是一种用于电路设计的高级语言。它在80年代的后期出现。最初是由美国国防部开发出来供美军用来提高设计的可靠性和缩减开发周期的一种使用范围较小的设计语言 。VHDL的英文全写(Very-High-Speed Integrated Circuit HardwareDescription Language)翻译成中文就是超高速集成电路硬件描述语言。因此它的应用主要是应用在数字电路的设计中。目前,它在中国的应用多数是用在FPGA/CPLD/EPLD的设计中。当然在一些实力较为雄厚的单位,它也被用来设计ASIC。随着EDA技术的高速发展,电子系统的设计技术和工具发生了深刻的变化,大规模可编程逻辑器件CPLDFPGA的出现,给设计人员带来了诸多方便。利用它进行产品开发,不仅成本低、周期短、可靠性高,而且具有完全的知识产权。利用VHDL语言设计出租车计费系统,使其实现计费以及预置和模拟汽车启动、停止、暂停等功能,突出了其作为硬件描述语言的良好的可读性、可移植性和易读性等优点。此程序通过下载到特定芯片后,可应用于实际的出租车计费系统中。本文基于FPGA开发系统,在QuartusII 7.2软件平台上,完成了出租车自动计费电路的设计和与仿真,并下载到试验箱进行硬件实现。首先,本文介绍了QuartusII 7.2软件的基本使用方法和VHDL硬件描述语言的特点,采用VHDL 硬件描述语言描述简易出租车计费器,完成对电路的功能仿真。在设计过程中,重点探讨了简易出租车计费器的设计思路和功能模块划分。然后,初步探讨了电路逻辑综合的原理,该软件对出租车自动计费电路进行了逻辑综合。最后,使用EDA实验开发系统进行电路的下载和验证。验证结果表明设计的简易出租车计费器完成了预期的功能。2 VHDL介绍2.1 硬件描述语言VHDL硬件描述语言(HDL)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输人500至1000个门,而利用VHDL语言只需要书写一行“A=B+C” 即可。而且 VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABEL、HDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了高速集成电路硬件描述语言VHDL,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE-STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级。寄存器传输级和逻辑门多个设计层次,支持结构、数据流和行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件俄语言的功能,整个自顶向下或由下向上的电路设计过程都可以用VHDL来完成。VHDL还具有以下优点:(1)VHDL的宽范围描述能力使它成为高层进设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而花较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑设计,灵活且方便,而且也便于设计结果的交流、保存和重用。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。6传统的硬件电路设计方法是采用自下而上的设计方法,即根据系统对硬件的要求,详细编制技术规格书,并画出系统控制流图;然后根据技术规格书和系统控制流图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能框图;接着就进行各功能模块的细化和电路设计;各功能模块电路设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。采用传统方法设计数字系统,特别是当电路系统非常庞大时,设计者必须具备较好的设计经验,而且繁杂多样的原理图的阅读和修改也给设计者带来诸多的不便。为了提高开发的效率,增加已有开发成果的可继承性以及缩短开发周期,各ASIC研制和生产厂家相继开发了具有自己特色的电路硬件描述语言(Hardware Description Language,简称HDL)。但这些硬件描述语言差异很大,各自只能在自己的特定设计环境中使用,这给设计者之间的相互交流带来了极大的困难。因此,开发一种强大的、标准化的硬件描述语言作为可相互交流的设计环境已势在必行。于是,美国于1981年提出了一种新的、标准化的HDL,称之为VHSIC(Very High Speed Integrated Circuit) Hardware Description Language,简称VHDL。这是一种用形式化方法来描述数字电路和设计数字逻辑系统的语言。设计者可以利用这种语言来描述自己的设计思想,然后利用电子设计自动化工具进行仿真,再自动综合到门电路,最后用PLD实现其功能。2.2 VHDL语言的特点具有良好的可读性,即容易被计算机接受,也容易被读者理解。使用期长,不会因工艺变化而使描述过时。因为VHDL的硬件描述与工艺无关,当工艺改变时,只需修改相应程序中的属性参数即可。支持大规模设计的分解和已有设计的再利用。一个大规模的设计不可能由一个人独立完成,必须由多人共同承担,VHDL为设计的分解和设计的再利用提供了有力的支持。当电路系统采用VHDL语言设计其硬件时,与传统的电路设计方法相比较,具有如下的特点:即从系统总体要求出发,自上而下地逐步将设计的内容细化,最后完成系统硬件的整体设计。在设计的过程中,对系统自上而下分成三个层次进行设计:第一层次是行为描述。所谓行为描述,实质上就是对整个系统的数学模型的描述。一般来说,对系统进行行为描述的目的是试图在系统设计的初始阶段,通过对系统行为描述的仿真来发现设计中存在的问题。在行为描述阶段,并不真正考虑其实际的操作和算法用何种方法来实现,而是考虑系统的结构及其工作的过程是否能到达系统设计的要求。第二层次是RTL方式描述。这一层次称为寄存器传输描述(又称数据流描述)。如前所述,用行为方式描述的系统结构的程序,其抽象程度高,是很难直接映射到具体逻辑元件结构的。要想得到硬件的具体实现,必须将行为方式描述的VHDL语言程序改写为RTL方式描述的VHDL语言程序。也就是说,系统采用RTL方式描述,才能导出系统的逻辑表达式,才能进行逻辑综合。第三层次是逻辑综合。即利用逻辑综合工具,将RTL方式描述的程序转换成用基本逻辑元件表示的文件(门级网络表)。此时,如果需要,可将逻辑综合的结果以逻辑原理图的方式输出。此后可对综合的结果在门电路级上进行仿真,并检查其时序关系。应用逻辑综合工具产生的门网络表,将其转换成PLD的编程码,即可利用PLD实现硬件电路的设计。由自上而下的设计过程可知,从总体行为设计开始到最终的逻辑综合,每一步都要进行仿真检查,这样有利于尽早发现设计中存在的问题,从而可以大大缩短系统的设计周期。由于目前众多制造PLD芯片的厂家,其工具软件均支持VHDL语言的编程。所以利用VHDL语言设计数字系统时,可以根据硬件电路的设计需要,自行利用PLD设计自用的ASIC芯片,而无须受通用元器件的限制。3 QuartusII软件简介3.1软件介绍Quartus II 是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。 Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。 此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。 Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。 Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。3.2界面介绍3.2.1软件打开界面软件打开界面如图3.1所示:图3.1 软件打开界面3.2.2代码输入界面代码输入界面如图3.2所示:图3.2 代码输入界面3.2.3功能仿真界面功能仿真界面如图3.3所示:图3.3 功能仿真界面3.2.4波形仿真界面波形仿真界面如图3.4所示:图3.4 波形仿真界面4 计费器设计与仿真4.1硬件电路设计根据要求:计费器能模拟汽车的启动,停止,暂停等状态;用LED数码管实时显示车费和汽车行驶里程,并设有一个由司机控制的整体复位控制按钮。所以系统顶层框图设计如下图4.1所示:启动停止暂停复位里程显示车费显示出租车计费器图4.1 系统顶层框图其中,复位用试验箱上的一个按键实现,当按键按下(即此键的指示灯亮)时表示计费器系统复位,同时数码管上显示里程数和相应的计费值归零;启动停止功能用试验箱上的另一个按键实现,当按键按下(即此键的指示灯亮)时表示计费器开始工作。再次按键(即此键的指示灯灭),表示计费器一次计费结束,同时数码管一直显示里程数和车费值;暂停功能用试验箱上的另一个按键实现,当按键按下(即此键的指示灯亮)时表示计费器暂停工作,数码管上显示当前里程数和相应的计费值。再次按键(即此键的指示灯灭),表示计费器继续工作,数码管显示相应的里程数和车费值;计费器显示部分则用LED数码管实时显示车费和汽车行驶里程,用两位数字显示汽车行驶里程,显示方式为“XX”,单位为km。计程范围为099km,计程分辨率为1km;用四位数字显示总费用,显示方式为“XXX.X”,单价为元。计价范围为0999.9元,计价分辨率为0.1元。而硬件系统使用的是实验室的EDA试验箱,其FPGA主芯片使用的型号是:ACKX1K:EP1K30TC144-3。4.2软件代码设计软件代码设计部分由多个功能模块组成,包括:启动-停止功能模块,暂停功能模块,复位功能模块,数码管显示功能模块等。4.2.1启动-停止功能代码if clkevent and clk=1 then temp5:=temp5+1;if temp5=10 then temp5:=0; temp6:=temp6+1; if temp6=10 then temp6:=0;end if; end if; if temp6=0 and temp5=3 thentemp2:=6; else temp1:=temp1+2; if temp1=10 thentemp1:=0;temp2:=temp2+2; if temp2=10 then temp2:=0; temp3:=temp3+1;if temp3=10 then temp3:=0; temp4:=temp4+1; if temp4=10 thentemp4:=0; end if; end if; end if; elsetemp2:=temp2+1;if temp2=10 then temp2:=0; temp3:=temp3+1;if temp3=10 then temp3:=0; temp4:=temp4+1; if temp4=10 thentemp4:=0; end if; end if; end if; end if; end if;此部分代码表示当出租车开始启动而且当行车里程为3公里以内时,计费显示6元,而当行车里程大于三公里时,每多行一公里则费用增加1.2元。4.2.2暂停功能代码if stop=1 thentemp1:=temp1;temp2:=temp2;temp3:=temp3;temp4:=temp4;temp5:=temp5;temp6:=temp6;此部分代码表示当停止键有效时数码显示管显示的费用数和行车里程数全部保持不变。4.2.3复位功能代码if rst=1 then temp1:=0; temp2:=0; temp3:=0; temp4:=0; temp5:=0; temp6:=0;此部分代码表示当复位键有效时将数码显示管显示的费用数和行车里程数全部清零。4.2.4数码管显示功能代码digit1=temp1;digit2=temp2;digit3=temp3;digit4=temp4;film1=temp5;film2=temp6;此部分代码可将程序中的输出在对应的数码管上显示出来。4.3系统功能仿真4.3.1波形仿真图波形仿真结果图如图4.2所示:图4.2 波形仿真图4.3.2波形仿真结果分析由波形仿真结果可以看到:当复位键有效时,计费显示和里程显示均清零;当暂停键有效时,计费显示和里程显示均保持当前数值不变;当开始键有效时,计费显示和里程显示开始计数;再次按下开始键时,计数结束;时钟信号的每一次脉冲到来模拟车行驶1公里。5引脚锁定及下载5.1引脚锁定选择Assignments菜单下的Pins命令,出现以下窗口:图5.1 引脚锁定图如果是下载到实验箱上则需连续按“模式选择”按钮选择模式5,再按“系统复位”按钮。进行引脚锁定,查阅附表,分别点“location”选择引脚号。引脚锁定后再编译。如同此前进行过的。编译成功后点确定。5.2下载选择Tools菜单下的Programmer命令,然后在Program/Configure下打上钩选中,点“start”按钮开始下载,“Progress”进度条显示下载进度。成功下载后如下图所示: 下载完后就可以在实验箱查看结果。5.3结果分析通过上面的步骤将程序代码下载到实验箱的FPGA芯片中,并验证了在仿真中的结果的正确性。此出租车计费系统,能够实现计价功能,计费标准为按行程里程收费,当里程小于3公里时,计费数码管显示6元。当车行超过3公里后按1.2元/公里收费。能模拟汽车的启动,停止,暂停等状态。车暂停时不计费,保持当前车费不变,若停止则车费清零,等待下次计费的开始,计费的同时还伴有行车里程的显示。此计费系统还有一个由司机控制的整体复位键,当复位有效时,计费显示和里程显示都清零。6设计总结为期一周的课设很快接近尾声了,简易的出租车计费器的设计已按计划如期全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计数码管显示电路显示车费数目和行车里程。车暂时停止不计费,车费保持不变。若停止则一次计费结束,等乘客结完帐后司机按下复位键则进入下一次计费的等待状态。课设遵循程序设计的自顶向下的设计理念先将其分解为多个独立的各模块,然后在一一设计、调试。最后再将它们组合成完整的出租车计费系统。本次课设过程中遇到好多问题,如:如何进行逻辑分析、设计,如何在计费值最后一位有进位时,让其计费值各位同时加2设计等。不过,经耐心的分析和与同学讨论,还有一次次的进行代码调试,最后终将其一一解决,并得出结论:成功是建立在一次次的失败基础之上才可以拥有的。最后,要真诚的感谢郭耀华老师和戴彦老师。如果没有她们的悉心指导,我想我不会这么顺利的这么快的完成这次课设。谢谢老师! 参考文献1.Voknei A.Pedroni.VHDL数字电路设计教程.电子工业出版社,2008.52.潘松,黄继业.EDA技术实用教程(第二版).科学出版社,2005.23.焦素敏.EDA应用技术.清华大学出版社,2002.44.张昌凡等.可编程逻辑器件及VHDL设计技术M.广州:华南理工大学出版社,20015.曾繁泰,陈美金.VHDL程序设计M.北京:清华大学出版社,20016.王小平,王彦芳等.基于EDA 技术的出租车费计价单片系统附录library ieee;use ieee.std_logic_1164.all;-entity jifeiqi isport(start_end,stop,clk,rst:in std_logic; film1,film2:out integer range 0 to 9; digit1,digit2,digit3,digit4:out integer range 0 to 9);end jifeiqi;-architecture bhv of jifeiqi isbeginprocess(start_end,stop,clk,rst)variable temp1,temp2,temp3,temp4

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论