Основы синтаксиса 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.

Просмотров:   5089

Комментарии

Добавить комментарий

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.
CAPTCHA
Введи эти символы. Ато роботы одолели!