Verilator 是一个高性能 Verilog HDL 模拟器与 lint 系统,用户编写一个小的 C++/SystemC 封装文件,该文件实例化用户顶层模块的“Verilate 化”模型。然后,这些 C++/SystemC 文件由 C++ 编译器(gcc/clang/MSVC++)进行编译,最终生成的可执行文件执行设计模拟。
Verilator 不会简单地将 Verilog HDL 转换为 C++ 或 SystemC。Verilator 不仅可以翻译,还可以将代码编译为速度更快的优化与可选的线程分区模型,同时这些模型封装在 C++/SystemC/Python 模块中。
经过编译的 Verilog 模型,即使在单线程上执行的速度也比独立 SystemC 快 10 倍以上,并且在单线程上的执行速度比诸如 Icarus Verilog 之类的解释 Verilog 模拟器快 100 倍。多线程可能还会使速度提高 2-10 倍(在解释型模拟器上总共可以提高 200-1000 倍)。