英语法语西班牙语

Ad


OnWorks 网站图标

iverilog - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 iverilog

这是 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 模拟器,因为它是一个
包含文件名的文件,而不是在命令行中获取它们。 看
命令 联络一位教师

-D 定义宏 以字符串“1”作为其定义。 这种形式通常是
仅用于触发 Verilog 源代码中的 ifdef 条件。

-D宏=定义
定义宏 as 定义.

-d姓名 激活一类编译器调试消息。 这 -d 开关可以用作
通常根据需要激活所有所需的消息。 支持的名称是
scopes、eval_tree、examin 和 synth2; 任何其他名称都将被忽略。

-E 预处理 Verilog 源代码,但不要编译它。 输出文件是
Verilog 输入,但扩展和删除了文件包含和宏引用。
这很有用,例如,预处理 Verilog 源以供其他人使用
编译器。

-g1995|-g2001|-g2001-noconfig|-g2005
选择 Verilog 语言 在编译器中支持。 这选
之间 IEEE1364-1995, IEEE1364-2001IEEE1364-2005. 通常,Icarus Verilog
默认为最新的已知语言版本。 这个标志最有用
将语言限制为特定世代工具支持的集合,例如
与其他工具的兼容性。

-gverilog-ams|-gno-verilog-ams
启用或禁用(默认)对 Verilog-AMS 的支持。 很少的 Verilog-AMS
当前支持特定功能。

-g指定|-gno-指定
启用或禁用(默认)指定块支持。 启用时,指定块
代码详述。 禁用时,指定块被解析但被忽略。 指定
RTL 模拟通常不需要块,实际上可能会造成伤害
模拟的性能。 但是,禁用指定块会降低准确性
全时模拟。

-gstd-包括|-gno-std-包括
启用(默认)或禁用搜索标准安装包括
在所有其他显式包含目录之后的目录。 该标准包括
目录是安装 Verilog 标准头文件的方便位置
程序可能包括。

-相对包括|-gno-relative-包括
启用或禁用(默认)将本地文件目录添加到开头
包含文件搜索路径。 这允许文件相对于
当前文件不是更常见的文件仅在工作目录中找到或
在指定的包含文件搜索路径中。

-gx类型|-gno-xtypes
启用(默认)或禁用对扩展类型的支持。 启用扩展类型
允许 Icarus Verilog 支持的新类型作为超出
基准 Verilog。 如果编译代码,可能需要禁用扩展类型
这与用于实现类型系统的少数新关键字相冲突。

-gio范围错误|-gno-io-范围错误
标准要求向量端口具有与其端口匹配的范围
声明以及任何网络/寄存器声明。 这是当时的普遍做法
过去只指定网络/寄存器声明和一些工具的范围
仍然允许这样做。 默认情况下,任何不匹配都会报告为错误。 使用
-gno-io-范围错误 将产生警告而不是案例的致命错误
向量网络/寄存器和标量端口声明。

-gstrict-ca-评估|-gno-严格-ca-评估
该标准要求,如果连续赋值表达式的任何输入
值改变,整个表达式被重新计算。 默认情况下,部分
不依赖于更改的输入值的表达式不会重新计算。
如果表达式包含对不完全依赖于它的函数的调用
输入值或有副作用,结果行为将不同于
标准所要求的。 使用 -gstrict-ca-评估 将强制标准
合规行为(性能有所损失)。

-I包括
追加目录 包括 搜索 Verilog 的目录列表包括
文件。 的 -I 可以多次使用 switch 来指定几个目录
search,按照目录在命令行中出现的顺序进行搜索。

-M 将一个文件列表写入路径指定的文件中
设计的汇编。 这包括被 include 包含的文件
由库支持自动加载的指令和文件。 输出
是每行一个文件名,没有前导或尾随空格。

-m模块
将此模块添加到要由模拟加载的 VPI 模块列表中。 许多
可以指定模块,并且将按照指定的顺序加载所有模块。 这
system 模块是隐式的并且始终包含在内。 如果一个系统函数表文件
( .sft) 存在于将自动加载的模块中。

-N 这用于正确调试编译器。 转储最终的网表形式
设计到指定的文件。 否则不影响操作
编译器。 转储发生在详细设计和优化设计之后。

-o 文件名
将输出放在文件中 文件名. 如果没有指定输出文件名, 伊维洛格
使用默认名称 .

-p标志=值
为目标特定标志分配一个值。 这 -p 开关可以经常使用
必须指定所有所需的标志。 使用的标志取决于
选定的目标,并在目标特定的文档中进行了描述。 旗帜
未使用的将被忽略。

-S 合成。 通常,如果目标可以接受行为描述
编译器将以行为形式离开进程。 这 -S 开关导致
即使目标不需要,编译器也可以执行综合。 如果
目标类型是网表格式, -S switch 是不必要的,没有效果。

-s 顶部模块
指定要详细说明的顶级模块。 Icarus Verilog 将默认选择
未在任何其他模块中实例化的模块,但有时并非如此
足够,或者实例化太多模块。 如果用户指定一个或多个
根模块 -s 标志,那么它们将被用作根模块。

-T最小值|典型值|最大值
使用此开关从 min:typ:max 表达式中选择 min、typ 或 max 时间。
通常,编译器将简单地使用这些表达式中的 typ 值
(为它找到的前十个打印警告)但是这个开关会告诉
编译器明确使用哪个值。 这将抑制警告
编译器正在做出选择。

-t目标
使用此开关指定目标输出格式。 见 目标 以下部分
获取有效输出格式的列表。

-v 打开详细消息。 这将打印执行到的命令行
执行实际编译,以及来自不同版本的版本信息
组件,以及整个产品的版本。 你会注意到
命令行包括对通过的关键临时文件的引用
正确的编译器信息。 为了防止该文件被删除
过程结束,在环境变量中提供您自己的文件名
IVERILOG_图标.

-V 打印编译器的版本,然后退出。

-W 打开不同类别的警告。 见 警告 类型 以下部分为
不同警告组的描述。 如果多个 -W 使用开关,
警告集是所有请求类的联合。

-y库目录
将目录附加到库模块搜索路径。 当编译器发现一个
未定义的模块,它会在这些目录中查找具有正确名称的文件。

-Y后缀
将后缀添加到搜索文件时使用的已接受文件名后缀列表中
细胞库。 该列表默认为单个条目 .v.

模块 图书馆


Icarus Verilog 编译器支持模块库作为包含 Verilog 的目录
源文件。 在细化过程中,编译器注意到 undefined 的实例化
模块类型。 如果用户指定库搜索目录,编译器将搜索
具有缺失模块类型名称的文件的目录。 如果找到这样的文件,
它将它作为 Verilog 源文件加载,他们再次尝试详细说明模块。

库模块文件应该只包含一个模块,但这不是必需的。
库模块可以引用库中或主设计中的其他模块。

目标


Icarus Verilog 编译器支持各种目标,用于不同的目的,并且
-t 开关用于选择所需的目标。

空目标不会导致生成任何代码。 它有助于检查
Verilog 源代码的语法。

副总裁 这是默认设置。 vvp 目标为 vvp 运行时生成代码。 输出
是一个完整的程序,可以模拟设计,但必须由设计人员运行 副总裁
命令。

FPGA 这是一个支持多种fpga设备的综合目标,主要是EDIF
格式输出。 Icarus Verilog fpga 代码生成器可以生成完整的
设计或 EDIF 宏,这些宏又可以由其他人导入到更大的设计中
工具。 这 FPGA 目标意味着综合 -S 旗。

视频文件 该目标生成 Verilog 网表的 VHDL 转换。 输出是一个
包含与 Verilog 中模块相对应的 VHDL 实体的单个文件
源代码。 请注意,仅支持 Verilog 语言的一个子集。 看
维基了解更多信息。

警告 类型


这些是可以由系统选择的警告类型 -W 转变。 所有的警告
类型(除了 所有) 也可以以 NO- 关闭该警告。 这是
之后最有用 -墙 抑制孤立警告类型的参数。

所有 这将启用隐式、端口绑定、选择范围、时间刻度和
敏感性-整个阵列警告类别。

含蓄
这启用了创建隐式声明的警告。 例如,如果一个
使用标量线 X 但未在 Verilog 源中声明,这将打印一个
首次使用时发出警告。

端口绑定
这将为未连接的模块实例化端口启用警告
但应该是。 例如,悬空输入端口将生成一个
警告。

选择范围
这将启用对不断越界选择的警告。 这包括部分或
完全越界选择以及包含 'bx 或 'bz 的选择
指数。

时间表
这会针对 timescale 指令的不一致使用发出警告。 它检测
如果某些模块没有时间刻度,或者模块从另一个模块继承时间刻度
文件。 两者都可能意味着时间尺度不一致,并且模拟时间
可能会令人困惑并依赖于编译顺序。

涌入 这为可能具有运行时无限循环的 always 语句启用警告
(具有无延迟或零延迟的路径)。 此类警告不包括在 -墙
因此没有 NO- 变体。 致命错误消息将始终是
当编译器可以确定肯定会有无穷大时打印
循环(所有路径都没有延迟或零延迟)。

当您怀疑 Always 语句产生运行时无限循环时,请使用此
标志以查找需要验证其逻辑的 always 语句。 这是
预计许多警告将是误报,因为代码处理
所有变量和信号的值都是不确定的。

灵敏度-全矢量
这会在“always @*”语句中选择部件时发出警告
导致整个向量被添加到隐式敏感度列表中。
尽管 IEEE 标准规定了这种行为,但它并不是
如果向量很大,可能会影响性能。

灵敏度全阵列
这会在“always @*”语句中选择单词时发出警告
结果将整个数组添加到隐式敏感度列表中。 虽然
这种行为是由 IEEE 标准规定的,它不是什么可能的
如果数组很大,则可能会影响性能。

系统 功能 FILES


如果源文件名作为 .sft 后缀,则取为系统函数表
文件。 系统函数表文件用于向编译器描述返回类型
用于系统功能。 这是必要的,因为编译器需要这些信息来
包含这些系统函数的复杂表达式,但不能运行 sizetf
函数,因为它没有运行时。

该表的格式为 ASCII,每行一个函数。 空行被忽略,并且
以 ' 开头的行#' 字符是注释行。 每个非注释行开始
与函数名称,然后是 vpi 类型(即 vpiSysFuncReal)。 以下类型是
支持:

vpiSysFuncReal
该函数返回一个实时/实时值。

vpiSysFuncInt
该函数返回一个整数。

vpiSysFuncSized 大小
该函数返回一个具有给定宽度的向量,并且是有符号或无符号的
根据国旗。

指挥 FILES


命令文件允许用户放置源文件名和某些命令行
切换到文本文件而不是长命令行。 命令文件可以包含 C
或 C++ 风格的注释,以及 # 注释,如果 # 开始行。

文件 姓名
一个简单的文件名或文件路径被视为 Verilog 源文件的名称。
路径以第一个非空白字符开始。 变量是
替换为文件名。

-c cmd文件 -f cmd文件
A -c or -f 令牌作为命令文件的前缀,就像它在命令上所做的一样
线。 cmdfile 可能位于同一行或下一个非注释行。

-y 库目录
A -y 令牌在命令文件中作为库目录的前缀,就像它一样
在命令行上。 参数为 -y 标志可能在同一行或
下一个非注释行。

中的变量 库目录 被取代。

+目录+包括
+目录+ 命令文件中的令牌提供了搜索包含文件的目录
以同样的方式 -I 标志在命令行上工作。 区别在于
那多个 +包含目录 目录是单个的有效参数 +目录+
令牌,虽然你也可能有多个 +目录+ 线。

中的变量 包括 被取代。

+libext+分机
+libext 命令文件中的令牌 XNUMX 个文件扩展名在查找时尝试
库文件。 这在结合使用时很有用 -y 列出要尝试的后缀的标志
在移动到下一个库目录之前,在每个目录中。

+库目录+DIR
这是另一种指定库目录的方法。 请参阅 -y 标志。

+libdir-nocase+DIR
这就像 +库目录 声明,但声明的目录中的文件名
这里不区分大小写。 查找中缺少的模块名称不需要与
文件名大小写,只要字母正确。 例如,“foo”匹配
“Foo.v”而不是“bar.v”。

+定义+您的姓名=折扣值
+定义+ 令牌与 -D 命令行选项。 价值
令牌的一部分是可选的。

+时间刻度+折扣值
+时间刻度+ token 用于设置模拟的默认时间刻度。
这是任何`timescale 指令之前或之后的时间单位和精度
`重置指令。 默认值为 1s/1s。

+toupper-文件名
此标记导致命令文件中此后的文件名被转换为
大写。 这有助于解决目录已通过 DOS 的情况
机器,并在此过程中文件名被修改。

+tolower-文件名
这类似于 +toupper-文件名 上面描述的黑客。

+整数宽度+折扣值
这允许程序员选择整数变量的宽度
Verilog 源。 默认值为 32,该值可以是任何所需的整数值。

变数 IN 指挥 FILES


在某些情况下,iverilog 支持命令文件中的变量。 这些是字符串
形式 "$(变量名)”或“${变量名}“, 在哪里 变量名 是环境变量的名称
阅读。 整个字符串将替换为该变量的内容。 变量是
仅在明确支持它们的上下文中替换,包括文件和目录
字符串。

变量值来自操作系统环境,而不是来自预处理器
在文件或命令行的其他地方定义。

预定义


以下宏由编译器预定义:

__伊卡洛斯__ = 1
这总是在使用 Icarus Verilog 编译时定义。

__VAMS_启用__ = 1
这是在启用 Verilog-AMS 时定义的。

示例


这些示例假设您在当前目录中有一个名为 hello.v 的 Verilog 源文件
目录

要将 hello.v 编译为名为 a.out 的可执行文件:

iverilog hello.v

将 hello.v 编译为名为 hello 的可执行文件:

iverilog -o 你好你好.v

要使用 vvp 运行时显式编译和运行:

iverilog -ohello.vvp -tvvp hello.v

使用 onworks.net 服务在线使用 iverilog


免费服务器和工作站

下载 Windows 和 Linux 应用程序

Linux 命令

Ad