教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 建筑文档 >

systemverilog验证学习笔记(3)

来源:网络收集 时间:2026-03-30
导读: 记分板 保存期望事务,找出测试平台接收到的实际事务相匹配的期望事务。 Class scorebroad; Transaction scb[$]; Function void save_expect(transaction tr); Scb.push_back(tr); Endfunction Function void compa

记分板

保存期望事务,找出测试平台接收到的实际事务相匹配的期望事务。 Class scorebroad; Transaction scb[$];

Function void save_expect(transaction tr); Scb.push_back(tr); Endfunction

Function void compare_actual(transation tr); Int b[$];

B=scb.find_index(x) with (x.src=tr.src); Case(b.size())

0:$display(“no match find”); 1:scb.delete(q[0]); Default:

$display(“error,multiple matches found”); Endcase

Endfunction: compare_actual Endclass

功能覆盖率

Program automatic test(busifc.TB.ifc); Class transaction;

Rand bit[31:0]data; Rand bit[2:0]port; Endclass

Covergroup covport; Coverpoint tr.port; Endgroup Initial begin Transaction tr; Covport ck; Tr=new(); Ck=new();

Repeat(32)begin

Assert(tr.randomize); Ifc.cb.port<=tr.port;

Ck.sample(); //收集覆盖率,触发覆盖组 @ifc.cb; End End Endprogram

Auto_bin_max指明了自动创建仓的最大值

Covergroup CovPort; Option. Auto_bin_max=2; Coverpoint tr.port; Endgroup 分成两个仓 bit[2:0]port

auto[0:3]auto[4:7]两个仓 仓

Covergroup Covport; Kind: Coverpoint tr.kind; { bins zero={0};

Bins lo={[1:3],5}; //1:3和5是一个仓

Bins hi[]={8:$}; //8到最大值15,8个独立的仓,hi_0,hi_1…….. Bins misc=deflaut; //一个仓代表剩余的值

Bins t1=(1,2=>3,4); //翻转覆盖率,表示自重翻转过程 Ignore_bins h2={[6,7]}; //被忽略的仓

Illegal_bins h3={[6,7]}; //非法的仓,出现会报错 }

Port:coverpoint tr.port;

Cross kind,port; //交叉覆盖率 Endgroup

测试 发生器 代理 驱动器 计分板 断言 检测器 功 能 覆 盖 监视器 率 待测设计

发生器

Class generation

UNI_cell blueprint;//定义的需要测试的对象的蓝图,可以通过修改起约束或者扩展替换他 mailbox gen2drv; //信箱

event drv2gen; //drive 完成时的事件 int ncells; …………

Function new(Input mailbox gen2drv, Input event drv2gen,

………. )

This.gen2drv=gen2drv; This.drv2gen=drv2gen; This.ncell=ncell; ………………. Blueprint=new(); Endfunction:new Task run(); UNI_cell cell; Repeat(ncells)begin

Assert(blueprint.randomize());

$cast(cell,blueprint.copy()); Gen2drv.put(cell); @drv2gen; end Endtask:run Endclass:generation

驱动类

Typedef class Drive_cbs; Class drive Mailbox gen2drv; Event drv2gen;

//基类句柄指向拓展对象 //事务放进信箱发送给驱动器

systemverilog验证学习笔记(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/438758.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)