Skip to content

Commit 645f266

Browse files
committed
report_dcalc prima resolves #418
Signed-off-by: James Cherry <cherry@parallaxsw.com>
1 parent 548b665 commit 645f266

3 files changed

Lines changed: 59 additions & 3 deletions

File tree

dcalc/PrimaDelayCalc.cc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -931,15 +931,18 @@ std::string
931931
PrimaDelayCalc::reportGateDelay(const Pin *drvr_pin,
932932
const TimingArc *arc,
933933
const Slew &in_slew,
934-
float,
935-
const Parasitic *,
936-
const LoadPinIndexMap &,
934+
float load_cap,
935+
const Parasitic *parasitic,
936+
const LoadPinIndexMap &load_pin_index_map,
937937
const Scene *scene,
938938
const MinMax *min_max,
939939
int digits)
940940
{
941941
GateTimingModel *model = arc->gateModel(scene, min_max);
942942
if (model) {
943+
// Delay calc to find ceff.
944+
gateDelay(drvr_pin, arc, in_slew, load_cap, parasitic,
945+
load_pin_index_map, scene, min_max);
943946
float in_slew1 = delayAsFloat(in_slew);
944947
float ceff = ceff_vth_[0];
945948
return model->reportGateDelay(pinPvt(drvr_pin, scene, min_max),

test/prima3.ok

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,3 +31,55 @@ Path Type: max
3131
228.48 slack (MET)
3232

3333

34+
Library: asap7_small
35+
Cell: BUFx2_ASAP7_75t_R
36+
Arc sense: positive_unate
37+
Arc type: combinational
38+
A ^ -> Y ^
39+
P = 1.00 V = 0.70 T = 25.00
40+
------- input_net_transition = 59.28
41+
| total_output_net_capacitance = 13.54
42+
| 11.52 23.04
43+
v --------------------
44+
40.00 | 48.68 71.50
45+
80.00 | 56.23 79.10
46+
Table value = 56.33
47+
PVT scale factor = 1.00
48+
Delay = 56.33
49+
50+
------- input_net_transition = 59.28
51+
| total_output_net_capacitance = 13.54
52+
| 11.52 23.04
53+
v --------------------
54+
40.00 | 53.99 104.08
55+
80.00 | 54.58 104.40
56+
Table value = 63.04
57+
PVT scale factor = 1.00
58+
Slew = 63.04
59+
60+
.............................................
61+
62+
A v -> Y v
63+
P = 1.00 V = 0.70 T = 25.00
64+
------- input_net_transition = 52.93
65+
| total_output_net_capacitance = 12.09
66+
| 11.52 23.04
67+
v --------------------
68+
40.00 | 48.42 67.20
69+
80.00 | 57.92 76.86
70+
Table value = 52.43
71+
PVT scale factor = 1.00
72+
Delay = 52.43
73+
74+
------- input_net_transition = 52.93
75+
| total_output_net_capacitance = 12.09
76+
| 11.52 23.04
77+
v --------------------
78+
40.00 | 42.77 80.89
79+
80.00 | 43.84 81.48
80+
Table value = 45.00
81+
PVT scale factor = 1.00
82+
Slew = 45.00
83+
84+
.............................................
85+

test/prima3.tcl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,4 @@ set_propagated_clock {clk1 clk2 clk3}
99
read_spef reg1_asap7.spef
1010
sta::set_delay_calculator prima
1111
report_checks -fields {input_pins slew} -format full_clock
12+
report_dcalc -from u1/A -to u1/Y

0 commit comments

Comments
 (0)