|
? по констрейнам для Xilinx, unconstrained inputs and outputs |
|
|
|
Jun 29 2012, 10:31
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Здравствуйте, уважаемые гуру.
Работая с Альтерой, обнаружил пробел в знаниях на тему Xilinx, который не удалось с ходу разрешить через хелп и доки.
Вот есть входные и выходные сигналы, временные характеристики которых не нужно анализировать. Светодиоды всякие и прочие кнопки. Альтера требует, чтобы для таких сигналов в явном виде было задано false path, иначе ругается в отчете Time Quest'а и вообще работает криво, если есть необконстрейненные пути.
По Xilinx cкладывается впечатление, что оно по умолчанию эти сигналы не анализирует, если на них не задано ограничений. Так ли это, и где про это в явном виде написано?
ISE 12.3.
Всем заранее спасибо за ответы.
|
|
|
|
|
Jun 29 2012, 12:39
|

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

|
2 Koluchiy Касательно 34/45 - опечатался - имелось ввиду страницы 34 и 35 (в количестве 2х штук  ) Касательно вопроса№1 - да, вам никто не мешает сделать так: Код TIMESPEC TS_GFalsePath_0 = FROM PADS TO FFS TIG; TIMESPEC TS_GFalsePath_1 = FROM FFS TO PADS TIG; В данном конкретном примере сказано что не нужно анализировать все пути от лап до FF-ов и от FF-ов до лап. Чтобы выбрать какую т оконкретную группу лап или FF-ов нужно сделать свою группу. Примерчик можете глянуть вот тут на странице 29. Касательно вопроса№2 - вы можете использовать * и другие методы чтобы не писать всё ручками. На сколько я понял главное отличие временного анализа у хилых от альтеры - если ты не задал какой-то констрейн - это твои личные проблемы - никто тебе об этом в отдельной табличке не скажет(если это не частота конечно  ).
|
|
|
|
|
Jun 29 2012, 15:42
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
То есть, правильно - делать Код TIMESPEC TS_GFalsePath_0 = FROM PADS TO FFS TIG; TIMESPEC TS_GFalsePath_1 = FROM FFS TO PADS TIG; , а для тех ног, которые не без разницы, задавать дополнительные констрейны? Цитата На сколько я понял главное отличие временного анализа у хилых от альтеры - если ты не задал какой-то констрейн - это твои личные проблемы - никто тебе об этом в отдельной табличке не скажет Не, сделать репорт необконстрейненных путей можно  .
|
|
|
|
|
Jun 29 2012, 15:54
|

Гуру
     
Группа: Свой
Сообщений: 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; желание "отрезолвить" пропало  ). Правильно будет создать группы сигналов на которые хочется наложить разные false_path и с ними работать. Или же просто не констрейнте те лапы которые должны быть TIG. Касательно Цитата(Koluchiy @ Jun 29 2012, 18:42)  ...сделать репорт необконстрейненных путей можно  что то не припоминаю сходу, может подскажете?
|
|
|
|
|
Jun 29 2012, 16:31
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Цитата Или же просто не констрейнте те лапы которые должны быть TIG И чего она с ними сделает, с необконстрейненными лапами? Это ж главный вопрос всей темы  . Цитата что то не припоминаю сходу, может подскажете? В Generate Post P&R Static Timing - настройка "Unconstrained Paths" должна содержать максимальное число путей. Сам отчет - в Plan Ahead. По крайней мере, в 12.3 так. Цитата недавно для V7 на ISE 14.1 Пользуясь случаем, как в 14.1 с глюками?
|
|
|
|
|
Jun 30 2012, 08:59
|

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

|
Цитата(Koluchiy @ Jun 29 2012, 19:31)  И чего она с ними сделает, с необконстрейненными лапами? Это ж главный вопрос всей темы  . Хилые с необконстрейнеными лапами делают то же самое что и альтеры - ничего. В принципе эту ситуацию можно рассматривать как некоторый виртуальный TIG  на все необконстрейненые лапы. Касательно "Unconstrained Paths" (определился с ключиком, инфа для последующих жаждущих инфы) - ключик -u для trce. Отчёт можно глянуть и в ISE. (2 Koluchiy - Спасибо) А вот на счёт глюков 14.1 - как для меня, так работает всё так же, только медленней (засекал относительно одного и того же проекта в 14.1 и 13.2 для S6). Довольно неплохой "с той же канистры" Vivado - у меня на тачке он правда собирает дизайн медленней чем в ISE и for 7-Series only, но за то есть XDC - это большой плюс, можно делать финты ушами
|
|
|
|
|
Jun 30 2012, 12:36
|
Знающий
   
Группа: Свой
Сообщений: 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 патчей  . Как с этим в 14.1? 13е версии не пробовал, не знаю как там.
|
|
|
|
|
Jul 3 2012, 18:21
|
Знающий
   
Группа: Свой
Сообщений: 972
Регистрация: 12-04-09
Из: Москва
Пользователь №: 47 543

|
Продолжим воспоминания Xilinxовых констрейнов и борьбы с ними  . Имеем 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. Несмотря на то, что заданы констрейны, чтобы эти пути не анализировать. Что не так?
|
|
|
|
|
Jul 3 2012, 19:41
|
Знающий
   
Группа: Свой
Сообщений: 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.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|