名称:出租车计价器设计VHDL代码Quartus DE2-115开发板
软件:Quartus
语言:VHDL
代码功能:
出租车计价器设计
完成简易出租车计价器设计,选做停车等待计价功能。
基本功能:
(1)起步8元/3公里,此后2元/公里;
(2)里程指示信号为每前进50米一个高电平脉冲,上升沿有效;显示行公里数,精确到0.1公里。(模拟时速40KM/h);
(3)前进里程开始之前显示价钱,精确到0.1元;
(4)用两个按键分别表示开始行程和结束行程。
FPGA代码Verilog/VHDL代码资源下载:www.hdlcode.com
本代码已在DE2-115开发板验证,DE2-115开发板如下,其他开发板可以修改管脚适配:
演示视频:
设计文档:
1. 工程文件
2. 程序文件
代码
3. 程序编译
4. RTL图
5. 管脚分配
6. 仿真图
整体仿真图
脉冲产生模块
计费模块
显示模块
部分代码展示:
LIBRARY ieee; USE ieee.std_logic_1164.all; --(1)起步8元/3公里,此后2元/公里; --(2)里程指示信号为每前进50米一个高电平脉冲,上升沿有效;显示行公里数,精确到0.1公里。(模拟时 --速40KM/h) --(3)前进里程开始之前显示价钱,精确到0.1元; --(4)用两个按键分别表示开始行程和结束行程。 --出租车计费 ENTITY taxi_fee IS PORT ( clk : IN STD_LOGIC;--时钟 reset : IN STD_LOGIC;--复位信号,低有效 stop : IN STD_LOGIC;--本次行程结束,停止计费,高有效 start : IN STD_LOGIC;--启动信号,行程开始,高有效 --6个数码管 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX3 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX4 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX5 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); 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(15 DOWNTO 0); --6个数码管 HEX0 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX1 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX2 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX3 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX4 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); HEX5 : OUT STD_LOGIC_VECTOR(6 DOWNTO 0) ); END COMPONENT; --模块例化 COMPONENT speed_pulse IS PORT ( clk : IN STD_LOGIC; reset : IN STD_LOGIC; one_pulse : 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; one_pulse : IN STD_LOGIC; mileage_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0); totel_money_out : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ); END COMPONENT; --信号定义 SIGNAL one_pulse : STD_LOGIC; SIGNAL totel_money : STD_LOGIC_VECTOR(15 DOWNTO 0); SIGNAL mileage : STD_LOGIC_VECTOR(15 DOWNTO 0); BEGIN --速度脉冲产生模块 U_speed_pulse : speed_pulse PORT MAP ( clk => clk,--标准时钟 reset => reset,--复位信号,低有效 one_pulse => one_pulse----50米一个高电平脉冲 ); --计费模块 U_taxi_state : taxi_state PORT MAP ( clk => clk,--标准时钟 reset => reset,--复位信号,低有效 stop => stop,--本次行程结束,停止计费,高有效 start => start,--启动信号,行程开始,高有效 one_pulse => one_pulse,----50米一个高电平脉冲 mileage_out => mileage, totel_money_out => totel_money--合计费用 );
点击链接获取代码文件:http://www.hdlcode.com/index.php?m=home&c=View&a=index&aid=1209
阅读全文
733