基于verilog语言的出租车计费器

上传人:博****1 文档编号:563002879 上传时间:2023-10-08 格式:DOCX 页数:17 大小:535.74KB
返回 下载 相关 举报
基于verilog语言的出租车计费器_第1页
第1页 / 共17页
基于verilog语言的出租车计费器_第2页
第2页 / 共17页
基于verilog语言的出租车计费器_第3页
第3页 / 共17页
基于verilog语言的出租车计费器_第4页
第4页 / 共17页
基于verilog语言的出租车计费器_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《基于verilog语言的出租车计费器》由会员分享,可在线阅读,更多相关《基于verilog语言的出租车计费器(17页珍藏版)》请在金锄头文库上搜索。

1、凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳基于verilog语言的出租车计费器凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳院别:_计算机与通信工程学院_凌阳,拇指凌阳专业名称:_电子信息工程_凌阳,拇指凌阳班级学号:_凌阳,拇指凌阳学生姓名:_凌阳,拇指凌阳指导教师:_陈海宴_凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳随着出租车行业的发展,拇指对出租车计费器的要求也越来越高。食指最近几年出租车行业发展迅速,拇指在全国有几千家出租车公司。食指因此出租车计费器市场是庞大的。食指而出租车

2、计费器成为不可缺少的一部分。食指凌阳,拇指凌阳信息社会的现代电子产品,拇指性能越来越高,拇指复杂度越来越大,拇指更新步伐也越来越快。食指实现这种进步的主要原因就是微电子技术和电子技术的发展。食指而电子技术的发展后者的核心就是电子设计自动化技术。食指EDA是指以计算机为工作平台,拇指融合了应用电子技术、计算机技术、智能化技术的最新成果而开发出的电子CAD通用软件包,拇指它根据硬件描述语言HDL完成的设计文件,拇指自动完成逻辑编译、化简、分割、综合、优化、布局布线及仿真,拇指直至完成对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。食指没有EDA技术的支持,拇指想要完成超大规模集成电路的设计制

3、造是不可想象的;反过来,拇指生产制造技术的不断进步又必将对EDA技术提出新的要求。食指本文采用verilog语言来设计实现出租车计费系统,拇指经过ModelSim和Quartus仿真将其实例化。食指如果将该设计再结合到实际应用中,拇指那么,拇指只需改变设计中计费要求,拇指就可以应用到出租车上。食指另外,拇指如果再任意输入该出租车计价器的计费标准,拇指那么,拇指它的适用范围可能就更广泛了。食指凌阳,拇指凌阳凌阳,拇指凌阳一、 凌阳,拇指凌阳设计要求凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳(1) 凌阳,拇指凌阳行程3公里内(包括3公里),拇指且等待累计时间2分

4、钟内(包括2分钟),拇指起步费为6.0元;凌阳,拇指凌阳(2)3公里外(不包括3公里)以每公里1.0元,拇指等待累计时间2分钟外(不包括2分钟)以每分钟以1.0元计费。食指凌阳,拇指凌阳(3)能显示行驶公里数、等待累计时间和最后的总费用。食指凌阳,拇指凌阳本计费器的显示范围为099元,拇指计价分辨率为1元;计程器显示范围为099公里,拇指分辨率为1公里;计时器的显示范围是分钟的显示范围是099, 凌阳,拇指凌阳辨率为1分钟。食指秒的显示范围是059。食指分辨率为1秒。食指凌阳,拇指凌阳二 凌阳,拇指凌阳、工作原理凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌

5、阳,拇指凌阳出租车的一般计费过程为:出租车载客后,拇指启动计费器,拇指整个系统开始运行,拇指里程计数器和时间计数器从0开始计数,拇指费用计数器从6开始计算。食指再根据行驶里程或停止等待的时间按以上的标准计费。食指若在行驶状态,拇指则计程器开始加计数,拇指当路程超过三公里后,拇指计费器以每公里1元累加。食指若出租车停止等待状态,拇指则计时器开始加计数,拇指当时间超过两分钟后,拇指计费器以每分钟1元累加。食指出租车到达目的地停止后,拇指停止计费器,拇指显示总费用。食指凌阳,拇指凌阳根据出租车计费器的工作过程,拇指本系统采用分层次、分模块的方式设计,拇指其本系统组成框图如下所示。食指其中行驶路程计数

6、模块、等待时间计数模块和计费模块,拇指用来统计路程、等待时间和总费用,拇指控制模块是用来控制计费模块,拇指数码管显示模块用来显示行驶的公里数、等待累计时间和总费用等信息。食指系统框图如下所示:凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳三、各模块的设计凌阳,拇指凌阳本系统采用层次化、模块化的设计方法,拇指设计顺序为自下向上。食指首先实现系统框图中的各子模块,拇指然后由顶层模块调用各子模块来完成整个系统。食指为了便于显示,拇指这里的路程、时间和费用计数器均用十六进制表示。食指凌阳,拇指凌阳3.1分频模块:凌阳,拇指凌阳3.1.1计数器的分频模块:凌阳,拇指凌阳计数器的分频模块具体框图: 凌阳,拇指

