|
Соблюсти временные диаграммы на 200 Мгц, на Cyclone IV GX |
|
|
|
May 28 2015, 11:39
|

Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 3-07-07
Пользователь №: 28 852

|
Здравствуйте!
Делаю связку EP4CGX22BF14C8 (Cyclone IV) + AD9913 (DDS). Тактирую AD9913 частотой 200 МГц. Питание у AD9913 1.8В, заведу сигналы управления ей на один банк ПЛИС, который тоже буду питать 1.8В.
На ПЛИС будет приходить SYNC_CLK от AD9913 (200МГц, период 5 нс), CMOS 1.8V От ПЛИС будет идти сигнал IO_UPDATE на AD9913 (setup time(rising edge) 0.5ns, hold time 1 cycle), CMOS 1.8V
В дизайне IO_UPDATE выставляю по фронту (rising_edge) SYNC_CLK.
Как мне соблюсти требования Tsu 0.5ns на входе AD9913?
Пробовал заводить SYNC_CLK на CLK лапу банка, пробовал на обычную. Пробовал включать Fast Register Output на IO_UPDATE, пробовал без этого. Писал скрипты в TimeQuest (честно говоря, мог и накосячить).
Результат без мультицикла: по Fast-corner – успеваю, по Slow – опаздываю. Результат с мультициклом: по Fast – бегу вперёд паровоза, по Slow – всё ок. Со встроенной PLL не пробовал играться.
Возможно, нужно как-то хитро назначить лапы сигналам? Не исключаю вариант, что я намудрил с констрейнами.
|
|
|
|
|
 |
Ответов
|
May 30 2015, 02:45
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(sysel @ May 28 2015, 14:39)  На ПЛИС будет приходить SYNC_CLK от AD9913 (200МГц, период 5 нс), CMOS 1.8V От ПЛИС будет идти сигнал IO_UPDATE на AD9913 (setup time(rising edge) 0.5ns, hold time 1 cycle), CMOS 1.8V Интересно, как следует понимать hold time 1 cycle? По идее, setup+hold должна быть меньше периода, иначе ширина окна для валидных данных получается отрицательной. Возможно, тут имеется ввиду возможность асинхронной установки IO_UPDATE. Если же надо сделать синхронную, то для точной синхронизации потребуется PLL в режиме zero delay buffer и статический сдвиг фазы клока, тактирующего выход IO_UPDATE c FPGA. Но надо знать реальный hold для синхронного режима.
|
|
|
|
|
Jun 1 2015, 07:35
|
Знающий
   
Группа: Участник
Сообщений: 835
Регистрация: 9-08-08
Из: Санкт-Петербург
Пользователь №: 39 515

|
Цитата(sysel @ May 30 2015, 20:13)  В даташите на AD9913 написано имеено "hold time 1 cycle", нашел пояснения далее по даташиту и в app.note, что они имели ввиду: надо удерживать сигнал io_update два цикла. Если не соблюсти требования по "setup", то получим ассинхронный режим обновления, это тоже допустимо. Но мне хотелось бы получить синхронный, а для этого требуется соблюсти setup time. Я понимаю это так, что в даташите указан setup для только восходящего фронта IO_UPDATE, а hold - только для нисходящего фронта. А вторая пара setup/hold не указана, так что полные констрейны по этому даташиту не написать. Даже если hold для восходящего фронта будет 0.5нс, для синхронного режима потребуется PLL, как я выше писал.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|