出租车计费器设计VHDL代码Quartus仿真

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

软件:Quartus

语言:VHDL

代码功能:

出租车计费器

分为白天黑夜两种计费模式,计费标准如下,quartusII 9.0版本:


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


演示视频:

设计文档:

设计文档.doc

1. 工程文件


2. 程序文件

顶层电路图


代码


3. 程序编译


4. RTL图


5. 仿真文件


6. 仿真图








显示模块仿真图



控制模块



速度脉冲模块


部分代码展示:

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码显示)
      
      Kmtime_H    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--总时间
      Kmtime_L    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
   );
END taxi_fee;
ARCHITECTURE trans OF taxi_fee IS
--模块例化
   COMPONENT display IS
      PORT (
         clk        : IN STD_LOGIC;
         reset      : IN STD_LOGIC;
         wait_time    : IN STD_LOGIC_VECTOR(7 DOWNTO 0);
         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);
         Kmtime_H    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0);--总时间
         Kmtime_L    : OUT STD_LOGIC_VECTOR(3 DOWNTO 0)
      );
   END COMPONENT;
--模块例化   
   COMPONENT speed_pulse IS
      PORT (
      clk             : IN STD_LOGIC;--标准时钟,256hz 
      reset           : IN STD_LOGIC;--复位信号,低有效 
      Speed           : IN STD_LOGIC;--0:暂停等待;1:行驶
      one_kilometre   : OUT STD_LOGIC;--1公里产生一次
      seconds_60  : OUT STD_LOGIC--暂停等待,60s产生一次脉冲
      );
   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;
      seconds_60   : IN STD_LOGIC;
      wait_time_out    : OUT STD_LOGIC_VECTOR(7 DOWNTO 0);
      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 seconds_60  : STD_LOGIC;
   SIGNAL totel_money     : STD_LOGIC_VECTOR(15 DOWNTO 0);
   SIGNAL mileage         : STD_LOGIC_VECTOR(7 DOWNTO 0);
   SIGNAL wait_time         : STD_LOGIC_VECTOR(7 DOWNTO 0);
BEGIN 
   
   U_speed_pulse : speed_pulse
      PORT MAP (
         clk             => clk,--标准时钟,256hz 
         reset           => reset,--复位信号,低有效 
         Speed           => Speed,--0:暂停等待
         one_kilometre   => one_kilometre,--1公里产生一次脉冲
         seconds_60  => seconds_60--暂停等待,60s产生一次脉冲
      );

代码文件(付费下载):



1、代码文件需要付费后才可见。
2、支付问题请联系微信公众号客服。
3、优质Verilog/VHDL代码资源,所见即所得。
Verilog/VHDL资源下载 » 出租车计费器设计VHDL代码Quartus仿真

发表评论

模板文件不存在: ./template/plugins/comment/pc/index.htm

注册为本站会员,充值100得150,详情咨询客服

目前为止共有 *** 位优秀的会员加入! 立刻加入会员