7、凌阳 凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳凌阳,拇指凌阳此模块的功能是对总的时钟进行分频,拇指分出的频率是让计数器用的,拇指因为总的时钟是50M的。食指设计该模块的时候用了一个32位的计数器,拇指当计数器计到25_000000的时候产生时钟。食指在仿真的时候为了方便观察设计了一个8分频的电路。食指当下载的时候用的是2HZ的时钟 凌阳,拇指凌阳。食指凌阳,拇指凌阳计数器的分频模块VerilogHDL源代码:凌阳,拇指凌阳凌阳,拇指凌阳module 凌阳,拇指凌阳div(clk_50M,clk,reset);/ 凌阳,拇指凌阳

8、端口的定义凌阳,拇指凌阳input 凌阳,拇指凌阳clk_50M,reset;/ 凌阳,拇指凌阳总的时钟是50M凌阳,拇指凌阳output 凌阳,拇指凌阳clk;/分频后输的时钟 凌阳,拇指凌阳凌阳,拇指凌阳reg 凌阳,拇指凌阳clk;凌阳,拇指凌阳reg 凌阳,拇指凌阳31:0 凌阳,拇指凌阳count;/32位的计数器凌阳,拇指凌阳always 凌阳,拇指凌阳(posedge 凌阳,拇指凌阳clk_50M 凌阳,拇指凌阳or 凌阳,拇指凌阳negedge 凌阳,拇指凌阳reset)/异步复位凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指

9、凌阳if(!reset)凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳clk=d0;凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳count=32d0;凌阳,拇指凌阳end凌阳,拇指凌阳else 凌阳,拇指凌阳if(count=32d25_000000)/ 凌阳,拇指凌阳判断计时器记到了25_000000吗凌阳,拇指凌

10、阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳count=32d0;/计到25_000000计数器清零凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳clk=clk;/输出的时钟取反 凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳end/end 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌

11、阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳else 凌阳,拇指凌阳count=count+1d1;/ 凌阳,拇指凌阳没计到25_000000计数器加一凌阳,拇指凌阳end/end 凌阳,拇指凌阳always凌阳,拇指凌阳endmodule 凌阳,拇指凌阳/ 凌阳,拇指凌阳结束分频模块凌阳,拇指凌阳凌阳,拇指凌阳仿真的结果:凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳从波形可以看出当reset为低电平的时候clk为零,拇指当为高电平的时候clk的高电平占了clk_50M的八个周期,拇指低电平也占了clk_50M的八个周期

12、。食指凌阳,拇指凌阳凌阳,拇指凌阳3.1 凌阳,拇指凌阳.2数码管的分频模块:凌阳,拇指凌阳具体框图:凌阳,拇指凌阳凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳此模块的功能是对总的时钟进行分频,拇指分出的频率是让数码管用的,拇指因为总的时钟是50M的。食指设计该模块的时候用了一个32位的计数器,拇指当计数器计到50_000的时候产生时钟。食指在仿真的时候为了方便观察设计了一个8分频的电路。食指凌阳,拇指凌阳数码管的分频模块VerilogHDL源代码:凌阳,拇指凌阳module 凌阳,拇指凌阳div1(clk_50M,clk1,reset);/ 凌阳,拇指凌阳端口的定义凌阳,拇指凌阳input

13、凌阳,拇指凌阳clk_50M,reset;/ 凌阳,拇指凌阳总的时钟是50M凌阳,拇指凌阳output 凌阳,拇指凌阳clk1;/分频后输的时钟 凌阳,拇指凌阳凌阳,拇指凌阳reg 凌阳,拇指凌阳clk1;凌阳,拇指凌阳reg 凌阳,拇指凌阳31:0 凌阳,拇指凌阳count;/32位的计数器凌阳,拇指凌阳always 凌阳,拇指凌阳(posedge 凌阳,拇指凌阳clk_50M 凌阳,拇指凌阳or 凌阳,拇指凌阳negedge 凌阳,拇指凌阳reset)/异步复位凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳if(!reset)凌阳,拇

14、指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳clk1=d0;凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳count=32d0;凌阳,拇指凌阳end凌阳,拇指凌阳else 凌阳,拇指凌阳if(count=32d50_000)/ 凌阳,拇指凌阳判断计时器记到了50_000吗凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,

15、拇指凌阳 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳count=32d0;/计到50_000计数器清零凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳clk1=clk1;/输出的时钟取反 凌阳,拇指凌阳凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳end/end 凌阳,拇指凌阳begin凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳 凌阳,拇指凌阳else 凌阳,拇指凌阳count=count+1d1;/ 凌阳,拇指凌阳没计到50_000计数器加一凌阳,拇指凌阳end/end 凌阳,拇指凌阳always凌阳,拇指凌阳endmodule 凌阳,拇指凌阳/ 凌阳,拇指凌阳结束分频模块凌阳,拇指凌阳3.2 凌阳,拇指凌阳计程模块:凌阳,拇指凌阳计程模块的框图:凌阳,拇指凌阳凌阳,拇指凌阳此模块的功能是计算出租车行驶的路程。食指在出租车启动并行驶的过程中(即复位/启动信号reset为1,拇指行驶/停止信号start为1),拇指当时钟clk是上升沿的时候,拇指系统即对路程计数器distanc

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

当前位置:首页 > 大杂烩/其它

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