100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
| --
 | |
| -- VHDL Architecture VHD_test.tb_24_1_4.struct
 | |
| --
 | |
| -- Created:
 | |
| --          by - remy.borgeat.UNKNOWN (WE10993)
 | |
| --          at - 15:01:25 20.03.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 VHD;
 | |
| 
 | |
| ARCHITECTURE struct OF tb_24_1_4 IS
 | |
| 
 | |
|    -- Architecture declarations
 | |
|    constant clockFrequency : real := 100.0E6;
 | |
|    constant clockPeriod : time := (1.0/clockFrequency) * 1 sec;
 | |
|    signal sClock :  std_uLogic := '1';
 | |
|    
 | |
|    signal position_int : integer := 0;
 | |
| 
 | |
|    -- Internal signal declarations
 | |
|    SIGNAL A     : std_ulogic;
 | |
|    SIGNAL B     : std_ulogic;
 | |
|    SIGNAL clock : std_ulogic;
 | |
|    SIGNAL dir   : std_ulogic;
 | |
|    SIGNAL en    : std_ulogic;
 | |
|    SIGNAL reset : std_ulogic;
 | |
| 
 | |
| 
 | |
|    -- Component Declarations
 | |
|    COMPONENT ex_24_1_4
 | |
|    PORT (
 | |
|       A     : IN     std_ulogic ;
 | |
|       B     : IN     std_ulogic ;
 | |
|       clock : IN     std_ulogic ;
 | |
|       reset : IN     std_ulogic ;
 | |
|       en    : OUT    std_ulogic ;
 | |
|       dir   : OUT    std_ulogic 
 | |
|    );
 | |
|    END COMPONENT;
 | |
| 
 | |
|    -- Optional embedded configurations
 | |
|    -- pragma synthesis_off
 | |
|    FOR ALL : ex_24_1_4 USE ENTITY VHD.ex_24_1_4;
 | |
|    -- pragma synthesis_on
 | |
| 
 | |
| 
 | |
| BEGIN
 | |
|    -- Architecture concurrent statements
 | |
|    -- HDL Embedded Text Block 1 eb1
 | |
|    reset <= '1', '0' after 2*clockPeriod;
 | |
|    sClock <= not sClock after clockPeriod/2;
 | |
|    clock <= transport sClock after clockPeriod*9/10;
 | |
|    
 | |
|    process
 | |
|      constant stepDelay: time := 1 us;
 | |
|    begin
 | |
|      wait for stepDelay;
 | |
|      for index in 0 to 10 loop
 | |
|        position_int <= position_int + 1;
 | |
|        wait for stepDelay;
 | |
|      end loop;
 | |
|      for index in 10 downto 0 loop
 | |
|        position_int <= position_int - 1;
 | |
|        wait for stepDelay;
 | |
|      end loop;
 | |
|      wait;
 | |
|    end process;
 | |
|    
 | |
|    process(position_int)
 | |
|    begin
 | |
|      case to_integer(to_unsigned(position_int, 2)) is
 | |
|        when 0 => A <= '0'; B <= '0';
 | |
|        when 1 => A <= '1'; B <= '0';
 | |
|        when 2 => A <= '1'; B <= '1';
 | |
|        when 3 => A <= '0'; B <= '1';
 | |
|        when others => null;
 | |
|      end case;
 | |
|    end process;
 | |
|    
 | |
|    
 | |
| 
 | |
| 
 | |
|    -- Instance port mappings.
 | |
|    I_dut : ex_24_1_4
 | |
|       PORT MAP (
 | |
|          A     => A,
 | |
|          B     => B,
 | |
|          clock => clock,
 | |
|          reset => reset,
 | |
|          en    => en,
 | |
|          dir   => dir
 | |
|       );
 | |
| 
 | |
| END struct;
 |