TRAFFIC_MUX.VHD
上传用户:dgjihui88
上传日期:2013-07-23
资源大小:43k
文件大小:1k
源码类别:

VHDL/FPGA/Verilog

开发平台:

MultiPlatform

  1. LIBRARY IEEE;   
  2. USE IEEE.std_logic_1164.all;
  3. USE IEEE.std_logic_unsigned.all;   
  4. USE IEEE.std_logic_arith.all;
  5. entity traffic_mux is
  6.   port(reset: in std_logic;
  7.        clk:in std_logic;
  8.        ena_scan:in std_logic;
  9.        recount:in std_logic; 
  10.        sign_state: in std_logic_vector(1 downto 0);
  11.        load: out std_logic_vector(7 downto 0));
  12. end;   
  13. --define the signal_structure and flow of the device
  14. architecture BEHAVIOR of traffic_mux is
  15. CONSTANT yellow0_time: integer := 5; 
  16. CONSTANT green0_time: integer := 20;
  17. CONSTANT yellow1_time: integer := 5;
  18. CONSTANT green1_time : integer := 20; 
  19. begin
  20.   load_time:process(reset,clk)
  21.   begin
  22.      if reset='1' then
  23.         load<="00000000"; 
  24.      elsif (clk'event and clk='1') then
  25.         if (ena_scan='1' and recount = '1') then
  26.            CASE sign_state IS
  27.              WHEN "00" =>
  28.                    load <= CONV_STD_LOGIC_VECTOR(green1_time,8);
  29.              WHEN "01" =>
  30.                    load <= CONV_STD_LOGIC_VECTOR(yellow0_time,8);
  31.              WHEN "10" =>
  32.                    load <= CONV_STD_LOGIC_VECTOR(green0_time,8);
  33.              WHEN OTHERS =>
  34.                    load <= CONV_STD_LOGIC_VECTOR(yellow1_time,8);
  35.            END CASE;
  36.         end if;
  37.      end if;
  38.   end process;
  39. end BEHAVIOR;