目录1引言............................................................................................................................12EDA技术简介...........................................................................................................23FPGA简介.................................................................................................................34总体设计....................................................................................................................54.1总体设计思想.................................................................................................54.1.1分频模块..................................................................................................54.1.2控制模块..................................................................................................54.1.3计量模块..................................................................................................54.1.4译码显示模块..........................................................................................64.2时序仿真图及延时分析.................................................................................64.3VHDL源代码..................................................................................................85设计总结..................................................................................................................12参考文献......................................................................................................................13课程设计说明书11引言随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定,计费准确。利用VHDL语言设计出租车计费系统,使其实现计费以及预置和模拟汽车启动、停止、等待等功能设计出动态扫描电路显示车费数目,突出了其作为硬件描述语言的良好的可能性、可移植性和易理解等优点。此程序通过下载到芯片EP1K30TC144-3后,可应用于实际的出租车系统中。本文针对FPGA器件,用EDA工具软件Max+P1usⅡ,设计了一种出租车的计价器,它可以以十进制数的形式,直观地显示出租车行驶的里程和乘客应付的费用,具有一定的实际应用价值。课程设计说明书22EDA技术简介EDA是电子设计自动化(ElectronicDesignAutomation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。现在对EDA的概念或范畴用得很广,包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。EDA工具软件可大致分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:Protel、PSPICE、multiSIM10(原EWB的最新版本)、OrCAD、PCAD、、LSIIogic、MicroSim,ISE,modelsim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。课程设计说明书33FPGA简介FPGA是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。它由早期的电子管、晶体管、小中规模集成电路,发展到超大规模集成电路(VLSIC,几万门以上)以及许多具有特定功能的专用集成电路。但是,随着微电子技术的发展,设计与制造集成电路的任务已不完全由半导体厂商来独立承担。系统设计师们更愿意自己设计专用集成电路(ASIC)芯片,而且希望ASIC的设计周期尽可能短,最好是在实验室里就能设计出合适的ASIC芯片,并且立即投入实际应用之中,因而出现了现场可编程逻辑器件(FPLD),其中应用最广泛的当属现场可编程门阵列(FPGA)和复杂可编程逻辑器件(CPLD)。其后出现了一类结构上稍复杂的可编程芯片,即可编程逻辑器件(PLD),它能够完成各种数字逻辑功能。典型的PLD由一个“与”门和一个“或”门阵列组成,而任意一个组合逻辑都可以用“与—或”表达式来描述,所以PLD能以乘积和的形式完成大量的组合逻辑功能。PLD的结构分为两类:逻辑单元阵列(LCA),包括逻辑块和互连阵列、I/O块;复合PLD结构,包括逻辑块和互连矩阵开关。这一阶段的产品主要有PAL(可编程阵列逻辑)和GAL(通用阵列逻辑)。PAL由一个可编程的“与”平面和一个固定的“或”平面构成,或门的输出可以通过触发器有选择地被置为寄存状态。PAL器件是现场可编程的,它的实现工艺有反熔丝技术、EPROM技术和E2PROM技术。还有一类结构更为灵活的逻辑器件是可编程逻辑阵列(PLA),它也由一个“与”平面和一个“或”平面构成,但是这两个平面的连接关系是可编程的。PLA器件既有现场可编程的,也有掩膜可编程的。在PAL的基础上又发展了一种通用阵列逻辑(GAL,GenericArrayLogic),如GAL16V8、GAL22V10等。它采用了EPROM工艺,实现了电可擦除、电可改写,其输出结构是可编程的逻辑宏单元,因而它的设计具有很强的灵活性,至今仍有许多人使用。这些早期的PLD器件的一个共同特点是可以实现速度特性较好的逻辑功能,但其过于简单的结构也使它们只能实现规模较小的电路。为了弥补这一缺陷,20世纪80年代中期,Altera和Xilinx分别推出了类似于PAL结构的扩展型CPLD(ComplexProgrammableLogicDvice)和与标准门阵列类似的FPGA(FieldProgrammableGateArray),它们都具有体系结构和逻辑单元灵活、集成度高以及适用范围宽等特点。这两种器件兼容了PLD和通用门阵列的优点,可实现较大规模的电路,编程也很灵活。与门阵列等其他ASIC课程设计说明书4(ApplicationSpecificIC)相比,它们又具有设计开发周期短、设计制造成本低、开发工具先进、标准产品不需测试、质量稳定以及可实时在线检验等优点,因此被广泛应用于产品的原型设计和产品生产(一般在10000件以下)之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。课程设计说明书54总体设计4.1总体设计思想根据设计要求,系统的输入信号有:系统时钟信号CLK-240,计价开始信号START,等待信号STOP,里程脉冲信号FIN。系统的输出信号有:总费用数cha0--cha3,行驶距离km0、km1和等待时间min0、min1等。系统组成方框图4-1所示,它由外部输入模块、控制模块和显示模块三部分组成。4.1.1分频模块分频模块是对系统时钟频率进行分频,分别得到13Hz,15Hz和1Hz三种频率。4.1.2控制模块计价器控制模块主要完成对计价器状态的控制。4.1.3计量模块计量模块完成计价、计时和计程功能。计价部分:行程在3km内,而且等待累计时间小于2分钟,起步费为5元;3km外以每公里按1.3元计费,等待累计时间超过2分钟按每分钟1.5元计费。计时部分:计算乘客的等待累计时间。计时器的量程为59分钟,满量程后图4-1出租车计价器系统组成方框图公里脉冲计费/复位控制器计费计时分频器计程显示时钟信号等待信号课程设计说明书6自动归零。计程部分:计算乘客所行驶的公里数。计程器的量程为99km,满量程后自动归零。4.1.4译码显示模块译码显示模块完成计价、计时和计程数据显示。计费数据送入译码显示模块进行译码,最后送至以百元、十元、元、角为单位对应的数码管上显示。计程数据送入译码显示模块进行译码,最后送至以km为单位的数码管上显示。计时数据送入译码显示模块进行译码,最后送至以分为单位对应的数码管上显示。4.2时序仿真及延时分析图4-2时序仿真图根据图4-2仿真波形知,当START为0时,路程计数器、时间计数器、计费计数器均为0;当START为1时,表示出租车行驶状态,计费计数器显示5元,FIN为1时,满1km路程计数器加1;路程3km内,计费计数器保持5元不变,超过3km后每增加1km计费计数器加1.3元,此时等待时间计数器保持不变。图4-3时序仿真图根据图4-3仿真波形知,当START为1时,系统启动后,STOP为1时,出课程设计说明书7租车处于停止等待状态,等待时间计数器计时在2分钟等待时间内计费计数器不变;等待时间超过2分钟后,每增加1分钟计费计数器加1.5元,此时路程计数器保持不变。图4-4延时分析由上图可知:当clk_240输入变化时,cha00的输出会延时16.3ns,其它同理由图可知图4-5延时分析由上图可知:当clk_240输入变化时,cha20的输出会延时12.9ns,其它同理由图可知图4-6延时分析由上图可知:当clk_240输入变化时,km00的输出会延时14.2ns,其它同理由图可知课程设计说明书8图4-7延时分析由上图可知:当clk_240输入变化时,km13的输出会延时15.2ns,其它同理由图可知4.3VHDL源代码Libraryieee;useieee.std_logic_1164.all;useieee.std_logic_ai