Verilog

Verilog
Verilog
Класс языка:

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

Появился в:

1983-1984

Автор(ы):

Phil Moorby, Prabhu Goel

Расширение файлов:

.v

Verilog, Verilog HDL (англ. Verilog Hardware Description Language) — это язык описания аппаратуры, используемый для описания и моделирования электронных систем. Verilog HDL, не следует путать с VHDL (конкурирующий язык), наиболее часто используется в проектировании, верификации и реализации (например, в виде СБИС) аналоговых, цифровых и смешанных электронных систем на различных уровнях абстракции.

Разработчики Verilog сделали его синтаксис очень похожим на синтаксис языка C, что упрощает его освоение. Verilog имеет препроцессор, очень похожий на препроцессор языка C, и основные управляющие конструкции «if», «while» также подобны одноимённым конструкциям языка C. Соглашения по форматированию вывода также очень похожи (см. printf).

Следует отметить, что описание аппаратуры, написанное на языке Verilog (как и на других HDL-языках) принято называть программами, но в отличие от общепринятого понятия программы как последовательности инструкций, здесь программа задает структуру системы. Так же для языка Verilog не применим термин "выполнение программы".

Содержание

Обзор

Существует подмножество инструкций языка Verilog, называемое синтезируемым. Модули, которые написаны на этом подмножестве, называют RTL (англ. register transfer level — Уровень регистровых передач). Они могут быть физически реализованы с использованием САПР синтеза. Данные САПР по определенным алгоритмам преобразуют абстрактный исходный код на Verilog в netlist — логически эквивалентное описание, состоящее из элементарных логических примитивов (например, AND, OR, NOT, триггеры), которые доступны в выбранной технологии производства СБИС или программирования БМК и ПЛИС. Дальнейшая обработка netlist в конечном итоге порождает фотошаблоны для литографии или прошивку для FPGA.

История

Создание

Verilog был создан Phil Moorby и Prabhu Goel зимой 1983—1984 годов в фирме Automated Integrated Design Systems (с 1985 года Gateway Design Automation) как язык моделирования аппаратуры. В 1990 году Gateway Design Automation была куплена Cadence Design Systems. Компания Cadence имеет права на логические симуляторы Gateway’s Verilog и Verilog-XL simulator.

Verilog-95

Во время увеличивающейся популярности языка VHDL, Cadence приняла решение добиться стандартизации языка. Cadence передала Verilog в общественное достояние. Verilog был послан в IEEE и принят как стандарт IEEE 1364—1995 (часто называемый Verilog-95).

Verilog 2001

Дополнения к языку Verilog-95 были приняты как IEEE 1364—2001 (или Verilog-2001).

Verilog-2001 является значительно обновленным по сравнению с Verilog-95. Во-первых, он добавил поддержку знаковых переменных (в формате дополнительного кода). Прежде авторам кода приходилось реализовывать знаковые операции с использованием большого количества битовых логических операций. Та же функциональность на Verilog-2001 описывается встроенными операторами языка: +, -, /, *, >>> Был улучшен файловый ввод-вывод. Для улучшения читаемости кодов был немного изменен синтаксис, например always @*, переопределение именованных параметров, объявление заголовков функций, задач и модулей в стиле Си.

Verilog-2001 является самым часто используемым диалектом языка и поддерживается в большинстве коммерческих САПР для электроники (см. EDA).

Verilog 2005

Verilog 2005 (стандарт IEEE 1364—2005) добавил небольшие исправления, уточнения спецификаций и несколько новых синтаксических конструкций, например, ключевое слово uwire.

Отдельная от стандарта часть, Verilog-AMS, позволяет моделировать аналоговые и аналого-цифровые устройства.

SystemVerilog

SystemVerilog является надмножеством Verilog-2005, с многими новыми возможностями для верификации и моделирования разработок.


Пример

Программа Hello, world! (не является синтезируемой)

module main;
  initial 
    begin
      $display("Hello world!");
      $finish;
    end
endmodule

Два простых последовательно соединённых триггера:

module toplevel(clock,reset);
 input clock;
 input reset;
 
 reg flop1;
 reg flop2;
 
 always @ (posedge reset or posedge clock)
 if (reset)
   begin
     flop1 <= 0;
     flop2 <= 1;
   end
 else
   begin
     flop1 <= flop2;
     flop2 <= flop1;
   end
endmodule

Стандарт

IEEE Std 1364—2001 — стандарт на Verilog 2001

  • IEEE P1364 — рабочая группа 1364 — бывший разработчик Verilog.
  • IEEE P1800 — рабочая группа 1800 — разработчик SystemVerilog и преемник рабочей группы 1364.

Синтезируемые конструкции

Initial и Always

Операторы

Тип Символа Выполняемая операция
Побитовые ~ Инверсия
& Побитовое AND
| Побитовое OR
^ Побитовое XOR
~^ или ^~ Побитовое XNOR
Логические  ! NOT
&& AND
|| OR
Редукция & Редуцированное AND
~& Редуцированное NAND
| Редуцированное OR
~| Редуцированное NOR
^ Редуцированное XOR
~^ или ^~ Редуцированное XNOR
Арифметические + Сложение
- Вычитание
- 2's complement
* Умножение
/ Деление
** Экспонента (*Verilog-2001)
Отношение > Больше
< Меньше
>= Больше либо равно
<= Меньше либо равно
== Логическое равенство
 != Логическое неравно
