1
1
# SPDX-License-Identifier: Apache-2.0
2
2
import random
3
3
4
- from axi_utils import Access , draw_ids , get_ids , initialize_dut
4
+ from axi_utils import initialize_dut
5
5
from bus2csr import dword2int , int2bytes , int2dword
6
6
from cocotbext .axi .constants import AxiBurstType
7
+ from utils import Access , draw_axi_priv_ids , get_axi_ids_seq
7
8
8
9
import cocotb
9
10
from cocotb .triggers import ClockCycles , Combine , RisingEdge , with_timeout
10
11
11
12
12
13
async def initialize (dut , filter_off = False , priv_ids = None , timeout = 50 ):
13
- tb = await initialize_dut (
14
- dut , disable_id_filtering = filter_off , priv_ids = priv_ids , timeout = timeout
15
- )
14
+ tb = await initialize_dut (dut , filter_off , priv_ids , timeout )
16
15
17
16
# Generate test data
18
17
data_len = random .randint (10 , 64 )
@@ -37,10 +36,10 @@ def verify_data(write_data, awids, read_data, arids, disable_id_filtering=False,
37
36
38
37
39
38
async def collision_with_write (dut , filter_off = False , awid_priv = Access .Priv , arid_priv = Access .Priv ):
40
- priv_ids = draw_ids ()
39
+ priv_ids = draw_axi_priv_ids ()
41
40
tb , data_len , test_data = await initialize (dut , filter_off , priv_ids )
42
- awids = get_ids (priv_ids , data_len , awid_priv )
43
- arids = get_ids (priv_ids , data_len , arid_priv )
41
+ awids = get_axi_ids_seq (priv_ids , data_len , awid_priv )
42
+ arids = get_axi_ids_seq (priv_ids , data_len , arid_priv )
44
43
45
44
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
46
45
raddr = tb .reg_map .I3C_EC .SECFWRECOVERYIF .INDIRECT_FIFO_DATA .base_addr
@@ -96,10 +95,10 @@ async def test_collision_with_write_id_filter_on_mixed(dut):
96
95
97
96
98
97
async def collision_with_read (dut , filter_off = False , awid_priv = True , arid_priv = True ):
99
- priv_ids = draw_ids ()
98
+ priv_ids = draw_axi_priv_ids ()
100
99
tb , data_len , test_data = await initialize (dut , filter_off , priv_ids )
101
- awids = get_ids (priv_ids , data_len , awid_priv )
102
- arids = get_ids (priv_ids , data_len , arid_priv )
100
+ awids = get_axi_ids_seq (priv_ids , data_len , awid_priv )
101
+ arids = get_axi_ids_seq (priv_ids , data_len , arid_priv )
103
102
104
103
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
105
104
raddr = tb .reg_map .I3C_EC .SECFWRECOVERYIF .INDIRECT_FIFO_DATA .base_addr
@@ -162,10 +161,10 @@ async def test_collision_with_read_id_filter_on_mixed(dut):
162
161
163
162
164
163
async def write_read_burst (dut , filter_off = False , awid_priv = True , arid_priv = True ):
165
- priv_ids = draw_ids ()
164
+ priv_ids = draw_axi_priv_ids ()
166
165
tb , data_len , test_data = await initialize (dut , filter_off , priv_ids )
167
- awids = get_ids (priv_ids , 1 , awid_priv )
168
- arids = get_ids (priv_ids , 1 , arid_priv )
166
+ awids = get_axi_ids_seq (priv_ids , 1 , awid_priv )
167
+ arids = get_axi_ids_seq (priv_ids , 1 , arid_priv )
169
168
awid , arid = awids [0 ], arids [0 ]
170
169
171
170
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
@@ -198,10 +197,10 @@ async def test_write_read_burst_id_filter_on_non_priv(dut):
198
197
199
198
200
199
async def write_burst_collision_with_read (dut , filter_off = False , awid_priv = True , arid_priv = True ):
201
- priv_ids = draw_ids ()
200
+ priv_ids = draw_axi_priv_ids ()
202
201
tb , data_len , test_data = await initialize (dut , filter_off , priv_ids )
203
- awids = get_ids (priv_ids , 1 , awid_priv )
204
- arids = get_ids (priv_ids , 1 , arid_priv )
202
+ awids = get_axi_ids_seq (priv_ids , 1 , awid_priv )
203
+ arids = get_axi_ids_seq (priv_ids , 1 , arid_priv )
205
204
awid , arid = awids [0 ], arids [0 ]
206
205
207
206
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
@@ -249,10 +248,10 @@ async def test_write_burst_collision_with_read_id_filter_non_priv(dut):
249
248
250
249
251
250
async def read_burst_collision_with_write (dut , filter_off = False , awid_priv = True , arid_priv = True ):
252
- priv_ids = draw_ids ()
251
+ priv_ids = draw_axi_priv_ids ()
253
252
tb , data_len , test_data = await initialize (dut , filter_off , priv_ids )
254
- awids = get_ids (priv_ids , 1 , awid_priv )
255
- arids = get_ids (priv_ids , 1 , arid_priv )
253
+ awids = get_axi_ids_seq (priv_ids , 1 , awid_priv )
254
+ arids = get_axi_ids_seq (priv_ids , 1 , arid_priv )
256
255
awid , arid = awids [0 ], arids [0 ]
257
256
258
257
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
@@ -311,10 +310,10 @@ async def test_read_burst_collision_with_write_id_filter_on_non_priv(dut):
311
310
312
311
@cocotb .test ()
313
312
async def test_collision_with_write_mixed_priv (dut ):
314
- priv_ids = draw_ids ()
313
+ priv_ids = draw_axi_priv_ids ()
315
314
tb , data_len , test_data = await initialize (dut , filter_off = False , priv_ids = priv_ids )
316
- awids = get_ids (priv_ids , data_len , Access .Mixed )
317
- arids = get_ids (priv_ids , data_len , Access .Mixed )
315
+ awids = get_axi_ids_seq (priv_ids , data_len , Access .Mixed )
316
+ arids = get_axi_ids_seq (priv_ids , data_len , Access .Mixed )
318
317
319
318
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
320
319
raddr = tb .reg_map .I3C_EC .SECFWRECOVERYIF .INDIRECT_FIFO_DATA .base_addr
@@ -348,10 +347,10 @@ async def reader():
348
347
349
348
@cocotb .test ()
350
349
async def test_collision_with_read_mixed_priv (dut ):
351
- priv_ids = draw_ids ()
350
+ priv_ids = draw_axi_priv_ids ()
352
351
tb , data_len , test_data = await initialize (dut , filter_off = False , priv_ids = priv_ids )
353
- awids = get_ids (priv_ids , data_len , Access .Mixed )
354
- arids = get_ids (priv_ids , data_len , Access .Mixed )
352
+ awids = get_axi_ids_seq (priv_ids , data_len , Access .Mixed )
353
+ arids = get_axi_ids_seq (priv_ids , data_len , Access .Mixed )
355
354
356
355
waddr = tb .reg_map .I3C_EC .TTI .TX_DATA_PORT .base_addr
357
356
raddr = tb .reg_map .I3C_EC .SECFWRECOVERYIF .INDIRECT_FIFO_DATA .base_addr
0 commit comments