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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> ? по констрейнам для Xilinx, unconstrained inputs and outputs
Koluchiy
сообщение Jun 29 2012, 10:31
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Здравствуйте, уважаемые гуру.

Работая с Альтерой, обнаружил пробел в знаниях на тему Xilinx, который не удалось с ходу разрешить через хелп и доки.

Вот есть входные и выходные сигналы, временные характеристики которых не нужно анализировать.
Светодиоды всякие и прочие кнопки.
Альтера требует, чтобы для таких сигналов в явном виде было задано false path, иначе ругается в отчете Time Quest'а и вообще работает криво, если есть необконстрейненные пути.

По Xilinx cкладывается впечатление, что оно по умолчанию эти сигналы не анализирует, если на них не задано ограничений.
Так ли это, и где про это в явном виде написано?

ISE 12.3.

Всем заранее спасибо за ответы.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 29 2012, 10:37
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Koluchiy
Вам нужно Timing Ignore (TIG) Constraint.
Детальнее здесь на странице 34/45
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jun 29 2012, 11:06
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Спасибо за ответ. Что такое 45 в выражении 34/45?

Я в общем в курсе, что такое TIG.
Но в упомянутом Вами документе он рассматривается применительно к путям между регистрами, а не между регистрами и пинами.

Соответственно, есть 2 вопроса:
1) Применяется ли TIG для обозначения False Path между триггерами и пинами.
2) Нужно ли это делать в явном виде, т.е. прописывать TIG для каждого пина. Или среда сама считает, что если этих констрейнов нет, то оно без разницы?
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 29 2012, 12:39
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Koluchiy
Касательно 34/45 - опечатался - имелось ввиду страницы 34 и 35 (в количестве 2х штук laughing.gif )

Касательно вопроса№1 - да, вам никто не мешает сделать так:
Код
TIMESPEC TS_GFalsePath_0 = FROM PADS TO FFS TIG;
TIMESPEC TS_GFalsePath_1 = FROM FFS TO PADS TIG;
В данном конкретном примере сказано что не нужно анализировать все пути от лап до FF-ов и от FF-ов до лап. Чтобы выбрать какую т оконкретную группу лап или FF-ов нужно сделать свою группу. Примерчик можете глянуть вот тут на странице 29.

Касательно вопроса№2 - вы можете использовать * и другие методы чтобы не писать всё ручками.
На сколько я понял главное отличие временного анализа у хилых от альтеры - если ты не задал какой-то констрейн - это твои личные проблемы - никто тебе об этом в отдельной табличке не скажет(если это не частота конечно sm.gif ).
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jun 29 2012, 15:42
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



То есть, правильно - делать
Код
TIMESPEC TS_GFalsePath_0 = FROM PADS TO FFS TIG;
TIMESPEC TS_GFalsePath_1 = FROM FFS TO PADS TIG;
,
а для тех ног, которые не без разницы, задавать дополнительные констрейны?

Цитата
На сколько я понял главное отличие временного анализа у хилых от альтеры - если ты не задал какой-то констрейн - это твои личные проблемы - никто тебе об этом в отдельной табличке не скажет

Не, сделать репорт необконстрейненных путей можно sm.gif.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 29 2012, 15:54
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Касательно
Цитата(Koluchiy @ Jun 29 2012, 18:42) *
То есть, правильно - делать
Код
TIMESPEC TS_GFalsePath_0 = FROM PADS TO FFS TIG;
TIMESPEC TS_GFalsePath_1 = FROM FFS TO PADS TIG;
,
а для тех ног, которые не без разницы, задавать дополнительные констрейны?...

нет, так будет много крика на счёт constraint resolve - как он сделает этот самый constraint resolve утверждать не берусь (для примера, делал макетный дизайн недавно для V7 на ISE 14.1 - не указал там что у меня exclusive clock-и и он мне начал писать что "от я ща отрезолвлю тебе это всё дело", так как железа нет под рукой - хз что она там может нарезолвить, потому указал стандартно:
Код
# define SYS/ADC clocks like exclusive - NO constraint interactions
TIMESPEC TS_sys_adc_clk_false_path = FROM sys_clk     TO adc_a_clk_0 TIG;
TIMESPEC TS_adc_sys_clk_false_path = FROM adc_a_clk_0 TO sys_clk     TIG;

желание "отрезолвить" пропало biggrin.gif ). Правильно будет создать группы сигналов на которые хочется наложить разные false_path и с ними работать. Или же просто не констрейнте те лапы которые должны быть TIG.