=== 4-state логическое равенство
 !== 4-state логическое неравно
Сдвиг >> Логический сдвиг вправо
<< Логический сдвиг влево
>>> Арифметический сдвиг вправо (*Verilog-2001)
<<< Арифметический сдвиг влево (*Verilog-2001)
Сцепление { , } Сцепление
Копирование {n{m}} Копирует m значение n раз
Условие  ? : Условие

Открытое аппаратное обеспечение, использующее Verilog

На языке Verilog созданы описания открытых микропроцессоров OpenSPARC T1, T2, S1 Core и OpenRISC. Их исходный код доступен под лицензиями LGPL и GPL.

Список приложений, поддерживающих Verilog

  • Icarus Verilogopen source приложения для моделирования и синтеза. Работает под Linux, Windows, Mac OS X, FreeBSD и др. страница проекта
  • VCS среда моделирования и отладки; работает как под Unix, так и под Windows.
  • LogicSim среда моделирования и отладки, работает под Windows.
  • Incisive HDL среда моделирования и отладки; работает как под Unix, так и под Windows.
  • ModelSim среда моделирования и отладки; работает как под Unix, так и под Windows.
  • Veritak редактор, интегрированный компилятор/симулятор, транслятор с VHDL в Verilog, работает под управлением Windows.
  • Verilator open-source высокопроизводительный компилятор Verilog.
  • Verilog-Perl набор Perl-модулей для предобработки и построения других инструментов.
  • vmodel open-source средство для моделирования Verilog в MATLAB, основанное на Verilator.
  • Verilog for DMS is a general toolset for implementing arbitrary analyses and transformations on Verilog.
  • VSPCompiler инструмент для компилирования синтезируемого RTL-описания в C/C++/SystemC библиотеку.
  • VTOC инструмент для компилирования синтезируемого RTL-описания в C++/SystemC библиотеку.
  • Wave VCD Viewer программа для просмотра VCD-файлов. Verilog-симулятор может порождать VCD-файл, содержащий результаты моделирования. Wave VCD Viewer позволяет разработчику видеть результаты моделирования в виде временных диаграмм. Программа работает под управлением Windows.
  • GTKWave open-source программа для просмотра временных диаграмм, которая среди прочего позволяет просматривать VCD-файлы.

См. также

Схожие языки

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Полезное


Смотреть что такое "Verilog" в других словарях:

  • Verilog — es un lenguaje de descripción de hardware (HDL, del Inglés Hardware Description Language) usado para modelar sistemas electrónicos. El lenguaje, algunas veces llamado Verilog HDL, soporta el diseño, prueba e implementación de circuitos analógicos …   Wikipedia Español

  • Verilog — HDL ist neben VHDL die weltweit meistgenutzte Hardwarebeschreibungssprache. Inhaltsverzeichnis 1 Geschichte 2 Funktionsweise 3 Literatur 4 Siehe auch …   Deutsch Wikipedia

  • Verilog-A — is an industry standard modeling language for analog circuits. It is the continuous time subset of Verilog AMS.Verilog A was created out of a need to standardize the Spectre behavioral language in face of competition from VHDL (an IEEE standard) …   Wikipedia

  • Verilog — In the semiconductor and electronic design industry, Verilog is a hardware description language (HDL) used to model electronic systems. Verilog HDL , not to be confused with VHDL, is most commonly used in the design, verification, and… …   Wikipedia

  • Verilog — Le Verilog HDL est un langage de description matériel de circuits logiques en électronique (le sigle anglais HDL Hardware Description Language signifie Langage de Description du Matériel), utilisé pour la conception d ASICs (application specific… …   Wikipédia en Français

  • Verilog-AMS — is a derivative of the hardware description language (HDL) Verilog (IEEE 1364 1995 Verilog HDL). It includes analog and mixed signal extensions (AMS) in order to define the behavior of analog and mixed signal systems.The Verilog AMS standard was… …   Wikipedia

  • Verilog-AMS — est un dérivé du langage de description matériel Verilog. Il comprend des extensions analogiques et des signaux mixtes (en anglais analog and mixed signal, AMS) afin de définir le comportement des systèmes à signaux analogiques et mixtes. La… …   Wikipédia en Français

  • Verilog-AMS — Стиль этой статьи неэнциклопедичен или нарушает нормы русского языка. Статью следует исправить согласно стилистическим правилам Википедии. Verilog AMS или Verilog Analog Mixed Signal Simulation (Verilog Аналогово Смешанное Моделирование… …   Википедия

  • Verilog Procedural Interface — The Verilog Procedural Interface (VPI) is an interface primarily intended for the C programming language. It allows behavioral Verilog code to invoke C functions, and C functions to invoke standard Verilog system tasks. The IEEE 1364 2005… …   Wikipedia

  • List of Verilog simulators — Verilog simulators are software packages that emulate the Verilog hardware description language. Verilog simulation software has come a long way since its early origin as a single proprietary product offered by one company. Today, Verilog… …   Wikipedia


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»