Введение в Verilog, Четвертый урок. Поведенческие блоки.

Для программирования микросхем FPGA нам нужно разобраться со средствами проектирования, САПР и языками программирования.
Verilog HDL это один из самых популярных языков для программирования FPGA. Вот кратко, что нужно знать о языке Verilog HDL:
- Часть 1. Базовые типы источников сигнала в языке Verilog HDL - это wire, reg, шины. Группирование логики в модули (module / endmodule). Входные и выходные сигналы модулей (input, output, inout).
- Часть 2. Простейшие модули AND, NAND, OR, NOR, XOR, XNOR, NOT. Установка экземпляров модулей и соединение их проводами. Иерархия модулей в языке описания аппаратуры Verilog HDL.
- Часть 3. Арифметические и логические действия в языке Verilog. Операторы сложения и вычитания (+ , -) , логический и арифметический сдвиг ( << , >> , >>> ), битовые операции ( & , | , ^, ~ ), булевые операции ( && , || , ! ), операторы редукции, условного выбора ( ? ) и сравнения.
- Часть 4. Поведенческие блоки. Конструкции always, if-else, case-endcase, циклы for(...).
- Часть 5. Синхронная логика и триггера в Verilog HDL. Блокирующее и не блокирующее присваивание.
Мы переходим к четвертой части наших уроков.
Раньше мы уже познакомились с постоянным назначением сигналов, оно выглядит, например, вот так:
wire a,b,c;
assign c = a & b;
Постоянные назначения весьма полезны, но и они имеют недостатки. Такой код, когда его много, не очень легко читать. Чтобы сделать язык Verilog более выразительным, он имеет так называемые "always" блоки. Они используются при описании системы с помощью поведенческих блоков (behavioral blocks). Использование поведенческих блоков очень похоже на программирование на языке С. Оно позволяет выразить алгоритм так, чтобы он выглядел как последовательность действий (даже если в конечном счете в аппаратуре это будет не так).





Подробнее...