Skip to content

Sequential activity propagation should consider duty and activity on the clock pin #283

Description

@hongted

OpenSTA/power/Power.cc

Lines 836 to 838 in 9c9b565

if (!hasUserActivity(out_pin)) {
PwrActivity activity = evalActivity(seq->data(), reg);
// Register output activity cannnot exceed one transition per clock cycle,

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";
  } 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions