4 -- File: PARITY_OUT.VHD
 
   7 use ieee.std_logic_1164.all;
 
  11                 PCI_CLOCK               :in             std_logic;
 
  12                 PCI_RSTn                :in             std_logic;
 
  13                 PAR_IN                  :in             std_logic_vector ( 2 downto 0); 
 
  14                 PAR_REG                 :in             std_logic;
 
  15                 SERR_CHECK      :in             std_logic;      
 
  16                 PERR_CHECK      :in             std_logic;
 
  17                 OE_PCI_PAR      :in             std_logic;
 
  18                 OE_PCI_PERR     :in             std_logic;
 
  19                 PA_ER_RE                :in             std_logic;
 
  20                 SERR_ENA                :in             std_logic;
 
  21                 PCI_PAR_IN      :in             std_logic;
 
  24                 PCI_PERRn               :out    std_logic;      --      s/t/s
 
  25                 PCI_SERRn               :out    std_logic;      --      o/d
 
  26                 PCI_PAR                 :out    std_logic               --      t/s
 
  28 end entity PARITY_OUT; 
 
  30 architecture PARITY_OUT_DESIGN of PARITY_OUT is
 
  32         signal PAR                      :std_logic;
 
  33         signal PAR_FF           :std_logic;
 
  34         signal SERR_FF  :std_logic;
 
  35         signal PERR_FF  :std_logic;
 
  39         PAR             <= ( PAR_IN(2) xor PAR_IN(1) xor PAR_IN(0) ); 
 
  41         process (PCI_CLOCK, PCI_RSTn) 
 
  43                 if      PCI_RSTn = '0'  then    PAR_FF  <= '0';
 
  47                 elsif (PCI_CLOCK'event and PCI_CLOCK = '1') then
 
  50                         SERR_FF <=      ((PCI_PAR_IN xor PAR) and SERR_CHECK) and PA_ER_RE and SERR_ENA and (not SERR_FF);   
 
  51                         PERR_FF <=      ((PCI_PAR_IN xor PAR) and PERR_CHECK) and (not PERR_FF);  
 
  59         PCI_PAR         <= PAR_FF                               when    OE_PCI_PAR      = '1' else 'Z' ; 
 
  60         PCI_SERRn       <= '0'                                  when    SERR_FF                 = '1' else 'Z' ;
 
  61         PCI_PERRn       <= not PERR_FF  when    OE_PCI_PERR     = '1' and PA_ER_RE = '1' else 'Z' ;
 
  63 end architecture PARITY_OUT_DESIGN;