毕业设计(论文)基于VHDL的计程车计价器设计.doc
《毕业设计(论文)基于VHDL的计程车计价器设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于VHDL的计程车计价器设计.doc(32页珍藏版)》请在三一办公上搜索。
1、目 录摘 要IABSTRACTII目 录III前 言1第一章 概述2第一节 设计背景2第二节 EDA发展概况3一、EDA系统框架结构6二、系统级设计7第三节 EDA技术基本特征7一、“自顶向下”的设计方法8二、ASIC设计8三、硬件描述语言9四、VHDL的优点9第四节 本章小结10第二章 出租车计费系统的设计11第一节 出租车计费目标11第二节 基本设计思想11第三节 设计方案比较12第四节 本章小结14第三章 基于VHDL的出租车计费系统的实现15第一节 VHDL相关介绍15一、FPGA简介15二、部分模块设计16第二节 系统框图及各功能模块的实现及主程序17一、程序流程图17二、系统总体框
2、图18三、计费模块的实现19四、十进制转换模块的实现20五、车费路程显示模块的实现21六、八进制选择模块实现22七、显示译码模块实现23第三节 本章小结24第四章 系统仿真24第一节 软件Altera Max+plus介绍24一、软件功能简介24三、MAX+plus II 可编程设计流程25四、项目编译(设计处理)26五、仿真和定时分析(项目校验)27六、器件编程下载27七、可编程逻辑常用设计输入法介绍28第二节 模块仿真结果28一、十进制转换模块的仿真结果28二、计费模块的仿真结果29三、车费路程显示模块的仿真结果29四、八进制选择模块结果验证29五、显示译码模块结果验证30第三节 本章小结
3、30第五章 结论31致 谢32参考文献33附 录34一、英文原文34二、中文翻译40三、源程序代码45计费程序模块程序45十进制转换模块程序47车费路程显示模块程序49八进制选择模块程序50显示译码模块程序50第一节 出租车计费目标本文中出租车的计费工作原理一般分成3个阶段:车起步开始计费。首先显示起步价(本次设计起步费为7.00元),车在行驶3 km以内,只收起步价7.00元。车行驶超过3 km后,按每公里2.2元计费(在7.00元基础上每行驶1 km车费加2.2元),车费依次累加。行驶路程达到或超过9 km后(车费达到20元),每公里加收50%的车费,车费变成按每公里3.3元开始计费。车暂
4、时停止(行驶中遇红灯或中途暂时停车)不计费,车费保持不变。若停止则车费清零,等待下一次计费的开始。第二节 基本设计思想一、根据出租车计费原理,将出租车计费部分由5个计数器来完成分别为counterA,counterB,counterC,counterD,counterE。计数器A完成车费百位计数。计数器B完成车费十位和个位计数器C完成车费角和分。计数器D完成计数到30(完成车费的起步价)。计数器E完成模拟实现车行驶100m的功能。二、行驶过程中车费附加50%的功能:由比较器实现。三、车费的显示:由动态扫描电路来完成。用专用模块来实现,完成数据的输入即动态数据的显示。四、通过分析可以设计出系统的
5、顶层框图如图2.1所示:显示输出基本速率起/停开关车速摇杆车速控制模块里程动态显示器计费动态显示器 图2.1 系统的顶层框图第三章 基于VHDL的出租车计费系统的实现二、部分模块设计 FPGA部分可划分成两个模块,其中正弦波发生器模块又可细分成几个小模块。 锁存器设计 锁存器用来将单片机送来的频率数据锁存稳定在FPGA中,可以用片内的锁存器资源(或用触发器)来构成。 运算器设计 运算器是用来将频率数据转换成正弦波点与点之间的定时数据。该运算器实际上最终可转换成一除法器。该除法器描述如下: VECTOR(WIDTH R1 DOWNTO 0); END COMPONENT; 上述描述实际上是调用了
6、Altera公司的参数化模块库(LPM)中的一个元件。元件描述后,只要在程序中用Generic map和port map语句映射该元件即可。所要注意的是,上述口信号remainder是numerator和denominator模运算的结果,所以应将remainder与denominator2相比较,实际结果应在比较的基础上决定加1还是不加1。 定时器设计 定时器根据运算器传来的定时数据定时。它可以通过对基准时钟计数来实现,当定时时间一到,就触发波形的输出。 设计中采用了两个计数模块来同时计数,一个模块计数时钟的上边沿,而另一模块则计数时钟的下边沿。这样相当于使系统时钟频率提高了一倍,充分利用了
7、系统资源。 波形输出 波形输出是当定时器满足定时要求触发后就输出此时的正弦值,多个点的触发输出就形成了一个正弦波。 为节省芯片资源,这部分求某时正弦值的功能不采用构造运算器来算出正弦值,而是利用查表结构。象Xilinx公司FPGA芯片则可以利用CLB块来配置RAM或直接利用Logiblox来生成。还有象Altera公司的Flex10k系列就用查找表结构(LUT)来构建片内ROM或RAM。在工程文件中创建RAM或ROM块以后,可以通过将各时刻的正弦值(以ASCII字符表示)写进MIF文件(初始化文件)中,从而存储在RAM或ROM块中。在定时器触发后生成该时的地址,通过查询该RAM或ROM块就可输
8、出该时得正弦值。 第二节 系统框图及各功能模块的实现及主程序一、程序流程图车开始启动车费、里程清零车跑完一次后里程不计数里程显示车费显示里程计数计费器计数YESYESYESNONoO车启动图3.1程序流程图二、系统总体框图下图所示为系统的总体框图,该系统主要由负责汽车启动,停止,暂停,加速等功能的计费模块,负责把车费和路程转化为4位10进制数的转换模块,负责显示车费和路程的显示模块,以及复位模块和显示译码模块等5个模块组成。图3.2 系统总体框图三、计费模块的实现计费模块如图3.2所示,输入端口START、STOP、PAUSE、JS分别为汽车起动、停止、暂停、加速按键。LUC、CHEFEI分别
9、表示汽车行驶的路程及相应的车费。图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:=num+1;end if;四、十进制转换模块的实现如图3.3所示,该模块把车费和路程转化为4位十进制数,daclk的频率要比clk快得多图3.3if(comb1a=9 and comb1b=9 and comb1c=9)thencom
10、b1a:=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五、车费路程显示模块的实现如图3.5所示,通过该八进制模块,车费和路程将被显示出来图3.5 车费路程显示模块begin comb:=c; case comb is when”000”=d=a1; dpd=a2; dpd=a3; dpdnull;end case;
11、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” ;end case;end process; end rtl; 第三节 本章小结本章首先对于主要使用的软件maxplus进行了一个简单的介绍,然后交代了总设计的框图以及流程图,给阅读者以一个大体的印象。 从3.4节开始,分5个模块详
12、细介绍了主要程序,一个出租车计费系统的程序在本章全部交待完毕。第四章 系统仿真第一节 软件Altera Max+plus介绍一、软件功能简介MAX+plus(Multiple Array and Programming Logic User System)开发工具是美国Altera 公司推出的一种EDA 工具,具有灵活高效,使用便捷,易学易用的特点。Altera 公司在推出各种CPLD 和FPGA 的同时也在不断地升级相应的开发工具软件,已从早期的第一代A+plus、第二代MAX+plus 发展到目前的第三代MAX+plus II 和第四代Quartus。使用MAX+plus 软件,设计者无需
13、精通器件内部的复杂结构,只需熟悉所用的设计输入工具,如硬件描述语言、原理图等进行输入,MAX+plus自动将设计转换成目标文件下载到器件中去。MAX+plus开发系统具有以下特点。多平台系统 MAX+plus的设计输入、处理与校验功能一起提供了全集成化的可编程开发工具,可以加快动态调试,缩短开发周期。开放的界面 MAX+plus可与其它工业标准的设计输入、综合和校验工具链接。具有EDIF,VHDL,Verilog HDL 以及其他的网表接口,便于与许多公司的EDA 工具接口,包括Cadence,Mentor,Synopsys,Synplicity,Viewlogic等公司提供的EDA 工具的接
14、口。模块组合式工具软件MAX+plus具有一个完整的可编程逻辑设计环境,包括设计输入、设计处理、设计校验仿真和下载编程四个模块,设计者可以按设计流程选择工作模块。与结构无关 MAX+plus支持Altera 的Classic、MAX5000、MAX7000、FLEX8000、FLEXlOK 等可编程器件系列,提供工业界中唯一真正与结构无关的可编程逻辑设计环境。硬件描述语言 MAX+plus支持各种HDL 硬件设计输入语言,包括VHDL、VerilogHDL 和Altera 的硬件描述语言AHDL。二、可编程逻辑器件设计流程简介可编程逻辑器件CPLD/FPGA 的设计是指利用开发软件和编程工具对
15、器件进行开发的过程。可编程逻辑器件的设计流程包括设计准备、设计输入、设计处理(项目编译)、仿真和定时分析、器件编程下载(设计实现)四个步骤。三、MAX+plus II 可编程设计流程设计准备在对可编程逻辑器件的芯片进行设计之前,首先要进行方案论证、系统设计和器件选择等设计准备工作。设计者首先要根据任务要求,如系统所完成的功能及复杂程度,对工作速度和器件本身的资源、成本及连线的可布通性等方面进行权衡,选择合适的设计方案。在前面已经介绍过,数字系统的设计方法通常采用从顶向下的设计方法,也是基于芯片的系统设计的主要方法,它首先从系统设计入手,在顶层进行功能划分和结构设计,采用硬件描述语言对高层次的系
16、统进行描述,并在系统级采用仿真手段,验证设计的正确性,然后再逐级设计在低层的结构。由于高层次的设计与器件及工艺无关,而且在芯片设计前就可以用软件仿真手段验证系统方案的可行性,因此自顶向下的设计方法,有利于在早期发现结构设计中的错误,避免不必要的重复设计,提高设计的一次成功率。自顶向下的设计采用功能分割的方法从顶向下逐次进行划分,这种层次化设计的另一个优点是支持模块化,从而可以提高设计效率。设计输入设计者将所设计的系统或电路以开发软件要求的某种形式表现出来,并送入计算机的过程称为设计输入。设计输入通常有以下几种方式。1)原理图输入方式2)硬件描述语言输入方式3)波形输入方式4)层次化设计输入方式
17、四、项目编译(设计处理)这是器件设计中的核心环节。在设计处理过程中,编译软件将对设计输入文件进行逻辑化简、综合和优化,并适当地用一片或多片器件自动进行适配,最后产生编程用的编程文件。 语法检查和设计规则检查 设计输入完成之后,在编译过程首先进行语法检验,如检查原理图有无漏连信号线,信号有无双重来源,文本输入文件中的关键字有无输入错误等各种语法错误,并及时列出错误信息 报告供设计者修改;然后进行设计规则检验,检查总的设计有无超出器件资源或规定的限制 并将编译报告列出,指明违反规则情况以供设计者纠正。 逻辑优化和综合化简所有的逻辑方程或用户自建的宏,使设计所占用的资源最少。综合的目的是将多个模块设
18、计文件合并为一个网表文件,并使层次设计平面化(即展平)。 适配和分割确定优化以后的逻辑能否与器件中的宏单元和I0 单元适配,然后将设计分割为多个便于适配的逻辑小块形式映射到器件相应的宏单元中。如果整个设计不能装入一片器件时,可以将整个设计自动分(分割)成多块并装入同一系列的多片器件中去。划分(分割)工作可以全部自动实现,也可以部分由用户控制,还可以全部由用户控制进行。划分时应使所需器件数目尽可能少,同时应使用于器件之间通信的引线端子数目最少。 布局和布线布局和布线工作是在设计检验通过以后由软件自动完成的,它能以最优的方式对逻辑元件布局,并准确地实现元件间的互连。布线以后软件会自动生成布线报告,
19、提供有关设计中各部分资源的使用情况等信息。 生成编程数据文件项目编译的最后一步是产生可供器件编程使用的数据文件。对CPLD 来说,是产生熔丝图文件,即JEDEC 文件(电子器件工程联合制定的标准格式,简称JED 文件);对于FPGA 来说,是生成位数据文件(BitstreamGeneration)。五、仿真和定时分析(项目校验)设计项目的校验包括设计项目的仿真(功能仿真)、定时分析两个部分。一个设计项目在编译完成后只能为项目创建一个编程文件,但并不能保证是否真正达到了用户的设计要求,如逻辑功能和内部时序要求等。所以在器件编程之前应进行全面模拟检测和仿真调试,以确保其设计项目在各种可能的情况下正
20、确响应和正常工作,这就是项目校验(仿真调试)的必要性。MAX+plus提供的设计校验过程包括仿真和定时分析,项目编译后,为确保设计无误,再用专门软件进行仿真。如果发现了错误,则对设计输入进行部分修改直至无误。仿真(Simulation) MAX+plusII Simulator(仿真器)具有很强的灵活性,可以控制对单个器件或多个器件设计的仿真。该模拟程序使用编译过程中生成的二进制模拟网表文件,对一个设计实现功能仿真和时序仿真。设计者可以直接用矢量输入语言来定义输入激励,也可以用MAX+plus Wave Editor 直接绘制波形。仿真结果在WaveEditor 或TextEditor 窗口显
21、示,也可作为波形或文本文件打印出来。定时分析(TimingAnalysis) MAX+plus Timi ngAnalyzer(定时分析程序)能按矩阵方式计算设计中点到点的延时,确定在器件引线端上要求的上升和保持时间,估计最大时钟频率。MAX+plus设计输入工具与定时分析程序综合在一起,允许在设计文件中简单地指定起始和终点标记,或者用FloorplanEditor(平面图编辑器)来确定最短和最长的传播延时。六、器件编程下载在以上步骤都正确实施并完全通过以后,我们就可以将我们设计的项目(最终的数据编程文件)下载到器件中去,然后加入实际的激励信号进行测试,在我们的目标系统中进行产品级使用了。如果
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 VHDL 计程车 计价器 设计

链接地址:https://www.31ppt.com/p-3030805.html