init
This commit is contained in:
40
code/vezba4/v4_pre_post_randomize_example.sv
Normal file
40
code/vezba4/v4_pre_post_randomize_example.sv
Normal file
@@ -0,0 +1,40 @@
|
||||
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
|
||||
Reference in New Issue
Block a user