tag reporting

This commit is contained in:
James Cherry 2020-09-26 14:40:42 -07:00
parent bf3d254fe9
commit 6bf839435d
3 changed files with 18 additions and 15 deletions

View File

@ -2738,8 +2738,10 @@ Search::reportArrivals(Vertex *vertex) const
if (exists)
report_->print(" / %s", delayAsString(arrivals[req_index], this));
}
report_->print(" %s", tag->asString(this));
if (tag_group->hasClkTag()) {
report_->print(" %s", tag->asString(true, false, this));
bool report_clk_prev = false;
if (report_clk_prev
&& tag_group->hasClkTag()) {
PathVertex prev = check_crpr_->clkPathPrev(vertex, arrival_index);
report_->print(" clk_prev=[%s]",
prev.isNull() ? "NULL" : prev.name(this));
@ -2894,10 +2896,7 @@ Search::reportTags() const
for (TagIndex i = 0; i < tag_next_; i++) {
Tag *tag = tags_[i];
if (tag)
report_->print("Tag %4u %4u %s\n",
tag->index(),
tag->hash() % tag_set_->capacity(),
tag->asString(false, this)) ;
report_->print("%s\n", tag->asString(this)) ;
}
size_t long_hash = tag_set_->longestBucketHash();
printf("Longest hash bucket length %d hash=%zu\n",

View File

@ -86,11 +86,12 @@ Tag::~Tag()
const char *
Tag::asString(const StaState *sta) const
{
return asString(true, sta);
return asString(true, true, sta);
}
const char *
Tag::asString(bool report_index,
bool report_rf_min_max,
const StaState *sta) const
{
const Network *network = sta->network();
@ -100,12 +101,14 @@ Tag::asString(bool report_index,
if (report_index)
str += stringPrintTmp("%4d ", index_);
const RiseFall *rf = transition();
PathAnalysisPt *path_ap = corners->findPathAnalysisPt(path_ap_index_);
str += stringPrintTmp("%s %s/%d ",
rf->asString(),
path_ap->pathMinMax()->asString(),
path_ap_index_);
if (report_rf_min_max) {
const RiseFall *rf = transition();
PathAnalysisPt *path_ap = corners->findPathAnalysisPt(path_ap_index_);
str += stringPrintTmp("%s %s/%d ",
rf->asString(),
path_ap->pathMinMax()->asString(),
path_ap_index_);
}
ClockEdge *clk_edge = clkEdge();
if (clk_edge)
@ -138,8 +141,8 @@ Tag::asString(bool report_index,
const PathVertex crpr_clk_path(clk_info_->crprClkPath(), sta);
if (!crpr_clk_path.isNull()) {
str += " crpr_clk ";
str += crpr_clk_path.name(sta);
str += " crpr_pin ";
str += network->pathName(crpr_clk_path.pin(sta));
}
if (input_delay_) {

View File

@ -57,6 +57,7 @@ public:
~Tag();
const char *asString(const StaState *sta) const;
const char *asString(bool report_index,
bool report_rf_min_max,
const StaState *sta) const;
ClkInfo *clkInfo() const { return clk_info_; }
bool isClock() const { return is_clk_; }