Make tool optimize for fewer pipelining registers #221
Replies: 10 comments
-
https://google.github.io/xls/scheduling/#scheduling-to-minimize-pipeline-registers |
Beta Was this translation helpful? Give feedback.
-
Who knows maybe https://github.com/JulianKemmerer/PipelineC/blob/master/src/DEVICE_MODELS.py will get to this some day? |
Beta Was this translation helpful? Give feedback.
-
Closing #65 definitely helps reduce register use if you are combining global variables and deep pipelines |
Beta Was this translation helpful? Give feedback.
-
Does it lower resource usage? Any measutement? |
Beta Was this translation helpful? Give feedback.
-
Yeah recent commit for #65 looks to save ~50 percent of flip flops on ECP5 ray tracer builds - we should do another attempt making it work On Artix I measured up to like 87K flip-flops saved depending on how your count shift registers. See info in the pipelinec discord 👍 |
Beta Was this translation helpful? Give feedback.
-
Excellent work |
Beta Was this translation helpful? Give feedback.
-
What about keccak resource usage? I'm curious 😏 |
Beta Was this translation helpful? Give feedback.
-
@bartokon for keccak - the particulars of #65 I wouldnt expect to apply much IIRC about keccak
There also could be some room to tune some of weird pipelining magic numbers ... I am experimenting with some things right now for the ray tracer So ~maybe but probably not much improvement |
Beta Was this translation helpful? Give feedback.
-
Similar issue is wanting to optimize for area starts with first parsing area out of the reports from the tool... Similar to #45 |
Beta Was this translation helpful? Give feedback.
-
Part of this is also strategically removing input and output regs around modules that feed into each other. Ex. output reg of one module can be inputs of other. |
Beta Was this translation helpful? Give feedback.
-
Right now the tool inserts registers to meet timing - with no regard to how many registers are being inserted.
Instead: manually find the smallest bitwidth wire ~in the area... always choose to slice fewer wires over more if possible with the same timing characteristics/delays ...
Beta Was this translation helpful? Give feedback.
All reactions