1234567891011121314151617181920212223242526272829303132333435363738394041 |
- class counter_trans;
-
- rand bit [3:0] data;
- rand bit rst;
- rand bit load;
- rand bit updown;
-
- bit [3:0] data_out;
-
- static int trans_id;
-
-
- //Constraints to control frequency of reset and load
- constraint r1{rst dist {0:=50, 1:=1};}
- constraint l1{load dist {0:=20, 1:=1};}
-
- function void post_randomize();
- this.display("RANDOMIZED DATA");
- endfunction
-
- function void display(string message);
- $display("-------------------------------------------------");
- $display("%s",message);
- $display("\tTransaction ID: %d", trans_id);
- $display("\tRESET = %d\n\tLOAD = %d\n\tUP-DOWN = %d\n\tDATA = %d", rst, load, updown, data);
- $display("-------------------------------------------------");
- endfunction
-
- function bit compare(counter_trans rcvd);
- compare = 1'b1;
- if(this.data_out != rcvd.data_out)
- begin
- compare = 1'b0;
- $display("DATA MISMATCH");
- $display(this.data_out, " != ", rcvd.data_out);
- $stop;
- end
- endfunction
-
- endclass: counter_trans
|