The-OpenROAD-Project / The-OpenROAD-Project/OpenSTA
Sequential activity propagation should consider duty and activity on the clock pin
Nobody has claimed this yet.
- Dominant language
- Verilog
- Stars
- 619
- Forks
- 270
- Avg merge
- 5d 15h
- Merged PRs (30d)
- 4
Description
Is what propagates power for a sequential element. It only depends on data() and not clock() hence does not consider activity and/or duty on the clock pins.
Propagation should be updated to depend on both clocked_on and not just next_state functions for flops. A similar update may be needed for latches.
Extract from the .lib for a flop.
ff (IQ,IQN) {
clocked_on : "CLK";
next_state : "D";
}
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the propagation code in power/Power.cc around lines 836-838 and trace how data(), clock(), clocked_on, and next_state are used for sequential elements. Determine the corresponding behavior for flops and whether latches need the same treatment; done means propagation accounts for clock activity and duty as well as data activity.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100