rtl仿真器-verilator安装和测试

本文介绍了如何在Ubuntu上安装开源软件Verilator,包括通过命令行安装、编译源码以及安装GTKWave用于查看波形。详细步骤包括使用apt-get安装依赖,从GitHub克隆Verilator源码,编译并进行功能测试。测试用例包括一个简单的adder模块和对应的sim_main.cpp文件,最后通过verilator编译命令和GTKWave查看仿真结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

安装

查看官网安装说明页
https://verilator.org/guide/latest/install.html
1.ubuntu 源已经加好了,直接用命令安装
在这里插入图片描述2. 编译源码安装:
sudo apt-get install git perl python3 make autoconf g++ flex bison ccache
sudo apt-get install libgoogle-perftools-dev numactl perl-doc
sudo apt-get install libfl2 # Ubuntu only (ignore if gives error)
sudo apt-get install libfl-dev # Ubuntu only (ignore if gives error)
sudo apt-get install zlibc zlib1g zlib1g-dev # Ubuntu only (ignore if gives error)

git clone https://github.com/verilator/verilator # Only first time

unset VERILATOR_ROOT # For bash

cd verilator
autoconf
./configure
make -j nproc # Build Verilator itself (if error, try just ‘make’,或者手动填cpu 核数-1)
sudo make install
安装GTKWave 看波形
sudo apt install gtkwave
= 功能测试用例
rtl
adder.v

module adder (
input a,b,
output [1:0] sum
);
assign sum=a+b;
endmodule
测试用例
sim_main.cpp

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

#include “Vadder.h” //adder.v会被编译成Vadder.h
#include “verilated.h”

#include “verilated_vcd_c.h” //可选,如果要导出vcd则需要加上

int main(int argc, char** argv) {
VerilatedContext* contextp = new VerilatedContext;
contextp->commandArgs(argc, argv);
Vadder* adder = new Vadder{contextp};

VerilatedVcdC* tfp = new VerilatedVcdC; //初始化VCD对象指针
contextp->traceEverOn(true); //打开追踪功能
adder->trace(tfp, 0); //
tfp->open("wave.vcd"); //设置输出的文件wave.vcd

int i=20;
while (!contextp->gotFinish() && i>=0) {
    int a = rand() & 1;
    int b = rand() & 1;
    adder->a = a;
    adder->b = b;
    adder->eval();
    printf("a = %d, b = %d, sum = %d\n", a, b, adder->sum);

    tfp->dump(contextp->time()); //dump wave
    contextp->timeInc(1); //推动仿真时间

    assert(adder->sum == a + b);

    i--;
}
delete adder;
tfp->close();
delete contextp;
return 0;

}

== 编译命令
verilator -Wall adder.v sim_main.cpp --cc --trace --exe --build

== 仿真
cd obj_dir
./Vadder

== 看波形
gtkwave wave.vcd在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值