41 lines
846 B
Systemverilog
41 lines
846 B
Systemverilog
|
|
class transaction;
|
||
|
|
|
||
|
|
rand bit [1 : 0] addr;
|
||
|
|
rand bit [7 : 0] data;
|
||
|
|
|
||
|
|
function void display_transaction();
|
||
|
|
$display("\taddr = %0h", this.addr);
|
||
|
|
$display("\tdata = %0h", this.data);
|
||
|
|
endfunction : display_transaction
|
||
|
|
|
||
|
|
function void pre_randomize();
|
||
|
|
$display("transaction pre_randomize:");
|
||
|
|
this.display_transaction();
|
||
|
|
endfunction : pre_randomize
|
||
|
|
|
||
|
|
function void post_randomize();
|
||
|
|
$display("transaction post_randomize:");
|
||
|
|
this.display_transaction();
|
||
|
|
endfunction : post_randomize
|
||
|
|
|
||
|
|
endclass : transaction
|
||
|
|
|
||
|
|
module top;
|
||
|
|
transaction tr;
|
||
|
|
|
||
|
|
initial begin
|
||
|
|
tr = new;
|
||
|
|
assert(tr.randomize());
|
||
|
|
end
|
||
|
|
|
||
|
|
// Rezultat izvrsavanja:
|
||
|
|
//
|
||
|
|
// transaction pre_randomize:
|
||
|
|
// addr = 0
|
||
|
|
// data = 0
|
||
|
|
// transaction post_randomize:
|
||
|
|
// addr = 2
|
||
|
|
// data = 1d
|
||
|
|
|
||
|
|
endmodule : top
|