Skip to content

Support falling edge clocks (for FFs and timing analysis) #2182

Closed as not planned
@mkurc-ant

Description

@mkurc-ant

Currently VPR has no notion of falling edge clocks. All clocks are implicitly assumed to be rising edge so is clock edge sensitivity of flip-flops / latches. Static timing analysis does not support falling edges as well.

Proposed Behaviour

There is a way to specify clock edge for clock ports in architecture models, VPR performs timing driven P&R aware of clock sink edge sensitivity, VPR can write post-synthesis (its actually post P&R) netlist + SDF files with correct clock edge sensitivities.

Current Behaviour

None of above is supported

Possible Solution

  • Add a new property for clock ports - edge,
  • Add a new internal architecture model for negedge .latch,
  • Support reading & parsing negedge sensitive .latch instances in BLIF files,
  • Enhance tatum library so that it can perform STA with presence of negedge clocks,
  • Add support for writing correct clock edges to Verilog, BLIF and SDF backends for post-synthesis netlists and timing annotations.

Context

Most modern FPGAs have FFs that can be configured to work on either edge of a clock, there are designs that utilize that as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions