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;
|