Skip to main content
E0102: synaptic delay cannot be retimed

What happened

The model uses synaptic delays authored at authored_dt. The compilation target uses a different target_dt. Retiming the delay from authored_dt to target_dt produces a non-integer number of steps, which cannot be represented.

Why

Delays are integer multiples of dt. If you scale delay_steps by authored_dt / target_dt, you must get an integer. For example:
  • delay=3 at dt=1ms → at dt=2ms3 × (1/2) = 1.5 — not an integer. Fails.
  • delay=4 at dt=1ms → at dt=2ms4 × (1/2) = 2 — integer. OK.

How to fix

  1. Author the model at the target’s native dt: set dt=target_dt in the model. Then delays are written directly in the target’s step units.
  2. Choose delays that divide evenly: if target_dt = authored_dt × k, use delays that are multiples of k.
  3. Use the sim target: the simulator accepts any dt and runs delays exactly as authored.

Example