blob: bf58dde33c8fa051d56083f835cea1dee0b61770 [file] [log] [blame] [edit]
//
// Template for physical access BFM that can be used by RAL
//
//
`ifndef simple_main_RAL_BFM__SV
`define simple_main_RAL_BFM__SV
`include "simple.sv"
`include "vmm_ral.sv"
class simple_main_ral_bfm extends vmm_rw_xactor;
simple bfm;
function new(string inst,
int unsigned stream_id,
simple bfm);
super.new("simple RAL Master for main domain", inst, stream_id);
this.bfm = bfm;
endfunction: new
virtual task execute_single(vmm_rw_access tr);
simple_tr cyc;
// ToDo: Translate the generic RW into an appropriate RW
// for the specified domain
cyc = new;
if (tr.kind == vmm_rw::WRITE) begin
// Write cycle
// ...
end
else begin
// Read cycle
// ...
end
this.bfm.in_chan.put(cyc);
// ToDo: Send the result of read cycles back to the RAL
if (tr.kind == vmm_rw::READ) begin
tr.data = ...
end
endtask: execute_single
endclass: simple_main_ral_bfm
`endif