Skip to content

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

@hongted

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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions