1、基于VHDL语言的出租车计费器设计1 引 言最近几年出租车行业发展迅速,在全国有几千家出租车公司,因此出租车计费器的市场是庞大的。随着电子科学技术的不断发展,特别是集成电路的迅猛发展,电子设计自动化已经成为主要的设计手段。随着EDA技术的大力发展,FPGA等数字可编程器件的出现,数字出租车计费器的设计也就变得更加简单,而且性能更稳定、能实现较复杂的功能,且运用EDA软件可方便的在计算机上实现设计与仿真。本设计基于VHDL(FPGA)语言是电子设计领域中最具活力和发展前途的一项技术,未来必定会取代部分落伍的数字元元件。1.1 课程设计目的随着电子技术的不断发展与进步,集成电路的设计方法也在不断地
2、更新。时至今日,传统的手工设计过程已经被先进的电子设计自动化(EDA)工具所代替。只有以硬件描述语言和逻辑综合为基础的子项项下的电路设计方法才能满足日趋复杂的集成电路系统设计需求,才能缩短设计周期以满足设计对集成电路系统日益急迫的需求。在这种情形下,传统的出租车计费器设计方法已不能跟上现在的节奏,以往的出租车计费器在功能上也远不能满足现实的需求。以往的出租车计费器的不稳定性,功能稍等缺点是的大家开始寻求更新的,功能更强大,性能更稳定,价钱更低廉的新型出租车计费器。而大规模可编程逻辑器件的出现,VHDL硬件描述语言的出现,使得这一切成为可能。本设计的研究目标和意义也就是要使用价钱低廉、性能稳定、
3、价钱低廉、可扩性强、适应目前出租车市场需求的出租车计费器,以解决目前出租车计费器存在的一系列问题。1.2课程设计要求1. 能实现计费功能,计费标准为:按行驶里程收费,起步费为10.00元,并在车行3公里后再按2元/公里,当计费器计费达到或超过一定收费(如20元)时,每公里加收50%的车费,车停止不计费。2. 实现预置功能:能预置起步费、每公里收费、车行加费里程。3. 实现模拟功能:能模拟汽车启动、停止、暂停、车速等状态。4. 设计动态扫描电路:将车费显示出来,有两位小数。5. 用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。6. 各计数器的计数状态用功能仿真的方
4、法验证,并通过有关波形确认电路设计是否正确。7. 完成电路全部设计后,通过系统实验箱下载验证设计的正确性。 1.3 设计平台MAX + plus是美国Altera 公司的一种EDA 软件,用于开发CPLD 和FPGA 进行数字系统的设计。2 应用工具介绍作为当今最流行的计算机软件系统,EDA技术是以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。EDA可提供文本输入以及图形编辑的方法将设计者的意图用程序或者图形方式表达出来,而我们经常用到的VHDL语言便是用于编写源程序所需的最常见的硬件描述语言(HDL)之一。2.1 EDA技术介绍ED
5、A是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来。EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计1。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑
6、映射和编程下载等工作。典型的EDA工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件。综合器在工作前,必须给定所要实现的硬件结构参数,它的功能就是将软件描述与给定的硬件结构用一定的方式联系起来。也就是说,综合器是软件描述与硬件实现的一座桥梁。综合过程就是将电路的高级语言描述转换低级的、可与目标器件FPGA/CPLD相映射的网表文件。 在今天,EDA技术已经成为电子设计的普遍工具,无论设计芯片还是设计系统,没有EDA工具的
7、支持,都是难以完成的。EDA工具已经成为设计师必不可少的武器,起着越来越重要的作用。从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。2.2VHDL语言介绍电子设计自动化(EDA)的关键技术之一是要求用形式化方法来描述数字系统的硬件电路。VHDL 硬件描述语言在电子设计自动化中扮演着重要的角色,他是EDA 技术研究的重点之一。硬件描述语言是EDA 技术的重要组成部分,VHDL 是作为电子设计主流硬件描述语言,VHDL(Ve
8、ry High Speed Integrated Circuit Hardware Description Language)于1983 年由美国国防部发起创建,由IEEE进一步发展并在1987年作为IEEE标准10760发布。因此,VHDL成为硬件描述语言的业界标准之一。VHDL作为IEEE的工业标准硬件描述语言,得到众多EDA公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言。VHDL语言具有很强的电路描述和建模能力,能从多个层次对数字系统进行建模和描述,从而大大简化了硬件设计任务,提高了设计效率和可靠性,使用VHDL语言,可以就系统的总体要求出发,自上而下地将设计内容细化,最后完
9、成系统硬件的整体设计。一个完整的VHDL程序包括以下几个基本组成部分:实体(Entity),结构体(Architecture),程序包(Package),库(Library)。其中,实体是一个VHDL程序的基本单元,由实体说明和结构体两部分组成,实体说明用于描述设计系统的外部接口信号;结构体用于描述系统的行为,系统数据的流程或系统组织结构形式。程序包存放各设计模块能共享的数据类型,常数,子程序等。库用于存放已编译的实体,机构体,程序包及配置。VHDL 语言的编译环境有不同的版本,我们应用的是Altera 公司的Maxplus 软件,它的操作顺序如下:使用TEXTEDITOR 编写VHDL 程序
10、使用COMPILER 编译VHDL 程序;使用WAVE2FORMEDITOR,SIMULAROT 仿真实验;使用TIMINGANALTZER 进行芯片的时序分析;用FLOORPLANEDITOR 锁定芯片管脚位置;使用PROGRAMMER 将编译好的VHDL 程序下载到芯片中。VHDL 进行工程设计的优点是显而易见的。1与其他的硬件描述语言相比,VHDL 具有更强的行为描述能力,从而决定了他成为系统设计领域最佳的硬件描述语言。2VHDL 丰富的仿真语句和库函数,使得在任何大系统的设计早期就能查验设计系统的功能可行性,随时可对设计进行仿真模拟。3VHDL 语句的行为描述能力和程序结构决定了他具有
11、支持大规模设计的分解和已有设计的再利用功能。符合市场需求的大规模系统高效、高速地完成必须有多人甚至多个代发组共同并行工作才能实现。4对于用VHDL 完成的一个确定的设计,可以利用EDA 工具进行逻辑综合和优化,并自动的将VHDL 描述设计转变成门级网表。5VHDL 对设计的描述具有相对独立性,设计者可以不懂硬件的结构,也不必管理最终设计实现的目标器件是什么,而进行独立的设计。6用VHDL 语言编写的源程序便于文档管理,用源代码描述来进行复杂控制逻辑的设计,既灵活方便,又便于设计结果的交流、保存和重用。3 设计原理 车速选择 起/停开关 基本速率 Reset 扫描时钟 显示输出 显示输出图3.1
12、 系统顶层框图计费器按里程收费,每100米开始一次计费。各模块功能如下:(1) 车速控制模块当起停键为启动状态时(高电平),模块根据车速选择和基本车速发出响应频率的脉冲驱动计费器和里程显示模块进行计数;当处于停止状态时暂停发出脉冲,此时计费器和里程显示模块相应的停止计数。(2) 里程动态显示模块其包括计数车速控制模块发出的脉冲以及将计数显示动态显示出来,每来一个脉冲里程值加0.1(控制器每发一个脉冲代表运行了0.1公里)。(3) 计费动态显示模块其初值为10元,当里程超过3公里后才接受计数车速控制模块发出的脉冲的驱动,并且计数显示动态显示出来,每来一个脉冲(代表运行了0.5公里)其数值加1元,
13、当收费超过20时数值加1.5元。4 设计步骤VHDL设计流程图(如图4.0):图4.0 VHDL设计流程图4.1程序设计图4.1系统的总体模块图(1)模块MS的实现(如图4.1.1所示)图4.1.1 模块MS图模块MS,输入端口CK0、CK1为两个不同的时钟信号,来模拟汽车的加速和匀速,JS加速按键。(2)模块SOUT的实现(如图4.1.2所示) 图4.1.2 模块SOUT图该模块实现车行状态输出功能,其中clk为时钟信号,enable 为启动使能信号,sto暂停信号, clr为清零信号,st为状态信号。(3)模块PULSE的实现(如图4.1.3所示)图4.1.3 模块PULSE图该模块实现将
14、时钟信号5分频功能。(4)模块COUNTER的结果验证(如图4.1.4所示)图4.1.4 模块COUNTER图实现汽车模拟计费功能。clr1为清零信号,si为状态信号,c1,c2,c3分别为费用的三为显示。(5)模块SCAN_LED的实现(如图4.1.5所示)图4.1.5 模块SCAN_LED图该模块实现显示车费功能。BT为选位信号,SG译码信号4.2系统仿真:系统仿真是在实际系统上进行实验研究比较困难时适用的必不可少的工具,它是指通过系统模型实验去研究一个已经存在或正在设计的系统的过程,通俗地讲,就是进行模型实验。因而,系统仿真的结果决定整个课程设计任务完成的到位程度。程序输入完成后进行编译
15、,编译完成后,可以对所进行的设计进行仿真,本课程设计的仿真平台是MAX+plus,通过对VHDL源程序进行编译检错,然后创建波形文件(后缀名为.scf),加入输入输出变量,选择适用的芯片以及设定仿真结束时间,设置好输入初值进行仿真,得到仿真波形图:1.模块MS的结果验证(如图4.2.1)图4.2.1当JS为高电平,CLK_OUT按照CLK1输出;低电平时,按照CLK0输出2模块SOUT的结果验证(如图4.2.2)enable高电平时,每一个时钟上升沿时,CQI计数加1,若CQI=30时,state赋01,30CQI=80时,state赋10态,.;enable低电平时,CQI计数暂停,保持不变图4.2.23模块PULSE的结果验证(如图4.2.3)每个CLK0上升沿时,CNT计数加1,加到4时在下一个时钟上升沿赋值0;cnt不为0时fout赋值低电平,否则高电平图4.2.34模块COUNTER的结果验证(如图4.2.4) SI为出租车状态信号:“00”表示计费值停止,Q1Q3不变;“01”计费清零,设置为起步价10元,Q2=1,Q3=0,Q1=0;“10” 正常计费,每公里1元,“11”超过20元后,每公里1.5元;Q1,Q2,Q3的信号分别赋值给C1,C2,C3图4.2.45模块SCAN_LED的结果验证(如图4.2.5)BT位选,SG译码
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1