基于VHDL的出租车计费器设计毕业论文(2)

2019-05-18 13:37

ABEL等

[2][3][4]

。VHDL则起源于20世纪70年代末和80年代初,美国国防部提出

的VHSIC计划,目标是为下一代集成电路的生产、实践阶段性的工艺极限和完成10万门级以上的电路设计而建立一种新的描述方法[5]。VHDL的英文全称为Very-High-Speed Integrated Circuit Hardware Description Language,是IEEE标准化的硬件描述语言,并且已经成为系统描述的国际公认标准,得到众多EDA公司的支持。

VHDL具有很多的优点使它能够被大多数人认可,被广泛应用在逻辑电路的设计方面,并且成为了标准化的硬件描述语言,其优点如下:

(1)功能强大和设计灵活。一个简洁的使用VHDL语言编写的程序就可以描述一个复杂的逻辑电路,因为VHDL拥有强大的语言结构[6]。VHDL多层次的设计描述功能可以有效地控制设计的实现,支持设计库和可重复使用的元件生成,还支持多种设计方式,如层次化设计、模块化设计和同步、异步和随机电路设计。

(2)与具体器件无关。用VHDL设计硬件电路时不用先确定设计要用到哪种器件,也不用特别熟悉器件的内部结构,这样可以使设计人员专注于进行系统设计。设计完成后,可以根据消耗的资源选择合适的器件,而不造成资源的浪费。

(3)很强的移植能力。VHDL由很多不同的工具支持,同一个设计的程序可以在包括综合工具、仿真工具、系统平台等工具中使用。

(4)强大的硬件描述能力。VHDL可以描述系统级电路和门级电路,而且描述方式多样,可以采用行为描述、寄存器传输描述或者结构描述,也可以用其混合描述方式。同时,VHDL可以准确地建立硬件电路模型,因为它支持惯性延迟和传输延迟。VHDL的数据类型很丰富,支持标准定义的数据类型,当标准定义的数据类型不能满足用户的需求时,用户可以自己定义的所需要的数据类型,增加了设计的自由度。

(5)语法规范,易于共享。当把用VHDL编写的代码文件看作是程序时,它可以作为设计人员之间的交流内容;当把它看作是文档时,可以作为签约双方的合同文本。VHDL易于共享的特点,使得大规模的协作开发容易实现。同时,这些特点也促进了VHDL的发展和完善。

综上所述,VHDL有很多其他的硬件描述语言所不具备的优点。但是,VHDL仍然存在一些缺点,主要是3个方面。

(1)要求设计者对硬件电路知识甚至是芯片结构方面的知识了解较多。应该摆脱一般的高级语言程序设计思路,因为在电路世界里的事件很多是并行发生

的,并且硬件电路系统内部的模块可以是互相独立的,也可以是互为因果的,所以,在用VHDL设计硬件电路时应摆脱一般的高级语言程序设计思路。在设计电路时,应先构思电路,然后才能描述。

(2)不能进行太抽象的系统描述。因为EDA工具无法综合抽象性太强的系统,故用VHDL描述系统电路时不能太抽象。目前的VHDL很难综合实际的硬件电路,只能适用于系统建模。

(3)不能描述模拟电路。对于模拟电路而言,VHDL并不是一种理想的硬件描述语言。但可以预见,未来硬件描述语言的发展方向是模拟电路和数模混合电路的描述方式。

1.3 QuartusⅡ简介

Quartus II 是Altera公司的综合性PLD开发软件,可以采用多种输入方式,如VHDL、Verilog HDL、AHDL(Altera Hardware Description Language)及电路图等。它支持一些比较成熟的模块,如LPM/MegaFunction宏功能模块库等,设计者可以直接调用这些模块,从而使设计的复杂性降低了,设计的速度也加快了。Quartus II 内带有综合器和仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程,减少了设计者的工作量。Quartus II 是一种综合性的开发平台,在Quartus II 中可以进行系统级设计嵌入式的软件开发和可编程逻辑的设计。Quartus II 越来越受到数字系统设计者的欢迎,是因为 Quartus II 拥有强大的设计能力和直观易用的接口,可以在多种平台上使用,如XP、Linux以及Unix等,具有完善的用户图形界面设计方式,运行速度快,功能集中,易学易用等特点[7][8]。

2 出租车计费器的设计

2.1 系统设计要求

系统设计要求为:

(1)起步价为8.00元,起步公里为3公里; (2)超过3公里,每公里按1.00元收费;

(3)单程行驶里程超过20公里,每公里租价加收50%; (4)等候时间累计1分钟,则每分钟折算1公里里程价。 要求显示里程、计费及等候时间。

乘客上车后,按下启动键,开始计费,除非同一乘客往返乘车,否则按下单程键,这样当行驶里程超过20公里时,每公里收费1.5元。

2.2 设计思路

根据系统的功能要求,分为2个模块来实现,分别是计费模块,显示模块。计费模块是实现系统功能的核心,里面有分为分频、计时、公里计数、计费等部分。分频部分是把外部提供的300Hz进行分频得到系统工作需要的工作脉冲,计费部分包括两个内容,一个是正常行驶的里程数所产生的费用,另一个是车行中途暂停的时间所产生的费用。然后将里程、计费和等候时间以BCD码形式显示出来,显示模块将其译码轮流扫描显示。

2.3 出租车计费器系统工作流程图

对出租车计费器系统的功能要求进行分析,得到如下工作流程图:

NO车开始启动 YESNO不计数车暂停YES里程计数里程显示等候时间显示等候时间计数里程超过3公里 YESNO计费器8元不变等候时间计费器计数超过部分1.0元/公里里程超过20公里 YESNO1.0元/公里不变超过部分1.5元/公里里程计费器计数车费总计车费显示

图1 工作流程图

出租车载客后,启动计费器,整个系统开始工作,进入初始化状态,即计程从0开始,计费从8开始。再根据stop信号判断行驶还是暂停。若是行驶状态,计费器开始进行里程计数,当里程超过3公里时,计费器开始累加,按1.00元每公里计算,计程器则继续,否则计费器不变。当里程超过20公里,按1.50每公里进行累加。若是暂停状态,计费器开始进行等候时间计数,当等候时间累计1分钟,则每分钟折算1公里里程价。最后将等候时间、里程、计费都显示出来。

3 出租车计费器的实现

3.1 出租车计费器的顶层原理图

图2 顶层原理图

原理图中输入部分分别是clk:系统时钟信号;mile:公里脉冲信号;single:单程键;start:计费器启动信号;stop:等待信号。输出部分为七段译码show和位选码sel,show显示出来的是等候时间、里程和计费。

描述系统顶层实体的VHDL程序见附录。

3.2 系统各功能模块的实现

3.2.1 模块taxi:charge_control

图3 计费模块

设计计费模块的难点在于小数计算,由计费规则知,单程行驶里程超过20公里,每公里租价加收50%,即每公里租价1.5元。20公里是临界值,在此以后,计费以1.5元累加,需要对计数进行讨论,因为个位为8或9都可能导致进位。等候时间累计1分钟,则每分钟折算1公里里程价,所以,等候和行驶都可使计费增加。为此,设计2个时钟脉冲,公里脉冲和等候脉冲,根据汽车行驶还是等候选择计费脉冲。

描述计费模块的VHDL程序见附录。 3.2.2 模块display:display_control

图4 显示模块

显示模块用来将计费模块输出译码,然后轮流扫描数码管。如图5,出租车


基于VHDL的出租车计费器设计毕业论文(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:太阳能电池极板材料的研究方向及性能对比

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: