1、中原工学院信息商务学院毕业论文(设计) 摘 要 本文设计了一个出租车计价器系统,根据预定的设计要求和设计思路,以Quartus9.0软件为平台,使用VHDL硬件描述语言来实现本设计。本文的主要内容是设计系统的电路结构,编写VHDL程序和仿真实现设计要求。通过一系列模块的设计最后使本设计不仅能实现出租车的计费和预置以及模拟汽车启动、停止、暂停等功能,而且还能够动态扫描显示车费数目。通过仿真模拟,得到了设计结果以及在Quartus9.0软件下的仿真波形。经过对软件仿真波形和硬件调试结果的分析,可以发现本文设计的出租车计价系统具有实用出租车计价器的基本功能,能够完成模拟计费及相关任务,如能进一步的改
2、进,在一定范围内是可以实用化和市场化的。关键字:出租车计价器 Quartus9.0 VHDLThe Taximeter the VHDL designAbstract This paper designs a taxi meter system, according to the predetermined design requirements and design ideas, in order to Quartus9.0 software for the platform, the use of VHDL language to realize the hardware descript
3、ion of this design. the main content of this article is to design the system of the circuit structure, write VHDL procedures and simulation design requirements. through a series of module design finally make this design can not only realize the billing and preset and taxi car start and stop, simulat
4、ion suspended, and other functions, but also could dynamically scan showed that the number of the fare. through the simulation, the design results, and got in Quartus ii9.0 software simulation waveform. after the software simulation waveform and hardware debugging the result analysis of the design c
5、an be found in this paper the taxi valuation system has practical the basic function of the meter taxi, can perform simulation billing and related tasks, such as to further improvement, within a certain range can be practical and market.Keywords:Meter taxi Quartus 9.0 VHDL目 录1 绪论11.1 课题的现状11.2 研究的目的
6、和意义21.3 EDA系统框架结构21.4硬件描述语言31.5 VHDL的优点42 出租车计价器的设计内容及方案论证52.1 基本设计要求52.1.1计费功能52.1.2显示功能52.2 基本设计思想52.3 三种设计方案比较73 基于VHDL的出租车计费系统的实现93.1VHDL的相关介绍93.1.1 FPGA简介93.2 系统模块设计93.2.1 lucheng模块93.2.2 jijia模块93.2.3 zhongjia模块103.2.4 jinzhi模块103.2.5 xuantong模块113.2.6 se模块113.2.7 yima模块113.2.8 miaocp模块124 系统仿
7、真134.1软件Quartusii9.0介绍134.1.1软件功能介绍134.1.2可编程逻辑器件设计流程简介134.1.3 MAX+plus可编程设计流程134.1.4 项目编译(设计处理)144.1.5 仿真和定时分析(项目校验)154.1.6器件编程下载154.1.7可编程逻辑常用设计输入法介绍164.2 模块仿真结果164.2.1 lucheng模块164.2.2 jijia模块164.2.3 zhongjia模块174.2.4 jinzhi模块174.2.5 xuantong模块184.2.6se模块184.2.7 yima模块194.2.8 miaocp模块195 结 论216 致
8、 谢22参考文献23附录一:系统顶层原理图25附录二:各个模块程序26V中原工学院信息商务学院毕业论文(设计)1 绪论1.1 课题的现状随着中国城市化进程的快速发展,人们出行的选择也会也来越多样化,出租车作为一种重要的交通工具,也越来越多的被人所选用。虽然在大中城市,出租车已经相当普及,但是在一些小的城市,出租车行业也因为城市化进程的加快而快速发展。出租汽车成为城市公共交通的重要组成部分,出租汽车计价器是一种专用的计量仪器,它安装在出租汽车上,指示出载客里程数,以及乘客应付费用的总数。出租车计价器在最初使用时具备的基本功能是根据行驶里程计价,要求精度高,可靠性好。随着电子技术的发展以及对计价器
9、的不断改进和完善,产生了诸多的附加功能。例如,出租车的计费器也由当初的只能显示路程的计费方式变成现在的,能够自主计费以及打印发票和语音提示。根据出租车行业的需求,国内各机械厂家纷纷推出国产计价器,传统的出租车计费器由于发展使用了十几年,在稳定性、成本、以及使用习惯上都具有一些优势。如89S51 单片机实现汽车计费器的设计,大部分的功能可以用单片机来实现。但是单片机程序是不通用的,不同的芯片有不同的指令集,因此设计研发比较困难,周期长。如果系统设计的不好,则系统不是很稳定,而且灵活度不够,不易实现功能复杂的设计。随着中国经济的发展,许多因素主导了出租车行业成本的波动。而传统的用89SC51为基础
10、设计出来的出租车计费系统已经很难满足现在的需要。VHDL是一种应用广泛的硬件描述语言,设计者可以通过它编写代码,通过模拟器仿真验证其功能,完成逻辑综合与逻辑优化,最后通过下载到相应的可编程逻辑器件(如FPGA)中来实现设计。而FPGA 等数字可编程器件的出现彻底解决了这些问题,FPGA不同逻辑可以并行执行,可以同时处理不同任务,这就导致了FPGA工作更有效率,同时可以根据不同的需要来设计不同模块,能够很快的实现其需要的功能。出租车计价系统在生活中应用广泛,较多的是利用单片机进行控制,但较易被私自改装,且故障率相对较高;而FPGA具有高密度、可编程及有强大的软件支持等特点,所以设计的产品具有功能
11、强、可靠性高、灵活性好等特点。正因为在出租车需求不断增大的情况下,未来汽车计费器的市场还是相当有潜力,通过FPGA设计出各种出租车的计费需求,能满足当地出租车的计费需要的系统是十分有必要的,而且这个课题还能有效解决传统计费器系统上的一些不足,以实现更好的计费功能。该课题已经是一个相对成熟的课题,此前有过很多人在此方面针对出租车计费器系统做过不同的设计,通过不同的方式,包括用单片机,用ARM,和可编程逻辑器件来设计实现完成过这一课题。 而此次选做的毕业课题是“出租车计价器的VHDL设计”,利用现在已经很成熟的可编程逻辑器件来实现这一计费系统,相对用51单片而言,会比较简单,这也同样体现出EDA技
12、术上的优势。其最突出的地方表现在最具先打电子设计技术特征的功能是日益强大的逻辑设计仿真测试技术。同时能将所有设计环节纳入统一的自顶向下的设计方案中。基于EDA技术上的种种优势,他人在做有关此课题时,首先选用的方案是基于EDA技术的CPLD或者FPGA。在本设计中针对目前常用的这两种设计方案(单片机设计方案和FPGA设计方案)进行了优劣比较,最终确定用FPGA来实现系统设计,根据预定的设计要求和设计思路进行功能设计。1.2 研究的目的和意义随着我国经济的快速发展,全国人民经济生活条件的逐步改善,出租车已经完全进入到了人们的日常生活,相伴出租车而来的就是计价问题,出租车计价器也摆在了人们面前,目前
13、,出租车计价器也可以说是已经深入人们生活的每一天,甚至每分每秒,出租车计价器从研制到普及,时刻都在朝着准确精密、方便快捷的方向发展,因此我们的设计目的就是,通过对单片机的软件和硬件的设计,各个子程序的设计,以及各个功能的实现,来完成一个多功能、灵活,而又准确的出租车计价器,通过对出租车计价器的研究设计,熟悉对单片机的控制.出租车计价器研究设计的意义在于,使用一款精密准确的出租车计价器,可以避免出现更多的纠纷,方便顾客;防止出租车司机在计价器上做手脚,私自改动程序、价格数据等等,因此是具有很大的意义的。1.3 EDA系统框架结构EDA系统框架结构(FRAMEWORK)是一套配置和使用EDA软件包
14、的规范。目前主要的EDA系统都建立了框架结构,如CADENCE公司的Design Framework,Mentor公司的Falcon Framework,而且这些框架结构都遵守国际CFI组织制定的统一技术标准。框架结构能将来自不同EDA厂商的工具软件进行优化组合,集成在一个易于管理的统一的环境之下,而且还支持任务之间、设计师之间以及整个产品开发过程中的信息传输与共享,是并行工程和自顶向下设计施的实现基础。EDA技术的每一次进步,都引起了设计层次上的一次飞跃,从设计层次上分,70年代为物理级设计(CAD),80年代为电路级设计(CAE),90年代进入到系统级设计(EDA)。物理级设计主要指IC版
15、图设计,一般由半导体厂家完成,对电子工程师没有太大的意义,因此本文重点介绍电路级设计和系统级设计。仿真通过后,根据原理图产生的电气连接网络表进行PCB板的自动布局布线。在制作PCB板之前还可以进行PCB后分析,其中包括热分析、噪声及窜扰分析、电磁兼容分析、可靠性分析等,并可将分析后的结果参数反标回电路图,进行第二次仿真,也称为后仿真。后仿真主要是检验PCB板在实际工作环境中的可行性。由此可见,电路级的EDA技术使电子工程师在实际的电子系统产生前,就可以全面地了解系统的功能特性和物理特性,从而将开发风险消灭在设计阶段,缩短了开发时间,降低了开发成本。1.4 硬件描述语言硬件描述语言(HDLHar
16、dware Description Language)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABELHDL、AHDL,由不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了VHDL(Very High Speed IC
17、 Hardware Description Language)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE STD-1076)1。硬件描述语言(HDLHardware Description Language)是一种用于设计硬件电子系统的计算机语言,它用软件编程的方式来描述电子系统的逻辑功能、电路结构和连接形式,与传统的门级描述方式相比,它更适合大规模系统的设计。例如一个32位的加法器,利用图形输入软件需要输入500至1000个门,而利用VHDL语言只需要书写一行A=B+C即可,而且VHDL语言可读性强,易于修改和发现错误。早期的硬件描述语言,如ABELHDL、AHDL,由
18、不同的EDA厂商开发,互不兼容,而且不支持多层次设计,层次间翻译工作要由人工完成。为了克服以上不足,1985年美国国防部正式推出了VHDL(Very High Speed IC Hardware Description Language)语言,1987年IEEE采纳VHDL为硬件描述语言标准(IEEE STD-1076)。VHDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流、行为三种描述形式的混合描述,因此VHDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用VHDL来完成2。1.5 VHDL的优点(1)V
19、HDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心提高到了系统功能的实现与调试,而化较少的精力于物理实现。(2)VHDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用3。(3)VHDL的设计不依赖于特定的器件,方便了工艺的转换。(4)VHDL是一个标准语言,为众多的EDA厂商支持,因此移植性好。2 出租车计价器的设计内容及方案论证2.1 基本设计要求2.1.1 计费功能费用是按行驶的里程进行计算的,设出租车的起价是7.0元,当里程小于3km时,按起步价计算费用,当里程大于3km时,每km1.0元计费(在7.0元基础上每行驶1
20、 km车费加1.0元),车费依次累加,所以总费用=起价费用+(里程-3km)*里程单价。2.1.2 显示功能1)显示汽车行驶的里程,用4位数字显示,显示的方式为“XXX.X”.单位为km。计程范围为0999.9km。2)显示总费用:用4位数字显示,显示的方式为“XXX.X”.单位为元。计价范围为0999.9元。2.2 基本设计思想这个课题可以有两种解决的方案,一个是基于单片机,另一个是基于FPGA。对于单片机方案的计费系统是相对传统的计费方式,目前市场上使用的出租车计费器主要采用的都是利用89C51 单片机实现的计费器设计,显示方式上主要采用的是固定显示内容的LED 显示。但是在前面已有提到,
21、传统的出租车的计费方式的不足,使得产品在显示或者升级方面都不是很理想,更新的周期长。而又因为中国经济的快速发展,传统出租车的计费方式因为更新需要周期长,很难跟上出租车计费发展的需求4。随着 FPGA 等数字可编程器件的出现解决传统电子设计不能完成的任务,利用FPGA来实现出租车计费器。不但可行性很高,而且电路简单,不需要大量的外围电路,节约物力成本,提高了竞争力,FPGA方案可以用软件完全仿真,灵活度高,可以设计一些复杂的系统,而且编好的系统可以在不同的FPGA 或CPLD芯片上通用。不必拘泥与芯片的某种指令,只取决于编写者编写的VHDL语言程序。所以,对于出租车计费器的这个方案,使用EDA技
22、术来完成,不但灵活多变,而且有很高的可移植性。总体上可以分为以下几个模块,1)按键模块,2)控制模块,3)译码模块,4)显示模块。按键部分,可以分为三部分,有起动键,暂停键,停止键,分别表示控制出租车的起动、暂停和停止计费。控制部分,主要表现在对各个建的功能的描述,分别对按键部分的按键进行控制,如下图2.1所示:起动暂停停止按键模块图2.1 控制模块译码部分,主要是将车费的十进制和里程数的十进制转化为四位数的十进制,便于模块将车费和里程都显示在四位数码管上。即出租车在行走的过程中能够不断的将里程转换成所得到的费用。这些是按照出租车的模拟方式来分块,从要实现的部分还可以有:根据系统的设计要求,我
23、们可将整个测控FPGA系统出租车计费分为七个模块,它们分别是:分频器模块FPQ,等待判别模块DDPB,里程计算模块LCJS,里程计费模块LCJF。分频器模块FPQ:将外部时钟信号SCLK,设计时假设为200 Hz经过适当分频后,产生1 Hz的系统工作用基准时钟信号CLK1,供系统中的有关模块计时用。等待判别模块DDPB:根据速度传感器脉冲信号WCLK和分频器产生的基准时钟信号CLK1HZ,计算单位时间里WCLK的脉冲个数(每km产生1000个脉冲信号,即每米产生1个脉冲信号),亦即出租车行驶速度,从而判别出租车是否处于等待状态,发出等待标志信号DDBZ。由按键模块来模拟这部分。里程计算模块LC
24、JS:根据速度传感器脉冲信号WCLK和等待标志DDBZ,对出租车行驶的里程数XSLC进行计算,同时发出里程标志信号LCBZ和里程计费标志信号JFBZ。 有脉冲来模拟这部分5。里程计费模块LCJF:在计费标志信号JFBZ、等待标志信号DDBZ、里程标志信号LCBZ和时段标志信号XDBZ等信号的控制下,计算行驶里程超过3 km以上里程的费用LCFY。根据租车车行走路程并计算出所需要付的费用然后有数码管显示出来。用VHDL语言编写实现各个模块的功能,然后可以用仿真软件进行调试,FPGA/CPLD测控电路的调试:使用Quartus 、计算机、 EDA实验开发系统等软件和及开发板设备进行模拟调试,对FP
25、GA/CPLD测控电路进行VHDL程序的调试、有关仿真以及编程下载、硬件测试等。系统联合调试成功后,将VHDL设计经过综合适配后的网表对CPLD/FPGA进行编程下载,输入相关的信号,并进行有关性能指标的测试,直到满足系统的设计要求为止。FPGA芯片就是通过采集传感器脉冲信号WCLK进行里程计算、里程计费,利用外部脉冲信号SCLK产生标准时钟信号计算等待时间、等待费用。可以根据计费器功能的需要,拆分成多个小功能模块,用VHDL语言编写实现各个模块,每个模块的设计功能相对单一,但是能够容易的实现要实现的功能,在调试的过程中容易查找错误,降低了设计难度,也便于程序调试。2.3 三种设计方案比较方案
26、一:采用数字电路控制。其原理方框图如图2.2所示。采用传感器件,输出脉冲信号,经过放大整形作为移位寄存器的脉冲,实现计价,但是考虑到这种电路过于简单,性能不够稳定,而且不能调节单价,也不能根据天气调节计费标准,电路不够实用,所以我们不予采用。电源电路及保护电路金额显示单价显示里程传感器移位寄存器电路图2.2 数字电路控制方式方案二:采用单片机控制。利用单片机丰富的IO端口,及其控制的灵活性,实现基本的里程计价功能和价格调节、时钟显示功能。其原理如图2.3所示。单片机方案有较大的活动空间,不但能实现所要求的功能而且能在很大的程度上扩展功能,而且还可以方便的对系统进行升级6。缺点在于实现起来相对比
27、较复杂,因此暂不考虑这种方法。键盘控制89S51单片机总金额显 示单价显示串口显示驱动电路AT24C02掉电存储里程计算单元图2.3 单片机控制方式方案三:采用VHDL语言。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。而且它还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计 。VHDL采用基于库(Library)的设计方法,可以建立各种可再次利用的模块。这些模块可以预先设计或使用以前设计中的存档模块,将这些模块存放到库中,就可以在以后的设计中进行复用,
28、可以使设计成果在设计人员之间进行交流和共享,减少硬件电路设计。除此之外,采用VHDL耗费资源比较小,速度比较快,效率比较高,且易于共享和复用6。故综合以上几点我们选择VHDL语言来设计计程车计价器。3 基于VHDL的出租车计费系统的实现3.1 VHDL的相关介绍3.1.1 FPGA简介现场可编程门阵列FPGA(FieldProgrammable Gate Array)是美国Xilinx公司于1984年首先开发的一种通用型用户可编程器件。FPGA既具有门阵列器件的高集成度和通用性,又有可编程逻辑器件用户可编程的灵活性。 FPGA由可编程逻辑单元阵列、布线资源和可编程的IO单元阵列构成,一个FPG
29、A包含丰富的逻辑门、寄存器和IO资源。一片FPGA芯片就可以实现数百片甚至更多个标准数字集成电路所实现的系统。FPGA的结构灵活,其逻辑单元、可编程内部连线和IO单元都可以由用户编程,可以实现任何逻辑功能,满足各种设计需求。其速度快,功耗低,通用性强,特别适用于复杂系统的设计。使用FPGA还可以实现动态配置、在线系统重构(可以在系统运行的不同时刻,按需要改变电路的功能,使系统具备多种空间相关或时间相关的任务)及硬件软化、软件硬化等功能。3.2 系统模块设计3.2.1 lucheng模块该模块输入路程脉冲(即clk1),计算出相应的行驶路程数向后级传输,同时把行驶路程折算成行驶费用。输入端口ST
30、ART、RST、PAUSE分别为汽车起动、停止、暂停按键。如下图3.1所示: 图3.1 lucheng模块3.2.2 jijia模块在出租车营运过程中,必然会遇到等红灯、堵车等情况,当车速低于一定值时候,此模块开始工作,把等候时间折算成费用。如下图3.2所示: 图3.2 jijia模块3.2.3 zhongjia模块此模块把行驶路程折算的价格费用与等待时间折算的费用相加,计算出乘客应付的总价。如下图3.3所示: 图3.3 zhongjia模块3.2.4 jinzhi模块此模块把行驶路程折算的价格费用与等待时间折算的费用相加,计算出乘客应付的总价。输入口ascore为总计的路程数输入口,bsco
31、re为总费用的输入口。如下图3.4所示:图3.4 jinzhi模块3.2.5 xuantong模块把已经折算成十进制的路程和费用数,按一定的速度,按排列顺序每次向后级的数码管传输一位。同时选择显示时小数点所处的位置。其中a1、a2、a3、a4分别是路程的个、十、百、千位的数值输入口,b1、b2、b3、b4分别是费用的个、十、百、千位的数值输入口。c是选通地址码的输入口。如下图3.5所示:图3.5 xuantong模块3.2.6 se模块这是一个8进制数生成器,该模块利用模块工作用的32Hz脉冲产生模块xuantong所需要的选通地址信号。如下图3.6所示: 图3.6 se模块3.2.7 yim
32、a模块 把选择传输到数码管显示的那个十进制数换算成数码管的显示码。在本设计中数码管是共阴数码管。如下图3.7所示: 图3.7 yima模块3.2.8 miaocp模块用来生成计时所需的秒脉冲,以及模块zhongjia所需的工作脉冲32Hz。同时送到分频模块SE中,进行8分频,以作为选通脉冲,使得数码管显示能比较稳定的为人眼所看到。设计采用的输入脉冲为32MHz。如下图3.8所示: 图2.1miaocp模块 图3.8 miaocp模块 4 系统仿真4.1 软件Quartusii9.0介绍4.1.1 软件功能介绍MAX+plus(Multiple Array and Programming Log
33、ic User System)开发工具是美国Altera 公司推出的一种EDA 工具,具有灵活高效,使用便捷,易学易用的特点。Altera公司在推出各种CPLD 和FPGA 的同时也在不断地升级相应的开发工具软件,已从早期的第一代A+plus、第二代MAX+plus 发展到目前的第三代MAX+plus II 和第四代Quartus。使用MAX+plus 软件,设计者无需精通器件内部的复杂结构,只需熟悉所用的设计输入工具,如硬件描述语言、原理图等进行输入,MAX+plus自动将设计转换成目标文件下载到器件中去7。MAX+plus开发系统具有以下特点。多平台系统 MAX+plus的设计输入、处理与
34、校验功能一起提供了全集成化的可编程开发工具,可以加快动态调试,缩短开发周期。开放的界面 MAX+plus可与其它工业标准的设计输入、综合和校验工具链接。具有EDIF,VHDL,Verilog HDL 以及其他的网表接口,便于与许多公司的EDA 工具接口,包括Cadence,Mentor,Synopsys,Synplicity,Viewlogic等公司提供的EDA 工具的接口。模块组合式工具软件MAX+plus具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验仿真和下载编程四个模块,设计者可以按设计流程选择工作模块。与结构无关 MAX+plus支持Altera 的Classic、
35、MAX5000、MAX7000 FLEX8000、FLEXLOK 等可编程器件系列,提供工业界中唯一真正与结构无关的可编程逻辑设计环境7。硬件描述语言 MAX+plus支持各种HDL 硬件设计输入语言,包括VHDL, 和Altera 的硬件描述语言AHDL8。4.1.2 可编程逻辑器件设计流程简介可编程逻辑器件CPLD/FPGA 的设计是指利用开发软件和编程工具对器件进行开发的过程。可编程逻辑器件的设计流程包括设计准备、设计输入、设计处理(项目编译)、仿真和定时分析、器件编程下载(设计实现)四个步骤9。4.1.3 MAX+plus可编程设计流程设计准备在对可编程逻辑器件的芯片进行设计之前,首先
36、要进行方案论证、系统设计和器件选择等设计准备工作。设计者首先要根据任务要求,如系统所完成的功能及复杂程度,对工作速度和器件本身的资源、成本及连线的可布通性等方面进行权衡,选择合适的设计方案。在前面已经介绍过,数字系统的设计方法通常采用从顶向下的设计方法,也是基于芯片的系统设计的主要方法,它首先从系统设计入手,在顶层进行功能划分和结构设计,采用硬件描述语言对高层次的系统进行描述,并在系统级采用仿真手段,验证设计的正确性,然后再逐级设计在低层的结构。由于高层次的设计与器件及工艺无关,而且在芯片设计前就可以用软件仿真手段验证系统方案的可行性,因此自顶向下的设计方法,有利于在早期发现结构设计中的错误,
37、避免不必要的重复设计,提高设计的一次成功率。自顶向下的设计采用功能分割的方法从顶向下逐次进行划分,这种层次化设计的另一个优点是支持模块化,从而可以提高设计效率10。设计输入设计者将所设计的系统或电路以开发软件要求的某种形式表现出来,并送入计算机的过程称为设计输入。设计输入通常有以下几种方式。1)原理图输入方式2)硬件描述语言输入方式3)波形输入方式4)层次化设计输入方式4.1.4 项目编译(设计处理)这是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。 1) 语法检查和设计规则检查。 2)
38、 设计输入完成之后,在编译过程首先进行语法检验,如检查原理图有无漏连信号线,信号有无双重来源,文本输入文件中的关键字有无输入错误等各种语法错误,并及时列出错误信息 报告供设计者修改;然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制 并将编译报告列出,指明违反规则情况以供设计者纠正11。3) 逻辑优化和综合化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将 多个模块设计文件合并为一个网表文件,并使层次设计平面化(即展平)。4) 适配和分割确定优化以后的逻辑能否与器件中的宏单元和I0 单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。
39、如果整个设计不能装入一片器件时,可以将整个设计自动分(分割)成多块并装入同一系列的多片器件中去。划分(分割)工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行。划分时应使所需器件数目尽可能少,同时应使用于器件之间通信的引线端子数目最少。 布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。布线以后软件会自动生成布线报告,提供有关设计中各部分资源的使用情况等信息12。 生成编程数据文件项目编译的最后一步是产生可供器件编程使用的数据文件。对CPLD 来说,是产生熔丝图文件,即JEDEC 文件(电子器件工程联合制定
40、的标准格式,简称JED 文件);对于FPGA 来说,是生成位数据文件(BitsteramGeneration)。4.1.5 仿真和定时分析(项目校验)设计项目的校验包括设计项目的仿真(功能仿真)、定时分析两个部分。一个设计项目在编译完成后只能为项目创建一个编程文件,但并不能保证是否真正达到了用户的设计要求,如逻辑功能和内部时序要求等。所以在器件编程之前应进行全面模拟检测和仿真调试,以确保其设计项目在各种可能的情况下正确响应和正常工作,这就是项目校验(仿真调试)的必要性。 MAX+plus提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,再用专门软件进行仿真。如果发现了错误,则对
41、设计输入进行部分修改直至无误。仿真(Simulation) MAX+plusII Simulator(仿真器)具有很强的灵活性,可以控制对单个器件或多个器件设计的仿真。该模拟程序使用编译过程中生成的二进制模拟网表文件,对一个设计实现功能仿真和时序仿真。设计者可以直接用矢量输入语言来定义输入激励,也可以用MAX+plus Wave Editor 直接绘制波形。仿真结果在WaveEditor 或TextEdotor 窗口显示,也可作为波形或文本文件打印出来。定时分析MAX+plus Timi ngAnalyzer(定时分析程序)能按矩阵方式计算设计中点到点的延时,确定在器件引线端上要求的上升和保持
42、时间,估计最大时钟频率。MAX+plus设计输入工具与定时分析程序综合在一起,允许在设计文件中简单地指定起始和终点标记,或者用FloorplanEditor(平面图编辑器)来确定最短和最长的传播延时13。4.1.6 器件编程下载在以上步骤都正确实施并完全通过以后,我们就可以将我们设计的项目(最终的数据编程文件)下载到器件中去,然后加入实际的激励信号进行测试,在我们的目标系统中进行产品级使用了。如果还未最终达到我们的设计目的,则需返回以上步骤查找设计问题直至无误。至此,我们已经完整的完成了可编程逻辑器件的产品级设计流程,相信用户通过对以上步骤的了解,对可编程逻辑器件的设计有了一定的概念和了解。4
43、.1.7 可编程逻辑常用设计输入法介绍Quartus的设计输入方法有多种,主要包括文本设计输入、原理图输入、波形设计输入、层次设计输入和平面图设计输入等多种方式,另外,还可以利用第三方EDA工具生成的网表文件输入,该软件可接受的网表有EDIF格式、VHDL格式及Verilog 格式。设计者可根据实际情况灵活地使用最适合自己的设计方法14。4.2 模块仿真结果4.2.1 lucheng模块由仿真结果知车速的快慢决定了输入脉冲clk1的频率大小。当行驶路程小于3公里时,费用显示为10元。随着行驶路程变长,费用按照预定规律增加。当费用超过起步价后,模块输出p信号。当车辆停止(即rst为“1”)时,模
44、块数据清零,车辆开始运行,但还未开始计价(即rst为“0”,start为“0”)时,预置初始值,起步价10元。如下图4.1所示: 图4.1 lucheng模块仿真结果4.2.2 jijia模块由仿真结果可知车辆启动后,有秒脉冲clk2输入该模块。当行驶路程小于3公里或计费不超过10元时(即p为“0”),等待时间不折算成费用。随着行驶路程变长,超出起步路程或价格后(即p为“1”),车辆每暂停等待3分钟,费用增加0.5元。当车辆停止(即rst为“1”)时,模块数据清零,车辆开始运行(即rst为“0”,start为“0”)时,数据清零。如下图4.2所示: 图4.2 jijia模块仿真结果4.2.3 zhongjia模块由仿真结果可知车辆启动后,每来一个工作脉冲cp,模块就把输入的两部分费用加起来,计算出乘客需付的总费用。本设计可及费用范围为0-800.0元。如下图4.3所示: 图4.3 zhongjia模块仿真结果4.2.4 jinzhi模块由仿真结果可以看出车辆启动后,每来一个工作脉冲daclk,模块就把记录的路程数和费用数进行进制转换,把初始的二进制数转换成十进制数输出。如下图4.4所示:图4.4 jinzhi模块仿真结果4.2.5 xuantong模块由仿真结果可以看出每来一个选通地址c,模块就把
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922