Фильтр по тематике

Эффективность проектирования заказных схем в синтезаторе LeonardoSpectrum

В статье сравнивается эффективность результатов проектирования заказных СБИС в различных версиях синтезатора LeonardoSpectrum. Эффективность определяется уменьшением площади и увеличением быстродействия синтезируемых схем. Сравнение версий проведено на примерах VHDL-описаний проектов цифровых схем.

Эффективность проектирования заказных схем в синтезаторе LeonardoSpectrum

Введение

После этапа моделирования и верификации проекта цифровой системы (схемы) наступает решающий этап проектирования – синтез логических схем в выбранной целевой технологической библиотеке. Для реализации схемы на программируемых логических интегральных схемах (ПЛИС) применяются различные пакеты программ: XST в системе проектирования ISE (Xilinx), Sinplify (Synopsys), LeonardoSpectrum [1] (Mentor Graphics).

Cинтезатор LeonardoSpectrum используется, в том числе, и для проектирования заказных СБИС. Пользователь может выполнить синтез в собственной технологической библиотеке, подготовив описания элементов целевой библиотеки, либо осуществлять управление процессом синтеза, выбирать критерии и режимы оптимизации схемы и устанавливать технологические ограничения, например требование к задержке. Программа может работать как в ОС Linux, так и в ОС Windows. На настоящий момент сменилось большое число её версий.

Для пользователей LeonardoSpectrum актуальным является вопрос о том, насколько повышается качество (уменьшается площадь, повышается быстродействие) получаемых логических схем со сменой версий программы. С этой целью в статье проанализирован опыт работы с различными версиями синтезатора LeonardoSpectrum и приведены результаты экспериментов практических примеров.

Примеры и эксперименты

Все примеры представлены в виде функциональных либо алгоритмических описаний на языке VHDL. Первую группу составляют функциональные описания комбинационной логики, соответствующие представлениям логических функций в виде систем ДНФ (двухуровневые И/ИЛИ представления) и в виде многоуровневых представлений в базисе И, ИЛИ, НЕ. Данные примеры взяты из источника [2].

Другую группу примеров составляют алгоритмические описания проектов цифровых систем, взятые из практики проектирования либо из Интернета [3] (примеры dec_8b10b, enc_8b10b). Во всех экспериментах была использована одна и та же библиотека проектирования отечественных КМОП СБИС [4], содержащая 35 элементов типа 2И-НЕ, 3И-НЕ, 2-ИЛИ-НЕ, 3-ИЛИ-НЕ (и других) и три типа триггеров.

Эксперимент 1 проводился с целью выбора критерия оптимизации (Area, Delay) и режима трудоёмкости оптимизации (Optimize effort), при которых синтез приводил к получению схем, меньших по площади и задержке. Устанавливаемый в программе параметр режима «Optimize effort» может принимать значения remap, quick, standard [5].

Смысл этих значений следующий:

  • remap выполняет локальную оптимизацию и технологическое отображение в целевую библиотеку;
  • quick (режим по умолчанию) выполняет одну итерацию оптимизации на основе быстрых алгоритмов и применяется на начальном этапе проектирования;
  • standard выполняет несколько итераций оптимизации и технологического отображения на основе различных методов, при этом получаемые результаты, как правило, лучше, чем в режиме quick.

Синтезатором можно управлять как с помощью графического интерфейса, так и с помощью TCL-скриптов. В листинге приведён скрипт (сценарий), используемый при синтезе в эксперименте 1, строка комментариев начинается с символа #. При проведении эксперимента 1 в скрипте вместо параметра area команды optimize использовался параметр delay, а вместо значения standard параметра effort использовались также значения remap либо quick.

По результатам сравнения синтезированных проектов схем версии программы LeonardoSpectrum можно условно поделить на три группы – L2003, L2006 и L2011, дающие примерно одинаковые результаты синтеза. Основанием для такого деления являются существенные различия в площади и задержке получаемых логических схем (см. табл. 1).

Результаты первого эксперимента по сравнению трёх базовых версий L2003, L2006, L2011 приведены в таблице 2, где знаком «*» отмечены лучшие результаты – параметры площади (в условных единицах) и задержки (в наносекундах) отдельно для каждой из версий. Жирным шрифтом выделены лучшие решения совместно по трём версиям синтезатора. В столбце «Критерий оптимизации» приведён критерий Area или Delay, в столбце «Трудоёмкость оптимизации» указано значение этого параметра, при котором получена схема меньшей площади либо с меньшей задержкой.

Проанализировав таблицу 2, можно сделать следующие выводы. Для версии L2006 выбор критерия оптимизации Area приводил к схеме меньшей площади, а выбор критерия Delay – к схеме с меньшей задержкой. Например, для первого примера b2 выбор режима <Area, Standard> позволил реализовать схему с площадью SL2006 = 211588 и задержкой τL2006 = 11,10 (см. первую строку таблицы 2). В режиме <Delay, Quick> результат уже другой: SL2006 = 471711 и τL2006 = 6,53 (см. вторую строку таблицы 2). Звёздочкой в первой и второй строках отмечены меньшие значения площади и задержки. Для этого примера выбор режимов <Delay, Standard>, <Delay, Remap> и др. приводит к схемам с большей задержкой. Однако лучшее (по площади) решение для примера b2 обеспечила версия L2003, поэтому значение SL2003 = 141581 отмечено звёздочкой и выделено жирным шрифтом для трёх версий. Наименьшее значение задержки для данной схемы обеспечила версия L2006, поэтому значение τL2006 = 6,53 выделено жирным шрифтом для трёх версий.

Для версий программы L2003, L2006 и L2011 критерий оптимизации Auto приводил к тем же результатам, что критерий Area, поэтому критерий Auto далее не упоминается.

Таким образом, версия L2003 позволяет получать схемы наименьшей площади при тех же режимах синтеза, что в версиях L2006 и L2011. Версия L2006 реализует схемы с наименьшей задержкой. Сравнения версий LeonardoSpectrum приведены на диаграммах: площади схем показаны на рисунке 1, задержки – на рисунке 2.


Видно, что версия L2011 позволяет получать компромиссные схемы. Если же требуется реализовать схему с меньшей задержкой, то следует воспользоваться версией L2006, понимая при этом, что проигрыш по площади может быть весьма значительным.

Вернёмся к первому примеру b2 (см. табл. 2). Здесь версия L2006 позволяет уменьшить задержку до τL2006 = 6,53 нс и получить площадь SL2006 = 471711, версия L2011 позволяет уменьшить площадь до SL2011 = 158801 и получить задержку τL2011 = 11,36 нс.

Эксперимент 2 проводился с целью изучения эффективности повторного синтеза для уменьшения задержки схемы. Для этого в скрипт (см. листинг) перед командой optimize добавлена команда set input2output 7.73, устанавливающая требуемое значение задержки (т.е. 7,73 нс). Каждый раз оно устанавливалось на 10% меньше достигнутого, и синтез выполнялся снова. Однако на втором либо третьем проходе, как правило, уменьшение задержки не происходило, а увеличивалась площадь схемы.

Пользователь может устанавливать требуемое значение задержки, но программа часто синтезирует схему, задержка которой лишь приближена к желаемому значению. Для примера b2 площадь SL2011 = 313892, а задержка схемы составляет τL2011 = 9,83 нс. Требование уменьшения задержки до τ = 6,16 нс привело к синтезу схемы с площадью SL2011 = 414399 и задержкой τL2011 = 7,70 нс. Таким образом, уменьшение задержки схемы на 27% увеличило её площадь на 25%. На рисунке 3 показана диаграмма уменьшения задержек схем в эксперименте 2 для версии L2011 (зелёным цветом отмечено относительное уменьшение задержки).

Таким образом, после последовательного выполнения двух требований уменьшения задержки получаемой схемы на 10%, задержка исходной схемы снижалась примерно на 18%, при этом минимальное уменьшение задержки составляло 2%, а максимальное – 40%.

Следует отметить, что требование получения схемы с малой задержкой при проектировании в целевой библиотеке заказных СБИС часто вообще не может быть выполнено – схемные реализации с требуемыми характеристиками задержек просто не существуют, поэтому никакие ухищрения и варьирование параметров синтеза не помогают.

Эксперимент 3 был посвящён сравнению двух форм представления систем логических функций: дизъюнктивных нормальных форм (ДНФ) и бинарных диаграмм решений (Binary Decision Diagram, BDD) [6]. На потоке из 62 практических примеров было установлено, что наиболее эффективной формой представления систем функций при синтезе схем из библиотечных элементов являются логические уравнения, соответствующие представлениям систем функций в виде BDD.

Диаграммы решений строятся на основе разложения Шеннона. Разложением Шеннона полностью определённой булевой (логической) функции f (x1,..., xn) по переменной xi называется представление f (x1,..., xn) в виде:

Функции f (x1,..., xi – 1, 0, xi + 1,..., xn) и f (x1,..., xi – 1, 1, xi + 1,..., xn) в (1) являются коэффициентами разложения, они получаются из функции f (x1,..., xn) подстановкой вместо переменной xi константы 0 или 1, соответственно. Диаграмма задаёт в виде графа последовательность разложений Шеннона исходной функции и получаемых коэффициентов разложения. Минимизация сложности BDD основана на том, что в процессе разложения системы функций могут появляться одинаковые коэффициенты разложения не только у одной, но и у нескольких (либо даже у всех) функций, входящих в систему. Выделение одинаковых подфункций (коэффициентов разложения) приводит к сокращению аппаратной сложности и, соответственно, площади схемы. Минимизация BDD осуществлялась с помощью программы TIE_BDD [7].

Приведём пример многоуровневого разложения, соответствующего BDD. Обозначим через <x1, x2, x3, x4, x5, x6> первую из n! перестановок переменных, по которой проведём разложение Шеннона для системы ДНФ функций:

Построенные для данной системы функций коэффициенты разложения Шеннона дают следующее многоуровневое представление системы функций:

Основной проблемой при построении многоуровневых представлений меньшей сложности является выбор перестановки переменных, которая приводит к возможно меньшему числу логических выражений приведённого выше вида. В экспериментах программа TIE_BDD строила BDD по 5000 случайно выбираемым перестановкам переменных и выбирала из рассмотренных вариантов диаграммы наименьшей сложности.

Эксперименты на практических примерах [2] комбинационных схем показали, что в подавляющем большинстве случаев (41 пример из 62) использование многоуровневых представлений вместо ДНФ позволяло синтезировать в версии L2011 схемы меньшей площади, чем по исходным описаниям функций, соответствующих ДНФ. Напомним, что при синтезе функциональные описания комбинационных схем в виде ДНФ и в виде разложений Шеннона были представлены на языке VHDL. Некоторая информация об алгоритмах оптимизации, применяемых синтезатором LeonardoSpectrum, содержится в [5, с. 122]. Таким образом, судя по результатам эксперимента 3, комбинационные схемы в библиотечном базисе лучше синтезировать по минимизированным BDD, а не по минимизированным системам ДНФ, представляющим логические функции.

Возможность уменьшения площади комбинационных схем имеется и при повторном синтезе описания, полученного с помощью команды unmap. Такие эксперименты с повторным синтезом, выполнением команды unmap и сменой целевых библиотек синтеза описаны в [8]. Стили кодирования (Encoding Style) не имеют значения для комбинационной логики, однако для схем с триггерами они позволяют варьировать параметры площади и быстродействия. С другими управляющими параметрами синтеза LeonardoSpectrum можно ознакомиться в [1].

Выводы

На испытанном потоке проектов схем наилучшие решения по площади давала версия L2003, по задержке – версия L2006. Новые версии программы L2011 ориентированы на уменьшение площади схем, при этом задержки, естественно, увеличиваются. В версиях L2003 и L2006 установка критерия оптимизации «Delay» приводила к схемам с минимальной задержкой, однако для более поздних версий L2011 установка критерия «Delay» практически не влияла на получение схемы с меньшей задержкой; минимум задержки приходился на другие режимы, в основном, <Area, Standard>.

При общем совершенствовании программы LeonardoSpectrum в старых версиях синтезатора можно реализовать лучшие решения. Поэтому в ответственных случаях целесообразно выполнять синтез как в новых, так и в старых версиях программы, и выбирать лучшие решения по тому или иному критерию.

Литература

  1. Бибило П.Н. Системы проектирования интегральных схем на основе языка VHDL. StateCAD, ModelSim, LeonardoSpectrum. СОЛОН-Пресс. 2005.
  2. http://www1.cs.columbia.edu/~cs4861/sis/espresso-examples/ex.
  3. http://opencores.org/project,8b10b_encdec,overview.
  4. Бибило П.Н., Кириенко Н.А. Оценка энергопотребления логических КМОП-схем по их переключательной активности. Микроэлектроника. № 1. 2012. С. 65–77.
  5. LeonardoSpectrum User’s Manual, Software Release 2011a. May 2011.
  6. Кнут Д.Э. Искусство программирования. Том 4. А. Комбинаторные алгоритмы. Часть 1. ИД Вильямс. 2013.
  7. Бибило П.Н., Леончик П.В. Алгоритм построения диаграммы двоичного выбора для системы полностью определённых булевых функций. Управляющие системы и машины. № 6. 2009. С. 42–49.
  8. Бибило П.Н., Романов В.И. Логическое проектирование дискретных устройств с использованием продукционно-фреймовой модели представления знаний. Ленанд. 2014.
Комментарии
Рекомендуем
Переключатели ёлочных гирлянд  на основе ИМС стандартной логики электроника

Переключатели ёлочных гирлянд на основе ИМС стандартной логики

Светодинамические устройства (СДУ) для управления гирляндами обычно выполняются на основе микроконтроллера, что требует применения программатора и написания управляющей программы. В то же время аналогичное устройство можно выполнить всего на нескольких ИМС стандартной логики. В таком случае нет необходимости в применении программатора для прошивки микроконтроллера. В данной статье рассмотрены три автомата с фиксированными алгоритмами для управления четырьмя и восемью гирляндами. В качестве светоизлучающих элементов используются сверхъяркие светодиоды. Их высокая надёжность и малое энергопотребление обеспечивают работоспособность в течение длительного времени и высокую экономичность при высокой яркости свечения.
25.12.2024 СЭ №1/2025 132 0
Недорогой двухканальный преобразователь несимметричного (однотактного) сигнала в симметричный (дифференциальный) на базе ИУ INA2128 и двух ОУ OP2177 и ADA4522-2 электроника

Недорогой двухканальный преобразователь несимметричного (однотактного) сигнала в симметричный (дифференциальный) на базе ИУ INA2128 и двух ОУ OP2177 и ADA4522-2

В статье описан двухканальный предварительный усилитель-формирователь, преобразующий два простых (несимметричных) сигнала в соответствующие им дифференциальные (симметричные) на базе сдвоенного ИУ INA2128 и двух сдвоенных ОУ OP2177 и ADA4522-2 с возможностью регулировки смещения (балансировки) между двумя дифференциальными выходными сигналами. По сравнению с предварительным усилителем на базе двух ИУ AD8295, описанным в [1] и предназначенным для работы с мощными ОУ, включёнными по мостовой схеме в усилителе звука, настоящий преобразователь в несколько раз дешевле, а по качеству не уступает преобразователю на базе ИУ AD8295, стоимость которого в настоящее время весьма высока (от 1000 до 2000 руб. за штуку). Приведены принципиальная схема устройства, разводка и внешний вид его платы, а также результаты тестирования.
25.12.2024 СЭ №1/2025 101 0

  Подписывайтесь на наш канал в Telegram и читайте новости раньше всех! Подписаться