Add logical objFifo placeholder op for connection reuse #709
+782
−327
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds the
amdaie.logicalobjectfifo.placeholder
operation that represents a logical objectFifo to be filled in later. This enables reuse of connections/circular DMAs/physical AIE channels for different data packets, which helps with (fused) operations with more than 2 inputs. This is especially useful for reading from/writing to DDR.Before this PR, the circular DMA connections would be always be tied to a HAL buffer on DDR/L3 and the control code NPU instruction could only change the addressing and not the input buffer:
By introducing placeholders, the NPU dma operation can specify the actual logical objFifo to be used: