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
In the TLMasterModel Trait, there are tlWrite* and tlRead* functions for each TileLink channel. All of them contain logic that looks something like this:
I'm a bit confused by the line while(peek(memTL.a.ready) != BigInt(0)) {. That would suggest the logic of this function looks something like this:
Assert valid.
Wait for ready to deassert.
Wait a cycle, then deassert valid.
Since the TileLink transaction fires when both ready and valid are high, shouldn't we wait for ready to assert, not deassert? Should that line read while(peek(memTL.a.ready) == BigInt(0)) { or while(peek(memTL.a.ready) != BigInt(1)) {?
The text was updated successfully, but these errors were encountered:
Yeah, you're absolutely correct. TLMasterModel has always been a bit rickety compared to AXI, perhaps this is one reason why. I'll assign fixing this to myself. The model should really be tested more.
No problem, thanks for the confirmation! Let me know if I can do anything to help out. I can certainly submit a PR to fix these logical bugs in the TLMasterModel trait, but since I'm not so familiar with the code base, I don't know if I'll really be able to add new tests (which it sounds like you'd like to do).
In the TLMasterModel Trait, there are
tlWrite*
andtlRead*
functions for each TileLink channel. All of them contain logic that looks something like this:I'm a bit confused by the line
while(peek(memTL.a.ready) != BigInt(0)) {
. That would suggest the logic of this function looks something like this:valid
.ready
to deassert.valid
.Since the TileLink transaction fires when both
ready
andvalid
are high, shouldn't we wait forready
to assert, not deassert? Should that line readwhile(peek(memTL.a.ready) == BigInt(0)) {
orwhile(peek(memTL.a.ready) != BigInt(1)) {
?The text was updated successfully, but these errors were encountered: