149 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| --
 | |
| -- VHDL Architecture AhbLiteComponents_test.ahbGpio_tb.struct
 | |
| --
 | |
| -- Created:
 | |
| --          by - remi.heredero.UNKNOWN (WE2330808)
 | |
| --          at - 14:16:25 19.04.2024
 | |
| --
 | |
| -- 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;
 |