Касательно
Цитата(Koluchiy @ Jun 29 2012, 18:42) *
...сделать репорт необконстрейненных путей можно sm.gif
что то не припоминаю сходу, может подскажете?
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jun 29 2012, 16:31
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата
Или же просто не констрейнте те лапы которые должны быть TIG

И чего она с ними сделает, с необконстрейненными лапами?
Это ж главный вопрос всей темы sm.gif.

Цитата
что то не припоминаю сходу, может подскажете?

В Generate Post P&R Static Timing - настройка "Unconstrained Paths" должна содержать максимальное число путей.
Сам отчет - в Plan Ahead.
По крайней мере, в 12.3 так.

Цитата
недавно для V7 на ISE 14.1

Пользуясь случаем, как в 14.1 с глюками? sm.gif
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jun 30 2012, 08:59
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



Цитата(Koluchiy @ Jun 29 2012, 19:31) *
И чего она с ними сделает, с необконстрейненными лапами?
Это ж главный вопрос всей темы sm.gif.

Хилые с необконстрейнеными лапами делают то же самое что и альтеры - ничего. В принципе эту ситуацию можно рассматривать как некоторый виртуальный TIG laughing.gif на все необконстрейненые лапы.

Касательно "Unconstrained Paths" (определился с ключиком, инфа для последующих жаждущих инфы) - ключик -u для trce. Отчёт можно глянуть и в ISE. (2 Koluchiy - Спасибо)

А вот на счёт глюков 14.1 - как для меня, так работает всё так же, только медленней (засекал относительно одного и того же проекта в 14.1 и 13.2 для S6). Довольно неплохой "с той же канистры" Vivado - у меня на тачке он правда собирает дизайн медленней чем в ISE и for 7-Series only, но за то есть XDC - это большой плюс, можно делать финты ушами biggrin.gif
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jun 30 2012, 12:36
Сообщение #9


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата(Kuzmi4 @ Jun 30 2012, 12:59) *
Касательно "Unconstrained Paths" (определился с ключиком, инфа для последующих жаждущих инфы) - ключик -u для trce. Отчёт можно глянуть и в ISE.

А как отчет глянуть в ISE?
Я не нашел, полез в грузящийся полчаса PlanAhead.

Цитата
А вот на счёт глюков 14.1 - как для меня, так работает всё так же, только медленней (засекал относительно одного и того же проекта в 14.1 и 13.2 для S6). Довольно неплохой "с той же канистры" Vivado - у меня на тачке он правда собирает дизайн медленней чем в ISE и for 7-Series only, но за то есть XDC - это большой плюс, можно делать финты ушами

Мне без разницы, дольше или быстрее.
Финты ушами тоже непринципиальны.
Мне важно, чтобы ничего не висло в самый неподходящий момент, чтобы были правильные модели, и чтобы для всего этого не надо было ставить 10000 патчей sm.gif.
Как с этим в 14.1? 13е версии не пробовал, не знаю как там.
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Jul 1 2012, 10:06
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 Koluchiy

Касательно ISE и репорта - там после генерации отчёта имеем всё наше хозяйство в текстовом виде в *.twr - там и смотреть можно.
Но гораздо удобнее через xml и ISE - это будет файло *.twx. Смотреть через Design Summary - Static Timing - Timing Constrained - Unconstrained ...

Касательно 14.1 и вяческих падений - те дизайны что собирал и симулировал с использованием евойных либ - работали нормально. Правда это 3-4 дизайна для S3/S6 и V5. Касательно V6 - не подскажу, не было реального железа на проверку. Касательно же симуляции для V6 - симулил DS_DMA проект для V6(с либами от 14.1) - полёт нормальный laughing.gif
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jul 3 2012, 18:21
Сообщение #11


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Продолжим воспоминания Xilinxовых констрейнов и борьбы с ними sm.gif.

Имеем Virtex 6.

В этом самом Virtex 6 есть FIFO, запись в которое осуществляется на частоте Clk320, чтение - Clk311 (цифра - частота в мегагерцах).

Частоты, понятное дело, несинхронные, соответственно написаны констрейны:
TIMESPEC TS_C30 = FROM "Clk311" TO "Clk320" TIG;
TIMESPEC TS_C40 = FROM "Clk320" TO "Clk311" TIG;

Translate к констрейнам претензий не имеет.
Тем не менее, после P&R мне пишет, что "1 constraint not met".

