Network override
Signed-off-by: James Cherry <cherry@parallaxsw.com>
This commit is contained in:
parent
bc7083e927
commit
17eea0e169
|
|
@ -53,185 +53,181 @@ class ConcreteNetwork : public NetworkReader
|
|||
{
|
||||
public:
|
||||
ConcreteNetwork();
|
||||
virtual ~ConcreteNetwork();
|
||||
virtual void clear();
|
||||
virtual bool linkNetwork(const char *top_cell_name,
|
||||
bool make_black_boxes,
|
||||
Report *report);
|
||||
virtual Instance *topInstance() const;
|
||||
~ConcreteNetwork();
|
||||
void clear() override;
|
||||
bool linkNetwork(const char *top_cell_name,
|
||||
bool make_black_boxes,
|
||||
Report *report) override;
|
||||
Instance *topInstance() const override;
|
||||
|
||||
virtual const char *name(const Library *library) const;
|
||||
virtual ObjectId id(const Library *library) const;
|
||||
virtual LibraryIterator *libraryIterator() const;
|
||||
virtual LibertyLibraryIterator *libertyLibraryIterator() const ;
|
||||
virtual Library *findLibrary(const char *name);
|
||||
virtual LibertyLibrary *findLiberty(const char *name);
|
||||
virtual LibertyLibrary *libertyLibrary(Library *library) const;
|
||||
virtual Cell *findCell(const Library *library,
|
||||
const char *name) const;
|
||||
virtual Cell *findAnyCell(const char *name);
|
||||
virtual CellSeq findCellsMatching(const Library *library,
|
||||
const PatternMatch *pattern) const;
|
||||
const char *name(const Library *library) const override;
|
||||
ObjectId id(const Library *library) const override;
|
||||
LibraryIterator *libraryIterator() const override;
|
||||
LibertyLibraryIterator *libertyLibraryIterator() const override;
|
||||
Library *findLibrary(const char *name) override;
|
||||
LibertyLibrary *findLiberty(const char *name) override;
|
||||
Cell *findCell(const Library *library,
|
||||
const char *name) const override;
|
||||
Cell *findAnyCell(const char *name) override;
|
||||
CellSeq findCellsMatching(const Library *library,
|
||||
const PatternMatch *pattern) const override;
|
||||
|
||||
virtual const char *name(const Cell *cell) const;
|
||||
virtual ObjectId id(const Cell *cell) const;
|
||||
virtual Library *library(const Cell *cell) const;
|
||||
virtual LibertyCell *libertyCell(Cell *cell) const;
|
||||
virtual const LibertyCell *libertyCell(const Cell *cell) const;
|
||||
virtual Cell *cell(LibertyCell *cell) const;
|
||||
virtual const Cell *cell(const LibertyCell *cell) const;
|
||||
virtual const char *filename(const Cell *cell);
|
||||
virtual Port *findPort(const Cell *cell,
|
||||
const char *name) const;
|
||||
virtual PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const;
|
||||
virtual bool isLeaf(const Cell *cell) const;
|
||||
virtual CellPortIterator *portIterator(const Cell *cell) const;
|
||||
virtual CellPortBitIterator *portBitIterator(const Cell *cell) const;
|
||||
virtual int portBitCount(const Cell *cell) const;
|
||||
const char *name(const Cell *cell) const override;
|
||||
ObjectId id(const Cell *cell) const override;
|
||||
Library *library(const Cell *cell) const override;
|
||||
LibertyCell *libertyCell(Cell *cell) const override;
|
||||
const LibertyCell *libertyCell(const Cell *cell) const override;
|
||||
Cell *cell(LibertyCell *cell) const override;
|
||||
const Cell *cell(const LibertyCell *cell) const override;
|
||||
const char *filename(const Cell *cell) override;
|
||||
Port *findPort(const Cell *cell,
|
||||
const char *name) const override;
|
||||
PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const override;
|
||||
bool isLeaf(const Cell *cell) const override;
|
||||
CellPortIterator *portIterator(const Cell *cell) const override;
|
||||
CellPortBitIterator *portBitIterator(const Cell *cell) const override;
|
||||
int portBitCount(const Cell *cell) const override;
|
||||
|
||||
virtual const char *name(const Port *port) const;
|
||||
virtual ObjectId id(const Port *port) const;
|
||||
virtual Cell *cell(const Port *port) const;
|
||||
virtual LibertyPort *libertyPort(const Port *port) const;
|
||||
virtual PortDirection *direction(const Port *port) const;
|
||||
virtual bool isBundle(const Port *port) const;
|
||||
virtual bool hasMembers(const Port *port) const;
|
||||
const char *name(const Port *port) const override;
|
||||
ObjectId id(const Port *port) const override;
|
||||
Cell *cell(const Port *port) const override;
|
||||
LibertyPort *libertyPort(const Port *port) const override;
|
||||
PortDirection *direction(const Port *port) const override;
|
||||
bool isBundle(const Port *port) const override;
|
||||
bool hasMembers(const Port *port) const override;
|
||||
|
||||
virtual bool isBus(const Port *port) const;
|
||||
virtual int size(const Port *port) const;
|
||||
virtual const char *busName(const Port *port) const;
|
||||
virtual Port *findBusBit(const Port *port,
|
||||
int index) const;
|
||||
virtual int fromIndex(const Port *port) const;
|
||||
virtual int toIndex(const Port *port) const;
|
||||
virtual Port *findMember(const Port *port,
|
||||
int index) const;
|
||||
virtual PortMemberIterator *memberIterator(const Port *port) const;
|
||||
bool isBus(const Port *port) const override;
|
||||
int size(const Port *port) const override;
|
||||
const char *busName(const Port *port) const override;
|
||||
Port *findBusBit(const Port *port,
|
||||
int index) const override;
|
||||
int fromIndex(const Port *port) const override;
|
||||
int toIndex(const Port *port) const override;
|
||||
Port *findMember(const Port *port,
|
||||
int index) const override;
|
||||
PortMemberIterator *memberIterator(const Port *port) const override;
|
||||
|
||||
virtual const char *name(const Instance *instance) const;
|
||||
virtual ObjectId id(const Instance *instance) const;
|
||||
virtual Cell *cell(const Instance *instance) const;
|
||||
virtual Instance *parent(const Instance *instance) const;
|
||||
virtual bool isLeaf(const Instance *instance) const;
|
||||
virtual Instance *findChild(const Instance *parent,
|
||||
const char *name) const;
|
||||
virtual Pin *findPin(const Instance *instance,
|
||||
const char *port_name) const;
|
||||
virtual Pin *findPin(const Instance *instance,
|
||||
const Port *port) const;
|
||||
const char *name(const Instance *instance) const override;
|
||||
ObjectId id(const Instance *instance) const override;
|
||||
Cell *cell(const Instance *instance) const override;
|
||||
Instance *parent(const Instance *instance) const override;
|
||||
bool isLeaf(const Instance *instance) const override;
|
||||
Instance *findChild(const Instance *parent,
|
||||
const char *name) const override;
|
||||
Pin *findPin(const Instance *instance,
|
||||
const char *port_name) const override;
|
||||
Pin *findPin(const Instance *instance,
|
||||
const Port *port) const override;
|
||||
|
||||
virtual InstanceChildIterator *
|
||||
childIterator(const Instance *instance) const;
|
||||
virtual InstancePinIterator *
|
||||
pinIterator(const Instance *instance) const;
|
||||
virtual InstanceNetIterator *
|
||||
netIterator(const Instance *instance) const;
|
||||
InstanceChildIterator *
|
||||
childIterator(const Instance *instance) const override;
|
||||
InstancePinIterator *
|
||||
pinIterator(const Instance *instance) const override;
|
||||
InstanceNetIterator *
|
||||
netIterator(const Instance *instance) const override;
|
||||
|
||||
virtual ObjectId id(const Pin *pin) const;
|
||||
virtual Instance *instance(const Pin *pin) const;
|
||||
virtual Net *net(const Pin *pin) const;
|
||||
virtual Term *term(const Pin *pin) const;
|
||||
virtual Port *port(const Pin *pin) const;
|
||||
virtual PortDirection *direction(const Pin *pin) const;
|
||||
virtual VertexId vertexId(const Pin *pin) const;
|
||||
virtual void setVertexId(Pin *pin,
|
||||
VertexId id);
|
||||
ObjectId id(const Pin *pin) const override;
|
||||
Instance *instance(const Pin *pin) const override;
|
||||
Net *net(const Pin *pin) const override;
|
||||
Term *term(const Pin *pin) const override;
|
||||
Port *port(const Pin *pin) const override;
|
||||
PortDirection *direction(const Pin *pin) const override;
|
||||
VertexId vertexId(const Pin *pin) const override;
|
||||
void setVertexId(Pin *pin,
|
||||
VertexId id) override;
|
||||
|
||||
virtual ObjectId id(const Term *term) const;
|
||||
virtual Net *net(const Term *term) const;
|
||||
virtual Pin *pin(const Term *term) const;
|
||||
ObjectId id(const Term *term) const override;
|
||||
Net *net(const Term *term) const override;
|
||||
Pin *pin(const Term *term) const override;
|
||||
|
||||
virtual const char *name(const Net *net) const;
|
||||
virtual ObjectId id(const Net *net) const;
|
||||
virtual Net *findNet(const Instance *instance,
|
||||
const char *net_name) const;
|
||||
virtual void findInstNetsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern,
|
||||
NetSeq &matches) const;
|
||||
virtual Instance *instance(const Net *net) const;
|
||||
virtual bool isPower(const Net *net) const;
|
||||
virtual bool isGround(const Net *net) const;
|
||||
virtual NetPinIterator *pinIterator(const Net *net) const;
|
||||
virtual NetTermIterator *termIterator(const Net *net) const;
|
||||
virtual void mergeInto(Net *net,
|
||||
Net *into_net);
|
||||
virtual Net *mergedInto(Net *net);
|
||||
const char *name(const Net *net) const override;
|
||||
ObjectId id(const Net *net) const override;
|
||||
Net *findNet(const Instance *instance,
|
||||
const char *net_name) const override;
|
||||
void findInstNetsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern,
|
||||
NetSeq &matches) const override;
|
||||
Instance *instance(const Net *net) const override;
|
||||
bool isPower(const Net *net) const override;
|
||||
bool isGround(const Net *net) const override;
|
||||
NetPinIterator *pinIterator(const Net *net) const override;
|
||||
NetTermIterator *termIterator(const Net *net) const override;
|
||||
void mergeInto(Net *net,
|
||||
Net *into_net) override;
|
||||
Net *mergedInto(Net *net) override;
|
||||
|
||||
virtual ConstantPinIterator *constantPinIterator();
|
||||
ConstantPinIterator *constantPinIterator() override;
|
||||
void addConstantNet(Net *net,
|
||||
LogicValue value);
|
||||
LogicValue value) override;
|
||||
|
||||
// Edit methods.
|
||||
virtual Library *makeLibrary(const char *name,
|
||||
const char *filename);
|
||||
virtual LibertyLibrary *makeLibertyLibrary(const char *name,
|
||||
const char *filename);
|
||||
virtual void deleteLibrary(Library *library);
|
||||
virtual Cell *makeCell(Library *library,
|
||||
const char *name,
|
||||
bool is_leaf,
|
||||
const char *filename);
|
||||
virtual void deleteCell(Cell *cell);
|
||||
virtual void setName(Cell *cell,
|
||||
const char *name);
|
||||
virtual void setIsLeaf(Cell *cell,
|
||||
bool is_leaf);
|
||||
virtual Port *makePort(Cell *cell,
|
||||
const char *name);
|
||||
virtual Port *makeBusPort(Cell *cell,
|
||||
const char *name,
|
||||
int from_index,
|
||||
int to_index);
|
||||
virtual void groupBusPorts(Cell *cell,
|
||||
std::function<bool(const char*)> port_msb_first);
|
||||
virtual Port *makeBundlePort(Cell *cell,
|
||||
const char *name,
|
||||
PortSeq *members);
|
||||
virtual void setDirection(Port *port,
|
||||
PortDirection *dir);
|
||||
Library *makeLibrary(const char *name,
|
||||
const char *filename) override;
|
||||
LibertyLibrary *makeLibertyLibrary(const char *name,
|
||||
const char *filename) override;
|
||||
void deleteLibrary(Library *library) override;
|
||||
Cell *makeCell(Library *library,
|
||||
const char *name,
|
||||
bool is_leaf,
|
||||
const char *filename) override;
|
||||
void deleteCell(Cell *cell) override;
|
||||
void setName(Cell *cell,
|
||||
const char *name) override;
|
||||
void setIsLeaf(Cell *cell,
|
||||
bool is_leaf) override;
|
||||
Port *makePort(Cell *cell,
|
||||
const char *name) override;
|
||||
Port *makeBusPort(Cell *cell,
|
||||
const char *name,
|
||||
int from_index,
|
||||
int to_index) override;
|
||||
void groupBusPorts(Cell *cell,
|
||||
std::function<bool(const char*)> port_msb_first) override;
|
||||
Port *makeBundlePort(Cell *cell,
|
||||
const char *name,
|
||||
PortSeq *members) override;
|
||||
void setDirection(Port *port,
|
||||
PortDirection *dir) override;
|
||||
// For NetworkEdit.
|
||||
virtual Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent);
|
||||
void makePins(Instance *inst);
|
||||
Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent) override;
|
||||
void makePins(Instance *inst) override;
|
||||
// For linking.
|
||||
virtual Instance *makeInstance(Cell *cell,
|
||||
const char *name,
|
||||
Instance *parent);
|
||||
virtual void replaceCell(Instance *inst,
|
||||
Cell *cell);
|
||||
virtual void deleteInstance(Instance *inst);
|
||||
virtual Pin *connect(Instance *inst,
|
||||
Port *port,
|
||||
Net *net);
|
||||
virtual Pin *connect(Instance *inst,
|
||||
LibertyPort *port,
|
||||
Net *net);
|
||||
virtual void disconnectPin(Pin *pin);
|
||||
virtual void deletePin(Pin *pin);
|
||||
virtual Net *makeNet(const char *name,
|
||||
Instance *parent);
|
||||
virtual void deleteNet(Net *net);
|
||||
Instance *makeInstance(Cell *cell,
|
||||
const char *name,
|
||||
Instance *parent) override;
|
||||
void replaceCell(Instance *inst,
|
||||
Cell *cell) override;
|
||||
void deleteInstance(Instance *inst) override;
|
||||
Pin *connect(Instance *inst,
|
||||
Port *port,
|
||||
Net *net) override;
|
||||
Pin *connect(Instance *inst,
|
||||
LibertyPort *port,
|
||||
Net *net) override;
|
||||
void disconnectPin(Pin *pin) override;
|
||||
void deletePin(Pin *pin) override;
|
||||
Net *makeNet(const char *name,
|
||||
Instance *parent) override;
|
||||
void deleteNet(Net *net) override;
|
||||
|
||||
// For NetworkReader API.
|
||||
virtual Term *makeTerm(Pin *pin,
|
||||
Net *net);
|
||||
virtual Pin *makePin(Instance *inst,
|
||||
Port *port,
|
||||
Net *net);
|
||||
Term *makeTerm(Pin *pin,
|
||||
Net *net) override;
|
||||
Pin *makePin(Instance *inst,
|
||||
Port *port,
|
||||
Net *net) override;
|
||||
|
||||
// Instance is the network view for cell.
|
||||
virtual void setCellNetworkView(Cell *cell,
|
||||
Instance *inst);
|
||||
virtual Instance *cellNetworkView(Cell *cell);
|
||||
virtual void deleteCellNetworkViews();
|
||||
void deleteTopInstance();
|
||||
|
||||
virtual void readNetlistBefore();
|
||||
virtual void setLinkFunc(LinkNetworkFunc *link);
|
||||
void setTopInstance(Instance *top_inst);
|
||||
void setCellNetworkView(Cell *cell,
|
||||
Instance *inst) override;
|
||||
Instance *cellNetworkView(Cell *cell) override;
|
||||
void deleteCellNetworkViews() override;
|
||||
|
||||
void readNetlistBefore() override;
|
||||
void setLinkFunc(LinkNetworkFunc *link) override;
|
||||
static ObjectId nextObjectId();
|
||||
|
||||
using Network::netIterator;
|
||||
|
|
@ -244,12 +240,14 @@ public:
|
|||
using Network::isLeaf;
|
||||
|
||||
protected:
|
||||
void setTopInstance(Instance *top_inst);
|
||||
void deleteTopInstance();
|
||||
void addLibrary(ConcreteLibrary *library);
|
||||
void setName(const char *name);
|
||||
void clearConstantNets();
|
||||
virtual void visitConnectedPins(const Net *net,
|
||||
PinVisitor &visitor,
|
||||
NetSet &visited_nets) const;
|
||||
void visitConnectedPins(const Net *net,
|
||||
PinVisitor &visitor,
|
||||
NetSet &visited_nets) const override;
|
||||
Instance *makeConcreteInstance(ConcreteCell *cell,
|
||||
const char *name,
|
||||
Instance *parent);
|
||||
|
|
|
|||
|
|
@ -28,131 +28,131 @@ class NetworkNameAdapter : public NetworkEdit
|
|||
{
|
||||
public:
|
||||
NetworkNameAdapter(Network *network);
|
||||
virtual bool linkNetwork(const char *top_cell_name,
|
||||
bool make_black_boxes,
|
||||
Report *report);
|
||||
bool linkNetwork(const char *top_cell_name,
|
||||
bool make_black_boxes,
|
||||
Report *report) override;
|
||||
|
||||
virtual const char *name(const Library *library) const;
|
||||
virtual ObjectId id(const Library *library) const;
|
||||
virtual LibraryIterator *libraryIterator() const;
|
||||
virtual LibertyLibraryIterator *libertyLibraryIterator() const;
|
||||
virtual Library *findLibrary(const char *name);
|
||||
virtual LibertyLibrary *findLibertyFilename(const char *filename);
|
||||
virtual LibertyLibrary *findLiberty(const char *name);
|
||||
virtual Cell *findCell(const Library *library,
|
||||
const char *name) const;
|
||||
virtual CellSeq findCellsMatching(const Library *library,
|
||||
const PatternMatch *pattern) const;
|
||||
const char *name(const Library *library) const override;
|
||||
ObjectId id(const Library *library) const override;
|
||||
LibraryIterator *libraryIterator() const override;
|
||||
LibertyLibraryIterator *libertyLibraryIterator() const override;
|
||||
Library *findLibrary(const char *name) override;
|
||||
LibertyLibrary *findLibertyFilename(const char *filename) override;
|
||||
LibertyLibrary *findLiberty(const char *name) override;
|
||||
Cell *findCell(const Library *library,
|
||||
const char *name) const override;
|
||||
CellSeq findCellsMatching(const Library *library,
|
||||
const PatternMatch *pattern) const override;
|
||||
|
||||
virtual const char *name(const Cell *cell) const;
|
||||
virtual ObjectId id(const Cell *cell) const;
|
||||
virtual Library *library(const Cell *cell) const;
|
||||
virtual LibertyCell *libertyCell(Cell *cell) const;
|
||||
virtual const LibertyCell *libertyCell(const Cell *cell) const;
|
||||
virtual Cell *cell(LibertyCell *cell) const;
|
||||
virtual const Cell *cell(const LibertyCell *cell) const;
|
||||
virtual const char *filename(const Cell *cell);
|
||||
virtual Port *findPort(const Cell *cell,
|
||||
const char *name) const;
|
||||
virtual PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const;
|
||||
virtual bool isLeaf(const Cell *cell) const;
|
||||
virtual CellPortIterator *portIterator(const Cell *cell) const;
|
||||
virtual CellPortBitIterator *portBitIterator(const Cell *cell) const;
|
||||
virtual int portBitCount(const Cell *cell) const;
|
||||
const char *name(const Cell *cell) const override;
|
||||
ObjectId id(const Cell *cell) const override;
|
||||
Library *library(const Cell *cell) const override;
|
||||
LibertyCell *libertyCell(Cell *cell) const override;
|
||||
const LibertyCell *libertyCell(const Cell *cell) const override;
|
||||
Cell *cell(LibertyCell *cell) const override;
|
||||
const Cell *cell(const LibertyCell *cell) const override;
|
||||
const char *filename(const Cell *cell) override;
|
||||
Port *findPort(const Cell *cell,
|
||||
const char *name) const override;
|
||||
PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const override;
|
||||
bool isLeaf(const Cell *cell) const override;
|
||||
CellPortIterator *portIterator(const Cell *cell) const override;
|
||||
CellPortBitIterator *portBitIterator(const Cell *cell) const override;
|
||||
int portBitCount(const Cell *cell) const override;
|
||||
|
||||
virtual const char *name(const Port *port) const;
|
||||
virtual ObjectId id(const Port *port) const;
|
||||
virtual Cell *cell(const Port *port) const;
|
||||
virtual LibertyPort *libertyPort(const Port *port) const;
|
||||
virtual PortDirection *direction(const Port *port) const;
|
||||
virtual bool isBundle(const Port *port) const;
|
||||
virtual bool isBus(const Port *port) const;
|
||||
virtual int size(const Port *port) const;
|
||||
virtual const char *busName(const Port *port) const;
|
||||
virtual Port *findBusBit(const Port *port,
|
||||
int index) const;
|
||||
virtual int fromIndex(const Port *port) const;
|
||||
virtual int toIndex(const Port *port) const;
|
||||
virtual Port *findMember(const Port *port,
|
||||
int index) const;
|
||||
virtual PortMemberIterator *memberIterator(const Port *port) const;
|
||||
virtual bool hasMembers(const Port *port) const;
|
||||
const char *name(const Port *port) const override;
|
||||
ObjectId id(const Port *port) const override;
|
||||
Cell *cell(const Port *port) const override;
|
||||
LibertyPort *libertyPort(const Port *port) const override;
|
||||
PortDirection *direction(const Port *port) const override;
|
||||
bool isBundle(const Port *port) const override;
|
||||
bool isBus(const Port *port) const override;
|
||||
int size(const Port *port) const override;
|
||||
const char *busName(const Port *port) const override;
|
||||
Port *findBusBit(const Port *port,
|
||||
int index) const override;
|
||||
int fromIndex(const Port *port) const override;
|
||||
int toIndex(const Port *port) const override;
|
||||
Port *findMember(const Port *port,
|
||||
int index) const override;
|
||||
PortMemberIterator *memberIterator(const Port *port) const override;
|
||||
bool hasMembers(const Port *port) const override;
|
||||
|
||||
virtual ObjectId id(const Instance *instance) const;
|
||||
virtual Instance *topInstance() const;
|
||||
virtual Cell *cell(const Instance *instance) const;
|
||||
virtual Instance *parent(const Instance *instance) const;
|
||||
virtual bool isLeaf(const Instance *instance) const;
|
||||
virtual Pin *findPin(const Instance *instance,
|
||||
const Port *port) const;
|
||||
virtual Pin *findPin(const Instance *instance,
|
||||
const LibertyPort *port) const;
|
||||
ObjectId id(const Instance *instance) const override;
|
||||
Instance *topInstance() const override;
|
||||
Cell *cell(const Instance *instance) const override;
|
||||
Instance *parent(const Instance *instance) const override;
|
||||
bool isLeaf(const Instance *instance) const override;
|
||||
Pin *findPin(const Instance *instance,
|
||||
const Port *port) const override;
|
||||
Pin *findPin(const Instance *instance,
|
||||
const LibertyPort *port) const override;
|
||||
|
||||
virtual InstanceChildIterator *
|
||||
childIterator(const Instance *instance) const;
|
||||
virtual InstancePinIterator *
|
||||
pinIterator(const Instance *instance) const;
|
||||
virtual InstanceNetIterator *
|
||||
netIterator(const Instance *instance) const;
|
||||
InstanceChildIterator *
|
||||
childIterator(const Instance *instance) const override;
|
||||
InstancePinIterator *
|
||||
pinIterator(const Instance *instance) const override;
|
||||
InstanceNetIterator *
|
||||
netIterator(const Instance *instance) const override;
|
||||
|
||||
virtual ObjectId id(const Pin *pin) const;
|
||||
virtual Port *port(const Pin *pin) const;
|
||||
virtual Instance *instance(const Pin *pin) const;
|
||||
virtual Net *net(const Pin *pin) const;
|
||||
virtual Term *term(const Pin *pin) const;
|
||||
virtual PortDirection *direction(const Pin *pin) const;
|
||||
virtual VertexId vertexId(const Pin *pin) const;
|
||||
virtual void setVertexId(Pin *pin,
|
||||
VertexId id);
|
||||
virtual void location(const Pin *pin,
|
||||
// Return values.
|
||||
double &x,
|
||||
double &y,
|
||||
bool &exists) const;
|
||||
ObjectId id(const Pin *pin) const override;
|
||||
Port *port(const Pin *pin) const override;
|
||||
Instance *instance(const Pin *pin) const override;
|
||||
Net *net(const Pin *pin) const override;
|
||||
Term *term(const Pin *pin) const override;
|
||||
PortDirection *direction(const Pin *pin) const override;
|
||||
VertexId vertexId(const Pin *pin) const override;
|
||||
void setVertexId(Pin *pin,
|
||||
VertexId id) override;
|
||||
void location(const Pin *pin,
|
||||
// Return values.
|
||||
double &x,
|
||||
double &y,
|
||||
bool &exists) const override;
|
||||
|
||||
virtual ObjectId id(const Term *term) const;
|
||||
virtual Net *net(const Term *term) const;
|
||||
virtual Pin *pin(const Term *term) const;
|
||||
ObjectId id(const Term *term) const override;
|
||||
Net *net(const Term *term) const override;
|
||||
Pin *pin(const Term *term) const override;
|
||||
|
||||
virtual ObjectId id(const Net *net) const;
|
||||
virtual Instance *instance(const Net *net) const;
|
||||
virtual bool isPower(const Net *net) const;
|
||||
virtual bool isGround(const Net *net) const;
|
||||
virtual NetPinIterator *pinIterator(const Net *net) const;
|
||||
virtual NetTermIterator *termIterator(const Net *net) const;
|
||||
ObjectId id(const Net *net) const override;
|
||||
Instance *instance(const Net *net) const override;
|
||||
bool isPower(const Net *net) const override;
|
||||
bool isGround(const Net *net) const override;
|
||||
NetPinIterator *pinIterator(const Net *net) const override;
|
||||
NetTermIterator *termIterator(const Net *net) const override;
|
||||
|
||||
virtual ConstantPinIterator *constantPinIterator();
|
||||
ConstantPinIterator *constantPinIterator() override;
|
||||
|
||||
virtual char pathDivider() const;
|
||||
virtual void setPathDivider(char divider);
|
||||
virtual char pathEscape() const;
|
||||
virtual void setPathEscape(char escape);
|
||||
char pathDivider() const override;
|
||||
void setPathDivider(char divider) override;
|
||||
char pathEscape() const override;
|
||||
void setPathEscape(char escape) override;
|
||||
|
||||
virtual bool isEditable() const;
|
||||
virtual LibertyLibrary *makeLibertyLibrary(const char *name,
|
||||
const char *filename);
|
||||
virtual Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent);
|
||||
virtual void makePins(Instance *inst);
|
||||
virtual void replaceCell(Instance *inst,
|
||||
Cell *to_cell);
|
||||
virtual Net *makeNet(const char *name,
|
||||
Instance *parent);
|
||||
virtual Pin *connect(Instance *inst,
|
||||
Port *port,
|
||||
Net *net);
|
||||
virtual Pin *connect(Instance *inst,
|
||||
LibertyPort *port,
|
||||
Net *net);
|
||||
virtual void disconnectPin(Pin *pin);
|
||||
virtual void deleteNet(Net *net);
|
||||
virtual void deletePin(Pin *pin);
|
||||
virtual void deleteInstance(Instance *inst);
|
||||
virtual void mergeInto(Net *net,
|
||||
Net *into_net);
|
||||
virtual Net *mergedInto(Net *net);
|
||||
bool isEditable() const override;
|
||||
LibertyLibrary *makeLibertyLibrary(const char *name,
|
||||
const char *filename) override;
|
||||
Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent) override;
|
||||
void makePins(Instance *inst) override;
|
||||
void replaceCell(Instance *inst,
|
||||
Cell *to_cell) override;
|
||||
Net *makeNet(const char *name,
|
||||
Instance *parent) override;
|
||||
Pin *connect(Instance *inst,
|
||||
Port *port,
|
||||
Net *net) override;
|
||||
Pin *connect(Instance *inst,
|
||||
LibertyPort *port,
|
||||
Net *net) override;
|
||||
void disconnectPin(Pin *pin) override;
|
||||
void deleteNet(Net *net) override;
|
||||
void deletePin(Pin *pin) override;
|
||||
void deleteInstance(Instance *inst) override;
|
||||
void mergeInto(Net *net,
|
||||
Net *into_net) override;
|
||||
Net *mergedInto(Net *net) override;
|
||||
|
||||
// Any overloaded functions from the base class must be listed here.
|
||||
using Network::name;
|
||||
|
|
@ -179,45 +179,45 @@ class SdcNetwork : public NetworkNameAdapter
|
|||
public:
|
||||
SdcNetwork(Network *network);
|
||||
|
||||
virtual Port *findPort(const Cell *cell,
|
||||
const char *name) const;
|
||||
virtual PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const;
|
||||
virtual const char *name(const Port *port) const;
|
||||
virtual const char *busName(const Port *port) const;
|
||||
Port *findPort(const Cell *cell,
|
||||
const char *name) const override;
|
||||
PortSeq findPortsMatching(const Cell *cell,
|
||||
const PatternMatch *pattern) const override;
|
||||
const char *name(const Port *port) const override;
|
||||
const char *busName(const Port *port) const override;
|
||||
|
||||
virtual const char *name(const Instance *instance) const;
|
||||
virtual const char *pathName(const Instance *instance) const;
|
||||
virtual const char *pathName(const Pin *pin) const;
|
||||
virtual const char *portName(const Pin *pin) const;
|
||||
const char *name(const Instance *instance) const override;
|
||||
const char *pathName(const Instance *instance) const override;
|
||||
const char *pathName(const Pin *pin) const override;
|
||||
const char *portName(const Pin *pin) const override;
|
||||
|
||||
virtual const char *name(const Net *net) const;
|
||||
virtual const char *pathName(const Net *net) const;
|
||||
const char *name(const Net *net) const override;
|
||||
const char *pathName(const Net *net) const override;
|
||||
|
||||
virtual Instance *findInstance(const char *path_name) const;
|
||||
virtual InstanceSeq findInstancesMatching(const Instance *context,
|
||||
const PatternMatch *pattern) const;
|
||||
virtual Net *findNet(const char *path_name) const;
|
||||
virtual Net *findNet(const Instance *instance,
|
||||
const char *net_name) const;
|
||||
virtual NetSeq findNetsMatching(const Instance *parent,
|
||||
const PatternMatch *pattern) const;
|
||||
virtual void findInstNetsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern,
|
||||
NetSeq &nets) const;
|
||||
virtual Instance *findChild(const Instance *parent,
|
||||
const char *name) const;
|
||||
virtual Pin *findPin(const char *path_name) const;
|
||||
virtual Pin *findPin(const Instance *instance,
|
||||
const char *port_name) const;
|
||||
virtual PinSeq findPinsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern) const;
|
||||
Instance *findInstance(const char *path_name) const override;
|
||||
InstanceSeq findInstancesMatching(const Instance *context,
|
||||
const PatternMatch *pattern) const override;
|
||||
Net *findNet(const char *path_name) const override;
|
||||
Net *findNet(const Instance *instance,
|
||||
const char *net_name) const override;
|
||||
NetSeq findNetsMatching(const Instance *parent,
|
||||
const PatternMatch *pattern) const override;
|
||||
void findInstNetsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern,
|
||||
NetSeq &nets) const override;
|
||||
Instance *findChild(const Instance *parent,
|
||||
const char *name) const override;
|
||||
Pin *findPin(const char *path_name) const override;
|
||||
Pin *findPin(const Instance *instance,
|
||||
const char *port_name) const override;
|
||||
PinSeq findPinsMatching(const Instance *instance,
|
||||
const PatternMatch *pattern) const override;
|
||||
|
||||
virtual Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent);
|
||||
virtual Net *makeNet(const char *name,
|
||||
Instance *parent);
|
||||
Instance *makeInstance(LibertyCell *cell,
|
||||
const char *name,
|
||||
Instance *parent) override;
|
||||
Net *makeNet(const char *name,
|
||||
Instance *parent) override;
|
||||
|
||||
// The following member functions are inherited from the
|
||||
// Network class work as is:
|
||||
|
|
|
|||
|
|
@ -476,13 +476,6 @@ ConcreteNetwork::findLiberty(const char *name)
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
LibertyLibrary *
|
||||
ConcreteNetwork::libertyLibrary(Library *library) const
|
||||
{
|
||||
ConcreteLibrary *lib = reinterpret_cast<ConcreteLibrary*>(library);
|
||||
return static_cast<LibertyLibrary*>(lib);
|
||||
}
|
||||
|
||||
Cell *
|
||||
ConcreteNetwork::makeCell(Library *library,
|
||||
const char *name,
|
||||
|
|
|
|||
Loading…
Reference in New Issue