реклама на сайте
подробности

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


Знающий
****

Группа: Свой
Сообщений: 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 не пробовал играться.

Возможно, нужно как-то хитро назначить лапы сигналам? Не исключаю вариант, что я намудрил с констрейнами.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Timmy
сообщение May 30 2015, 02:45
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 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 для синхронного режима.
Go to the top of the page
 
+Quote Post
sysel
сообщение May 30 2015, 17:13
Сообщение #3


Знающий
****

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



Цитата(Timmy @ May 30 2015, 06:45) *
Интересно, как следует понимать hold time 1 cycle?

В даташите на AD9913 написано имеено "hold time 1 cycle", нашел пояснения далее по даташиту и в app.note, что они имели ввиду: надо удерживать сигнал io_update два цикла. Если не соблюсти требования по "setup", то получим ассинхронный режим обновления, это тоже допустимо. Но мне хотелось бы получить синхронный, а для этого требуется соблюсти setup time.
Go to the top of the page
 
+Quote Post
Timmy
сообщение Jun 1 2015, 07:35
Сообщение #4


Знающий
****

Группа: Участник
Сообщений: 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, как я выше писал.
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 18:59
Рейтинг@Mail.ru


Страница сгенерированна за 0.01403 секунд с 7
ELECTRONIX ©2004-2016