EDA出租车计费设计(共15页)

上传人:桔**** 文档编号:432890170 上传时间:2023-07-13 格式:DOC 页数:15 大小:139KB
返回 下载 相关 举报
EDA出租车计费设计(共15页)_第1页
第1页 / 共15页
EDA出租车计费设计(共15页)_第2页
第2页 / 共15页
EDA出租车计费设计(共15页)_第3页
第3页 / 共15页
EDA出租车计费设计(共15页)_第4页
第4页 / 共15页
EDA出租车计费设计(共15页)_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《EDA出租车计费设计(共15页)》由会员分享,可在线阅读,更多相关《EDA出租车计费设计(共15页)(15页珍藏版)》请在金锄头文库上搜索。

1、目录目录11引言12软件介绍23工作原理34源程序54.1计算车费模块54.2计算里程模块64.3分频模块84.4系统模块94.5各部分模块图105实验箱下载验证125.1引脚锁定125.2验证结果12总结13参考文献141引言 随着我国经济社会的全面发展,各大中小城市的出租车营运事业发展迅速,出租车已经成为人们日常出行选择较为普通的交通工具。出租车计价器是出租车营运收费的专用智能化仪表,是使出租车市场规范化、标准化的重要设备。一种功能完备,简单易用,计量准确的出租车计价器是加强出租车行业管理,提高服务质量的必需品。所以设计一种新型出租车计费装置是我们本次课设的目的。 VerilogHDL是一

2、种硬件描述语言(HDL:HardwareDiscriptionLanguage),是一种用文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级FPGA以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。 该出租车计费器采用VerilogHDL硬件描述语言作为设计手段,采用自顶向下的设计思路,得到一种出租车计价系统的软件结构,通过Quart

3、us软件下进行仿真,证明所设计的电路系统完成了出租车计价的功能,各项指标符合设计要求。该设计虽然功能简单,智能化水平比较低,但仍具有一定的实用性。 客户管理系统的需求分析主要确定系统的主要功能,对系统进行概要描述,对系统的各个主要功能分别进行需求描述,目的是使软件在设计过程中尽量符合客户的需要。2软件介绍 Quartus可编程逻辑开发软件是Altera公司为其FPGA/CPLD芯片设计的集成化专用开发工具,是Altera最新一代功能更强的集成EDA开发软件。使用QuartusII可完成从设计输入,综合适配,仿真到下载的整个设计过程。 Quartus根据设计者需求提供了一个完整的多平台开发环境,

4、它包含蕞个FPGA和CPLD设计阶段的解决方案。Quarms软件提供的完整,操作简易的图形用户界面可以完成整个设计流程中的各个阶段。Quartus集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计,综合,布局和布线,验证和仿真。Quartus根据设计者需求提供了一个完整的多平台开发环境,它包含蕞个FPGA和CPLD设计阶段的解决方案。Quarms软件提供的完整,操作简易的图形用户界面可以完成整个设计流程中的各个阶段。Quartus集成环境包括以下内容:系统级设计,嵌入式软件开发,可编程逻辑器件(PLD)设计,综合,布局和布线,验证和仿真。Quartus也可以直接调用

5、SynplifyPro,LeonardoSctmm以及ModelSim等第三方EDA工具来完成设计任务的综合与仿真。Qualtus与MATLAB和DSPBuilder结合可以进行基于FPGA的DSP系统开发,方便且快捷,还可以与SOPCBuilder结合,实现SOPC系统的开发。3工作原理本次课程设计的要求设计的出租车计费器的模型如图2-1所示。图3-2出租车计费器模型方框图 车的状态由传感器传回来当作控制信号,用控制信号来控制计算里程和车费模块,然后分别将里程和车费送到译码模块译码,输出的数据一起送到动态扫描模块,由片选信号控制哪部分译码模块输出的数据用数码管显示。 当车启动后,计算里程和车

6、费模块就开始计数,起步价为6.00元,并在车行3Km后按1.20元/Km计费,车停止和暂停时不计费;然后将里程和车费送到译码模块译码和动态显示模块动态显示,最后显示在七段数码管上,用LED数码管实时显示车费和汽车行驶里程,用两位数字显示汽车行驶里程,显示方式为“XX”,单位为km。计程范围为099km,计程分辨率为1km;用四位数字显示总费用,显示方式为“XX.X”,单价为元。计价范围为099.9元,计价分辨率为0.1元。动态显示的时间间隔为秒钟。整个设计由分频模块、计程模块、计费模块三个部分组成。其中分频模块是把mile_clk分成八个周期的脉冲;计程模块是用来计算行驶里程;计费是用来显示行

7、驶费用。系统结构框图如图3-2所示:图3-2 系统结构图4源程序4.1计算车费模块 本模块主要是计算车费。计费标准为按行程里程收费,起步价为6.00元,当里程小于3公里时,按照起价计费,车行超过3公里后在按1.2元/公里收费。c2、c1、c0分别表示费用的十元、元、角的输出。当暂停信号stop为高电平时,c2,c1,c0停止计费,并显示当前费用。最后把c2,c1,c0信号给cost2cost0。其中在计费模块中,en为计费使能端,stop为暂停计费信号,cost2cost0为计费输出,直接送至数码管译码显示。计算车费的模块的功能结构框图如图4-1所示。图4-1计费模块功能结构框图根据模块实现的

8、功能设计Verilog HDL源代码如下:module jifei(cost_clk, en, cost0, cost1, cost2); input cost_clk; input en; output 3:0 cost0; reg 3:0 cost0; output 3:0 cost1; reg 3:0 cost1; output 3:0 cost2; reg 3:0 cost2; always (negedge en or posedge cost_clk) begin: xhdl0 reg 3:0 c0; reg 3:0 c1; reg 3:0 c2; if (en = 1b0) be

9、gin c0 = 4b0000; c1 = 4b0110; c2 = 4b0000; end else begin c0 = c0 + 1b1; if (c0 = 4b1010) begin c1 = c1 + 1b1; c0 = 4b0000; if (c1 = 4b1010) begin c2 = c2 + 1b1; c1 = 4b0000; if (c2 = 4b1010) c2 = 4b0000; end end end cost0 = c0; cost1 = c1; cost2 = c2; end endmodule4.2计算里程模块 实现车辆行驶的模拟:能模拟汽车的启动,停止,暂停

10、等状态。在本模块中,一个脉冲代表是里程要加100米。计程模块主要完成计程功能即计算乘客所行驶的公里数并生成使能信号en;当计费信号start为高电平且复位信号rst为低电平时,mile_clk每来一个上升沿,计程器低位k0就自增1,当k0满9时,k0清零,k1自增1,k1满9清零,因此计程器的计程范围是099km,满量程后自动归零。当行驶里程大于3km时,本模块将使能信号en变为高电平,小于3km时en为低电平。stop为暂停信号,当stop为高电平时,计量模块停止计数并显示当前里程数。计算里程的模块的功能结构框图如图3-2所示。图4-2里程的模块的功能结构框图根据模块实现的功能设计Veril

11、og HDL源代码如下:module licheng(cost_clk, rst, en, k0, k1); input cost_clk; input rst; output en; reg en; output 3:0 k0; reg 3:0 k0; output 3:0 k1; reg 3:0 k1; always (posedge cost_clk or posedge rst) begin: xhdl0 reg 3:0 q0; reg 3:0 q1; if (rst = 1b1) begin q0 = 4b0000; q1 = 4b0000; en 8b) begin en = 1b

12、1; if (q0 = 4b1010) begin q0 = 4b0000; q1 = q1 + 1b1; if (q1 = 4b1010) q1 = 4b0000; end end end k0 = q0; k1 = q1; end endmodule4.3分频模块因为每公里收费1.2元,所以0.1元约为833米,根据要求所知一个脉冲对应是10米,所以把cost_clk分频成clk每八个周期cost_clk对应一个上升沿;mile_clk分频成clk每100个周期对应一个上升沿。根据功能设计Verilog HDL源代码如下:module fenpin(rst, clk, start, stop, mile_clk, cost_clk); input rst; input clk; input start; input stop; output mile_clk; reg mile_clk; output cost_clk; reg cost_clk; always (rst or clk or start) begin: xhdl0 reg 3:0 count1;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号