标签: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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。