Язык описания аппаратуры

Поделись знанием:
Перейти к: навигация, поиск

Язык описания аппаратуры (HDL от англ. hardware description language) — специализированный язык программирования, используемый для описания структуры и поведения электронных схем, чаще всего цифровых логических схем.

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

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

Основные практически используемые языки описания аппаратуры — Verilog и VHDL; также существует несколько десятков альтернативных языков.





История

Первый современный HDL — Verilog, был создан Gateway Design Automation в 1985 году для описания СБИС. В 1987 году по заказу Министерства обороны США на основе Ады был разработан язык VHDL (VHSIC HDL)[1].

Изначально как Verilog, так и VHDL использовались для документирования и моделирования схемных решений, реализованных в иной форме (например, в виде схем). Моделирование при помощи HDL позволило инженерам работать на более высоком уровне абстракции, чем моделирование на уровне схемы, и, следовательно, упростить моделирование проектов, состоящих из тысяч транзисторов и более.

Введение логического синтеза схем из HDL сделало их основным языком для создания цифровых схем. САПР синтеза компилируют исходные файлы (написанные на подмножестве HDL, называемом RTL — англ. Register transfer level — Уровень регистровых передач) в описание схемы в форме списков связей (netlist, задающих соединения вентилей и транзисторов. Написание синтезируемого RTL-кода требует практики и соблюдения ряда правил со стороны разработчика. По сравнению с традиционным проектированием схем, создание синтезируемого RTL менее трудоёмко, но зачастую приводит к несколько большим по площади и менее производительным схемам.

В течение нескольких лет VHDL и Verilog стали основными HDL-языками в микроэлектронной промышленности, а ранние языки постепенно вышли из употребления. Однако и VHDL и Verilog имеют сходные ограничения: не подходят для аналоговой или смешанной цифро-аналоговой симуляции, не имеют языковых конструкций для описания рекурсивно-генерируемых логических структур; в этой связи создаются различные специализированные HDL, нацеленные на устранения этих ограничений двух основных языков. Альтернативные языки создаются как правило на основе языков программирования общего назначения, например, на основе С++ разработан SystemC, на основе Java — JHDL[en], а на основе Haskell разработаны языки Bluespec[en], HHDL, Hydra, Lava.

За десятилетия с момента создания оба основных языка были значительно модифицированы и усовершенствованы. Последняя версия языка Verilog стандартизована как IEEE 1800—2005 SystemVerilog, в ней появилось множество новых возможностей (классы, случайные величины, свойства и операторы контроля) для удовлетворения растущих потребностей по случайному тестированию, иерархическому дизайну, и повторному использованию кода. Последний стандарт на VHDL опубликован в 2002 году.

Пример

Описание аппаратуры на VHDL и Verilog может производиться на уровнях потоков данных (dataflow), поведения (behavioral), структуры (structural. Пример описания потоков данных на VHDL (описание сущности «not1», имеющей 1 входной порт размером 1 бит и 1 выходной порт размером 1 бит; данная сущность производит отрицание входного значения):

library iEEE;
use iEEE.STD_LOGIC_1164.ALL;
use iEEE.STD_NUMERIC_STD.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;

Напишите отзыв о статье "Язык описания аппаратуры"

Примечания

  1. Barbacci, 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

Ссылки

  • Description Languages Язык описания аппаратуры в каталоге ссылок Open Directory Project (dmoz).
  • citforum.ru/programming/embedded/languages/2.shtml#2.1
  • www.kit-e.ru/articles/circuit/2008_3_161.php
  • [systemc.dax.ru/book/1.html Обзор современных языков описания аппаратуры] / Знакомство с SystemC
  • ГОСТ Р 50754-95


Отрывок, характеризующий Язык описания аппаратуры

Маленькая княгиня ворчала на горничную за то, что постель была нехороша. Нельзя было ей лечь ни на бок, ни на грудь. Всё было тяжело и неловко. Живот ее мешал ей. Он мешал ей больше, чем когда нибудь, именно нынче, потому что присутствие Анатоля перенесло ее живее в другое время, когда этого не было и ей было всё легко и весело. Она сидела в кофточке и чепце на кресле. Катя, сонная и с спутанной косой, в третий раз перебивала и переворачивала тяжелую перину, что то приговаривая.
– Я тебе говорила, что всё буграми и ямами, – твердила маленькая княгиня, – я бы сама рада была заснуть, стало быть, я не виновата, – и голос ее задрожал, как у собирающегося плакать ребенка.
Старый князь тоже не спал. Тихон сквозь сон слышал, как он сердито шагал и фыркал носом. Старому князю казалось, что он был оскорблен за свою дочь. Оскорбление самое больное, потому что оно относилось не к нему, а к другому, к дочери, которую он любит больше себя. Он сказал себе, что он передумает всё это дело и найдет то, что справедливо и должно сделать, но вместо того он только больше раздражал себя.
«Первый встречный показался – и отец и всё забыто, и бежит кверху, причесывается и хвостом виляет, и сама на себя не похожа! Рада бросить отца! И знала, что я замечу. Фр… фр… фр… И разве я не вижу, что этот дурень смотрит только на Бурьенку (надо ее прогнать)! И как гордости настолько нет, чтобы понять это! Хоть не для себя, коли нет гордости, так для меня, по крайней мере. Надо ей показать, что этот болван об ней и не думает, а только смотрит на Bourienne. Нет у ней гордости, но я покажу ей это»…
Сказав дочери, что она заблуждается, что Анатоль намерен ухаживать за Bourienne, старый князь знал, что он раздражит самолюбие княжны Марьи, и его дело (желание не разлучаться с дочерью) будет выиграно, и потому успокоился на этом. Он кликнул Тихона и стал раздеваться.
«И чорт их принес! – думал он в то время, как Тихон накрывал ночной рубашкой его сухое, старческое тело, обросшее на груди седыми волосами. – Я их не звал. Приехали расстраивать мою жизнь. И немного ее осталось».
– К чорту! – проговорил он в то время, как голова его еще была покрыта рубашкой.
Тихон знал привычку князя иногда вслух выражать свои мысли, а потому с неизменным лицом встретил вопросительно сердитый взгляд лица, появившегося из под рубашки.
– Легли? – спросил князь.
Тихон, как и все хорошие лакеи, знал чутьем направление мыслей барина. Он угадал, что спрашивали о князе Василье с сыном.
– Изволили лечь и огонь потушили, ваше сиятельство.
– Не за чем, не за чем… – быстро проговорил князь и, всунув ноги в туфли и руки в халат, пошел к дивану, на котором он спал.
Несмотря на то, что между Анатолем и m lle Bourienne ничего не было сказано, они совершенно поняли друг друга в отношении первой части романа, до появления pauvre mere, поняли, что им нужно много сказать друг другу тайно, и потому с утра они искали случая увидаться наедине. В то время как княжна прошла в обычный час к отцу, m lle Bourienne сошлась с Анатолем в зимнем саду.
Княжна Марья подходила в этот день с особенным трепетом к двери кабинета. Ей казалось, что не только все знают, что нынче совершится решение ее судьбы, но что и знают то, что она об этом думает. Она читала это выражение в лице Тихона и в лице камердинера князя Василья, который с горячей водой встретился в коридоре и низко поклонился ей.
Старый князь в это утро был чрезвычайно ласков и старателен в своем обращении с дочерью. Это выражение старательности хорошо знала княжна Марья. Это было то выражение, которое бывало на его лице в те минуты, когда сухие руки его сжимались в кулак от досады за то, что княжна Марья не понимала арифметической задачи, и он, вставая, отходил от нее и тихим голосом повторял несколько раз одни и те же слова.
Он тотчас же приступил к делу и начал разговор, говоря «вы».
– Мне сделали пропозицию насчет вас, – сказал он, неестественно улыбаясь. – Вы, я думаю, догадались, – продолжал он, – что князь Василий приехал сюда и привез с собой своего воспитанника (почему то князь Николай Андреич называл Анатоля воспитанником) не для моих прекрасных глаз. Мне вчера сделали пропозицию насчет вас. А так как вы знаете мои правила, я отнесся к вам.