Files
fvh_vezbe/code/vezba4/v4_constraint_mode.sv

36 lines
920 B
Systemverilog
Raw Permalink Normal View History

2026-06-12 07:53:32 +02:00
class transaction;
rand bit [1 : 0] addr;
rand bit [7 : 0] data;
constraint data_range { data > 'ha5; }
constraint addr_range { addr == 0; }
endclass : transaction
module top;
transaction tr;
initial begin
tr = new;
assert(tr.randomize()); // i data_range i addr_range ogranicenja su aktivna
$display("addr = %0h, data = %0h", tr.addr, tr.data);
tr.constraint_mode(0); // iskljucivanje svih ogranicenja
assert(tr.randomize()); // nema aktivnih ogranicenja
$display("addr = %0h, data = %0h", tr.addr, tr.data);
tr.data_range.constraint_mode(1); // ukljucivanje jednog ogranicenja
assert(tr.randomize()); // data_range je aktivno, dok addr_range nije
$display("addr = %0h, data = %0h", tr.addr, tr.data);
end
// Rezultat izvrsavanja:
//
// addr = 0, data = c7
// addr = 3, data = 19
// addr = 2, data = f0
endmodule : top