Local memory slots not considered in area estimation, causing DSE to fail
If a PE has local memories (or more than one slave interface, for that matter), DSE will still try to build more instances than will fit in the current 128 slots limit. There are several possible solutions:
- Have separate enumeration for memory slots (affects status core,
platform_info
and potentially requires a more sophisticated way to determine accessibility for each PE). - Fix the algorithms to account for each slave interface instead of just assuming one.
Need to think about it some more; I guess, each PE will always have exactly one control slave interface. We could require a naming convention to identify it if more than one candidate is present on a PE, e.g., S_AXI_CTRL
or similar. All other slave interfaces could be assigned a base address from a different pool, e.g., using the upper 64 base addresses already reserved for platform addresses. But we'd have to come up with some O(k) or at least O(n) scheme to find the base addresses of all slaves on a PE.