-
Notifications
You must be signed in to change notification settings - Fork 401
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
Blackbox SDF timing fixes #1566
Blackbox SDF timing fixes #1566
Conversation
@tpagarani FYI |
@vaughnbetz FYI |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good; just have some suggestions for additional comments on data structures and types.
578d570
to
5dc8e83
Compare
Looks good to me. Go ahead and merge when CI finishes (or I will, but you can probably get it in faster if you merge yourself). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, LGTM.
Description
Summary of changes:
Traverse through input and output pins of blackbox primitives and populate timing_arcs, Tsu, Thld, Tco in local netist_writer data structure.
Store and output the correct reference clock ports in SDF writing.
Related Issue
SymbiFlow#537
Motivation and Context
There are multiple issues related to SDF writer for Blackbox primitive
The primitives being modelled as Blackbox have combinational and sequential timings. In present --analysis code, BlackBox combinational and sequential timings are not getting populated
Blackbox could have more than 1 reference clocks (e.g. Dual Port RAM). Current SDF generation does not handle timing checks w.r.t. specific clock. It uses a generic name "clk" to write out timing checks
How Has This Been Tested?
Turned on analysis option and generated the SDF for following test suite
https://github.com/QuickLogic-Corp/symbiflow-arch-defs/tree/quicklogic-upstream-rebase/quicklogic/pp3/tests
ran the vtr_reg_strong and passed.
Types of changes
Checklist: