?? 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 + -