名称:出租车计价器设计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
阅读全文