Цитата(Shtirlits @ Aug 22 2010, 06:06)

Что мешает взять сколько нужно DCM и засунуть регистры ввода-вывода в какие угодно ножки ?
Дело в том, что синхронизация приема данных осуществляется по специальному синхросигналу DQS. (При записи выдается из контроллера, при чтении - из м/с памяти.)
Первая проблема в том, что при приеме из памяти DQS передается "в фазе" с данными - т.е. фронт синхросигнала совпадает с фронтом (моментом переключения) данных, поэтому синхросигнал необходимо как минимум задержать. На сколько задерживать - в идеале зависит от требований setup/hold, но в реале к этому вносится еще и неопределенность, зависимая от разбросов на выходе м/с памяти, разброса дерева синхронизации и пр.неприятностей, которые могут возникнуть при передаче по плате (разбросы трасс, зависимость от последовательности символов). Если стремиться обеспечивать симметричные запасы для setup/hold, то задержка будет зависеть еще и от частоты.
Поскольку для задержки применили LUTы (в Spartan-3e не предусмотрено задержки входных сигналов), задержка которых +/- километр, требуется использовать схему калибровки, иначе требуемая задержка никогда не подберется точно. RLOC я так понимаю для того, чтобы оптимально разместить LUTы по отношению к IOB и друг к другу.
На низких частотах (в районе 100 МГц) еще возможно можно обойтись без приема по DQS, выполнив хороший расчет, но на нормальной частоте, под которую эта память спроектирована - никак.
На высоких частотах уже даже фиксированную задержку (которую можно достаточно точно откалибровать) не получается применять - требуется динамическая калибровка.
В конченом счете SPARTAN-3 это бюджетная серия с кууучей ограничений. Хотите от нее больше чем триггера с логикой - придется изучить нюансы и попотеть больше обычного, чтобы в результате было гладко.