出租车计费器VHDL语言.doc

出租车计费器VHDL语言.doc

ID:52675718

大小:135.00 KB

页数:11页

时间:2020-03-29

出租车计费器VHDL语言.doc_第1页
出租车计费器VHDL语言.doc_第2页
出租车计费器VHDL语言.doc_第3页
出租车计费器VHDL语言.doc_第4页
出租车计费器VHDL语言.doc_第5页
资源描述:

《出租车计费器VHDL语言.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《数字逻辑电路》课程设计——出租车计费器的设计计算机学院软件工程1401赵雷3140608027出租车计费器的设计一、系统设计任务及要求(1)能实现计费功能,计费标准为:按行驶里程收费,起步价为7.00元,并在车行3千米后再按2元/千米,当总费用达到或超过40元时,每千米收费4元,客户端需要停车等待时按时间收费,计费单价每20秒1元。(2)设计动态扫描电路:以十进制显示出租车行驶的里程与车费,在数码管上显示(前四个显示里程,后三个显示车费)。(3)用VHDL语言设计符合上述功能要求的出租车计费器,并用层次化设计方法设计该电路。

2、(4)完成电路全部设计后,通过系统试验箱下载验证设计的正确性。二、系统设计方案根据系统设计设计要求不难得知,整个出租车计费系统按功能主要分为速度选择模块、计程模块、计时模块、计费模块4个模块。顶层原理图1.速度模块:通过对速度信号sp的判断,决定行使的路程,这里是通过速度信号来模拟一个变量的取值。如kinside变量,其含义是行进100m所需的时钟周期数,然后每行进100m,则产生一个脉冲clkout来驱动计费模块。VHDL语言:libraryieee;useieee.std_logic_1164.all;useieee.st

3、d_logic_unsigned.all;entityTaxi_part1isport(clk,reset,start,stop:instd_logic;sp:instd_logic_vector(2downto0);clkout:outstd_logic);endTaxi_part1;architecturebehaviorofTaxi_part1isbeginprocess(clk,reset,stop,start,sp)typestate_typeis(s0,s1);variables_state:state_type;

4、variablecnt:integerrange0to1400;variablekinside:integerrange0to1400;begincasespiswhen"000"=>kinside:=0;when"001"=>kinside:=1400;when"010"=>kinside:=1200;when"011"=>kinside:=1000;when"100"=>kinside:=800;when"101"=>kinside:=600;when"110"=>kinside:=400;when"111"=>kinsi

5、de:=200;endcase;if(reset='1')thens_state:=s0;elsif(clk'eventandclk='1')thencases_stateiswhens0=>cnt:=0;clkout<='0';if(start='1')thens_state:=s1;elses_state:=s0;endif;whens1=>clkout<='0';if(stop='1')thens_state:=s0;--相当于无客户上车elsif(sp="000")thens_state:=s1;---有客户上车,但车

6、速位0,即客户刚上车还未起步elsif(cnt=kinside)thencnt:=0;clkout<='1';s_state:=s1;elsecnt:=cnt+1;s_state:=s1;endif;endcase;endif;endprocess;endbehavior;2.计程模块:由于一个clkout信号代表行进100m,故通过对clkout计数,可以获得共行进的距离kmcount。VHDL语言:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsign

7、ed.all;entityTaxi_part2isport(clkout,reset:instd_logic;kmcnt1:outstd_logic_vector(3downto0);kmcnt2:outstd_logic_vector(3downto0);kmcnt3:outstd_logic_vector(3downto0));endTaxi_part2;architecturebehaviorofTaxi_part2isbeginprocess(clkout,reset)variablekm_reg:std_logic_

8、vector(11downto0);beginif(reset='1')thenkm_reg:="000000000000";elsif(clkout'eventandclkout='1')then--km_reg(3downto0)对应里程十分位if(km_reg(3dow

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

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

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