Другое

VHDL: язык программирования, его операторы, основы и функции

Lorem ipsum dolor

VHDL, как язык программирования, увидел свет в 1983 году. Его появление инициировало Министерство Обороны США. Он был разработан разработчиками компании IBM и Texas Instruments. Он используется для написания логических цепочек различных этапов производства электронных систем разного уровня: от микросхем и до объемных вычислительных систем. На сегодняшний день, VHDL является основным инструментом при программировании современных вычислительных систем.

VHDL входит в группу языков, которые используются для описания аппаратных устройств. Об этом говорят буквы HDL — Hardware Description Language. Буква «V» показывает, что язык относится к другой группе языков — VHSIC(Very-High-Speed-Integrtion-Circit).

Язык программирования VHDL: основы языка

Как и любой язык программирования, VHDL основывается на определенных понятиях. Например:

  1.  Интерфейс — это описание устройства со всеми входами, выходами и способами коммуникации с пользователями.

  2.  Архитектура — это описание внутренней структуры устройства, которая влияет на его окончательное поведение при взаимодействии с пользователями.

  3.  Синтаксис и  операторы VHDL. Каждый язык программирования обладает определенным набором операторов, VHDL в том числе. Однако операторы VHDL особенные. Они бывают параллельными и последовательными. Параллельные операторы используют в тех случаях, когда в аппаратном устройстве необходимо отразить параллельные процессы. То есть такие операторы описывают каким образом должны вести себя микросхемы при их одновременной работе, когда каждой отдельной микросхеме определяют отдельный процесс для обработки. Последовательные операторы определяют последовательную работу микросхем.

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

  5.  Переменные — это инструменты, которые используются внутри отдельного процесса для временного хранения какой-либо информации. Они не транслируются между параллельными процессами — это нужно брать во внимание при работе с параллельными операторами в VHDL.

  6.  Атрибуты — это небольшие  характерные значения, которые присваивают каким-либо объектам языка.

  7.  Тип — это группа значений, которая обладает общими характеристиками. Тип объекта определяет, каким образом на него могут воздействовать сигналы и операторы VHDL, а также определяет поведение переменных заданного типа.

  8.  Библиотеки — это комплексные структуры функций, переменных, типов, объектов и др. Библиотеки подключают к проекту, когда его работу нужно направить в определенное русло.

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

Основы языка VHDL: объекты

Объект — это место, где сохраняется информация определенного типа. Чтобы создать объект в VHDL, его обязательно нужно объявить с определенным типом данных. Происходит это так:

variableCOUNT: INTEGER;

 

В этом случае будет создан объект с названием «COUNT», в котором будут храниться целые числа «INTEGER». Класс объекта «variable». Кстати, объекты  VHDL могут быть объявлены в трех классах:

  1. Класс «constant». Этот класс присваивается объекту один раз и в процессе работы над объектом не может быть изменен. Он хранит отдельное значение одного типа данных.

  2. Класс «variable». Этот класс также хранит отдельное значение одного типа данных, но при этом в процессе работы над объектом тип сохраняемых данных может изменяться. По сути, такой класс сигнализирует, что перед нами объект-переменная.

  3. Класс «signal». Этот класс сигнализирует, что перед нами объект-сигнал, который связывает несколько параллельных процессов. Этим он и отличается от первых двух классов. Первые два класса моделируют поведение микросхем, а этот класс не моделирует поведения, а соединяет разные микросхемы.

Язык программирования VHDL: типы данных

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

Все типы данных в VHDL делятся на категории:

  1.  Скалярные типы. Они, в свою очередь, делятся на другие подтипы: enumeration, integer, physical, floatingpoint. Подтип «enumeration» характеризуется перечнем значений, которые определил пользователь. В роли значений могут выступать символы, числа, слова и др. Каждому значению этого типа задан числовой идентификатор. Идентификация значений начинается с «0». Подтип «integer» задает целое число. Подтип «physical» определяет значения каких-либо физических величин, например: время, расстояние, давление, сила тока, температура и др.  Подтип «floatingpoint» определяет числовые значения с «плавающей точкой».

  2.  Композитные типы. Это типы, которые могут состоять из различных типов данных в составе одного.

  3.  Типы доступа. Эти типы открывают доступность к тем или иным данным через их указатели.

  4.  Файловые типы. Эти типы определяют доступность к объектам, которые содержат последовательность значений данного типа.

Основы языка VHDL: операции

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

  1.  Логические операции. Такие операции проводят 6 операторов: and, or, nand, nor, xor и not.

  2.  Операции отношений. Такие операции проводят следующими операторами: «=», «/=», «<», «< =», «>», «>=». Результат такой операции будет «false» или «true».

  3.  Математические операции. Доступны следующие математических операторы: «*», «/», «+», «-», «&», то есть доступны: умножение, деление, сложение, вычитание и конкатенация(объединение). Разница между сложением и конкатенацией следующая: «1+2» даст результат «3», а «1&2» даст результат «12».

На этом операции в языке VHDL не заканчиваются, так как их очень много, но основные из них мы перечислили.

Язык программирования VHDL: последовательные операторы

Последовательные операторы VHDL — это:

  1.  Последовательные операторы. Эти операторы бывают двух видов: который используется для присваивания переменной — он обозначается «:=», и который используется для присваивания сигнала — он обозначается «< =».

  2.  Условные операторы «if» и «case». Оператор «if» перечисляет условия, которые проверяются на «false» и «true», когда условие соответствует необходимому, тогда запускается какой-то определенный код, связанный с этим необходимым условием. Оператор «case» определяет несколько каких-то значений, где каждому значению задана ветвь исполнения кода. Потом условие(переменная) проверяется со значениями «case». Если будет найдено совпадение с каким-то «case», тогда запустится его ветвь кода.

  3.  Операторы цикла. Такие операторы нужны, чтобы запускать итерации последовательных команд.

Язык программирования VHDL: параллельные операторы

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

  1.  Оператор «process».

  2.  Операторы параллельного исполнения команд.

  3.  Оператор конкретизации элементов.

  4.  Оператор генерации.

  5.  И др.

Основы языка VHDL: архитектура

Архитектура характеризует вид устройства изнутри. То есть в зависимости от архитектуры устройства оно будет выглядеть по-разному. Например, устройство может быть:

  •  представлено в виде композиции нескольких стандартных модулей;

  •  представлено в  виде  нескольких алгоритмов, которые будут работать параллельно;

  •  представлено в виде нескольких алгоритмов, которые будут работать последовательно;

  •  и др.

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

Схожие статьи

Как организовать рабочий процесс: советы и лайфхаки
Другое

Как организовать рабочий процесс: советы и лайфхаки

Гугл фреймворк: что это такое? Описание Google Service Framework
Другое

Гугл фреймворк: что это такое? Описание Google Service Framework

Оператор goto: что это, зачем необходимо и где применяется
Другое

Оператор goto: что это, зачем необходимо и где применяется

Разработка требований к программному обеспечению: книга Карла Вигерса
Другое

Разработка требований к программному обеспечению: книга Карла Вигерса

×