Перейти к содержанию
    

Можно ли победить Timing Errors

Он получал и фильтры и ФФТ на 600МГц тактовой. Сам контролировал укладку в чипе всех элементов.

Для этого чипа с приличной разрядностью - не верю. Если использовать встроенные DSP, то в документации максимальная - 450. Если уходить от умножений и все параллелить, то фильтр по объему существенно разрастется, т.е. будут большие длины связи между элементами.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для этого чипа с приличной разрядностью - не верю. Если использовать встроенные DSP, то в документации максимальная - 450. Если уходить от умножений и все параллелить, то фильтр по объему существенно разрастется, т.е. будут большие длины связи между элементами.

 

Но если использовать тригерры на выходе каждого слоя логики + RPM может быть что-то и могло бы получится. Одна проблема Global Clock Tree для Virtex-4 -11 тоже 450 МГц :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как-то бездоказательно.

Говорю о своих умозаключениях, смысла что то доказывать вам не вижу абсолютно никакого, ваше право верить или нет. Практика критерий истины. Сделайте ради примера фильтр приподнятого косинуса со скруглением 0.1, фильтр симметричный 100 коэфиициентов, разрядность входа 16 бит, выхода 16 бит, коэффициентов 14 бит. реализация без ДСП слайсов, фильтр хлопает по clkena, символ за такт %) Чип лучше взять маленький, что бы забитость была ~80% (легко обеспечить коли-ом таких фильтров).

 

Хочу рассказать о моем изумлении при встрече с одним уникумом, который достигал ошеломительных цифр применяя Матлаб. Он там разрисовывал макроячейку своей микросхемы и вел на основании такого элемента и её маски(для переноса!) моделирование в Матлабе. Он получал и фильтры и ФФТ на 600МГц тактовой. Сам контролировал укладку в чипе всех элементов.

Есть два таких человека на форуме, но не будем показывать пальцем.

 

ИМХО гемор, лучше полифазную обработку сделать %)

 

UPD. фильр из корня приподнятного косинуса, иначе из 100 коэффициентов половина будет нулевых %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я верю, но хочу разобраться формально - какой именно фактор вызывает такие ощущения? Пока по цифрам в даташитах Xilinx выигрывает. :wacko: Упс. Кажется мне в другую тему пора.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я верю, но хочу разобраться формально - какой именно фактор вызывает такие ощущения? Пока по цифрам в даташитах Xilinx выигрывает. :wacko: Упс. Кажется мне в другую тему пора.

Дак давайте посоревнуемся. Задайте конкретную задачу - создать конкретный фильтр с такими то хар-ми, по такому алгоритму, с испльзованием таких то чипов (только чтоб одна технология). Выложим

результаты и сравним, только тему отдельную создать нужно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я верю, но хочу разобраться формально - какой именно фактор вызывает такие ощущения? Пока по цифрам в даташитах Xilinx выигрывает.

основной фактор в том, что мне удается запихать в маленький чип, нужную функциональность и обеспечить выполнение времянкок(100/200МГц). При этом занятыми оказываются дсп блоки на 90-100%, память на 50-60%, логка и регистры на 95-99%. Тогда как прикидки на хилые чипы, показывают необходимость вставки дополнительных регистров и т.д.

Толи квартус на голову выше исе/симплифай синтезирует/оптимизирует математику, толи с трассировочными ресурсами лучше, в общем не понятно.

 

Задайте конкретную задачу - создать конкретный фильтр с такими то хар-ми, по такому алгоритму, с испльзованием таких то чипов (только чтоб одна технология).

создавайте тему, фильтр прототип и условия тестирования я выложу %)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так вот по CLK2 при компиляции и фиксируются множественые Timing Errors.

Первый простейший шаг, который я бы сделал - откомпилировал для двенадцатой скорости настроив временной анализатор, чтобы он выдавал не три критических пути (как по умолчанию), а пятьсот. Если все уложится (или почти уложится) само - то прогноз хороший, возможно PlanAhead плюс минимальная оптимизация кода решит проблему. Если не уложится и сильно (то есть сотни путей) - то вы увидите примерно, сколько вам перелопачивать и что проще - заниматься этим или взять более современный кристалл. Потому что трасса в этом кристалле, если мне память не изменяет минимум 600ps, поэтому чтобы уложиться в 400MHz вам придется во всем дизайне иметь только один уровень логики.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Распараллелил и упростил все что можно. Количество ошибок сократилось с 800 до 60, сейчас timing score около 11000. Судя по анализу в местах где есть ошибки Levels of Logic колеблется 9-11. Ситуация не улучшилась - проект по прежнему работает не стабильно. При включении питания проект может или сразу нормально работать, или не работать совсем. Да к тому же исправление одних ошибок приводит к появлению других - замкнутый круг. Может надо руками проект на кристалл как-то раскладывать? Не умею я этого, увы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Количество ошибок сократилось с 800 до 60, сейчас timing score около 11000. Судя по анализу в местах где есть ошибки Levels of Logic колеблется 9-11. Ситуация не улучшилась - проект по прежнему работает не стабильно.

