blob: 9596a62f465b5fcab84e0c68c00731cca43761ed [file] [log] [blame]
/****************************************************************************
* fwrisc_tracer_bfm_api.svh
****************************************************************************/
`ifdef HAVE_HDL_VIRTUAL_INTERFACE
import fwrisc_tracer_bfm_api_pkg::*;
fwrisc_tracer_bfm_api m_api;
`else
int unsigned m_id;
import "DPI-C" context function int unsigned fwrisc_tracer_bfm_register(string path);
initial begin
$display("TRACER: %m");
m_id = fwrisc_tracer_bfm_register($sformatf("%m"));
end
`endif
`ifdef HAVE_HDL_VIRTUAL_INTERFACE
task regwrite(int unsigned raddr, int unsigned rdata);
m_api.regwrite(raddr, rdata);
endtask
task exec(int unsigned addr, int unsigned instr);
m_api.exec(addr, instr);
endtask
task memwrite(int unsigned addr, byte unsigned mask, int unsigned data);
m_api.memwrite(addr, mask, data);
endtask
`else
export "DPI-C" task fwrisc_tracer_bfm_dumpregs;
task regwrite(int unsigned raddr, int unsigned rdata);
fwrisc_tracer_bfm_regwrite(m_id, raddr, rdata);
endtask
import "DPI-C" context task fwrisc_tracer_bfm_regwrite(int unsigned id, int unsigned raddr, int unsigned rdata);
task exec(int unsigned addr, int unsigned instr);
fwrisc_tracer_bfm_exec(m_id, addr, instr);
endtask
import "DPI-C" context task fwrisc_tracer_bfm_exec(int unsigned id, int unsigned addr, int unsigned instr);
task memwrite(int unsigned addr, byte unsigned mask, int unsigned data);
fwrisc_tracer_bfm_memwrite(m_id, addr, mask, data);
endtask
import "DPI-C" context task fwrisc_tracer_bfm_memwrite(int unsigned id, int unsigned addr, byte unsigned mask, int unsigned data);
`endif