|
как повысить быстродействие?, отчёт STA |
|
|
|
Dec 20 2008, 14:50
|

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

|
Доброго времени суток.Квартус 8.0,Циклон3.На ЦАП нужно выводить отсчёты 12 бит со скоростью 220Msps.STA сообщает что Fmax = 178МГц и соответственно выводит картинку:
Slack минусовый. Видно что довольно большое время занимает Clock delay, вот бы его уменьшить...Как? В файле .sdc клок описал.Фаст аутпут применил(без него вообще было Fmax 90МГц). set_output_delay 1.00 -clock [get_clocks ClockDac] [get_ports DataDac[*]] Коллеги,можете что посоветовать? Интересно,у кого какие результаты были по максимальной выходной скорости.
|
|
|
|
|
 |
Ответов
|
Dec 20 2008, 20:00
|
Частый гость
 
Группа: Свой
Сообщений: 166
Регистрация: 2-11-08
Из: Ростов-на-Дону
Пользователь №: 41 331

|
Я немного отстаю от прогресса и до Квартуса 8 (у самого 7.2 sp3) еще не добрался. STA тоже пока пользоваться не умею, но кое-чем поделюсь. На циклоне 3 можно запросто и 400 мегабит в секунду получить, а 240 я получал еще на первых циклонах (ПЛИС->ПЛИС), правда это потребовало некоторого изучения вопроса. Вот мои наблюдения: 1) Управление настройками выходных буферов и подобными вещами - вобще не стоит трогать, пока 100% не будете знать, что они вам нужны. Пусть Fitter разбирается с столь низкоуровневыми вещами. Ручной перебор их неактуален - ждешь полчаса результаты компиляции, а включение режимов может и не исправить ситуации. 2) У Вас, однозначно, проблема не в Fmax, а в том что Tco передатчика (ПЛИС) не соответствует Tsu приемника 3) Самое главное для достижения нужных Tsu, Tco, Th - это посчитать какие времена нужны и установить их в assigment editor. Не забудьте так же Minimal Tsu, Th, Tco. Фиттер запросто крутит их в пределах примерно 10 нс. Только в сложных условиях (многобитные шины, особенно раскиданые по банкам) ему не удается достигать заданных требований.
В вашем случае, если я правильно понял картинку, tsu у приемника 1 нс, а период - 4,62 нс. В этом случае вам максимальное tco (или просто tco) нужно не больше 3,62 нс. Делаем запас 0,5 нс, получаем, что необходимо задать assigment "tco" 3,12 нс. Зададим еще minimum tco, чтобы данные не менялись слишком быстро после тактового фронта. Minimum tco должно быть больше Th приемника, но какое оно по картинке не ясно. Обычно я ставлю окно порядка 25% периода. Если ставить слишком маленькое окно фиттер слишком долго мучается а потом говорит, что не удалось выполнить требования. Итого: tco - 3,12 нс, Minimum Tco - 2,12 нс.
В некоторых случаях, особенно быстрых требований можно ставить tco "через период". То есть, в данном случае поставить 3,12 + 4,62 = 7,74 нс. Но это так, для информации, должно работать и так.
Еще для скоростей больше 200 МГц можно использовать режим DDR (функции ALT_DDIO мегавизарда)
А как задать эти времена для анализа в STA я не знаю (еще не сталкивался), читайте мануалы !
Сообщение отредактировал murmel1 - Dec 20 2008, 20:06
|
|
|
|
|
Dec 22 2008, 08:46
|

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

|
Цитата(murmel1 @ Dec 20 2008, 22:00)  3) Самое главное для достижения нужных Tsu, Tco, Th - это посчитать какие времена нужны и установить их в assigment editor. Спасибо!Честно говоря не понял.Ну изменяю я параметры Tsu, Tco, Th - на картинке они меняются,но от этого не легче т.к. время задержки 5.6нс между Launch Clock и Data Arrival не изменяется. Цитата(slawikg @ Dec 20 2008, 22:00)  Спасибо.Добавление -add_delay никак не сказалось на результате. Цитата(des00 @ Dec 20 2008, 22:00)  Спасибо! Да,ошибся я малость с Tsu,нужно не 1нс а 2нс. Клок ClockDac формируется в ЦАПе(это не совсем ЦАП,а up-converter) и подаётся на вход ПЛИС. Цитата(des00 @ Dec 20 2008, 22:00)  2. Вы не сказали находятся ли у вас выходные регистры в IO ячейках или нет. Сказал,возможно криво.( Фаст аутпут применил(без него вообще было Fmax 90МГц)) Попробовал добавить строки: вместо #set_output_delay 2.00 -add_delay -clock [get_clocks ClockDac] [get_ports DataDac[*]] написал #specify the maximum external clock delay to the FPGA set CLKs_max 0.200 #specify the minimum external clock delay to the FPGA set CLKs_min 0.100 #specify the maximum external clock delay to the external device set CLKd_max 0.200 #specify the minimum external clock delay to the external device set CLKd_min 0.100 #specify the maximum setup time of the external device set tSU 2.500 #specify the minimum setup time of the external device set tH 2.000 #specify the maximum board delay set BD_max 0.180 #specify the minimum board delay set BD_min 0.120 #create the associated virtual input clock create_clock -period 4.620 -name virt_sys_clk set_output_delay -clock virt_sys_clk \ -max [expr $CLKs_max + $BD_max - $tSU - $CLKd_min] [get_ports {DataDac[*]}] set_output_delay -clock virt_sys_clk \ -min [expr $CLKs_min + $BD_min - $tH - $CLKd_max] \ [get_ports {DataDac[*]}] а так же # Apply a 2ns max delay for an output port (TCO) set_max_delay -from [get_registers *] -to [get_ports DataDac[*]] 2.000 картинка получилась такой:
Стало ещё непонятней,а Data Arrival не изменилось.
|
|
|
|
|
Dec 22 2008, 09:16
|
Вечный ламер
     
