ImageVerifierCode 换一换
格式:DOCX , 页数:15 ,大小:134.86KB ,
资源ID:27106400      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/27106400.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(EDA课程设计报告出租车计价器.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

EDA课程设计报告出租车计价器.docx

1、EDA课程设计报告出租车计价器EDA课程设计报告-出租车计价器课 程 设 计课程设计名称: 出租车计价器 专 业 班 级 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 1 设计任务及要求出租车计价器根据乘客乘坐汽车行驶距离和等候时间的多少进行计价,并在行程中同步显示车费值。从起步开始,行程3公里内,且等待累计时间2分钟内,起步费10元;3公里以外以每公里1.6元计费,等待累计时间2分钟外以每分钟1.5元计费。并能显示行驶公里数、等待累计时间、总费用。设计的主要技术指标:(1)计价范围:0999.9元 计价分辨率:0.1元(2)计程范围:099公里 计程分辨率:1公里(3)

2、计时范围:059分 计时分辨率:1分 本次设计中假设出租车的速度传感器具有出租车每行驶1Km提供1000个脉冲信号的特性。当行驶速度小于等于6KM/h时为等待。本设计的最终任务是显示出租车的等待时间和行驶里程,并计算出所需费用。根据要求需要进行如下分工,首先要有一个分频模块()产生系统工作用的基准信号1HZ,供系统中的有关模块计时用。其次要有一个判断等待与否的模块(DDPB),再者就是要有计时和计程模块(和),最后要有计费模块和显示译码模块(和)。2设计原理及总体框图(1)设计总体框图 图总设计框图(2)设计总原理图 图 设计总原理图设计总原理:测控FPGA芯片通过采集速度传感器脉冲信号WCL

3、K进行行驶里程计算,利用外部脉冲信号CLK1产生标准时钟信号,用来计算等待时间,最后根据行驶里程、等待时间来计算计价值。并用译码电路显示行驶里程、等待时间和计价值。3 程序设计1VHDL语言简单介绍 VHDL语言(VHSIC Hardware Description Language,甚高速集成电路硬件描述语言)是一种设计、仿真、综合的标准硬件描述语言,是对可编程逻辑器件进行开发与设计的重要工具,其优点是:支持自上而下和基于库的设计,支持范围广,具有多层次描述系统硬件功能的能力。VHDL语言已成为IEEE的一种工业标准,是实现信息系统硬件开发所必备的知识和技能。VHDL程序结构的显著特点是,任

4、何一个工程设计或称设计实体(可以是一个门电路、一个芯片、一块电路板乃至整个系统)都可以分成内外两个部分,外面的部分称为可视部分,用实体来说明端口特性;里面的部分称为不可视部分,用结构体来说明其内部功能和算法,由实际的功能描述语句组成。2、模块程序及相应说明(1)分频器模块 -FPQ.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY FPQ IS PORT(CLK: IN STD_LOGIC; -CLK=100HZ CLK1

5、HZ: OUT STD_LOGIC); -CLK1HZ=1HZEND ENTITY FPQ;ARCHITECTURE ART OF FPQ IS SIGNAL CNT50: INTEGER RANGE 0 TO 49; SIGNAL CLK1: STD_LOGIC; BEGIN PROCESS(CLK) BEGIN IF CLKEVENT AND CLK=1 THEN IF CNT50=49 THEN CNT50=0; CLK1= NOT CLK1; -进行100分频 ELSE CNT50=CNT50+1; END IF; END IF; CLK1HZ=CLK1;END PROCESS;END

6、 ART;由于现实我们只有某些频率的信号,而可能没有我们需要的频率的信号,因此我们需要用到分频器来用已有频率的时钟信号来产生我们需要的频率的时钟信号。本实验是将100HZ的信号分频后产生1HZ的基准时钟信号。(2)等待判别模块-等待判别模块DDPB.VHDLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DDPB IS PORT(START,WCLK,CLK1HZ: IN STD_LOGIC; DDBZ: OUT STD_LOG

7、IC);END DDPB;ARCHITECTURE ART OF DDPB IS SIGNAL T1min :STD_LOGIC; SIGNAL WCLK1: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGINPROCESS(START,CLK1HZ) -产生1分钟的周期性信号 VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF START=1 THEN CNT60:=00000000; T1min=0; ELSIF CLK1HZEVENT AND CLK1HZ=1 THEN IF CNT60=00111100 TH

8、EN -CNT60=60 T1min=1; CNT60:=00000000; ELSE CNT60:=CNT60+1; T1min=0; END IF; END IF;END PROCESS;PROCESS(START,WCLK,T1min) -对WCLK进行一分钟内上升沿的计算 BEGIN IF START=1 THEN WCLK1=00000000; ELSIF WCLKEVENT AND WCLK=1 THEN IF T1min=1 THEN WCLK1=00000000; ELSE WCLK1=WCLK1 +1; END IF; END IF;END PROCESS;PROCESS(W

9、CLK1,T1min) -当速度等于零时等待 BEGIN IF T1minEVENT AND T1min=1 THEN IF WCLK1=00000010” DDBZ=1; ELSE DDBZ=0; END IF ;END IF;END PROCESS;END ART;汽车启动开始计价后,等待时间和行驶时间的价格不一样,因此要产生等待时间的标志,本设计根据WCLK脉冲和时间信号CLK1HZ,来判断汽车行驶的速度是否小于等于6KM,如果是,则产生等待标志。(3)等待时间计算模块-等待计时模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD

10、_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY DDJS IS PORT(START,CLK1HZ,DDBZ: IN STD_LOGIC; DDSJ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); SJBZ: OUT STD_LOGIC);END DDJS;ARCHITECTURE ART OF DDJS IS SIGNAL T1min :STD_LOGIC; SIGNAL FS,FG: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGINPROCESS(START,CLK1HZ) -产生1分

11、钟的周期性信号 VARIABLE CNT60: STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF START=1 THEN CNT60:=00000000; T1min=0; ELSIF CLK1HZEVENT AND CLK1HZ=1 THEN IF CNT60=00111100 THEN T1min=1; CNT60:=00000000; ELSE CNT60:=CNT60+1; T1min=0; END IF; END IF;END PROCESS;PROCESS(START,DDBZ,T1min) BEGIN IF START=1 THEN FS=0000;

12、 FG=0000; ELSIF T1minEVENT AND T1min=1 THEN -一分为单位计算等待时间 IF DDBZ=1 THEN -有等待标志信号产生时开始等待时间的计算 IF FG=9 THEN FG=0000; IF FS=5 THEN FS=0000;-当时间为59分钟时清零 ELSE FS=FS+1; END IF; ELSE FG=FG+1; END IF;END IF;END IF;END PROCESS; DDSJ(7 DOWNTO 4)= FS; DDSJ(3 DOWNTO 0)= FG;END ART;根据产生的等待标志进行计时计算,当等待标志DDBZ=1时,利

13、用产生的分脉冲进行以分为单位的等待时间计算。(4)里程计算模块-里程计算模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY LCJS IS PORT(START,WCLK,DDBZ: IN STD_LOGIC; LCZ:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); LCBZ: OUT STD_LOGIC);END LCJS;ARCHITECTURE ART OF LCJS IS SIGNAL QMZ :S

14、TD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL FS,FG: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS(START,WCLK) VARIABLE MZ: STD_LOGIC_VECTOR(11 DOWNTO 0); BEGINMZ:=“000000000000”;QMZ:= “00000000”; IF WCLKEVENT AND WCLK=1THEN MZ:=MZ+1; IF MZ:= “001111101000” QMZ=3 THEN LCBZ=1; -当行驶里程大于3Km时产生标志信号 END IF; END IF;

