Altera_Forum
Honored Contributor
19 years agoAccess to external RAM
I have a system that appears to work at a system clock of 70 MHz but fails to work at 85 MHz. @85MHz, when we run the firmware it behaves in a very strange manner. Often it will get to a specific point and hang. We tried to analyze the problem in debug mode but found that at different points in the code the debugger seems to "fly" to some unknown place. When this happens, no matter what we do, the debugger will no longer continue to step through the code and we are left to rebuild and download again.
We thought that possibly there were instructions that were being lost in either the writing to or reading from the ASRAM. How can I check this ? I know that the firmware that is written in c code is translated into instruction sets – and we can get a listing for it. But what is stored directly into the ASRAM and how can I view this ? Anyone have any other suggestions? Note 1. Our ASRAM has an access time of 10nS. It is for this reason that we think that the problem is with the ASRAM since the system seems to work @70MHz. Note 2. I have implemented a custom tri-state slave as the interface for ASRAM without any adjustments to any of the timing configurations. This is the only slave component that is connected to the associated registered tri-state bridge. I tried to implement the ASRAM as a direct slave without a tri-state bridge but it didn’t work at all. I am not sure why but I guessed that that the registering of the signals from the tri-state bridge possibly help with the synchronization of the signals ?