Repository navigation
Unused PE slaves #25
Copy link
Copy link
Open
Description
If I am not mistaken, there are currently several unused peripheral slave signals connected to the PE_XBAR in cluster_interconnect_wrap, with speriph_bus linked to cluster_peripherals. pulp declares NB_SPERIPHS=10, while only 8 are actually used, with ID=3 and ID=8 unused. Below the definition of peripheral slave IDs (missing = 3, SPER_DECOMP_ID unused/set to 0).
pulp_cluster/packages/pulp_cluster_package.sv
Lines 26 to 35 in a317cda
| // position of peripherals on slave port of periph interconnect | |
| parameter SPER_EOC_ID = 0; | |
| parameter SPER_TIMER_ID = 1; | |
| parameter SPER_EVENT_U_ID = 2; | |
| parameter SPER_HWPE_ID = 4; | |
| parameter SPER_ICACHE_CTRL = 5; | |
| parameter SPER_DMA_CL_ID = 6; | |
| parameter SPER_DMA_FC_ID = 7; | |
| parameter SPER_DECOMP_ID = 8; | |
| parameter SPER_EXT_ID = 9; |
pulp_cluster/rtl/cluster_peripherals.sv
Lines 421 to 425 in a317cda
| assign speriph_slave[SPER_DECOMP_ID].gnt = '0; | |
| assign speriph_slave[SPER_DECOMP_ID].r_rdata = '0; | |
| assign speriph_slave[SPER_DECOMP_ID].r_opc = '0; | |
| assign speriph_slave[SPER_DECOMP_ID].r_id = '0; | |
| assign speriph_slave[SPER_DECOMP_ID].r_valid = '0; |
Are the missing peripherals intended to be added? Or can the signals be removed and the other IDs properly aligned to reduce the
PE_XBAR size? Or am I missing something?Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
FrancescoConti commentedon Jan 25, 2021
Changing the peripheral slave IDs means changing the peripheral address map; so far we have tried to keep compatibility even when some peripheral slave are actually disconnected. E.g., in many PULP instantiations there are no HWPEs, but we keep the related memory space reserved.
Moreover, since the missing slaves are grounded, I do not think you will see any particularly meaningful gain in removing the slaves -- the synthesis tool should be smart enough to reduce the xbar's size on its own.
I suggest keeping this as it is.
EDIT: forgot to mention a couple of points. For what concerns the decompressor, it is an IP that is used in some PULPs and might be added in the future. For what concerns periph ID 3, I am not sure why the hole is there, I do not think there is any peripheral using this address space; we should consider it "free" for new possible peripherals.
micprog commentedon Jan 25, 2021
Thank you for the info, keeping compatibility makes sense. If I'm not mistaken, the periph ID=3 is not grounded, it is never referenced anywhere, maybe adding a
parameter SPER_UNUSED_ID = 3and grounding it would make sense, if you want I can add this.FrancescoConti commentedon Jan 25, 2021
I think it's a good idea if it is not connected elsewhere.
micprog commentedon Jan 25, 2021
It seems the ID=3 is used for the Event unit, my bad for not seeing this, but it is not that transparent. I will add a comment to the pulp_cluster_package.sv to clarify this.
pulp_cluster/rtl/cluster_peripherals.sv
Lines 242 to 264 in a317cda
Merge pull request #25 from pulp-platform/control-pulp-zfinx