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
相关推荐
南檐巷上学2 天前
基于FPGA的音频信号监测识别系统
fpga开发·音频·verilog·fpga·傅立叶分析·fft·快速傅里叶变换
FPGA小迷弟4 天前
基于FPGA实现HDMI接口,选型/核心技术
学习·fpga开发·verilog·fpga·modelsim
FPGA小迷弟5 天前
FPGA处理图像需要用到的主流接口详解
学习·fpga开发·verilog·fpga·modelsim
高新打工人6 天前
关于systemverilog中的随机化的使用
systemverilog
不吃橘子的橘猫9 天前
Verilog HDL基础(概念+模块)
开发语言·学习·算法·fpga开发·verilog
蓝天下的守望者9 天前
SystemVerilog中 `timescale的使用问题
systemverilog·uvm·vcs
Chef Chip19 天前
定宽数组的随机约束
systemverilog·数字ic验证
蓝天下的守望者1 个月前
由continue引发的一个debug灾难
算法·systemverilog
FPGA_小田老师1 个月前
FPGA例程(4):按键消抖实验
fpga开发·verilog·fpga demo·fpga例程