15、END IF; END PROCESS;LCZ=QMZ;END ART;当DDBZ=0时,汽车处于行驶过程中,根据脉冲(汽车行驶产生一个脉冲)计算行驶里程。由于行驶里程分辨率为公里,因此需要先以米为单位计算到时行驶里程再加。(5)计费值模块-计费模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY JFZ IS PORT(START: IN STD_LOGIC; LCZ:IN STD_LOGIC_VECTOR(7 DOWNTO

16、0); DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0); JJZ:OUT INTEGER RANGE 0 TO 9999);END ENTITY JFZ;ARCHITECTURE ART OF JFZ IS SIGNAL JFZ1 : INTEGER RANGE 0 TO 9999; SIGNAL LCZ1,DDSJ1,DDSJ2,DDSJ3 : INTEGER RANGE 0 TO 199; BEGIN LCZ1=CONV_INTEGER(LCZ); -里程值 DDSJ2=CONV_INTEGER(DDSJ(7 DOWNTO 4);DDSJ3=CONV_INTEGE

17、R(DDSJ(3 DOWNTO 0); DDSJ1=DDSJ2*10+DDSJ3; -等待时间计算 PROCESS(START,LCZ,DDSJ) BEGIN IF START=1 THEN -车启动显示起步价 JFZ1=30; ELSIF LCZ1=3 THEN -车行驶中的费用计算 JFZ1=30; ELSIF LCZ1=3 THEN JFZ13 THEN JFZ1=30+(LCZ1-3)*10+DDSJ1*0.5; END IF; END IF;END IF;END IF;END PROCESS; JJZ=JFZ1;END ART;由行驶里程和等待时间,再根据计费标准进行计价值的计算。(

18、6)译码显示模块-译码模块LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;ENTITY YIMA1 IS PORT(LCZ:IN STD_LOGIC_VECTOR(7 DOWNTO 0); JJZ:IN INTEGER RANGE 0 TO 9999; DDSJ:IN STD_LOGIC_VECTOR(7 DOWNTO 0); LCZSX,LCZGX,DDSJSX,DDSJGX,JJZBX,JJZSX,JJZGX:OUT STD_LOGIC

19、_VECTOR(3 DOWNTO 0); END YIMA1;ARCHITECTURE ART OF YIMA1 IS SIGNAL LCZ1 : INTEGER RANGE 0 TO 99 ; SIGNAL LCZS,LCZG,JJZB,JJZS,JJZG: INTEGER RANGE 0 TO 9 ;BEGIN DDSJSX=DDSJ(7 DOWNTO 4); DDSJGX=DDSJ(3 DOWNTO 0); -等待时间译码显示 LCZ1=CONV_INTEGER(LCZ);END;将等待时间、里程值和计价值的百位十位个位转换成码,通过译码器在七段数码管中显示出来。4 编译及仿真()仿真软

20、件Quartus II的简单介绍和说明随着技术的发展,用户对开发工具的要求越来越高,Altera 公司适时推出了新的开发工具Quartus II 软件。Quartus II 集成环境包括以下内容:系统级设计、嵌入式软件开发、可编程逻辑器件(PLD)设计、综合,布局和布线、验证和仿真。Quartus II 集成环境除支持MAX 系列、FLEX 系列、ACEX1K 系列器件外,还支持Altera 公司的APEX20K 系列、Stratix 系列、Cyclone 系列和MAX II 系列等新型CPLD/FPGA 器件。Quartus II 设计软件根据设计者的需要提供了一个完整的多平台开发环境,它包

21、含整个FPGA 和CPLD设计阶段的解决方案。Quartus II 软件的开发流程如下图所示。图 QuartusII 软件的开发流程()仿真波形图图等待判别模块波形图图里程值计算模块波形图等待时间计算模块波形图图计价值模块波形图图译码模块波形图图顶层文件波形图5 硬件调试与结果分析通过对设计电路的分析,该实验可选择NO.0号电路进行硬件验证,键3对应于START输入信号,WCLK对应于CLK2,CLK1对应于CLK0,八个数码管作为等待时间、里程值和计价值的显示用。选定电路图之后,再选择ACEX1K/EP1K30TC144-3器件,输出信号进行引脚锁定。下载完成后便可进行硬件验证和调试。由于本

22、次课程设计我用的是Quartus 软件,下载出现问题,不能下载。就遗憾的没有进行硬件验证。下面是仿真时序图: 图10 仿真时序图译码过程由于有时间延迟和中间信号替换,导致仿真时序图出现一些混乱值,但持续时间很短,不影响译码显示。6 参考文献(1)黄智伟. FPGA系统设计与实践 电子工业出版社 2005.1(2)焦素敏. EDA课程设计指导书 河南工业大学 2008.2(3)焦素敏. EDA技术基础 清华大学出版社 2009.8(4)谭会生.EDA技术综合应用实例与分析 西安电子科技大学出版社 2004.11(5)朱正伟.EDA技术及应用 清华大学出版社 2006.1 (6)阎石.数字电子技术基础 高等教育出版社 2006.5心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1