149 lines
4.5 KiB
Plaintext
149 lines
4.5 KiB
Plaintext
|
--
|
||
|
-- VHDL Architecture AhbLiteComponents_test.ahbGpio_tb.struct
|
||
|
--
|
||
|
-- Created:
|
||
|
-- by - axel.amand.UNKNOWN (WE7860)
|
||
|
-- at - 15:06:49 28.04.2023
|
||
|
--
|
||
|
-- Generated by Mentor Graphics' HDL Designer(TM) 2019.2 (Build 5)
|
||
|
--
|
||
|
LIBRARY ieee;
|
||
|
USE ieee.std_logic_1164.all;
|
||
|
USE ieee.numeric_std.all;
|
||
|
LIBRARY AhbLite;
|
||
|
USE AhbLite.ahbLite.all;
|
||
|
|
||
|
LIBRARY AhbLiteComponents;
|
||
|
LIBRARY AhbLiteComponents_test;
|
||
|
|
||
|
ARCHITECTURE struct OF ahbGpio_tb IS
|
||
|
|
||
|
-- Architecture declarations
|
||
|
constant ioNb: positive := 8;
|
||
|
|
||
|
constant clockFrequency : real := 60.0E6;
|
||
|
--constant clockFrequency : real := 66.0E6;
|
||
|
|
||
|
-- Internal signal declarations
|
||
|
SIGNAL hAddr : unsigned( ahbAddressBitNb-1 DOWNTO 0 );
|
||
|
SIGNAL hClk : std_uLogic;
|
||
|
SIGNAL hRData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0);
|
||
|
SIGNAL hReady : std_uLogic;
|
||
|
SIGNAL hReset_n : std_uLogic;
|
||
|
SIGNAL hResp : std_uLogic;
|
||
|
SIGNAL hSel : std_uLogic;
|
||
|
SIGNAL hTrans : std_ulogic_vector(ahbTransBitNb-1 DOWNTO 0);
|
||
|
SIGNAL hWData : std_ulogic_vector(ahbDataBitNb-1 DOWNTO 0);
|
||
|
SIGNAL hWrite : std_uLogic;
|
||
|
SIGNAL io : std_logic_vector(ioNb-1 DOWNTO 0);
|
||
|
SIGNAL ioEn : std_ulogic_vector(ioNb-1 DOWNTO 0);
|
||
|
SIGNAL ioIn : std_ulogic_vector(ioNb-1 DOWNTO 0);
|
||
|
SIGNAL ioOut : std_ulogic_vector(ioNb-1 DOWNTO 0);
|
||
|
|
||
|
|
||
|
-- Component Declarations
|
||
|
COMPONENT ahbGpio
|
||
|
GENERIC (
|
||
|
ioNb : positive := 8
|
||
|
);
|
||
|
PORT (
|
||
|
hAddr : IN unsigned ( ahbAddressBitNb-1 DOWNTO 0 );
|
||
|
hClk : IN std_uLogic ;
|
||
|
hReset_n : IN std_uLogic ;
|
||
|
hSel : IN std_uLogic ;
|
||
|
hTrans : IN std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0);
|
||
|
hWData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0);
|
||
|
hWrite : IN std_uLogic ;
|
||
|
ioIn : IN std_ulogic_vector (ioNb-1 DOWNTO 0);
|
||
|
hRData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0);
|
||
|
hReady : OUT std_uLogic ;
|
||
|
hResp : OUT std_uLogic ;
|
||
|
ioEn : OUT std_ulogic_vector (ioNb-1 DOWNTO 0);
|
||
|
ioOut : OUT std_ulogic_vector (ioNb-1 DOWNTO 0)
|
||
|
);
|
||
|
END COMPONENT;
|
||
|
COMPONENT ahbGpio_tester
|
||
|
GENERIC (
|
||
|
ioNb : positive;
|
||
|
clockFrequency : real
|
||
|
);
|
||
|
PORT (
|
||
|
hRData : IN std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0);
|
||
|
hReady : IN std_uLogic ;
|
||
|
hResp : IN std_uLogic ;
|
||
|
hAddr : OUT unsigned ( ahbAddressBitNb-1 DOWNTO 0 );
|
||
|
hClk : OUT std_uLogic ;
|
||
|
hReset_n : OUT std_uLogic ;
|
||
|
hSel : OUT std_uLogic ;
|
||
|
hTrans : OUT std_ulogic_vector (ahbTransBitNb-1 DOWNTO 0);
|
||
|
hWData : OUT std_ulogic_vector (ahbDataBitNb-1 DOWNTO 0);
|
||
|
hWrite : OUT std_uLogic ;
|
||
|
io : INOUT std_logic_vector (ioNb-1 DOWNTO 0)
|
||
|
);
|
||
|
END COMPONENT;
|
||
|
|
||
|
-- Optional embedded configurations
|
||
|
-- pragma synthesis_off
|
||
|
FOR ALL : ahbGpio USE ENTITY AhbLiteComponents.ahbGpio;
|
||
|
FOR ALL : ahbGpio_tester USE ENTITY AhbLiteComponents_test.ahbGpio_tester;
|
||
|
-- pragma synthesis_on
|
||
|
|
||
|
|
||
|
BEGIN
|
||
|
-- Architecture concurrent statements
|
||
|
-- HDL Embedded Text Block 1 eb1
|
||
|
tristate: process(ioEn, ioOut)
|
||
|
begin
|
||
|
for index in io'range loop
|
||
|
if ioEn(index) = '1' then
|
||
|
io(index) <= ioOut(index);
|
||
|
else
|
||
|
io(index) <= 'Z';
|
||
|
end if;
|
||
|
end loop;
|
||
|
end process tristate;
|
||
|
|
||
|
ioIn <= std_ulogic_vector(io);
|
||
|
|
||
|
|
||
|
-- Instance port mappings.
|
||
|
I_DUT : ahbGpio
|
||
|
GENERIC MAP (
|
||
|
ioNb => ioNb
|
||
|
)
|
||
|
PORT MAP (
|
||
|
hAddr => hAddr,
|
||
|
hClk => hClk,
|
||
|
hReset_n => hReset_n,
|
||
|
hSel => hSel,
|
||
|
hTrans => hTrans,
|
||
|
hWData => hWData,
|
||
|
hWrite => hWrite,
|
||
|
ioIn => ioIn,
|
||
|
hRData => hRData,
|
||
|
hReady => hReady,
|
||
|
hResp => hResp,
|
||
|
ioEn => ioEn,
|
||
|
ioOut => ioOut
|
||
|
);
|
||
|
I_tester : ahbGpio_tester
|
||
|
GENERIC MAP (
|
||
|
ioNb => ioNb,
|
||
|
clockFrequency => clockFrequency
|
||
|
)
|
||
|
PORT MAP (
|
||
|
hRData => hRData,
|
||
|
hReady => hReady,
|
||
|
hResp => hResp,
|
||
|
hAddr => hAddr,
|
||
|
hClk => hClk,
|
||
|
hReset_n => hReset_n,
|
||
|
hSel => hSel,
|
||
|
hTrans => hTrans,
|
||
|
hWData => hWData,
|
||
|
hWrite => hWrite,
|
||
|
io => io
|
||
|
);
|
||
|
|
||
|
END struct;
|