(done) 如何使用 verilator 和 gtkwave 调试电路?

1.首先创建一个文件夹,名为 verilator-demo

bash 复制代码
mkdir verilator-demo

2.接着设计一个电路,名为 ledmodule.v

v 复制代码
module ledmodule(
	output reg led,
	input clk,
	input rst
);

reg [2:0] counter = 3'd0;

always @(posedge clk) begin
	counter <= (counter + 1'd1);
	if(counter >= 3'd2) begin
		led <= 1'd1;
	end else begin
		led <= 1'd0;
	end
	if(rst) begin
		counter <= 3'd0;
		led <= 1'd0;
	end
end

endmodule

3.然后编写测试床,这是 cpp 文件,如下:

cpp 复制代码
#include <stdlib.h>
#include <iostream>
#include <verilated.h>
#include <verilated_vcd_c.h>
#include "obj_dir/Vledmodule.h"

#define MAX_TIME 60
vluint64_t sim_time = 0;

int main(int argc, char **argv, char **env) {
	Vledmodule *dut = new Vledmodule;
	Verilated::traceEverOn(true);
	VerilatedVcdC *m_trace = new VerilatedVcdC;
	dut->trace(m_trace, 5);
	m_trace->open("waveform.vcd");

	while(sim_time < MAX_TIME) {
		dut->clk ^= 1;
		dut->rst = 0;
		dut->eval();
		m_trace->dump(sim_time);
		sim_time++;
	}

	m_trace->close();
	delete dut;
	exit(EXIT_SUCCESS);
}

4接着运行如下命令,生成可执行文件,运行可执行文件产生波形

bash 复制代码
verilator --cc ledmodule.v 
verilator -Wall --trace --exe --build -cc ledmodule.cpp ledmodule.v
./obj_dir/Vledmodule

5.使用 gtkwave 打开波形

bash 复制代码
gtkwave waveform.vcd

6.最后得到的波形如下图

相关推荐
ZPC82104 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82104 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
tiantianuser4 天前
RDMA设计53:构建RoCE v2 高速数据传输系统板级测试平台2
fpga开发·rdma·高速传输·cmac·roce v2
博览鸿蒙4 天前
FPGA 和 IC,哪个前景更好?怎么选?
fpga开发
FPGA_小田老师4 天前
xilinx原语:ISERDESE2原语详解(串并转换器)
fpga开发·iserdese2·原语·串并转换
tiantianuser4 天前
RDMA设计50: 如何验证网络嗅探功能?
网络·fpga开发·rdma·高速传输·cmac·roce v2
Lzy金壳bing4 天前
基于Vivado平台对Xilinx-7K325t FPGA芯片进行程序在线更新升级
fpga开发·vivado·xilinx
unicrom_深圳市由你创科技4 天前
医疗设备专用图像处理板卡定制
图像处理·人工智能·fpga开发
tiantianuser5 天前
RDMA设计52:构建RoCE v2 高速数据传输系统板级测试平台
fpga开发·rdma·高速传输·cmac·roce v2
luoganttcc5 天前
Taalas 将人工智能模型蚀刻到晶体管上,以提升推理能力
人工智能·fpga开发