Verilator命令行选项汇总-ysyx

Verilator命令行选项中文汇总

作者:SZTU-桦林子
本文旨在学习使用markdown以及HTML(HyperText Markup Language,超文本标记语言)记录Verilator的命令行选项的中文汇总,方便后续学习。

选项介绍中文速览

<file.v>                    Verilog包、模块和顶层模块文件名
<file.c/cc/cpp>             可选需要编译的C++文件
<file.a/o/so>               可选需要链接的C++文件

 +1364-1995ext+<ext>        使用Verilog 1995标准并指定文件扩展名<ext>
 +1364-2001ext+<ext>        使用Verilog 2001标准并指定文件扩展名<ext>
 +1364-2005ext+<ext>        使用Verilog 2005标准并指定文件扩展名<ext>
 +1800-2005ext+<ext>        使用SystemVerilog 2005标准并指定文件扩展名<ext>
 +1800-2009ext+<ext>        使用SystemVerilog 2009标准并指定文件扩展名<ext>
 +1800-2012ext+<ext>        使用SystemVerilog 2012标准并指定文件扩展名<ext>
 +1800-2017ext+<ext>        使用SystemVerilog 2017标准并指定文件扩展名<ext>
 +1800-2023ext+<ext>        使用SystemVerilog 2023标准并指定文件扩展名<ext>
--assert                    启用所有断言
--assert-case               启用unique/unique0/priority case相关检查
--autoflush                 在所有$display后自动刷新流
--bbox-sys                  将未知$system调用模块黑盒化
--bbox-unsup                将不支持的语言特性模块黑盒化
--binary                    生成模型二进制文件
--build                     Verilation后编译生成可执行文件/库
--build-dep-bin <filename>  覆盖构建依赖的Verilator二进制文件
--build-jobs <jobs>         --build的并行任务数
--cc                        生成C++输出
 -CFLAGS <flags>            Makefile中C++编译器的参数
--clk <signal-name>         将指定信号标记为时钟
--no-clk <signal-name>      阻止将指定信号标记为时钟
--compiler <compiler-name>  针对指定C++编译器优化
--compiler-include          在预编译头文件中包含额外头文件
--converge-limit <loops>    调整收敛循环次数限制
--coverage                  启用所有覆盖率检测
--coverage-line             启用行覆盖率
--coverage-max-width <width>   覆盖率的数组最大深度
--coverage-toggle           启用翻转覆盖率
--coverage-underscore       启用下划线信号的覆盖率
--coverage-user             启用SVL用户自定义覆盖率
 -D<var>[=<value>]          设置预处理器宏定义
--debug                     启用调试模式
--debug-check               启用调试断言
--no-debug-leak             在调试模式下禁用内存泄漏检测
--debugi <level>            启用指定级别的调试
--debugi-<srcfile> <level>  对指定源文件启用调试级别
--decorations <level>       设置输出注释和缩进级别
--no-decoration             禁用注释并降低缩进级别
--default-language <lang>   设置默认解析语言
 +define+<var>=<value>      设置预处理器宏定义
--dpi-hdr-only              仅生成DPI头文件
--dump-defines              使用-E时显示预处理器宏定义
--dump-dfg                  启用DfgGraph到.dot文件的导出
--dump-graph                启用V3Graph到.dot文件的导出
--dump-tree                 启用AST树.tree文件导出
--dump-tree-addrids         使用短标识符代替地址
--dump-tree-dot             启用AST树.tree.dot调试文件导出
--dump-tree-json            启用AST树.tree.json文件和.tree.meta.json文件导出
--dump-<srcfile>            启用指定源文件的所有导出
--dumpi-dfg <level>         按级别导出DfgGraph到.dot文件
--dumpi-graph <level>       按级别导出V3Graph到.dot文件
--dumpi-tree <level>        按级别导出AST树.tree文件
--dumpi-tree-json <level>   按级别导出AST树.tree.json文件
--dumpi-<srcfile> <level>   按级别导出指定源文件的所有内容
 -E                         仅进行预处理,不编译
--emit-accessors            生成模型顶层类的getter/setter方法
--error-limit <value>       达到指定错误数量后中止
--exe                       链接生成可执行文件
--expand-limit <value>      设置展开优化限制
 -F <file>                  从文件读取参数(相对路径)
 -f <file>                  从文件读取参数
 -FI <file>                 强制包含文件
--flatten                   强制内联所有模块、任务和函数
--future0 <option>          为兼容性忽略某个选项
--future1 <option>          为兼容性忽略带参数的选项
 -fno-<optimization>        禁用内部优化阶段
 -G<name>=<value>           覆盖顶层参数
--gate-stmts <value>        调整门级优化深度
--gdb                       在GDB交互模式下运行Verilator
--gdbbt                     在GDB中运行Verilator获取堆栈跟踪
--generate-key              为--protect-key生成随机密钥
--getenv <var>              获取带默认值的环境变量
--get-supported <feature>   检查是否支持某个功能
--help                      显示帮助信息
--hierarchical              启用层次化Verilation
--hierarchical-params-file <name>  指定层次块参数文件(内部选项)
 -I<dir>                    头文件搜索目录
--if-depth <value>          调整IFDEPTH警告阈值
 +incdir+<dir>              包含文件搜索目录
--inline-mult <value>       调整模块内联参数
--instr-count-dpi <value>   假设DPI导入的动态指令数
 -j <jobs>                  --build-jobs/--verilate-jobs的并行任务数
--l2-name <value>           顶层模块的Verilog作用域名称
--language <lang>           设置默认解析语言标准
 -LDFLAGS <flags>           Makefile中链接器的预对象参数
--lib-create <name>         创建DPI库
 +libext+<ext>+[ext]...     模块文件扩展名列表
--lint-only                 仅进行代码检查,不生成输出
--localize-max-size <value> 调整localize优化的变量大小
--make <build-tool>         为指定构建工具生成脚本
 -MAKEFLAGS <flags>         传递给make的参数(--build时使用)
--main                      生成C++ main()文件
--main-top-name             指定生成的C++ main中传递给Verilated模型的顶层名称
--max-num-width <value>     最大数值位宽(默认64K)
--Mdir <directory>          输出目录名称
--MMD                       生成.d依赖文件
--mod-prefix <topname>      底层类名前缀
--MP                        生成伪依赖目标
 +notimingchecks            忽略时序检查
 -O0                        禁用优化
 -O3                        高性能优化
 -O<optimization-letter>    选择性优化
 -o <executable>            最终可执行文件名称
--output-groups <numfiles>  将.cpp文件分组为更大的文件
--output-split <statements>          分割.cpp文件
--output-split-cfuncs <statements>   分割模型函数
--output-split-ctrace <statements>   分割追踪函数
 -P                         使用-E时去除行号和空行
--pins-bv <bits>            指定顶层端口类型为位向量
--pins-inout-enables        为inout端口生成__en和__out信号
--pins-sc-biguint           指定顶层端口为SystemC大无符号类型
--pins-sc-uint              指定顶层端口为SystemC无符号类型
--pins-sc-uint-bool         指定顶层端口为SystemC无符号+布尔类型
--pins-uint8                指定顶层端口为uint8类型
--no-pins64                 禁用对33-64位信号使用uint64_t
--pipe-filter <command>     通过脚本过滤所有输入
--pp-comments               使用-E时显示预处理器注释
--prefix <topname>          顶层类名称
--private                   调试选项(详见文档)
--prof-c                    使用性能分析编译C++代码
--prof-cfuncs               为性能分析命名函数
--prof-exec                 生成执行性能分析(甘特图)
--prof-pgo                  生成PGO性能分析数据
--protect-ids               哈希处理标识符名称(混淆)
--protect-key <key>         符号保护密钥
--protect-lib <name>        创建受保护的DPI库
--public                    将信号标记为public(详见文档)
--public-depth <level>      标记到指定模块深度的public
--public-params             将所有参数标记为public_flat
--public-flat-rw            将所有变量等标记为public_flat_rw
 -pvalue+<name>=<value>     覆盖顶层参数
--quiet                     最小化附加输出
--quiet-exit                失败时不显示命令
--quiet-stats               不显示统计信息
--relative-includes         根据当前文件解析包含路径
--reloop-limit              形成循环的最小迭代次数
--report-unoptflat          提供UNOPTFLAT额外诊断
--rr                        使用rr记录Verilator运行
--runtime-debug             启用模型运行时调试
--savable                   启用模型保存/恢复功能
--sc                        生成SystemC输出
--no-skip-identical         禁用跳过相同输出
--stats                     生成统计文件
--stats-vars                提供变量统计信息
--no-std                    不加载标准文件
--no-std-package            不解析标准package
--no-std-waiver             不解析标准lint豁免
--no-stop-fail              断言失败时不调用$stop
--structs-packed            将所有非压缩结构转为压缩结构
 -sv                        启用SystemVerilog解析
 +systemverilogext+<ext>    同+1800-2023ext+<ext>
--threads <threads>         启用多线程
--threads-dpi <mode>        启用多线程DPI
--threads-max-mtasks <mtasks>  调整最大mtask分区
--timing                    启用时序支持
--no-timing                 禁用时序支持
--timescale <timescale>     设置默认时间单位
--timescale-override <timescale>  覆盖所有时间单位
--top <topname>             --top-module的别名
--top-module <topname>      指定顶层模块名称
--trace                     启用波形生成
--trace-coverage            启用覆盖率追踪
--trace-depth <levels>      追踪深度
--trace-fst                 启用FST波形格式
--trace-max-array <depth>   波形追踪的最大数组深度
--trace-max-width <width>   波形追踪的最大位宽
--trace-params              启用参数追踪
--trace-structs             启用结构体名称追踪
--trace-threads <threads>   在独立线程中生成FST波形
--no-trace-top              不追踪Verilator生成的顶层模块信号
--trace-underscore          启用下划线信号追踪
 -U<var>                    取消预处理器宏定义
--no-unlimited-stack        不解除栈大小限制
--unroll-count <loops>      调整循环展开次数
--unroll-stmts <stmts>      调整循环体展开大小
--unused-regexp <regexp>    调整UNUSED lint信号的正则表达式
 -V                         显示详细版本信息
 -v <filename>              Verilog库文件
--valgrind                  在valgrind下运行Verilator
--verilate-jobs             Verilation阶段的并行任务数
--no-verilate               跳过Verilation,仅编译已Verilated的代码
 +verilog1995ext+<ext>      同+1364-1995ext+<ext>
 +verilog2001ext+<ext>      同+1364-2001ext+<ext>
--version                   显示版本信息
--vpi                       启用VPI编译
--waiver-multiline          生成多行豁免匹配
--waiver-output <filename>  基于lint警告生成豁免文件
 -Wall                      启用所有风格警告
 -Werror-<message>          将指定警告转为错误
 -Wfuture-<message>         禁用未知消息警告
 -Wno-<message>             禁用指定警告
 -Wno-context               禁用警告中的源码上下文
 -Wno-fatal                 禁用警告导致致命错误
 -Wno-lint                  禁用所有lint警告
 -Wno-style                 禁用所有风格警告
 -Wpedantic                 严格合规性警告
 -Wwarn-<message>           启用指定警告
 -Wwarn-lint                启用所有lint警告
 -Wwarn-style               启用所有风格警告
--x-assign <mode>           非初始X赋值模式
--x-initial <mode>          初始X赋值模式
--x-initial-edge            启用X->0和X->1的初始边沿触发
--no-json-edit-nums         .tree.json中不输出editNum
--no-json-ids               .tree.json中不使用短标识符代替地址/路径
--json-only                 仅生成JSON解析输出(.tree.json和.meta.json)
--json-only-output          指定.tree.json输出文件名
--json-only-meta-output     指定.tree.meta.json输出文件名
--xml-only                  仅生成XML解析输出
--xml-output                指定XML输出文件名
 -y <dir>                   模块搜索目录

题外话

推荐同学们有兴趣可以了解一下UML(Unified Modeling Language, 统一建模语言)、HTML(HyperText Markup Language,超文本标记语言)、面向对象的设计方法,结合以“流”的概念(业务流、工作流、数据流、信息流),可以帮助自己进行电路设计,并且这些办法是通用的,可以运用在很多方面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值