ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:470.26KB ,
资源ID:20371328      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20371328.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(fpga课程设计出租车计价器Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

fpga课程设计出租车计价器Word文档下载推荐.docx

1、在大多数的FPGA里面,这些可编辑的元件里也包含记忆元件例如触发器(Flipflop)或者其他更加完整的记忆块。 系统设计师可以根据需要通过可编辑的连接把FPGA内部的逻辑块连接起来,就好像一个电路试验板被放在了一个芯片里。一个出厂后的成品FPGA的逻辑块和连接可以按照设计者而改变,所以FPGA可以完成所需要的逻辑功能。FPGA一般来说比ASIC(专用集成芯片)的速度要慢,无法完成复杂的设计,而且消耗更多的电能。但是他们也有很多的优点比如可以快速成品,可以被修改来改正程序中的错误和更便宜的造价。厂商也可能会提供便宜的但是编辑能力差的FPGA。因为这些芯片有比较差的可编辑能力,所以这些设计的开发

2、是在普通的FPGA上完成的,然后将设计转移到一个类似于ASIC的芯片上。另外一种方法是用CPLD(复杂可编程逻辑器件备)。CPLD(Complex Programmable Logic Device)复杂可编程逻辑器件,是从PAL和GAL器件发展出来的器件,相对而言规模大,结构复杂,属于大规模集成电路范围。是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。CPLD主要是由可编程逻辑宏单元(MC,Macro Cell)围绕中心的可

3、编程互连矩阵单元组成。其中MC结构较复杂,并具有复杂的I/O单元互连结构,可由用户根据需要生成特定的电路结构,完成一定的功能。由于CPLD内部采用固定长度的金属线进行各逻辑块的互连,所以设计的逻辑电路具有时间可预测性,避免了分段式互连结构时序不完全预测的缺点。它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点,可实现较大规模的电路设计,因此被广泛应用于产品的原型设计和产品生产(一般在10,000件以下)之中。几乎所有应用中小规模通用数字集成电路的场合均可应用CPLD器件。CPLD器件已成为电

4、子产品不可缺少的组成部分,它的设计和应用成为电子工程师必备的一种技能。第二节 CPLD与FPGA的关系早在1980年代中期,FPGA已经在PLD设备中扎根。CPLD和FPGA包括了一些相对大数量的可以编辑逻辑单元。CPLD逻辑门的密度在几千到几万个逻辑单元之间,而FPGA通常是在几万到几百万。CPLD和FPGA的主要区别是他们的系统结构。CPLD是一个有点限制性的结构。这个结构由一个或者多个可编辑的结果之和的逻辑组列和一些相对少量的锁定的寄存器。这样的结果是缺乏编辑灵活性,但是却有可以预计的延迟时间和逻辑单元对连接单元高比率的优点。而FPGA却是有很多的连接单元,这样虽然让它可以更加灵活的编辑

5、,但是结构却复杂的多。CPLD和FPGA另外一个区别是大多数的FPGA含有高层次的内置模块(比如加法器和乘法器)和内置的记忆体。一个因此有关的重要区别是很多新的FPGA支持完全的或者部分的系统内重新配置。允许他们的设计随着系统升级或者动态重新配置而改变。一些FPGA可以让设备的一部分重新编辑而其他部分继续正常运行。第三节 FPGA与CPLD的辨别和分类FPGA与CPLD的辨别和分类主要是根据其结构特点和工作原理。通常的分类方法是:将以乘积项结构方式构成逻辑行为的器件称为CPLD,如Lattice的ispLSI系列、Xilinx的XC9500系列、Altera的MAX7000S系列和Lattic

6、e(原Vantis)的Mach系列等。将以查表法结构方式构成逻辑行为的器件称为FPGA,如Xilinx的SPARTAN系列、Altera的FLEX10K或ACEX1K系列等。尽管FPGA和CPLD都是可编程ASIC器件,有很多共同特点,但由于CPLD和FPGA结构上的差异,具有各自的特点:一 CPLD更适合完成各种算法和组合逻辑,FP GA更适合于完成时序逻辑。换句话说,FPGA更适合于触发器丰富的结构,而CPLD更适合于触发器有限而乘积项丰富的结构。二 CPLD的连续式布线结构决定了它的时序延迟是均匀的和可预测的,而FPGA的分段式布线结构决定了其延迟的不可预测性。三 在编程上FPGA比CP

7、LD具有更大的灵活性。CPLD通过修改具有固定内连电路的逻辑功能来编程,FPGA主要通过改变内部连线的布线来编程;FP GA可在逻辑门下编程,而CPLD是在逻辑块下编程。四 FPGA的集成度比CPLD高,具有更复杂的布线结构和逻辑实现。五 CPLD比FPGA使用起来更方便。CPLD的编程采用E2PROM或FASTFLASH技术,无需外部存储器芯片,使用简单。而FPGA的编程信息需存放在外部存储器上,使用方法复杂。六 CPLD的速度比FPGA快,并且具有较大的时间可预测性。这是由于FPGA是门级编程,并且CLB之间采用分布式互联,而CPLD是逻辑块级编程,并且其逻辑块之间的互联是集总式的。七 在

8、编程方式上,CPLD主要是基于E2PROM或FLASH存储器编程,编程次数可达1万次,优点是系统断电时编程信息也不丢失。CPLD又可分为在编程器上编程和在系统编程两类。FPGA大部分是基于SRAM编程,编程信息在系统断电时丢失,每次上电时,需从器件外部将编程数据重新写入SRAM中。其优点是可以编程任意次,可在工作中快速编程,从而实现板级和系统级的动态配置。八 CPLD保密性好,FPGA保密性差。九 一般情况下,CPLD的功耗要比FPGA大,且集成度越高越明显。第四节 FPGA/CPLD配置模式FPGA有多种配置模式:并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编

9、程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。如何实现快速的时序收敛、降低功耗和成本、优化时钟管理并降低FPGA与PCB并行设计的复杂性等问题,一直是采用FPGA的系统设计工程师需要考虑的关键问题。如今,随着FPGA向更高密度、更大容量、更低功耗和集成更多IP的方向发展,系统设计工程师在从这些优异性能获益的同时,不得不面对由于FPGA前所未有的性能和能力水平而带来的新的设计挑战。例如,领先FPGA厂商Xilinx最近推出的Virtex-5系列采用65nm工艺,可提供高达33万个逻辑单元、1,200个I/O和大量硬IP块。

10、超大容量和密度使复杂的布线变得更加不可预测,由此带来更严重的时序收敛问题。此外,针对不同应用而集成的更多数量的逻辑功能、DSP、嵌入式处理和接口模块,也让时钟管理和电压分配问题变得更加困难。幸运地是,FPGA厂商、EDA工具供应商正在通力合作解决65nm FPGA独特的设计挑战。不久以前,Synplicity与Xilinx宣布成立超大容量时序收敛联合工作小组,旨在最大程度帮助地系统设计工程师以更快、更高效的方式应用65nm FPGA器件。设计软件供应商Magma推出的综合工具Blast FPGA能帮助建立优化的布局,加快时序的收敛。第二章 出租车计价器的功能和主要功能模块第一节 车租车计价器的

11、功能和设计框图所要设计的出租车计价器,要求能够显示里程数和乘客应付的费用,其中里程数精确到1 公里,乘客应付的费用精确到1元,显示必须以十进制的形式来进行。出租车的计费标准为:起步价6元,里程在5公里以内均为起步价;里程在超过5公里,每行驶1 km增加1元。该系统的设计可以采用分立元件来搭建,也可以通过单片机来设计,而使用可编程FPGA/CPLD来设计,具有设计周期短、易于修改等明显特点,而且随着可编程逻辑器件和EDA软件的飞速发展,越来越多的电子系统采用FPGA/CPLD来设计,一旦该系统达到一定的量产规模,也比较容易转化为ASIC芯片设计。因此,基于FPGA/CPLD来设计一个出租车的计价

12、器。本系统在EDA工具软件MAX+plus中,采用硬件描述语言Verilog HDL和原理图设计相结合的方法,进行各个模块的设计,最终将各个模块组成整个系统。出租车能够显示行驶的里程,可以通过车轮的转动产生脉冲,然后通过计数器对脉冲进行计数来实现。假设出租车每行驶20 m就产生一个脉冲。由于里程数要精确到1 km,也就是1000m,因此每经过50个脉冲就要输出一个新的脉冲信号,这里称为1000 m脉冲信号,作为里程计数器的时钟信号,可以通过一个模为50的计数器进行分频而得到。里程计数器可以用一个三位BCD码计数器来实现,最大能显示到999。以前两位为整数,第三位为小数,也就是最大能显示里程99

13、.9 km,因为出租车都在市区和近郊活动,三位BCD码计数器是可以实现里程计数的。里程计数器每计数1 km还会周期性地输出一个脉冲信号,称为1 km脉冲信号,可以通过一定的组合电路来实现。系统最核心的部分就是计费如何实现。这里就需要设计一个BCD码的加法器,在起步价的基础上,根据行驶里程的不同,依据计费标准,每增加1 km加上一个单价,单价的产生可以用Verilog HDL编写程序来实现。系统的总体设计框图如图1所示。图1 总体设计框图第二节 主要功能模块一 单价产生模块单价产生模块的Verilog HDL源程序如下:module jiashu(bai,shi,jia);input3:0 ba

14、i,shi;output11:0 jia;reg11:always (bai or shi)beginif(bai=0)beginif(shi=0&shi=5) jia=12h010;endelsejia=12h010;endendmodule其中输入信号bai和shi就是里程计数器输出的两位整数里程,输出信号jia就是根据计费标准而产生的单价,以三位BCD码的形式输出,以前两位为整数,第三位为小数。即里程在5km以内时,jia=0;里程超过5km时,jia=010(1元)。用Verilog HDL编写程序来实现模块功能的优点在于,当出租车的计费标准发生变化时,可以很容易地通过改写程序来完成新

15、的设计,比起硬件电路的修改要方便得多,这也是用Verilog HDL来实现模块功能的重要优势。二 三位BCD码加法器系统中用到了三位BCD码加法器,可以实现三位十进制数的加法运算。加法器输出的结果就是乘客应付的费用,这里同样以前两位为整数,第三位为小数,也就是最大能显示99.9元。三位BCD码加法器由三个一位BCD码加法器级联而成。一位BCD码由四位二进制数组成,四位二进制数的加法运算会产生大于9的数字,必须进行适当的调整才会产生正确的结果。一位BCD码加法器的Ver-ilog HDL源程序如下:module bcd_jia(a,b,sum,cin,co);0 a,b;input cin;ou

16、tput3:0 sum;output co;reg3:reg co;always (a or b or cin)assign co,sum=a+b+cin;if(co,sum5b01001)begin sum=sum+6;co=1; endend一位BCD码加法器模块的仿真波形和生成的模块符号如图2和图3所示。图2 一位BCD码加法器的仿真波形图3 一位BCD码加法器的模块符号本模块中A和B为输入的一位BCD码,CIN为低位来的进位信号,CO是本片向高位产生的进位输出信号,SUM是两个数相加的和。三位BCD码加法器由三个本模块级联而成,其电路原理图和仿真波形如图4和图5所示。图4 三位BCD码

17、加法器的电路原理图图5 三位BCD码加法器的仿真波形三 缓冲器模块三位BCD码加法器输出的结果通过缓冲器以后,反馈到输入端重新作为一个加数,在1 km脉冲信号的作用下,每来一个脉冲就和单价相加,形成连续累加的功能。缓冲器还有一个控制输入端LD,LD=0时,在1 km脉冲的作用下,输出起步价6元;LD=1时,在1 km脉冲的作用下,输出和输入相等。缓冲器的Verilog HDL源程序如下:module dff12(clk,ld,d,q);input clk,ld;input11:0 d;0 q;always (posedge clk or negedge ld)if(ld=0) q=12h060

18、;else q=d;四 顶层设计原理图将各个模块按照输入输出关系连接成顶层设计原理图如图6所示。图6 出租车计价器的顶层设计原理图在整体电路中,clk为最原始的时钟输入端,cr为异步清零端,q11.0输出里程,jiaqian11.0输出乘客应付的费用。第三章 系统仿真验证整体电路的仿真波形如图7所示。图7 系统仿真波形从系统仿真波形图7(a)中可以看出,当清零端cr=0时,里程数立刻清零,乘客应付的费用显示三位十进制数060(起步价6元),表示乘客刚上车。当清零端cr=1时,出租车开始行进,里程和费用都开始计数,里程显示三位十进制数,前两位为整数,第三位为小数,也就是每行驶1k m计一次数。从

19、系统仿真波形图7(b)中可以看出,行驶到5 km时,费用由6元增加为7元,行驶到6km时,费用由7元增加为8元, 1 km增加1元。系统仿真波形图7中显示了每行驶1 km后,费用逐渐累加的情况。系统仿真波形完全验证了预期的设计要求。第四章 整体电路图图8整体电路原路图第五章 结语出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。各模块完成后,在将它们组合成完整的出租车系统,在设计过程中还需要改进的是控制系统的纠错功能。出租车计费系统的设

20、计中体现了Verilog HDL覆盖面广,描述能力强,是一个多层次的硬件描述语言及PLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。通过仿真验证表明,本文所设计的出租车计价器能够正常地显示行驶的里程数和乘客应付的费用,符合预定的计费标准和功能要求。基于FPGA的设计,集成度高、设计周期短。尤其是当计费标准发生变化时,容易通过改写Verilog HDL源程序来完成新的设计。第六章 心得体会 这次课程设计中,我们主要是运用VHDL语言设计了一个出租车计费器,并且用层次化的设计方法来实现这个电路。在程序编写结束后,我们还对该程序进行了调试, 能按预期的效果进行模拟汽车启动、

21、停止、暂停等功能,基本完成课程设计的要求。通过此次课程设计,我们更进一步的深入了解了VHDL设计语言,并通过使用对它有了更深的体会。对于编程过程中可能遇到的问题有了一定的了解,也明白了其中的一些注意事项,对于下次进行编程设计有很大的帮助和提高。总之,这次实验不仅仅加强了我的动手编程能力,也大大加强了团队合作以及设计能力,使我在理论学习和编程练习方面都获得了较大的收获附录EPM7128SLC84-15的引脚图图9 EPM7128SLC84-15的引脚图元器件列表:型号数量大小备注数码管3个全部是共阳的电阻1个200欧姆24个1K欧姆按键EPM7128SLC84-151片主处理器74HC05晶体6

22、M搭建震荡电路导线若干表1 元器件列表参考文献:1刘艳萍,高振斌,李志军.EDA技术及应用M.北京:国防工业出版社,2006.2朱正涌.半导体集成电路M.北京:清华大学出版社,2001.3刘笃仁.用ISP器件设计现代电路与系统M.西安:西安电子科技大学出版社,2002.4王金明,杨吉斌.数字系统设计与Verilog HDLM.北京:电子工业出版社,2002.5李辉.PLD与数字系统设计M.西安:西安电子科技大学出版社,2005.6江国强. EDA技术与应用M.北京:电子工业出版社,2004.7刘爱荣,王振成.EDA技术与CPLD/FPGA开发应用简明教程M.北京:清华大学出版社,2007.8夏继强,沈德金,邢春香.单片机实验与实践教程M.2版.北京:北京航空航天大学出版社,2006.9张毅坤,陈善久,裘雪红.单片微型计算机原理及应用M.西安:西安电子科技大学出版社,1998.10冯博琴.微型计算机原理与接口技术M.北京:清华大学出版社,2002.

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

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