systemverilog中随机std::randomize的用法

randomize

randomize方法

所属对象:randomize是 SystemVerilog 中类(class)的一个方法。它主要用于对类中的随机变量(rand 和 randc 类型)进行随机化操作。
工作原理:

当调用一个类对象的randomize方法时,它会根据类中定义的约束(constraint)来为随机变量生成合适的值。

std::randomize

std::randomize函数

所属范畴:std::randomize是一个作用域随机化函数。它允许用户在当前作用域(例如一个函数内部)对变量进行随机化,而不需要将这些变量定义为类的成员变量。

工作方式:

可以将需要随机化的变量作为参数传递给std::randomize。例如:

复制代码
std::randomize(ssc_ppm) with {
			ssc_ppm inside {4'b0010, 4'b0100, 4'b0110, 4'b1000, 4'b1010}; 
		};

class thursday_seq extends junk_seq_seq;  //which extends uvm_sequence

   rand int count;
   constraint c1 { count >= 2; count <= 9; }

   function new(string name="thursday_seq");
      super.new(name);
      if (std::randomize(count)) begin 
         `uvm_info("",$psprintf(" cnt=%0d .....",count),UVM_LOW) end
      else $finish;
      if (randomize(count)) begin 
         `uvm_info("",$psprintf(" cnt=%0d .....",count),UVM_LOW) end
      else $finish;
      if (this.randomize()) begin 
         `uvm_info("",$psprintf(" cnt=%0d .....",count),UVM_LOW) end
      else $finish;
      $finish;
   endfunction:new
endclass
相关推荐
Chef Chip10 天前
定宽数组的随机约束
systemverilog·数字ic验证
蓝天下的守望者22 天前
由continue引发的一个debug灾难
算法·systemverilog
FPGA_小田老师23 天前
FPGA例程(4):按键消抖实验
fpga开发·verilog·fpga demo·fpga例程
FPGA小迷弟1 个月前
京微齐力FPGA联合modelsim仿真操作
fpga开发·ic·verilog·fpga·仿真
FPGA_小田老师1 个月前
FPGA例程(3):按键检测实验
fpga开发·verilog·vivado·led灯·按键测试
蓝天下的守望者1 个月前
systemverilog系统函数$test$plusargs和$value$plusargs
systemverilog·芯片验证
FPGA小迷弟1 个月前
modelsim使用教程,仿真技巧,精华帖
fpga开发·verilog·fpga·modelsim
lbt_dvshare1 个月前
MTCMOS flow
systemverilog
蓝天下的守望者1 个月前
systemverilog中的virtual function
systemverilog