Skip to content

Commit 4bd9919

Browse files
DanielKellerMsermazz
authored andcommitted
fix: update HCI interface to propagate Fifo Depth parameter. Fixes combinational loop when iDMA reads and writes to and from TCDM with 2 backends; bumb lock versions
Signed-off-by: Daniel Keller <daniel.kellermartinez@csem.ch>
1 parent 00772ad commit 4bd9919

File tree

3 files changed

+24
-16
lines changed

3 files changed

+24
-16
lines changed

Bender.lock

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ packages:
122122
dependencies:
123123
- common_cells
124124
hci:
125-
revision: 5421524afca701e45a83d0f1ec47568c019e021a
125+
revision: 0faa4f3cdfc87ead4a10e5c307c00aa6c4504d0d
126126
version: null
127127
source:
128128
Git: https://github.com/pulp-platform/hci.git
@@ -198,7 +198,7 @@ packages:
198198
dependencies:
199199
- common_cells
200200
neureka:
201-
revision: ff7090eb3738a5192af0f4e1499e4ed44a3041e5
201+
revision: 5ff2b6bc0a04de07eb2549a599655fb6d7f99c58
202202
version: null
203203
source:
204204
Git: https://github.com/pulp-platform/neureka.git

rtl/cluster_interconnect_wrap.sv

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,8 @@ module cluster_interconnect_wrap
9292
.UW(HCI_HWPE_SIZE.UW),
9393
.IW(HCI_HWPE_SIZE.IW),
9494
.EW(HCI_HWPE_SIZE.EW),
95-
.EHW(HCI_HWPE_SIZE.EHW)
95+
.EHW(HCI_HWPE_SIZE.EHW),
96+
.FD(HCI_HWPE_SIZE.FD)
9697
)
9798
s_hwpe_intc [0:N_HCI_HWPE_PORTS-1] (
9899
.clk(clk_i)
@@ -105,7 +106,8 @@ module cluster_interconnect_wrap
105106
.UW(HCI_HWPE_SIZE.UW),
106107
.IW(HCI_HWPE_SIZE.IW),
107108
.EW(HCI_HWPE_SIZE.EW),
108-
.EHW(HCI_CORE_SIZE.EHW)
109+
.EHW(HCI_CORE_SIZE.EHW),
110+
.FD(HCI_DMA_SIZE.FD)
109111
)
110112
s_dma_intc [0:N_HCI_DMA_PORTS-1] (
111113
.clk(clk_i)
@@ -144,7 +146,6 @@ module cluster_interconnect_wrap
144146
.N_MEM ( NB_TCDM_BANKS ),
145147
.IW ( TCDM_ID_WIDTH ),
146148
.TS_BIT ( TEST_SET_BIT ),
147-
.EXPFIFO ( 2 ),
148149
.FILTER_WRITE_R_VALID ( HCI_FILTER_WRITE_R_VALID ),
149150
//For an explanation of these macros refer to https://github.com/pulp-platform/hci/blob/v2.1.1/rtl/common/hci_helpers.svh
150151
.`HCI_SIZE_PARAM(cores) ( HCI_CORE_SIZE ),
@@ -178,7 +179,6 @@ module cluster_interconnect_wrap
178179
.N_MEM ( NB_TCDM_BANKS ),
179180
.IW ( TCDM_ID_WIDTH ),
180181
.TS_BIT ( TEST_SET_BIT ),
181-
.EXPFIFO ( 0 ),
182182
.`HCI_SIZE_PARAM(cores) ( HCI_CORE_SIZE ),
183183
.`HCI_SIZE_PARAM(mems) ( HCI_MEM_SIZE ),
184184
.`HCI_SIZE_PARAM(hwpe) ( HCI_HWPE_SIZE )

rtl/pulp_cluster.sv

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,8 @@ localparam hci_package::hci_size_parameter_t HciCoreSizeParam = '{
383383
UW: DEFAULT_UW,
384384
IW: DEFAULT_IW,
385385
EW: DEFAULT_EW,
386-
EHW: DEFAULT_EHW
386+
EHW: DEFAULT_EHW,
387+
FD: 0
387388
};
388389
localparam hci_package::hci_size_parameter_t HciHwpeSizeParam = '{
389390
DW: Cfg.HwpeNumPorts * DataWidth,
@@ -392,7 +393,8 @@ localparam hci_package::hci_size_parameter_t HciHwpeSizeParam = '{
392393
UW: DEFAULT_UW,
393394
IW: DEFAULT_IW,
394395
EW: (Cfg.ECCInterco) ? HWPEParityWidth : DEFAULT_EW,
395-
EHW: DEFAULT_EHW
396+
EHW: DEFAULT_EHW,
397+
FD: 2
396398
};
397399
localparam hci_package::hci_size_parameter_t HciDmaSizeParam = '{
398400
DW: DMA_HCI_DATA_WIDTH,
@@ -401,14 +403,16 @@ localparam hci_package::hci_size_parameter_t HciDmaSizeParam = '{
401403
UW: DEFAULT_UW,
402404
IW: DEFAULT_IW,
403405
EW: DEFAULT_EW,
404-
EHW: DEFAULT_EHW
406+
EHW: DEFAULT_EHW,
407+
FD: 0
405408
};
406409

407410
/* logarithmic and peripheral interconnect interfaces */
408411
// ext -> log interconnect
409412
hci_core_intf #(
410413
.DW ( HciCoreSizeParam.DW ),
411-
.AW ( HciCoreSizeParam.AW )
414+
.AW ( HciCoreSizeParam.AW ),
415+
.FD ( HciCoreSizeParam.FD )
412416
) s_hci_ext[0:`NB_EXT-1] (
413417
.clk ( clk_i )
414418
);
@@ -422,7 +426,8 @@ XBAR_PERIPH_BUS s_hwpe_cfg_bus();
422426
// DMA -> (optionally) size converter
423427
hci_core_intf #(
424428
.DW ( HciDmaSizeParam.DW ),
425-
.AW ( HciDmaSizeParam.AW )
429+
.AW ( HciDmaSizeParam.AW ),
430+
.FD ( HciDmaSizeParam.FD )
426431
) s_hci_dma[0:Cfg.DmaNumPlugs-1] (
427432
.clk ( clk_i )
428433
);
@@ -438,13 +443,15 @@ hci_core_intf #(
438443
.DW ( HciHwpeSizeParam.DW ),
439444
.AW ( HciHwpeSizeParam.AW ),
440445
.EW ( HciHwpeSizeParam.EW ),
441-
.EHW ( HciHwpeSizeParam.EHW )
446+
.EHW ( HciHwpeSizeParam.EHW ),
447+
.FD ( HciHwpeSizeParam.FD )
442448
) s_hci_hwpe [0:0] (
443449
.clk ( clk_i )
444450
);
445451
hci_core_intf #(
446452
.DW ( HciCoreSizeParam.DW ),
447-
.AW ( HciCoreSizeParam.AW )
453+
.AW ( HciCoreSizeParam.AW ),
454+
.FD ( HciCoreSizeParam.FD )
448455
) s_hci_core [0:Cfg.NumCores-1] (
449456
.clk ( clk_i )
450457
);
@@ -472,7 +479,8 @@ XBAR_TCDM_BUS s_debug_bus[Cfg.NumCores-1:0]();
472479
// FIXME: iDMA
473480
hci_core_intf #(
474481
.DW ( HciCoreSizeParam.DW ),
475-
.AW ( HciCoreSizeParam.AW )
482+
.AW ( HciCoreSizeParam.AW ),
483+
.FD ( HciCoreSizeParam.FD )
476484
) s_core_dmactrl_bus [0:Cfg.NumCores-1] (
477485
.clk ( clk_i )
478486
);
@@ -518,7 +526,8 @@ localparam hci_package::hci_size_parameter_t HciMemSizeParam = '{
518526
UW: DEFAULT_UW,
519527
IW: TCDM_ID_WIDTH,
520528
EW: (Cfg.ECCInterco) ? ParityWidth+MetaParityWidth : DEFAULT_EW,
521-
EHW: DEFAULT_EHW
529+
EHW: DEFAULT_EHW,
530+
FD: 0
522531
};
523532

524533
// log interconnect -> TCDM memory banks (SRAM)
@@ -787,7 +796,6 @@ cluster_interconnect_wrap #(
787796
.HCI_HWPE_SIZE ( HciHwpeSizeParam ),
788797
.HCI_DMA_SIZE ( HciDmaSizeParam ),
789798
.HCI_MEM_SIZE ( HciMemSizeParam )
790-
791799
) cluster_interconnect_wrap_i (
792800
.clk_i ( clk_i ),
793801
.rst_ni ( rst_ni ),

0 commit comments

Comments
 (0)