1 module top; 2 class PacketBase; 3 rand bit [7:0] src; 4 rand bit [5:0] len; 5 rand bit [7:0] payld [ ]; 6 constraint payload_size {payld.size > 0; payld.size < 15;} 7 endclass 8 class EtherPacket extends PacketBase; 9 constraint c1 {src inside {[8'h2A:8'h2F]};} 10 constraint c2 {len inside {[0:31]}; } 11 constraint payload_size {payld.size > 15; payld.size < 20;} 12 constraint c3 {foreach (payld[i]) { (payld[i]) == 'haa;} } 13 function show; 14 $display("EtherPacket = %h %h %p", src, len, payld); 15 16 endfunction:show 17 endclass 18 class stim_gen; 19 task run; 20 EtherPacket e1; 21 e1 = new( ); 22 for(int i = 0; i<8; i++) begin 23 e1.randomize; 24 e1.show; 25 end 26 endtask 27 endclass: stim_gen 28 initial begin 29 stim_gen st1; 30 st1 = new( ); 31 st1.run; 32 endendfunction:show 33 endclass 34 class stim_gen; 35 task run; 36 EtherPacket e1; 37 e1 = new( ); 38 for(int i = 0; i<8; i++) begin 39 e1.randomize; 40 e1.show; 41 end 42 endtask 43 endclass: stim_gen 44 initial begin 45 stim_gen st1; 46 st1 = new( ); 47 st1.run; 48 end 49 endmodule
关于constraint的一个小例子,执行结果如下
EtherPacket = 2b 1e '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2b 00 '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2d 17 '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2e 0f '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2b 0d '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2a 13 '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2f 1e '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
EtherPacket = 2b 04 '{'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa, 'haa}
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.540 seconds; Data structure size: 0.1Mb
标签:constraint,haa,Constraint,2b,payld,EtherPacket,size From: https://www.cnblogs.com/xiangtianxiao/p/16592694.html