Язык описания оборудования
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В компьютерной инженерии язык описания аппаратного обеспечения ( HDL ) — это специализированный компьютерный язык, используемый для описания структуры и поведения электронных схем , чаще всего для проектирования ASIC и программирования FPGA .
Язык описания аппаратного обеспечения обеспечивает точное формальное описание электронной схемы, которое позволяет автоматически анализировать и моделировать схему. Он также позволяет синтезировать HDL -описание в список соединений (спецификацию физических электронных компонентов и способов их соединения друг с другом), который затем можно разместить и маршрутизировать для создания набора масок, используемых для создания интегральной схемы .
Язык описания аппаратного обеспечения очень похож на язык программирования, такой как C или ALGOL ; это текстовое описание, состоящее из выражений, операторов и управляющих структур. Одним из важных различий между большинством языков программирования и HDL является то, что HDL явно включает понятие времени.
HDL являются неотъемлемой частью систем автоматизации электронного проектирования (EDA), особенно для сложных схем, таких как специализированные интегральные схемы , микропроцессоры и программируемые логические устройства .
Мотивация
[ редактировать ]Из-за стремительного роста сложности цифровых электронных схем с 1970-х годов (см. закон Мура ) разработчикам схем требовалось, чтобы цифровые логические описания выполнялись на высоком уровне без привязки к конкретной электронной технологии, такой как ECL , TTL или CMOS . HDL были созданы для реализации абстракции уровня передачи регистров , модели потока данных и синхронизации схемы. [1]
Существует два основных языка описания оборудования: VHDL и Verilog . В них есть разные типы описания: «потоковое, поведенческое и структурное». Пример потока данных VHDL:
LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;
ENTITY not1 IS
PORT(
a : IN STD_LOGIC;
b : OUT STD_LOGIC;
);
END not1;
ARCHITECTURE behavioral OF not1 IS
BEGIN
b <= NOT a;
END behavioral;
Структура ЛПВП
[ редактировать ]HDL — это стандартные текстовые выражения структуры электронных систем и их поведения с течением времени. Как и языки параллельного программирования , синтаксис и семантика HDL включают явные обозначения для выражения параллелизма . Однако, в отличие от большинства языков программирования , HDL также включают явное понятие времени, которое является основным атрибутом аппаратного обеспечения. Языки, единственной характеристикой которых является выражение связности цепей между иерархией блоков, правильно классифицируются как языки списков соединений , используемые в автоматизированном проектировании электрических систем . HDL может использоваться для выражения проектов в структурных, поведенческих архитектурах или архитектурах уровня передачи регистров для той же функциональности схемы; в последних двух случаях синтезатор определяет архитектуру и расположение логических элементов.
HDL используются для написания исполняемых спецификаций оборудования. Программа, предназначенная для реализации базовой семантики операторов языка и моделирования хода времени, предоставляет разработчику аппаратного обеспечения возможность моделировать аппаратное обеспечение до его физического создания. Именно эта исполняемость дает HDL иллюзию того, что они являются языками программирования , хотя их точнее классифицировать как языки спецификаций или языки моделирования . Существуют симуляторы, способные поддерживать дискретно-событийное (цифровое) и непрерывное (аналоговое) моделирование, и доступны HDL, предназначенные для каждого из них.
Сравнение с языками потока управления
[ редактировать ]Конечно, можно представить семантику оборудования с помощью традиционных языков программирования, таких как C++ , которые оперируют семантикой потока управления , а не потоком данных , хотя для функционирования как такового программы должны быть дополнены обширными и громоздкими библиотеками классов . Однако, как правило, языки программирования программного обеспечения не включают в себя никаких возможностей для явного выражения времени и, следовательно, не могут функционировать как языки описания аппаратного обеспечения. До появления System Verilog в 2002 году интеграция C++ с логическим симулятором была одним из немногих способов использования объектно-ориентированного программирования при проверке оборудования. System Verilog — первый крупный HDL, предлагающий объектную ориентацию и сборку мусора.
Используя подходящее подмножество языка описания аппаратного обеспечения, программа, называемая синтезатором или инструментом логического синтеза , может выводить логические операции аппаратного обеспечения из операторов языка и создавать эквивалентный список соединений общих аппаратных примитивов. [ жаргон ] для реализации указанного поведения. [ нужна ссылка ] Синтезаторы обычно игнорируют выражение любых временных конструкций в тексте. Например, цифровые логические синтезаторы обычно используют фронты тактовой частоты в качестве способа синхронизации схемы, игнорируя любые конструкции синхронизации. Возможность иметь синтезируемое подмножество языка сама по себе не создает язык описания аппаратного обеспечения.
История
[ редактировать ]Первые языки описания аппаратного обеспечения появились в конце 1960-х годов и выглядели как более традиционные языки. [2] Первое, имевшее длительный эффект, было описано в 1971 году в книге К. Гордона Белла и Аллена Ньюэлла «Компьютерные структуры» . [3] В этом тексте введено понятие уровня передачи регистров , впервые использованное в языке ISP для описания поведения компании Digital Equipment Corporation (DEC) PDP-8 . [4]
Этот язык стал более распространенным с появлением модулей уровня RT (RTM) PDP-16 компании DEC и книги, описывающей их использование. [5] Затем последовали как минимум две реализации базового языка ISP (ISPL и ISPS). [6] [7] ISPS хорошо подходил для описания взаимосвязей между входными и выходными данными проекта и был быстро принят коммерческими группами DEC, а также рядом исследовательских групп как в США, так и среди их союзников по НАТО.
Продукты RTM так и не получили коммерческого успеха, и DEC прекратила их продажу в середине 1980-х годов, поскольку новые технологии, в частности сверхбольшая интеграция (СБИС), стали более популярными.
Отдельная работа, проделанная примерно в 1979 году в Университете Кайзерслаутерна, создала язык под названием KARL («Язык передачи регистров Кайзерслаутерна»), который включал в себя функции языка расчетов проектирования, поддерживающие планирование микросхем СБИС. [ жаргон ] и структурированный дизайн аппаратного обеспечения. Эта работа также легла в основу родственного языка интерактивной графики KARL ABL, название которого было инициализмом « Язык блок-диаграмм». [8] ABL был реализован в начале 1980-х годов Centro Studi e Laboratori Telecomunicazioni ( CSELT ) в Турине, Италия, где был создан графический редактор дизайна СБИС ABLED. В середине 1980-х годов международный консорциум, финансируемый Комиссией Европейского Союза, внедрил структуру проектирования СБИС вокруг KARL и ABL. [9]
К концу 1970-х годов проектирование с использованием программируемых логических устройств (PLD) стало популярным, хотя эти проекты в основном ограничивались проектированием конечных автоматов . В 1980 году компания Data General использовала эти же устройства для разработки Data General Eclipse MV/8000 , и коммерческая потребность в языке, который мог бы хорошо работать с ними, начала расти. К 1983 году ввод-вывод данных представил ABEL, чтобы удовлетворить эту потребность.
В 1985 году, когда проектирование перешло на СБИС, компания Gateway Design Automation представила Verilog , а компания Intermetrics выпустила первую завершенную версию языка описания оборудования VHSIC (VHDL). VHDL был разработан по заказу Министерства обороны США программы VHSIC и основывался на языке программирования Ada , а также на опыте, полученном при более ранней разработке ISPS. [10] Первоначально Verilog и VHDL использовались для документирования и моделирования схем, уже записанных и описанных в другой форме (например, в файлах схем ). HDL-моделирование позволило инженерам работать на более высоком уровне абстракции, чем моделирование на уровне схемы, и, таким образом, увеличило проектную мощность с сотен транзисторов до тысяч. [ нужна ссылка ] В 1986 году при поддержке Министерства обороны США VHDL стал стандартом IEEE (IEEE Std 1076), а в декабре 1987 года была одобрена первая стандартизированная IEEE версия VHDL, IEEE Std 1076-1987. Cadence Design Позже Systems приобрела Gateway Design Automation за права на Verilog-XL, симулятор HDL, который станет фактическим стандартом симуляторов Verilog на следующее десятилетие.
Внедрение логического синтеза HDL выдвинуло HDL с заднего плана на передний план цифрового дизайна. Инструменты синтеза скомпилировали исходные файлы HDL (написанные в ограниченном формате, называемом RTL) в технологическое описание списка соединений с точки зрения вентилей и транзисторов . Написание синтезируемых файлов RTL требовало практики и дисциплины со стороны дизайнера; по сравнению с традиционной схемой, синтезированные списки соединений RTL почти всегда были больше по площади и медленнее по производительности. [ нужна ссылка ] . Схемотехника опытного инженера, использующая трудоемкий схематический ввод/ручную компоновку, почти всегда превосходила по производительности его логически синтезированный эквивалент, но преимущество в производительности, обеспечиваемое синтезом, вскоре вытеснило цифровой сбор схем именно в те области, которые были проблематичны для Синтез RTL: чрезвычайно высокоскоростная, маломощная или асинхронная схема.
В течение нескольких лет VHDL и Verilog стали доминирующими HDL в электронной промышленности, в то время как старые и менее функциональные HDL постепенно вышли из употребления. Однако VHDL и Verilog имеют многие общие ограничения, например, непригодность для моделирования аналоговых схем или схем со смешанными сигналами . Специализированные HDL (такие как Confluence) были представлены с явной целью устранения конкретных ограничений Verilog и VHDL, хотя ни один из них никогда не предназначался для их замены.
На протяжении многих лет много усилий было вложено в улучшение ЛПВП. Последняя версия Verilog, официально известная как IEEE 1800-2005 SystemVerilog, представляет множество новых функций (классы, случайные переменные и свойства/утверждения) для удовлетворения растущей потребности в улучшенной рандомизации тестовых стендов , проектировании иерархии и повторном использовании. Будущая версия VHDL также находится в разработке. [ когда? ] и, как ожидается, будет соответствовать улучшениям SystemVerilog.
Проектирование с использованием HDL
[ редактировать ]В результате повышения эффективности, реализованного с помощью HDL, большая часть современных цифровых схемотехники вращается вокруг него. Большинство проектов начинаются с набора требований или архитектурной схемы высокого уровня. Структуры управления и принятия решений часто моделируются в приложениях с блок-схемами или вводятся в редакторе. Процесс написания HDL-описания во многом зависит от характера схемы и предпочтений разработчика в отношении стиля кодирования. HDL — это просто «язык захвата», часто начинающийся с алгоритмического описания высокого уровня, такого как математическая модель C++. Проектировщики часто используют языки сценариев, такие как Perl, для автоматического создания повторяющихся структур схем на языке HDL. Специальные текстовые редакторы предлагают функции автоматического создания отступов, синтаксически-зависимой окраски и макросов расширения объявления объекта/архитектуры/сигнала на основе .
Затем код HDL подвергается проверке или аудиту. При подготовке к синтезу описание HDL подвергается множеству автоматических проверок. Проверщики сообщают об отклонениях от стандартизированных правил кода, выявляют потенциальные неоднозначные конструкции кода до того, как они могут привести к неправильной интерпретации, и проверяют распространенные логические ошибки кодирования, такие как плавающие порты или закороченные выходы. Этот процесс помогает устранить ошибки до синтеза кода.
Говоря отраслевым языком, проектирование HDL обычно заканчивается на этапе синтеза. Как только инструмент синтеза отобразил HDL-описание в список соединений вентилей, список соединений передается на внутренний этап. В зависимости от физической технологии ( FPGA , ASIC вентильная матрица ASIC , стандартная ячейка ), HDL могут играть или не играть значительную роль во внутреннем потоке. В общем, по мере того, как процесс проектирования приближается к физически реализуемой форме, база данных проекта становится все более перегруженной технологической информацией, которую невозможно сохранить в общем описании HDL. Наконец, интегральная схема изготавливается или программируется для использования.
Моделирование и отладка HDL-кода
[ редактировать ]Важной частью проектирования HDL является возможность моделирования HDL-программ. Моделирование позволяет HDL-описанию проекта (называемому моделью) пройти проверку проекта — важную веху, которая проверяет предполагаемую функцию проекта (спецификацию) на соответствие реализации кода в HDL-описании. Это также позволяет проводить архитектурные исследования. Инженер может экспериментировать с выбором конструкции, написав несколько вариантов базовой конструкции, а затем сравнив их поведение при моделировании. Таким образом, моделирование имеет решающее значение для успешного проектирования HDL.
Для моделирования HDL-модели инженер пишет среду моделирования верхнего уровня (называемую испытательным стендом ). Как минимум, испытательный стенд содержит экземпляр модели (называемый тестируемым устройством или DUT), объявления выводов/сигналов для ввода-вывода модели и форму тактового сигнала. Код тестового стенда управляется событиями: инженер пишет операторы HDL для реализации сигнала сброса (генерируемого тестовым стендом), для моделирования транзакций интерфейса (таких как чтение/запись на главной шине) и для мониторинга выходных данных тестируемого устройства. Симулятор HDL — программа, запускающая тестовый стенд — поддерживает часы симулятора, которые являются основным эталоном для всех событий в симуляции тестового стенда. События происходят только в моменты, диктуемые HDL тестового стенда (например, переключатель сброса, закодированный в тестовом стенде), или в реакции (модели) на стимулы и запускающие события. Современные симуляторы HDL имеют полнофункциональный графический интерфейс пользователя и набор инструментов отладки. Они позволяют пользователю останавливать и перезапускать моделирование в любое время, вставлять точки останова симулятора (независимо от кода HDL), а также отслеживать или изменять любой элемент в иерархии модели HDL. Современные симуляторы также могут связывать среду HDL с библиотеками, скомпилированными пользователем, посредством определенного PLI / VHPI Интерфейс . Связывание зависит от системы ( x86 , SPARC и т. д. под управлением Windows / Linux / Solaris ), поскольку симулятор HDL и пользовательские библиотеки компилируются и компонуются вне среды HDL.
Проверка конструкции часто является наиболее трудоемкой частью процесса проектирования из-за несоответствия между функциональной спецификацией устройства , интерпретацией спецификации разработчиком и неточностью. [ нужна ссылка ] языка HDL. Большая часть начального цикла тестирования/отладки проводится в среде симулятора HDL , поскольку на ранней стадии проектирования схемы часто подвергаются серьезным изменениям. HDL-описание также можно прототипировать и тестировать аппаратно — программируемые логические устройства для этой цели часто используются . Прототипирование аппаратного обеспечения сравнительно дороже, чем HDL-моделирование, но позволяет получить представление о реальном проекте. Прототипирование — лучший способ проверить взаимодействие с другими аппаратными устройствами и прототипами оборудования. Даже те, которые работают на медленных FPGA, обеспечивают гораздо более короткое время моделирования, чем чистое моделирование HDL.
Проверка конструкции с помощью HDL
[ редактировать ]Исторически проверка проекта представляла собой трудоемкий, повторяющийся цикл написания и выполнения тестовых сценариев моделирования тестируемого проекта. Поскольку конструкции микросхем стали больше и сложнее, задача проверки конструкции выросла до такой степени, что теперь она доминирует в расписании группы разработчиков. В поисках способов повышения производительности проектирования индустрия автоматизации электронного проектирования разработала язык спецификации свойств .
В терминах формальной проверки свойство — это фактическое утверждение об ожидаемом или предполагаемом поведении другого объекта. В идеале для данного HDL-описания свойство или свойства можно доказать истинность или ложность с помощью формальных математических методов. На практике многие свойства невозможно доказать, поскольку они занимают неограниченное пространство решений . Однако при наличии набора рабочих допущений или ограничений средство проверки свойств может доказать (или опровергнуть) определенные свойства, сужая пространство решений.
Утверждения не моделируют активность схемы, а фиксируют и документируют намерения разработчика в HDL-коде. В среде моделирования симулятор оценивает все указанные утверждения, сообщая о местоположении и серьезности любых нарушений. В среде синтеза инструмент синтеза обычно работает с политикой остановки синтеза при любом нарушении. Проверка на основе утверждений все еще находится в зачаточном состоянии, но ожидается, что она станет неотъемлемой частью набора инструментов проектирования HDL.
HDL и языки программирования
[ редактировать ]HDL очень похож на язык программирования , но есть существенные различия. Большинство языков программирования по своей сути являются процедурными (однопоточными) с ограниченной синтаксической и семантической поддержкой для обработки параллелизма . HDL, с другой стороны, напоминают языки параллельного программирования по своей способности моделировать несколько параллельных процессов (таких как триггеры и сумматоры ), которые автоматически выполняются независимо друг от друга. Любое изменение входных данных процесса автоматически запускает обновление стека процессов симулятора.
И языки программирования, и HDL обрабатываются компилятором (в случае HDL часто называемым синтезатором), но с разными целями. Для HDL «компиляция» относится к логическому синтезу ; процесс преобразования списка кодов HDL в физически реализуемый список соединений шлюзов . Вывод списка соединений может принимать любую из многих форм: список соединений «моделирования» с информацией о задержке вентиля, список соединений «хэндовера» для размещения и маршрутизации после синтеза на полупроводниковом кристалле или общий стандартный формат обмена электронными проектами (EDIF). ) (для последующего преобразования в файл формата JEDEC ).
С другой стороны, компилятор программного обеспечения преобразует список исходного кода в объектный код, специфичный для микропроцессора, для выполнения на целевом микропроцессоре. Поскольку HDL и языки программирования заимствуют концепции и функции друг у друга, граница между ними становится менее четкой. Однако чистые HDL непригодны для прикладного программного обеспечения общего назначения. разработки [ почему? ] точно так же, как языки программирования общего назначения нежелательны для моделирования аппаратного обеспечения.
Тем не менее, поскольку электронные системы становятся все более сложными, а реконфигурируемые системы становятся все более распространенными, в отрасли растет потребность в едином языке, который мог бы выполнять некоторые задачи как проектирования аппаратного обеспечения, так и программирования программного обеспечения. SystemC является примером такого подхода: встроенное системное оборудование можно смоделировать как недетализированные архитектурные блоки ( черные ящики с смоделированными входными сигналами и драйверами выходных сигналов). Целевое приложение написано на C или C++ и скомпилировано для основной системы разработки; в отличие от нацеливания на встроенный ЦП, для которого требуется симуляция встроенного ЦП или эмулируемого ЦП.
Высокий уровень абстракции моделей SystemC хорошо подходит для раннего исследования архитектуры , поскольку архитектурные модификации можно легко оценить, не беспокоясь о проблемах реализации на уровне сигналов. Однако модель потоков, используемая в SystemC, опирается на разделяемую память , из-за чего язык плохо справляется с параллельным выполнением или низкоуровневыми моделями.
Синтез высокого уровня
[ редактировать ]По уровню абстракции HDL сравнивают с языками ассемблера . [ нужна ссылка ] Предпринимаются попытки повысить уровень абстракции проектирования аппаратного обеспечения, чтобы снизить сложность программирования на HDL, создавая подполе, называемое высокоуровневым синтезом .
Такие компании, как Cadence , Synopsys и Agility Design Solutions, продвигают SystemC как способ объединить языки высокого уровня с моделями параллелизма, чтобы обеспечить более быстрые циклы проектирования FPGA, чем это возможно при использовании традиционных HDL. Подходы, основанные на стандарте C или C++ (с библиотеками или другими расширениями, позволяющими параллельное программирование), можно найти в инструментах Catapult C от Mentor Graphics и инструментах Impulse C от Impulse Accelerated Technologies.
Аналогичная инициатива Intel — использование Data Parallel C++, родственного SYCL , в качестве языка синтеза высокого уровня.
Пакет CoreFire Design Suite от Annapolis Micro Systems , Inc. [11] и National Instruments LabVIEW FPGA обеспечивают подход к графическому потоку данных для высокоуровневого ввода проекта, а такие языки, как SystemVerilog , SystemVHDL и Handel-C, стремятся достичь той же цели, но нацелены на повышение продуктивности существующих инженеров аппаратного обеспечения, а не на создание FPGA. более доступен для существующих инженеров-программистов .
Также возможно проектировать аппаратные модули с использованием MATLAB и Simulink, используя инструмент MathWorks HDL Coder. [12] или DSP Builder для Intel FPGA [13] или Xilinx System Generator (XSG) от Xilinx . [14]
Примеры ЛПВП
[ редактировать ]HDL для проектирования аналоговых схем
[ редактировать ]Имя | Описание |
---|---|
ЛПВП-А | Запатентованный аналог ЛПВП. |
СпектрЛПВП | Запатентованный аналоговый HDL от Cadence Design Systems для симулятора цепей Spectre. |
Verilog-AMS (Verilog для аналоговых и смешанных сигналов) | Расширение стандарта Accellera стандарта IEEE Std 1364 Verilog для моделирования аналоговых и смешанных сигналов. |
VHDL-AMS (VHDL с расширением аналоговых/смешанных сигналов) | Расширение стандарта IEEE (IEEE Std 1076.1) VHDL для моделирования аналоговых и смешанных сигналов. |
HDL для проектирования цифровых схем
[ редактировать ]Двумя наиболее широко используемыми и хорошо поддерживаемыми разновидностями HDL, используемыми в промышленности, являются Verilog и VHDL .
Статус | Имя | Язык хоста | Описание |
---|---|---|---|
В использовании | Язык описания оборудования Altera (AHDL) | Собственный язык от Altera | |
AHPL (язык аппаратного программирования) | Используется как инструмент обучения. | ||
Амарант | Питон | ||
лопата | HDL, вдохновленный современными языками программирования, такими как Rust. | ||
Кремнезем | HDL, который упрощает разработку аппаратных алгоритмов с помощью параллелизма и конвейеров. | ||
Блюспек | HDL высокого уровня на основе Haskell (без встроенного DSL ) [15] | ||
Bluespec SystemVerilog (BSV) | На основе Bluespec с синтаксисом, подобным Verilog HDL, от Bluespec, Inc. | ||
C-to-Verilog | Конвертер из C в Verilog | ||
Chisel (Создание оборудования на встроенном языке Scala) [16] | Скала | На основе Scala (встроенный DSL ). | |
Столкновение | Clash — это функциональный язык описания аппаратного обеспечения, синтаксис и семантика которого заимствованы из функционального языка программирования Haskell. | ||
КОЛАМО [ постоянная мертвая ссылка ] (Общий ориентированный язык для архитектуры нескольких объектов) [17] | Собственный язык от ООО «Центр исследований суперкомпьютеров и нейрокомпьютеров». | ||
CUPL (компилятор универсальной программируемой логики) [18] | Собственный язык от Logical Devices, Inc. | ||
DSLX | Специализированный для предметной области язык, ориентированный на набор инструментов XLS. | ||
ESys.net | Платформа .NET, написанная на C# | ||
Трейд-С | C-подобный язык проектирования | ||
Хардкамл | OCaml | На основе OCaml (встроенный DSL). Попробуйте онлайн . | |
ХХДЛ | Хаскелл | На основе Haskell (встроенный DSL). | |
Аппаратное присоединение к Java (HJJ) | Присоединяйтесь к Java | На основе Присоединиться к Java | |
HML (Аппаратное машинное обучение) | Стандартный ML | На основе стандартного машинного обучения [19] | |
Гидра | Хаскелл | На основе Хаскеля | |
Импульс С | С-подобные ЛПВП | ||
ParC (параллельный C++) | kusu расширен за счет потоковой обработки и связи в стиле HDL для параллельного программирования. | ||
ЯХДЛ | Ява | На основе Java | |
Достаточно | Хаскелл | На основе Haskell (встроенный DSL). [20] [21] [22] [23] | |
Лола | Простой язык, используемый для обучения | ||
М | HDL от Mentor Graphics | ||
Миген | Питон | ||
MyHDL | Питон | На основе Python (встроенный DSL ) | |
ПАЛАЗМ | Для устройств программируемой логики массива (PAL) | ||
ТрубопроводC | Добавление C-подобного языка описания аппаратного обеспечения. Автоматическая конвейеризация, подобная синтезу высокого уровня , в качестве языковой конструкции/функции компилятора. | ||
PyMTL 3 (Масштаб) | Питон | На основе Python, Корнелльский университет. | |
PyRTL | Питон | На основе Python, Калифорнийский университет, Санта-Барбара. | |
ROCCC (Риверсайдский оптимизирующий компилятор для настраиваемых вычислений) | Бесплатный инструмент с открытым исходным кодом от C до HDL | ||
РХДЛ | Руби | На основе языка программирования Ruby. | |
ROHD (среда быстрой открытой разработки оборудования) [24] | Дарт | Платформа для проектирования и проверки оборудования, написанная на Dart. | |
Ruby (язык описания оборудования) | |||
СистемаC | Стандартизированный класс библиотек C++ для высокоуровневого моделирования поведения и транзакций цифрового оборудования на высоком уровне абстракции, т.е. на системном уровне. | ||
СистемаVerilog | Расширенный набор Verilog с улучшениями для проектирования и проверки на уровне системы. | ||
Спинной ЛПВП | Скала | На основе Scala (встроенный DSL). | |
СистемаTCL | SDL на основе Tcl. | ||
THDL++ (шаблон HDL, созданный на основе C++) | Расширение VHDL с помощью наследования, расширенных шаблонов и классов политики. | ||
Они избили меня | Котлин переосмыслен с семантикой HDL. Он передается в SystemVerilog. | ||
TL-Verilog (Verilog уровня транзакций) | Расширение Verilog/SystemVerilog конструкциями для конвейеров и транзакций . | ||
Верилог | Один из наиболее широко используемых и хорошо поддерживаемых HDL. | ||
VHDL ( VHSIC HDL) | Один из наиболее широко используемых и хорошо поддерживаемых HDL. | ||
Больше не используется | Расширенный язык логических выражений (ABEL) | Устаревший HDL, созданный Data I/O Corporation в 1983 году. | |
Слияние | Функциональный ЛПВП, снят с производства. | ||
CoWareC | HDL на основе C от CoWare . Сейчас прекращено в пользу SystemC. | ||
ОНА | Больше не используется | ||
ОСПС | Оригинальный ЛПВП от CMU. Больше не используется в общем пользовании. | ||
KARL (язык реестра Кайзерслаутерн) [9] | Паскальский язык описания аппаратного обеспечения. Больше не используется в общем пользовании. | ||
нМиген | Питон | Предшественник амаранта |
HDL для проектирования печатных плат
[ редактировать ]Существует несколько проектов по определению возможности подключения печатных плат с использованием языковых методов текстового ввода. Среди них появились новые подходы, направленные на повышение читаемости, возможности повторного использования и проверки. В этих современных методологиях используются языки проектирования с открытым исходным кодом, специально предназначенные для электроники, и применяется декларативная разметка, чтобы указать, чего должны достичь схемы. Этот сдвиг объединяет принципы разработки программного обеспечения с проектированием аппаратного обеспечения, оптимизируя процесс и делая упор на автоматизацию, повторное использование и проверку.
Имя | Описание |
---|---|
атопия | Язык с открытым исходным кодом и набор инструментов для описания электронных плат с помощью кода. |
ПХДЛ (ПХДЛ) | Бесплатный HDL с открытым исходным кодом для определения возможности подключения печатных плат. |
ЭДАсолвер | HDL для решения схем на основе ограничений. |
SKiDL | Модуль Python с открытым исходным кодом для проектирования электронных схем. |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Силетти, Майкл Д. (2011). Расширенный цифровой дизайн с Verilog HDL (2-е изд.). Прентис Холл. ISBN 9780136019282 .
- ^ Барбаччи, М. «Сравнение языков передачи регистров для описания компьютеров и цифровых систем», Университет Карнеги-Меллона, факультет компьютерных наук, март 1973 г.
- ^ Белл, КГ; Ньюэлл, А. (1971). Компьютерные структуры: материалы для чтения и примеры . МакГроу-Хилл. ISBN 0-07-004357-4 .
- ^ Рейли, ЭД (2003). Вехи развития информатики и информационных технологий . Гринвуд Пресс. п. 183 . ISBN 1-57356-521-0 .
- ^ Белл, КГ; Грасон, Дж.; Ньюэлл, А. (1972). Проектирование компьютеров и цифровых систем . Цифровая пресса. LCCN 72-89566 . OCLC 440245727 .
- ^ Барбаччи, MC (1976). «Символическое манипулирование компьютерными описаниями: компилятор и симулятор ISPL». Департамент компьютерных наук Университета Карнеги-Меллона. дои : 10.1184/R1/6610790.v1 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Барбаччи, MC; Барнс, GE; Кеттелл, RGG; Севёрек, ДП (1977). «Язык описания компьютеров ISPS». Департамент компьютерных наук Университета Карнеги-Меллона. дои : 10.1184/R1/6610637.v1 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ Жирарди, Дж.; Хартенштейн, Р. (1983). Спецификация ABL (Отчет). CSELT и Университет Кайзерслаутерна .
- ^ Перейти обратно: а б Хартенштейн, Райнер В. (2012) [1993], «KARL и ABL» , в Мермете Дж. (редактор), «Основы и стандарты языков описания аппаратного обеспечения» , Nato Science Series E, vol. 249, Спрингер, стр. 447–, ISBN. 9789401119146
- ^ Барбаччи, MC; Граут, С.; Линдстрем, Г.; Мэлони, член парламента (1984). «Ада как язык описания аппаратного обеспечения: первоначальный отчет». Департамент компьютерных наук Университета Карнеги-Меллона. CiteSeerX 10.1.1.938.8003 . дои : 10.1184/R1/6602984.v1 .
{{cite journal}}
: Для цитирования журнала требуется|journal=
( помощь ) - ^ «Прикладное программное обеспечение для программирования FPGA на основе VHDL» . Аннаполис Микро Системс, Инк . Проверено 1 декабря 2018 г.
- ^ «Код VHDL — HDL Coder — MATLAB & Simulink» . Mathworks.com. 30 апреля 2011 г. Проверено 11 августа 2012 г.
- ^ «Сборщик цифровой обработки сигналов (DSP) — Intel® FPGA» . Интел . Проверено 20 сентября 2021 г.
- ^ «Системный генератор для DSP» . Xilinx.com. Архивировано из оригинала 12 июля 2012 г. Проверено 11 августа 2012 г.
- ^ История Haskell: ленивость с классом §12.4.2
- ^ «Структура аппаратного компилятора Chisel/FIRRTL» .
- ^ "Higher-level language COLAMO | НИЦ супер-ЭВМ и нейрокомпьютеров" .
- ^ Эйрих, JP; Рот, Г. (1990). «EDIF взрослеет». IEEE-спектр . 27 (11): 68–72. дои : 10.1109/6.62219 . S2CID 381119 .
- ^ Яньбин Ли; Лизер, М. (1995). «HML: инновационный язык описания оборудования и его перевод на VHDL». Материалы ASP-DAC'95/CHDL'95/VLSI'95 с EDA Technofair . стр. 691–696. дои : 10.1109/ASPDAC.1995.486388 . ISBN 4-930813-67-0 . S2CID 14198160 .
- ^ Чалмерс Лава
- ^ Ксилинкс Лава
- ^ Канзас Лава
- ^ Йорк Лава
- ^ «Среда быстрой разработки открытого оборудования (ROHD)» . Гитхаб . 17 ноября 2021 г.
Внешние ссылки
[ редактировать ]- HCT — инструмент HDL Complexity, используемый для определения сложности проекта.