定宽数组的随机约束

已知uvm_sequence_item中,存在随机定宽数组rand int array_a5

  1. 如何对其定义constraint约束?

  2. 如何对其进行`uvm_do_on约束?

  3. 在uvm_sequence_item中定义constraint

    class my_item extends uvm_sequence_item;
    rand int array_a[5];

    // 方法1: foreach循环约束
    constraint array_c1 {在这里插入代码片
    foreach(array_a[i]) {
    array_a[i] inside {[0:100]};
    }
    }

    // 方法2: 元素间关系约束
    constraint array_c2 {
    array_a[0] < array_a[4];
    array_a.sum() == 200;
    }
    endclass

  4. 在uvm_do_with中约束

    class my_sequence extends uvm_sequence#(my_item);
    task body();
    // 使用foreach
    `uvm_do_with(req, {
    foreach(array_a[i]) {
    array_a[i] inside {[10:50]};
    }
    })

    复制代码
     // 指定具体元素
     `uvm_do_with(req, {
       array_a[0] == 1;
       array_a[1] == 2;
       array_a[2] == 3;
       array_a[3] == 4;
       array_a[4] == 5;
     })

    endtask
    endclass

Note:`uvm_do_with(req,{array_a == '{1,2,3,4,5};})报错

相关推荐
NamoAmitabha12818 小时前
class基础+继承的专项训练
systemverilog
NamoAmitabha12821 小时前
rand/randc/constraint 练习
systemverilog
Salt & Light23 天前
UVM 字段自动化 Field Automation:让打印、复制、比较自动化
学习·systemverilog·uvm
北方孤寂的灵魂2 个月前
关于AXI协议详解
verilog·systemverilog·sv·数字验证
Salt & Light2 个月前
SV基础之连接设计和测试平台
systemverilog
fei_sun3 个月前
【SystemVerilog】连接设计和测试平台(待补充)
systemverilog
fei_sun3 个月前
【SystemVerilog验证】数据类型(待补充)
数据结构·systemverilog
不会武功的火柴3 个月前
SystemVerilog语法(11)-面向对象编程下篇
面向对象·fpga·systemverilog·ic验证
Ether IC Verifier3 个月前
SystemVerilog 数据类型详解
php·systemverilog·uvm·ic验证
Ether IC Verifier4 个月前
IC 验证工程师新手入门指南
systemverilog·ic验证·dpu