• 方案介绍
  • 附件下载
  • 相关推荐
申请入驻 产业图谱

出租车计价设计VHDL代码Quartus仿真

07/04 13:02
232
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

2-24011P94642227.doc

共1个文件

名称:出租车计价设计VHDL代码Quartus仿真

软件:Quartus

语言:VHDL

代码功能:

任务及要求:

CPLD为复杂可编程逻辑器件,通过EDA技术对其进行编程,可将一个较复杂的数字系统集成于一个芯片中,制成专用集成电路芯片,并可随时在系统修改其逻辑功能。并最终完成电路的编程调试。

具体要求如下:

1.实现计费功能,计费标准为:按行驶里程计费,起步价为7元,并在车行3Km后按2元/Km计费,当计费器达到或超过20元时,每公里加收50%的车费,车停止不计费。

2.现场模拟功能:能模拟汽车起动、停止、暂停以及加速等状态。

3.用BCD码将车费和路程显示出来。

FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com

演示视频:

设计文档:

1. 工程文件

2. 程序文件

3. 程序编译

4. 仿真图

Testbench

4.1 整体仿真

4.2 显示模块

4.3 速度脉冲模块

4.4 计费模块

部分代码展示:

LIBRARY?ieee;
???USE?ieee.std_logic_1164.all;
--出租车计费
ENTITY?taxi_fee?IS
???PORT?(
??????clk????????:?IN?STD_LOGIC;--256Hz基准频率CLOCK0
??????reset??????:?IN?STD_LOGIC;--复位信号,低有效?
??????stop???????:?IN?STD_LOGIC;--本次行程结束,停止计费,高有效
??????start??????:?IN?STD_LOGIC;--启动信号,行程开始,高有效?
??????Speed??????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);--00:暂停等待;01:低速;10:中;,11:高速
??????Kmmoney_L??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--合计费用?HML=xxx?(BCD码显示)
??????Kmmoney_M??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--合计费用?HML=xxx?(BCD码显示)
??????Kmmoney_H??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--合计费用?HML=xxx?(BCD码显示)
??????
??????Kmcount_H??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);--总路程,里程范围为HL=0~99(BCD码显示)
??????Kmcount_L??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)--总路程,里程范围为HL=0~99(BCD码显示)
???);
END?taxi_fee;
ARCHITECTURE?trans?OF?taxi_fee?IS
--模块例化
???COMPONENT?display?IS
??????PORT?(
?????????clk????????:?IN?STD_LOGIC;
?????????reset??????:?IN?STD_LOGIC;
?????????totel_money?:?IN?STD_LOGIC_VECTOR(15?DOWNTO?0);
?????????mileage????:?IN?STD_LOGIC_VECTOR(7?DOWNTO?0);
?????????Kmmoney_L??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????Kmmoney_M??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????Kmmoney_H??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????Kmcount_H??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0);
?????????Kmcount_L??:?OUT?STD_LOGIC_VECTOR(3?DOWNTO?0)
??????);
???END?COMPONENT;
--模块例化???
???COMPONENT?speed_pulse?IS
??????PORT?(
?????????clk????????:?IN?STD_LOGIC;
?????????reset??????:?IN?STD_LOGIC;
?????????Speed??????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);
?????????one_kilometre?:?OUT?STD_LOGIC
??????);
???END?COMPONENT;
--模块例化
COMPONENT?taxi_state?IS
???PORT?(
??????clk??????????????:?IN?STD_LOGIC;
??????reset????????????:?IN?STD_LOGIC;
??????
??????stop?????????????:?IN?STD_LOGIC;
??????start????????????:?IN?STD_LOGIC;
??????Speed????????????:?IN?STD_LOGIC_VECTOR(1?DOWNTO?0);
??????one_kilometre????:?IN?STD_LOGIC;
??????mileage_out??????:?OUT?STD_LOGIC_VECTOR(7?DOWNTO?0);
??????totel_money_out??:?OUT?STD_LOGIC_VECTOR(15?DOWNTO?0)
???);
???END?COMPONENT;
???
--信号定义
???SIGNAL?one_kilometre???:?STD_LOGIC;
???SIGNAL?totel_money?????:?STD_LOGIC_VECTOR(15?DOWNTO?0);
???SIGNAL?mileage?????????:?STD_LOGIC_VECTOR(7?DOWNTO?0);
BEGIN
???--速度脉冲产生模块
???U_speed_pulse?:?speed_pulse
??????PORT?MAP?(
?????????clk?????????????=>?clk,--标准时钟,256hz?
?????????reset???????????=>?reset,--复位信号,低有效?
?????????Speed???????????=>?Speed,--00:暂停等待
?????????one_kilometre???=>?one_kilometre--1公里产生一次脉冲
??????);

点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=592

  • 2-24011P94642227.doc
    下载

相关推荐