5
5
// Authors:
6
6
// - Axel Vanoni <axvanoni@ethz.ch>
7
7
8
- `include " register_interface /typedef.svh"
9
- `include " register_interface /assign.svh"
8
+ `include " apb /typedef.svh"
9
+ `include " apb /assign.svh"
10
10
`include " idma/tracer.svh"
11
11
`include " idma/typedef.svh"
12
12
`include " axi/typedef.svh"
@@ -20,7 +20,7 @@ module tb_idma_desc64_bench
20
20
import idma_desc64_addrmap_pkg :: IDMA_DESC64_REG_STATUS_REG_OFFSET ;
21
21
import rand_verif_pkg :: rand_wait;
22
22
import axi_pkg :: * ;
23
- import reg_test :: reg_driver ; # (
23
+ import apb_test :: apb_driver ; # (
24
24
parameter integer NumberOfTests = 100 ,
25
25
parameter integer SimulationTimeoutCycles = 1000000 ,
26
26
parameter integer ChainedDescriptors = 10 ,
@@ -70,7 +70,7 @@ module tb_idma_desc64_bench
70
70
typedef axi_test :: axi_w_beat # (.DW (64 ), .UW (1 )) w_beat_t ;
71
71
typedef axi_test :: axi_b_beat # (.IW (3 ), .UW (1 )) b_beat_t ;
72
72
73
- `REG_BUS_TYPEDEF_ALL ( reg , /* addr */ addr_t, /* data */ logic [63 : 0 ], /* strobe */ logic [7 : 0 ])
73
+ `APB_TYPEDEF_ALL (apb , /* addr */ addr_t, /* data */ logic [63 : 0 ], /* strobe */ logic [7 : 0 ])
74
74
`AXI_TYPEDEF_ALL (axi, /* addr */ addr_t, /* id */ axi_id_t, /* data */ logic [63 : 0 ], /* strb */ logic [7 : 0 ], /* user */ logic [0 : 0 ])
75
75
`AXI_TYPEDEF_ALL (mem_axi, /* addr */ addr_t, /* id */ mem_axi_id_t, /* data */ logic [63 : 0 ], /* strb */ logic [7 : 0 ], /* user */ logic [0 : 0 ])
76
76
@@ -158,17 +158,17 @@ module tb_idma_desc64_bench
158
158
);
159
159
160
160
// dut signals and module
161
- REG_BUS # (
161
+ APB_BUS # (
162
162
.ADDR_WIDTH (64 ),
163
163
.DATA_WIDTH (64 )
164
- ) i_reg_iface_bus (clk);
164
+ ) i_apb_bus (clk);
165
165
166
- reg_driver # (
167
- .AW (64 ),
168
- .DW (64 ),
166
+ apb_driver # (
167
+ .ADDR_WIDTH (64 ),
168
+ .DATA_WIDTH (64 ),
169
169
.TA (APPL_DELAY ),
170
170
.TT (ACQ_DELAY )
171
- ) i_reg_iface_driver = new (i_reg_iface_bus );
171
+ ) i_apb_driver = new (i_apb_bus );
172
172
173
173
axi_resp_t dma_fe_master_response;
174
174
axi_req_t dma_fe_master_request;
@@ -206,8 +206,8 @@ module tb_idma_desc64_bench
206
206
.TT (ACQ_DELAY )
207
207
) i_axi_iface_driver = new (i_axi_iface_bus);
208
208
209
- reg_rsp_t dma_slave_response;
210
- reg_req_t dma_slave_request;
209
+ apb_resp_t dma_slave_response;
210
+ apb_req_t dma_slave_request;
211
211
212
212
idma_pkg :: idma_busy_t busy;
213
213
idma_req_t dma_be_req;
@@ -229,8 +229,8 @@ module tb_idma_desc64_bench
229
229
.axi_req_t (axi_req_t),
230
230
.axi_ar_chan_t (axi_ar_chan_t),
231
231
.axi_r_chan_t (axi_r_chan_t),
232
- .reg_rsp_t (reg_rsp_t ),
233
- .reg_req_t (reg_req_t ),
232
+ .apb_rsp_t (apb_resp_t ),
233
+ .apb_req_t (apb_req_t ),
234
234
.InputFifoDepth (InputFifoDepth),
235
235
.PendingFifoDepth (PendingFifoDepth),
236
236
.BackendDepth (NumAxInFlight + BufferDepth),
@@ -422,8 +422,16 @@ module tb_idma_desc64_bench
422
422
.mst_resp_i ( axi_mem_response )
423
423
);
424
424
425
- `REG_BUS_ASSIGN_TO_REQ (dma_slave_request, i_reg_iface_bus);
426
- `REG_BUS_ASSIGN_FROM_RSP (i_reg_iface_bus, dma_slave_response);
425
+ assign dma_slave_request.paddr = i_apb_bus.paddr;
426
+ assign dma_slave_request.pprot = i_apb_bus.pprot;
427
+ assign dma_slave_request.psel = i_apb_bus.psel;
428
+ assign dma_slave_request.penable = i_apb_bus.penable;
429
+ assign dma_slave_request.pwrite = i_apb_bus.pwrite;
430
+ assign dma_slave_request.pwdata = i_apb_bus.pwdata;
431
+ assign dma_slave_request.pstrb = i_apb_bus.pstrb;
432
+ assign i_apb_bus.pready = dma_slave_response.pready;
433
+ assign i_apb_bus.prdata = dma_slave_response.prdata;
434
+ assign i_apb_bus.pslverr = dma_slave_response.pslverr;
427
435
428
436
`AXI_ASSIGN_FROM_REQ (i_axi_iface_bus, dma_fe_master_request);
429
437
`AXI_ASSIGN_FROM_RESP (i_axi_iface_bus, dma_fe_master_response);
@@ -596,7 +604,7 @@ module tb_idma_desc64_bench
596
604
// regbus slave interaction (we're acting as master)
597
605
task regbus_slave_interaction ();
598
606
automatic stimulus_t current_stimulus_group[$];
599
- i_reg_iface_driver .reset_master ();
607
+ i_apb_driver .reset_master ();
600
608
@ (posedge rst_n);
601
609
602
610
forever begin
@@ -607,7 +615,7 @@ module tb_idma_desc64_bench
607
615
wait (generated_stimuli.size () > '0 );
608
616
current_stimulus_group = generated_stimuli.pop_front ();
609
617
610
- i_reg_iface_driver .send_write (
618
+ i_apb_driver .send_write (
611
619
.addr (IDMA_DESC64_REG_DESC_ADDR_REG_OFFSET ) ,
612
620
.data (current_stimulus_group[0 ].base),
613
621
.strb (8'hff ) ,
@@ -846,7 +854,7 @@ module tb_idma_desc64_bench
846
854
forever begin
847
855
automatic logic [63 : 0 ] status;
848
856
automatic logic error;
849
- i_reg_iface_driver .send_read (
857
+ i_apb_driver .send_read (
850
858
.addr (IDMA_DESC64_REG_STATUS_REG_OFFSET ),
851
859
.data (status),
852
860
.error (error)
0 commit comments