4 -- File: CONFIG_3CH.VHD
 
   7 use IEEE.std_logic_1164.all;
 
  12         PCI_CLOCK                       :in             std_logic;
 
  13         PCI_RSTn                        :in             std_logic;
 
  14         AD_REG                          :in             std_logic_vector (31 downto 0);
 
  15         CBE_REGn                        :in             std_logic_vector ( 3 downto 0);
 
  16         CONF_WR_3CH             :in             std_logic;
 
  17         CONF_DATA_3CH   :out    std_logic_vector (31 downto 0)
 
  19 end entity CONFIG_3CH;
 
  21 architecture CONFIG_3CH_DESIGN of CONFIG_3CH is
 
  23 -- PCI Configuration Space Header Addr : HEX 3C --
 
  25         signal          CONF_MAX_LAT            :std_logic_vector (31 downto 24);
 
  26         signal          CONF_MIN_GNT            :std_logic_vector (23 downto 16);  
 
  27         signal          CONF_INT_PIN            :std_logic_vector (15 downto  8);
 
  28         signal          CONF_INT_LINE           :std_logic_vector ( 7 downto  0);  
 
  30         constant        cmd_conf_write  :std_logic_vector(3 downto 0) := "1011";
 
  34 --*******************************************************************
 
  35 --*********** PCI Configuration Space Header "INTERRUPT" ************
 
  36 --*******************************************************************
 
  38                 CONF_MAX_LAT    <= X"00";
 
  39                 CONF_MIN_GNT    <= X"00";
 
  40 --      CONF_INT_PIN    <= X"00";                               -- Interrupt -
 
  41                 CONF_INT_PIN    <= X"01";                               -- Interrupt A
 
  42 --      CONF_INT_PIN    <= X"02";                               -- Interrupt B
 
  43 --      CONF_INT_PIN    <= X"03";                               -- Interrupt C 
 
  44 --      CONF_INT_PIN    <= X"04";                               -- Interrupt D
 
  45 --      CONF_INT_PIN    <= X"05 - FF0"; -- Reserviert
 
  47         process (PCI_CLOCK,PCI_RSTn) 
 
  49                 if PCI_RSTn = '0' then  CONF_INT_LINE <= (others =>'0');
 
  51                 elsif (PCI_CLOCK'event and PCI_CLOCK = '1') then
 
  53                         if                      CONF_WR_3CH      = '1'and CBE_REGn(0) = '0' then 
 
  55                                                         CONF_INT_LINE(7 downto 0) <= AD_REG(7 downto 0);
 
  56                                 else    CONF_INT_LINE(7 downto 0) <= CONF_INT_LINE(7 downto 0);
 
  63         CONF_DATA_3CH   <= CONF_MAX_LAT & CONF_MIN_GNT & CONF_INT_PIN & CONF_INT_LINE ;
 
  65 end architecture CONFIG_3CH_DESIGN;