SystemVerilog Testbench Lab1: verification flow

个人认为自学最大的门槛在于:用怎样的形式来输出所学知识,以保证对所学知识的理解是深刻的。我选择写博客来记录自学过程中的疑惑和答案。

SystemVerilog Testbench Lab系列博客将作为我这段时间学习sv的输出,希望能够学会sv在验证中的使用。Synopsys的sv_lab是学习sv的入门资料(EETOP上可以搜到),这一系列的博客都将基于此展开。

了解DUT

创建测试平台之前,阅读rtl代码了解DUT。我觉得验证人员需要关注的是DUT实现了什么功能,不必过分关注实现的细节。
在Synopsys的lab中,DUT是一个路由器,简单而言其功能是:router共有16个输入端口,每个端口可以并行工作,按照destination address、paddings、data的顺序并行地发送数据;router根据路由逻辑,将输入端口的数据送到对应的输出端口。其发送数据与接收数据的时序图分别如下面两张图所示。
input port timing diagram
output port timing diagram

构建SV测试平台

interface

接口模块将test program和dut连接起来,需要定义信号的类型、信号的位宽、信号的方向等。

// interface 
interface router_io(input bit clk);
	// signals type
	logic reset_n;
	logic [15:0] frame_n;
	logic [15:0] valid_n;
	……
	logic [15:0] busy_n;
	// signals direction - synchronous to 'clk'
	clocking cb @(posedge clk);
		output reset_n;
		output frame_n;
		output valid_n;
		……
		input busy_n;
	endclocking:cb
	// signal direction - asynchronous to others
	modport TB(clocking cb, output reset_n)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值