mirror of
https://github.com/freitz85/AppleIISd.git
synced 2024-06-09 22:29:43 +00:00
Test bench
This commit is contained in:
parent
797993500e
commit
8a6e7e647e
21
VHDL/IO.vhd
21
VHDL/IO.vhd
|
@ -52,7 +52,10 @@ Port (
|
||||||
MOSI : out std_logic;
|
MOSI : out std_logic;
|
||||||
NSEL : out std_logic;
|
NSEL : out std_logic;
|
||||||
SCLK : out std_logic;
|
SCLK : out std_logic;
|
||||||
WP : in std_logic
|
WP : in std_logic;
|
||||||
|
|
||||||
|
data_dbg : out std_logic_vector (7 downto 0);
|
||||||
|
add_dbg : out std_logic_vector (1 downto 0)
|
||||||
);
|
);
|
||||||
end IO;
|
end IO;
|
||||||
|
|
||||||
|
@ -160,17 +163,23 @@ begin
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
DATA <= data_out when (data_en = '1') else (others => 'Z'); -- data bus tristate
|
DATA <= data_out when (data_en = '1') else (others => 'Z'); -- data bus tristate
|
||||||
|
data_dbg <= data_in;
|
||||||
|
add_dbg <= addr_low_int;
|
||||||
|
|
||||||
data_latch: process(ndev_sel)
|
data_latch: process(CLK)
|
||||||
begin
|
begin
|
||||||
if(rising_edge(ndev_sel) and (rnw_int = '0')) then
|
--if(rising_edge(CLK) and NDEV_SEL = '0') and (RNW = '0')) then
|
||||||
data_in <= DATA;
|
--if rising_edge(CLK) and (NDEV_SEL = '0') then
|
||||||
|
if rising_edge(CLK) then
|
||||||
|
if (NDEV_SEL = '0') then
|
||||||
|
data_in <= DATA;
|
||||||
|
end if;
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
||||||
add_latch: process(ndev_sel)
|
add_latch: process(NDEV_SEL)
|
||||||
begin
|
begin
|
||||||
if falling_edge(ndev_sel) then
|
if falling_edge(NDEV_SEL) then
|
||||||
addr_low_int <= ADD_LOW;
|
addr_low_int <= ADD_LOW;
|
||||||
end if;
|
end if;
|
||||||
end process;
|
end process;
|
||||||
|
|
|
@ -62,7 +62,10 @@ ARCHITECTURE behavior OF IO_Test IS
|
||||||
MOSI : OUT std_logic;
|
MOSI : OUT std_logic;
|
||||||
NSEL : OUT std_logic;
|
NSEL : OUT std_logic;
|
||||||
SCLK : OUT std_logic;
|
SCLK : OUT std_logic;
|
||||||
WP : IN std_logic
|
WP : IN std_logic;
|
||||||
|
|
||||||
|
data_dbg : out std_logic_vector (7 downto 0);
|
||||||
|
add_dbg : out std_logic_vector (1 downto 0)
|
||||||
);
|
);
|
||||||
END COMPONENT;
|
END COMPONENT;
|
||||||
|
|
||||||
|
@ -94,6 +97,9 @@ ARCHITECTURE behavior OF IO_Test IS
|
||||||
signal MOSI : std_logic;
|
signal MOSI : std_logic;
|
||||||
signal NSEL : std_logic;
|
signal NSEL : std_logic;
|
||||||
signal SCLK : std_logic;
|
signal SCLK : std_logic;
|
||||||
|
|
||||||
|
signal data_dbg : std_logic_vector (7 downto 0);
|
||||||
|
signal add_dbg : std_logic_vector (1 downto 0);
|
||||||
|
|
||||||
-- Clock period definitions
|
-- Clock period definitions
|
||||||
constant CLK_period : time := 142 ns;
|
constant CLK_period : time := 142 ns;
|
||||||
|
@ -123,7 +129,10 @@ BEGIN
|
||||||
MOSI => MOSI,
|
MOSI => MOSI,
|
||||||
NSEL => NSEL,
|
NSEL => NSEL,
|
||||||
SCLK => SCLK,
|
SCLK => SCLK,
|
||||||
WP => WP
|
WP => WP,
|
||||||
|
|
||||||
|
data_dbg => data_dbg,
|
||||||
|
add_dbg => add_dbg
|
||||||
);
|
);
|
||||||
|
|
||||||
-- Clock process definitions
|
-- Clock process definitions
|
||||||
|
@ -159,6 +168,7 @@ BEGIN
|
||||||
wait for CLK_period * 10;
|
wait for CLK_period * 10;
|
||||||
|
|
||||||
-- read reg 0
|
-- read reg 0
|
||||||
|
DATA <= (others => 'Z');
|
||||||
wait until falling_edge(PHI0);
|
wait until falling_edge(PHI0);
|
||||||
wait for 300 ns;
|
wait for 300 ns;
|
||||||
ADD_LOW <= (others => '0');
|
ADD_LOW <= (others => '0');
|
||||||
|
@ -191,12 +201,16 @@ BEGIN
|
||||||
wait for 300 ns;
|
wait for 300 ns;
|
||||||
ADD_LOW <= (others => '0');
|
ADD_LOW <= (others => '0');
|
||||||
RNW <= '0';
|
RNW <= '0';
|
||||||
|
DATA <= (others => 'U');
|
||||||
wait until rising_edge(PHI0);
|
wait until rising_edge(PHI0);
|
||||||
NDEV_SEL <= '0';
|
NDEV_SEL <= '0';
|
||||||
|
DATA <= (others => 'Z');
|
||||||
|
wait for 200 ns;
|
||||||
DATA <= (others => '0');
|
DATA <= (others => '0');
|
||||||
wait until falling_edge(PHI0);
|
wait until falling_edge(PHI0);
|
||||||
NDEV_SEL <= '1';
|
NDEV_SEL <= '1';
|
||||||
wait for CLK_period;
|
wait for 15 ns;
|
||||||
|
--wait for CLK_period;
|
||||||
ADD_LOW <= (others => 'U');
|
ADD_LOW <= (others => 'U');
|
||||||
RNW <= '1';
|
RNW <= '1';
|
||||||
DATA <= (others => 'Z');
|
DATA <= (others => 'Z');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user