АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

iverilog - Интернет в облаке

Запустите iverilog в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда iverilog, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


iverilog - компилятор Icarus Verilog

СИНТАКСИС


иверилог [-ESVv] [-Bpath] [-ccmdfile | -fcmdfile] [-Dmacro [= defn]] [-pflag = значение] [-dname]
[-g1995 | -g2001 | -g2005 | -g ] [-Iincludedir] [-mmodule] [-Mfile] [-Nfile]
[-ooutputfilename] [-stopmodule] [-ttype] [-Tmin / typ / max] [-Wclass] [-ypath] исходный файл

ОПИСАНИЕ


иверилог это компилятор, который переводит исходный код Verilog в исполняемые программы для
имитация или другие форматы списков соединений для дальнейшей обработки. Поддерживаемые в настоящее время
цели ввп для моделирования и FPGA для синтеза. Другие типы целей добавляются как
реализованы генераторы кода.

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


иверилог принимает следующие варианты:

-BИспользование темпера с изогнутым основанием Ассоциация иверилог программа использует внешние программы и файлы конфигурации для предварительной обработки
и скомпилируйте исходный код Verilog. Обычно для поиска этих инструментов используется следующий путь:
встроен в иверилог программа. Однако -B переключатель позволяет пользователю выбрать
другой набор программ. Указанный путь используется для поиска ИВЛПП, ИВЛ, код
генераторы и модули VPI.

-cфайл -fфайл
Эти флаги определяют входной файл, содержащий список исходных файлов Verilog.
Это похоже на команду файл других симуляторов Verilog, поскольку это
файл, который содержит имена файлов вместо того, чтобы вводить их в командной строке. Видеть
Command Файлы внизу.

-Dмакрос Определяет макрос макрос со строкой "1" в качестве определения. Эта форма обычно
используется только для запуска условных выражений ifdef в исходном коде Verilog.

-Dмакрос = defn
Определяет макрос макрос as определение.

-dимя Активируйте класс отладочных сообщений компилятора. В -d переключатель может использоваться как
часто по мере необходимости, чтобы активировать все желаемые сообщения. Поддерживаемые имена:
области видимости, eval_tree, разработать и synth2; любые другие имена игнорируются.

-E Предварительно обработайте исходный код Verilog, но не компилируйте его. Выходной файл - это
Ввод Verilog, но с расширенными и удаленными включениями файлов и ссылками на макрос.
Это полезно, например, для предварительной обработки исходного кода Verilog для использования другими
компиляторы.

-g1995|-g2001|-g2001-ноконфиг|-g2005
Выберите язык Verilog поколение поддерживать в компиляторе. Это выбирает
между ИЭЭЭ1364-1995, ИЭЭЭ1364-2001или ИЭЭЭ1364-2005. Обычно Icarus Verilog
по умолчанию используется последнее известное поколение языка. Этот флаг наиболее полезен
ограничить язык набором, поддерживаемым инструментами определенных поколений, для
совместимость с другими инструментами.

-гверилог-амс|-gno-verilog-амс
Включение или отключение (по умолчанию) поддержки Verilog-AMS. Очень маленький Verilog-AMS
в настоящее время поддерживаются определенные функции.

-gуказать|-gno-указать
Включить или отключить (по умолчанию) указать поддержку блока. При включении укажите блокировку
код разработан. Если отключено, укажите, что блоки анализируются, но игнорируются. Указать
блоки обычно не нужны для моделирования RTL и на самом деле могут повредить
выполнение моделирования. Однако отключение блоков указания снижает точность
полномасштабных симуляций.

-gstd-включить|-gno-std-включить
Включить (по умолчанию) или отключить поиск стандартной установки, включая
каталог после всех других явных подключаемых каталогов. Этот стандарт включает
каталог - удобное место для установки стандартных файлов заголовков, которые Verilog
программа может включать.

-grelative-включить|-gno-относительно-включить
Включить или отключить (по умолчанию) добавление каталога локальных файлов в начало
путь поиска включаемого файла. Это позволяет включать файлы относительно
текущий файл, а не более распространенные файлы, находятся только в рабочем каталоге или
в указанном пути поиска включаемого файла.

-gxtypes|-gno-xtypes
Включить (по умолчанию) или отключить поддержку расширенных типов. Включение расширенных типов
позволяет использовать новые типы, которые поддерживаются Icarus Verilog как расширения за пределами
базовый Verilog. При компиляции кода может потребоваться отключить расширенные типы.
это противоречит нескольким новым ключевым словам, используемым для реализации системы типов.

