基于verilghl的出租车计费器.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于verilghl的出租车计费器.doc

《EDA技术与应用》实训报告 学号 名 指导教师:江国强杨艺敏 指导教师: 江国强杨艺敏 2011 年4月28日 实训题目:出租车计费器 系统设计 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元。 出租车达到□的地后,(用一个按钮)计程和计费数据清零,为下一次计费 开始。 1.2方案比较 最初计费模块选择乘法,但心用资源过多,所以选择分段加法来解决 1.3方案论证 1.3. 1总体思路 :instl? ? ? :instl ? ? ? 各个模块程序的设计 ①分频模块:模拟牢辆行进,分 ①分频模块:模拟牢辆行进,分ls/km档和0. ls/km档 module fpq(clk, cout, kl); input elk,kl; reg [24:0] q; output reg cout; always @(posedge elk) begin case(kl) 0: begin q=q+l; if (q=l) begin cout=l;q=0;end else cout=0; end 1: begin q二q+1 ; if (q==2000000-l) begin cout=l;q=0;end else cout=0; end endcase end endmodule 计程兼计费模块:jsq99累计路程dejfq按规则汁费,同时附带输出显示 j fuck ■ clr q[7..O] -i_ elk sum[11..O] H— k2 ? — .I inst .I inst jsq99:路程显示 module jsq99(clr, elk, q, cout, k2); input clk,clr,k2; output reg[7:0]q; output reg cout; always @(posedge elk or negedge clr) begin if(?clr) q = 0; else begin if(k2::0) begin if (q== h99) q = 0; else q = q* 1; if(q[3:0]== ha) begin q[3:0] = 0; q[7:4] = q[7:4]+l; end if(q==0) cout = 1; else cout = 0;end end end endmodule dejfq:计费 module dejfq (elk, clrn, q, k2); input elk,k2; input clrn; output reg[ll:0] q; reg[3:0] c; always @(posedge elk or negedge clrn) begin if Cclrn) begin c=0;q=0;end else begin if(k2==0) begin if(c14) c=c+l; if(c=2) q[7:4]=7; else if(c=10) begin q[3:0]=q[3:0]+6;q[7:4]=q[7:4]+l; if(q[3:0]9)begin q[3:0]=q[3:0]-10;q[7:4]=q[7:4]+1;end if(q[7:4]9)begin q[7:4]=q[7:4]-10;q[l1:8]=q[l1:8]+l; end end else if (c10) begin q[3:0]=q[3:0]+4;q[7:4]=q[7:4]+2; if(q[3:0]9)begin q[3:0]=q[3:0]-10;q[7:4]=q[7:4]+l;end if(q[7:4]〉9)begin q[7:4]=q[7:4]-10;q[ll:8]=q[ll:8]+l;end end end i f(c14) c=l1;end end endmodule 选择器:选择敁示时间或费用,拨下拨码丌关敁示路程和赀用,拨上显示时钟。 input k; input [7:0] qm, qf, qs, ql; input [11:0] sum; output reg [23:0] q; always begin if (k==0) begin q[7:0]=ql;q[ll:8]=0;q[23:12]=sum;end else q[23:0] = {qs, qf,

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档