EDA出租车自动计费器_eda出租车自动计费器

2020-02-27 其他范文 下载本文

EDA出租车自动计费器由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“eda出租车自动计费器”。

EDA课程设计报告

题目:出租车自动计费器

院系:

信工系

班级:

电信二班

学号:

111608060211

姓名:

陈森

目录

摘要...............................................................3 引言...............................................................4 第1章整体设计说明............................................51、设计要求................................................................52、设计内容及思路.................................................5 第2章各模块的介绍............................................61、电平转换模块.........................................................62、等待时间显示模块..................................................73、行驶里程显示模块..................................................84、计费显示模块.........................................................95、调用的计数器模块................................................106、顶层模块..............................................................10 第3章管脚锁定及硬件连线.................................12 第4章程序下载与调试.......................................14 设计心得体会..................................................15

摘要

Verilog HDL是一种硬件描述语言(HDL:Hardware Discription Language),是一种用文本形式来描述数字系统硬件的结构和行为的Verilog语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

Verilog HDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级FPGA以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。

本文介绍了一种采用单片FPGA芯片进行出租车计费器的设计方法,主要阐述如何使用新兴的EDA器件取代传统的电子设计方法,利用FPGA的可编程性,简洁而又多变的设计方法,缩短了研发周期,同时使出租车计费器体积更小功能更强大。本设计实现了出租车计费器所需的一些基本功能,计费包括起步价、行车里程计费、等待时间计费,同时考虑到出租车行业的一些特殊性,更注重了把一些新的思路加入到设计中。主要包括采用了FPGA芯片,使用VHDL语言进行编程,使其具有了更强的移植性,更加利于产品升级。

引言

人类社会已经进入信息化时代,信息社会的发展离不开电子产品的进步。现代电子产品在性能提高、复杂度降低的同时,价格却一直呈下降趋势,而且产品更新换代的步伐也越来越快,实现这种进步的主要原因就是生产制造技术和电子设计技术的发展。前者以微细加工技术为代表,目前已进展到深亚微米阶段,可以在几平方厘米的芯片上集成数万个晶体管;后者的核心就是EDA技术[1]。没有EDA技术的支持,想要完成超大规模集成电路的设计制造是不可想象的,反过来,生产制造技术的不断进步又必须对EDA技术提出新要求。EDA代表了当今电子设计技术的最新发展方向,它的基本特征是:设计人员按照“自顶向下”的设计方法,对整个系统进行方案设计和功能划分,系统的关键电路用一片或几片专用集成电路(ASIC)实现,然后采用硬件描述语言(Verilog HDL)完成系统行为级设计,最后通过综合器和适配器生成最终的目标器件[2]。

Verilog HDL是一种全方位的硬件描述语言,包括系统行为级、寄存器传输级和逻辑门级多个设计层次,支持结构、数据流和行为3种描述形式的混合描述,因此Verilog HDL几乎覆盖了以往各种硬件描述语言的功能,整个自顶向下或自底向上的电路设计过程都可以用Verilog HDL来完成。另外,Verilog HDL还有以下优点:Verilog HDL的宽范围描述能力使它成为高层次设计的核心,将设计人员的工作重心转移到了系统功能的实现和调试上,只需要花较少的精力用于物理实现;Verilog HDL可以用简洁明确的代码描述来进行复杂控制逻辑的设计,灵活且方便,而且也便于设计结果的交流、保存和重用;Verilog HDL的设计不依赖于特定的器件,方便了工艺的转换。Verilog HDL是一个标准语言,为众多的EDA场上支持,因此移植性好。

第1章整体设计说明

1、设计要求

设计一个出租车自动计费器,计费包括起步价,行车里程计费、等待时间三部分,用三位数码管显示总金额,最大值为99.9元。起步价位5.0元,3km之内按起步价计费,超过3km,每km增加1元,等待时间计费为每分钟0.1元。用两位数码管显示总里程,最大值为99km,用两位数码管显示等待时间,最大值为99min。

2、设计内容及思路

此设计问题分为主控模块、里程计数模块、等待时间计数模块、计费模块和扫描显示模块。

在行车计费模块中,将行驶的里程数转换为与之成正比的脉冲个数。每100个clk1·模拟1km,输出100个脉冲。3km之内为起步价,即300个clk1之内为起步价,以后每km增加1元,即每10个clk1增加0.1元。在等待时间计数模块中,设置行驶状态输入信号为drive,行驶显示信号run,起步价预先固定在电路中,由drive信号异步置数至计费模块,同时使系统显示为当前行驶状态run,里程计数工作,到3km后,每10 个clk1脉冲使计费增

加0.1元,计费显示在数码管上。设置刹车信号break,等待状态显示信号pause,有break信号使系统显示为当前状态pause,等待时间计数模块工作,每分钟计费增加0.1元。

第2章各模块的介绍

1、电平转换模块

module EDGE_TO_PULSE(CLK,IN,OUT);input IN,CLK;output OUT;reg OUT,temp;always@(posedge CLK)

//上升沿有效

begin

if(!temp&&IN)

//上衣一个状态与当前状态不一样 OUT

//输出以为1 else if(temp==IN)

//上一个状态与当前状态一样 OUT

//输出为你0 temp

模块如下

inst4INCLKOUTEDGE_TO_PULSE

仿真波形如下

2、等待时间显示模块

module TO_BCD2(IN,OUT_H,OUT_L);input [6:0]IN;output [3:0]OUT_H,OUT_L;aign OUT_H=IN/10;

//把输入的十进制数除以10取整得到十位数。aign OUT_L=IN%10;

//把输入的十进制数数除以10取余得个位数。Endmodule 此模块的功能是把7位二进制表示的十进制的输入数据输出成4为二进制表示的16进制数,显示在数码管上。把输入的十进制数除以10取整得到十位数。把输入的十进制数数除以10取余得个位数。模块如下:

TO_BCD2IN[6..0]OUT_H[3..0]OUT_L[3..0]inst7

仿真波形如下所示:

3、行驶里程显示模块

module TO_BCD(IN,OUT_H,OUT_L);input [6:0]IN;output [3:0]OUT_H,OUT_L;aign OUT_H=IN/100;

//行驶里程除以100取整得到最高位。

aign OUT_L=IN%100/10;//行驶里程除以100取余再除以10取整得到个位数,最低位为0.1千米位,就不再显示了。endmodule 此模块的功能跟等待时间显示模块类似,为了计费方便,把里程用三位十进制数表示,最低位表示0.1千米位,不再显示在数码管中,将行驶里程除以100取整得到最高位,除以100取余再除以10取整得到个位数。模块的图形如下所示:

TO_BCDIN[6..0]OUT_H[3..0]OUT_L[3..0] inst11 其仿真波形如图所示:

4、计费显示模块

module TO_BCD_B(IN,OUT_B,OUT_S,OUT_G);input [9:0]IN;output [3:0]OUT_B,OUT_S,OUT_G;aign OUT_B=IN/100;

//金额除以100得到最高位

aign OUT_S=IN%100/10;//金额除100取余再除10取整得到个位数。aign OUT_G=IN%10;//金额除以10取余得到最低位数据 endmodule 此模块的功能是把用10位二进制表示的3位十进制费用,转换为每一位都是用4位二进制表示的16进制数。用于显示在数码管上面。能够显示的最大金额为99.9元。金额除以100得到最高位,金额除100取余再除10取整得到个位数,金额除以10取余得到最低位数据。模块的形状如下所示:

TO_BCD_BIN[9..0]OUT_B[3..0]OUT_S[3..0]OUT_G[3..0]inst 其仿真波形如图所示:

5、调用的计数器模块

以上为调用的三个计数器模块,模块里程计数CNT_TIME和费用计数CNT_KM的输出接在一个或门上,当里程计数和等待时间任何一个计数溢出,都向计费CHARGE模块进位。CHARGE模块上面接着aclr异步清零和aset同步置位端。使得在车启动时把费用置位到5起步价5元,在清零信号发生后,把费用清零。

6、顶层模块

module CONTROLLER(clear,brake,drive,K_OR_T,pause,run,EN_T,EN_K,min,km,CH

ARGE_EN);input clear,brake,drive,K_OR_T;output pause,run,EN_T,EN_K,min,km,CHARGE_EN;reg [6:0] min,km;reg pause,run,EN_T,EN_K;aign CHARGE_EN=(km>=30);always@(brake,drive)case({drive,brake})//定义2位二进制数来表示车的行驶状态

2'b10 :begin EN_K=1;EN_T=0;pause=0;run=1;end //drive为1,break为0的时候车处于行驶状态 2'b11 :begin EN_K=0;EN_T=1;pause=1;run=0;end //drive为1,break为1的时候车处于行驶过程中的等待状态

default :begin EN_K=0;EN_T=0;pause=0;run=0;end endcase always@(posedge K_OR_T,posedge clear)if(clear)begin km=0;min=0;end //当按下清零键的时候,使路程和等待时间都清零

else

case({drive,brake})2'b10 :km=km+1;

2'b11 :min=min+1;default :begin km=km;min=min;end endcase endmodule 该模块的功能是把其他模块连接起来,整体过程是drive信号出现时,车开始行驶,同时计费器初始化起步价为5元。当行驶路程达到3KM后,每增加1KM费用增加0.1元。在此同时,如果brake信号出现后,行驶里程停止计数,等待时间开始计时,每增加1分钟,费用增加0.1元。按下clear清零键后,行驶里程、等待时间和费用全部清零。模块如下: CONTROLLERclearbrakedriveK_OR_TpauserunEN_TEN_Kmin[6..0]km[6..0]CHARGE_ENinst5

顶层模块连线后的图形如下:

仿真波形如下所示:

第3章管脚锁定及硬件连线

所有模块写好,顶层模块连接好,编译无误,仿真以后就可以进行锁定

引脚了。

根据硬件资源和需要选择合适的引脚进行锁定,再根据实验手册锁定好以后的结果如下所示:

引脚锁定好以后,编译无误以后,接下来把导线连接好以后就可以下载了。

第4章程序下载与调试

点击programmer按钮进入下载页面:

选择好硬件以后,点击Start开始下载。调试好以后的结果如下:

设计心得体会

感谢学校给我们提供的EDA课程设计课程,通过本次课程设计,从中感触到了很多。

在课程设计的过程中,增强了同学之间的互动性,在此同时,也对以前学过的EDA知识有了更加深刻的理解。在设计过程中,总是遇到这样或那样的问题。有时发现一个问题的时候,需要做大量的工作,花大量的时间才能解决。自然而然,我的耐心便在其中建立起来了。为以后的工作积累了经验,增强了信心。

我认为,不仅仅是此次考查设计,在整个这学期的实验中,不仅培养了独立思考、动手操作的能力,在各种其它能力上也都有了提高。更重要的是,在实验课上,我们学会了很多学习的方法。而这是日后最实用的,真的是受益匪浅。

课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.

通过这次设计,本人在多方面都有所提高。同时各科相关的课程都有了全面的复习,独立思考的能力也有了提高。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次设计的每个细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

《EDA出租车自动计费器.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
EDA出租车自动计费器
点击下载文档
相关专题 eda出租车自动计费器 出租车 计费器 EDA eda出租车自动计费器 出租车 计费器 EDA
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文