Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Option to exclude nodes from transformation #152

Open
maltanar opened this issue Jun 16, 2020 · 0 comments
Open

Option to exclude nodes from transformation #152

maltanar opened this issue Jun 16, 2020 · 0 comments
Labels
enhancement New feature or request

Comments

@maltanar
Copy link
Collaborator

maltanar commented Jun 16, 2020

Sometimes it's necessary to iterate over a design multiple times by changing some parameters to observe how the behavior changes. To speed up the dev process for these use cases, it'd be beneficial to have the possibility of filtering out certain nodes prior to applying transformations.

One example of this is the setting of minimal FIFO sizes to get full throughput: we would create a stitched IP design with some initial FIFO sizes, run a throughput test in rtlsim, modify the FIFO sizes based on observations and do it again. In this case, everything but the FIFO nodes can be excluded from code generation transformation since they would remain the same.

In terms of how this could be implemented:

  • the NodeLocalTransformation provides an almost-natural way of doing this -- we could add an additional filter_fxn argument (default value None) that takes in a function examining a single node and returning True/False to indicate whether that node should be kept. Internally, the base class impl can be modified to run filter on the nodes with this function prior to calling parallel map.
  • the general Transformation is a bit harder but we could use the same interface and leave it up to each transformation to respect it.

This would also provide a solution to #92 -- not exactly the same thing, but one could restrict the filter to operate on one or a few nodes per call.

@maltanar maltanar added the enhancement New feature or request label Jun 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant