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

VHDL/FPGA/Verilog

开发平台:

MultiPlatform

  1. --The IEEE standard 1164 package, declares std_logic, rising_edge(), etc.
  2. library IEEE;
  3. use IEEE.std_logic_1164.all;
  4. use IEEE.std_logic_arith.all;
  5. use IEEE.std_logic_unsigned.all;
  6. entity scan4 is
  7.   port (rst,clk : in STD_LOGIC;
  8.         a,b,c,d: in STD_LOGIC_vector(6 downto 0);
  9.         pa,pb,pc,pd : out STD_LOGIC;
  10.         mux_out: out STD_LOGIC_vector(6 downto 0));
  11. end scan4;
  12. architecture arch of scan4 is
  13.   signal sel : std_logic_vector(1 downto 0);
  14. begin
  15.   process (rst,clk,A, B, C, D)
  16.   begin
  17.     if rst='1' then sel<="00";
  18.     elsif rising_edge(clk) then
  19.           sel<=sel + "01";
  20.           case SEL is
  21.           when "00" => MUX_OUT <= A;
  22.                        pa<='1';pb<='0';pc<='0';pd<='0'; 
  23.           when "01" => MUX_OUT <= B; 
  24.                        pa<='0';pb<='1';pc<='0';pd<='0'; 
  25.           when "10" => MUX_OUT <= C;
  26.                        pa<='0';pb<='0';pc<='1';pd<='0'; 
  27.           when "11" => MUX_OUT <= D;
  28.                        pa<='0';pb<='0';pc<='0';pd<='1'; 
  29.           when others => MUX_OUT <= "1011111";
  30.         end case;
  31.     end if;
  32.   end process;
  33. end arch;