Поиск

Полнотекстовый поиск:
Где искать:
везде
только в названии
только в тексте
Выводить:
описание
слова в тексте
только заголовок

Рекомендуем ознакомиться

'Документ'
Салютная, Б 15:00 Константин Грицак Директор Телекоммуникационной палаты Украины Открытие заседания Николай Фартушный Член Национального совета Украин...полностью>>
'Документ'
If this Contract is funded by a federal grant or cooperative agreement, additional state or federal requirements found in the Notice of Grant Award ar...полностью>>
'Документ'
Даже если вы исчерпали включенный в пакет лимит трафика, вы можете продолжать пользоваться интернетом на высокой скорости благодаря услуге «Продли ско...полностью>>
'Анкета'
- созданию дополнительных социальных гарантий педагогическим и другим работникам ДОУ и улучшение условий их труда; оказанию помощи в создании и публик...полностью>>

Главная > Документ

Сохрани ссылку в одной из сетей:
Информация о документе
Дата добавления:
Размер:
Доступные форматы для скачивания:

23

Verilog – инструмент разработки цифровых электронных схем.

Verilog – инструмент разработки цифровых электронных схем.

Введение.

Язык Verilog был разработан фирмой Gateway Design Automaton как внутренний язык симуляции. Cadence приобрела Gateway в 1989 году и открыла Verilog для общественного пользования. В 1995 году был определен стандарт языка - Verilog LRM (Language Reference Manual), IEEE1364-1995. Таким образом, датой появления языка Verilog следует считать 1995 год. К этому времени уже успел получить распространение другой язык высокого уровня для описания принципиальных схем – VHDL (Very high-speed IC Hardware Description Language), появившийся в 1987 году. Verilog HDL и VHDL, несмотря на похожие названия, различные языки. В статье я буду сравнивать конструкции этих языков, предполагая, что читателю известен VHDL, но надеюсь также, что данный материал буден полезен для начинающих изучение HDL с языка Verilog. По моему мнению Verilog достаточно простой язык, сходный с языком программирования С как по синтаксису, так и по «идеологии». Малое количество служебных слов и простота основных конструкций упрощает изучение и позволяет использовать Verilog для обучения. Но в то же время это эффективный и специализированный язык. VHDL обладает большей универсальностью и может быть использован не только для описания моделей цифровых электронных схем, но и для других моделей (например, модели экосистемы). Но из-за своих расширенных возможностей VHDL проигрывает в эффективности, то есть на описание одной и той же конструкции в Verilog потребуется в 3-4 раза меньше символов (ASCII), чем в VHDL. В Verilog существуют специфические объекты (UDP, specify блоки), не имеющие аналогов в VHDL. Также следует упомянуть стандарт PLI (Program Language Interface), который позволяет включать функции написанные пользователем (например, на С) в код симулятора. В настоящее время важным недостатком Verilog является отсутствие документации, особенно на русском. Данная статья является скромной попыткой улучшить ситуацию.

Основы синтаксиса.

Для иллюстрации примеров будет использоваться Verilog-XL симулятор от Cadence (www.cadence.com ). Это наиболее стандартный, если так можно высказаться, симулятор. Существует несколько проектов свободных Verilog симуляторов. Мне известны veribest (/~jching) и icarus verilog (/eda/verilog/index.html). В настоящее время данные продукты не являются завершенными и их работоспособность на больших проектах, полнота и правильность в поддержке стандарта являются неудовлетворительными, но для примеров рассмотренных в статье эти программы подходят. Замечу также, что собрать эти симуляторы для работы под Windows мне не удалось (пакеты поставляются в исходном коде и бинарниках для Соляриса или Линукса). Также большинство производителей предлагает бесплатные демо-версии Verilog симуляторов. Неплохой список линков /Z/1/index.shtml . Для Windows платформы популярен ModelSim (www.model.com ). Под Линуксом хорошо зарекомендовал себя finsim (), для которого существует и Windows версия. Также в большинстве современных продуктов предназначенных для синтеза и верификации проектов на FPGA или ASIC существует поддержка Verilog HDL и VHDL, как для синтеза, так и для симуляции.

Симуляторы можно условно разбить на две группы – интерпретирующие и компилирующие в «родной код». Так Verilog-XL – интерпретирующий, NC-Verilog – компилирующий, а finsim может работать как в том, так и в другом режиме. Для работы компилирующих симуляторов обычно требуется, чтобы в системе был установлен С компилятор.

Запуск симулятора может производиться из командной строки или из графической оболочки, которая формирует строку для запуска. Часть параметров передаваемая в командной строке уникальна для конкретного симулятора, но есть основной стандартный набор. Так вызов симулятора со списком файлов вызовет их исполнение (verilog test.v modul.v), список файлов можно поместить в отдельный файл и вызывать симулятор с опцией –f (verilog –f file_list).

Все приводимые в тексте примеры можно загрузить с www.verilog.boom.ru .

Данное описание не является полным изложением синтаксиса языка. Будут рассмотрены только основные конструкции необходимые для понимания структуры и принципов языка.

Типы данных:

Verilog поддерживает следующие «стандартные» типы данных: целое – integer (32-х битовое со знаком) и real – число с плавающей точкой.

Для моделирования также используются time – время, специфический тип, применяется встроенными функциями для моделирования времени, обычно 64-х битовое целое; event – событие, в языке существует ряд операторов и конструкций для работы с событиями.

Создавать свои типы данных как в VHDL нельзя. При разработке синтезируемых моделей из перечисленных типов используется только integer.

Сигналы, в отличие от VHDL, бывают двух основных типов: «цепи» и «регистры». Самые распространенные из них описываются ключевыми словами wire и reg соответственно. Однако следует помнить, что средство синтеза не всегда реализует reg в виде триггера. Отличие wire от reg состоит в том, что reg способен сохранять присвоенное значение (работает как переменная в языках программирования), а к wire требуется прилагать непрерывное воздействие (driver). То есть wire моделирует провод, который переходит в неопределенное состояние при отключении драйвера. Существуют также wand, wor, tri0, tri1, triand, trior, trireg (это цепь, а не регистр!) для моделирования различных типов цепей (wand – wired and, tri0 – резистор к 0, trireg – емкость, и т.п.), но такие цепи встречаются редко и в статье не рассматриваются.

Идентификаторы в Verilog являются чувствительными к регистру и подчиняются обычным правилам: не могут начинаться с цифры или знака $ и могут содержать буквы, цифры, $, _ . Существуют так называемые escaped идентификаторы (в основном в структурных моделях полученных после синтеза), которые начинаются с \ содержат любые символы и заканчиваются пробелом или переводом строки.

Пример:

// - это комментарий

/*

и это комментарий

*/

integer i, j, k; // объявление переменных i, j и k типа integer

time start, duration;

real freq_div;

event start_process;

/* далее следуют объявления

однобитовых сигналов */

wire a, b, c;

wire d;

reg store, ff, A; // reg A не совпадает с wire a (case sensitive vs VHDL)

reg \dut/cntr/reg_s ; // escaped идентификатор (пробел перед ;)

Для описания шин или регистров неединичной ширины используются диапазоны (range) вида [n:m], где m и n целые числа или параметры. В языке допускается как m>n, так и наоборот. Но это имеет значение в операциях, для которых важен порядок битов (например, сложение или присвоение целого). Поэтому принято располагать индексы в убывающем порядке.

wire [7:0] data_bus;

reg [3:0] high_nibble, low_nibble; // два 4-х битовых регистра

reg [0:5] a_reg; // регистр с обратным порядком битов – не рекомендуется

Массивы в Verilog не поддерживаются, но существуют «памяти», собственно одномерный массив или модель памяти.

reg [8:0] Fifo [31:0]; // 32 слова 9-ти битовой памяти

В отличие от VHDL представление сигналов реализовано в самом языке (а не в библиотеке std_logic_1164). Всего существует четыре типа значений, которые может принимать сигнал – как «цепь», так и «регистр»: 0, 1, z, x. Первые три соответствуют логическим уровням и состоянию с высоким импедансом. Четвертый (х) означает неопределенное состояние и используется при моделировании неинициализированных сигналов, конфликтов (два выхода с противоположными состояниями соединены вместе), метастабильных состояний триггеров (при нарушении временных соотношений между входами данных и тактовым входом) и т.п. Во всех случаях, когда симулятор не может определить значение данного сигнала. В реальном приборе такого сигнала не бывает :-).

Для записи многоразрядных сигналов (констант) используется следующие конструкции: 1’bz – одноразрядный высокоимпедансный сигнал, 10’d1_000 – десятиразрядное число 1000 записанное в десятичной системе (символ _ игнорируется), 4’bx01z – четырехразрядный сигнал с неопределенным старшим битом, высокоимпедансным младшим, вторым и третьим в 1 и 0 соответственно. То есть разрядность, одинарная кавычка ‘ (не путать с апострофом ` , использующимся в директивах), основание системы счисления (b,o,d,h) и цифры использующиеся в данной системе счисления. В двоичной системе допустимо использование символов z и x. Символ подчеркивания служит для облегчения записи и игнорируется. Использование констант без указания разрядности не желательно, так как по умолчанию константа воспринимается с длиной 32 бита. Данные типа integer также могут присваиваться регистрам.



Похожие документы:

  1. Контрольные вопросы 23

    Контрольные вопросы
    ... деятельности, как объект разработки и как технологии разработки информационных систем. Это ... Предполагают, что между первыми инструментами обработки материальных объектов и средствами ... услугой. Переход к технологиям цифровой связи приводит к сближению служб ...
  2. ПЕРЕЧЕНЬ НАУЧНЫХ СТАТЕЙ И ДОКЛАДОВ опубликованных в 2014 году

    Документ
    ... для линейного логического синтеза цифровых структур / Н.Н. ... уравнения базовых схем включения мультидифференциальных ... 21 Разработка оптико-электронного устройства для ... Каращенко, В.В. Учёт финансовых инструментов и инвестиций в соответствии ... .auris-verlag.de/ ...
  3. Оправилах записи программы 9 Очем можно не беспокоиться 9 Описание архитектуры объекта 9

    Реферат
    ... описывать поведение, т.е. алгоритмы функционирования цифровых систем, а также проводить ... определение можно заменить структурной схемой. Можно моделировать: параллелизм, ... следующие стили проектирования и описания схем: структурный, потоковый, поведенческий, ...
  4. Болотова алла Константиновна

    Документ
    ... Л.С.Выготского через разработку общепсихологической теории ... (см. схему) Схема хронотопической детерминации ... деятельности является необходимым инструментом приспособления к меняющимся ... наименьшей ошибкой (показания электронного секундомера, вмонтированного ...
  5. Базы знаний интелектуальных систем гаврилова хорошевский

    Документ
    ... , традиционная схема разработки СПЗ I ... электронные учебники. Размещение в узлах сети не только текстовой и цифровой ... 1994. «Сценарий» — инструмент визуальной разработки компьютерных программ // Компьютерные техноло­ ... and Languages, Springer-Verlag. 287. Fridman ...

Другие похожие документы..