58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
ARCHITECTURE RTL OF debouncerULogicVector_tester IS
 | 
						|
 | 
						|
  constant clockFrequency : real := 100.0E6;
 | 
						|
  constant clockPeriod     : time := 1.0/clockFrequency * 1 sec;
 | 
						|
  signal clock_int         : std_ulogic := '1';
 | 
						|
 | 
						|
  constant longDelay : time := 2**(counterBitNb+1) * clockPeriod;
 | 
						|
 | 
						|
BEGIN
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                             -- reset and clock
 | 
						|
  reset <= '1', '0' after 3*clockPeriod;
 | 
						|
  clock_int <= not clock_int after clockPeriod/2;
 | 
						|
  clock <= transport clock_int after clockPeriod*9/10;
 | 
						|
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                                 -- input signal
 | 
						|
  process
 | 
						|
  begin
 | 
						|
    input <= (others => '0');
 | 
						|
    wait for longDelay;
 | 
						|
                                                            -- transition 0 to 1
 | 
						|
    input(1) <= '1',
 | 
						|
                '0' after  1*clockPeriod,
 | 
						|
                '1' after  3*clockPeriod,
 | 
						|
                '0' after  5*clockPeriod,
 | 
						|
                '1' after  6*clockPeriod,
 | 
						|
                '0' after  8*clockPeriod,
 | 
						|
                '1' after 10*clockPeriod;
 | 
						|
    wait for longDelay;
 | 
						|
                                                      -- transition to other bit
 | 
						|
                                                            -- transition 1 to 0
 | 
						|
    input(1) <= '0';
 | 
						|
    wait for longDelay;
 | 
						|
    input(2) <= '1';
 | 
						|
    wait for longDelay;
 | 
						|
                                                            -- transition 1 to 0
 | 
						|
    input(2) <= '0',
 | 
						|
                '1' after  1*clockPeriod,
 | 
						|
                '0' after  3*clockPeriod,
 | 
						|
                '1' after  5*clockPeriod,
 | 
						|
                '0' after  6*clockPeriod,
 | 
						|
                '1' after  8*clockPeriod,
 | 
						|
                '0' after 10*clockPeriod;
 | 
						|
    wait for longDelay;
 | 
						|
                                                                -- short 1 pulse
 | 
						|
    input(3) <= '1',
 | 
						|
                '0' after  1*clockPeriod,
 | 
						|
                '1' after  3*clockPeriod,
 | 
						|
                '0' after  5*clockPeriod,
 | 
						|
                '1' after  6*clockPeriod,
 | 
						|
                '0' after  8*clockPeriod;
 | 
						|
                                                            -- end of simulation
 | 
						|
    wait;
 | 
						|
  end process;
 | 
						|
 | 
						|
END ARCHITECTURE RTL;
 |