VHDL - Using 'wait until' statement seems to not work correctly.

Thread Starter

dcbingaman

Joined Jun 30, 2021
1,065
I am using Vivado:

1660594680052.png

The following timing is observed:

1660594723564.png

Notice data_ready goes high after the first 1200 ns.

The test bench for this is suppose to wait until data ready goes high and then proceeds to perform more actions via the following wait until in the test bench:

1660594852612.png

It never makes it past line 71. Apparently I am doing something wrong, as the timing diagram shows it going to logic '1' but the wait until statement does not seem to work the way I expected. Normally I use wait unit for the clock with no issues, something like this:

wait until rising_edge(clk);

That seems to work fine. Not sure what I am doing wrong here.
 

Thread Starter

dcbingaman

Joined Jun 30, 2021
1,065
The issue turned out to be that the process being simulated is synchronized to the clock. The following fixes the issue, but I am not 100% why it does:

wait until rising_edge(clk) and data_ready='1';
 
Top