87 lines
1.9 KiB
Systemverilog
87 lines
1.9 KiB
Systemverilog
// 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 pinmux_reg_pkg;
|
|
|
|
// Address widths within the block
|
|
parameter int BlockAw = 2;
|
|
|
|
////////////////////////////
|
|
// Typedefs for registers //
|
|
////////////////////////////
|
|
|
|
typedef struct packed {
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io0_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io1_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io2_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io3_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io4_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io5_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io6_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io7_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io8_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io9_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io10_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io11_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io12_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io13_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io14_mux;
|
|
struct packed {
|
|
logic [1:0] q;
|
|
} io15_mux;
|
|
} pinmux_reg2hw_ctrl_reg_t;
|
|
|
|
// Register -> HW type
|
|
typedef struct packed {
|
|
pinmux_reg2hw_ctrl_reg_t ctrl; // [31:0]
|
|
} pinmux_reg2hw_t;
|
|
|
|
// Register offsets
|
|
parameter logic [BlockAw-1:0] PINMUX_CTRL_OFFSET = 2'h0;
|
|
|
|
// Register index
|
|
typedef enum int {
|
|
PINMUX_CTRL
|
|
} pinmux_id_e;
|
|
|
|
// Register width information to check illegal writes
|
|
parameter logic [3:0] PINMUX_PERMIT [1] = '{
|
|
4'b1111 // index[0] PINMUX_CTRL
|
|
};
|
|
|
|
endpackage
|
|
|