Decouple pipeline style from strategy
Created by: vloncar
Description
We control the top function pipeline style with the strategy, and while this works, sometimes the change to the top pipelining is forced by a layer (the conv layer) and as a consequence this causes all other layers to use resource
strategy which is unintended. Decoupling the strategy from the pipeline style fixes this. The explicitly set resource strategy still forces the dataflow
style to be used. The configuration can be explicitly set with PipelineStyle
(values can be pipeline
and dataflow
), but normally the users would still continue using the Strategy
config parameter. Fixes #699 (closed) and #759.
Type of change
-
Bug fix (non-breaking change that fixes an issue) -
New feature (non-breaking change which adds functionality)
Tests
I didn't add any extra tests. The best way to test this is to verify the generated HLS has the correct pragmas and parameters.h
. I manually tested a whole lot of combinations of this. Checking the IR in python may also be possible, but I'm not sure if this will capture all combinations.
Checklist
-
I have read the guidelines for contributing. -
I have commented my code, particularly in hard-to-understand areas. -
I have made corresponding changes to the documentation. -
My changes generate no new warnings. -
I have installed and run pre-commit
on the files I edited or added. -
I have added tests that prove my fix is effective or that my feature works.