../src/lowrisc_top_earlgrey_clkmgr_0.1/rtl/autogen/clkmgr_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 clkmgr_reg_pkg;
   8: 
   9:   // Param list
  10:   parameter int NumGroups = 7;
  11: 
  12:   ////////////////////////////
  13:   // Typedefs for registers //
  14:   ////////////////////////////
  15:   typedef struct packed {
  16:     struct packed {
  17:       logic        q;
  18:     } clk_io_peri_en;
  19:     struct packed {
  20:       logic        q;
  21:     } clk_usb_peri_en;
  22:   } clkmgr_reg2hw_clk_enables_reg_t;
  23: 
  24:   typedef struct packed {
  25:     struct packed {
  26:       logic        q;
  27:     } clk_main_aes_hint;
  28:     struct packed {
  29:       logic        q;
  30:     } clk_main_hmac_hint;
  31:   } clkmgr_reg2hw_clk_hints_reg_t;
  32: 
  33: 
  34:   typedef struct packed {
  35:     struct packed {
  36:       logic        d;
  37:       logic        de;
  38:     } clk_main_aes_val;
  39:     struct packed {
  40:       logic        d;
  41:       logic        de;
  42:     } clk_main_hmac_val;
  43:   } clkmgr_hw2reg_clk_hints_status_reg_t;
  44: 
  45: 
  46:   ///////////////////////////////////////
  47:   // Register to internal design logic //
  48:   ///////////////////////////////////////
  49:   typedef struct packed {
  50:     clkmgr_reg2hw_clk_enables_reg_t clk_enables; // [3:2]
  51:     clkmgr_reg2hw_clk_hints_reg_t clk_hints; // [1:0]
  52:   } clkmgr_reg2hw_t;
  53: 
  54:   ///////////////////////////////////////
  55:   // Internal design logic to register //
  56:   ///////////////////////////////////////
  57:   typedef struct packed {
  58:     clkmgr_hw2reg_clk_hints_status_reg_t clk_hints_status; // [3:4]
  59:   } clkmgr_hw2reg_t;
  60: 
  61:   // Register Address
  62:   parameter logic [3:0] CLKMGR_CLK_ENABLES_OFFSET = 4'h 0;
  63:   parameter logic [3:0] CLKMGR_CLK_HINTS_OFFSET = 4'h 4;
  64:   parameter logic [3:0] CLKMGR_CLK_HINTS_STATUS_OFFSET = 4'h 8;
  65: 
  66: 
  67:   // Register Index
  68:   typedef enum int {
  69:     CLKMGR_CLK_ENABLES,
  70:     CLKMGR_CLK_HINTS,
  71:     CLKMGR_CLK_HINTS_STATUS
  72:   } clkmgr_id_e;
  73: 
  74:   // Register width information to check illegal writes
  75:   parameter logic [3:0] CLKMGR_PERMIT [3] = '{
  76:     4'b 0001, // index[0] CLKMGR_CLK_ENABLES
  77:     4'b 0001, // index[1] CLKMGR_CLK_HINTS
  78:     4'b 0001  // index[2] CLKMGR_CLK_HINTS_STATUS
  79:   };
  80: endpackage
  81: 
  82: