VHDL简易出租车计价器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
------------------------------------------------------------------------------------------------------------------------顶层文件top.vhd
----------------------------------------------------------------------------------------------------------------------
LIBRARY IEEE;
USE IEEE. STD_LOGIC_1164.ALL;
USE IEEE. STD_LOGIC_UNSIGNED. ALL;
USE IEEE. STD_LOGIC_ARITH. ALL;
entity top is
port (
--输入300Hz时钟
clk :in std_logic;
--按键输入开始信号
s :in std_logic;
--按键输入等待信号
w :in std_logic;
--按键输入加速信号
sp :in std_logic;
--数码管位选
sel :out std_logic_vector(5 downto 0);
--七段数码管显示
show :out std_logic_vector(7 downto 0);
--点阵列显示
col:out std_logic_vector (7 downto 0);--lie shuchu
--点阵行显示
row:out std_logic_vector (7 downto 0)--hang shuchu
);
end top ;
architecture structural of top is
--按键模块,加入防抖
component anjian
port
(
clk :in std_logic;
s :in std_logic;
w :in std_logic;
sp:in std_logic;
--输出加入防抖后的等待信号
stop :out std_logic;
--输出加入防抖后的开始信号
start :out std_logic;
--输出加入防抖后的调速信号,共3档:00,01,10 speeding:out std_logic_vector(1 downto 0)
);
end component;
--计时,计里程,计费模块
component taxi
port(
--
clk :in std_logic;
--
start :in std_logic;
--
night :in std_logic;
stop :in std_logic;
--
mile :in std_logic;
--总价格
char0 :out std_logic_vector(3 downto 0);
char1 :out std_logic_vector(3 downto 0);
char2 :out std_logic_vector(3 downto 0);
--总等待时间
min0 :out std_logic_vector(3 downto 0);
min1 :out std_logic_vector(3 downto 0);
--单程总里程
km0 :out std_logic_vector(3 downto 0);
km1 :out std_logic_vector(3 downto 0)
);
end component;
--数码管显示模块
component display
port(
--
reset :in std_logic;
--
clk :in std_logic;
--
char0 :in std_logic_vector(3 downto 0);
char1 :in std_logic_vector(3 downto 0);
char2 :in std_logic_vector(3 downto 0);
--
min0 :in std_logic_vector(3 downto 0);
min1 :in std_logic_vector(3 downto 0);
--
km0 :in std_logic_vector(3 downto 0);
km1 :in std_logic_vector(3 downto 0);
--
sel :out std_logic_vector(5 downto 0);
--
show :out std_logic_vector(7 downto 0)
);
end component;
--调速模块
component speed
port
( clk :in std_logic;
speeding :in std_logic_vector(1 downto 0);
--输出公里脉冲信号
mile :out std_logic
);
end component;
--点阵显示模块
component dianzhen
port
(clk:in std_logic;
Start,sp:in std_logic;
col:out std_logic_vector (7 downto 0);--lie shuchu
row:out std_logic_vector (7 downto 0)--hang shuchu
);
end component;
--
signal char0 :std_logic_vector(3 downto 0);
signal char1 :std_logic_vector(3 downto 0);
signal char2 :std_logic_vector(3 downto 0);
--signal char3 :std_logic_vector(3 downto 0);
signal min0 :std_logic_vector(3 downto 0);
signal min1 :std_logic_vector(3 downto 0);
signal km0 :std_logic_vector(3 downto 0);
signal km1 :std_logic_vector(3 downto 0);
signal mile :std_logic;
signal stop:std_logic;
signal start:std_logic;