Line 163... |
Line 163... |
cf_rst_n : out std_logic;
|
cf_rst_n : out std_logic;
|
cf_cs0_n : out std_logic;
|
cf_cs0_n : out std_logic;
|
cf_cs1_n : out std_logic;
|
cf_cs1_n : out std_logic;
|
cf_rd_n : out std_logic;
|
cf_rd_n : out std_logic;
|
cf_wr_n : out std_logic;
|
cf_wr_n : out std_logic;
|
cf_cs16_n : out std_logic;
|
|
cf_a : out std_logic_vector(2 downto 0);
|
cf_a : out std_logic_vector(2 downto 0);
|
cf_d : inout std_logic_vector(15 downto 0);
|
cf_d : inout std_logic_vector(15 downto 0);
|
-- cf_d : inout std_logic_vector(7 downto 0);
|
|
|
|
-- Parallel I/O port
|
-- Parallel I/O port
|
porta : inout std_logic_vector(7 downto 0);
|
porta : inout std_logic_vector(7 downto 0);
|
portb : inout std_logic_vector(7 downto 0);
|
portb : inout std_logic_vector(7 downto 0);
|
|
|
Line 980... |
Line 978... |
cf_cs, cf_rd, cf_wr, cf_d )
|
cf_cs, cf_rd, cf_wr, cf_d )
|
begin
|
begin
|
cf_rst_n <= Reset_n;
|
cf_rst_n <= Reset_n;
|
cf_cs0_n <= not( cf_cs ) or cpu_addr(3);
|
cf_cs0_n <= not( cf_cs ) or cpu_addr(3);
|
cf_cs1_n <= not( cf_cs and cpu_addr(3));
|
cf_cs1_n <= not( cf_cs and cpu_addr(3));
|
cf_cs16_n <= '1';
|
|
cf_wr <= cf_cs and (not cpu_rw);
|
cf_wr <= cf_cs and (not cpu_rw);
|
cf_rd <= cf_cs and cpu_rw;
|
cf_rd <= cf_cs and cpu_rw;
|
cf_wr_n <= not cf_wr;
|
cf_wr_n <= not cf_wr;
|
cf_rd_n <= not cf_rd;
|
cf_rd_n <= not cf_rd;
|
cf_a <= cpu_addr(2 downto 0);
|
cf_a <= cpu_addr(2 downto 0);
|
if cf_wr = '1' then
|
if cf_wr = '1' then
|
cf_d(7 downto 0) <= cpu_data_out;
|
cf_d(7 downto 0) <= cpu_data_out;
|
|
cf_d(15 downto 8) <= (others => '0');
|
else
|
else
|
cf_d(7 downto 0) <= "ZZZZZZZZ";
|
cf_d(7 downto 0) <= (others => 'Z');
|
|
cf_d(15 downto 8) <= (others => 'Z');
|
end if;
|
end if;
|
cf_data_out <= cf_d(7 downto 0);
|
cf_data_out <= cf_d(7 downto 0);
|
cf_d(15 downto 8) <= "ZZZZZZZZ";
|
|
end process;
|
end process;
|
|
|
--
|
--
|
-- Hold CF access for a few cycles
|
-- Hold CF access for a few cycles
|
--
|
--
|