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

Констраины для разных пакетов

Добрый день, ALL!

 

Собственно вопрос возник после нескольких экспериментов с различными средами синтеза описаний цифровых схем.

 

Сначала мы пользовались встроенным синтезатором ISE. Результаты были неплохими, однако наглядность информации о проекте и прозрачность отчетов оставляли желать лучшего. Потом попробовали Synplify Pro. Проект сразу уменьшился в размерах, а рабочая частота возросла. Казалось бы, естесственно было бы пользоваться и дальше Synplify Pro, однако этот пакет обладает совершенно иной системой аттрибутов (констрейнов) для синтеза :(

 

Не подскажет ли уважаемый ALL как скрестить ужа с ежом? В принципе есть пространство констраинов, поддерживаемых одновременно ISE и Synplify, однако есть и очень много полезных, поддерживаемых одним пакетом и не поддерживаемых другим. Понятно, что надо выбрать пакет и ним пользоваться, но не хотелось бы сделать стратегическую ошибку, а потом переделывать все констраины на весь проект.

 

 

С уважением,

Владимир Миргородский

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


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

<однако этот пакет обладает совершенно иной системой аттрибутов (констрейнов) для синтеза>

А в чем собственно неудобства?

Лично я страдаю только от одного - для физических констрейнов нужны истинные имена инстансов и цепей, а каждый синтезатор наровит их переименовать как ему угодно :(

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


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

<однако этот пакет обладает совершенно иной системой аттрибутов (констрейнов) для синтеза>

А в чем собственно неудобства?

Лично я страдаю только от одного - для физических констрейнов нужны истинные имена инстансов и цепей, а каждый синтезатор наровит их переименовать как ему угодно :(

 

Неудобство заключается в том, что они совершенно по разному звучат :( Крнстраины Симпплифая обычно начинаются с префикса syn_, а у ISE системы вообще нет. Просто есть целая куча аттрибутов для VHDL/Verilog кода, которыми можно управлять процессом синтеза. Я только начал изучение констраинов Симплифая и впечатление складывается такое, что для ISE и Симплифай надо иметь практически два разных исходника, за исключением самых простых случаев: Симплифай укзывать на мультиплексоры практически не надо, а ISE надо если он не полный, симплифай логику минимизирует сам, а ISE надо привести ее к виду, удобному для упаковки. Естественно, ISE этому можно обучить констрейнами для каждого конкретного случая, но потому исходники и будут разными. Еще не пытался сравнивать те или иные конструкции по эффективности и скорости, но возникает чувство, что подходы к кодированию для Симплифай и ISE должны быть несколько разными.

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


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

И все-таки, какой смысл "скрещивать" два синтезатора?

Synplify всяко "лучше" (хотя бы по цене судить).

Другое дело, если таскать исходники между ними прийдется, дык тут ничего не поделаеш, прийдется править. Кстати, это относится и к Leonardo.

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


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

Боюсь надо либо писать код в котором нет необходимости в ограничениях (т.е.) хотя порой это просто не возможно :) либо останавливаться на чем-то одном. И как мне кажеться выбор будет не в пользу XST. Хотя вот в ISE 7.1 если я не ошибаюсь есть поддержка директив синтеза Synopsys и Synplify (cgd.pdf->Chapter 5->Third-Party Constraints).

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


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

Просто типа крик души у меня :( Почти 7 выходных потратил на изучение XST User Guide - почти 1000 страниц убористого текста, сегодня открыл Synplify User Guide - еще 1000 страниц текста :( Так у меня ни на что другое времени не останется кроме как читатть документацию :cranky:

 

Результат же компиляции без констраинов каждый раз зависит от фазы луны: Fmax меняется в пределах от 150 до 160 MHz без видимых причин :smile3046:

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


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

И это только вершина айсберга :(

Далее пойдет PAR, у которого, кровью добытые пару наносекунд, слетают при добавлении инвертора в другом модуле.

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


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

Об этом я даже думать боюсь на сегодняшний момент :(

 

А каким синтезатором вы пользуетесь? В постах пробегало, что Leonardo Spectrum - верно? А какие у него преимущества перед Synplify? Поделитесь, pls, впечатлениями, просто не хочется изучить еще 1000 страниц а понять, что Леонардо на столько же лучше Симплифай на столько Симплифай лучше ISE :)

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


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

Я пользуюсь Synplify, поэтому о приемуществах Leonardo ничего сказать не могу. Leonardo и Synplify находятся в одной весовой категории.

А вообще, я считаю очень плохо, когда получаемый нетлист - вещь в себе. Это говорит о том, что констрейны к нему толком не прикрутите, ну а отсюда все вытекающие последствия ...

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


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

Я пользуюсь Synplify, поэтому о приемуществах Leonardo ничего сказать не могу. Leonardo и Synplify находятся в одной весовой категории.

А вообще, я считаю очень плохо, когда получаемый нетлист - вещь в себе. Это говорит о том, что констрейны к нему  толком не прикрутите, ну а отсюда все вытекающие последствия ...

 

Уважаемый 3.14, а в качестве P&R (для Xilinx) что используете и чем моделируете? И еще, если можно, поподробнее о преимуществах Synplify над ISE-синтезатором (кроме большей цены). Если уже обсуждалось, киньте, плз, ссылочку на тему. А то купить-то не проблема, знать бы за что денежку платить!

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


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

2 BSV

О существовании альтернативы Зайлинсовому маперу и роутеру мне ничего не известно (даже и не слышал). Моделирую, как наверное и большинство в ModelSim.

Достоинства Synplify (уже обсуждали, поищите на форуме, не раз было):

По статистике нетлист получается меньше и быстрее.

Различные удобства - RTL (гораздо приятнее чем у XST), подсветка определенных макросов, подсветка варнингов оптимизации ...

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

И потом, зачем платить? Этого борохла сейчас везде навалом ;)

Поиграйтесь, сами поймете.

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


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

Добрый день, 3.14 :)

 

Есть такая просьба. Можете ли Вы кинуть в качестве примера какой нибудь свой нетривиальный исходник с прикрученными к нему констрейнами? Так, чтобы его можно было скомпилить до реальной прошивки, поиграться с числами и увидеть разницу. После прочтения двух мануалов по Xilinx и Synplify в голове осталось слишком много информации и полная каша в направлении как полученными знаниями воспользоваться :cranky:

 

Думаю, что это будет интересно не только мне, но и другим посетителям форума.

 

Еще вопрос. Как нормально помирить Synplify с ISE PAR? У меня сейчас парадоксальная ситуация. Статистика после Synplify говорит что мне надо, к примеру 60 триггеров и 75 LUT, после чего PAR радостно раскладывет это в 65-70 slices. Если же синтезировать самим ISE, то все помещается в 40-45 slices. Возникает впечатление, что после Synplify ISE PAR просто раскладывает все LUT и триггера в отдельные слайсы даже не пытаясь их комбинировать между собой. Конечно, проект после Synplify получается более быстрым, однако десяток выигранных мегагерц стоит двойной площади, занимаемой модулем в кристалле :maniac:

 

Понятно, когда эти MHz жизненно необходимы, то двойной размер не слишком высокая цена, однако в большинстве случаев такое ускорение оказывается слишком дорогим :(

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


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

Еще вопрос. Как нормально помирить Synplify с ISE PAR? У меня сейчас парадоксальная ситуация. Статистика после Synplify говорит что мне надо, к примеру 60 триггеров и 75 LUT, после чего PAR радостно раскладывет это в 65-70 slices. Если же синтезировать самим ISE, то все помещается в 40-45 slices. Возникает впечатление, что после Synplify ISE PAR просто раскладывает все LUT и триггера в отдельные слайсы даже не пытаясь их комбинировать между собой. Конечно, проект после Synplify получается более быстрым, однако десяток выигранных мегагерц стоит двойной площади, занимаемой модулем в кристалле :maniac:

 

Важно не то, сколько занимает проект, а помещается или не помещается в заданные рамки, т.е. в имеющийся кристалл. Т.е. после Synplify PAR более эффективно раскладывает элементы по ячейкам на кристалле, но это более эффективное размещение может занимать больше места (пространства на кристалле), но важно в данном случае не место, а сколько используется LUT и FF, ведь если пространства будет нехватать, то PAR будет стараться разместить элементы плотнее.

 

Понятно, когда эти MHz жизненно необходимы, то двойной размер не слишком высокая цена, однако в большинстве случаев такое ускорение оказывается слишком дорогим :(

 

Нужно сравнивать не площать, а количество используемых элементов(триггеров и логических ячеек). :)

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


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

А чего же тогда при синтезе родным ISE синтезатором проект занимает реально меньше места в кристалле? В нашем случае это 512 slices при синтезе Synplify и 360 slices при синтезе ISE. Так где же правда? Или Вы хотите сказать, что когда PAR'у не будет хватать места в кристалле он начнет паковать триггера и LUT'ы в одни slices?

 

Просто Quartus в этом смысле подобных вольностей себе не позволял. Ему можно было сказать - паковать триггера и логику в одну и ту же макроячейку и он только это и делал, если возможно, при этом честно сообщая, что частота в результате будет ниже. А у ISE получается, что рассчитываеш на одну частоту, отлаживаеш все модули под нее, а когда упакуеш все в кристалл, увидиш, что частота упала в следствие упаковки. Свинство это с его стороны :maniac:

 

Я лично предпочитаю видеть все с самого начала в условиях,максимально приближенных к боевым. Знать бы как это ему включить :cranky:

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


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

А чего же тогда при синтезе родным ISE синтезатором проект занимает реально меньше места в кристалле? В нашем случае это 512 slices при синтезе Synplify и 360 slices при синтезе ISE. Так где же правда? Или Вы хотите сказать, что когда PAR'у не будет хватать места в кристалле он начнет паковать триггера и LUT'ы в одни slices?

 

На сколько я знаю, так оно и есть. Т.е. именно такое поведение PAR я всегда наблюдаю. Исключение составляют только случаи, когда в один слайс не могут быть упакованы некоторые элементы, например в случае Spartan-2 в один слайс не могут быть упакованы два триггера с синхронным сбросом и два LUT, сконфигурированных как элементы памяти 16x1. Но в большинстве случаев упаковка происходит совершенно нормально. :)

 

Просто Quartus в этом смысле подобных вольностей себе не позволял. Ему можно было сказать - паковать триггера и логику в одну и ту же макроячейку и он только это и делал, если возможно, при этом честно сообщая, что частота в результате будет ниже. А у ISE получается, что рассчитываеш на одну частоту, отлаживаеш все модули под нее, а когда упакуеш все в кристалл, увидиш, что частота упала в следствие упаковки. Свинство это с его стороны :maniac:

 

Почему частота должна быть ниже? Далеко не всегда, как мне кажется, даже наоборот... Что касается ISE - то я не понял, откуда Вы берете ту частоту, на которую рассчитываете? Вы исходите из данных, которые Вам сообщает синтезатор? Если так, то им можно доверять только с учетом того, что это максимальная частота, а используемые в процессе трассировки ресурсы (линии связи) могут внести свои существенные коррективы.

 

Я лично предпочитаю видеть все с самого начала в условиях,максимально приближенных к боевым. Знать бы как это ему включить  :cranky:

 

Мне лично кажется, что все и так изначально близко к боевым условиям. Особенно, если борьба идет за каждый мегагерц. ;)

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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