基于UVM的uart串口验证平台(1)

此次系列的博客主要是给uart的接收模块搭建一个简单的uvm验证平台,帮助对UVM方法学的理解与掌握,首先第一部分是编写验证平台的顶层top.sv,该部分包括以下几个部分

  1. 时钟复位信号的产生。
  2. 接口例化,并通过config_db机制将接口set到平台的agent中。
  3. dut例化。
  4. 波形dump。
  5. run_test()调用。

关于uart相关内容在此处不赘述,网上资料很多,大家可以学习。
代码如下

`timescale 1ns/10ps
`include "include/uart_intfs.incl"


module top();
	import uvm_pkg::*;
	bit clk;
	bit rst_n;

	uart_intf uart_if(clk);

	always #10 clk = ~clk;//50MHz
	initial begin
		uvm_config_db #(virtual uart_intf)::set(null,"uvm_test_top.env.in_agent","uart_if",top.uart_if);
		uvm_config_db #(virtual uart_intf)::set(null,"uvm_test_top.env.out_agent","uart_if",top.uart_if);
		$timeformat(-9,3, "ns",12);
		run_test();
	end


	uart_rx uart_rx_u(
		.clk         (clk              ),
		.rst_n       (rst_n            ),
		.uart_rx     (uart_if.dt       ),
		.rx_vld      (uart_if.rx_vld   ),
		.rx_dt       (uart_if.rx_dt    )
    );

	initial begin
	    `ifndef NO_DUMP_FSDB
	        $fsdbAutoSwitchDumpfile(1024,"uart",3);
	        $fsdbDumpvars(0,top,"+all");
	        $fsdbDumpflush();
	    `endif
	end
endmodule

注:这里写的代码都是现场一个字一个字敲得,如果有错误,还请大家帮忙指正出来,谢谢。如果代码编译仿真有问题,可以私聊,有时间可以帮忙调试下。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值