ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

constraint的on与off以及with约束

2022-08-16 20:30:25  阅读:165  来源: 互联网

标签:off addr constraint data 约束 addrw randomize pBus


module crv;
  class PCIBus;
    rand bit[15:0] addr;
    rand bit[31:0] data;
    constraint addrw {addr[7:0] == 'h01;}
    constraint dataw {data[15:0] == 'hffff;}
  endclass
  logic [31:0] result;
  initial begin
    PCIBus pBus = new ( ); //Instantiate PCIBus
    $display("\n pBus randomize");
    repeat (2) begin
      pBus.randomize; //randomize pBus
      $display ("addr = %h data = %h", pBus.addr, pBus.data);
    end
    $display("\n pBus randomize with constraint 'addrw' and 'dataw' turned OFF");
    pBus.addrw.constraint_mode(0); //turn OFF constraint
    pBus.dataw.constraint_mode(0); //turn OFF constraint
    repeat (2) begin
      pBus.randomize;
      $display ("addr = %h data = %h", pBus.addr, pBus.data);
    end
    $display("\n pBus randomize with constraint 'addrw' and 'dataw' turned ON");
    pBus.addrw.constraint_mode(1); //turn ON constraint
    pBus.dataw.constraint_mode(1); //turn ON constraint
    repeat (2) begin
      pBus.randomize;
      $display ("addr = %h data = %h", pBus.addr, pBus.data);
    end
    $display("\n constraint 'data' using the 'with' clause");
    repeat (10) begin
      pBus.randomize ( ) with {pBus.data >= 'hffff && pBus.data <= 
'hf_ffff;};
      $display ("data = %h", pBus.data);
    end
  end
endmodule

仿真结果

pBus randomize
addr = 3501 data = ad77ffff
addr = f401 data = 3de0ffff

pBus randomize with constraint 'addrw' and 'dataw' turned OFF
addr = 6f68 data = bef096ce
addr = ff96 data = 7ebf2e4c

pBus randomize with constraint 'addrw' and 'dataw' turned ON
addr = 7f01 data = 4bb7ffff
addr = e401 data = cb1cffff

constraint 'data' using the 'with' clause
data = 0000ffff
data = 0002ffff
data = 0005ffff
data = 000dffff
data = 0001ffff
data = 000effff
data = 000dffff
data = 0003ffff
data = 0001ffff
data = 000bffff
V C S S i m u l a t i o n R e p o r t
Time: 0 ns
CPU Time: 0.500 seconds; Data structure size: 0.0Mb

标签:off,addr,constraint,data,约束,addrw,randomize,pBus
来源: https://www.cnblogs.com/xiangtianxiao/p/16592873.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有