Ну, нот мет и нот мет, чего тут такого.
Но дальше интереснее.
В табличке мне рисует:
Код
----------------------------------------------------------------------------------------------------------
  Constraint                                |    Check    | Worst Case |  Best Case | Timing |   Timing  
                                            |             |    Slack   | Achievable | Errors |    Score  
----------------------------------------------------------------------------------------------------------
* TS_PLL_IntClocksPLL_clkout0 = PERIOD TIME | SETUP       |    -0.863ns|     3.980ns|      53|       16108
  GRP "PLL_IntClocksPLL_clkout0"         TS | HOLD        |     0.015ns|            |       0|           0
  _GenClkP / 4.125 HIGH 50%                 |             |            |            |        |

TS_PLL_IntClocksPLL_clkout0 - это Clk320.

Открываю отчет .twx, а там картина совсем другая:
Код
Paths for end point STMx_PortBlocks.STMx_PortBlocks[0].STMx_PortBlock/STM4_TXBlock/RX_STM4_Receiving/STM_InFIFO/BU2/U0.gconvfifo.rf.grf.rf.gcx.clkx.rd_pntr_gc_asreg_9 (SLICE_X143Y190.BX), 1 path
--------------------------------------------------------------------------------
Slack (hold path):      -3.640ns (requirement - (clock path skew + uncertainty - data path))
   Source:               STMx_PortBlocks.STMx_PortBlocks[0].STMx_PortBlock/STM4_TXBlock/RX_STM4_Receiving/STM_InFIFO/BU2/U0.gconvfifo.rf.grf.rf.gcx.clkx.rd_pntr_gc_9 (FF)
   Destination:          STMx_PortBlocks.STMx_PortBlocks[0].STMx_PortBlock/STM4_TXBlock/RX_STM4_Receiving/STM_InFIFO/BU2/U0.gconvfifo.rf.grf.rf.gcx.clkx.rd_pntr_gc_asreg_9 (FF)
   Requirement:          0.000ns
   Data Path Delay:      0.376ns (Levels of Logic = 0)
   Clock Path Skew:      4.016ns (3.908 - -0.108)
   Source Clock:         Clk320 rising
   Destination Clock:    Clk311 rising

В общем, ругается на несоблюдение hold'ов как раз между доменами Clk320 и Clk311.
Несмотря на то, что заданы констрейны, чтобы эти пути не анализировать.

Что не так?
Go to the top of the page
 
+Quote Post
disel
сообщение Jul 3 2012, 19:12
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



Как заданы Clk311 Clk320? Должны быть через TIMESPEC. Если через NET, то такой констрейн не продет через ПЛЛ.
Посмотрите отчет транслятора, там анализ ucf идет, и если ise кладет на констрейны, то там это должно быть.
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jul 3 2012, 19:41
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Цитата
Как заданы Clk311 Clk320?


Вот так:

Код
NET "Clk320" TNM_NET = "Clk320";
TIMESPEC TS_Clk320 = PERIOD "Clk320" 3.117 ns;

NET "Clk311" TNM_NET = "Clk311";
TIMESPEC TS_Clk311 = PERIOD "Clk311" 3.215 ns;


Ну а вообще, Clk320 - выход PLL, Clk311 - выход опорного клока GTX'а (REFCLKOUT).

Цитата
Посмотрите отчет транслятора, там анализ ucf идет, и если ise кладет на констрейны, то там это должно быть.

Не кладет.
Более того, про них есть в табличке:
Код
----------------------------------------------------------------------------------------------------------
  Constraint                                |    Check    | Worst Case |  Best Case | Timing |   Timing  
                                            |             |    Slack   | Achievable | Errors |    Score  
----------------------------------------------------------------------------------------------------------
...
  PATH "TS_C30_path" TIG                    | SETUP       |         N/A|     5.031ns|     N/A|           0
----------------------------------------------------------------------------------------------------------
  PATH "TS_C40_path" TIG                    | SETUP       |         N/A|    -1.586ns|     N/A|           0
----------------------------------------------------------------------------------------------------------


P.S. Ах да, ISE 12.3.
Go to the top of the page
 
+Quote Post
disel
сообщение Jul 4 2012, 05:11
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 610
Регистрация: 22-04-05
Пользователь №: 4 410



В свойствах синтезатора Cross Clock Analysis галка стоит?
Go to the top of the page
 
+Quote Post
Koluchiy
сообщение Jul 4 2012, 17:37
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543



Ах да №2 sm.gif.

Синтезатор - Synplify 2010.09.
Go to the top of the page
 
+Quote Post

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

 


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


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