Здравствуйте,
Есть 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 нс. Но насколько это красиво?
|