-gio-диапазон-ошибка|-gno-io-диапазон-ошибка
Стандарты требуют, чтобы у векторного порта были соответствующие диапазоны для своего порта.
декларация, а также любая декларация нетто / регистра. Это была обычная практика в
past, чтобы указать только диапазон для объявления сети / регистра и некоторых инструментов
все еще позволяю это. По умолчанию любое несоответствие регистрируется как ошибка. С использованием
-gno-io-диапазон-ошибка выдаст предупреждение вместо фатальной ошибки для случая
векторной сети / регистра и декларации скалярного порта.

-gstrict-ca-eval|-gno-strict-ca-eval
Стандарт требует, чтобы при вводе в выражение непрерывного присваивания
изменяет значение, выполняется повторная оценка всего выражения. По умолчанию части
выражения, которые не зависят от измененного входного значения (значений), не пересматриваются.
Если выражение содержит вызов функции, которая не зависит исключительно от ее
входных значений или имеет побочные эффекты, результирующее поведение будет отличаться от
то, что требуется стандартом. С использованием -gstrict-ca-eval заставит стандарт
совместимое поведение (с некоторой потерей производительности).

-Iвключенный
Добавить каталог включенный в список каталогов, в которых выполняется поиск Verilog, включить
файлы. В -I переключатель можно использовать много раз, чтобы указать несколько каталогов для
поиск, каталоги ищутся в том порядке, в котором они появляются в командной строке.

-Mпуть Запишите в файл, указанный по пути, список файлов, которые вносят вклад в
составление дизайна. Сюда входят файлы, которые включены в include
директивы и файлы, которые автоматически загружаются поддержкой библиотеки. Выход
- одно имя файла на строку без пробелов в начале и в конце.

-mмодуль
Добавьте этот модуль в список модулей VPI, которые будут загружены при моделировании. Много
модули могут быть указаны, и все они будут загружены в указанном порядке. В
системный модуль является неявным и всегда включен. Если файл таблицы системных функций
( .sft) существует для модуля, он будет загружен автоматически.

-Nпуть Это используется для отладки собственно компилятора. Выгрузите окончательную форму списка соединений
дизайн в указанный файл. В противном случае это не влияет на работу
компилятор. Дамп происходит после того, как дизайн проработан и оптимизирован.

-o имя файла
Поместите вывод в файл имя файла. Если имя выходного файла не указано, иверилог
использует имя по умолчанию а. выход.

-pflag = значение
Присвойте значение конкретному целевому флагу. В -p переключатель может использоваться так часто, как
необходимо указать все желаемые флаги. Используемые флаги зависят от
цель, которая выбрана и описана в документации по конкретной цели. Флаги
которые не используются, игнорируются.

-S Синтезировать. Обычно, если цель может принять поведенческие описания,
компилятор оставит процессы в поведенческой форме. В -S переключатель вызывает
компилятор для выполнения синтеза, даже если он не нужен для цели. Если
тип цели - это формат списка соединений, -S переключатель не нужен и не действует.

-s топмодуль
Укажите модуль верхнего уровня для разработки. Icarus Verilog по умолчанию выберет
модули, которые не созданы ни в каких других модулях, но иногда это не так.
достаточно или создает экземпляры слишком большого количества модулей. Если пользователь указывает один или несколько
корневые модули с -s flags, то вместо этого они будут использоваться как корневые модули.

-Tмин | тип | макс
Используйте этот переключатель для выбора минимального, типичного или максимального времени из выражений min: typ: max.
Обычно компилятор просто использует значение типа из этих выражений.
(выводит предупреждение для первых десяти найденных), но этот переключатель сообщит
компилятор явно, какое значение использовать. Это подавит предупреждение о том, что
компилятор делает выбор.

-tцель
Используйте этот переключатель, чтобы указать целевой формат вывода. Увидеть ЦЕЛЕВЫЕ раздел ниже
для списка допустимых форматов вывода.

-v Включите подробные сообщения. Это напечатает командные строки, которые выполняются для
выполнить фактическую компиляцию вместе с информацией о версии из различных
компоненты, а также версию продукта в целом. Вы заметите
что командные строки включают ссылку на ключевой временный файл, который передает
информацию собственно компилятору. Чтобы этот файл не был удален
конец процесса, укажите собственное имя файла в переменной среды
IVERILOG_ICONFIG.

-V Распечатайте версию компилятора и выйдите.

-Wкласс Включите разные классы предупреждений. Увидеть ПРЕДУПРЕЖДЕНИЕ ВИДЫ раздел ниже для
описания различных групп предупреждений. Если несколько -W переключатели используются,
набор предупреждений - это объединение всех запрошенных классов.

-yкаталог библиотеки
Добавьте каталог в путь поиска библиотечного модуля. Когда компилятор находит
undefined, он ищет в этих каталогах файлы с правильным именем.

-Yсуффикс
Добавить суффикс к списку допустимых суффиксов имен файлов, используемых при поиске
библиотека для ячеек. По умолчанию в списке отображается одна запись. .v.

МОДУЛЬ БИБЛИОТЕКИ


Компилятор Icarus Verilog поддерживает библиотеки модулей в виде каталогов, содержащих Verilog.
исходные файлы. Во время разработки компилятор замечает создание экземпляра undefined
типы модулей. Если пользователь указывает каталоги поиска библиотеки, компилятор будет искать
каталог для файлов с именем отсутствующего типа модуля. Если он найдет такой файл,
он загружает его как исходный файл Verilog, они снова пытаются разработать модуль.

Файлы модулей библиотеки должны содержать только один модуль, но это не является обязательным требованием.
Модули библиотеки могут ссылаться на другие модули в библиотеке или в основном проекте.

ЦЕЛЕВЫЕ


Компилятор Icarus Verilog поддерживает множество целей для разных целей, а
-t переключатель используется для выбора желаемой цели.

нуль Нулевой целевой объект не приводит к созданию кода. Это полезно для проверки
синтаксис исходного кода Verilog.

ввп Это значение по умолчанию. Цель vvp генерирует код для среды выполнения vvp. Выход
это полная программа, которая имитирует дизайн, но должна запускаться ввп
команда.

FPGA Это цель синтеза, которая поддерживает множество устройств FPGA, в основном EDIF.
формат вывода. Генератор кода fpga Icarus Verilog может генерировать полные
проекты или макросы EDIF, которые, в свою очередь, могут быть импортированы в более крупные проекты другими
инструменты. В FPGA цель подразумевает синтез -S флаг.

VHDL Эта цель производит VHDL-трансляцию списка соединений Verilog. На выходе получается
один файл, содержащий объекты VHDL, соответствующие модулям в Verilog
исходный код. Обратите внимание, что поддерживается только часть языка Verilog. Видеть
в вики для получения дополнительной информации.

ПРЕДУПРЕЖДЕНИЕ ВИДЫ


Это типы предупреждений, которые можно выбрать -W выключатель. Все предупреждения
типы (кроме Найти) также может иметь префикс нет- чтобы отключить это предупреждение. Это
самый полезный после -Стена аргумент для подавления отдельных типов предупреждений.

Найти Это включает неявные, привязку портов, диапазон выбора, шкалу времени и
категории предупреждений о чувствительности всего массива.

безоговорочно
Это включает предупреждения для создания неявных объявлений. Например, если
скалярный провод X используется, но не объявлен в исходном коде Verilog, это напечатает
предупреждение при первом использовании.

Portbind
Это включает предупреждения для портов экземпляров модуля, которые не подключены.
но наверное должно быть. Например, свисающие входные порты будут генерировать
предупреждение.

выберите диапазон
Это включает предупреждения о постоянных выборках вне пределов. Это включает частичное или
полностью выходящие за пределы выборки, а также выбор, содержащий 'bx или' bz в
индекса.

временные рамки
Это включает предупреждения о несогласованном использовании директивы шкалы времени. Он обнаруживает
если у некоторых модулей нет шкалы времени, или если модули наследуют шкалу времени от другого
файл. Оба, вероятно, означают, что временные рамки несовместимы, а время моделирования
может сбивать с толку и зависеть от порядка компиляции.

раздуть Это включает предупреждения для операторов always, которые могут иметь бесконечные циклы выполнения.
(имеет пути без задержки или с нулевой задержкой). Этот класс предупреждений не входит в -Стена
и, следовательно, не имеет нет- вариант. Сообщение о фатальной ошибке всегда будет
печатается, когда компилятор может определить, что определенно будет бесконечное число
цикл (все пути не имеют задержки или имеют нулевую задержку).

Если вы подозреваете, что оператор always создает бесконечный цикл времени выполнения, используйте это
чтобы найти операторы always, логика которых должна быть проверена. это
ожидается, что многие предупреждения будут ложными срабатываниями, поскольку код обрабатывает
значение всех переменных и сигналов как неопределенное.

чувствительность-весь-вектор
Это включает предупреждения, когда часть выбирается в операторе "always @ *".
приводит к добавлению всего вектора в список неявной чувствительности.
Хотя такое поведение предписано стандартом IEEE, это не то, что может
можно ожидать и может повлиять на производительность, если вектор большой.

чувствительность-весь-массив
Это включает предупреждения, когда слово выбирается в операторе "always @ *"
приводит к добавлению всего массива в список неявной чувствительности. Несмотря на то что
такое поведение предписано стандартом IEEE, это не то, что могло бы быть
ожидается и может повлиять на производительность, если массив большой.

СИСТЕМА Функция ТАБЛИЦА FILES


Если имя исходного файла как .sft суффикс, тогда он считается таблицей системных функций
файл. Табличный файл системных функций используется для описания компилятору возвращаемых типов.
для системных функций. Это необходимо, потому что компилятору нужна эта информация для
сложные выражения, которые содержат эти системные функции, но не могут запускать sizetf
функции, поскольку у него нет времени выполнения.

Формат таблицы - ASCII, по одной функции в строке. Пустые строки игнорируются, а
строки, начинающиеся с символа '#'являются строками комментариев. Каждая строка без комментариев начинается
с именем функции, затем типом vpi (т.е. vpiSysFuncReal). Следующие типы
при поддержке:

vpiSysFuncReal
Функция возвращает реальное / реальное значение.

vpiSysFuncInt
Функция возвращает целое число.

vpiSysFuncSized
Функция возвращает вектор заданной ширины со знаком или без знака.
согласно флагу.

КОМАНДА FILES


Командный файл позволяет пользователю размещать имена исходных файлов и определенную командную строку.
переключается в текстовый файл, а не в длинную командную строку. Командные файлы могут включать C
или комментарии в стиле C ++, а также # комментарии, если # начинает строку.

файл имя
В качестве имени исходного файла Verilog используется простое имя файла или путь к файлу.
Путь начинается с первого символа, отличного от пробела. Переменные
подставлены в имена файлов.

-c командный файл -f командный файл
A -c or -f token префикс командного файла точно так же, как и в команде
линия. Файл cmdfile может находиться в той же строке или в следующей строке без комментариев.

-y каталог библиотеки
A -y token префикс каталога библиотеки в командном файле точно так же, как и
в командной строке. Параметр для -y флаг может быть на той же строке или
следующая строка без комментариев.

Переменные в каталог библиотеки заменяются.

+ incdir +включенный
Ассоциация + incdir + токен в командных файлах дает каталоги для поиска включаемых файлов
во многом так же, как -I флаги работают в командной строке. Разница в том
это несколько + включил каталоги являются допустимыми параметрами для одного + incdir +
токен, хотя у вас может быть несколько + incdir + линий.

Переменные в включенный заменяются.

+ libext +Ext
Ассоциация + libext токен в командных файлах, пять расширений файлов, которые нужно попробовать при поиске
файл библиотеки. Это полезно в сочетании с -y флаги для перечисления суффиксов, чтобы попробовать
в каждом каталоге перед переходом к следующему каталогу библиотеки.

+ libdir +директория
Это еще один способ указать каталоги библиотеки. Смотрите флаг -y.

+ libdir-nocase +директория
Это как + libdir оператор, но имена файлов внутри объявленных каталогов
здесь нечувствительны к регистру. Отсутствующее имя модуля в поиске не обязательно должно соответствовать
регистр имени файла, если буквы правильные. Например, "foo" соответствует
«Foo.v», но не «bar.v».

+ определить +ИМЯ=ценностное
Ассоциация + определить + токен такой же, как -D параметр в командной строке. Значение
часть токена не является обязательной.

+ шкала времени +ценностное
Ассоциация + шкала времени + токен используется для установки шкалы времени по умолчанию для моделирования.
Это единицы времени и точность до любой директивы timescale или после
Директива resetall. По умолчанию 1 с / 1 с.

+ имя-файла-туппера
Этот токен приводит к тому, что имена файлов после этого в командном файле переводятся в
верхний регистр. Это помогает в ситуациях, когда каталог прошел через DOS.
машина, и в процессе имена файлов меняются.

+ tolower-filename
Это похоже на + имя-файла-туппера взлом описанный выше.

+ целая ширина +ценностное
Это позволяет программисту выбирать ширину для целочисленных переменных в
Источник Verilog. По умолчанию - 32, значение может быть любым желаемым целым числом.

ПЕРЕМЕННЫЕ IN КОМАНДА FILES


В некоторых случаях iverilog поддерживает переменные в командных файлах. Это струны
форма "$ (VarName) "или" $ {VarName}", куда VarName это имя переменной окружения
читать. Вся строка заменяется содержимым этой переменной. Переменные
заменяются только в контекстах, которые явно поддерживают их, включая файл и каталог
строки.

Значения переменных поступают из среды операционной системы, а не из препроцессора.
определяет в другом месте файла или командной строки.

ПРЕДНАЗНАЧЕН МАКРОСЫ


Следующие макросы предопределены компилятором:

__ИКАРУС__ = 1
Это всегда определяется при компиляции с помощью Icarus Verilog.

__ВАМС_ENABLE__ = 1
Это определяется, если включен Verilog-AMS.

ПРИМЕРЫ


В этих примерах предполагается, что у вас есть исходный файл Verilog с именем hello.v в текущем
каталог

Чтобы скомпилировать hello.v в исполняемый файл с именем a.out:

иверилог привет.в

Чтобы скомпилировать hello.v в исполняемый файл с именем hello:

iverilog -o привет привет.v

Чтобы скомпилировать и запустить явно с использованием среды выполнения vvp:

иверилог -ohello.vvp -tvvp hello.v

Используйте iverilog онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

Команды Linux

Ad