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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于VHDL的计程车计价器设计.docx

1、基于VHDL的计程车计价器设计第一节 出租车计费目标本文中出租车的计费工作原理一般分成3个阶段:车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。第二节 基本设计思想一、根据出租车计费原理,将出租车计费部分由5个计数器来完成分别

2、为counterA,counterB,counterC,counterD,counterE。计数器A完成车费百位计数。计数器B完成车费十位和个位计数器C完成车费角和分。计数器D完成计数到30(完成车费的起步价)。计数器E完成模拟实现车行驶100m的功能。二、行驶过程中车费附加50%的功能:由比较器实现。三、车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。四、通过分析可以设计出系统的顶层框图如图2.1所示: 图2.1 系统的顶层框图第三章 基于VHDL的出租车计费系统的实现二、部分模块设计 FPGA部分可划分成两个模块,其中正弦波发生器模块又可细分成几个小模块

3、。 锁存器设计 锁存器用来将单片机送来的频率数据锁存稳定在FPGA中,可以用片内的锁存器资源(或用触发器)来构成。 运算器设计 运算器是用来将频率数据转换成正弦波点与点之间的定时数据。该运算器实际上最终可转换成一除法器。该除法器描述如下: VECTOR(WIDTH R1 DOWNTO 0); END COMPONENT; 上述描述实际上是调用了Altera公司的参数化模块库(LPM)中的一个元件。元件描述后,只要在程序中用Generic map和port map语句映射该元件即可。所要注意的是,上述口信号remainder是numerator和denominator模运算的结果,所以应将rem

4、ainder与denominator2相比较,实际结果应在比较的基础上决定加1还是不加1。 定时器设计 定时器根据运算器传来的定时数据定时。它可以通过对基准时钟计数来实现,当定时时间一到,就触发波形的输出。 设计中采用了两个计数模块来同时计数,一个模块计数时钟的上边沿,而另一模块则计数时钟的下边沿。这样相当于使系统时钟频率提高了一倍,充分利用了系统资源。 波形输出 波形输出是当定时器满足定时要求触发后就输出此时的正弦值,多个点的触发输出就形成了一个正弦波。 为节省芯片资源,这部分求某时正弦值的功能不采用构造运算器来算出正弦值,而是利用查表结构。象Xilinx公司FPGA芯片则可以利用CLB块来

5、配置RAM或直接利用Logiblox来生成。还有象Altera公司的Flex10k系列就用查找表结构(LUT)来构建片内ROM或RAM。在工程文件中创建RAM或ROM块以后,可以通过将各时刻的正弦值(以ASCII字符表示)写进MIF文件(初始化文件)中,从而存储在RAM或ROM块中。在定时器触发后生成该时的地址,通过查询该RAM或ROM块就可输出该时得正弦值。 第二节 系统框图及各功能模块的实现及主程序一、程序流程图图3.1程序流程图二、系统总体框图下图所示为系统的总体框图,该系统主要由负责汽车启动,停止,暂停,加速等功能的计费模块,负责把车费和路程转化为4位10进制数的转换模块,负责显示车费

6、和路程的显示模块,以及复位模块和显示译码模块等5个模块组成。图3.2 系统总体框图三、计费模块的实现计费模块如图3.2所示,输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。LUC、CHEFEI分别表示汽车行驶的路程及相应的车费。图3.2if(clkevent and clk=1)thenif(stop=0)thenchf:=0;num:=0;b:=1;aa:=0;lc:=0;elsif(start=0)thenb:=0;chf:=700;lc:=0;elsif(start=1 and js=1and pause=1)thenif(b=0)thennum:=n

7、um+1;end if;四、十进制转换模块的实现如图3.3所示,该模块把车费和路程转化为4位十进制数,daclk的频率要比clk快得多图3.3if(comb1a=9 and comb1b=9 and comb1c=9)thencomb1a:=0000;comb1b:=0000;comb1c:=0000;comb1d:=comb1d+1;comb1:=comb1+1;elsif(comb1a=9 and comb1b=9)thencomb1a:=0000;comb1b:=0000;comb1:=comb1+1;comb1c:=comb1c+1;end if;else五、车费路程显示模块的实现如图

8、3.5所示,通过该八进制模块,车费和路程将被显示出来图3.5 车费路程显示模块begin comb:=c; case comb is when”000”=d=a1; dpd=a2; dpd=a3; dpdnull;end case;end process;end rtl;六、八进制选择模块实现模块如图3.6所示,该模块主要负责对不同时刻的车费路程的数值显示进行选择。 图3.6 八进制选择模块begin if(clkevent and clk=1)thenif(b=”111”)thenb:=”000”;elseb:=b+1;end if;end if;aqqqqqqqqqq=”1101111”

9、;end case;end process; end rtl; 第三节 本章小结本章首先对于主要使用的软件maxplus进行了一个简单的介绍,然后交代了总设计的框图以及流程图,给阅读者以一个大体的印象。 从3.4节开始,分5个模块详细介绍了主要程序,一个出租车计费系统的程序在本章全部交待完毕。第四章 系统仿真第一节 软件Altera Max+plus介绍一、软件功能简介MAX+plus(Multiple Array and Programming Logic User System)开发工具是美国Altera 公司推出的一种EDA 工具,具有灵活高效,使用便捷,易学易用的特点。Altera 公

10、司在推出各种CPLD 和FPGA 的同时也在不断地升级相应的开发工具软件,已从早期的第一代A+plus、第二代MAX+plus 发展到目前的第三代MAX+plus II 和第四代Quartus。使用MAX+plus 软件,设计者无需精通器件内部的复杂结构,只需熟悉所用的设计输入工具,如硬件描述语言、原理图等进行输入,MAX+plus自动将设计转换成目标文件下载到器件中去。MAX+plus开发系统具有以下特点。多平台系统 MAX+plus的设计输入、处理与校验功能一起提供了全集成化的可编程开发工具,可以加快动态调试,缩短开发周期。开放的界面 MAX+plus可与其它工业标准的设计输入、综合和校验

11、工具链接。具有EDIF,VHDL,Verilog HDL 以及其他的网表接口,便于与许多公司的EDA 工具接口,包括Cadence,Mentor,Synopsys,Synplicity,Viewlogic等公司提供的EDA 工具的接口。模块组合式工具软件MAX+plus具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验仿真和下载编程四个模块,设计者可以按设计流程选择工作模块。与结构无关 MAX+plus支持Altera 的Classic、MAX5000、MAX7000、FLEX8000、FLEXlOK 等可编程器件系列,提供工业界中唯一真正与结构无关的可编程逻辑设计环境。硬件描

12、述语言 MAX+plus支持各种HDL 硬件设计输入语言,包括VHDL、VerilogHDL 和Altera 的硬件描述语言AHDL。二、可编程逻辑器件设计流程简介可编程逻辑器件CPLD/FPGA 的设计是指利用开发软件和编程工具对器件进行开发的过程。可编程逻辑器件的设计流程包括设计准备、设计输入、设计处理(项目编译)、仿真和定时分析、器件编程下载(设计实现)四个步骤。三、MAX+plus II 可编程设计流程设计准备在对可编程逻辑器件的芯片进行设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。设计者首先要根据任务要求,如系统所完成的功能及复杂程度,对工作速度和器件本身的资源、成

13、本及连线的可布通性等方面进行权衡,选择合适的设计方案。在前面已经介绍过,数字系统的设计方法通常采用从顶向下的设计方法,也是基于芯片的系统设计的主要方法,它首先从系统设计入手,在顶层进行功能划分和结构设计,采用硬件描述语言对高层次的系统进行描述,并在系统级采用仿真手段,验证设计的正确性,然后再逐级设计在低层的结构。由于高层次的设计与器件及工艺无关,而且在芯片设计前就可以用软件仿真手段验证系统方案的可行性,因此自顶向下的设计方法,有利于在早期发现结构设计中的错误,避免不必要的重复设计,提高设计的一次成功率。自顶向下的设计采用功能分割的方法从顶向下逐次进行划分,这种层次化设计的另一个优点是支持模块化

14、,从而可以提高设计效率。设计输入设计者将所设计的系统或电路以开发软件要求的某种形式表现出来,并送入计算机的过程称为设计输入。设计输入通常有以下几种方式。1)原理图输入方式2)硬件描述语言输入方式3)波形输入方式4)层次化设计输入方式四、项目编译(设计处理)这是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。1语法检查和设计规则检查2设计输入完成之后,在编译过程首先进行语法检验,如检查原理图有无漏连信号线,信号有无双重来源,文本输入文件中的关键字有无输入错误等各种语法错误,并及时列出错误信息

15、 报告供设计者修改;然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制 并将编译报告列出,指明违反规则情况以供设计者纠正。 逻辑优化和综合化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块设计文件合并为一个网表文件,并使层次设计平面化(即展平)。 适配和分割确定优化以后的逻辑能否与器件中的宏单元和I0 单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分(分割)成多块并装入同一系列的多片器件中去。划分(分割)工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行

