Closed as not planned
Description
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.