sequence中常用的宏方法

uvm_do系列宏:

功能
`uvm_do产生包;随机化,发包
`uvm_do_on在`uvm_do基础上,指定用哪个sequenser发包
`uvm_do_pri在`uvm_do基础上,给产生的transaction包指定优先级
`uvm_do_with在`uvm_do基础上,指定产生包的约束
`uvm_do_on_pri在`uvm_do基础上,指定sequencer和优先级
`uvm_do_on_with在`uvm_do基础上,指定sequencer和产生包的约束
`uvm_do_on_pri_with在`uvm_do基础上,指定sequencer,优先级,和产生包的约束

`uvm_create, `uvm_send,

功能
`uvm_create产生一个transaction的实例
`uvm_send将产生一个transaction的通过start任务发送到sequencer

一般用法:

task body();
    transactoin tr;
	`uvm_create(tr)
	tr.randomize();
	`uvm_send(tr);
endtask:body

`uvm_rand_send

`uvm_rand_send和`uvm_send类似,区别在于`uvm_rand_send会对transaction做随机化,而且使用`uvm_rand_send之前,transaction要先被实例化(通过new或者`uvm_create)

start_item, finish_item

在实例化transaction之后,使用这两个方法发送transaction

tr = new("tr");
start_item(tr);
finish_item(tr);

// 或者
virtual task body();
	repeat (10) begin
		tr = new("tr");
		start_item(tr);
		tr.randomize() with {tr.pload.size == 200;};
		finish_item(tr);
	end
endtask

start_item, finish_item也可以为transaction指定优先级。

		start_item(tr, 100);
		finish_item(tr, 100);
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值