Синтез высокого уровня - High-level synthesis


Из Википедии, свободной энциклопедии

Синтез высокого уровня ( СВА ), который иногда называют как синтез C , электронная системой уровня (ESL) синтез , алгоритмический синтез или поведенческий синтез , представляет собой автоматизированный процесс проектирования , который интерпретирует алгоритмическое описание желаемого поведения и создает цифровое оборудование, реализует это поведение. Синтез начинается с высокоуровневой спецификации задачи, где поведение , как правило , отделены от например , для часов -LEVEL времени. Раннее HLS исследовало различные языков ввода спецификации., Хотя последние исследования и коммерческие приложения , как правило , принимают синтезируемое подмножество ANSI C / C ++ / SystemC / MATLAB . Код анализируется, архитектурно ограничен, и планируется transcompile в уровне регистра переноса конструкции (РТЛ) в описания аппаратных средств языка (HDL), который , в свою очередь , обычно синтезированного на уровне затвора путем использования логического синтеза инструмента. Целью HLS является , чтобы аппаратные дизайнеры эффективно создавать и проверять оборудование, предоставляя им лучший контроль над оптимизацией их проектирования архитектуры, и через природу позволяет разработчику описать дизайн на более высоком уровне абстракции , в то время как инструмент делает осуществление RTL. Проверка RTL является важной частью процесса.

Аппаратные средства могут быть разработаны на различных уровнях абстракции. Обычно используемые уровни абстракции уровня ворота , уровень регистра-передачи (РТЛ), и алгоритмический уровень.

В то время как логический синтез использует описание RTL дизайна, синтез высокого уровня работает на более высоком уровне абстракции, начиная с алгоритмического описания на языке высокого уровня , таких как SystemC и ANSI C / C ++. Дизайнер обычно развивает функциональность модуля и протокол межсоединений. Средства синтеза высокого уровня обработка микро-архитектура и трансформировать Untimed или частично приурочен функциональный код в полностью приуроченных реализации RTL, автоматически создавая цикл за циклом детализации для аппаратной реализации. В (RTL) реализация затем используется непосредственно в обычном потоке логического синтеза для создания реализации ворот уровня.

история

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

Первое поколение поведенческий синтез был введен Synopsys в 1994 году как поведенческой компилятор и использовать Verilog или VHDL в качестве входных языков. Уровень абстракции используется частично приурочено ( с тактовой частотой ) процессов. Инструменты на основе поведенческих Verilog или VHDL не были широко приняты отчасти потому , что ни языки , ни частично приуроченные абстракции были хорошо подходят для моделирования поведения на высоком уровне. 10 лет спустя, в начале 2004 года, Synopsys с истекшим Поднятым поведенческим Compiler.

В 2004 году появились ряд следующего поколения коммерческих продуктов синтеза высокого уровня (называемый также поведенческая синтеза или алгоритмического синтеза в то время) , который обеспечивается синтез цепей , указанных на уровне C до уровня регистровых передач (RTL) спецификации. Синтезируя из популярного языка С предлагаемым начислены абстракциями, выразительной силы и кодирование гибкость связывая с существующими потоками и устаревшими моделями. Этот язык сдвиг, в сочетании с другими техническими усовершенствованиями был ключевым фактором для успешного промышленного использования. Инструменты синтеза высокого уровня используются для сложного ASIC и FPGA дизайна.

Синтез высокого уровня был принят в основном в Японии и Европе в первые годы. По состоянию на конец 2008 года было появляющееся принятие в Соединенных Штатах.

вход Источник

Наиболее распространенные входы источника для синтеза высокого уровня, основаны на стандартных языках , такие как ANSI C / C ++ , SystemC и MATLAB .

Синтез высокого уровня, как правило, также включает в себя с точностью до бита исполняемых спецификаций в качестве входных данных, так, чтобы получить эффективную аппаратную реализацию, требуется дополнительная информация о том, что является приемлемым среднеквадратичной ошибка или Битого-Error Rate и т.д. Например, если конструктор начинается с КИМ-фильтром, записанным с помощью «двойного» плавающего типа, прежде чем он или она может получить эффективную аппаратную реализацию, они должны выполнить численное уточнение, чтобы прийти к реализации с фиксированной точкой. Уточнения требует дополнительной информации об уровне шума квантования, который может быть терпимо, действительный входных диапазонов и т.д. Это с точностью до бита спецификация делает высокий уровень спецификации источником синтеза функционально полной. Обычно инструментов вывести из кода высокого уровня конечного автомата и DATAPATH, реализующих арифметические операции.

этапы процесса

Процесс синтеза высокого уровня состоит из ряда мероприятий. Различные инструменты синтеза высокого уровня выполнять эти действия в различных порядках с использованием различных алгоритмов. Некоторые инструменты синтеза высокого уровня объединить некоторые из этих видов деятельности или их выполнять итерационно сходиться на искомое решение.

  • Лексическая обработка
  • оптимизация алгоритма
  • Контроль / Dataflow анализ
  • обработка библиотеки
  • распределение ресурсов
  • планирование
  • Функциональный блок связывания
  • Регистрация связывания
  • обработка выходного
  • Входной Rebundling

функциональность

В общем, алгоритм может выполняться в течение многих такты с несколькими аппаратными ресурсами, или на меньшее число тактов, используя большее количество ALU, регистров и памяти. Соответственно, из одного алгоритмического описания, разнообразие аппаратных микроархитектура может быть сгенерировано компилятором HLS в соответствии с указаниями, данными к инструменту. Это же компромисс скорости выполнения аппаратной сложности, как видно, когда данная программа запускается на обычных процессорах различной производительности, но все работает на примерно одинаковую тактовую частоту.

Архитектурные ограничения

Синтез ограничение для архитектуры автоматически может быть применено на основе анализа конструкции. Эти ограничения могут быть разбиты на

  • иерархия
  • Интерфейс
  • объем памяти
  • петля
  • временные ограничения низкого уровня
  • итерация

синтез интерфейса

Интерфейс Синтез относится к способности принимать чистые C / C ++ описания в качестве входных данных, а затем использовать автоматизированную технологию синтез интерфейса для управления протоколом синхронизации и связи на интерфейсе дизайна. Это позволяет проводить анализ интерфейса и исследование полного спектра аппаратных интерфейсов, таких как потоковое, одно- или двухпортовый RAM плюс различные квитирования механизмы. С синтезом интерфейса дизайнер не встраивать протоколы интерфейса в описании источника. Примерами могут служить: прямая связь, одна линия, 2 линии рукопожатия, FIFO.

Вендоры

Данные, представленные на недавнем обзоре

Статус составитель владелец Лицензия вход Выход Год Домен Test
Bench
FP FixP
В использовании AUGH TIMA Lab. академический С подмножеством VHDL 2012 Все да нет нет
MyHDL myhdl.org GNU Lesser General Public License v2.1 питон VHDL / Verilog 2010 Все да да да
волновать Y Explorations коммерческий С VHDL / Verilog 2001 Все да нет да
Bambu PoliMi академический С VHDL / Verilog 2012 Все да да нет
Bluespec BlueSpec Inc. коммерческий BSV SystemVerilog 2007 Все нет нет нет
CHC Altium коммерческий С подмножеством VHDL / Verilog 2008 Все нет да да
CoDeveloper Импульс Ускоренное коммерческий Импульс-С VHDL 2003 изображение
Streaming
да да нет
слоистые облака каденция коммерческий C SystemC / C ++ РТЛ 2015 Все да нет да
CyberWorkbench NEC коммерческий BDL, SystemC VHDL / Verilog 2011 Все Цикл /
Формальная
да да
катапульта Mentor
(Siemens бизнес)
коммерческий C, C ++, SystemC VHDL / Verilog 2004 Streaming нет нет да
DWARV ТОТ. фаянс академический С подмножеством VHDL 2012 Все да да да
Гаут У. Bretagne академический C / C ++ VHDL 2010 DSP да нет да
Hastlayer Lombiq технологии коммерческий C # / C ++ / F # ...
( .NET )
VHDL 2015 .СЕТЬ да да да
Intel высокого уровня синтеза Compiler Intel FPGA (ранее Altera) коммерческий C / C ++ Verilog 2017 Все да да да
LegUp HLS LegUp Computing коммерческий С Verilog 2017 Все да да нет
LegUp У. Торонто академический С Verilog 2011 Все да да нет
MaxCompiler Maxeler коммерческий MaxJ РТЛ 2010 Поток данных нет да нет
ROCCC Жаккарда Comp. коммерческий С подмножеством VHDL 2010 Streaming нет да нет
Synphony C Synopsys коммерческий C / C ++ VHDL / Verilog /
SystemC
2010 Все да нет да
VivadoHLS
(ранее автопилот
от AutoESL)
Xilinx коммерческий C / C ++ / SystemC VHDL / Verilog /
SystemC
2013 Все да да да
киви У. Кембридж академический C # Verilog 2008 .СЕТЬ нет да да
шимпанзе У. Вашингтон академический С VHDL 2008 Все нет нет нет
gcc2verilog У. Корея академический С Verilog 2011 Все нет нет нет
Геркулес Ajax Составители коммерческий С / NAC VHDL 2012 Все да да да
Shang ? У. Иллинойс С Verilog 2013 Все да ? ?
Трезубец Лос-Аламос NL академический С подмножеством VHDL 2007 научный нет да нет
Aban-
клонировали
AccelDSP Xilinx коммерческий MATLAB VHDL / Verilog 2006 DSP да да да
C2H Altera коммерческий С VHDL / Verilog 2006 Все нет нет нет
CtoVerilog У. Хайфа академический С Verilog 2008 Все нет нет нет
ДЕ-ФАКТО U. South Cailf. академический С РТЛ 1999 DSE нет нет нет
Garp У. Беркли академический С подмножеством битовый поток 2000 петля нет нет нет
МАТЧ У. Northwest академический MATLAB VHDL 2000 Образ нет нет нет
Напа-С Сарнов Corp. академический С подмножеством VHDL / Verilog 1998 петля нет нет нет
PipeRench U.Carnegie М. академический DIL bistream 2000 Поток нет нет нет
SA-C У. Колорадо академический SA-C VHDL 2003 Образ нет нет нет
Морской огурец У. Бриэм Ю. академический Джава EDIF 2002 Все нет да да
SPARK U. Cal. Irvine академический С VHDL 2003 контроль нет нет нет

Смотрите также

Рекомендации

дальнейшее чтение

  • Майкл Fingeroff (2010). Высокого уровня синтеза Blue Book . Xlibris Corporation. ISBN  978-1-4500-9724-6 .
  • Coussy, Р .; Gajski, DD; Meredith, М .; Такач, A. (2009). «Введение в высоком уровне синтеза». IEEE Design & Test компьютеров . 26 (4): 8-17. DOI : 10,1109 / MDT.2009.69 .
  • Ewout SJ Martens; Жорж Gielen (2008). Моделирование высокого уровня и синтез аналоговых интегрированных систем . Springer. ISBN  978-1-4020-6801-0 .
  • Сараджу Моханти ; Н. Ranganathan; E. Kougianos & P. Патра (2008). Синтез маломощных высокого уровня для наноразмерных КМОП схем . Springer. ISBN  978-0387764733 .
  • Алиса С. Паркер; Йосеф Тират-Gefen; Suhrid А. Wadekar (2007). "Система-Level Design". В Wai-Kai Chen. VLSI пособие (2 - е изд.). CRC Press. ISBN  978-0-8493-4199-1 . глава 76.
  • Shahrzad Mirkhani; Зейналабедин Наваби (2007). "System Level Design Языки". В Wai-Kai Chen. VLSI пособие (2 - е изд.). CRC Press. ISBN  978-0-8493-4199-1 . глава 86. охватывает использование C / C ++, SystemC, TML и даже UML
  • Известкование Xiu (2007). Методология проектирования СБИС демистифицирована: концептуальная систематики . Wiley-IEEE. ISBN  978-0-470-12742-1 .
  • Джон П. Эллиот (1999). Понимание поведенческого синтеза: практическое руководство по конструкции высокого уровня . Springer. ISBN  978-0-7923-8542-4 .
  • Нана, Разваны; Сима, Влад-Михай; Pilato, Кристиан; Choi, Jongsok; Форт, Блэр; Canis, Эндрю; Чен, Ю. Ting; Сяо, Сюань; Браун, Стивен; Ferrandi, Фабрицио; Андерсон, Джейсон; Бертельс, Коен (2016). «Экспертиза и оценка FPGA высокого уровня синтеза инструменты». IEEE Transactions по автоматизированному проектированию интегральных схем и систем . 35 (10): 1591-1604. DOI : 10,1109 / TCAD.2015.2513673 .

внешняя ссылка