基于verilog-hdl的出租车计费器

基于verilog-hdl的出租车计费器

ID:951063

大小:449.50 KB

页数:13页

时间:2017-10-06

基于verilog-hdl的出租车计费器_第1页
基于verilog-hdl的出租车计费器_第2页
基于verilog-hdl的出租车计费器_第3页
基于verilog-hdl的出租车计费器_第4页
基于verilog-hdl的出租车计费器_第5页
资源描述:

《基于verilog-hdl的出租车计费器》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、《EDA技术与应用》实训报告学号姓名指导教师:江国强杨艺敏2011年4月28日实训题目:出租车计费器1.系统设计1.1设计要求1.1.1设计任务设计并制作一台出租车计费器。1.1.2技术要求①用EDA实训仪的I/O设备和PLD芯片实现出租车计费器的设计。②出租车起步开始计程和计费,计程系统按实际公里数计程,计费系统首先显示起步价(如7.0),车行驶2km以内,只收起步价7元。③出租车行驶超过2km后,按每公里1.6元在7.0元的基础上增加。④出租车行驶超过10km后(或超过20元路费),每公里加收50%的车费,即车费变为每公里2.4元。⑤出租车达到目的地后,(用一个按钮)计程和计费数据清零,

2、为下一次计费开始。1.2方案比较最初计费模块选择乘法,但占用资源过多,所以选择分段加法来解决1.3方案论证1.3.1总体思路整个系统主要由计程兼计费模块组成,另外添加计时器和流水灯模块作为附加功能,最后由选择模块选择输出费用或时间,分频模块作为路程模拟输入。1.3.2设计方案分频器将实训仪的时钟转换成1s或0.1s的脉冲模拟行进一公里,将脉冲输入计程兼计费模块进行路程累加和计费,同时输出路程数和费用。流水灯则按行进路程进行亮灭,附加的时钟功能可以查看时间。最后由选择模块进行费用和时间间的切换。2.各个模块程序的设计①分频模块:模拟车辆行进,分1s/km档和0.1s/km档modulefpq(

3、clk,cout,k1);inputclk,k1;reg[24:0]q;outputregcout;always@(posedgeclk)begincase(k1)0:beginq=q+1;if(q==20000000-1)begincout=1;q=0;endelsecout=0;end1:beginq=q+1;if(q==2000000-1)begincout=1;q=0;endelsecout=0;endendcaseendendmodule②计程兼计费模块:jsq99累计路程dejfq按规则计费,同时附带输出显示该模块又由两个小模块组成:jsq99:路程显示modulejsq99(c

4、lr,clk,q,cout,k2);inputclk,clr,k2;outputreg[7:0]q;outputregcout;always@(posedgeclkornegedgeclr)beginif(~clr)q=0;elsebeginif(k2==0)beginif(q=='h99)q=0;elseq=q+1;if(q[3:0]=='ha)beginq[3:0]=0;q[7:4]=q[7:4]+1;endif(q==0)cout=1;elsecout=0;endendendendmoduledejfq:计费moduledejfq(clk,clrn,q,k2);inputclk,k2;

5、inputclrn;outputreg[11:0]q;reg[3:0]c;always@(posedgeclkornegedgeclrn)beginif(~clrn)beginc=0;q=0;endelsebeginif(k2==0)beginif(c<14)c=c+1;if(c<=2)q[7:4]=7;elseif(c<=10)beginq[3:0]=q[3:0]+6;q[7:4]=q[7:4]+1;if(q[3:0]>9)beginq[3:0]=q[3:0]-10;q[7:4]=q[7:4]+1;endif(q[7:4]>9)beginq[7:4]=q[7:4]-10;q[11:8]=q

6、[11:8]+1;endendelseif(c>10)beginq[3:0]=q[3:0]+4;q[7:4]=q[7:4]+2;if(q[3:0]>9)beginq[3:0]=q[3:0]-10;q[7:4]=q[7:4]+1;endif(q[7:4]>9)beginq[7:4]=q[7:4]-10;q[11:8]=q[11:8]+1;endendendif(c>14)c=11;endendendmodule③选择器:选择显示时间或费用,拨下拨码开关显示路程和费用,拨上显示时钟。modulexzq(k,qm,qf,qs,q,q1,sum);inputk;input[7:0]qm,qf,qs,

7、q1;input[11:0]sum;outputreg[23:0]q;alwaysbeginif(k==0)beginq[7:0]=q1;q[11:8]=0;q[23:12]=sum;endelseq[23:0]={qs,qf,qm};endendmodule④时间模块:24小时时钟,可以显示时分秒,可以校准。该模块又由几个小模块组成moduleclkgen(clk,cout);//两千万分频器inputcl

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。