|
TimeQuest. Борьба со slack., Задержки межд Fast input register/DDR reg и регистром приёмником. |
|
|
|
Aug 9 2017, 06:14
|

В поисках себя...
   
Группа: Свой
Сообщений: 729
Регистрация: 11-06-13
Из: Санкт-Петербург
Пользователь №: 77 140

|
Работаю c чипом CYCLONE V - 5CSEMA5F31C6. САПР - Quartus 13.1. Столкнулся с проблемой, что между Fast input register или выходами DDR регистра и регистром-приёмником данных набегает огромная задержка по данным. Из-за чего возникает нарушение по setup. Для начала опишу кратко дизайн: Имеем 3 приёмные LVDS линии c DDR регистрами. На вход CLK подается опорная частота, которая на PLL умножается на 10 5, для тактирования приёмников.  TimeQuest радостно сообщает о том, что у нас нарушение по setup и фиг вам, а не частота приёмников выше 200...230 MHZ.  Посмотрим, чуть внимательнее на само нарушение. Набегает огромная задержка почти в 3 нс по данным.  Может Quartus расположил регистры приёмники в другом конце чипа ? Да нет, ближе практически некуда:  На данный момент у меня есть 2 мысли как можно решить проблему: 1. На pll сформировать частоту со сдвигом, и от неё тактировать регистры-приёмники. 2. На LCELL сформировать цепь задержки тактового сигнала регистров приёмников(тупиковый вариант). Хотелось бы услышать совета от более опытных коллег. Может есть какой-то другой способ решения проблемы ? Пока мой SDC файл выглядит так: Код #************************************************************** # Create Clock #************************************************************** set_time_format -unit ns -decimal_places 3 create_clock -name {CLK} -period 80MHz [get_ports {CLK}]
#************************************************************** # Create PLL Clock #************************************************************** derive_pll_clocks
set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX0}] set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX1}] set_false_path -from [get_clocks {MY_PLL_COMP|my_pll_inst|altera_pll_i|general[0].gpll~PLL_OUTPUT_COUNTER|divclk}] -to [get_ports {RX2}] Прикрепляю тестовый проект:
Сообщение отредактировал Flip-fl0p - Aug 9 2017, 07:32
|
|
|
|
|
 |
Ответов
|
Aug 9 2017, 17:20
|
Местный
  
Группа: Свой
Сообщений: 214
Регистрация: 26-05-05
Пользователь №: 5 397

|
Цитата(Flip-fl0p @ Aug 9 2017, 22:34)  и почему железка то работает как положено и самое главное стабильно, имея такое нарушение по Setup ? А что удивительного? если задержка ровно на такт у вас, то всё и работает как надо, другое дело, если вы начнете её в температуре гонять, от нулей до +70С, там могут начаться чудеса. Ну и при массовом производстве могут на разных экземплярах разные результаты получаться.
|
|
|
|
|
Aug 10 2017, 08:19
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Упаду на хвост по теме. Не удаётся выполнить выходные времянки для ЦАП(Fclk = 100MHz,SDR,Cyclon III). Код set_output_delay 5 -max -clock {clk_dac} [get_ports {dac_*}] set_output_delay -3 -min -clock {clk_dac} [get_ports {dac_*}] Клок в плис приходит от ЦАП -> PLL -> формирование данных, fast_output_register задействован. Вращение фазы PLL нужного эффекта не приносит. Почему-то на io_obuf задержка 5,3нс и разница на двух битах достигает 5,3 - 2,3 = 3нс. Что посоветуете,коллеги?
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 10 2017, 09:41
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(bogaev_roman @ Aug 10 2017, 12:16)  Эти ограничения из даташита (просто максимальное окно на работу при них получается всего 10-5-3=2нс)? clk_dac - это выход pll (из приведенных ограничений не видно)? Для подробного анализа можете привести схему чипланнера, на которой показаны расположения io-буферов и pll (может они по всему периметру раскиданы, так непонятно)? Да, из даташита. Окно действительно очень маленькое. clk_dac - это выход pll С чиппланером я не очень дружу. io-буфер видно, а как ещё и PLL показать?
Эскизы прикрепленных изображений
|
|
|
|
|
Aug 10 2017, 11:26
|

