From 929c87b4bce5d11a56add5df54521dea02569970 Mon Sep 17 00:00:00 2001 From: Riccardo Tedeschi Date: Tue, 24 Feb 2026 10:51:34 +0100 Subject: [PATCH] typedef: add `DECL` macros to be used in parameter port list --- include/register_interface/typedef.svh | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/include/register_interface/typedef.svh b/include/register_interface/typedef.svh index 350d79e..85fddfa 100644 --- a/include/register_interface/typedef.svh +++ b/include/register_interface/typedef.svh @@ -10,26 +10,33 @@ // specific language governing permissions and limitations under the License. // Florian Zaruba +// Riccardo Tedeschi /// Macros to define register bus request/response structs. `ifndef REGISTER_INTERFACE_TYPEDEF_SVH_ `define REGISTER_INTERFACE_TYPEDEF_SVH_ -`define REG_BUS_TYPEDEF_REQ(req_t, addr_t, data_t, strb_t) \ - typedef struct packed { \ +`define REG_BUS_DECL_REQ(addr_t, data_t, strb_t) \ + struct packed { \ addr_t addr; \ logic write; \ data_t wdata; \ strb_t wstrb; \ logic valid; \ - } req_t; + } -`define REG_BUS_TYPEDEF_RSP(rsp_t, data_t) \ - typedef struct packed { \ +`define REG_BUS_TYPEDEF_REQ(req_t, addr_t, data_t, strb_t) \ + typedef `REG_BUS_DECL_REQ(addr_t, data_t, strb_t) req_t; + +`define REG_BUS_DECL_RSP(data_t) \ + struct packed { \ data_t rdata; \ logic error; \ logic ready; \ - } rsp_t; + } + +`define REG_BUS_TYPEDEF_RSP(rsp_t, data_t) \ + typedef `REG_BUS_DECL_RSP(data_t) rsp_t; `define REG_BUS_TYPEDEF_ALL(name, addr_t, data_t, strb_t) \ `REG_BUS_TYPEDEF_REQ(name``_req_t, addr_t, data_t, strb_t) \