@@ -51,11 +51,11 @@ def __init__(self, dut, msix_count=32):
51
51
pcie_link_width = 16 ,
52
52
user_clk_frequency = 250e6 ,
53
53
alignment = "dword" ,
54
- cq_straddle = len (dut .core_inst .pcie_if_inst .pcie_us_if_cq_inst .rx_req_tlp_valid_reg ) > 1 ,
55
- cc_straddle = len (dut .core_inst .pcie_if_inst .pcie_us_if_cc_inst .out_tlp_valid ) > 1 ,
56
- rq_straddle = len (dut .core_inst .pcie_if_inst .pcie_us_if_rq_inst .out_tlp_valid ) > 1 ,
57
- rc_straddle = len (dut .core_inst .pcie_if_inst .pcie_us_if_rc_inst .rx_cpl_tlp_valid_reg ) > 1 ,
58
- rc_4tlp_straddle = len (dut .core_inst .pcie_if_inst .pcie_us_if_rc_inst .rx_cpl_tlp_valid_reg ) > 2 ,
54
+ cq_straddle = len (dut .uut . core_inst .pcie_if_inst .pcie_us_if_cq_inst .rx_req_tlp_valid_reg ) > 1 ,
55
+ cc_straddle = len (dut .uut . core_inst .pcie_if_inst .pcie_us_if_cc_inst .out_tlp_valid ) > 1 ,
56
+ rq_straddle = len (dut .uut . core_inst .pcie_if_inst .pcie_us_if_rq_inst .out_tlp_valid ) > 1 ,
57
+ rc_straddle = len (dut .uut . core_inst .pcie_if_inst .pcie_us_if_rc_inst .rx_cpl_tlp_valid_reg ) > 1 ,
58
+ rc_4tlp_straddle = len (dut .uut . core_inst .pcie_if_inst .pcie_us_if_rc_inst .rx_cpl_tlp_valid_reg ) > 2 ,
59
59
pf_count = 1 ,
60
60
max_payload_size = 1024 ,
61
61
enable_client_tag = True ,
@@ -267,9 +267,9 @@ def __init__(self, dut, msix_count=32):
267
267
268
268
self .driver = mqnic .Driver ()
269
269
270
- self .dev .functions [0 ].configure_bar (0 , 2 ** len (dut .core_inst .core_pcie_inst .axil_ctrl_araddr ), ext = True , prefetch = True )
271
- if hasattr (dut .core_inst .core_pcie_inst , 'pcie_app_ctrl' ):
272
- self .dev .functions [0 ].configure_bar (2 , 2 ** len (dut .core_inst .core_pcie_inst .axil_app_ctrl_araddr ), ext = True , prefetch = True )
270
+ self .dev .functions [0 ].configure_bar (0 , 2 ** len (dut .uut . core_inst .core_pcie_inst .axil_ctrl_araddr ), ext = True , prefetch = True )
271
+ if hasattr (dut .uut . core_inst .core_pcie_inst , 'pcie_app_ctrl' ):
272
+ self .dev .functions [0 ].configure_bar (2 , 2 ** len (dut .uut . core_inst .core_pcie_inst .axil_app_ctrl_araddr ), ext = True , prefetch = True )
273
273
274
274
cocotb .start_soon (Clock (dut .ptp_clk , 6.206 , units = "ns" ).start ())
275
275
dut .ptp_rst .setimmediatevalue (0 )
@@ -278,38 +278,38 @@ def __init__(self, dut, msix_count=32):
278
278
# Ethernet
279
279
self .qsfp_mac = []
280
280
281
- for k in range ( 2 ) :
282
- cocotb .start_soon (Clock (getattr ( dut , f"qsfp { k } _rx_clk" ) , 3.102 , units = "ns" ).start ())
283
- cocotb .start_soon (Clock (getattr ( dut , f"qsfp { k } _tx_clk" ) , 3.102 , units = "ns" ).start ())
281
+ for ch in self . dut . ch :
282
+ cocotb .start_soon (Clock (ch . ch_rx_clk , 3.102 , units = "ns" ).start ())
283
+ cocotb .start_soon (Clock (ch . ch_tx_clk , 3.102 , units = "ns" ).start ())
284
284
285
285
mac = EthMac (
286
- tx_clk = getattr ( dut , f"qsfp { k } _tx_clk" ) ,
287
- tx_rst = getattr ( dut , f"qsfp { k } _tx_rst" ) ,
288
- tx_bus = AxiStreamBus .from_prefix (dut , f"qsfp { k } _tx_axis " ),
289
- tx_ptp_time = getattr ( dut , f"qsfp { k } _tx_ptp_time" ) ,
290
- tx_ptp_ts = getattr ( dut , f"qsfp { k } _tx_ptp_ts" ) ,
291
- tx_ptp_ts_tag = getattr ( dut , f"qsfp { k } _tx_ptp_ts_tag" ) ,
292
- tx_ptp_ts_valid = getattr ( dut , f"qsfp { k } _tx_ptp_ts_valid" ) ,
293
- rx_clk = getattr ( dut , f"qsfp { k } _rx_clk" ) ,
294
- rx_rst = getattr ( dut , f"qsfp { k } _rx_rst" ) ,
295
- rx_bus = AxiStreamBus .from_prefix (dut , f"qsfp { k } _rx_axis " ),
296
- rx_ptp_time = getattr ( dut , f"qsfp { k } _rx_ptp_time" ) ,
286
+ tx_clk = ch . ch_tx_clk ,
287
+ tx_rst = ch . ch_tx_rst ,
288
+ tx_bus = AxiStreamBus .from_prefix (ch , "ch_tx_axis " ),
289
+ tx_ptp_time = ch . ch_tx_ptp_time ,
290
+ tx_ptp_ts = ch . ch_tx_ptp_ts ,
291
+ tx_ptp_ts_tag = ch . ch_tx_ptp_ts_tag ,
292
+ tx_ptp_ts_valid = ch . ch_tx_ptp_ts_valid ,
293
+ rx_clk = ch . ch_rx_clk ,
294
+ rx_rst = ch . ch_rx_rst ,
295
+ rx_bus = AxiStreamBus .from_prefix (ch , "ch_rx_axis " ),
296
+ rx_ptp_time = ch . ch_rx_ptp_time ,
297
297
ifg = 12 , speed = 100e9
298
298
)
299
299
300
300
self .qsfp_mac .append (mac )
301
301
302
- getattr ( dut , f"qsfp { k } _rx_status" ) .setimmediatevalue (1 )
303
- getattr ( dut , f"qsfp { k } _rx_lfc_req" ) .setimmediatevalue (0 )
304
- getattr ( dut , f"qsfp { k } _rx_pfc_req" ) .setimmediatevalue (0 )
302
+ ch . ch_rx_status .setimmediatevalue (1 )
303
+ ch . ch_rx_lfc_req .setimmediatevalue (0 )
304
+ ch . ch_rx_pfc_req .setimmediatevalue (0 )
305
305
306
- cocotb .start_soon (Clock (getattr ( dut , f"qsfp { k } _drp_clk" ) , 8 , units = "ns" ).start ())
307
- getattr ( dut , f"qsfp { k } _drp_rst" ) .setimmediatevalue (0 )
308
- getattr ( dut , f"qsfp { k } _drp_do" ) .setimmediatevalue (0 )
309
- getattr ( dut , f"qsfp { k } _drp_rdy" ) .setimmediatevalue (0 )
306
+ cocotb .start_soon (Clock (dut . qsfp_drp_clk , 8 , units = "ns" ).start ())
307
+ dut . qsfp_drp_rst .setimmediatevalue (0 )
308
+ dut . qsfp_drp_do .setimmediatevalue (0 )
309
+ dut . qsfp_drp_rdy .setimmediatevalue (0 )
310
310
311
- getattr ( dut , f"qsfp { k } _modprsl" ) .setimmediatevalue (0 )
312
- getattr ( dut , f"qsfp { k } _intl" ) .setimmediatevalue (1 )
311
+ dut . qsfp_modprsl .setimmediatevalue (0 )
312
+ dut . qsfp_intl .setimmediatevalue (1 )
313
313
314
314
dut .sw .setimmediatevalue (0 )
315
315
@@ -326,17 +326,17 @@ def __init__(self, dut, msix_count=32):
326
326
async def init (self ):
327
327
328
328
self .dut .ptp_rst .setimmediatevalue (0 )
329
- for k in range ( 2 ) :
330
- getattr ( self . dut , f"qsfp { k } _rx_rst" ) .setimmediatevalue (0 )
331
- getattr ( self . dut , f"qsfp { k } _tx_rst" ) .setimmediatevalue (0 )
329
+ for ch in self . dut . ch :
330
+ ch . ch_rx_rst .setimmediatevalue (0 )
331
+ ch . ch_tx_rst .setimmediatevalue (0 )
332
332
333
333
await RisingEdge (self .dut .clk_250mhz )
334
334
await RisingEdge (self .dut .clk_250mhz )
335
335
336
336
self .dut .ptp_rst .setimmediatevalue (1 )
337
- for k in range ( 2 ) :
338
- getattr ( self . dut , f"qsfp { k } _rx_rst" ) .setimmediatevalue (1 )
339
- getattr ( self . dut , f"qsfp { k } _tx_rst" ) .setimmediatevalue (1 )
337
+ for ch in self . dut . ch :
338
+ ch . ch_rx_rst .setimmediatevalue (1 )
339
+ ch . ch_tx_rst .setimmediatevalue (1 )
340
340
341
341
await FallingEdge (self .dut .rst_250mhz )
342
342
await Timer (100 , 'ns' )
@@ -345,9 +345,9 @@ async def init(self):
345
345
await RisingEdge (self .dut .clk_250mhz )
346
346
347
347
self .dut .ptp_rst .setimmediatevalue (0 )
348
- for k in range ( 2 ) :
349
- getattr ( self . dut , f"qsfp { k } _rx_rst" ) .setimmediatevalue (0 )
350
- getattr ( self . dut , f"qsfp { k } _tx_rst" ) .setimmediatevalue (0 )
348
+ for ch in self . dut . ch :
349
+ ch . ch_rx_rst .setimmediatevalue (0 )
350
+ ch . ch_tx_rst .setimmediatevalue (0 )
351
351
352
352
await self .rc .enumerate ()
353
353
@@ -364,7 +364,7 @@ async def _run_loopback(self):
364
364
@cocotb .test ()
365
365
async def run_test_nic (dut ):
366
366
367
- tb = TB (dut , msix_count = 2 ** len (dut .core_inst .core_pcie_inst .irq_index ))
367
+ tb = TB (dut , msix_count = 2 ** len (dut .uut . core_inst .core_pcie_inst .irq_index ))
368
368
369
369
await tb .init ()
370
370
@@ -572,9 +572,10 @@ async def run_test_nic(dut):
572
572
def test_fpga_core (request ):
573
573
dut = "fpga_core"
574
574
module = os .path .splitext (os .path .basename (__file__ ))[0 ]
575
- toplevel = dut
575
+ toplevel = f"test_ { dut } "
576
576
577
577
verilog_sources = [
578
+ os .path .join (tests_dir , f"{ toplevel } .v" ),
578
579
os .path .join (rtl_dir , f"{ dut } .v" ),
579
580
os .path .join (rtl_dir , "common" , "mqnic_core_pcie_us.v" ),
580
581
os .path .join (rtl_dir , "common" , "mqnic_core_pcie.v" ),
0 commit comments