-
I've set What does I know it does "hierarchical synthesis instead of flattened", but a bit more elaboration on what this means and what to expect would be helpful. Is it expected that
|
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
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. |
Beta Was this translation helpful? Give feedback.
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.