Verilator是一种开源的Verilog/SystemVerilog仿真器,可用于编译代码以及代码在线检查,Verilator能够读取Verilog或者SystemVerilog文件,并进行lint checks(基于lint工具的语法检测),并最终将其转换成C++的源文件.cpp和.h。
Verilator不直接将Verilog HDL转换为C++或者SystemC,反之Verilator将代码编译成更快的优化过的并且支持多线程的模型,该模型被依次包装在(wrapped)在C++/SystemC模型中。这样就生成一个编译的Verilog模型,其功能和Verilog是一致的,但效率由于基于C++即使是单线程模型也可以10倍快于SystemC,100倍快于基于解释Verilog的仿真器,并且通过多线程可以进一步加速。
Verilator的优点:将Verilog/SystemVerilog转换成C++/SystemC,仿真速度快很多,如果有这方面的需求,那Verilator是不错的选择。
本节将先介绍下Verilator的安装以及基本的使用方法,所有操作均在Ubuntu16系统上实现。
![图片[1]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183828209-71708079908.png?v=1708079908)
![图片[2]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183829465-31708079909.png?v=1708079909)
编译前的准备工作:
![图片[3]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183830833-91708079910.png?v=1708079910)
这里选择编译版本v4.210(注:最新版本会报错)
![图片[4]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183830285-41708079910.png?v=1708079910)
配置编译安装:
![图片[5]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183831116-01708079911.png?v=1708079911)
如果成功的话输入:
![图片[6]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183832304-31708079912.png?v=1708079912)
可以看到verilator的版本信息:
![图片[7]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183832223-101708079912.png?v=1708079913)
下面我们看下官方示例,最简单的hello world代码,文件位置在verilator/examples/make_hello_c/下,主要两个文件:
![图片[8]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183834207-01708079914.png?v=1708079915)
sim_main.cpp
![图片[9]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183835527-61708079915.png?v=1708079915)
MakeFile文件:
![图片[10]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183836147-81708079916.png?v=1708079916)
MakeFile中核心的编译语句其实就是执行:
![图片[11]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183838127-61708079918.png?v=1708079918)
直接执行编译:
make
![图片[12]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183839168-11708079919.png?v=1708079919)
安装gtkwave,gtkwave同样是开源的工具其git地址为:https://github.com/gtkwave/gtkwave.git
![图片[13]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183840284-71708079920.png?v=1708079920)
![图片[14]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183840682-101708079920.png?v=1708079920)
![图片[15]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183841573-51708079921.png?v=1708079921)
执行编译:
![图片[16]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183842151-11708079922.png?v=1708079922)
结果如下图:
![图片[17]-开源仿真工具Verilator入门1:安装和测试-Anlogic-安路社区-FPGA CPLD-ChipDebug](//chipdebug.com/wp-content/uploads/2024/02/20240216183843634-51708079923.png?v=1708079923)
没有回复内容