Verify that mux tree generation results in good QoR
See original GitHub issueRight now we’re generating code like addr == 3 ? elt3 : (addr == 2 ? elt2 : (addr == 1 ? elt1 : elt0))
. Verify that Design Compiler does a good job with that, as compared to balanced trees (addr[1] ? (addr[0] ? elt3 : elt2) : (addr[0] ? elt1 : elt0)
) and explicit decoding ((addr == 3 ? elt3 : 0) | (addr == 2 ? elt2 : 0) | (addr == 1 ? elt1 : 0) | (addr == 0 ? elt0 : 0)
).
Issue Analytics
- State:
- Created 6 years ago
- Comments:16 (14 by maintainers)
Top Results From Across the Web
Automatic QoR Suggestions and ML Strategies - 2022.2 English
If ML strategies exist before the run is started, the RQS file can be set using the RQS_FILES property. At the end of...
Read more >IC Compiler is for place and route and it is used after synthesis ...
Use the check_legality -verbose command to verify that the placement is legal. Running clock tree synthesis on a design that does not have...
Read more >Best Practices using Synopsys Fusion Technology to Achieve
Each generation brings faster performance and new infrastructure-specific features ... Architected to Deliver Fastest Convergence and Best QoR.
Read more >Clock Tree Power Analysis - NTNU Open
The goal of this exploration is to illustrate trade-offs and examine how the different options affect the synthesis results. Synthesis results on a...
Read more >Fast and Accurate Estimation of Quality of Results in High ...
quality of results (QoR) achieved by FPGA-targeted designs. Inaccurate. HLS estimates prevent designers from performing meaningful design.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
It would be genuinely surprising if they do anything smarter than the reflective pattern I mentioned. When there’s more time, I’ll verify that; but since DC is doing a good job already, this is a decidedly lower priority issue than I thought.
I think it varies from issue to issue, and relying on synthesis tools is the right approach for some things (e.g., datapath synthesis with redundant forms, like computing a*b+c).
Agreed that all Chisel utils should be audited for QoR.
Not sure about the mux vs. case matter; I’m going to look into it.