@@ -133,7 +133,7 @@ ReportPath::ReportPath(StaState *sta) :
133133{
134134 makeFields ();
135135 setDigits (2 );
136- setReportFields (false , false , false , false , false , false , false , false );
136+ setReportFields (false , false , false , false , false , false , false , false , false );
137137}
138138
139139ReportPath::~ReportPath ()
@@ -146,6 +146,7 @@ ReportPath::~ReportPath()
146146 delete field_fanout_;
147147 delete field_variation_;
148148 delete field_src_attr_;
149+ delete field_orig_name_;
149150 delete field_edge_;
150151 delete field_case_;
151152}
@@ -171,6 +172,8 @@ ReportPath::makeFields()
171172 true , nullptr , true );
172173 field_src_attr_ = makeField (" src_attr" , " Src Attr" , 40 ,
173174 true , nullptr , true );
175+ field_orig_name_ = makeField (" orig_name" , " Orig Name" , 36 ,
176+ true , nullptr , false );
174177}
175178
176179ReportField *
@@ -231,7 +234,8 @@ ReportPath::setReportFields(bool report_input_pin,
231234 bool report_slew,
232235 bool report_fanout,
233236 bool report_variation,
234- bool report_src_attr)
237+ bool report_src_attr,
238+ bool report_orig_name)
235239{
236240 report_input_pin_ = report_input_pin;
237241 report_hier_pins_ = report_hier_pins;
@@ -242,6 +246,7 @@ ReportPath::setReportFields(bool report_input_pin,
242246 field_fanout_->setEnabled (report_fanout);
243247 field_variation_->setEnabled (report_variation);
244248 field_src_attr_->setEnabled (report_src_attr);
249+ field_orig_name_->setEnabled (report_orig_name);
245250 // for debug
246251 field_case_->setEnabled (false );
247252}
@@ -2457,11 +2462,16 @@ ReportPath::reportPathLine(const Path *path,
24572462 std::string src_attr;
24582463 if (inst)
24592464 src_attr = network_->getAttribute (inst, " src" );
2465+ std::string orig_name;
2466+ if (inst && field_orig_name_->enabled ()) {
2467+ std::string port_name = network_->portName (pin);
2468+ orig_name = network_->getAttribute (inst, " orig_name_" + port_name);
2469+ }
24602470 // Don't show capacitance field for input pins.
24612471 if (is_driver && field_capacitance_->enabled ())
24622472 cap = graph_delay_calc_->loadCap (pin, rf, scene, min_max);
24632473 reportLine (what, cap, slew, field_blank_, incr, field_blank_,
2464- time, false , early_late, rf, src_attr, line_case);
2474+ time, false , early_late, rf, src_attr, orig_name, line_case);
24652475}
24662476
24672477void
@@ -2739,6 +2749,11 @@ ReportPath::reportPath6(const Path *path,
27392749 std::string src_attr;
27402750 if (inst)
27412751 src_attr = network_->getAttribute (inst, " src" );
2752+ std::string orig_name;
2753+ if (inst && field_orig_name_->enabled ()) {
2754+ std::string port_name = network_->portName (pin);
2755+ orig_name = network_->getAttribute (inst, " orig_name_" + port_name);
2756+ }
27422757 // Always show the search start point (register clk pin).
27432758 // Skip reporting the clk tree unless it is requested.
27442759 if (is_clk_start
@@ -2831,13 +2846,13 @@ ReportPath::reportPath6(const Path *path,
28312846 const std::string what = descriptionField (vertex);
28322847 reportLine (what, cap, slew, fanout,
28332848 incr, field_blank_, time, false , min_max, rf, src_attr,
2834- line_case);
2849+ orig_name, line_case);
28352850
28362851 if (report_net_) {
28372852 const std::string what2 = descriptionNet (pin);
28382853 reportLine (what2, field_blank_, field_blank_, field_blank_,
28392854 field_blank_, field_blank_, field_blank_, false , min_max,
2840- nullptr , src_attr, " " );
2855+ nullptr , src_attr, " " , " " );
28412856 }
28422857 prev_time = time;
28432858 }
@@ -2850,7 +2865,7 @@ ReportPath::reportPath6(const Path *path,
28502865 const std::string what = descriptionField (vertex);
28512866 reportLine (what, field_blank_, slew, field_blank_,
28522867 incr, field_blank_, time, false , min_max, rf, src_attr,
2853- line_case);
2868+ orig_name, line_case);
28542869 prev_time = time;
28552870 }
28562871 }
@@ -2875,27 +2890,27 @@ ReportPath::reportVariation(const Path *path) const
28752890 float std_dev = arc_delay.stdDev ();
28762891 reportLine (" sigma" , field_blank_, field_blank_, field_blank_,
28772892 field_blank_, std_dev, field_blank_, true , min_max,
2878- nullptr , " " , " " );
2893+ nullptr , " " , " " , " " );
28792894 break ;
28802895 }
28812896 case PocvMode::skew_normal: {
28822897 float mean = arc_delay.mean ();
28832898 reportLine (" mean" , field_blank_, field_blank_, field_blank_,
28842899 field_blank_, mean, field_blank_, true , min_max,
2885- nullptr , " " , " " );
2900+ nullptr , " " , " " , " " );
28862901 float mean_shift = arc_delay.meanShift ();
28872902 reportLine (" mean_shift" , field_blank_, field_blank_, field_blank_,
28882903 field_blank_, mean_shift, field_blank_, true , min_max,
2889- nullptr , " " , " " );
2904+ nullptr , " " , " " , " " );
28902905 float std_dev = arc_delay.stdDev ();
28912906 reportLine (" std_dev" , field_blank_, field_blank_, field_blank_,
28922907 field_blank_, std_dev, field_blank_, true , min_max,
2893- nullptr , " " , " " );
2908+ nullptr , " " , " " , " " );
28942909 // skewness is dimensionless, so scale it to the field's time units.
28952910 float skewness = arc_delay.skewness () * units_->timeUnit ()->scale ();
28962911 reportLine (" skewness" , field_blank_, field_blank_, field_blank_,
28972912 field_blank_, skewness, field_blank_, true , min_max,
2898- nullptr , " " , " " );
2913+ nullptr , " " , " " , " " );
28992914 break ;
29002915 }
29012916 default :
@@ -2923,7 +2938,7 @@ ReportPath::reportHierPinsThru(const Path *path) const
29232938 const std::string what = descriptionField (hpin);
29242939 reportLine (what, field_blank_, field_blank_, field_blank_,
29252940 field_blank_, field_blank_, field_blank_, false , path->minMax (this ),
2926- nullptr , " " , " " );
2941+ nullptr , " " , " " , " " );
29272942 }
29282943 }
29292944 }
@@ -3116,7 +3131,7 @@ ReportPath::reportLine(std::string_view what,
31163131 const EarlyLate *early_late) const
31173132{
31183133 reportLine (what, field_blank_, field_blank_, field_blank_, field_blank_,
3119- field_blank_, total, false , early_late, nullptr , " " , " " );
3134+ field_blank_, total, false , early_late, nullptr , " " , " " , " " );
31203135}
31213136
31223137// Report negative total.
@@ -3127,7 +3142,7 @@ ReportPath::reportLineNegative(std::string_view what,
31273142{
31283143 reportLine (what, field_blank_, field_blank_, field_blank_,
31293144 field_blank_, field_blank_, total, true /* tota_with_minus */ ,
3130- early_late, nullptr , " " , " " );
3145+ early_late, nullptr , " " , " " , " " );
31313146}
31323147
31333148// Report total, and transition suffix.
@@ -3138,7 +3153,7 @@ ReportPath::reportLine(std::string_view what,
31383153 const RiseFall *rf) const
31393154{
31403155 reportLine (what, field_blank_, field_blank_, field_blank_,
3141- field_blank_, field_blank_, total, false , early_late, rf, " " , " " );
3156+ field_blank_, field_blank_, total, false , early_late, rf, " " , " " , " " );
31423157}
31433158
31443159// Report increment, and total.
@@ -3149,7 +3164,7 @@ ReportPath::reportLine(std::string_view what,
31493164 const EarlyLate *early_late) const
31503165{
31513166 reportLine (what, field_blank_, field_blank_, field_blank_,
3152- incr, field_blank_, total, false , early_late, nullptr , " " , " " );
3167+ incr, field_blank_, total, false , early_late, nullptr , " " , " " , " " );
31533168}
31543169
31553170// Report increment, total, and transition suffix.
@@ -3161,7 +3176,7 @@ ReportPath::reportLine(std::string_view what,
31613176 const RiseFall *rf) const
31623177{
31633178 reportLine (what, field_blank_, field_blank_, field_blank_,
3164- incr, field_blank_, total, false , early_late, rf, " " , " " );
3179+ incr, field_blank_, total, false , early_late, rf, " " , " " , " " );
31653180}
31663181
31673182// Report slew, increment, and total.
@@ -3173,7 +3188,7 @@ ReportPath::reportLine(std::string_view what,
31733188 const EarlyLate *early_late) const
31743189{
31753190 reportLine (what, field_blank_, slew, field_blank_,
3176- incr, field_blank_, total, false , early_late, nullptr , " " , " " );
3191+ incr, field_blank_, total, false , early_late, nullptr , " " , " " , " " );
31773192}
31783193
31793194void
@@ -3188,14 +3203,15 @@ ReportPath::reportLine(std::string_view what,
31883203 const EarlyLate *early_late,
31893204 const RiseFall *rf,
31903205 std::string_view src_attr,
3206+ std::string_view orig_name,
31913207 std::string_view line_case) const
31923208{
31933209 std::string line;
31943210 size_t field_index = 0 ;
31953211 bool first_field = true ;
31963212 for (const ReportField *field : fields_) {
31973213 bool last_field = field_index == (fields_.size () - 1 );
3198-
3214+
31993215 if (field->enabled ()) {
32003216 if (!first_field)
32013217 line += ' ' ;
@@ -3238,6 +3254,12 @@ ReportPath::reportLine(std::string_view what,
32383254 else
32393255 reportFieldBlank (field, line);
32403256 }
3257+ else if (field == field_orig_name_) {
3258+ if (orig_name != " " )
3259+ reportField (orig_name, field, line);
3260+ else
3261+ reportFieldBlank (field, line);
3262+ }
32413263 else if (field == field_case_)
32423264 line += line_case;
32433265
0 commit comments