Символ подчеркивания (Underscore )
Общие сведения
Как известно [45], язык описания аппаратуры Verilog был разработан фирмой GatewayDesign Automation в 1984 . После поглощения последней таким монстром, как Caddence, язык стал получать все более широкое распространение среди разработчиков и стал не менее популярен, чем VHDL. В отличие от VHDL, структура и синтаксис которого напоминают такие «сложные» языки, как АДА или АЛГОЛ, синтаксис Verilog напоминает очень популярный в среде как программистов, так и разработчиков встроенных систем и систем ЦОС старый добрый С. Verilog позволяет провести достаточно эффективно выполнить описание и провести моделирование (simulate) и синтез цифровых схем благодаря применению встроенных (built-in primitives) примитивов, примитивов пользователя (user-defined primitives), средствам временного контроля ( timing checks), моделирования задержки распространения от входа до выхода (pin-to-pin delay simulation), возможностью задания внешних тестовых сигналов (external stimulus). Как и VHDL, Verilog изначально предназначался для моделирования цифровых систем, и как средство описания синтезируемых проектов стал использоваться с 1987 года. В настоящее время ведущие пакеты синтеза систем на ПЛИС, такие как продукты фирм Synopsis, Caddence, Mentor Graphics, многих производителей ПЛИС поддерживают синтез с описания на языке Verilog В языке Verilog поддерживается набор типов логических вентилей (Gate Types) Для логических вентилей определены ключевые слова (Keywords): and (И), nand (И-НЕ), or (ИЛИ) , nor (ИЛИ-НЕ), xor (Исключающее ИЛИ), xnor (Исключающее ИЛИ-НЕ), buf (Буферный элемент), not (Отрицание, НЕ). В Verilog при использовании вентилей необходимо задать входы и выходы элемента, а также (не обязательно) имя вентиля . Например, вентили and и or должны иметь один выход и два и более входов. Так, для вентиля И (and)имеем
and <name><list of arguments> and myand(out, in1, in2, in3); and (out, in1, in2
Вентили buf и not могут иметь один вход и один и более выходов. Имя вентиля является необязательным. Примеры использования приведены ниже
buf mybuf(out1, out2, out3, in); not (out, in);
Говоря о синтаксисе языка Verilog, следует помнить, что он является контекстно-зависимым языком, то есть строчные и прописные буквы различаются. Все ключевые слова (keywords) задаются в нижнем регистре (строчные буквы). Для обозначения пустого пространства (White Space ) используются символы пробела, табуляции и новой строки. В Verilog поддерживаются два типа комментприев. Они аналогичны принятым в С++ - если надо закомментировать одну строку, то используются две косые черты в ее начапе
// это комментарий
Чтобы закомментировать несколько строк, используются следующая конструкция
/* Это комментарии... */
Очевидно, что комментарии не могут быть вложенными Операторы В Verilog существует три типа операторов – с одним, двумя и тремя операндами. Унарные операторы располагаются слева от операнда, бинарные между операндами и тернарный оператор разделяет три операнда двумя операторами. Примеры операторов
clock = ~clock; // унарный оператор отрицания // clock – опреанд c = a || b; // || - бинарный оператор ИЛИ, a и b операнды r = s ? t : u; // ?: - тернарный оператор, читается как // r = [if s is true then t else u]
Как правило, при написании описаний на верилоге комментарии одной строкой (//) используются для ввода текстовых комментариев к коду, а конструкцию /* */ используют при отладке для «закомментирования» фрагментов кода
Числа в Verilog. Целые числа (Integers) Целые числа могут быть двоичными (binary), обозначаются b или B , десятичными (decimal, d или D ), шестнадцатеричными (hexidecimal, h, H ) или восьмеричными (octal, o или O ). Для определения чисел используются следующие форматы: 1. <разрядность>'<основание><число> - полное описание числа 2. <основание><число> : используется разрядность представления, заданная в системе по определению, но не менее 32 бит. 3. <число>: используется, когда по умолчанию десятичное основание Разрядность определяет число бит под представление числа. Например
8'b10100010 // 8 битное число в двоичной системе 8'hA2 // 8 битное число в шестнадцатиричной системе Неопределенное и высокоимпедансное состояния (X and Z values) Символ xиспользуется для задания неопределенного состояния, символ z показывает третье (высокоимпедансное). При использовании в качестве цифры в числах вместо символа z можно использовать ? . Это рекомендуется делать в операторах выбора (case expressions) для улучшения читаемости кода. Ниже приведены примеры использования символов x и z в числах.
4'b10x0 4'b101z 12'dz 12'd? 8'h4x Отрицательные числа (Negative numbers ) Отрицательное число задается с помощью знака минус перед разрядностью числа. Примеры отрицательных чисел
-8'd5 8'b-5 // неправильно, знак минус перед числом, а не разорядностью! Символ подчеркивания (Underscore ) Знак подчеркивания (_, underscores) может быть записан в любом месте числа,что позволяет использовать его как разделитель разрядов, улучшающий читабельность.
16'b0001_1010_1000_1111 // использование подчеркивания 8'b_0001_1010 // некорректное использование подчеркивания
Популярное: Почему двоичная система счисления так распространена?: Каждая цифра должна быть как-то представлена на физическом носителе... Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас... Личность ребенка как объект и субъект в образовательной технологии: В настоящее время в России идет становление новой системы образования, ориентированного на вхождение... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (819)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |