Network:bus_brkts_left/right

This commit is contained in:
James Cherry 2019-06-26 17:14:31 -07:00
parent 344394de29
commit 61333cd980
4 changed files with 22 additions and 11 deletions

View File

@ -624,12 +624,10 @@ ConcreteNetwork::makeBusPort(Cell *cell,
}
void
ConcreteNetwork::groupBusPorts(Cell *cell,
const char *bus_brkts_left,
const char *bus_brkts_right)
ConcreteNetwork::groupBusPorts(Cell *cell)
{
ConcreteCell *ccell = reinterpret_cast<ConcreteCell*>(cell);
ccell->groupBusPorts(bus_brkts_left, bus_brkts_right);
ccell->groupBusPorts(bus_brkts_left_, bus_brkts_right_);
}
Port *

View File

@ -177,9 +177,7 @@ public:
const char *name,
int from_index,
int to_index);
virtual void groupBusPorts(Cell *cell,
const char *bus_brkts_left,
const char *bus_brkts_right);
virtual void groupBusPorts(Cell *cell);
virtual Port *makeBundlePort(Cell *cell,
const char *name,
PortSeq *members);

View File

@ -27,7 +27,9 @@ namespace sta {
Network::Network() :
default_liberty_(nullptr),
divider_('/'),
escape_('\\')
escape_('\\'),
bus_brkts_left_("["),
bus_brkts_right_("]")
{
}
@ -1048,6 +1050,14 @@ Network::setPathEscape(char escape)
escape_ = escape;
}
void
Network::setBusBrkts(char bus_brkt_left,
char bus_brkt_right)
{
bus_brkts_left_ = new char[2]{bus_brkt_left, '\0'};
bus_brkts_right_ = new char[2]{bus_brkt_right, '\0'};
}
////////////////////////////////////////////////////////////////
typedef Vector<InstanceChildIterator *> InstanceChildIteratorSeq;

View File

@ -425,6 +425,11 @@ public:
// Escape prefix for path dividers in path names.
virtual char pathEscape() const { return escape_; }
virtual void setPathEscape(char escape);
// Multiple brakets are supported but generally there is only one.
virtual void setBusBrkts(char bus_brkt_left,
char bus_brkt_right);
virtual const char *busBrktsRight() const { return bus_brkts_right_; }
virtual const char *busBrktsLeft() const { return bus_brkts_left_; }
protected:
Pin *findPinLinear(const Instance *instance,
@ -469,6 +474,8 @@ protected:
LibertyLibrary *default_liberty_;
char divider_;
char escape_;
const char *bus_brkts_left_;
const char *bus_brkts_right_;
NetDrvrPinsMap net_drvr_pin_map_;
private:
@ -541,9 +548,7 @@ public:
const char *name,
int from_index,
int to_index) = 0;
virtual void groupBusPorts(Cell *cell,
const char *bus_brkts_left,
const char *bus_brkts_right) = 0;
virtual void groupBusPorts(Cell *cell) = 0;
virtual Port *makeBundlePort(Cell *cell,
const char *name,
PortSeq *members) = 0;