write_sdf use corner library pvt
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
2d8247a1f1
commit
2054d01d6c
|
|
@ -108,7 +108,7 @@ public:
|
|||
PathAnalysisPt *findPathAnalysisPt(const MinMax *min_max) const;
|
||||
void addLiberty(LibertyLibrary *lib,
|
||||
const MinMax *min_max);
|
||||
LibertySeq *libertyLibraries(const MinMax *min_max);
|
||||
const LibertySeq &libertyLibraries(const MinMax *min_max) const;
|
||||
int libertyIndex(const MinMax *min_max) const;
|
||||
|
||||
protected:
|
||||
|
|
|
|||
|
|
@ -215,24 +215,27 @@ SdfWriter::writeHeader(LibertyLibrary *default_lib,
|
|||
gzprintf(stream_, " (VERSION \"%s\")\n", STA_VERSION);
|
||||
gzprintf(stream_, " (DIVIDER %c)\n", sdf_divider_);
|
||||
|
||||
OperatingConditions *cond_min =
|
||||
sdc_->operatingConditions(MinMax::min());
|
||||
if (cond_min == nullptr)
|
||||
cond_min = default_lib->defaultOperatingConditions();
|
||||
OperatingConditions *cond_max =
|
||||
sdc_->operatingConditions(MinMax::max());
|
||||
if (cond_max == nullptr)
|
||||
cond_max = default_lib->defaultOperatingConditions();
|
||||
LibertyLibrary *lib_min = default_lib;
|
||||
const LibertySeq &libs_min = corner_->libertyLibraries(MinMax::min());
|
||||
if (!libs_min.empty())
|
||||
lib_min = libs_min[0];
|
||||
LibertyLibrary *lib_max = default_lib;
|
||||
const LibertySeq &libs_max = corner_->libertyLibraries(MinMax::max());
|
||||
if (!libs_max.empty())
|
||||
lib_max = libs_max[0];
|
||||
|
||||
OperatingConditions *cond_min = lib_min->defaultOperatingConditions();
|
||||
OperatingConditions *cond_max = lib_max->defaultOperatingConditions();
|
||||
if (cond_min && cond_max) {
|
||||
gzprintf(stream_, " (VOLTAGE %.3f::%.3f)\n",
|
||||
cond_min->voltage(),
|
||||
cond_max->voltage());
|
||||
cond_min->voltage(),
|
||||
cond_max->voltage());
|
||||
gzprintf(stream_, " (PROCESS \"%.3f::%.3f\")\n",
|
||||
cond_min->process(),
|
||||
cond_max->process());
|
||||
cond_min->process(),
|
||||
cond_max->process());
|
||||
gzprintf(stream_, " (TEMPERATURE %.3f::%.3f)\n",
|
||||
cond_min->temperature(),
|
||||
cond_max->temperature());
|
||||
cond_min->temperature(),
|
||||
cond_max->temperature());
|
||||
}
|
||||
|
||||
const char *sdf_timescale = nullptr;
|
||||
|
|
|
|||
|
|
@ -467,10 +467,10 @@ Corner::addLiberty(LibertyLibrary *lib,
|
|||
liberty_[min_max->index()].push_back(lib);
|
||||
}
|
||||
|
||||
LibertySeq *
|
||||
Corner::libertyLibraries(const MinMax *min_max)
|
||||
const LibertySeq &
|
||||
Corner::libertyLibraries(const MinMax *min_max) const
|
||||
{
|
||||
return &liberty_[min_max->index()];
|
||||
return liberty_[min_max->index()];
|
||||
}
|
||||
|
||||
int
|
||||
|
|
|
|||
Loading…
Reference in New Issue