- elsif (rising_edge(PCI_CLOCK)) then
- if CONF_WR_04H = '1' and CBE_REGn(3) = '0' then
- CONF_STATUS(30) <= not (AD_REG(30) and CONF_STATUS(30));
- CONF_STATUS(31) <= not (AD_REG(31) and CONF_STATUS(31));
-
- else
- CONF_STATUS(30) <= SERR or CONF_STATUS(30);
- CONF_STATUS(31) <= PERR or CONF_STATUS(31);
-
- end if;
- end if;
- end process;
-
- --*******************************************************************
- --*********** PCI Configuration Space Header "COMMAND" **************
- --*******************************************************************
-
- -- CONF_COMMAND( 0) <= '0';-- I/O Space accesses ???
- -- CONF_COMMAND( 1) <= '0';-- Mem Space accesses ???
- -- CONF_COMMAND( 2) <= '0';-- abillity to act as a master on the PCI bus
- -- CONF_COMMAND( 3) <= '0';-- Special Cycle ???
- -- CONF_COMMAND( 4) <= '0';-- Master ???
- -- CONF_COMMAND( 5) <= '0';-- VGA ???
- -- CONF_COMMAND( 6) <= '0';-- Party checking enable/disable
- CONF_COMMAND( 7) <= '0';-- address/data stepping ???
- -- CONF_COMMAND( 8) <= '0';-- enable/disable "PCI_SERRn"
- -- CONF_COMMAND( 9) <= '0';-- fast back-to-back
- -- CONF_COMMAND(10) <= '0';-- Reserved
- -- CONF_COMMAND(11) <= '0';-- Reserved
- -- CONF_COMMAND(12) <= '0';-- Reserved
- -- CONF_COMMAND(13) <= '0';-- Reserved
- -- CONF_COMMAND(14) <= '0';-- Reserved
- -- CONF_COMMAND(15) <= '0';-- Reserved
-
- process (PCI_CLOCK,PCI_RSTn)
- begin
- if PCI_RSTn = '0' then
- CONF_COMMAND(15 downto 8) <= (others =>'0');
- CONF_COMMAND( 6 downto 0) <= (others =>'0');
-
- elsif (rising_edge(PCI_CLOCK)) then
-
- if CONF_WR_04H = '1'and CBE_REGn(1) = '0' then
- CONF_COMMAND(15 downto 8) <= AD_REG(15 downto 8);
- else
- CONF_COMMAND(15 downto 8) <= CONF_COMMAND(15 downto 8);
- end if;
-
- if CONF_WR_04H = '1'and CBE_REGn(0) = '0' then
- CONF_COMMAND( 6 downto 0) <= AD_REG( 6 downto 0);
- else
- CONF_COMMAND( 6 downto 0) <= CONF_COMMAND( 6 downto 0);
- end if;
- end if;
- end process;
-
-
- --*******************************************************************
- --******************* PCI Write Configuration Address ***************
- --*******************************************************************
-
- CONFIG_ADDR(7 downto 0) <= ADDR_REG(7 downto 0);
-
-
- process (CF_WR_COM,IRDY_REGn,TRDYn,CONFIG_ADDR)
- begin
-
- if CF_WR_COM = '1' and IRDY_REGn = '0' and TRDYn = '0' then
-
- if CONFIG_ADDR = X"04" then
- CONFIG_WRITE <= "0001";
-
- elsif CONFIG_ADDR = X"10" then
- CONFIG_WRITE <= "0010";
-
- elsif CONFIG_ADDR = X"3C" then
- CONFIG_WRITE <= "0100";
-
- -- elsif CONFIG_ADDR = X"40" then
- -- CONFIG_WRITE <= "1000";
- else
- CONFIG_WRITE <= "0000";
- end if;
- else
- CONFIG_WRITE <= "0000";
- end if;
- end process;
-
- CONF_WR_04H <= CONFIG_WRITE(0);
- CONF_WR_10H <= CONFIG_WRITE(1);
- CONF_WR_3CH <= CONFIG_WRITE(2);
- --CONF_WR_40H <= CONFIG_WRITE(3);
-
- process (CF_RD_COM, CONFIG_ADDR)
- begin
-
- if CF_RD_COM = '1' then
- if CONFIG_ADDR = X"00" then
- CONF_READ_SEL <= "000";
-
- elsif CONFIG_ADDR = X"04" then
- CONF_READ_SEL <= "001";
-
- elsif CONFIG_ADDR = X"08" then
- CONF_READ_SEL <= "010";
-
- elsif CONFIG_ADDR = X"10" then
- CONF_READ_SEL <= "011";
-
- elsif CONFIG_ADDR = X"3C" then
- CONF_READ_SEL <= "100";
-
- elsif CONFIG_ADDR = X"40" then
- CONF_READ_SEL <= "101";