“Ввод производится в блок ECB с использованием Альтеровской мегафункции altdpram в синхронном режиме. Частота поступления четверок бит - 40 МГц, они защелкиваются в промежуточных D-триггерах, один раз за четыре прихода ( 10 МГц ) - генерируем импульс клока для записи в память. Длительность клока - примерно 8 нс. Строб двигал - толку нет. Как указать, чтобы триггера размещались в блоках IO?”
Судя по этим строчкам в проекте надо копать. Использовать altsyncram, altdpram используется для обратной совместимости со старыми проектами (причина конечно не в этом). Как Вам удалось 8 нс получить? Значит работа на задержках. Несинхронность. Многоклоковая синхронизация. Посмотрите рапорт временного анализатора. Неужели ничего в красном цвете нет по временам установки и удержания сигналов управления и данных. И размещения регистров в блоках I/O ничего не даст. Что Вам +- 3 нс при наличии строба сопровождения. Что мешает работать на частоте 40 мгц с периодом 25 нс. Ацех это потянет.
A logic option that implements an output register in an I/O cell that has a fast, direct connection to an I/O pin. Turning on the Fast Output Register option can help maximize I/O timing performance, for example, by permitting fast clock-to-output times. Turning this option off for a particular signal prevents the Fitter from implementing the signal automatically in an I/O cell. This option is ignored if it is applied to anything other than a register or an output or bidirectional pin fed by a register. This option can be set in the Assignment Editor (Assignments menu). This option is available for ACEX 1K, APEX 20K, APEX 20KC, APEX 20KE, APEX II, Cyclone, Cyclone II, Excalibur, FLEX 10K, FLEX 10KA, FLEX 10KE, HardCopy Stratix, MAX II, Mercury, Stratix, Stratix GX, and Stratix II devices
|