16、。划分时应使所需器件数目尽可能少,同时应使用于器件之间通信的引线端子数目最少。 布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。布线以后软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息。 生成编程数据文件项目编译的最后一步是产生可供器件编程使用的数据文件。对CPLD 来说,是产生熔丝图文件,即JEDEC 文件(电子器件工程联合制定的标准格式,简称JED 文件);对于FPGA 来说,是生成位数据文件(BitstreamGeneration)。五、仿真和定时分析(项目校验)设计项目的校验包括设计项目的仿真(功能

17、仿真)、定时分析两个部分。一个设计项目在编译完成后只能为项目创建一个编程文件,但并不能保证是否真正达到了用户的设计要求,如逻辑功能和内部时序要求等。所以在器件编程之前应进行全面模拟检测和仿真调试,以确保其设计项目在各种可能的情况下正确响应和正常工作,这就是项目校验(仿真调试)的必要性。MAX+plus提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,再用专门软件进行仿真。如果发现了错误,则对设计输入进行部分修改直至无误。仿真(Simulation) MAX+plusII Simulator(仿真器)具有很强的灵活性,可以控制对单个器件或多个器件设计的仿真。该模拟程序使用编译过程

18、中生成的二进制模拟网表文件,对一个设计实现功能仿真和时序仿真。设计者可以直接用矢量输入语言来定义输入激励,也可以用MAX+plus Wave Editor 直接绘制波形。仿真结果在WaveEditor 或TextEditor 窗口显示,也可作为波形或文本文件打印出来。定时分析(TimingAnalysis) MAX+plus Timi ngAnalyzer(定时分析程序)能按矩阵方式计算设计中点到点的延时,确定在器件引线端上要求的上升和保持时间,估计最大时钟频率。MAX+plus设计输入工具与定时分析程序综合在一起,允许在设计文件中简单地指定起始和终点标记,或者用FloorplanEditor

19、(平面图编辑器)来确定最短和最长的传播延时。六、器件编程下载在以上步骤都正确实施并完全通过以后,我们就可以将我们设计的项目(最终的数据编程文件)下载到器件中去,然后加入实际的激励信号进行测试,在我们的目标系统中进行产品级使用了。如果还未最终达到我们的设计目的,则需返回以上步骤查找设计问题直至无误。至此,我们已经完整的完成了可编程逻辑器件的产品级设计流程,相信用户通过对以上步骤的了解,对可编程逻辑器件的设计有了一定的概念和了解。(有关器件下载编程配置的详细使用说明见MAX+plusII 软件设计与应用举例章节。)七、可编程逻辑常用设计输入法介绍MAX+plus II 的设计输入方法有多种,主要包

20、括文本设计输入、原理图输入、波形设计输入、层次设计输入和平面图设计输入等多种方式,另外,还可以利用第三方EDA工具生成的网表文件输入,该软件可接受的网表有EDIF格式、VHDL格式及Verilog 格式。设计者可根据实际情况灵活地使用最适合自己的设计方法。第二节 模块仿真结果一、十进制转换模块的仿真结果将车费和路程转换成4位的十进制如图4.1所示:输入端为:Daclk, ascore, bscore输出端为:age, ashi, abai, aqian, bge, bshi, bbai, bqian; 图4.1仿真波形图如图所示,age, ashi, abai, aqian,分别表示车费的个位

21、,十位,百位和千位的计数显示,在daclk的上升沿发生变化。bge, bshi, bbai, bqian;分别表示路程的个位,十位,百位和千位的显示,在daclk的下降沿开始发生变化。二、计费模块的仿真结果该模块是模拟汽车的启动、停止、暂停、加速按键,如图4.2所示:输入端口为:stop, start, pause, js,clk;输出端口为:b;图4.2 模块JIFEI仿真波形图如图所示,在clk的上升沿,js变为1的时候,计费系统开始计费。三、车费路程显示模块的仿真结果该模块是将车费和路程显示出来如图4.3所示输入端为:c, a1,a2,a3,a4,b1,b2,b3,b4;输出端为:dp,

22、d;图4.3 车费路程显示模块仿真波形图四、八进制选择模块结果验证模块仿真如图4.4所示:输入端为:clk输出端为:a图4.4 八进制选择模块仿真波形图如图所示,在clk的上升沿a开始发生变化,并开始进行计数,当进行到“111”时在下一个上升沿复位为“000”,此模块与“车费路程显示模块”相连接,负责选择显示车费路程。五、显示译码模块结果验证模块仿真的结果如图4.5所示 输入端为:d 输出端为:q图4.5 显示译码模块仿真波形图如图,经过本模块以后,输入端输入的2进制数被7段显示译码器翻译成为相对应的数字显示出来。第三节 本章小结本章主要对于前面第三章节所交待的5个模块的程序进行仿真并进行相应

