Мови опису апаратури: відмінності між версіями

[неперевірена версія][неперевірена версія]
Вилучено вміст Додано вміст
Rudnytskyi (обговорення | внесок)
м оформлення
Rudnytskyi (обговорення | внесок)
м вікіфікація
Рядок 1:
'''Мова опису апаратури''' ({{lang-en|hardware description language}}) — це спеціалізована [[Формальна мова|формальна]] [[Комп'ютерна мова|комп'ютерна мова]], що використовується для [[Проектування|проектування]] структури, дизайну та роботи електронної [[Мікросхема|мікросхеми]] та її [[Комп'ютерне моделювання|моделювання]]. Вона дає можливість автоматично аналізувати, імітувати та тестувати створюваний пристрій. [[Компілятор]] мусить забезпечувати переведення [[Комп'ютерна програма|програми]], написаної на будь-якій з мов опису апаратури на низькорівневу специфікацію фізичних електронних компонентів з ціллю створити мікросхему.
 
До переваг використання мови проектування апаратури над [[Схема електрична принципова|схемним проектуванням]] можна віднести наступні:
* можливість проектування пристроїв, для яких створення схем неможливе через надмірну складність продукту, наприклад при розробці сучасних [[Мікропроцесор|мікропроцесорівпроцесор]]ів;
* такий опис зазвичай об'єднує як структурну, так і функціональну складову;
* проект на мові проектування апаратури портативний та універсальний, тобто легко переноситьтся на іншу елементну базу і може використовуватися в іншому проекті. Як результат, він стає довгоживучим, оскільки не залежить від «старіння» конкретних мікросхем;
* мови опису апаратури гарантують високу надійність розроблюваного пристрою та забезпечують самодокументування.
 
Мови проектування апаратури дають можливість [[Інженер|інженерамінженер]]ам працювати на вищому рівні [[Абстрагування (програмування)|абстракції]], що дозволяє збільшити кількість елементів розроблюваного пристрою.
 
== Структура ==
 
Мова опису апаратури виглядає дуже схоже на [[Мова програмування|мову програмування]], наприклад [[C (мова програмування)|C]], оскільки її структура складається з таких самих текстових виразів. Також мови проектування апаратури дають можливість описувати специфікації для [[Апаратне забезпечення|апаратного забезпечення]], що можуть виконуватися. Це дає ілюзію наявності мови програмування, хоча насправді їх відносять до мов проектування чи моделювання.
 
Рядок 16 ⟶ 15:
 
== Історія розвитку ==
 
Перші мови опису апаратури з'явилися в кінці 1960-х років<ref>Barbacci, M. "A comparison of register transfer languages for describing computers and digital systems, " Carnegie-Mellon Univ., Dept. of Computer Science, March 1973</ref>. Завдяки [[Digital Equipment Corporation]] та їх [[PDP-8]] та [[PDP-16]] ці мови набули поширення, оскільки для їх розробки було застосовано [[ISP]], мову, що вперше ввела концепцію рівня регістрових передач.
 
Рядок 26 ⟶ 24:
 
З часом, VHDL та Verilog стали домінувати серед мов опису апаратури, в той час як багато старіших виходили з вжитку. Проте всі вони мають однакові недоліки:
* неможливість моделювання [[Аналогова інтегральна схема|аналогових]] чи [[Гібридна інтегральна схема|гібридних]] мікросхем;
* неможливість опису [[Рекурсія|рекурсивних]] сутностей.
Для подолання цих мінусів було створено спеціальні мови, такі як [[Confluence]], проте й вони не змогли замінити VHDL та Verilog.
 
Рядок 34 ⟶ 32:
 
=== Для аналогових схем ===
{| class="sortable wikitablestandart"
|-
! Назва
Рядок 40 ⟶ 38:
|-
| [[Analog Hardware Descriptive Language]]
| моваМова опису для [[Програмована аналогова інтегральна схема|програмованих аналогових інтегральних схем]]
|-
| [[SpectreHDL]]
| моваМова проектування аналогової апаратури
|-
| [[Verilog-AMS]] ({{lang-en|Verilog for Analog and Mixed-Signal}})
| стандартизованеСтандартизоване розширення Verilog для аналогового та гібридного моделювання
|-
| [[VHDL-AMS]] ({{lang-en|VHDL with Analog/Mixed-Signal extension}})
| стандартизованаСтандартизована мова для гібридного моделювання
|-
| [[HDL-A]]
| моваМова опису аналогового апаратного забезпечення
|}
 
=== Для цифрових схем ===
{| class="sortable wikitablestandart"
|-
! Назва
Рядок 65 ⟶ 63:
|-
| [[AHDL]] ({{lang-en|Altera Hardware Description Language}})
| моваМова опису апаратури компанії [[Altera]]
|-
| [[AHPL]] ({{lang-en|A Hardware Programing Language}})
Рядок 71 ⟶ 69:
|-
| [[Bluespec]]
| високорівневаВисокорівнева мова проектування апаратури, заснована на мові програмування [[Haskell]]
|-
| [[BSV]] ({{lang-en|Bluespec SystemVerilog}})
| моваМова опису апаратури, заснована на Bluespec з [[Синтаксис|синтаксисом]], подібним до Verilog
|-
| [[Chisel]] ({{lang-en|Constructing Hardware in a Scala Embedded Language}})
| моваМова проектування апаратури, заснована на мові програмування [[Scala]]
|-
| [[Confluence]]
| моваМова опису апаратури в [[Функційне програмування|функціональному стилі]], що більше не використовується<ref name="confluence">[http://www.tomahawkins.org/ Проекти на Confluence] {{ref-en}}</ref>
|-
| [[CoWareC]]
| моваМова проектування апаратури, заснована на мові програмування C і розроблена компанією [[CoWare]], замінена SystemC
|-
| [[CUPL]] ({{lang-en|Compiler for Universal Programmable Logic}}})
| моваМова опису апаратури, розроблена компанією [[Logical Devices]]
|-
| [[ELLA]]
| більшеБільше не використовується
|-
| [[Handel-C]]
| моваМова проектування апаратури, подібна до мови програмування C
|-
| [[HDCaml]]
| моваМова опису апаратури, заснована на [[OCaml]]
|-
| [[HHDL]]
| моваМова проектування апаратури, заснована на Haskell
|-
| [[HJJ]] ({{lang-en|Hardware Join Java}})
| моваМова опису апаратури, заснована на [[Join Java]]
|-
| [[HML]] ({{lang-en|Hardware ML}})
| моваМова проектування апаратури, заснована на [[Standard ML|SML]]<ref>{{cite journal|last=Li|first=Yanbing|coauthors=Miriam Leeser|title=HML: An Innovative Hardware Description Language and Its Translation to VHDL|journal=Proceedings of CHDL’95|year=1995|pages=691--696}}</ref>
|-
| [[Hydra (мова опису апаратури)]]
| моваМова опису апаратури, заснована на Haskell<ref name="hydra">[http://www.dcs.gla.ac.uk/~jtod/Hydra/ Hydra] {{ref-en}}</ref>
|-
| [[Impulse C]]
| моваМова проектування апаратури, подібна до мови програмування C
|-
| [[ISPS]]
| моваМова опису апаратури, більше не використовується
|-
| [[JHDL]]
| моваМова проектування апаратури, заснована на [[Java]]
|-
| [[Lava]]
| моваМова опису апаратури, заснована на Haskell<ref name="Lava">[http://hackage.haskell.org/package/chalmers-lava2000 Chalmers Lava] {{ref-en}}</ref><ref name="Lava1">[http://hackage.haskell.org/package/xilinx-lava Xilinx Lava] {{ref-en}}</ref><ref name="Lava2">[http://hackage.haskell.org/package/kansas-lava Kansas Lava] {{ref-en}}</ref><ref name="Lava3">[http://hackage.haskell.org/package/york-lava York Lava] {{ref-en}}</ref><ref name="Lava4">[http://raintown.org/lava/ Lava] {{ref-en}}</ref>
|-
| [[Lola]]
| простаПроста мова проектування апаратури для навчання
|-
| [[M (мова опису апаратури)]]
| моваМова опису апаратури, розроблена компанією [[Mentor Graphics]]
|-
| [[MyHDL]]
| моваМова проектування апаратури, заснована на [[Python]]
|-
| [[PALASM]]
| моваМова опису апаратури
|-
| [[ParC]] ({{lang-en|Parallel C++}})
Рядок 137 ⟶ 135:
|-
| [[PHDL]] ({{lang-en|Printed Circuit Board Hardware Description Language}})
| моваМова опису апаратури з відкритим [[Сирцевий код|сирцевим кодом]] для поєднання [[Друкована плата|друкованих плат]]
|-
| [[RHDL]]
| моваМова проектування апаратури, заснована на [[Ruby]]<ref name="RHDL">[http://rhdl.rubyforge.org/ RHDL] {{ref-en}}</ref>
|-
| [[SystemC]]
| стандартизованіСтандартизовані [[Клас (програмування)|класи]] бібліотеки C++ для поведінкового моделювання апаратури на вищому рівні абстракції
|-
| [[SystemVerilog]]
| надбудоваНадбудова над Verilog
|-
| [[SystemTCL]]
| моваМова опису апаратури, заснована на [[Tcl]]
|-
| [[THDL++]] ({{lang-en|Templated Hardware Description Language та C++}})
| розширенняРозширення VHDL
|-
| [[Verilog]]
| однаОдна з найбільш поширених мов проектування апаратури
|-
| [[VHDL]] ({{lang-en|Very High Speed Integrated Circuit Hardware Language}})
| однаОдна з найчастіше використованих мов опису апаратури
|}