`uvm_do_with(req, CONSTRAINT)
- это макрос .Расширяется до
req = tx_type::type_id::create("req");
start_item(req);
if( !req.randomize() with CONSTRAINT ) `uvm_error(...)
finish_item(req);
Так что
'ovm_do_with(a,{b=0})
расширяется до
a = tx_type::type_id::create("a");
start_item(a);
if( !a.randomize() with {b=0}) `uvm_error(...)
finish_item(a);