../src/lowrisc_ip_rstmgr_0.1/rtl/rstmgr_reg_pkg.sv Cov: 100%

   1: // Copyright lowRISC contributors.
   2: // Licensed under the Apache License, Version 2.0, see LICENSE for details.
   3: // SPDX-License-Identifier: Apache-2.0
   4: //
   5: // Register Package auto-generated by `reggen` containing data structure
   6: 
   7: package rstmgr_reg_pkg;
   8: 
   9:   ////////////////////////////
  10:   // Typedefs for registers //
  11:   ////////////////////////////
  12:   typedef struct packed {
  13:     logic [4:0]  q;
  14:     logic        qe;
  15:   } rstmgr_reg2hw_reset_info_reg_t;
  16: 
  17:   typedef struct packed {
  18:     logic        q;
  19:   } rstmgr_reg2hw_rst_spi_device_n_reg_t;
  20: 
  21:   typedef struct packed {
  22:     logic        q;
  23:   } rstmgr_reg2hw_rst_usb_n_reg_t;
  24: 
  25: 
  26:   typedef struct packed {
  27:     logic [4:0]  d;
  28:   } rstmgr_hw2reg_reset_info_reg_t;
  29: 
  30: 
  31:   ///////////////////////////////////////
  32:   // Register to internal design logic //
  33:   ///////////////////////////////////////
  34:   typedef struct packed {
  35:     rstmgr_reg2hw_reset_info_reg_t reset_info; // [7:2]
  36:     rstmgr_reg2hw_rst_spi_device_n_reg_t rst_spi_device_n; // [1:1]
  37:     rstmgr_reg2hw_rst_usb_n_reg_t rst_usb_n; // [0:0]
  38:   } rstmgr_reg2hw_t;
  39: 
  40:   ///////////////////////////////////////
  41:   // Internal design logic to register //
  42:   ///////////////////////////////////////
  43:   typedef struct packed {
  44:     rstmgr_hw2reg_reset_info_reg_t reset_info; // [4:-1]
  45:   } rstmgr_hw2reg_t;
  46: 
  47:   // Register Address
  48:   parameter logic [4:0] RSTMGR_RESET_INFO_OFFSET = 5'h 0;
  49:   parameter logic [4:0] RSTMGR_SPI_DEVICE_REGEN_OFFSET = 5'h 4;
  50:   parameter logic [4:0] RSTMGR_USB_REGEN_OFFSET = 5'h 8;
  51:   parameter logic [4:0] RSTMGR_RST_SPI_DEVICE_N_OFFSET = 5'h c;
  52:   parameter logic [4:0] RSTMGR_RST_USB_N_OFFSET = 5'h 10;
  53: 
  54: 
  55:   // Register Index
  56:   typedef enum int {
  57:     RSTMGR_RESET_INFO,
  58:     RSTMGR_SPI_DEVICE_REGEN,
  59:     RSTMGR_USB_REGEN,
  60:     RSTMGR_RST_SPI_DEVICE_N,
  61:     RSTMGR_RST_USB_N
  62:   } rstmgr_id_e;
  63: 
  64:   // Register width information to check illegal writes
  65:   parameter logic [3:0] RSTMGR_PERMIT [5] = '{
  66:     4'b 0001, // index[0] RSTMGR_RESET_INFO
  67:     4'b 0001, // index[1] RSTMGR_SPI_DEVICE_REGEN
  68:     4'b 0001, // index[2] RSTMGR_USB_REGEN
  69:     4'b 0001, // index[3] RSTMGR_RST_SPI_DEVICE_N
  70:     4'b 0001  // index[4] RSTMGR_RST_USB_N
  71:   };
  72: endpackage
  73: 
  74: