|
Timing constraints not met, EDK 10.1 SP3, Virtex2Pro XC2VP30 |
|
|
|
Sep 20 2010, 07:03
|

Знающий
   
Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121

|
У меня DCM_0 стандартно созданный в проекте EDK автоматически. А в одном из своих модулей я использую другой DCM чтобы получить два разных клока. Тот который я сам добавил находится внутри сгенерированной оболочки со своими BUFG итд. В чем же может быть причина того что у меня такая проблема с таймингом? Вот репорт из лога: Код ------------------------------------------------------------------------------------------------------ Constraint | Check | Worst Case | Best Case | Timing | Timing | | Slack | Achievable | Errors | Score ------------------------------------------------------------------------------------------------------ * TS_dcm_0_dcm_0_CLK0_BUF = PERIOD TIMEGRP | SETUP | -3.709ns| 58.168ns| 28| 88648 "dcm_0_dcm_0_CLK0_BUF" TS_sys_clk_pin | HOLD | 0.123ns| | 0| 0 HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------ * TS_vga_ctrl_0_vga_ctrl_0_dcm_0_clkfx_buf | SETUP | -3.203ns| 79.460ns| 26| 70224 = PERIOD TIMEGRP "vga_ctrl_0_vga_ | HOLD | 0.558ns| | 0| 0 ctrl_0_dcm_0_clkfx_buf" TS_dcm_0_dcm_0_CL | | | | | K0_BUF / 0.65 HIGH 50% | | | | | Я вот сейчас подумал, может ето из-за того что я использовал выход клока из основного ДЦМ как вход в другой который я добавил сам? Основной модуль выдает 100Мгц, и етот клок я веду в другой который из него делает 65МГц.. ?
Сообщение отредактировал BlackOps - Sep 20 2010, 07:27
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
2 страниц
1 2 >
|
 |
Ответов
(1 - 16)
|
Sep 20 2010, 14:49
|

Знающий
   
Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121

|
Цитата(des00 @ Sep 20 2010, 12:37)  какое отношение имеет ДСМ к строчкам со слаками, без указания крайних точек слаков ? Лечить времянку с помощью телепатии еще не научились. Извините, могли бы Вы указать что именно имели ввиду? И где в случае с ЕДК получить ету инфу? Или Вы имели ввиду подробное описание пинов моих модулей? Я сейчас открыл тайминг репорт синтеза тоже, и вот что сейчас заметил: Код IBUFG dcm_0/Using_Virtex.DCM_INST:CLK0+vga_ctrl_0/dcm_0/dcm_inst:CLKFX BUFG(*)(vga_ctrl_0/vga_ctrl_0/data_realignment_engine/reg0_in_0) BUFG(*)(vga_ctrl_0/vga_ctrl_0/data_realignment_engine/reg1_in_0) BUFG NONE(*)(vga_ctrl_0/vga_ctrl_0/vga_block/v_current_FSM_FFd3) BUFG NONE(chipscope_icon_0/chipscope_icon_0/i_chipscope_icon_0/U0/U_ICON/U_iDATA_CMD) NONE(bp_0/bp_0/dataread_module/ifft_block/blk00000003/blk00000006)
(*) These 3 clock signal(s) are generated by combinatorial logic, and XST is not able to identify which are the primary clock signals. Please use the CLOCK_SIGNAL constraint to specify the clock signal(s) generated by combinatorial logic. INFO:Xst:2169 - HDL ADVISOR - Some clock signals were not automatically buffered by XST with BUFG/BUFR resources. Please use the buffer_type constraint in order to insert these buffers to the clock signals to help prevent skew problems. Еще вот что: NOTE: THESE TIMING NUMBERS ARE ONLY A SYNTHESIS ESTIMATE. FOR ACCURATE TIMING INFORMATION PLEASE REFER TO THE TRACE REPORT GENERATED AFTER PLACE-and-ROUTE. Смотрю сейчас файлы в папке ЕДК проекта, так где же этот trace report хранится в случае с ЕДК? А вообще пытаюсь сейчас найти хороший мануал по таймингу для Хилинкс, но нахожу только короткие статейки где показывают как это графически сделать под ISE. Не могли бы дать линк где у них хранится мануал с подробным описанием?
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
|
Sep 20 2010, 16:14
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(BlackOps @ Sep 20 2010, 08:49)  Извините, могли бы Вы указать что именно имели ввиду? у вас в отчетах приведены слаки по сетапу и холду, они связаны с разнице реальных и требуемых путей между источниками и приемниками сигналов, работающих от определенных частот. Разговор имеет смысл вести только в том случае, если вы укажете источники/приемники и покажете расклад на пути сигнала между ними. Цитата И где в случае с ЕДК получить ету инфу? Нигде, времянка появляется на этапе разводки плис, т.е. используется после EDK Цитата Я сейчас открыл тайминг репорт синтеза тоже, и вот что сейчас заметил:... асинхры понаделали, нюню Цитата Не могли бы дать линк где у них хранится мануал с подробным описанием? работаю с альтерой, не ко мне вопрос %) Но вообще задание времянок в хилых, до тех пор пока не сделают поддержку SDC как то не айс.
--------------------
|
|
|
|
|
Sep 20 2010, 20:18
|

Знающий
   
Группа: Свой
Сообщений: 618
Регистрация: 7-06-08
Из: USSR
Пользователь №: 38 121

|
Всем спaсибо за советы. Кузми4: Прикрепляю два файла с логами. Еще прикрепляю простую диаграмму того что из себя моя система представляыет. Вобщем это контроллер, внутри которого есть логика которая на 100МГц и на 65МГц работает. 100Мгц я получаю от внешнего ДЦМ который генерируется ЕДК по умолчанию. Затем, внутри контроллера я инстанциирую второй ДЦМ, который использует выходной клок первого как вход, и на выходе дает 65мгц. Что интерестно, все работает в реале так как надо... и данные получаю правильные итд итп. Но просто хотелось бы конечно убрать эти ошибки и разобраться в чем же дело. И еще раз повторю это все в ЕДК, а не ИСЕ.
Эскизы прикрепленных изображений
--------------------
Нажми на кнопку - получишь результат, и твоя мечта осуществится
|
|
|
|
|
Sep 20 2010, 22:03
|

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

|
2 BlackOps оба репорта бесполезны, нужно смотреть в "Design Summary-Static Timing" ( это будет *.twr в директории проекта, только обёрнутый красиво  ) вот там как раз написано кто именно нагадил, что то типа такого Цитата Slack: 41.524ns (requirement - (data path - clock path skew + uncertainty)) Source: core/fp_count[7] (FF) Destination: core/o_tbus_fp_j0ref (FF) Requirement: 51.440ns Data Path Delay: 9.916ns (Levels of Logic = 2) Clock Path Skew: 0.000ns Source Clock: s_temux_sbi_clk_bufg rising at 0.000ns Destination Clock: s_temux_sbi_clk_bufg rising at 51.440ns Clock Uncertainty: 0.000ns Только у вас отрицательны слак будет
|
|
|
|
|
Sep 20 2010, 22:50
|

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

|
2 BlackOps: Навскидку видно что у вас похоже на клоковый вход чипскопового слайса заведена комбинаторика - тут мега криминала конечно нет, но естественно что орёт.. Далее, вас не смущает такое заявление : Цитата Slack: -3.203ns (requirement - (data path - clock path skew + uncertainty)) Source: vga_ctrl_0/vga_ctrl_0/data_realignment_engine/reg0/q_44 (FF) Destination: vga_ctrl_0/vga_ctrl_0/blue_registration/q_4 (FF) Requirement: 0.769ns Data Path Delay: 3.972ns (Levels of Logic = 2) Clock Path Skew: 0.000ns Source Clock: plb_bram_if_cntlr_1_port_BRAM_Clk rising at 30.000ns Destination Clock: vga_ctrl_0/vga_ctrl_0/clk65 rising at 30.769ns Clock Uncertainty: 0.000ns нужное выделил
|
|
|
|
|
Sep 21 2010, 02:25
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(Kuzmi4 @ Sep 20 2010, 16:50)  нужное выделил  а я немного добавил выделения нужного Цитата Slack: -3.203ns (requirement - (data path - clock path skew + uncertainty)) Source: vga_ctrl_0/vga_ctrl_0/data_realignment_engine/reg0/q_44 (FF) Destination: vga_ctrl_0/vga_ctrl_0/blue_registration/q_4 (FF) Requirement: 0.769ns Data Path Delay: 3.972ns (Levels of Logic = 2) Clock Path Skew: 0.000ns Source Clock: plb_bram_if_cntlr_1_port_BRAM_Clk rising at 30.000ns Destination Clock: vga_ctrl_0/vga_ctrl_0/clk65 rising at 30.769ns Clock Uncertainty: 0.000ns вот откуда ноги растут
--------------------
|
|
|
|
|
Sep 21 2010, 05:11
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(BlackOps @ Sep 20 2010, 23:31)  Да...но.. не понимаю. дык написано же регистр vga_ctrl_0/vga_ctrl_0/data_realignment_engine/reg0/q_44 (FF) работает на частоте plb_bram_if_cntlr_1_port_BRAM_Clk rising at 30.000ns с него передаются данные на регистр vga_ctrl_0/vga_ctrl_0/blue_registration/q_4 (FF) работающий на частоте vga_ctrl_0/vga_ctrl_0/clk65 rising at 30.769ns. Частоты хоть и синхронные, но не кратные. Поэтому при временном анализе и берется наихудший случай (передача между регистрами каждый такт). А если у вас есть какая либо логика, которая определяет моменты передачи данных, то временной анализатор он про нее не знает до тех пор, пока вы ему об этом не сообщите.
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|