Основы синтаксиса VHDL. Присваивание значения константе, переменной, сигналу

Первым отличием, которое встречает программист изучая VHDL является оператор присваивания. Тут, в отличии от других языков программирования, различают сигналы и переменные. Для каждого из них свой оператор присваивания:

-- присваивание сигналу
Q <= '0';
-- присваивание переменной или константе
Q := '0';

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

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

В VHDL не предусмотрена возможность создания собственных классов. Можно пользоваться только уже описанными. Их только три: signal, variable и constant. Если с переменной и константой думаю всё понятно, то сигнал был введён именно для моделирования цифровых схем. Он обладает большинством характеристик реального сигнала (скорость распространения, способы взаимодействия с другими сигналами). Отсюда и такое разделение.

Вот так вот незаметно пришел момент, когда пора узнать как же всё таки объявить константу, переменную или сигнал.

constant gnd : bit :='0';
variable y : bit;
signal z : bit;

Тут мы объявили константу, переменную и сигнал. Все они типа bit. Константе было присвоено значение ноля. gnd, y и z — названия константы, переменной и сигнала соответственно.

Далее подробнее рассмотрим типы данный в VHDL.

 

Похожий код:

Фото аватара
Алексей Петров

Программист, разработчик с 5 летним опытом работы. Учусь на разработчика игр на Unity и разработчика VR&AR реальности (виртуальной реальности). Основные языки программирования: C#, C++.

Оцените автора
Бла, бла код
Добавить комментарий