AFON // радиотехник affonya@mail.ru
← Радиотехника

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

Проектирование цифровых схем для ПЛИС на VHDL: интерфейс (entity) и реализация (architecture), параллелизм и процессы, строгая типизация, синтез и симуляция — как мыслить схемой, а не программой.

Что такое VHDL

VHDL — язык описания аппаратуры (Hardware Description Language) для проектирования цифровых схем в ПЛИС и заказных микросхемах (ASIC). В отличие от языков программирования, VHDL описывает не последовательность команд, а структуру и поведение аппаратуры, которая работает параллельно. Обзорную страницу по языку см. в разделе VHDL; альтернатива — Verilog.

Entity и architecture

Описание модуля состоит из двух частей: entity (интерфейс — входы и выходы) и architecture (внутренняя реализация).

entity and_gate is
  port( a, b : in  std_logic;
        y    : out std_logic );
end entity;

architecture rtl of and_gate is
begin
  y <= a and b;      -- параллельное присваивание
end architecture;

Параллелизм — главное отличие

Ключевая идея: операторы в architecture выполняются параллельно, а не сверху вниз, потому что описывают реальные логические цепи, работающие одновременно. Последовательное исполнение возможно только внутри процесса (process), который сам по себе — один параллельный блок. Это принципиально отличает VHDL от обычного программирования и требует «мыслить схемой».

Типы данных

VHDL строго типизирован. Основные типы: std_logic (бит с состояниями 0/1/Z/X…), std_logic_vector (шина), а также целые и перечислимые типы для описания автоматов. Строгая типизация ловит ошибки на этапе компиляции.

Синтез и симуляция

С VHDL связаны два процесса: симуляция (проверка поведения на тестовом окружении, testbench) и синтез (преобразование кода в реальную логику ПЛИС). Важно: не всякий корректный для симуляции код синтезируется — существует синтезируемое подмножество языка. Хороший стиль — описывать регистры и автоматы шаблонно, чтобы синтезатор построил ожидаемую схему.

Частые вопросы

VHDL — это язык программирования?

Нет, это язык описания аппаратуры. Он описывает параллельно работающие цифровые цепи, а не последовательность команд процессора. Поэтому мышление здесь «схемное», а не алгоритмическое.

VHDL или Verilog?

Оба решают одну задачу. VHDL строже типизирован и многословнее (популярен в Европе, авиакосмосе), Verilog лаконичнее и ближе к C (популярен в США, микроэлектронике). Выбор чаще определяется средой и традицией команды.

Итоги

VHDL описывает цифровую аппаратуру через интерфейс (entity) и реализацию (architecture), где всё работает параллельно, а последовательность возможна лишь внутри процессов. Строгая типизация и разделение на синтез и симуляцию делают язык надёжным инструментом проектирования ПЛИС. Главное — мыслить схемой, а не программой.

Смотрите также: VHDL (обзор) · Verilog · ПЛИС: FPGA и CPLD · Цифровая логика.