Что такое Verilog
Verilog — язык описания аппаратуры, наряду с VHDL один из двух основных для проектирования ПЛИС и микросхем. Его синтаксис ближе к языку C, он лаконичнее VHDL и очень популярен в микроэлектронике. Как и VHDL, Verilog описывает параллельно работающие цифровые цепи, а не последовательный алгоритм.
Модуль
Базовая единица — module с портами; внутри описывают логику.
module and_gate(
input a, b,
output y
);
assign y = a & b; // непрерывное присваивание
endmodule
assign, always, регистры
Комбинационную логику задают непрерывным присваиванием assign. Более сложное поведение (регистры, автоматы) описывают в блоках always, срабатывающих по списку чувствительности или фронту тактового сигнала:
always @(posedge clk) begin
q <= d; // D-триггер по фронту clk
end
Различают типы wire (соединение, для assign) и reg (хранит значение, присваивается в always).
Verilog против VHDL
| Verilog | VHDL | |
|---|---|---|
| Синтаксис | краткий, как C | подробный, строгий |
| Типизация | слабее | строгая |
| Где популярен | микроэлектроника, США | авиакосмос, Европа |
Существует и SystemVerilog — расширение Verilog с богатыми средствами верификации.
Частые вопросы
Что учить — Verilog или VHDL?
Оба востребованы и решают одну задачу; принципы (параллелизм, синтезируемое подмножество, автоматы) общие. Verilog короче и ближе к C, VHDL строже. Начните с того, что принято в вашей среде проектирования или у работодателя.
В чём разница wire и reg?
wire — соединение, значение которого задаётся непрерывно (assign). reg — переменная, хранящая значение и присваиваемая внутри always. Несмотря на имя, reg не всегда регистр — это зависит от описания.
Итоги
Verilog — компактный C-подобный язык описания аппаратуры: логика задаётся через assign и блоки always, а wire и reg описывают соединения и хранимые значения. Как и VHDL, он моделирует параллельную работу цифровых схем. Выбор между ними определяется средой и задачами.
Смотрите также: VHDL · ПЛИС: FPGA и CPLD · ПЛИС (обзор) · Цифровая логика.