Группа: Модераторы
Сообщений: 7 248
Регистрация: 18-03-05
Из: Томск
Пользователь №: 3 453

|
Цитата(_Anatoliy @ Dec 22 2008, 03:46)  Стало ещё непонятней,а Data Arrival не изменилось. такс, отставить панику, надо разложить все по полочкам. Про регистры понятно, не заметил %) Судя по вашим констрейнам вы используете схему запитки DAC клоком как в Figure 1–9. Chip-to-Chip Design, выше указанного документа. Это так ? Кстати в этом документе есть ошибка я о ней уже писал, вы ее тоже совершили http://electronix.ru/forum/index.php?act=S...f=5&t=52323 см. пост #12 Клок логики выходного сигнала на DAC пропущен через PLL ? Если да то в каком режиме стоит PLL? дает ли она сдвиг по фазе ? Что именно у вас падает Tsu/Th ? приведите на картинке WaveForm и отчеты Path для обоих случаев. Хочется посмотреть через что у вас идет сигнал.
--------------------
|
|
|
|
|
Dec 22 2008, 09:40
|

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

|
Цитата(des00 @ Dec 22 2008, 11:16)  Судя по вашим констрейнам вы используете схему запитки DAC клоком как в Figure 1–9. Chip-to-Chip Design, выше указанного документа. Это так ? Не понял, о каком документе речь.В mnl-sdctmq.pdf фигур нет. Цитата(des00 @ Dec 22 2008, 11:16)  Кстати в этом документе есть ошибка я о ней уже писал, вы ее тоже совершили http://electronix.ru/forum/index.php?act=S...f=5&t=52323 см. пост #12 Понял,спасибо исправил.Копи-паст подводит... Цитата(des00 @ Dec 22 2008, 11:16)  Клок логики выходного сигнала на DAC пропущен через PLL ? Если да то в каком режиме стоит PLL? дает ли она сдвиг по фазе ? Нет,ФАПЧ не задействуется,прямо с входной ножки используется. Цитата(des00 @ Dec 22 2008, 11:16)  Что именно у вас падает Tsu/Th ? приведите на картинке WaveForm и отчеты Path для обоих случаев. Хочется посмотреть через что у вас идет сигнал. Падает Tsu. С Th всё в норме. После корректировки по пост #12 слак увеличился:
|
|
|
|
|
Dec 22 2008, 11:51
|

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

|
Цитата(des00 @ Dec 22 2008, 12:09)  речь идет о документе Quartus II TimeQuest Timing Analyzer Cookbook, там приведены 2 схемы запитки тактовой частотой, 1. от внешнего генератора и 2. от самой фпга.
В общем так, вырежте секретное из проекта, оставьте на цап какой нить счетчик на частоте 250МГц и с описанием ваших времянок киньте мне ваш проект на мыло. Мой адрес у вас вроде бы есть
РЗ. Кстати времянки могут и не выполняться %) тогда нужно будет двигать фазу клока %) Спасибо!Отправил на диод. А зачем нужно вводить виртуальный клок?Разве нельзя описать относительно физического?Если нельзя то в каких случаях нужно создавать виртуальный? Цитата(_Anatoliy @ Dec 22 2008, 13:03)  Спасибо!Отправил на диод. А зачем нужно вводить виртуальный клок?Разве нельзя описать относительно физического?Если нельзя то в каких случаях нужно создавать виртуальный? С виртуальным клоком вроде прояснилось. Цитата All input and output delays should reference a virtual clock so that the TimeQuest Timing Analyzer can derive and apply the correct clock uncertainty values when the derive_clock_uncertainty command is used. If the input and output delays reference base clocks or PLL clocks and not virtual clocks, the intra- and inter-clock transfer clock uncertainties, determined by derive_clock_uncertainty, are incorrectly applied to the I/O ports. Also, with virtual clocks, additional external clock uncertainties can be applied independent of the clock uncertainties determined by derive_clock_uncertainty.The properties of the virtual clock should be identical to the original clock used to clock either the input (input delay) or output (output delay) ports.
|
|
|
|
Сообщений в этой теме
_Anatoliy как повысить быстродействие? Dec 20 2008, 14:50      des00 Цитата(_Anatoliy @ Dec 22 2008, 06:51) Сп... Dec 22 2008, 14:33       _Anatoliy Цитата(des00 @ Dec 22 2008, 16:33)
Спас... Dec 22 2008, 16:14        des00 Цитата(_Anatoliy @ Dec 22 2008, 11:14) Ст... Dec 22 2008, 16:36         _Anatoliy Цитата(des00 @ Dec 22 2008, 18:36) дык эт... Dec 22 2008, 16:48          des00 Цитата(_Anatoliy @ Dec 22 2008, 11:48) А,... Dec 23 2008, 03:51           _Anatoliy Цитата(des00 @ Dec 23 2008, 05:51) я тут ... Dec 23 2008, 07:44 slawikg Цитата(_Anatoliy @ Dec 20 2008, 17:50) До... Dec 20 2008, 20:56 des00 Цитата(_Anatoliy @ Dec 20 2008, 09:50) Ко... Dec 22 2008, 04:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|