Конечно. Проект будет работать стабильно, когда timing score будет равен нулю. Пока у вас будет хоть одна дорожка, не вписывающаяся во времянку - вы будете ловить глюки, хоть возможно и не при любых условиях (в основном температурных).

Ставьте дополнительные регистры туда, где 9-11 уровней.

 

При включении питания проект может или сразу нормально работать, или не работать совсем. Да к тому же исправление одних ошибок приводит к появлению других - замкнутый круг.

Вы, вероятно, двигаете триггеры по проекту, а надо их добавлять. Когда есть места, где 9-11 уровней - можете двигать до посинения, не заработает. И включите retiming, кстати, если не включен - тогда вы сможете добавлять степени конвейеризации в длинные цепочки туда, где это логически удобнее, а синтезатор сам их будет ставить в середину цепи, перераспределяя логику.

 

Может надо руками проект на кристалл как-то раскладывать? Не умею я этого, увы.

Вообще-то, в столь сложных проектах с этого надо начинать. Ожидать, что ISE по собственной инициативе разложит весь проект на 400MHz - это супероптимистично. Учитесь, это несложно, недаром PlanAhead включили в стандартную поставку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мультицикловые констрейны и те, которые можно сунуть в игнор могут спасти отца русской демократии. Если конечно это не сделано, и если это вообще возможно для ваше проекта. 11000 вообщем то не так много, по крайне мере можно пытаться засунуть в этот чип. Еще можно попробывать smartexplorer, он будет до посинения перебирать варианты размещения. потом выберете тот что лучше и будете его мучить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще можно попробывать smartexplorer...

Это IMHO помогает, когда не влезает чуть-чуть. А когда 9-11 уровней логики - думаю, что пустая потеря времени.

 

Кстати у меня еще вопрос появился: а вы с 400MHz результаты обработки куда выводите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это IMHO помогает, когда не влезает чуть-чуть. А когда 9-11 уровней логики - думаю, что пустая потеря времени.

 

Конечно не помогает. Это просто позволяет не заниматься ручной трасировкой кристалла. Которая при 9-11 уровнях логики тоже не поможет.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вы говорите что данные идут с АЦП на 200МГц, а в констрейне указали 2.5нс, что означает что входной клок 400МГц а не 200МГц.

 

и еще такой вопрос, а это жесткое требование чтобы сама логика на 400МГц работала? Или вы думаете что если принимаете на 200Мгц то нужно обрабатывать данные на 400Мгц?

 

Данные на чип идут в режиме SDR я так понял? или DDR?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копаю дальше проект. Изменив алгоритм и упростив все что можно сократил ошибки до 3-ех. Timing Score уменьшился до 136. Уровни логики 9. Количество проблемных путей по анализатору равно 9. Замена чипа на 12-ый полностью устраняет ошибки. Все бы хорошо, да помимо куска проекта на 400МГц, есть еще огромный кусок на значительно более низких частотах. И его еще дорабатывать сильно надо, но при добавлении чего-либо в него, количество ошибок снова растет.

 

Добавлю - проекты на столь больших частотах мне не встречались. Зачастую не требовалось вообще констрейны использовать. Так что прошу извинить за серость, но многих советов я не понимаю.

 

Теперь по порядку:

 

Не знаю что такое retiming. Где он включается?

 

Осознаю, что добавление триггеров увеличивает скорость работы. Но как их добавить? В ручную через FPGAEditor?

 

"Мультицикловые констрейны и те, которые можно сунуть в игнор" - можно для чайника рассказать что это?

 

smartexplorer - как его запустить?

 

Результаты обработки идут далее в низкочастотную часть проекта

Данные идут в режиме DDR, поэтому обработка на 400МГц должна быть.

Изменено пользователем TABKP

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

...Осознаю, что добавление триггеров увеличивает скорость работы. Но как их добавить? В ручную через FPGAEditor?

 

В проблемных местах, где задержка велика, триггеры включаются в HDL(после выявления источника и приемника). После чего в симуляторе убедитесь, что введенная вами задержка не изменила работу. Как правило что-то придется подвинуть еще... как следствие! Будьте внимательны с временными диаграммами...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...