43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			VHDL
		
	
	
	
	
	
-- restart -f ; run 34 ms
 | 
						|
 | 
						|
ARCHITECTURE test OF serialPortTransmitter_tester IS
 | 
						|
                                                              -- reset and clock
 | 
						|
  constant clockPeriod: time := (1.0/clockFrequency) * 1 sec;
 | 
						|
  signal clock_int: std_uLogic := '1';
 | 
						|
                                                                      -- Tx test
 | 
						|
  constant rs232Frequency: real := baudRate;
 | 
						|
  constant rs232Period: time := (1.0/rs232Frequency) * 1 sec;
 | 
						|
  constant rs232WriteInterval: time := 20*rs232Period;
 | 
						|
 | 
						|
BEGIN
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                              -- reset and clock
 | 
						|
  reset <= '1', '0' after 2*clockPeriod;
 | 
						|
 | 
						|
  clock_int <= not clock_int after clockPeriod/2;
 | 
						|
  clock <= transport clock_int after clockPeriod*9/10;
 | 
						|
 | 
						|
  ------------------------------------------------------------------------------
 | 
						|
                                                                      -- Tx test
 | 
						|
  process
 | 
						|
  begin
 | 
						|
 | 
						|
    dataIn <= (others => '0');
 | 
						|
    send <= '0';
 | 
						|
    wait for rs232Period;
 | 
						|
 | 
						|
    for index in 0 to 2**dataBitNb-1 loop
 | 
						|
      dataIn <= std_ulogic_vector(to_unsigned(index, dataIn'length));
 | 
						|
      wait until rising_edge(clock_int);
 | 
						|
      send <= '1';
 | 
						|
      wait until rising_edge(clock_int);
 | 
						|
      send <= '0';
 | 
						|
      wait for rs232WriteInterval;
 | 
						|
    end loop;
 | 
						|
 | 
						|
    wait;
 | 
						|
 | 
						|
  end process;
 | 
						|
 | 
						|
END ARCHITECTURE test;
 |