⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 texi_all.vhd

📁 一些很好的FPGA设计实例
💻 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 + -