For some stupid reason I am not able to replicate the error anymore. I have since changed my code to make it work and proceed. It seems these changes had positive effect on the behaviour :(
@Rene These are the procedures : [code] procedure request_transaction ( signal rdy : out std_logic; signal ack : in std_logic ) is begin -- Record contains new xaction rdy <= '1'; -- Ack = '0', model has started wait until ack = '0'; -- Remove xaction request rdy <= '0'; -- Model executes xaction -- -- Wait for xaction done wait until ack = '1'; end procedure request_transaction; procedure wait_for_transaction ( signal rdy : in std_logic; signal ack : out std_logic ) is variable ack_time : time; begin -- Done ack <= '1'; ack_time := now; -- Find start of xaction if (rdy /= '1') then wait until rdy = '1'; else wait for 0 ns; end if; -- Model is active and has taken over contents of record ack <= '0'; end procedure wait_for_transaction; [/code] Basic idea behind it is to use transactions and handshake via these 2 procedures. best regards, Simon
_______________________________________________ Ghdl-discuss mailing list Ghdl-discuss@gna.org https://mail.gna.org/listinfo/ghdl-discuss