@@ -55,13 +55,20 @@ module clic_apb #(
5555
5656);
5757
58+ typedef logic [REG_BUS_ADDR_WIDTH - 1 : 0 ] addr_t ;
59+ typedef logic [REG_BUS_DATA_WIDTH - 1 : 0 ] data_t ;
60+ typedef logic [REG_BUS_DATA_WIDTH / 8 - 1 : 0 ] strb_t ;
5861
59- REG_BUS # (
60- .ADDR_WIDTH (REG_BUS_ADDR_WIDTH ),
61- .DATA_WIDTH (REG_BUS_DATA_WIDTH )
62- ) reg_bus (clk_i);
62+ `REG_BUS_TYPEDEF_REQ (reg_req_t, addr_t, data_t, strb_t)
63+ `REG_BUS_TYPEDEF_RSP (reg_rsp_t, data_t)
6364
64- apb_to_reg i_apb_to_reg (
65+ reg_req_t clic_req;
66+ reg_rsp_t clic_rsp;
67+
68+ apb_to_reg_v2 # (
69+ .reg_req_t ( reg_req_t ),
70+ .reg_rsp_t ( reg_rsp_t )
71+ ) i_apb_to_reg (
6572 .clk_i,
6673 .rst_ni,
6774 .penable_i,
@@ -72,40 +79,21 @@ module clic_apb #(
7279 .prdata_o,
7380 .pready_o,
7481 .pslverr_o,
75- .reg_o (reg_bus)
82+ .reg_req_o ( clic_req ),
83+ .reg_rsp_i ( clic_rsp )
7684 );
7785
78- typedef logic [REG_BUS_ADDR_WIDTH - 1 : 0 ] addr_t ;
79- typedef logic [REG_BUS_DATA_WIDTH - 1 : 0 ] data_t ;
80- typedef logic [REG_BUS_DATA_WIDTH / 8 - 1 : 0 ] strb_t ;
81-
82- `REG_BUS_TYPEDEF_REQ (reg_a32_d32_req_t, addr_t, data_t, strb_t)
83- `REG_BUS_TYPEDEF_RSP (reg_a32_d32_rsp_t, data_t)
84-
85- reg_a32_d32_req_t clic_req;
86- reg_a32_d32_rsp_t clic_rsp;
87-
88- assign clic_req.addr = reg_bus.addr;
89- assign clic_req.write = reg_bus.write;
90- assign clic_req.wdata = reg_bus.wdata;
91- assign clic_req.wstrb = reg_bus.wstrb;
92- assign clic_req.valid = reg_bus.valid;
93-
94- assign reg_bus.rdata = clic_rsp.rdata;
95- assign reg_bus.error = clic_rsp.error;
96- assign reg_bus.ready = clic_rsp.ready;
97-
9886 clic # (
99- .N_SOURCE ( N_SOURCE ),
100- .INTCTLBITS ( INTCTLBITS ),
101- .reg_req_t ( reg_a32_d32_req_t ),
102- .reg_rsp_t ( reg_a32_d32_rsp_t )
87+ .N_SOURCE ( N_SOURCE ),
88+ .INTCTLBITS ( INTCTLBITS ),
89+ .reg_req_t ( reg_req_t ),
90+ .reg_rsp_t ( reg_rsp_t )
10391 ) i_clic (
10492 .clk_i,
10593 .rst_ni,
10694 // Bus Interface
107- .reg_req_i ( clic_req ),
108- .reg_rsp_o ( clic_rsp ),
95+ .reg_req_i ( clic_req ),
96+ .reg_rsp_o ( clic_rsp ),
10997 // Interrupt Sources
11098 .intr_src_i,
11199 // Interrupt notification to core
0 commit comments