Утомлённый солнцем
     
Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832

|
Цитата(bogaev_roman @ Aug 10 2017, 13:32)  Можно сразу все dac_im* вытащить со всеми fan-in. Чтобы понять откуда разбег в 3нс получается приведите еще и путь для другого выхода (скорее всего пины находятся между банками памяти или dsp-блоками). А как эту * поставить? Здесь можно выбрать только один бит из списка. Не выходит у меня вывести всю шину. На снимке справа внизу подсвеченные синим - это мои io_obuf. Внизу по центру - PLL. Показан клок для dac_im[10]. Вроде не через весь кристалл связи идут. Разбежка в задержках клока в пределах шины = 1,641 - 1,582 = 0,059нс. Думаю что дело не в клоке, а разбежка задержек данных в пределах шины как раз и даёт те клятые 3,0 нс... Но ведь в лапах стоят триггеры, они ведь должны устранить этот разбег данных
Эскизы прикрепленных изображений
|
|
|
|
Сообщений в этой теме
Flip-fl0p TimeQuest. Борьба со slack. Aug 9 2017, 06:14 Magnum По идее ДДР должен работать по двум фронтам клока,... Aug 9 2017, 07:22 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 10:22) По иде... Aug 9 2017, 07:31 Magnum А если например в чип-планере выходной сдвиговый р... Aug 9 2017, 07:50 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 10:50) А если... Aug 9 2017, 08:04  bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 11:04... Aug 9 2017, 08:54   Flip-fl0p Цитата(bogaev_roman @ Aug 9 2017, 11:54) ... Aug 9 2017, 09:02 bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 09:14... Aug 9 2017, 08:04 Magnum ЦитатаА как вообще правильно вручную двигать ячейк... Aug 9 2017, 08:38 Magnum А если например поставить в ДДР лпм галочку регист... Aug 9 2017, 10:01 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 13:01) А если... Aug 9 2017, 10:24  Magnum Цитата(Flip-fl0p @ Aug 9 2017, 17:24... Aug 9 2017, 10:30 Flip-fl0p В 5 циклоне похоже таких нет...
У меня нет ALTL... Aug 9 2017, 10:39 bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 13:39... Aug 9 2017, 10:53 Magnum Цитата(Flip-fl0p @ Aug 9 2017, 17:39... Aug 9 2017, 10:57  Flip-fl0p Цитата(Magnum @ Aug 9 2017, 13:57) А что ... Aug 9 2017, 11:10 Magnum Отнюдь, очевидно это просто разные библиотеки. Aug 9 2017, 10:41 Magnum В том и фишка, при 2 разрядном выходе лвдс_рх выро... Aug 9 2017, 11:32 Flip-fl0p Цитата(Magnum @ Aug 9 2017, 14:32) В том ... Aug 9 2017, 12:03  bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 15:03... Aug 9 2017, 12:26   Flip-fl0p Цитата(bogaev_roman @ Aug 9 2017, 15:26) ... Aug 9 2017, 12:36    bogaev_roman Цитата(Flip-fl0p @ Aug 9 2017, 15:36... Aug 9 2017, 12:57     andrew_b Цитата(bogaev_roman @ Aug 9 2017, 15:57) ... Aug 9 2017, 14:02      Flip-fl0p Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Aug 9 2017, 14:09      bogaev_roman Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Aug 9 2017, 14:16       andrew_b Цитата(bogaev_roman @ Aug 9 2017, 17:16) ... Aug 9 2017, 14:20      otv116 Цитата(andrew_b @ Aug 9 2017, 17:02) Веро... Feb 21 2018, 07:18         _Anatoliy Коллеги, а есть то она вообще, правда на земле? Мо... Aug 19 2017, 07:32
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|