Здравствуйте,
Есть Virtex 4 и внешняя асинхронная ППЗУ.
Времянка работы с ППЗУ проще не куда - выставляем адрес, через 40 нс(взято для примера ибо хочется рассмотреть общий случай) можно забирать данные.
Время доступа данных из ППЗУ Td= Taddr+Tacc+Tdata
Taddr - время прохождения сигнала по шине addr из ПЛИС в ППЗУ
Tacc - 40 нс
Tdata - время прохождения сигнала по шине data из ППЗУ в ПЛИС.
В данный момент времянка чтения/записи сделана на счетчике, т.е. клок проекта выше чем период считывания из ППЗУ, время смены адреса и прочего осуществляется по enable-ам которые определяются значением счетчика.
Как правильно описать констрейны чтобы учесть(ограничить) время Taddr и Tdata.
Можно решение в лоб.
Задать констрейн OFFSET OUT AFTER на шину add скажем 6 нс.
Задать констрейн OFFSET IN BEFORE на шину data скажем 3 нс.
Итого мы ограничим задержку Taddr+Tacc=9нс.
Таким образом, максимальное время доступа к памяти 40+9 = 49 нс.
Если допустим проект работает на 100 МГц, то времянка чтения из ППЗУ определяется 5 тактами работы = 50 нс. Но насколько это красиво?