(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.最后得到的波形如下图

相关推荐
minglie113 小时前
j2b描述smp协议
fpga开发
FPGA开源工坊17 小时前
FPGA开发技巧–BRAM资源优化
fpga开发
泛联新安1 天前
InfinitPro多FPGA原型验证系统|提升芯片设计验证效率10-100倍
fpga开发
hahaha60162 天前
HLS高层次综合设计技巧--数组
开发语言·嵌入式硬件·算法·fpga开发
NamoAmitabha1282 天前
直接上手 UVM 例子
fpga开发
cmc10282 天前
301.modelsim自动仿真
fpga开发
Riwuarua3 天前
从近似0基础开始FPGA开发 -- part.10 verilog-ethernet开源UDP协议栈工程学习
fpga开发·udp·开源
my_daling3 天前
紫光FPGA远程升级注意事项(关于GTP_CFGCLK原语使用问题)
笔记·学习·fpga开发
Riwuarua4 天前
从近似0基础开始FPGA开发 -- part.11 AXI总线协议与工程应用
fpga开发
自小吃多4 天前
高云 FPGA 添加时序约束笔记
笔记·fpga开发