blob: 26bcea9fb69efacd0c827dc2c01823d08f5889e2 [file] [log] [blame]
// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
//
// Register Package auto-generated by `reggen` containing data structure
package rstmgr_reg_pkg;
////////////////////////////
// Typedefs for registers //
////////////////////////////
typedef struct packed {
logic [4:0] q;
logic qe;
} rstmgr_reg2hw_reset_info_reg_t;
typedef struct packed {
logic q;
} rstmgr_reg2hw_rst_spi_device_n_reg_t;
typedef struct packed {
logic q;
} rstmgr_reg2hw_rst_usb_n_reg_t;
typedef struct packed {
logic [4:0] d;
} rstmgr_hw2reg_reset_info_reg_t;
///////////////////////////////////////
// Register to internal design logic //
///////////////////////////////////////
typedef struct packed {
rstmgr_reg2hw_reset_info_reg_t reset_info; // [7:2]
rstmgr_reg2hw_rst_spi_device_n_reg_t rst_spi_device_n; // [1:1]
rstmgr_reg2hw_rst_usb_n_reg_t rst_usb_n; // [0:0]
} rstmgr_reg2hw_t;
///////////////////////////////////////
// Internal design logic to register //
///////////////////////////////////////
typedef struct packed {
rstmgr_hw2reg_reset_info_reg_t reset_info; // [4:-1]
} rstmgr_hw2reg_t;
// Register Address
parameter logic [4:0] RSTMGR_RESET_INFO_OFFSET = 5'h 0;
parameter logic [4:0] RSTMGR_SPI_DEVICE_REGEN_OFFSET = 5'h 4;
parameter logic [4:0] RSTMGR_RST_SPI_DEVICE_N_OFFSET = 5'h 8;
parameter logic [4:0] RSTMGR_USB_REGEN_OFFSET = 5'h c;
parameter logic [4:0] RSTMGR_RST_USB_N_OFFSET = 5'h 10;
// Register Index
typedef enum int {
RSTMGR_RESET_INFO,
RSTMGR_SPI_DEVICE_REGEN,
RSTMGR_RST_SPI_DEVICE_N,
RSTMGR_USB_REGEN,
RSTMGR_RST_USB_N
} rstmgr_id_e;
// Register width information to check illegal writes
parameter logic [3:0] RSTMGR_PERMIT [5] = '{
4'b 0001, // index[0] RSTMGR_RESET_INFO
4'b 0001, // index[1] RSTMGR_SPI_DEVICE_REGEN
4'b 0001, // index[2] RSTMGR_RST_SPI_DEVICE_N
4'b 0001, // index[3] RSTMGR_USB_REGEN
4'b 0001 // index[4] RSTMGR_RST_USB_N
};
endpackage