VHDL (VHSIC Hardware Description Language) — различия между версиями

Материал из Национальной библиотеки им. Н. Э. Баумана
(Новая страница: «{{ Язык программирования | name = VHSIC Hardware Description Language | semantics = Язык описания…»)
 
Строка 11: Строка 11:
  
 
'''VHDL''' (''англ. VHSIC (Very high speed integrated circuits) Hardware Description Language'') — язык описания аппаратуры интегральных схем. Язык проектирования VHDL является базовым языком при разработке аппаратуры современных вычислительных систем.
 
'''VHDL''' (''англ. VHSIC (Very high speed integrated circuits) Hardware Description Language'') — язык описания аппаратуры интегральных схем. Язык проектирования VHDL является базовым языком при разработке аппаратуры современных вычислительных систем.
 +
==История==
  
 
Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами.
 
Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами.
  
 
Первоначально язык предназначался для моделирования, но позднее из него было выделено синтезируемое подмножество. Написание модели на синтезируемом подмножестве позволяет автоматический синтез схемы функционально эквивалентной исходной модели. Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.
 
Первоначально язык предназначался для моделирования, но позднее из него было выделено синтезируемое подмножество. Написание модели на синтезируемом подмножестве позволяет автоматический синтез схемы функционально эквивалентной исходной модели. Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.
 +
 +
Стандартами 1987, 1991, 1993, 1996, 1997, 1999, 2000, 2002 и 2008 гг. закреплены многие его усовершенствования, так например начиная со стандарта VHDL-2000, язык приобретает основы объектно-ориентированной парадигмы. Стандарт VHDL-93 является последним, полностью поддерживаемым средствами САПР стандартом[источник не указан 2040 дней].
 +
 +
VHDL создан как средство описания цифровых систем, однако существует подмножество языка — VHDL AMS (Analog Mixed Signal), позволяющее описывать как чисто аналоговые, так и смешанные, цифро-аналоговые схемы.
 +
 +
==Основные элементы языка VHDL==
 +
===Первичная абстракция языка VHDL===
 +
 +
VHDL является формальной записью, предназначенной для описания цифровой системы. Функция системы определяется как преобразование значений на входах в значения на выходах. Организация системы задается перечнем
 +
связанных компонентов.
 +
 +
Объект проекта <code>entity</code> представляет собой описание компонента проекта, имеющего четко заданные входы и выходы и выполняющей четко определенную функцию. Объект проекта может представлять всю проектируемую систему, некоторую подсистему, устройство, узел, стойку, плату, кристалл, макроячейку, логический элемент и т.п.
 +
 +
В описании объекта проекта можно использовать компоненты, которые, в свою очередь, могут быть описаны как самостоятельные объекты проекта более низкого уровня. Совокупность этих связанных объектов проекта называется иерархией проекта <code>design_hierarchy</code>.
 +
 +
Каждый объект проекта состоит, как минимум, из двух различных типов описаний: описания интерфейса и одного или более архитектурных тел.
 +
 +
При описании цифровой системы на языке VHDL, пользователь может использовать пять различных типов описаний:
 +
 +
*Интерфейс описывается в ''объявлении объекта проекта'' <code>entity_declaration</code> и определяет только входы и выходы объекта проекта.
 +
 +
*Для описания поведения объекта или его структуры служит ''архитектурное тело'' <code>architecture_body</code>.
 +
 +
*Чтобы задать, какие объекты проекта использованы для создания полного проекта, используется ''объявление конфигурации'' <code>configuration_declaration</code>.
 +
 +
*В языке VHDL предусмотрен механизм пакетов для часто используемых описаний, констант, типов, сигналов. Эти описания помещаются в ''объявлении пакета'' <code>package_declaration</code>.
 +
 +
*Если пользователь использует нестандартные операции или функции, их интерфейсы описываются в объявлении пакета, а тела содержатся в ''теле пакета'' <code>package_body</code>.
 +
 +
Каждое из описаний является самостоятельной конструкцией языка VHDL, может быть независимо проанализировано анализатором и поэтому получило название ''Модуль проекта'' <code>design_unit</code>. Модули проекта, в свою очередь, можно разбить на две категории:
 +
 +
*первичные (различного типа объявления)
 +
*вторичные (отдельно анализируемые тела первичных модулей)
 +
 +
Один или несколько модулей проекта могут быть помещены в один файл, называемый файлом проекта <code>design_file</code>.
 +
 +
Каждый проанализированный модуль проекта помещается в библиотеку проекта <code>design_library</code> и становится библиотечным модулем <code>library_unit</code>. Данная реализация позволяет создать любое число библиотек проекта. Каждая библиотека проекта в языке VHDL имеет логическое имя (идентификатор). Фактическое имя файла, содержащего эту библиотеку, может совпадать или не совпадать с логическим именем библиотеки проекта. Для ассоциации логического имени библиотеки с соответствующим ей фактическим именем предусмотрен специальный механизм установки внешних ссылок.
 +
 +
По отношению к сеансу работы VHDL существует два класса библиотек проекта: рабочие библиотеки и библиотеки ресурсов. Рабочая библиотека - это библиотека, с которой в данном сеансе работает пользователь и в которую помещается библиотечный модуль, полученный в результате анализа модуля проекта.
 +
 +
Библиотека ресурсов - это библиотека, содержащая библиотечные модули, ссылка на которые имеется в анализируемом модуле проекта.
 +
 +
В каждый конкретный момент пользователь работает с одной рабочей библиотекой и произвольным числом библиотек ресурсов.
 +
 +
Возможность создания и использования многих библиотек ресурсов позволяет пользователю классифицировать библиотечные модули по различным признакам. Например, в одной библиотеке хранить описания микросхем одной серии, в другой - описания микросхем другой серии и т.д. Или в одной библиотеке хранить описания микросхем с одним типом задержки, в другой - описания микросхем с другим типом задержки и т.д.

Версия 22:05, 11 декабря 2015

VHSIC Hardware Description Language
Семантика:

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

Появился в:

1983

Автор:

Министерство обороны США

Расширение файлов:

.vhd

Система типов:

строгая

Испытал влияние:

Ada, Pascal

ОС:

Windows, OS X, Linux

VHDL (англ. VHSIC (Very high speed integrated circuits) Hardware Description Language) — язык описания аппаратуры интегральных схем. Язык проектирования VHDL является базовым языком при разработке аппаратуры современных вычислительных систем.

История

Был разработан в 1983 г. по заказу Министерства обороны США с целью формального описания логических схем для всех этапов разработки электронных систем, начиная модулями микросхем и заканчивая крупными вычислительными системами.

Первоначально язык предназначался для моделирования, но позднее из него было выделено синтезируемое подмножество. Написание модели на синтезируемом подмножестве позволяет автоматический синтез схемы функционально эквивалентной исходной модели. Средствами языка VHDL возможно проектирование на различных уровнях абстракции (поведенческом или алгоритмическом, регистровых передач, структурном), в соответствии с техническим заданием и предпочтениями разработчика. Заложена возможность иерархического проектирования, максимально реализующая себя в экстремально больших проектах с участием большой группы разработчиков. Представляется возможным выделить следующие три составные части языка: алгоритмическую — основанную на языках Ada и Pascal и придающую языку VHDL свойства языков программирования; проблемно ориентированную — в сущности и обращающую VHDL в язык описания аппаратуры; и объектно-ориентированную, интенсивно развиваемую в последнее время.

Стандартами 1987, 1991, 1993, 1996, 1997, 1999, 2000, 2002 и 2008 гг. закреплены многие его усовершенствования, так например начиная со стандарта VHDL-2000, язык приобретает основы объектно-ориентированной парадигмы. Стандарт VHDL-93 является последним, полностью поддерживаемым средствами САПР стандартом[источник не указан 2040 дней].

VHDL создан как средство описания цифровых систем, однако существует подмножество языка — VHDL AMS (Analog Mixed Signal), позволяющее описывать как чисто аналоговые, так и смешанные, цифро-аналоговые схемы.

Основные элементы языка VHDL

Первичная абстракция языка VHDL

VHDL является формальной записью, предназначенной для описания цифровой системы. Функция системы определяется как преобразование значений на входах в значения на выходах. Организация системы задается перечнем связанных компонентов.

Объект проекта entity представляет собой описание компонента проекта, имеющего четко заданные входы и выходы и выполняющей четко определенную функцию. Объект проекта может представлять всю проектируемую систему, некоторую подсистему, устройство, узел, стойку, плату, кристалл, макроячейку, логический элемент и т.п.

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

Каждый объект проекта состоит, как минимум, из двух различных типов описаний: описания интерфейса и одного или более архитектурных тел.

При описании цифровой системы на языке VHDL, пользователь может использовать пять различных типов описаний:

  • Интерфейс описывается в объявлении объекта проекта entity_declaration и определяет только входы и выходы объекта проекта.
  • Для описания поведения объекта или его структуры служит архитектурное тело architecture_body.
  • Чтобы задать, какие объекты проекта использованы для создания полного проекта, используется объявление конфигурации configuration_declaration.
  • В языке VHDL предусмотрен механизм пакетов для часто используемых описаний, констант, типов, сигналов. Эти описания помещаются в объявлении пакета package_declaration.
  • Если пользователь использует нестандартные операции или функции, их интерфейсы описываются в объявлении пакета, а тела содержатся в теле пакета package_body.

Каждое из описаний является самостоятельной конструкцией языка VHDL, может быть независимо проанализировано анализатором и поэтому получило название Модуль проекта design_unit. Модули проекта, в свою очередь, можно разбить на две категории:

  • первичные (различного типа объявления)
  • вторичные (отдельно анализируемые тела первичных модулей)

Один или несколько модулей проекта могут быть помещены в один файл, называемый файлом проекта design_file.

Каждый проанализированный модуль проекта помещается в библиотеку проекта design_library и становится библиотечным модулем library_unit. Данная реализация позволяет создать любое число библиотек проекта. Каждая библиотека проекта в языке VHDL имеет логическое имя (идентификатор). Фактическое имя файла, содержащего эту библиотеку, может совпадать или не совпадать с логическим именем библиотеки проекта. Для ассоциации логического имени библиотеки с соответствующим ей фактическим именем предусмотрен специальный механизм установки внешних ссылок.

По отношению к сеансу работы VHDL существует два класса библиотек проекта: рабочие библиотеки и библиотеки ресурсов. Рабочая библиотека - это библиотека, с которой в данном сеансе работает пользователь и в которую помещается библиотечный модуль, полученный в результате анализа модуля проекта.

Библиотека ресурсов - это библиотека, содержащая библиотечные модули, ссылка на которые имеется в анализируемом модуле проекта.

В каждый конкретный момент пользователь работает с одной рабочей библиотекой и произвольным числом библиотек ресурсов.

Возможность создания и использования многих библиотек ресурсов позволяет пользователю классифицировать библиотечные модули по различным признакам. Например, в одной библиотеке хранить описания микросхем одной серии, в другой - описания микросхем другой серии и т.д. Или в одной библиотеке хранить описания микросхем с одним типом задержки, в другой - описания микросхем с другим типом задержки и т.д.