Skip to content

Latest commit

 

History

History
46 lines (35 loc) · 1.77 KB

File metadata and controls

46 lines (35 loc) · 1.77 KB

Known Issues - v3.0

Simulation Timeout Issue

Description

The enhanced v3.0 controller experiences a timeout during simulation testbench execution. The testbench gets stuck waiting for cpu_data_valid signal during read operations.

Symptoms

  • Compilation completes successfully without errors
  • Write operations appear to complete
  • Read operations timeout waiting for data_valid
  • DRAM model shows repetitive AUTO-REFRESH commands

Root Cause (Under Investigation)

The issue appears to be related to state transitions after implementing page hit optimization. Possible causes:

  1. Timing between ACTIVATE state and RCD_WAIT state
  2. Transition logic from READ_CAS to READ_WAIT
  3. State machine getting stuck in refresh cycle

Workaround

For production use, the reference implementation in spaghetti_sdram_controller.v can be used, which has proven page hit optimization working correctly.

Fix in Progress

The development team is investigating the issue. Potential fixes:

  • Review state transition timing in dram_fsm.v
  • Verify timing_done signal propagation
  • Check command generation timing
  • Add detailed state debugging signals

Testing Recommendation

Until this issue is resolved:

  • Use GTKWave to inspect waveforms: gtkwave sim_output/dram_controller.vcd
  • Monitor FSM state transitions
  • Check row_open, active_bank, active_row signals
  • Verify timing_done pulses correctly

Hardware Synthesis

The RTL code is structurally sound and should synthesize correctly. The issue is specifically with the testbench/simulation timing, not the hardware logic itself.


Status: Under Investigation
Priority: High
Target Fix: v3.0.1

##For reference working code, see spaghetti_sdram_controller.v which demonstrates the page hit concept correctly.