23、的结果验证。第五章 结论出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。出租车计费器系统的设计已全部完成,能按预期的效果进行模拟汽车启动、停止、暂停等功能,并设计动态扫描电路显示车费数目,由动态扫描电路来完成。车暂时停止不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。在出租车计费系统的5个模块中 ,重点在于计费模块,十进制计费转换模块、车费路程转换模块。计费模块主要有汽车的启动、停止、暂停、加速按键;十进制模块主要是把车

24、费和路程转化为4位十进制;车费路程模块是将车费和路程显示出来。各模块完成后,在将它们组合成完整的出租车系统,在设计过程中还需要改进的是控制系统的纠错功能。出租车计费系统的设计中体现了覆盖面广,描述能力强,是一个多层次的硬件描述语言及PLD器件速度快,使用方便,便于修改等特点,本设计在实用方面具有一定的价值。致 谢本文是在指导老师希捷莱茵老师和Kk-sara老师的悉心指导下完成的,罗老师在学术上严格要求,给予我孜孜不倦的教诲和不断的鼓励,及在学术上一丝不苟的精神,本人受益匪浅,在此向莱茵老师表示衷心的感谢和敬意! 至此,毕业设计就快接近尾声了,在这里我再一次诚挚的感谢莱茵老师和在大学期间对我谆谆

25、教导的老师和领导们。 最后,向在设计中给予我关心、支持和帮助的同学表示谢意!参考文献1 候伯亨,顾新.VHDL硬件描述语言与数字逻辑电路设计. M.西安:西安电子科技大学出版社,19992 张昌凡,等.可编程逻辑器件及VHDL设计技术M.广州:华南理工大学出版社,20013 曾繁泰,陈美金.VHDL程序设计M.北京:清华大学出版社,20014 潘松,等.VHDL实用教程M.成都:电子科技大学出版社,20005 高健,沈庆宏,高敦堂. ITS 中车辆检测器设备的研究与实现J.交通与计算机,2002. 20 (5):77-816 王小平,王彦芳, 等. 基于EDA 技术的出租车费计价单片系统J.

26、实验室研究与探索, 2003, 19 (5) : 55-577 卢庆利. 将VHDL 硬件描述语言引入数字电路教学的探索J. 实验室研究与探索, 2000, 19 (5) : 164-1688 刘艳. EDA 技术在数字系统电路设计实验中的应用J. 实验室研究与探索, 2002, 21 (3) : 105-1079 潭会生,张昌凡. EDA技术及应用J.西安:电子科技大学出版社.2001,16(2) : 46-4810 徐颖.Protel 99 SE EDA技术及应用J.西安:机械工业出版社. 2005, 11 (9) : 99-10011 Mark D. Birnbaum. Essentia

27、l electronic design automation 中国机械出版社. 200512 徐灵献.EDA技术在现代电子设计中的应用2003, 13 金凤莲.VHDL语言在EDA仿真中的应用 2005, 14 周清华,马善农,谢勇勤等.基于CPLD的出租车计价器的设计与研究 2004, 15 陈爱萍.数字系统设计与ASIC技术 2002, 16 余华,岳秋琴.电子设计自动化技术的发展及在现代数字电子系统设计中的应用2001, 二、中文翻译摘要本文提出了一种出租车多通道计价的方案,能同时处理一个以上乘客的情形。 为了从理论上说明本方案,提出了一个实验上的三通道型的士的完整设计(其原型是根据埃及

28、科学和技术研究学院的研究而建成得)。 1 .导言 在不发达的国家,早上把人们从他们家送到工作的地方,然后下午送回来已成为一个大问题,尤其是在大城市。作为解决这个问题的一个部分,在某些国家出租车用来解决这个问题,送人们从一个地方到另外一个地方。 例如,出租车的四个席位可携带四个不同的没有任何关系的乘客,除了他们的路线是相同的。 因此,依靠目前的传统的单车道计价以确定所需的票价,把每个乘客的计费分开,这已成为一个非常困难的问题。因此,在出租车司机, 车主,乘客和国家税务部门之间存在着不公平的财政关系。 在这种情况下,出租车司机强迫乘客支付多于他们所应付的。在某些情况下乘客支付了他们应付车费的双倍。本常规单频道计程车,出租车司机不能够确定出租车日常收入。 在某些情况下(出租车的4个席位) ,他们可能只有出租车四分之一的收入 ( 大部分的出租车司机)。从这些支付工资的出租车司机以及作为燃料费用外,还要维修以及汽车折旧等费用。事实上,出租车业主并非似乎如此糟糕 。一项在出租车司机和车主之间的协议已经达成,司机应保证每天固定收入,以及向业主支付燃料以及维修的费用。即使如此,还是有的出租车司机的很大一部分份额之收入的出租车。现在还存在的单声道计价,已经变得非常,国家税务部门也知道这种困难 每年估计出租车业主的收入支出,以及应支付的税务也

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

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