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