Динамика систем, механизмов и машин, № 4, 2014
УДК 004.423.24
В.К. Воропаев, А.Ю. Медведков, Ж.Б. Садыков V.K. Voropaev, A.Ju. Medvedkov, Zh.B. Sadykov
Омский государственный технический университет, г. Омск, Россия Omsk State Technical University, Omsk, Russia
VHDL И VERILOG-HDL-ЯЗЫКИ ОПИСАНИЯ ЦИФРОВОЙ АППАРАТУРЫ
VHDL AND VERILOG HDL-DESCRIPTION LANGUAGES DIGITAL EQUIPMENT
В статье рассмотрена общая информация о языках описания цифровой аппаратуры Verilog (Verilog-HDL) и VHDL, их достоинства и недостатки.
General information had been considered about digital hardware description languages Verilog (Verilog-HDL) and VHDL, their advantage and disadvantage in the article.
Ключевые слова: Verilog, VHDL, проектирование
Keywords: Verilog, VHDL, design
Введение.
Развитие вычислительной техники привило к разработке языков описания цифровой аппаратуры. На сегодняшний день одними из основных языков описания цифровой аппаратуры являются Verilog (Verilog-HDL) и VHDL.
Исторически сложилось так, что в первой половине восьмидесятых годов XX века по инициативе Министерства обороны США был разработан язык спецификации проектов (VHDL). Стандарт ANSI/IEEE STD 1076-1987 на версию языка бал утвержден в 1987 году. В последующем стандарты языка менялись, к примеру: IEEE STD 1076-1993, IEEE STD 10761999, IEEE STD 1076-2002, IEEE STD 1076-2008.
В 1985 году фирмой Gateway Design Automaton был разработан язык моделирования аппаратуры Verilog-HDL. Первый стандарт языка был утвержден в 1995 году (IEEE 1364-1995)[1].
На сегодняшний день сложно представить описания цифровых схем без них. В данной статье рассмотрена общая информация о языках описания цифровой аппаратуры Verilog (Verilog-HDL) и VHDL, их достоинства и недостатки.
Язык VHDL.
Структура проекта в VHDL.
Основной структурной единицей VHDL является ENTITY. Декларация ENTITY определяет имя проекта и, необязательно, его интерфейс, т. е. порты и параметры настройки. Пакет - это набор объявлений вводимых пользователем типов, переменных, констант, подпрограмм и т. п. Архитектурные тела представляют содержательное описание проекта [2, c.395]. В VHDL представление сигналов реализовано в библиотеке std_logic_1164. Архитектурное тело представляет описание функций и процедур.
Типы данных.
Как и практически во всех языках программирования в VHDL используются типы данных. VHDL является строго типизированным языком. Любой единице информации в VHDL присваивается имя и определяется тип.
Типы данных:
1. integer - целый;
2. real - действительный;
15
Динамика систем, механизмов и машин, № 4, 2014
3. bit - представляет один логический бит (значение '0' либо '1');
4. boolean - объекты этого типа принимают значения true либо false;
5. character - объединяет все символы;
6. time - используется для задания задержек;
7. severitylevel - служит для управления работой компилятора;
8. fileopenstatus и fileopenkind - обеспечивают возможность контроля процедур между программой и файловой системой компьютера;
9. string и bit_vector - массив символов и битов соответственно. Объекты VHDL.
Объекты выполняют роль хранения различных значений. Идентификаторы обязательно должны начинаться с буквы. Объекты должны быть объявлены перед использованием, за исключением переменной цикла в операторе for, которая объявляется по умолчанию. Классы объектов:
• Constant - константы.
• Variable - переменные.
• Signal - сигналы, представляют значения, передаваемые по проводам. Синтаксис объявления объектов:
Constant {name [, name]}: Type [(index_range [, index_range])] := initial_value; Variable {name [, name]}: Type [(index_range [, index_range ])] [ := initial_value ]; Signal {name [, name]}: Type [(index_range)]; Операторы VHDL.
Операторы в VHDL делятся на два типа:
• Последовательные.
• Параллельные.
Последовательные операторы включены в операторы процессов. В одной строке можно размещать несколько операторов. Все операторы в VHDL оканчиваются точкой с запятой. Последовательные операторы включают в себя:
• Оператор присваивания - выполняет присваивание переменной или сигналу результата выражения.
\результат\:=\выражение\ - присваивания переменной. \результат\<=\выражение\ - присваивание сигнала[3, с.52].
• Оператор ожидания события wait . Синтаксис оператора:
\ wait \::= wait[on\name signal\ {\name signal\}]
• Оператор if - оператор цепочки последовательных событий; \ if \::= if \условие \ then
^последовательный оператор\} end if
• Оператор case - оператор разрешения выполнения последовательных операторов. \case \::= case \ повторное выражение \ is
when \альтернативы\ =>{\последовательный оператор\} {when \альтернативы\ =>{\последовательный оператор\}} end case
• Пустой оператор null - не выполняет никаких действий.
• Оператор повторения - выполняет повторение последовательных операторов. \оператор повторения \ ::=
[<метка оператора повторения> : ] [<итерационная схема> : ] loop
<оператор> « <оператор > »
end loop [<метка оператора повторения> ][2];
Параллельные операторы.
16
Динамика систем, механизмов и машин, № 4, 2014
Параллельные операторы выполняются при любом изменении сигнала. К параллельным операторам относятся[2]:
• Оператор параллельного присваивания;
• Параллельный вызов процедуры;
• Оператор процесса;
• Оператор блока;
• Оператор вхождения компонента;
• Оператор генерации;
• Параллельный оператор проверки; Язык Verilog-HDL(Verilog). Структура проекта.
Основной единицей языка является модуль. Элементами модуля являются декларации и операторы. Структура проекта выглядит следующим образом: module <имя модуля> (<порт>« , <порт > »); « <декларация> | <параллельный оператор> » endmodule Типы данных.
По сравнению с "VHDL^ Verilog используется меньшее количество типов данных. Данные в Verilog могут принимать одно из четырех состояний:
• 1 - представляет логическую 1 или значение «истинно» (true)
• 0 - представляет логический 0 или значение «ложно» (false)
• z - представляет состояние высокого импеданса
• x - представляет неизвестное логическое состояние Verilog включает две группы типов данных:
• Регистры (reg);
• Цепи (wire);
Регистры предназначены для сохранения состояний. Цепи осуществляют передачу состояний между моделируемыми объектами. Типы цепей:
• Wire, tri - соединение элементов
• Wand/triand, wor/trior - моделирование цепей с разрешающей логикой
• Trireg - сохраняет свое состояние(емкость) .
• Tril, tri0, supply1,supply0 . Цепи Tril, tri0 - моделирование цепи с резистивной подтяжкой, а supply1,supply0 - моделируют источники питания подключенные к этой цепи.
Операторы Verilog.
Операторы в Verilog, как и в VHDL, делятся на два вида: последовательные и параллельные.
Оператор initial запускается единожды при начале моделирования и задает начальное состояние устройства. Синтаксис данного оператора выглядит следующим образом:
< операция инициализации > ::= initial < оператор >
Оператор always - оператор повторения. Запускается в начале программы так же как и initial, но повторяется каждый раз после завершения вложенного оператора. Синтаксис оператора имеет вид:
< операция постоянного повторения> ::= always < оператор >
Операторы принятия решений - выбор одного из путей выполнения алгоритма. К операторам принятия решений относятся:
• Оператор условия
< оператор условия >: : :=
if (<выражение>)<оператор>
17
Динамика систем, механизмов и машин, № 4, 2014
• Оператор варианта <оператор варианта>::=
<определитель оператора варианта>(<ключевое выражение>)
« <вариант>«, < вариант > » :<оператор> »
Endcase
Заключение.
В отличии от языка VHDL, Verilog более прост с точки зрения освоения. Он схож с языком Си, а это огромный плюс. В Verilog используется меньшее количество типов данных, меньшее количество служебных слов. VHDL обладает большой универсальностью, но из-за этого он проигрывает в эффективности языку Verilog. Следовательно, человеку, который только начинает свое знакомство с языками описания цифровой аппаратуры будет легче освоить язык Verilog.
Оба языка поддерживаются в качестве стандартов большим количеством программных продуктов. Языки Verilog и VHDL используются при проектировании цифровых устройств, с применением САПР ведущих фирм в области ПЛИС. На сегодняшний день сложно представить описания цифровых схем без них.
Библиографический список
1. Поляков, А. К. Языки VHDL и VERILOG в проектировании цифровой аппаратуры. - М. : СОЛОН-Пресс, 2003. - 320 с. : ил. - (Серия «Системы проектирования»).
2. Грушвицкий, Р. И. Проектирование систем на микросхемах с программируемой структурой / Р. И. Грушвицкий, А. Х. Мурсаев, Е. П. Угрюмов. - 2-е изд., перераб. и доп. -СПб. : БХВ-Петербург, 2006. - 736 с. : ил.
3. Сергеенко, А. М. VHDL для проектирования вычислительных устройств - / А. М. Сергеенко.- М. : ООО «ТИД «ДС», 2003. - 208 с.