liberty is_memory_cell
This commit is contained in:
parent
3b77a15847
commit
4c0225acc3
|
|
@ -405,6 +405,8 @@ public:
|
||||||
void setDontUse(bool dont_use);
|
void setDontUse(bool dont_use);
|
||||||
bool isMacro() const { return is_macro_; }
|
bool isMacro() const { return is_macro_; }
|
||||||
void setIsMacro(bool is_macro);
|
void setIsMacro(bool is_macro);
|
||||||
|
bool isMemory() const { return is_memory_; }
|
||||||
|
void setIsMemory(bool is_memory);
|
||||||
bool isPad() const { return is_pad_; }
|
bool isPad() const { return is_pad_; }
|
||||||
void setIsPad(bool is_pad);
|
void setIsPad(bool is_pad);
|
||||||
bool interfaceTiming() const { return interface_timing_; }
|
bool interfaceTiming() const { return interface_timing_; }
|
||||||
|
|
@ -525,6 +527,7 @@ protected:
|
||||||
float area_;
|
float area_;
|
||||||
bool dont_use_;
|
bool dont_use_;
|
||||||
bool is_macro_;
|
bool is_macro_;
|
||||||
|
bool is_memory_;
|
||||||
bool is_pad_;
|
bool is_pad_;
|
||||||
bool has_internal_ports_;
|
bool has_internal_ports_;
|
||||||
bool interface_timing_;
|
bool interface_timing_;
|
||||||
|
|
|
||||||
|
|
@ -850,6 +850,7 @@ LibertyCell::LibertyCell(LibertyLibrary *library,
|
||||||
area_(0.0),
|
area_(0.0),
|
||||||
dont_use_(false),
|
dont_use_(false),
|
||||||
is_macro_(false),
|
is_macro_(false),
|
||||||
|
is_memory_(false),
|
||||||
is_pad_(false),
|
is_pad_(false),
|
||||||
has_internal_ports_(false),
|
has_internal_ports_(false),
|
||||||
interface_timing_(false),
|
interface_timing_(false),
|
||||||
|
|
@ -995,6 +996,12 @@ LibertyCell::setIsMacro(bool is_macro)
|
||||||
is_macro_ = is_macro;
|
is_macro_ = is_macro;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LibertyCell::setIsMemory(bool is_memory)
|
||||||
|
{
|
||||||
|
is_memory_ = is_memory;
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LibertyCell::LibertyCell::setIsPad(bool is_pad)
|
LibertyCell::LibertyCell::setIsPad(bool is_pad)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -286,6 +286,7 @@ LibertyReader::defineVisitors()
|
||||||
defineAttrVisitor("area", &LibertyReader::visitArea);
|
defineAttrVisitor("area", &LibertyReader::visitArea);
|
||||||
defineAttrVisitor("dont_use", &LibertyReader::visitDontUse);
|
defineAttrVisitor("dont_use", &LibertyReader::visitDontUse);
|
||||||
defineAttrVisitor("is_macro", &LibertyReader::visitIsMacro);
|
defineAttrVisitor("is_macro", &LibertyReader::visitIsMacro);
|
||||||
|
defineAttrVisitor("is_memory", &LibertyReader::visitIsMemory);
|
||||||
defineAttrVisitor("is_pad", &LibertyReader::visitIsPad);
|
defineAttrVisitor("is_pad", &LibertyReader::visitIsPad);
|
||||||
defineAttrVisitor("interface_timing", &LibertyReader::visitInterfaceTiming);
|
defineAttrVisitor("interface_timing", &LibertyReader::visitInterfaceTiming);
|
||||||
defineAttrVisitor("scaling_factors", &LibertyReader::visitScalingFactors);
|
defineAttrVisitor("scaling_factors", &LibertyReader::visitScalingFactors);
|
||||||
|
|
@ -2426,6 +2427,17 @@ LibertyReader::visitIsMacro(LibertyAttr *attr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LibertyReader::visitIsMemory(LibertyAttr *attr)
|
||||||
|
{
|
||||||
|
if (cell_) {
|
||||||
|
bool is_memory, exists;
|
||||||
|
getAttrBool(attr, is_memory, exists);
|
||||||
|
if (exists)
|
||||||
|
cell_->setIsMemory(is_memory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
LibertyReader::visitIsPad(LibertyAttr *attr)
|
LibertyReader::visitIsPad(LibertyAttr *attr)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,7 @@ public:
|
||||||
virtual void visitArea(LibertyAttr *attr);
|
virtual void visitArea(LibertyAttr *attr);
|
||||||
virtual void visitDontUse(LibertyAttr *attr);
|
virtual void visitDontUse(LibertyAttr *attr);
|
||||||
virtual void visitIsMacro(LibertyAttr *attr);
|
virtual void visitIsMacro(LibertyAttr *attr);
|
||||||
|
virtual void visitIsMemory(LibertyAttr *attr);
|
||||||
virtual void visitIsPad(LibertyAttr *attr);
|
virtual void visitIsPad(LibertyAttr *attr);
|
||||||
virtual void visitInterfaceTiming(LibertyAttr *attr);
|
virtual void visitInterfaceTiming(LibertyAttr *attr);
|
||||||
virtual void visitScalingFactors(LibertyAttr *attr);
|
virtual void visitScalingFactors(LibertyAttr *attr);
|
||||||
|
|
|
||||||
|
|
@ -154,7 +154,8 @@ Power::power(const Corner *corner,
|
||||||
if (cell) {
|
if (cell) {
|
||||||
PowerResult inst_power;
|
PowerResult inst_power;
|
||||||
power(inst, corner, inst_power);
|
power(inst, corner, inst_power);
|
||||||
if (cell->isMacro())
|
if (cell->isMacro()
|
||||||
|
|| cell->isMemory())
|
||||||
macro.incr(inst_power);
|
macro.incr(inst_power);
|
||||||
else if (cell->isPad())
|
else if (cell->isPad())
|
||||||
pad.incr(inst_power);
|
pad.incr(inst_power);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue