Мо́ва о́пису апарату́ри () — це спеціалізована формальна комп'ютерна мова, що використовується для проєктування структури, дизайну та роботи електронної мікросхеми та її моделювання. Вона дає можливість автоматично аналізувати, імітувати та тестувати створюваний пристрій. Компілятор мусить забезпечувати переведення програми, написаної на будь-якій з мов опису апаратури на низькорівневу специфікацію фізичних електронних компонентів з ціллю створити мікросхему.

До переваг використання мови проєктування апаратури над схемним проєктуванням можна віднести наступні: можливість проєктування пристроїв, для яких створення схем неможливе через надмірну складність продукту, наприклад при розробці сучасних процесорів; такий опис зазвичай об'єднує як структурну, так і функціональну складову; проєкт на мові проєктування апаратури портативний та універсальний, тобто легко переноситься на іншу елементну базу і може використовуватися в іншому проєкті. Як результат, він стає довгоживучим, оскільки не залежить від «старіння» конкретних мікросхем; мови опису апаратури гарантують високу надійність розроблюваного пристрою та забезпечують самодокументування.

Мови проєктування апаратури дають можливість інженерам працювати на вищому рівні абстракції, що дозволяє збільшити кількість елементів розроблюваного пристрою.

Структура Мова опису апаратури виглядає дуже схоже на мову програмування, наприклад C, оскільки її структура складається з таких самих текстових виразів. Також мови проєктування апаратури дають можливість описувати специфікації для апаратного забезпечення, що можуть виконуватися. Це дає ілюзію наявності мови програмування, хоча насправді їх відносять до мов проєктування чи моделювання.

Першою причиною цього є те, що, на відміну від мов програмування, що не завжди мають в собі ознаки паралелізму, інструкції мов проєктування апаратури завжди виконуються паралельно. Іншою важливою їх складовою є опис синхросигналу, що є особливістю проєктування апаратного забезпечення. Мови опису апаратури можуть використовуватися для створення пристрою у структурній, поведінковій формах чи на рівні регістрових передач з такою ж функціональністю.

Історія розвитку Перші мови опису апаратури з'явилися наприкінці 1960-х роківBarbacci, M. "A comparison of register transfer languages for describing computers and digital systems, " Carnegie-Mellon Univ., Dept. of Computer Science, March 1973. Завдяки Digital Equipment Corporation та їх PDP-8 та PDP-16 вони набули поширення, оскільки для розробок було застосовано ISP, мову, що вперше ввела концепцію рівня регістрових передач ().

Її наступниками стали ISPL та ISPS. Остання гарно описувала відношення між вхідними та вихідними портами і стала об'єктом досліджень DEC та інших компаній в США.

Наприкінці 1970-х років набули популярності ПЛІС, що дало новий поштовх в розробці мов опису апаратури.

В 1985 році компанією Gateway Design Automation було створено першу сучасну мову проєктування апаратури — Verilog. Вона лаконічна, проста в реалізації, має C-подібний синтаксис та швидкий компілятор, що дозволяє зменшити об'єм опису схем в півтора рази, порівняно з VHDLПоляков А. К. Языки VHDL и Verilog в проектировании цифровой аппаратуры. — М.: СОЛОН-Пресс, 2003. — 320 с.: ил. — (Серия «Системы проектирования»). — ISBN 5-98003-016-6. .

Створений в 1980-х роках на замовлення Міністерства оборони США VHDL (, де VHSIC — ) був стандартизований інститутом електроінженерів в 1987 році. VHDL зазнав значного впливу мов програмування Ada та Pascal, також було використано досвід, отриманий при створенні ISPSBarbacci, M., Grout S., Lindstrom, G., Maloney, M.P. "Ada as a hardware description language : an initial report, " Carnegie-Mellon Univ., Dept. of Computer Science, 1984. Вдосконалення мови веде група VASG (), що переглядає стандарт раз в п'ять років.

Спочатку Verilog та VHDL використовувались для моделювання пристроїв, описаних іншими способами (наприклад у вигляді схемних файлів). З часом, VHDL та Verilog стали домінувати серед мов опису апаратури, в той час як багато старіших виходили з вжитку. Проте всі вони мають однакові недоліки: неможливість моделювання аналогових чи гібридних мікросхем; неможливість опису рекурсивних сутностей. Для подолання цих мінусів було створено спеціальні мови, такі як Confluence, проте й вони не змогли замінити VHDL та Verilog.

Представники Мови опису апаратури класифікують за їх цільовим призначенням. До першої категорії відносять ті, що дозволяють виконувати моделювання аналогових та гібридних мікросхем. До другої — ті, що моделюють цифрові мікросхеми.

Для аналогових схем Назва Опис Analog Hardware Descriptive Language Мова опису для програмованих аналогових інтегральних схем SpectreHDL Мова проєктування аналогової апаратури Verilog-AMS () Стандартизоване розширення Verilog для аналогового та гібридного моделювання VHDL-AMS () Стандартизована мова для гібридного моделювання HDL-A Мова опису аналогового апаратного забезпечення

Для цифрових схем Назва Опис ABEL () AHDL () Мова опису апаратури компанії Altera AHPL () Bluespec Високорівнева мова проєктування апаратури, заснована на мові програмування Haskell BSV () Мова опису апаратури, заснована на Bluespec з синтаксисом, подібним до Verilog Chisel () Мова проєктування апаратури, заснована на мові програмування Scala Confluence Мова опису апаратури в функціональному стилі, що більше не використовуєтьсяПроєкти на Confluence CoWareC Мова проєктування апаратури, заснована на мові програмування C і розроблена компанією CoWare, замінена SystemC CUPL () Мова опису апаратури, розроблена компанією Logical Devices ELLA Більше не використовується Handel-C Мова проєктування апаратури, подібна до мови програмування C HDCaml Мова опису апаратури, заснована на OCaml HHDL Мова проєктування апаратури, заснована на Haskell HJJ () Мова опису апаратури, заснована на Join Java HML () Мова проєктування апаратури, заснована на SML Hydra (мова опису апаратури) Мова опису апаратури, заснована на HaskellHydra Impulse C Мова проєктування апаратури, подібна до мови програмування C ISPS Мова опису апаратури, більше не використовується JHDL Мова проєктування апаратури, заснована на Java Lava Мова опису апаратури, заснована на HaskellChalmers Lava Xilinx Lava Kansas Lava York Lava Lava Lola Проста мова проєктування апаратури для навчання M (мова опису апаратури) Мова опису апаратури, розроблена компанією Mentor Graphics MyHDL Мова проєктування апаратури, заснована на Python PALASM Мова опису апаратури ParC () C++, оптимізований для задач проєктування апаратури PHDL () Мова опису апаратури з відкритим сирцевим кодом для поєднання друкованих плат RHDL Мова проєктування апаратури, заснована на RubyRHDL SystemC Стандартизовані класи бібліотеки C++ для поведінкового моделювання апаратури на вищому рівні абстракції SystemVerilog Надбудова над Verilog SystemTCL Мова опису апаратури, заснована на Tcl THDL++ () Розширення VHDL Verilog Одна з найбільш поширених мов проєктування апаратури VHDL () Одна з найчастіше використованих мов опису апаратури

Примітки

Література HDL на Open Directory Project Транслятор з C на Verilog