-
Notifications
You must be signed in to change notification settings - Fork 415
clock gating and internally generated clocks #198
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
Comments
Thanks for the bug report. This is definitely an area where VPR can be improved. I'll try and reproduce the assertion issue you found, but in the meantime here are some thoughts and potential work arounds. Clock as Data Internally Generated Clocks Potential work-arounds
Where you configure VPR to treat
Better Clock Support in VPR |
This issue has been inactive for a year and has been marked as stale. It will be closed in 15 days if it continues to be stale. If you believe this is still an issue, please add a comment. |
This issue has been marked stale for 15 days and has been automatically closed. |
I have a large benchmark which heavily relies on clock gating using clock gates. Now i know there is no dedicated support for clock gating in VPR (and the shipped generic FPGA architecture descriptions) but I still would want to get some area / delay results and be able to check the post-routing netlist.
Commit 6ccf516 introduced a function to 'fix' the input netlist if a clock net occurs at a data input in an atom. First, this netlist fix does not maintain functionality as the input of the added latch is left floating. Second, this commit hides the actual problem and only generates assertions and crashes when the VPR option --gen_postsynthesis_netlist is set to 'on'.
Expected Behaviour
I dont know which parts of VPR can handle clock gating or routing of internally generated clocks.
But judging from the comments in pack/cluster.cpp, data pins driven by clock nets should yield a hard error.
Steps to Reproduce
See the attached BLIF netlist for a minimal example. Curiously, I can route the design if the FF for r_enable is removed (clk_i only drives the AND gate), in which case gated_clock_s becomes a global clock signal. Either way, i can not generate the post-routing netlist.
vpr_clock_gating.zip
Context
Do you have more information on the potential within VPR (architecture description, packer, routing, timing analysis) to support this user generated clock gating and potentially dedicated clock routing supported by the FPGA architecture (i.e., using global signal groups and special pack patterns)?
Your Environment
The text was updated successfully, but these errors were encountered: