You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue might not be reproducible without the UVM environment. It is planned to open-source the environment in the next week.
UVM environment
As discussed yesterday, I am in the progress of setting up a UVM environment to verify Vicuna. The environment drives the core-side signals of the x-interface channels and therefore "emulates" a core. Any handshake signal controlled by the environment can be configured to have a random delay. Here are a few examples of what this means:
commit_valid can be configured to have a random delay (in clock cycles) w.r.t. the issue handshake
mem_ready can be configured to have a random delay (in clock cycles) w.r.t. the assertion of the mem_valid signal
mem_result_valid can be configured to have a random delay (in clock cycles) w.r.t. the memory request/response handshake
(This is not a complete list of all signals with random delay)
Note: Even though there is random delay on certain transactions, the core-side is strictly in-order. So no transaction initiated by the environment is OoO.
Issue
When turning on random delay for the result_ready signal of the result interface the coprocessor stalls indefinitely when result transactions is not immediately accepted. Below you can find a picture of the x-interface signals. After 590 ns the coprocessor stalls indefinitely. I have not further investigated this observation.
Hi @moimfeld, I fixed the logic that was responsible for the indefinite stall triggered by this particular test case. However, there are at least two more cases where de-asserting result_ready over a long period of time could cause troubles, which I will fix after PR #43 is merged (the required changes would conflict with the PR).
Hi @michael-platzer
This issue might not be reproducible without the UVM environment. It is planned to open-source the environment in the next week.
UVM environment
As discussed yesterday, I am in the progress of setting up a UVM environment to verify Vicuna. The environment drives the core-side signals of the x-interface channels and therefore "emulates" a core. Any handshake signal controlled by the environment can be configured to have a random delay. Here are a few examples of what this means:
commit_valid
can be configured to have a random delay (in clock cycles) w.r.t. the issue handshakemem_ready
can be configured to have a random delay (in clock cycles) w.r.t. the assertion of themem_valid
signalmem_result_valid
can be configured to have a random delay (in clock cycles) w.r.t. the memory request/response handshake(This is not a complete list of all signals with random delay)
Note: Even though there is random delay on certain transactions, the core-side is strictly in-order. So no transaction initiated by the environment is OoO.
Issue
When turning on random delay for the
result_ready
signal of the result interface the coprocessor stalls indefinitely when result transactions is not immediately accepted. Below you can find a picture of the x-interface signals. After 590 ns the coprocessor stalls indefinitely. I have not further investigated this observation.Problematic Instruction sequence
This sequence corresponds to the following assembly (vle8_8.S), where only the vector instructions are offloaded:
Expected execution (where random
result_valid
delay is disabled)The text was updated successfully, but these errors were encountered: