write_sdc set_load net
This commit is contained in:
parent
3d4b0cf1a3
commit
6b448fe2c9
|
|
@ -1578,7 +1578,8 @@ WriteSdc::writeEnvironment() const
|
||||||
writeCommentSection("Environment");
|
writeCommentSection("Environment");
|
||||||
writeOperatingConditions();
|
writeOperatingConditions();
|
||||||
writeWireload();
|
writeWireload();
|
||||||
writePinLoads();
|
writePortLoads();
|
||||||
|
writeNetLoads();
|
||||||
writeDriveResistances();
|
writeDriveResistances();
|
||||||
writeDrivingCells();
|
writeDrivingCells();
|
||||||
writeInputTransitions();
|
writeInputTransitions();
|
||||||
|
|
@ -1606,7 +1607,44 @@ WriteSdc::writeWireload() const
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
WriteSdc::writePinLoads() const
|
WriteSdc::writeNetLoads() const
|
||||||
|
{
|
||||||
|
if (sdc_->net_wire_cap_map_) {
|
||||||
|
for (auto net_cap : *sdc_->net_wire_cap_map_) {
|
||||||
|
Net *net = net_cap.first;
|
||||||
|
MinMaxFloatValues &caps = net_cap.second;
|
||||||
|
float min_cap, max_cap;
|
||||||
|
bool min_exists, max_exists;
|
||||||
|
caps.value(MinMax::min(), min_cap, min_exists);
|
||||||
|
caps.value(MinMax::max(), max_cap, max_exists);
|
||||||
|
if (min_exists && max_exists
|
||||||
|
&& min_cap == max_cap)
|
||||||
|
writeNetLoad(net, MinMaxAll::all(), min_cap);
|
||||||
|
else {
|
||||||
|
if (min_exists)
|
||||||
|
writeNetLoad(net, MinMaxAll::min(), min_cap);
|
||||||
|
if (max_exists)
|
||||||
|
writeNetLoad(net, MinMaxAll::max(), max_cap);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WriteSdc::writeNetLoad(Net *net,
|
||||||
|
const MinMaxAll *min_max,
|
||||||
|
float cap) const
|
||||||
|
{
|
||||||
|
fprintf(stream_, "set_load ");
|
||||||
|
fprintf(stream_, "%s ", minMaxFlag(min_max));
|
||||||
|
writeCapacitance(cap);
|
||||||
|
fprintf(stream_, " ");
|
||||||
|
writeGetNet(net);
|
||||||
|
fprintf(stream_, "\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
WriteSdc::writePortLoads() const
|
||||||
{
|
{
|
||||||
CellPortBitIterator *port_iter = sdc_network_->portBitIterator(cell_);
|
CellPortBitIterator *port_iter = sdc_network_->portBitIterator(cell_);
|
||||||
while (port_iter->hasNext()) {
|
while (port_iter->hasNext()) {
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,11 @@ public:
|
||||||
void writeEnvironment() const;
|
void writeEnvironment() const;
|
||||||
void writeOperatingConditions() const;
|
void writeOperatingConditions() const;
|
||||||
void writeWireload() const;
|
void writeWireload() const;
|
||||||
void writePinLoads() const;
|
void writeNetLoads() const;
|
||||||
|
void writeNetLoad(Net *net,
|
||||||
|
const MinMaxAll *min_max,
|
||||||
|
float cap) const;
|
||||||
|
void writePortLoads() const;
|
||||||
void writePortLoads(Port *port) const;
|
void writePortLoads(Port *port) const;
|
||||||
void writePortFanout(Port *port) const;
|
void writePortFanout(Port *port) const;
|
||||||
void writeDriveResistances() const;
|
void writeDriveResistances() const;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue