Cyclone III slave (PS) embedded memory errors
I have two Cyc III devices (master-slave, AS and PS respectively) + EPCS16 flash.
In both devices I have ROMs (megafunction), one in the master and two of them in the slave. All ROMs are initialized with .mif files.
The problem is: the slave ROMs are always broken, i.e. have bit errors, which can be seen in the In-system memory content editor (and also have bad CRC, which is calculated by the external CPU).
I can re-write content of ROM with ISMCE, and there are no errors then.
If slave is loaded from EPCS - there are errors.
If I try to reload slave via JTAG - there are errors.
I get no errors from quartus, not when programming EPCS, nor while JTAG operations. ROM megafunction themselves works correctly, i.e. I can read content of ROMs with external CPU with no problems, but content itself is broken.
Master is always working correctly - no errors, CRC is ok etc.
Connection is as shown in handbook, I also have 2 buffers on the DCLK and DATA[0] lines (74LVC1G125), but no series resistors (they are optional for 3.3V, according to handbook). Trace length from buffer to slave is about 110..120 mm.
Appreciate for any help.
I think I've found the problem.
There is a trace connected to pin 76 on the master and pin 99 on the slave. Trace is pulled up to 3.3V via 2.2k
This **bleep** resistor was dead, and the trace was actually floating.
I didn't use this pins before, so I can't reveal the resistor is dead.
As I start to use it, all logic became a total mess. Something worked, something not. By elimination I found the culprit.
I can't explain how this trace connected with loading errors (when FPGA not even in user mode), but the fact is - replacing resistor solved all problems, ROMs working now (though I don't use them anymore).
Thanks to all, problem solved!