版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、桂林电子科技大学信息科技学院eda技术及应用实训报告学 号: 1052400205姓 名 唐超指导教师:覃琴 2012 年 4 月 19 日目录1 系统设计31.1设计要求31.1.1 设计任务31.1.2 性能指标要求31.2 设计思路及设计框图41.2.1设计思路41.2.2总体设计框图42 各个模块程序的设计42.1总计程器模块52.2车载模块设计52.3万年历模块92.4选择显示与分频模块113 调试过程124 功能测试124.1 测试仪器与设备134.2 性能指标测试135 实训心得体会136 参考文献13实训题目:出租车计费设计 1 系统设计1.1 设计要求1.1.1 设计任务 v
2、erilog hdl是一种硬件描述语言(hdl:hardware discription language),是一种用文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。verilog hdl和vhdl是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。现在,随着系统级fpga以及片上系统的出现,软硬件协同设计和系统设计变得越来越重要。传统意义上的硬件设计越来越倾向于与系统设计和软件设计相结合。随着出租车行业的发展,对出租车计费器的要求也越来越高,用户不仅要求计费器性能稳定计费准确,而且要求在乘坐出租
3、车时,显示起步价、行车里程二部分,由自动计费器自动记录。安装在与汽车轮相连接的传感器在汽车行进时向自动计费器发送脉冲信号,在一定的公里数内,按起步价计费;超过这一里程后,自动计费器按里程计费;超过一定费用后,则则增加里程费用。1.1.2 性能指标要求 用eda实训仪的i/o设备和pld芯片实现出租车计费器的设计。 出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。 出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。 出租车行驶超过10km后(或超过20元路费),每公里加收50的车费,即车费变为每公里2.4元。
4、 出租车达到目的地后,(用一个按钮)计程和计费数据清零,为下一次计费开始。1.2 设计思路及设计框图1.2.1设计思路我的设计思路是,车的状态由传感器传回来当作控制信号,用控制信号来控制计算里程和车费模块,我这里是用脉冲来控制车胎的转速,每过来一个脉冲相当于车辆行走了25米,然后再进行按照里程进行相应的计费,同时车上的数据一起送到动态扫描模块,由片选信号控制哪部分译码模块输出的数据用数码管显示。当车启动后,计算里程和车费模块就开始计数,起步价为7.00元,并在车行2km后按1.60元/km计费,在里程达到10km时,每公里回收50%的车费,车停止和暂停时不计费;然后将里程和车费与万年历一起送到
5、动态显示模块动态显示,最后显示在七段数码管上,然后动态显示的时间间隔为4秒钟。1.2.2总体设计框图 车辆的其他操作的显示动态与手动切换信号计算车程与路费及相关操作时间、路程和车费的动态显示与手动选择显示车辆控制型号万年历以及相关的操作时间控制型号数码管显示时间的其他操作的显示2 各个模块程序的设计2.1总计程器模块这个是一个总的模块,它是由主要万年历模块、车载模块和选择显示构成,从而做到数码管动态和手动选择显示年月日、时分秒、车费和车程以及各种状态显示灯。下面就给大家分模块介绍程序。2.2车载模块设计这个模块是由很多小模块组成,共同实现车程和车费及相关状态的显示。共分为调档模块、计算模块、显
6、示费用模块、紧急情况模块、转向灯模块、载客显示模块。下面就分模块介绍:调档模块这个模块的主要作用是用于调节车速d1、d2是有来选择脉冲的,他能显示00,01,10,11四种状态来选择不同的时间脉冲,在d1、d2等于00时ting=0,表示车子未开动,而其他d1、d2为01.10.11时ting=1,车子开动。s2,s3是速度状态显示灯,根据不同的来显示不同颜色的灯。clk是输出脉冲,clkn是输入脉冲。计算模块module jisuan(stop,clk,ting,chefei,lucheng);input clk,stop,ting; output reg19:0 lucheng;outpu
7、t reg19:0 chefei;always (posedge clk)begin if(stop=0) egin chefei=0;lucheng=0;end else begin if(ting=1) begin lucheng7:4=lucheng7:4+2;lucheng3:0=lucheng3:0+5; if(lucheng3:0='ha) begin lucheng3:0=0;lucheng7:4=lucheng7:4+1; if(lucheng7:4='ha) begin lucheng7:4=0;lucheng11:8=lucheng11:8+1; if(lu
8、cheng11:8='ha) begin lucheng11:8=0;lucheng15:12=lucheng15:12+1; if(lucheng15:12='ha) begin lucheng15:12=0;lucheng18:16=lucheng18:16+1;end end end end end end if(lucheng<='h2000) chefei11:8=7; else if(lucheng<='h10000) chefei3:0=chefei3:0+4; else if(lucheng>'h10000) chefe
9、i3:0=chefei3:0+6; if(chefei3:0>9) begin chefei7:4=chefei7:4+1;chefei3:0=chefei3:0%'ha; if(chefei7:4>9) begin chefei7:4=0;chefei11:8=chefei11:8+1; if(chefei11:8>9) begin chefei11:8=0;chefei15:12=chefei15:12+1; if(chefei15:12>9) begin chefei15:12=0;chefei19:16=chefei19:16+1;end end end
10、 end end endmodule这个模块的主要的作用是是用来进行车程和车费的计算与累加,这个模块的程序是整个实训最核心的程序,也是我最满意的模块,它只占内存资源4%,很多人这个模块要占很大的资源。stop是表示是否载有客人, stop=1表示有客,stop=0表示无客。ting是车辆是否开动,ting=1表示车辆开动,ting=0表示车子未开动。clk是表示调档后过来的脉冲。当一个脉冲过来时车,车的车程加25m,当车程在2000时,车费始终未起步价700,当车程大于2000m小于10000m时一个脉冲过来就加4,(一公里1.6元,则25米要4分钱),当车程大于10000m时一个脉冲过来就加
11、6,(一公里2.4元,则25米要6分钱)。当无客时(stop=0)时车程和车费都清零。显示费用模块 这个模块的主要作用是用来切换显示车程和车费。当xk=1时选择手动显示,则k2有效,k2=1时显示的是车费,k2=0时显示的是车程,当xk=0是是自动显示,每一个脉冲过来时,车程和车费相互切换。我为了区分车费和车程,我在数码管的上车费显示前面用cf, 车程显示前面用cc。载客模块module zaike(stop,youke,wuke);input stop;output reg youke,wuke;always begin if(stop) begin youke=1;wuke=0;end e
12、lse begin youke=0;wuke=1;endendendmodule这个模块的主要作用是用来显示车辆是否载客,当zaike=1时,说明车上已有乘客,则youke=1;wuke=0。 当zaike=1时,说明车上没有乘客,则youke=0;wuke=1。紧急事件模块module jinji(clk,tf,tfd1,tfd2,tfd3,xiang);input clk,tf;output reg tfd1,tfd2,tfd3,xiang;reg 24:0 qs,q;always (posedge clk)beginif (tf=0) begin tfd1=0;tfd2=0;tfd3=0
13、;xiang=0;endelse begin if(qs>=1000000-1) qs=0; else qs=qs+1; if(qs<500000-1) begin tfd1=0;tfd2=0;tfd3=0;xiang=0;end else begin tfd1=1;tfd2=1;tfd3=1;xiang=1;end endendendmodule 这个模块的主要作用是当车辆出现紧急情况是车辆,车上的会发出警报。当tf=0时车辆无反应,当tf=1就给个状态显示灯和蜂鸣器一个0.01秒的脉冲。转向灯模块 这个模块的主要作用是显示车辆行走时车辆的转向情况,当车辆左转,给左转向灯(zuo
14、d)一个0.1秒的脉冲,当车辆右转,给左转向灯(youd)一个0.1秒的脉冲。2.3万年历模块这是一个万年历模块,方便在车上看时间,它主要用来产生时间并显示时间,以及显示白昼的状态,它是由校时、时分秒、年月日、选择显示和夜灯模块。下面就简单介绍各模块。校时模块module jiaoshi(k,jr,jy,jn,jm,jf,js,j1,j2,j3);input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;always begin if(k=1) jm,jf,js=j1,j2,j3;else jr,jy,jn=j1,j2,j3;endendmodule这个模块的
15、主要作用是用来校时,通过控制k来控制校准年月日和时分秒。当k=0时校准年月日,当k=1时校准时分秒。时分秒模块 年月日模块选择显示时间模块 夜灯模块 由以上各模块共同组成了万年历模块,夜灯的模块的主要作用是当晚上时(19时到第二天7时)给夜灯一个信号,即就是让车顶的广告箱灯亮,白天时则不亮。选择显示模块的作用是用来切换显示年月日和时分秒。当xk=1时选择手动显示,则k1有效,k1=1时显示的是时分秒,k2=0时显示的是年月日,当xk=0是是自动显示,每一个脉冲过来时,年月日和时分秒相互切换。2.4选择显示与分频模块选择模块module xuanzhe(k1,k2,x1,x2,x,xk,clkn
16、2);input k1,k2,xk,clkn2;input 31:0 x1,x2;output reg 31:0 x;always begin if(xk=1) beginif(k2,k1=0k2,k1=3) x=x1;else x=x2; endelse beginif(clkn2=0) x=x1;else x=x2; endendendmodule这个模块的主要作用是用来切换显示时间与车费、车程。8s分频 16s分频这两个分别是8s、16s模块,分频的占空比是2/1,分频出来的信号是分别用来给选择的显示费用、选择显示时间和选择模块的脉冲,从而来控制他们4 s切换显示一次。3 调试过程要完成
17、一个程序最重要的一部分便是调试部分,有时一个程序的各模块都想好了,且大致的程序都写好的,但也并不一定能代表成功,往往做一个项目调试一个程序要占到编写一个程序大部分时间。所以不可避免的也出现了很多问题,由于这个程序的所有部分都是自己一个字母敲打而成,在调试中出现了很多问题,由于自己为了简化程序,尽量少利用资源来完成实训,这个程序在调试时出现的最大的问题就是车费和车程从16进制转10进制的过程遇到了一定的问题,最终自己在调试了几个小时候还是完成了调试,在调试过程还遇到了如年不能进位,动态显示不能实现,程序出现管脚过多等一系列问题。由于是第一接触做实际的项目,所以没什么经验,在调试过程中总有一些细节
18、问题不能很快察觉。自己根据试验箱上的效果来调试程序,把程序做到了最好。4 功能测试4.1 测试仪器与设备 eda实训箱一台4.2 性能指标测试 我这个程序字实训箱上运行都实现了预想效果,此次是自己完全动手实践写成的程序,当然也有我的很多特点。其一我只用了三个拨把开关就能实现控制车程、车费、年月日、时分秒四个数据的动态与手动显示,以及切换校时的三个按钮。其次就是我利用所学知识尽量少用乘除法,把计算模块所耗资源减到了4%。还用我的程序增加了很多功能,如汽车转向,调档,显示是否有客,紧急情况显示,车顶广告箱会根据白昼自动亮灭。试验箱上的s0和s1用来控制车速,s2用来控制显示是否有客人,s2往上拨表
19、示有客人。s5用来控制是否手动显示,s5往上拨表示手动显示,负责为4s一切换的动态显示。s6和s7用来手动控制分别显示车程、车费、时分秒、年月日,当手动显示到年月日是可用k8、k9、k10来校时年月日,当手动显示到时分秒是可用k8、k9、k10来校时时分秒。s8是紧急情况控制,s8往上拨,表示有紧急情况,蜂鸣器响同时有三个led黄灯亮。s9是控制右转,s10控制左转。s15用来时钟的清零端,当s15往上拨时时钟清零。5 实训心得体会这次实训是我第一次通过自己的能力将eda知识运用到实际中,从中受益匪浅,激发的学习兴趣,同时也培养了我思考能力和创新能力,为我今后的实践创新提供了很好的铺垫作用。我
20、选的实训题目是出租车计费器,虽然在此之前听老师大致讲解过车租车计费器的设计方案,但自己真正设计时,在一开始还是有点摸不着头脑,于是根据实训里的每一个要求,通过查找资料,再综合实际情况,有了一个总体的设计框架。设计一个良好的eda程序,不仅要求符合题意,同时也应将尽量少的占用系统的资源,在初步编写的程序中,所占的资源比较大,通过自己一步步调试,修改了很多语句,最终能顺利地将系统资源降低到29%,特别是计费和计程模块,我从占系统资源150%降低到4%。通过这一点,让我们明白了,想要得到一个优异的程序,必须善于发现问题改正问题,同时要有一颗持之以恒的心。虽然在实训中遇到了一些我们不能完成的问题,但也
21、能在问题中提高很多专业知识,尤其是课堂上自己还没掌握的知识点,通过本次实验加深了理解,当然也离不开老师的悉心教导。程序的调试是让我收获最多的,在调试时,可以锻炼自发现问题和解决问题的能力。我一定会在大学以后的时间里继续努力学习eda相关方面的知识和进行一些实际的项目,为自己在以后在电子大赛做好准备。6 参考文献【1】曹昕燕、周凤臣、聂春燕,eda技术实验与课程设计【m】,清华大学出版社【2】刘欲晓、方强、黄宛宁,eda技术与vhdl电路开发应用实践【m】,电子工业出版社。【3】基于eda技术出租车计费器的设计(样本) 百度文库附录附录1:仿真波形图(部分模块)车辆计费部分仿真波形图24进制的仿
22、真波形图60进制的仿真波形图夜灯模块显示仿真波形图附录2:程序清单一秒分频器module clk_1s(clk,cnt);input clk;output reg cnt;reg 24:0 qs;always (posedge clk )begin if(qs=20000000-1) qs=0; else qs=qs+1; if(qs<10000000-1) cnt=0; else cnt=1;endendmodule八秒分频器module fenpin1(clk,clkn);input clk;output reg clkn;reg 28:0 qs;always (posedge cl
23、k)begin if(qs>=160000000-1) qs=0; else qs=qs+1; if(qs<=80000000-1) clkn=1; else clkn=0;endendmodule十六秒分频器module fenpin2(clk,clkn2);input clk;output reg clkn2;reg 32:0 qs;always (posedge clk)begin if(qs>=320000000-1) qs=0; else qs=qs+1; if(qs<160000000-1) clkn2=1; else clkn2=0;endendmodul
24、e时分秒模块module clk_1s(clk,cnt);input clk;output reg cnt;reg 24:0 qs;always (posedge clk )begin if(qs=20000000-1) qs=0; else qs=qs+1; if(qs<10000000-1) cnt=0; else cnt=1;endendmodulemodule cnt24(clr,clk,cnt,q,j);input clr,clk,j;output reg cnt;output reg 7:0 q;always (posedge clkj or negedge clr)begi
25、n if(clr) q=0; else if (q='h23) begin q=0;cnt=1;end else begin cnt=0;q=q+1; if(q3:0='ha) begin q7:4=q7:4+1;q3:0=0;end endendendmodulemodule cnt60(clr,clk,cnt,q,j);input clr,clk,j;output reg cnt;output reg 7:0 q;always (posedge clkj or negedge clr)begin if(clr) q=0; else if (q='h59) begin
26、 q=0;cnt=1;end else begin cnt=0;q=q+1; if(q3:0='ha) begin q7:4=q7:4+1;q3:0=0;end endendendmodulemodule sfm(clk,clr,jm,jf,js,qm,qf,qs,cout);input clk,clr,jm,jf,js;output 7:0 qm,qf,qs;output cout;wire q1,q2,q3;clk_1s(clk,q1); cnt60(clr,q1,q2,qm,jm);cnt60(clr,q2,q3,qf,jf);cnt24(clr,q3,cout,qs,js);e
27、ndmodule年月日模块module nyr(clk,clrn,jr,jy,jn,qn,qy,qr);input clrn,clk,jn,jy,jr;output 15:0 qn;output 7:0 qy,qr;reg 15:0 qn;reg 7:0 qy,qr;reg clkn,clky;reg 7:0 date;reg clkn1,clkn2,clkn3;initial begin clkn1=1;clkn2=1;clkn3=1;end initial begin qn='h2000;qy=1;qr=1;endalways (posedge (clkjr) or negedge
28、 clrn )begin if(clrn) qr=1;else begin if(qr=date) qr=1;else qr=qr+1;if(qr3:0='ha) beginqr3:0=0; qr7:4=qr7:4+1;endif(qr=date) clky=1;else clky=0;endendalways (posedge clkyjy or negedge clrn)begin if(clrn) qy=1;else begin if(qy='h12) qy=1;else qy=qy+1;if(qy3:0='ha) begin qy3:0=0;qy7:4=qy7:
29、4+1;endif(qy='h12) clkn=1;else clkn=0;endendalways begin case(qy) 'h01:date='h31;'h02:begin if(qn%4=0) date='h29;else date='h28;end'h03:date='h31;'h04:date='h30;'h05:date='h31;'h06:date='h30;'h07:date='h31;'h08:date='h31;'h0
30、9:date='h30;'h10:date='h31;'h11:date='h30;'h12:date='h31;default:date='h30;endcase endalways (posedge clknjn or negedge clrn)begin if(clrn) qn3:0=0;else begin if(qn3:0=9) qn3:0=0;else qn3:0=qn3:0+1;if(qn3:0=9) clkn1=0;else clkn1=1;endend always (posedge clkn1 or neged
31、ge clrn) begin if(clrn) qn7:4=0;else begin if(qn7:0=9) qn7:4=0;else qn7:4=qn7:4+1;if(qn7:4=9) clkn2=0;else clkn2=1;endend always (posedge clkn2 or negedge clrn)beginif(clrn) qn11:8=0;else begin if(qn11:8=9) qn11:8=0;else qn11:8=qn11:8+1; if(qn11:8=9) clkn3=0;else clkn3=1;endend always (posedge clkn3
32、 or negedge clrn)begin if(clrn) qn15:12=2;else if(qn15:12=9) qn15:12=0;else qn15:12=qn15:12+1;endendmodule显示时间模块module xianshi(qn,qy,qr,qm,qf,qs,k1,x1,xk,clkn);input k1,xk,clkn;input15:0 qn;input7:0 qy,qr,qs,qf,qm;output reg31:0 x1;always begin if(xk=1) begin if(k1) begin x123:0=qs,qf,qm;x131:28=0;e
33、nd else x1=qn,qy,qr; end else begin if(clkn=0) begin x123:0=qs,qf,qm;x131:28=0;end else x1=qn,qy,qr; end endendmodule、校时模块module jiaoshi(k,jr,jy,jn,jm,jf,js,j1,j2,j3);input k,j1,j2,j3;output reg jm,jf,js,jr,jy,jn;always begin if(k=1) jm,jf,js=j1,j2,j3;else jr,jy,jn=j1,j2,j3;endendmodule车顶广告箱模块module
34、 yedeng(qs,deng1,deng2);input7:0 qs;output reg deng1,deng2;alwaysbegin if(qs<'h19&qs>'h6) begin deng1=0;deng2=0;end else begin deng1=1;deng2=1;endend调档模块module tiaodang(d1,d2,clkn,s1,s2,s3,clk,ting);input clkn,d1,d2;output reg s1,s2,s3,clk,ting;reg24:0 q;always (posedge clkn )begin
35、 case (d1,d2) 'b00:begin s1=0;s2=0;s3=0;ting=0;clk=0;end 'b01:begin s1=1;s2=0;s3=0;ting=1; if(q>20000000) begin clk=1;q=0;end else begin clk=0;q=q+1;end end 'b10:begin s1=0;s2=1;s3=0;ting=1; if(q>10000000) begin clk=1;q=0;end else begin clk=0;q=q+1;end end 'b11:begin s1=0;s2=0;
36、s3=1;ting=1; if(q>2000000) begin clk=1;q=1;end else begin clk=0;q=q+1;end end endcaseendendmodule计算车程与车费模块module jisuan(stop,clk,ting,chefei,lucheng);input clk,stop,ting; output reg19:0 lucheng;output reg19:0 chefei;always (posedge clk)begin if(stop=0) egin chefei=0;lucheng=0;end else begin if(ti
37、ng=1) begin lucheng7:4=lucheng7:4+2;lucheng3:0=lucheng3:0+5; if(lucheng3:0='ha) begin lucheng3:0=0;lucheng7:4=lucheng7:4+1; if(lucheng7:4='ha) begin lucheng7:4=0;lucheng11:8=lucheng11:8+1; if(lucheng11:8='ha) begin lucheng11:8=0;lucheng15:12=lucheng15:12+1; if(lucheng15:12='ha) begin
38、 lucheng15:12=0;lucheng18:16=lucheng18:16+1;end end end end end end if(lucheng<='h2000) chefei11:8=7; else if(lucheng<='h10000) chefei3:0=chefei3:0+4; else if(lucheng>'h10000) chefei3:0=chefei3:0+6; if(chefei3:0>9) begin chefei7:4=chefei7:4+1;chefei3:0=chefei3:0%'ha; if(c
39、hefei7:4>9) begin chefei7:4=0;chefei11:8=chefei11:8+1; if(chefei11:8>9) begin chefei11:8=0;chefei15:12=chefei15:12+1; if(chefei15:12>9) begin chefei15:12=0;chefei19:16=chefei19:16+1;end end end end end endmodule显示车程与车费模块module xianfei(chefei,lucheng,k2,x2,clkn,xk);input k2,xk,clkn;input 19:0 chefei,lucheng;output reg31:0 x2;always begin if(xk=1) begin if(k
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公费师范生履约合同范本
- 展商组织合同范本
- 病毒病实验室诊断简介
- 开题答辩与毕业答辩
- 装饰安全合同范本
- 湖北品牌大件运输合同范本
- 宣武区电子运输合同范本
- 特色种植合同范本
- 钢棚合同范本
- 院租赁合同范本
- 2024产学研合作框架协议
- 申请银行减免利息的申请书2
- 2023年甘肃省工程设计研究院有限责任公司招聘笔试真题
- 2024年新中国成立75周年课件
- 生命与安全课件
- 《剪映专业版:短视频创作案例教程(全彩慕课版)》 课件 第6章 创作生活Vlog
- 重大事故隐患判定标准与相关事故案例培训课件
- 公安行政执法综合实训智慧树知到期末考试答案章节答案2024年南京警察学院
- 火龙罐综合灸疗法
- 深圳市中小学生流感疫苗接种知情同意书
- 数据、模型与决策(运筹学)课后习题和案例答案007
评论
0/150
提交评论