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

 
 
> Synplify vs все остальные, Чего-то стал Synplify портиться ...
v_mirgorodsky
сообщение Jun 20 2006, 07:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



На данный момент используем в проекте Cyclone EP2C8F256. Для синтеза используем Synplify версии 8.5. В большинстве случаев результаты синтеза неудовлетворительные sad.gif Synplify не имеет временных параметров моделей памяти и не умеет нормально синтезировать аппаратные умножители. В результате получаются, мягко говоря, странные результаты синтеза. Последующая имплементация в целевую микросхему с туго затянутыми параметрами многое исправляет, однако далеко не все. Таким образом получается дизайн, который не разгоняется до своей нормальной рабочей частоты. Приходится в Quartus генерить все примитивы и вставлять их в RTL код, что уменьшает его переносимость и добавляет проблем при отладке.

Не знает ли кто, как бороться с этой напастью ? Может поменять синтезатор ? На какой ? У кого какие впечатления от менторовских продуктов ? Если я правильно помню, у них их два. Чем они отличаются друг от друга ? help.gif


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
v_mirgorodsky
сообщение Jun 20 2006, 16:14
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 342
Регистрация: 21-02-05
Пользователь №: 2 804



vetal

@W:MT246 : blah_blah.vhd(95) | Blackbox synplicity_altsyncram5_r_w_blah_blah is missing a user supplied timing model. This may have a negative effect on timing analysis and optimizations (Quality of Results)
Это сообщение с вариациями можно видеть всякий раз, когда устанавливаешь память в дизайн. При этом этот идиот считает, что этот самый BlackBox имеет чуть ли не константный выход и выполняет оптимизацию - ретайминг и пайплайнинг исходя из этого предположения. При этом начисто игнорирует факт использования/отсутствия выходного регистра внутри самого блока памяти. С констраином
"block_ram,no_rw_check" - знаком. Однако работает он только для Xilinx, для Altera надо ставить "M4K,no_rw_check". Теперь об памяти с ассинхронным выходом и внешней линейке регистров по выходу. Quartus, по возможности, "втягивает" их внутрь блока памяти, что приводит к значительному приросту скорости и уменьшению внешней логики. А пробовал ли кто раздельно управлять енейблами входного и выходного регистров памяти? Или память с разной шириной по разным портам? В большинстве случаев Synplify рассказывает, что блок памяти слишком сложный и заменяет его на туеву хучу регистров и потом плачет, что дизайн не помещается в кристалл.

А чего стоит вот такой варнинг:
@W:BN116 : blah_blah.vhd(95) | Removing sequential instance mem_38 of view:PrimLib.dff(prim) because there are no references to its outputs
хотя все выходы памяти использованы и работают, что было подтверждено симуляцией и работой реального устройства.

Или такой случай. Строили мы гистограмму непрерывно поступающих данных. По выходу памяти с выходным регистром стоит mux 3-в-1, 18-ти разрядный сумматор с единицей и после сумматора mux 2-в-1, короче сумматор с насыщением. При начальном продумывании схемы был собран макет арифметики между регистрами. Ретайминг запретили, засинтезировали и имлементировали - скорость работы схемы более 150MHz. Написали блок, поставили реальную память - меньше 130. Просто в первом случае Synplify ответственно подошел к синтезу этой логики, а во втором посчитал память константным выходом, показал при синтезе скорость около 180MHz и расслабился. Скоростные параметры выходного регистра памяти позволяют ему функционировать на частотах до 180MHz - т.е. дело в неряшливом синтезе.

К слову сказать, для Xilinx Spartan 3E скорость работы блока не превышает 86MHz sad.gif В приципе не могу понять такую разницу в скорости maniac.gif Код полностью RTL, никаких проблем при синтезе под Spartan не было.


Mad Makc

Уложить умножитель в сам DSP блок нет никаких проблем. Только вот попробуйте попереключать знаковые/беззнаковые умножения на ходу, поиспользовать внутренние входные и выходные регистры самого умножителя с их енейблами и все станет понятно. Умножитель, как ассинхронную структуру, он использует, регистры к ней прилепит внешние и покажет скорость порядка 62MHz, хотя реально дизайн разгоняется до 162MHz. Было бы не обидно, что он так делает, если бы он остальную часть схемы возле умножителя синтезировал в соответствии с заданными временными требованиями, а так он говорит, что 62MHz - это предел и не оптимизирует расположение остальных компонентов схемы, что результируется в проблемах при имплементации дизайна в кристалл. Пока Quartus не умел делать ресинтез и ретайминг приходилось эти цепи выносить в игнор, разгонять остальную часть схемы и лишь после этого получался приемлемый результат.

P.S. Для тех, кто не знает - 162MHz - это предельная частота работы умножителей в EP2C8F256. Просто было необходимо разогнать эту часть схемы по максимуму.

---------------------------------------------------------------------------------------------
Я понимаю, что начальный вопрос, возможно, показался чайниковским, однако проблемы с синтезом c Synplify все же существуют и решений для них Synplicity не предлагает. Эта лабуда уже тянется несколько последних версий Synplify. Каждый раз когда я скачиваю новый билд, я надеюсь, что все уже поправили, однако при запуске все оказывается также плохо, как и в предыдущих версиях. Вот потому и возникла идея перейти на сопоставимый по качеству синтеза продукт, но не глюкавый, как Synplify.

Потому и спрашиваю о менторовских продуктах. Может у них получше с выше описанными аспектами, а качество синтезированного кода сопоставимо ?



Цитата
А чем плохо сразу в Квартусе разводить - у него сейчас далеко не плохие результыты работы?


Quartus очень погано синтезирует VHDL. Все еще не умеет распознавать RTL описание памяти, имеет проблемы с функциями и разрадностями параметров. Проект после Quartus'а занимает обычно больше места и работает намного медленнее. Однако Quartus по уже синтезированному нет-листу очень неплохо справляется с доводкой до требуемых параметров по скорости, ретаймингом и ресинтезом ассинхронных цепей. Так и работаем - синтезируем Synplify, потом затягиваем параметры Quartus'у по самое немогу и получаем приемлемый результат. К сожалению, глюки Synplify мешают картине быть совсем идеальной, однако такой подход себя оправдывает.

С ужасом ожидаю полной сборки проекта - по прикидкам чип будет забит процентов на 90 sad.gif


--------------------
WBR,
V. Mirgorodsky
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- v_mirgorodsky   Synplify vs все остальные   Jun 20 2006, 07:53
- - NiOS   Цитата(v_mirgorodsky @ Jun 20 2006, 11:53...   Jun 20 2006, 08:05
- - Mad Makc   ЦитатаSynplify не имеет временных параметров модел...   Jun 20 2006, 08:07
- - vetal   ЦитатаSynplify не имеет временных параметров модел...   Jun 20 2006, 08:17
- - maior   А у меня синплифай верий 8.4 и выше (последний 8.5...   Jun 20 2006, 13:45
- - Builder   А чем плохо сразу в Квартусе разводить - у него се...   Jun 20 2006, 14:45
- - oval   Цитата(v_mirgorodsky @ Jun 20 2006, 11:53...   Jun 20 2006, 18:05
- - des00   2 v_mirgorodsky я понимаю ваши проблемы, сам с ни...   Jun 21 2006, 04:27
- - v_mirgorodsky   Synplicity FPGA Synthesis Reference Manual и так с...   Jun 21 2006, 06:37
- - vetal   1. Вчера специально попробовал: unsigned и signed ...   Jun 21 2006, 07:12
- - v_mirgorodsky   vetal А для какого семейства и какая версия Synpl...   Jun 21 2006, 08:05
|- - vetal   Цитата(v_mirgorodsky @ Jun 21 2006, 12:05...   Jun 21 2006, 10:05
|- - andrew_b   Цитата(vetal @ Jun 21 2006, 13:05) Кодent...   Jun 22 2006, 00:28
- - sazh   To vetal А в Квартусе на любом кристалле выдает ош...   Jun 21 2006, 11:05
|- - vetal   Цитата(sazh @ Jun 21 2006, 15:05) To veta...   Jun 21 2006, 11:28
- - vetal   Как оказалось - это поддерживают только синтезатор...   Jun 22 2006, 06:41


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

 


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


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