How will you debug memory swap issue I.e. I am writing some data to addr 0x20 but due to some bug it is being written at location 0x40. Similarly, when I try to read from 0x40, I am getting the data written at addr 0x20.
Thank You @chr_sure
can you elaborate more, it will helpful to me
Using RAL backdoor access(write & read) we can find out this bug.
write data using backdoor & read data using backdoor, compare writedata & readdata
In reply to Lakshman07:
Thank You @chr_sure
can you elaborate more, it will helpful to me
There could be a wrong connection wrt to the address.
Thanks shanthi mam & chr_sure
Why we can’t find the bug using assertions
In reply to Lakshman07:
With assertions you could check if address and data are provided with the right timing. But assertions will not check and compare the values.
In reply to Lakshman07:
Good interview question: address 0x40 has been swapped with 0x20 for decades.
This is only detectable in simulation if there are multiple ways of accessing the same data. For example, if you have separate read and write address ports, or scan chains.
Hi Dave_59,
Is there any other solution without using RAL concept.
In reply to Lakshman07:
Of course, use other addresses like 41, 21 and check your code, especially the connection between the TB and the DUT, but also the addr lines inside the DUT or the TB.