С одной стороны, всё гораздо сложнее, так как холды и проца, и памяти нулю не равны. Ниже пример расчёта - только для прикола.
А на самом деле в моей практике сдрам всегда работает, как ни сделай.
===== DSP to SDRAM: SETUP ================================================================
Время до прихода сигнала на ADin SDRAM: (emOV + adDLY)
Время до прихода следующего клока на CLK SDRAM: (T + clkDLY)
Сигнал должен прийти раньше клока на sdSU: (T + clkDLY) - (emOV + adDLY) > sdSU
Итого margin = T + clkDLY - emOV - adDLY - sdSU
===== DSP to SDRAM: HOLD =================================================================
Время до изменения сигнала на ADin SDRAM: (emOH + adDLY)
Время до прихода клока на CLK SDRAM: clkDLY
Сигнал должен измениться на sdIH позже прихода клока: (emOH + adDLY) - clkDLY > sdIH
Итого margin = emOH + adDLY - clkDLY - sdIH
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
===== SDRAM to DSP: SETUP ================================================================
Время до прихода сигнала на ADin DSP: (clkDLY + sdOV + adDLY)
Сигнал должен прийти раньше следующего клока на emSU: T - (clkDLY + sdOV + adDLY) > emSU
Итого margin = T - clkDLY - sdOV - adDLY - emSU
===== SDRAM to DSP: HOLD =================================================================
Время до изменения сигнала на ADin DSP: (clkDLY + sdOH + adDLY)
Сигнал должен измениться на emIH позже клока: (clkDLY + sdOH + adDLY) > emIH
Итого margin = clkDLY + sdOH + adDLY - emIH