Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 23 additions & 21 deletions include/obi/typedef.svh
Original file line number Diff line number Diff line change
Expand Up @@ -7,14 +7,16 @@
`ifndef OBI_TYPEDEF_SVH
`define OBI_TYPEDEF_SVH

`define OBI_TYPEDEF_MIN_WIDTH(WIDTH) ((WIDTH) > 0 ? (WIDTH) : 1)

`define OBI_TYPEDEF_A_CHAN_T(a_chan_t, ADDR_WIDTH, DATA_WIDTH, ID_WIDTH, a_optional_t) \
typedef struct packed { \
logic [ ADDR_WIDTH-1:0] addr; \
logic we; \
logic [DATA_WIDTH/8-1:0] be; \
logic [ DATA_WIDTH-1:0] wdata; \
logic [ ID_WIDTH-1:0] aid; \
a_optional_t a_optional; \
logic [ ADDR_WIDTH-1:0] addr; \
logic we; \
logic [ DATA_WIDTH/8-1:0] be; \
logic [ DATA_WIDTH-1:0] wdata; \
logic [`OBI_TYPEDEF_MIN_WIDTH(ID_WIDTH)-1:0] aid; \
a_optional_t a_optional; \
} a_chan_t;

`define OBI_TYPEDEF_TYPE_A_CHAN_T(a_chan_t, addr_t, data_t, strb_t, id_t, a_optional_t) \
Expand All @@ -37,22 +39,22 @@

`define OBI_TYPEDEF_ALL_A_OPTIONAL(a_optional_t, AUSER_WIDTH, WUSER_WIDTH, MID_WIDTH, ACHK_WIDTH) \
typedef struct packed { \
logic [ AUSER_WIDTH-1:0] auser; \
logic [ WUSER_WIDTH-1:0] wuser; \
obi_pkg::atop_t atop; \
obi_pkg::memtype_t memtype; \
logic [ MID_WIDTH-1:0] mid; \
obi_pkg::prot_t prot; \
logic dbg; \
logic [ ACHK_WIDTH-1:0] achk; \
logic [`OBI_TYPEDEF_MIN_WIDTH(AUSER_WIDTH)-1:0] auser; \
logic [`OBI_TYPEDEF_MIN_WIDTH(WUSER_WIDTH)-1:0] wuser; \
obi_pkg::atop_t atop; \
obi_pkg::memtype_t memtype; \
logic [ `OBI_TYPEDEF_MIN_WIDTH(MID_WIDTH)-1:0] mid; \
obi_pkg::prot_t prot; \
logic dbg; \
logic [ `OBI_TYPEDEF_MIN_WIDTH(ACHK_WIDTH)-1:0] achk; \
} a_optional_t;

`define OBI_TYPEDEF_R_CHAN_T(r_chan_t, RDATA_WIDTH, ID_WIDTH, r_optional_t) \
typedef struct packed { \
logic [RDATA_WIDTH-1:0] rdata; \
logic [ ID_WIDTH-1:0] rid; \
logic err; \
r_optional_t r_optional; \
logic [ RDATA_WIDTH-1:0] rdata; \
logic [`OBI_TYPEDEF_MIN_WIDTH(ID_WIDTH)-1:0] rid; \
logic err; \
r_optional_t r_optional; \
} r_chan_t;

`define OBI_TYPEDEF_TYPE_R_CHAN_T(r_chan_t, data_t, id_t, r_optional_t) \
Expand All @@ -68,9 +70,9 @@

`define OBI_TYPEDEF_ALL_R_OPTIONAL(r_optional_t, RUSER_WIDTH, RCHK_WIDTH) \
typedef struct packed { \
logic [RUSER_WIDTH-1:0] ruser; \
logic exokay; \
logic [ RCHK_WIDTH-1:0] rchk; \
logic [`OBI_TYPEDEF_MIN_WIDTH(RUSER_WIDTH)-1:0] ruser; \
logic exokay; \
logic [ `OBI_TYPEDEF_MIN_WIDTH(RCHK_WIDTH)-1:0] rchk; \
} r_optional_t;

`define OBI_TYPEDEF_DEFAULT_REQ_T(req_t, a_chan_t) \
Expand Down
Loading