Skip to content

Commit

Permalink
Add new timing endpoint breakdown fields to the
Browse files Browse the repository at this point in the history
ppa proto.

Signed-off-by: Mike Inouye <mikeinouye@google.com>
  • Loading branch information
mikesinouye committed Sep 4, 2024
1 parent 0c1adff commit a95524a
Showing 1 changed file with 23 additions and 4 deletions.
27 changes: 23 additions & 4 deletions synthesis/power_performance_area.proto
Original file line number Diff line number Diff line change
Expand Up @@ -118,16 +118,26 @@ message Performance {
// Approximate invariant:
// clock_period_ps - critical_path_ps = setup_wns_ps

// If negative, not enough time to have data ready for DFF to take data, i.e.
// the combinational path that exceeds that time the most.
// A negative value indicates that the data is not available in time at the
// endpoint to properly sample the value. A zero value indicates
// that timing is met - positive values are atypical but can be used to report
// margin. These values are the worst of in2reg, reg2reg, reg2out, and in2out.
optional sint32 setup_wns_ps = 3;
optional sint64 setup_tns_ps = 4;

// If negative, new data arrives too early for the DFF to ingest
// the previous one reliably.
// A negative value indicates that new data arrives too early for the
// endpoint to properly sample the previous value. A zero value indicates
// that timing is met - positive values are atypical but can be used to report
// margin. These values are the worst of in2reg, reg2reg, reg2out, and in2out.
optional sint32 hold_wns_ps = 5;
optional sint64 hold_tns_ps = 6;

// Additional timing breakdowns for in2reg, reg2reg, reg2out, and in2out.
optional TimingBreakdown in2reg = 20;
optional TimingBreakdown reg2reg = 21;
optional TimingBreakdown reg2out = 22;
optional TimingBreakdown in2out = 22;

// How far off the clock is between two different parts of the chip.
optional sint32 clock_skew_ps = 7;

Expand All @@ -147,6 +157,15 @@ message Performance {
optional int32 critical_path_cells = 16;
}

message TimingBreakdown {
// See `setup_wns_ps` and `setup_tns_ps` descriptions for details.
optional sint32 setup_wns_ps = 1;
optional sint64 setup_tns_ps = 2;
// See `hold_wns_ps` and `hold_tns_ps` descriptions for details.
optional sint32 hold_wns_ps = 3;
optional sint64 hold_tns_ps = 4;
}

message Power {
// The total power. Typically the sum of all of the below,
// but could be more if not all summands are mentioned below.
Expand Down

0 comments on commit a95524a

Please sign in to comment.