Professional Documents
Culture Documents
Paramterized Class
Paramterized Class
T crc;
T dynam [];
endclass: transaction
///// Extended Class with Non-default Specialization
class my_transaction extends transaction #(bit [3:0], int, 9);
int errBit;
/// Constructor
function new (A b);
super.new(b);
endfunction: new
endclass: my_transaction
module top;
initial begin
fork
begin
transaction #(bit [7:0], bit [3:0]) txn;
txn = new(5);
txn.dynam = new[5];
foreach (txn.dynam[i])
txn.dynam[i] = i;
txn.CalCrc(6);
txn.print;
end
begin
my_transaction mtxn;
mtxn = new(5);
mtxn.dynam = new[5];
foreach (mtxn.dynam[i])
mtxn.dynam[i] = i;
mtxn.CalCrc(7);
mtxn.print;
end
join
end
endmodule