出租车计费器EDA2.doc_第1页
出租车计费器EDA2.doc_第2页
出租车计费器EDA2.doc_第3页
出租车计费器EDA2.doc_第4页
出租车计费器EDA2.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南 京 理 工 大 学EDA设计(II)实验报告作 者:学 号:学院(系):自动化学院专 业:自动化标 题 出租车计费器 指导老师: 实验日期: 2015年9月 目 录1 绪论12 系统总体设计12.1 系统设计思想12.2 系统功能概述12.3 系统总体组成结构23 系统各模块详细设计23.1 计时模块23.2 按键控制模块23.3 动态显示模块33.4 里程和车费计算模块43.5 我的部分44 系统调试64.1 系统仿真64.2 系统实际验证64.3 调试过程中遇到的问题与解决方法65 总结与心得体会7致谢8参 考 文 献8出租车计费器1 绪论EDA是电子设计自动化(Electronic Design Automation)的缩写,发展于20世纪90年代。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。本次EDA设计使用MAX+plus II实验开发系统,学习并掌握VHDL硬件描述语言的基本语法以及设计方法和思想,将已学过的数字电子设计知识综合运用于电子系统的设计中,掌握运用VHDL 设计电子系统的流程和方法,加强和培养自己对电子系统的设计能力。综合设计的任务是用一周的时间,在EDA软件MAX+plus II上用VHDL语言设计完成一个电子技术综合问题,小组成员分工,负责各个子模块的设计,最后将各个模块整合起来,连接整体电路,分配引脚,下载到实验班上进行测试。2 系统总体设计2.1 系统设计思想用VHDL语言设计出符合功能要求的的出租车计费器系统,完成设计后使用系统实验箱下载验证。2.2 系统功能概述1、 计费功能:计费标准为按行驶里程收费,起步价为11元,车行3公里后每公里1.4元,车停止时不计费;2、 实现模拟功能:能模拟汽车启动、暂停及停止状态;3、 实现显示功能:能在数码管上显示出公里数及总费用。2.3 系统总体结构整个计费系统的结构如下图所示,其计时模块负责对实验板上的时钟信号进行分配,产生合适的计数脉冲,供里程计算模块和车费计算模块的技术。而显示模块则将前两者计算得到的结果显示在数码管上。开关控制模块则接受实验板上的开关信号,模拟出租车的起停。 3 系统各模块详细设计3.1 计时模块计时模块的时钟源为试验箱的CP2时钟,频率为1024 Hz,在VHDL中经过计数十分频得到模拟的出租车百米行驶计数时钟。其计数的逻辑比较简单,不再详细列出。3.2 按键控制模块在按键控制模块中我们引入了两个拨码开关K1和K2,其中K1是启动和停止开关,K2是暂停开关,两个按键向上拨逻辑值均为1,向下拨逻辑值均为0。为了方便控制,我们引入了state这个两位的二进制变量,用它的值来标记出租车的不同状态,其控制逻辑如下:键值逻辑结果K1=1,K2=1出租车处在停止状态,但此次载客未结束,state=”00”K1=1,K2=0出租车处于载客运行计费状态,state=”11”K1=0,K2任意出租车处于载客结束的停止状态,state=”01”或”10”(本设计里默认为01)按键控制模块程序如下:control:PROCESS(start,pause) beginif(start=0)thenstate=01;elsif(pause=1)thenstate=00;elsif(pause=0)then state=8)thentmp1:=0;end if;case tmp1 iswhen 0 = sel data data data data data data data data data datanull;end case;3.4 里程和车费计算模块在里程和车费计算模块中,只需要完成一个工作计数。里程的计算与之前所做数字钟的计数没有什么本质区别,由于每个时钟上升沿只要在原里程的基础上加0.1,故计算的逻辑就是从低位(十分位)到高位(百位)层层判断,每次加“1”,满9归零即可。而对于车费的计算,还需要对逻辑进行如下调整:1.由于里程数小于3公里的情况下,车费要保持11元不变,这一要求可以用if语句进行限制;2.车费的计算是每100公里1.4元,故在里程大于3公里的情况下每接受到计时模块时钟上升沿就要在原有车费基础上加1.4即可。3.5 我的部分详细介绍我主要负责control,clkout和milecal等进程的编写。1、control进程主要用于控制开关的开始和暂停状态,当开始开关打为关闭时即start为0时,将state状态赋为01,当暂停开关打开时即pause赋为1时,将state状态赋为00,当暂停开关关闭时即pause赋为0时,state赋为11。代码已在之前给出。2、clkout进程经过计数十分频得到模拟的出租车百米行驶计数时钟。clkout:PROCESS(clk) variable tmp:integer range 0 to 105; beginif(clkevent and clk=1 )then tmp:=tmp+1; if(tmp=100)then tmp:=0; clk_speed=01001)thenmile_tenth=01001)then mile_unit=01001)thenmile_decade=01001)thenmile_hp=00000;else mile_hp=mile_hp+00001; end if; else mile_decade=mile_decade+00001; end if;elsemile_unit=mile_unit+00001;end if; elsemile_tenth=mile_tenth+00001;end if; elsif(state=00)thenmile_tenth=mile_tenth;mile_unit=mile_unit;mile_decade=mile_decade;mile_hp=mile_hp; else mile_tenth=00000; mile_unit=00000; mile_decade=00000; mile_hp=00000; end if; end if; end PROCESS;4 系统调试4.1 系统仿真我们将程序整合在一起,并未进行仿真校验,而是直接下载到实验箱上验证。4.2 系统实际验证将程序整合完成以后,我们进行了编译与调试,多次修改完善,然后对照实验指导书进行管脚分配。在多次修改尝试后,最终在试验箱上成功完成了出租车计费器系统的相关要求,实现了计费功能、模拟功能和显示功能,即实现了开始时制定的系统设计要求。4.3 调试过程中遇到的问题与解决方法4.3.1 数码管显示问题在进行基础实验时我们发现数码管显示不能按照我们预先的设想,随后我们利用资料对实验箱的数码管进行了研究,发现基础实验中数码管采用的是静态显示,由于本系统中数码管各位需要显示不同的数字,最后我们选定了动态扫描显示的方法,问题得到了解决。4.3.2 取模运算问题在系统设计中期,我们本准备采用公式计算的方法来得到车费,即将里程数的各位(mile_tenth,mile_unit,mile_decade,mile_hp)通过函数CON_INTEGER()从8位二进制数转化为整型数,然后对各位加权求和得到整型数表示的里程数,从而将其带入公式后,计算得到对应车费,再在用函数REM()分离出车费的各位,分别显示。然而在实际编程中我们发现,使用REM()函数需要添加头文件IEEE.NUMERIC_STD。在QUARTUS II编译环境下可以成功添加并编译,然而在MAX+PLUS II下却缺少这个头文件,多次尝试添加失败后,我们放弃了计算法,采用另外的方法来实现显示目的,即改为采用每次加1.4元的方法实现计费,最终取得了成功。4.3.3 调试中的问题针对器件的引脚配置不能马虎,否则在下载到实验箱上时会出现显示位的错乱,在实际调试中我们便遇到了这样的问题,随后进行了分析纠正。5 总结与心得体会本次EDA实验是运用VHDL语言的相关课程设计,在第一节课中,吴老师给我们介绍了VHDL语言的特点、基本结构以及基本语句等,在第一节课中我本以为VHDL和我们最常用的C语言差不多只是基本的形式不同,其实两者有本质的不同,一个是软件描述语言,一个硬件描述语言。当我真正上手自己编写程序的时候发现虽然所用到的逻辑没有变,但是由于对基本结构和形式不熟悉导致经常出现小错误,在熟悉过后才慢慢适应。我们组设计的是出租车计费器,期间遇到最大的困难就是计费的函数无法直接调用,后来我们用了较为繁琐的方法将计费过程写成了feecal的进程从而解决了这个问题。总体来说我通过这次EDA设计,了解了系统自顶向下的层次化设计方法,基本掌握了VHDL 语言的结构与语法并且最终完成了选择的课题设计,我相信通过以后更加深入地学习和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论