Altera_Forum
Honored Contributor
21 years agoCPU hangs after SDRAM refresh
My design is build with Quartus 4.2-SP1 / NIOS2 1.1 and consists of several peripherals sharing avalon signals. One of them is the 'new sdram controller' with shared signals, the other is an interface to user logic and is connected to an array of DSPs. This peripheral has 8-bit data and is accessed with 16-bit using dynamic bus sizing (which results on avalon side in always reading four bytes but only two of them enabled).
Sometimes my CPU hangs after accessing this device. With SignalTap I've figured out, that this behaviour occurs if the SDRAM refresh starts while the CPU is accessing this peripheral port. An internal node of SDRAM-Controller shows this event (CPU:inst|SDRAM:the_SDRAM|refresh_request). This link shows both: the signals when access is successful and if it fails: ... signal tap results ... (http://www.ing-buero-ruettger.de/nios/error.htm) I've generated this 8-bit peripheral in two versions: first as 'Interface to user logic' and then as 'Create New Component'. Both types showed the same behaviour. In SOPC-builder (V4.2 build 178) this SDRAM-Controller reports: 'Latency-aware SDR SDRAM Controller - Version 2.3'. I'm wondering that this component is labeled 'SDRAM_test_component' in the final CPU-symbol. Do I have the most actual version? Has anybody an explanation, a workaround, or better a solution? Mike