System Verilog随机约束

目录

随机约束与分布

声明随机变量的类

约束块

数组约束


随机约束与分布

随机测试可以找到未知缺陷、减少代码量;

约束使随机自由是一种合法的随机,即限定激励的合法范围;

随机分布:器件配置、环境配置、原始输入配置、延时、协议异常

注意:随机发生在仿真阶段


声明随机变量的类

第一步声明含关键词rand、randc和constrait的类,第二步例化并在initial中使用:句柄.randomize

class Packet;
	rand bit[31:0] src,dst,data[8];
	randc bit [7:0] kind;
	constraint c {src>10;
					src<15;}//声明性质的代码
endclass

Packet p;
initial begin
		p=new();
		assert(p.randomize());//使用断言检查randomize结果
		else $fatal(0,"Packet::randomize failed");
		transmit(p);
end

约束块

形式:constraint+约束块名称,

randomize() with { }增加额外约束;关闭所有约束块P.constraint_mode(0),打开c_short约束块P.c_short.constraint_mode(1);pre_randomize()和post_randomize()是在randomize()之前或之后执行的操作;randomize(low)则只随机化low成员(无论low是否加关键词rand声明)

约束块中的部分关键词:dist、inside、->、if...else...

///////////dist应用
cons
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值