Skip to content

SYNTH_HIERARCHICAL=1 running times and what does it mean? #1647

Closed Answered by maliberty
oharboe asked this question in General
Discussion options

You must be logged in to vote

Synthesis goes module by module but does not optimize across module boundaries. If you flatten then you have a single module so you get maximum optimization but the largest runtime. You also lose that information that is useful for mpl2 and the user.

If you go with purely hierarchical the runtime is better but the results worse. Ideally you want to flatten small modules and keep larger ones. Its hard to know do that with yosys today. So we run a purely hierarchical run, get the sizes, build a list of modules to keep, and re-run yosys. @gadfort has some suggestions on how we might mitigate the cost but I haven't had time to invest in exploring them.

Replies: 1 comment

Comment options

You must be logged in to vote
0 replies
Answer selected by oharboe
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants