User guide

22-4
SystemVerilog Design Constructs
typedef chandle DataBase; // Data Base implemented in C/C++
import "DPI" function DataBase openDataBase(string name);
import "DPI" function void saveDataBase(DataBase db);
import "DPI" function void addToDataBase(DataBase db,
Transaction tr);
DataBase myDataBase;
initial begin
myDataBase = openDataBase("TestResults_1");
// ...
while (1) begin
// process transactions
Transaction tr;
// ...
// record the just processed transaction in a data
base
addToDataBase(myDataBase, tr);
// ...
end
end
// ...
final begin
saveDataBase(myDataBase);
end
endprogram
This example uses a chandle to refer transactions to a C++ database.