6502/65c02: Implement Rdy internally

Change-Id: I0ddc55cf7d4674c68760f7ad53fcea7d07629f8b
This commit is contained in:
David Banks 2019-10-17 15:55:49 +01:00
parent 3cc7789923
commit b4402844ae
2 changed files with 25 additions and 2 deletions

View File

@ -83,6 +83,8 @@ architecture behavioral of AtomCpuMon is
signal Din : std_logic_vector(7 downto 0);
signal Dout : std_logic_vector(7 downto 0);
signal Rdy_latched : std_logic;
signal IRQ_n_sync : std_logic;
signal NMI_n_sync : std_logic;
@ -147,7 +149,7 @@ begin
SO_n => SO_n,
Res_n_in => Res_n_in,
Res_n_out => Res_n_out,
Rdy => Rdy,
Rdy => Rdy_latched,
trig => trig,
avr_RxD => avr_RxD,
avr_TxD => avr_TxD,
@ -173,6 +175,27 @@ begin
end if;
end process;
-- 6502: Sample Rdy on the rising edge of Phi0
rdy_6502: if UseT65Core generate
process(Phi0)
begin
if rising_edge(Phi0) then
Rdy_latched <= Rdy;
end if;
end process;
end generate;
-- 65C02: Sample Rdy on the falling edge of Phi0
rdy_65c02: if UseAlanDCore generate
process(Phi0)
begin
if falling_edge(Phi0) then
Rdy_latched <= Rdy;
end if;
end process;
end generate;
-- Sample Data on the falling edge of Phi0_a
data_latch : process(Phi0_a)
begin
if falling_edge(Phi0_a) then

View File

@ -195,7 +195,7 @@ begin
Regs1( 63 downto 48) <= last_PC;
Regs1(255 downto 64) <= (others => '0');
cpu_clken_ss <= (not hold) and cpu_clken;
cpu_clken_ss <= Rdy and (not hold) and cpu_clken;
-- Generate a short (~1ms @ 1MHz) power up reset pulse
--