mirror of
https://github.com/lowRISC/ibex.git
synced 2025-04-22 04:47:25 -04:00
The 'pre_val' MIP addresses the scenario where MIP changes as an instruction is excuting, this means a CSR instruction can observe a different MIP from the one that decides whether or not that instruction will be interrupted.
35 lines
2 KiB
Systemverilog
35 lines
2 KiB
Systemverilog
// Copyright lowRISC contributors.
|
|
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
// DPI interface to co-simulation model, see `cosim.h` for the interface description.
|
|
|
|
// Implemented as a header file as VCS needs `import` declarations included in each verilog file
|
|
// that uses them.
|
|
|
|
`ifndef COSIM_DPI_SVH
|
|
`define COSIM_DPI_SVH
|
|
|
|
import "DPI-C" function int riscv_cosim_step(chandle cosim_handle, bit [4:0] write_reg,
|
|
bit [31:0] write_reg_data, bit [31:0] pc, bit sync_trap, bit suppress_reg_write);
|
|
import "DPI-C" function void riscv_cosim_set_mip(chandle cosim_handle, bit [31:0] pre_mip,
|
|
bit [31:0] post_mip);
|
|
import "DPI-C" function void riscv_cosim_set_nmi(chandle cosim_handle, bit nmi);
|
|
import "DPI-C" function void riscv_cosim_set_nmi_int(chandle cosim_handle, bit nmi_int);
|
|
import "DPI-C" function void riscv_cosim_set_debug_req(chandle cosim_handle, bit debug_req);
|
|
import "DPI-C" function void riscv_cosim_set_mcycle(chandle cosim_handle, bit [63:0] mcycle);
|
|
import "DPI-C" function void riscv_cosim_set_csr(chandle cosim_handle, int csr_id,
|
|
bit [31:0] csr_val);
|
|
import "DPI-C" function void riscv_cosim_set_ic_scr_key_valid(chandle cosim_handle, bit valid);
|
|
import "DPI-C" function void riscv_cosim_notify_dside_access(chandle cosim_handle, bit store,
|
|
bit [31:0] addr, bit [31:0] data, bit [3:0] be, bit error, bit misaligned_first,
|
|
bit misaligned_second, bit misaligned_first_saw_error, bit m_mode_access);
|
|
import "DPI-C" function int riscv_cosim_set_iside_error(chandle cosim_handle, bit [31:0] addr);
|
|
import "DPI-C" function int riscv_cosim_get_num_errors(chandle cosim_handle);
|
|
import "DPI-C" function string riscv_cosim_get_error(chandle cosim_handle, int index);
|
|
import "DPI-C" function void riscv_cosim_clear_errors(chandle cosim_handle);
|
|
import "DPI-C" function void riscv_cosim_write_mem_byte(chandle cosim_handle, bit [31:0] addr,
|
|
bit [7:0] d);
|
|
import "DPI-C" function int unsigned riscv_cosim_get_insn_cnt(chandle cosim_handle);
|
|
|
|
`endif
|