eda课程设计vhdl语言的简易出租车计费器设计.doc_第1页
eda课程设计vhdl语言的简易出租车计费器设计.doc_第2页
eda课程设计vhdl语言的简易出租车计费器设计.doc_第3页
eda课程设计vhdl语言的简易出租车计费器设计.doc_第4页
eda课程设计vhdl语言的简易出租车计费器设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

唐 山 学 院EDA技术课 程 设 计 题 目 简易出租车计费器设计 系 (部) 信息工程系 班 级 12电本 班 姓 名 学 号 指导教师 2015 年 7 月 6 日至 7 月 12 日 共 1 周2015年 7 月 8 日课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计成果(60分)硬件调试设计说明书总成绩(100分)提问(答辩)问题情况综合评定 指导教师签名: 年 月 日目录1 引言12 计费器的设计22.1 设计内容22.2设计要求22.3 设计原理22.4 各模块的设计32.4.1 分频模块32.4.2 计程模块42.4.3 计费模块42.4.4 顶层模块53 仿真64 引脚的锁定75总结8参考文献9附录10课程设计说明书1 引言出租车计费器是出租车营运收费的智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。在科技高度发展的今天,集成电路和计算机应用得到了高速发展。本设计就采用VHDL描述语言,设计出租车计价系统的软件结构,通过Quartus9.0软件下进行仿真,再在试验箱进行硬件仿真,实现了模拟的简易的出租车计费器。编写程序所用的VHDL语言全名为Very-High-Speed Integrated Circuit Hardware Description Language,诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言 。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。VHDL和Verilog作为IEEE的工业标准硬件描述语言,得到众多EDA公司支持,在电子工程领域,已成为事实上的通用硬件描述语言。对程序进行编译及仿真用到的的Quartus9.0软件是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus9.0可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片平面布局连线编辑;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;自动定位编译错误;此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。2 计费器的设计2.1 设计内容(1)设计一个简易的出租车计费系统,实现计价功能,计费标准为按行程里程收费,起步价为6.00元,当里程小于3公里时,按照起价计费,车行超过3公里后在按1.2元/公里收费。(2)实现车辆行驶的模拟:能模拟汽车的启动,停止,暂停等状态。(3)计费器显示部分设计:用LED数码管实时显示车费和汽车行驶里程,用两位数字显示汽车行驶里程,显示方式为“XX”,单位为km。计程范围为099km,计程分辨率为1km;用四位数字显示总费用,显示方式为“XX.X”,单价为元。计价范围为099.9元,计价分辨率为0.1元。(4)此计费器要设有一个由司机控制的整体复位控制,设定车轮转一圈输出一个脉冲,100个脉冲对应1公里。2.2设计要求(1)根据任务要求确定电路各功能模块(2)写出设计程序(3)给出时序仿真结果 (4)实现硬件调试2.3 设计原理设计系统的输入信号:时钟脉冲clk,开始计费信号start,复位信号rst,暂停信号stop。输出信号:显示总费用cost0 cost3,显示计程km0和km1。设计两个脉冲cost_clk和mile_clk,其中cost_clk通过分频模块分成8个clk上升沿的脉冲,用来计费,mile_clk是96个clk上升沿的脉冲,用来计程。两个控制输入开关start、stop;控制过程为:start作为计费开始开关,当start为高电平时,stop为低电平时,系统开始根据输入的情况计费。当出租车开始行驶时,mile_clk脉冲到来,进行行驶计程;如果行驶路程小于3公里,则费用显示为起步价6.00元,如果行程大于3公里,则cost_clk开始工作,每来一脉冲则加在起步价上加0.1元。如需停车等待,就把stop变为高电平,恢复行驶时,把stop变为低电平,继续计程与计费。当按下rst键,计程与计费显示都清零。该设计有三个模块:分频模块、计程模块、计费模块。系统结构框图如图2-1所示:图2-12.4 各模块的设计2.4.1 分频模块为方便计费和计程,需要对clk脉冲进行分频。因为计费是1.2元每公里,所以0.1元约为83.3米,设计要求一个脉冲是10米,所以把cost_clk分频成每8个clk上升沿对应一个cost_clk上升沿;mile_clk分频成每96个clk上升沿对应一个mile_clk上升沿。系统模块图2-2如下:图2-22.4.2 计程模块计程模块的功能是计算并输出出租车行驶公里数,及输出使能信号en来表示是否大于三公里。当计费信号start为高电平且复位信号rst为低电平时,mile_clk每来一个上升沿,计程器低位k0就加1,当k0满9时,进位,高位k1加1,k0清零,k1满9清零,因此计程器的计程范围是099km,满量程后自动归零。当行驶里程大于3km时,使能信号en变为高电平,小于3km时en为低电平。stop为暂停信号,当stop为高电平时,计量模块停止计数并显示当前里程数。系统模块图2-3如下:图2-32.4.3 计费模块计费模块的功能是根据前两个模块的输出,根据公里数是否大于3公里,分别计费。定义c2、c1、c0分别表示费用的十元、元、角的输出。当en为低电平即行程在3公里以内时,c2c1c0显示为0000 0110 0000,代表起步价6.0元;当en为高电平即行程超过3公里时,超过的里程按1.2元每公里计费,每来一个cost_clk上升沿,c2c1c0在6.0元的基础上以0.1元为基数进行累加。当暂停信号stop为高电平时,c2c1c0停止计费,并显示当前费用。最后把c2c1c0信号给cost2cost0,送至数码管译码显示。系统模块图2-4如下:图2-42.4.4 顶层模块将以上三个模块按设计要求组合在一起,连接各个原件的输入和输出,得到顶层模块。系统模块图2-5如下。图2-53 仿真程序编译成功后,进行仿真仿真结果如图3-1图3-1当clk脉冲信号到来后,开始里程计数和行驶计费。当行驶里程小于3公里时,按起步价6.0元收费;当行驶里程超过3公里,则超出里程按每千米1.2元计费。当stop为高电平时,里程计数和计费均停止,显示当前的里程数和最后的总费用。当rst为高电平时所有数值清零。4 引脚的锁定km1、km0和cost2、cost1、cost0为输出,分别表示行驶里程数和最后的总费用,用实验箱上的静态数码管显示。clk为1Hz的脉冲信号,start、rst,stop分别表示开始计费,复位和暂停计费。具体引脚锁定如图4-1:图4-15总结经过这次课设,我们学到的不仅是知识,更多的是团队和合作。它不仅仅让我们综合那些理论知识运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥的巨大潜能。我们再次熟悉和增强了对VHDL语言的基本知识,熟悉利用VHDL语言对 常用的的组合逻辑电路和时序逻辑电路编程,把编程和实际结合起来。VHDL硬件描述语言打破了硬件和软件设计人员之间互不干涉的界限,可以使用语言的形式来进行数字系统的硬件结构、行为的描述,直接设计数字电路硬件系统。通过编程、下载后,该芯片已经具备了原来需要使用复杂的数字电路实现的功能;更加了解和加深了对编制和调试程序的技巧,进一步提高了上机动手能力,培养了使用设计综合电路的能力,养成了提供文档资料的习惯和规范编程的思想。在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。这次的课设,让我们把课本上所学到的知识,应用到实践中,使我们更加熟练的掌握了这些知识,对于以后的学习有很大的帮助。参考文献1阎石,数字电子技术基础,高等教育出版社,20052VoleiA.Pedroni,VHDL数字电路设计教程,电子工业出版社,20103潘松,黄继业,EDA技术实用教程,科学出版社,2010.64刘江海,EDA技术课程设计,华中科技大学出版社,2009.55毕满清,电子技术实验与课程设计,机械工业出版社,20096焦素敏.EDA应用技术.清华大学出版社,2002.4 附录library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity che isport(clk:in std_logic; start:in std_logic; rst:in std_logic; stop:in std_logic; cost0,cost2:out std_logic_vector(3 downto 0); cost1:out std_logic_vector(7 downto 0); km0,km1:out std_logic_vector(3 downto 0);end;architecture bhv of che issignal mile_clk,cost_clk:std_logic;signal c0,c1,c2:std_logic_vector(3 downto 0);signal k0,k1:std_logic_vector(3 downto 0);signal en0:std_logic;signal count1:integer range 0 to 8;beginU1:process( rst,clk,start) begin if rst=1 then mile_clk=0; elsif start=0then mile_clk=0; elsif stop=1 then count1=count1; elsif clkevent and clk=1 then count1=count1+1; if count1=8 then count1=0;mile_clk=1; else mile_clk=0; end if;end if; end process;U2:process(rst,start,mile_clk) variable k :integer range 0 to 12; begin if rst=1 then k0=0000; k1=0000; elsif start=0 then en000000011 then en0=1; end if; if k=12 then k:=0; k0=k0+1; if k0=1001 then k0=0000; k1=k1+1; if k1=1001 then k1=0000; end if; end if; end if; end if; km0=k0; km1=k1; end process;cost_clk= mile_clk when en0=1else 0;U3:process( rst,start,cost_clk,en0) begin if rst=1 then c0=0000;c1=0000; c2=0000; elsif start=1and en0=0then c0=0000;c1=01

温馨提示

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

评论

0/150

提交评论