📄 texi_all.vhd
字号:
---文件名: texi_all.vhd
---功 能: 出租车计价器
---说 明:1.三公里以内10元,以后每增加一公里加1.6元,2分钟以后每停 一分钟加1.5元。
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity texi_all is
Port (clk : in std_logic;
start : in std_logic; --使能信号;
dina : in std_logic; --停车信号;
dinb : in std_logic; --公里脉冲信号;
cs : out std_logic_vector(1 downto 0);
shift : out std_logic_vector(3 downto 0);
switch : in std_logic_vector(3 downto 0); --数码管的显示模式;
dout : out std_logic_vector(7 downto 0));
end texi_all;
architecture Behavioral of texi_all is
component vsall
Port (clk : in std_logic; --10Hz系统扫描频率;
dina : in std_logic; --停车信号;
dinb : in std_logic; --公里脉冲信号;
douta : out std_logic; --整形后的停车信号;
doutb : out std_logic);--整形后的公里脉冲信号;
end component;
component measure
Port (clk : in std_logic; --1Hz扫描频率;
clk10 : in std_logic; --10Hz扫描频率;
start : in std_logic; --使能信号;
dina : in std_logic; --停车信号;
dinb : in std_logic; --路程脉冲信号;
distance : out std_logic_vector(15 downto 0); --总行车路程;
stime : out std_logic_vector(15 downto 0); --总停车时间;
rtime : out std_logic_vector(15 downto 0); --总行车时间;
amoney: out std_logic_vector(15 downto 0)); --计费;
end component;
component dvif
Port (clk : in std_logic;
clk1k : out std_logic;
clk1 : out std_logic; --1Hz;
clk10 : out std_logic); --10Hz;
end component;
component decoder
Port (din :in std_logic_vector(3 downto 0); --需要显示的数据输入
dout :out std_logic_vector(7 downto 0)); --译成相应的七段码的输出
end component;
component control_display
Port (clk : in std_logic; -- 1khz;
start : in std_logic;
cs : out std_logic_vector(1 downto 0);
switch : in std_logic_vector(3 downto 0); --数码管的显示模式;
din1 : in std_logic_vector(15 downto 0); --总路程计数;
din2 : in std_logic_vector(15 downto 0); --总行车时间;
din3 : in std_logic_vector(15 downto 0); --总停车时间;
din4 : in std_logic_vector(15 downto 0); --总价格计数;
shift : out std_logic_vector(3 downto 0); --数码管位选信号;
dout : out std_logic_vector(3 downto 0));
end component;
signal clk1k,clk10,clk1 : std_logic;
signal reg_dout : std_logic_vector(3 downto 0);
signal datain1,datain2,datain3,datain4 : std_logic_vector(15 downto 0);
signal vala,valb : std_logic;
begin
u0 : dvif port map (clk=>clk,clk1k=>clk1k,clk10=>clk10,clk1=>clk1);
u1 : vsall port map(clk=>clk10,dina=>dina,dinb=>dinb,douta=>vala,doutb=>valb);
u2 : measure port map(clk=>clk1,clk10=>clk1k,start=>start,dina=>vala,dinb=>valb,distance=>datain1,stime=>datain3,rtime=>datain2,amoney=>datain4);
u3 : decoder port map(din=>reg_dout,dout=>dout);
u4 : control_display port map(clk=>clk1k,start=>start,cs=>cs,switch=>switch,din1=>datain1,din2=>datain2,din3=>datain3,din4=>datain4,shift=>shift,dout=>reg_dout);
end Behavioral;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -