clash-vexriscv-0.1: data/vexriscv/ffi/interface.h
// SPDX-FileCopyrightText: 2022 Google LLC
//
// SPDX-License-Identifier: Apache-2.0
#ifndef VEX_RISCV_FFI_H
#define VEX_RISCV_FFI_H
#include <stdint.h>
typedef int bit;
typedef struct {
bit reset;
bit timerInterrupt;
bit externalInterrupt;
bit softwareInterrupt;
} NON_COMB_INPUT;
typedef struct {
bit iBusWishbone_ACK;
uint32_t iBusWishbone_DAT_MISO;
bit iBusWishbone_ERR;
bit dBusWishbone_ACK;
uint32_t dBusWishbone_DAT_MISO;
bit dBusWishbone_ERR;
bit jtag_TCK;
bit jtag_TMS;
bit jtag_TDI;
} COMB_INPUT;
typedef struct {
bit iBusWishbone_CYC;
bit iBusWishbone_STB;
bit iBusWishbone_WE;
uint32_t iBusWishbone_ADR;
uint32_t iBusWishbone_DAT_MOSI;
uint8_t iBusWishbone_SEL;
uint8_t iBusWishbone_CTI;
uint8_t iBusWishbone_BTE;
bit dBusWishbone_CYC;
bit dBusWishbone_STB;
bit dBusWishbone_WE;
uint32_t dBusWishbone_ADR;
uint32_t dBusWishbone_DAT_MOSI;
uint8_t dBusWishbone_SEL;
uint8_t dBusWishbone_CTI;
uint8_t dBusWishbone_BTE;
bit ndmreset;
bit stoptime;
bit jtag_TDO;
} OUTPUT;
typedef struct {
bit tck;
bit tms;
bit tdi;
} JTAG_INPUT;
typedef struct {
bit tdo;
} JTAG_OUTPUT;
#endif