Remove useless Link instance number.

This commit is contained in:
Stephen Williams 2008-09-10 07:29:23 -07:00
parent 088c7f3feb
commit 5dfecb3789
9 changed files with 88 additions and 97 deletions

View File

@ -244,8 +244,7 @@ void NetNode::dump_node(ostream&o, unsigned ind) const
void NetPins::dump_node_pins(ostream&o, unsigned ind) const void NetPins::dump_node_pins(ostream&o, unsigned ind) const
{ {
for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) { for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) {
o << setw(ind) << "" << idx << " " << pin(idx).get_name() o << setw(ind) << "" << idx << " " << pin(idx).get_name();
<< "<" << pin(idx).get_inst() << ">";
switch (pin(idx).get_dir()) { switch (pin(idx).get_dir()) {
case Link::PASSIVE: case Link::PASSIVE:

View File

@ -251,7 +251,7 @@ NetEvProbe::NetEvProbe(NetScope*s, perm_string n, NetEvent*tgt,
{ {
for (unsigned idx = 0 ; idx < p ; idx += 1) { for (unsigned idx = 0 ; idx < p ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("P"), idx); pin(idx).set_name(perm_string::literal("P"));
} }
enext_ = event_->probes_; enext_ = event_->probes_;

View File

@ -34,12 +34,12 @@ NetUserFunc::NetUserFunc(NetScope*s, perm_string n, NetScope*d)
def_(d) def_(d)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(def_->basename(), 0); pin(0).set_name(def_->basename());
for (unsigned idx = 1 ; idx < pin_count() ; idx += 1) { for (unsigned idx = 1 ; idx < pin_count() ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("D"), idx-1); pin(idx).set_name(perm_string::literal("D"));
pin(idx).drive0(Link::HIGHZ); pin(idx).drive0(Link::HIGHZ);
pin(idx).drive1(Link::HIGHZ); pin(idx).drive1(Link::HIGHZ);
} }
@ -136,12 +136,12 @@ NetSysFunc::NetSysFunc(NetScope*s, perm_string n,
def_ = def; def_ = def;
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Q"), 0); pin(0).set_name(perm_string::literal("Q"));
for (unsigned idx = 1 ; idx < pin_count() ; idx += 1) { for (unsigned idx = 1 ; idx < pin_count() ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("D"), idx-1); pin(idx).set_name(perm_string::literal("D"));
pin(idx).drive0(Link::HIGHZ); pin(idx).drive0(Link::HIGHZ);
pin(idx).drive1(Link::HIGHZ); pin(idx).drive1(Link::HIGHZ);
} }

View File

@ -64,7 +64,7 @@ void connect(Link&l, Link&r)
Link::Link() Link::Link()
: dir_(PASSIVE), drive0_(STRONG), drive1_(STRONG), init_(verinum::Vx), : dir_(PASSIVE), drive0_(STRONG), drive1_(STRONG), init_(verinum::Vx),
inst_(0), next_(0), nexus_(0) next_(0), nexus_(0)
{ {
(new Nexus()) -> relink(this); (new Nexus()) -> relink(this);
} }
@ -206,10 +206,9 @@ unsigned Link::get_pin() const
return pin_; return pin_;
} }
void Link::set_name(perm_string n, unsigned i) void Link::set_name(perm_string n)
{ {
name_ = n; name_ = n;
inst_ = i;
} }
perm_string Link::get_name() const perm_string Link::get_name() const
@ -217,11 +216,6 @@ perm_string Link::get_name() const
return name_; return name_;
} }
unsigned Link::get_inst() const
{
return inst_;
}
Nexus::Nexus() Nexus::Nexus()
{ {
name_ = 0; name_ = 0;
@ -455,7 +449,7 @@ const char* Nexus::name() const
pin = lnk->get_pin(); pin = lnk->get_pin();
cerr << "internal error: No signal for nexus of " << cerr << "internal error: No signal for nexus of " <<
obj->name() << " pin " << pin << "(" << obj->name() << " pin " << pin << "(" <<
lnk->get_name() << "<" << lnk->get_inst() << ">)" lnk->get_name() << ")"
" type=" << typeid(*obj).name() << "?" << endl; " type=" << typeid(*obj).name() << "?" << endl;
} }

View File

@ -41,11 +41,11 @@ NetModulo::NetModulo(NetScope*s, perm_string n, unsigned wr,
width_r_(wr), width_a_(wa), width_b_(wb) width_r_(wr), width_a_(wa), width_b_(wb)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("DataA"), 0); pin(1).set_name(perm_string::literal("DataA"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("DataB"), 0); pin(2).set_name(perm_string::literal("DataB"));
} }
NetModulo::~NetModulo() NetModulo::~NetModulo()

View File

@ -45,19 +45,19 @@ static bool has_enable(ivl_switch_type_t tt)
NetTran::NetTran(NetScope*scope, perm_string n, ivl_switch_type_t tt) NetTran::NetTran(NetScope*scope, perm_string n, ivl_switch_type_t tt)
: NetNode(scope, n, has_enable(tt)? 3 : 2), type_(tt) : NetNode(scope, n, has_enable(tt)? 3 : 2), type_(tt)
{ {
pin(0).set_dir(Link::PASSIVE); pin(0).set_name(perm_string::literal("A"), 0); pin(0).set_dir(Link::PASSIVE); pin(0).set_name(perm_string::literal("A"));
pin(1).set_dir(Link::PASSIVE); pin(1).set_name(perm_string::literal("B"), 0); pin(1).set_dir(Link::PASSIVE); pin(1).set_name(perm_string::literal("B"));
if (pin_count() == 3) { if (pin_count() == 3) {
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("E"), 0); pin(2).set_name(perm_string::literal("E"));
} }
} }
NetTran::NetTran(NetScope*scope, perm_string n, unsigned wid, unsigned part, unsigned off) NetTran::NetTran(NetScope*scope, perm_string n, unsigned wid, unsigned part, unsigned off)
: NetNode(scope, n, 2), type_(IVL_SW_TRAN_VP), wid_(wid), part_(part), off_(off) : NetNode(scope, n, 2), type_(IVL_SW_TRAN_VP), wid_(wid), part_(part), off_(off)
{ {
pin(0).set_dir(Link::PASSIVE); pin(0).set_name(perm_string::literal("A"), 0); pin(0).set_dir(Link::PASSIVE); pin(0).set_name(perm_string::literal("A"));
pin(1).set_dir(Link::PASSIVE); pin(1).set_name(perm_string::literal("B"), 0); pin(1).set_dir(Link::PASSIVE); pin(1).set_name(perm_string::literal("B"));
} }
NetTran::~NetTran() NetTran::~NetTran()

View File

@ -30,10 +30,10 @@ NetUDP::NetUDP(NetScope*s, perm_string n, unsigned pins, PUdp *u)
: NetNode(s, n, pins), udp(u) : NetNode(s, n, pins), udp(u)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
for (unsigned idx = 1 ; idx < pins ; idx += 1) { for (unsigned idx = 1 ; idx < pins ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("I"), idx-1); pin(idx).set_name(perm_string::literal("I"));
} }
} }

View File

@ -238,9 +238,9 @@ NetNode::~NetNode()
NetBranch::NetBranch(discipline_t*dis) NetBranch::NetBranch(discipline_t*dis)
: NetPins(2), discipline_(dis) : NetPins(2), discipline_(dis)
{ {
pin(0).set_name(perm_string::literal("A"), 0); pin(0).set_name(perm_string::literal("A"));
pin(0).set_dir(Link::PASSIVE); pin(0).set_dir(Link::PASSIVE);
pin(1).set_name(perm_string::literal("B"), 0); pin(1).set_name(perm_string::literal("B"));
pin(1).set_dir(Link::PASSIVE); pin(1).set_dir(Link::PASSIVE);
} }
@ -266,13 +266,13 @@ NetDelaySrc::NetDelaySrc(NetScope*s, perm_string n, unsigned npins,
posedge_ = false; posedge_ = false;
negedge_ = false; negedge_ = false;
for (unsigned idx = 0 ; idx < npins ; idx += 1) { for (unsigned idx = 0 ; idx < npins ; idx += 1) {
pin(idx).set_name(perm_string::literal("I"), idx); pin(idx).set_name(perm_string::literal("I"));
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
} }
if (condit_src) { if (condit_src) {
condit_flag_ = true; condit_flag_ = true;
pin(npins).set_name(perm_string::literal("COND"), 0); pin(npins).set_name(perm_string::literal("COND"));
pin(npins).set_dir(Link::INPUT); pin(npins).set_dir(Link::INPUT);
} }
} }
@ -455,7 +455,7 @@ NetNet::NetNet(NetScope*s, perm_string n, Type t, unsigned npins)
break; break;
} }
pin(0).set_name(perm_string::literal("P"), 0); pin(0).set_name(perm_string::literal("P"));
pin(0).set_dir(dir); pin(0).set_dir(dir);
pin(0).set_init(init_value); pin(0).set_init(init_value);
@ -494,7 +494,7 @@ NetNet::NetNet(NetScope*s, perm_string n, Type t,
} }
for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) { for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) {
pin(idx).set_name(perm_string::literal("P"), idx); pin(idx).set_name(perm_string::literal("P"));
pin(idx).set_dir(dir); pin(idx).set_dir(dir);
pin(idx).set_init(init_value); pin(idx).set_init(init_value);
} }
@ -542,7 +542,7 @@ NetNet::NetNet(NetScope*s, perm_string n, Type t,
} }
for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) { for (unsigned idx = 0 ; idx < pin_count() ; idx += 1) {
pin(idx).set_name(perm_string::literal("P"), idx); pin(idx).set_name(perm_string::literal("P"));
pin(idx).set_dir(dir); pin(idx).set_dir(dir);
pin(idx).set_init(init_value); pin(idx).set_init(init_value);
} }
@ -799,8 +799,8 @@ NetPartSelect::NetPartSelect(NetNet*sig, unsigned off, unsigned wid,
pin(1).set_dir(Link::OUTPUT); pin(1).set_dir(Link::OUTPUT);
break; break;
} }
pin(0).set_name(perm_string::literal("Part"), 0); pin(0).set_name(perm_string::literal("Part"));
pin(1).set_name(perm_string::literal("Vect"), 0); pin(1).set_name(perm_string::literal("Vect"));
} }
NetPartSelect::NetPartSelect(NetNet*sig, NetNet*sel, NetPartSelect::NetPartSelect(NetNet*sig, NetNet*sel,
@ -823,9 +823,9 @@ NetPartSelect::NetPartSelect(NetNet*sig, NetNet*sel,
} }
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(0).set_name(perm_string::literal("Part"), 0); pin(0).set_name(perm_string::literal("Part"));
pin(1).set_name(perm_string::literal("Vect"), 0); pin(1).set_name(perm_string::literal("Vect"));
pin(2).set_name(perm_string::literal("Select"), 0); pin(2).set_name(perm_string::literal("Select"));
} }
NetPartSelect::~NetPartSelect() NetPartSelect::~NetPartSelect()
@ -890,28 +890,28 @@ NetCastInt::NetCastInt(NetScope*scope, perm_string n, unsigned width)
: NetNode(scope, n, 2), width_(width) : NetNode(scope, n, 2), width_(width)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("I"), 0); pin(1).set_name(perm_string::literal("I"));
} }
NetCastReal::NetCastReal(NetScope*scope, perm_string n, bool signed_flag) NetCastReal::NetCastReal(NetScope*scope, perm_string n, bool signed_flag)
: NetNode(scope, n, 2), signed_flag_(signed_flag) : NetNode(scope, n, 2), signed_flag_(signed_flag)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("I"), 0); pin(1).set_name(perm_string::literal("I"));
} }
NetConcat::NetConcat(NetScope*scope, perm_string n, unsigned wid, unsigned cnt) NetConcat::NetConcat(NetScope*scope, perm_string n, unsigned wid, unsigned cnt)
: NetNode(scope, n, cnt+1), width_(wid) : NetNode(scope, n, cnt+1), width_(wid)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
for (unsigned idx = 1 ; idx < cnt+1 ; idx += 1) { for (unsigned idx = 1 ; idx < cnt+1 ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("I"), idx-1); pin(idx).set_name(perm_string::literal("I"));
} }
} }
@ -929,9 +929,9 @@ NetReplicate::NetReplicate(NetScope*scope, perm_string n,
: NetNode(scope, n, 2), width_(wid), repeat_(rpt) : NetNode(scope, n, 2), width_(wid), repeat_(rpt)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("I"), 0); pin(1).set_name(perm_string::literal("I"));
} }
NetReplicate::~NetReplicate() NetReplicate::~NetReplicate()
@ -966,21 +966,21 @@ NetFF::NetFF(NetScope*s, perm_string n, unsigned width)
: NetNode(s, n, 8), width_(width) : NetNode(s, n, 8), width_(width)
{ {
pin_Clock().set_dir(Link::INPUT); pin_Clock().set_dir(Link::INPUT);
pin_Clock().set_name(perm_string::literal("Clock"), 0); pin_Clock().set_name(perm_string::literal("Clock"));
pin_Enable().set_dir(Link::INPUT); pin_Enable().set_dir(Link::INPUT);
pin_Enable().set_name(perm_string::literal("Enable"), 0); pin_Enable().set_name(perm_string::literal("Enable"));
pin_Aset().set_dir(Link::INPUT); pin_Aset().set_dir(Link::INPUT);
pin_Aset().set_name(perm_string::literal("Aset"), 0); pin_Aset().set_name(perm_string::literal("Aset"));
pin_Aclr().set_dir(Link::INPUT); pin_Aclr().set_dir(Link::INPUT);
pin_Aclr().set_name(perm_string::literal("Aclr"), 0); pin_Aclr().set_name(perm_string::literal("Aclr"));
pin_Sset().set_dir(Link::INPUT); pin_Sset().set_dir(Link::INPUT);
pin_Sset().set_name(perm_string::literal("Sset"), 0); pin_Sset().set_name(perm_string::literal("Sset"));
pin_Sclr().set_dir(Link::INPUT); pin_Sclr().set_dir(Link::INPUT);
pin_Sclr().set_name(perm_string::literal("Sclr"), 0); pin_Sclr().set_name(perm_string::literal("Sclr"));
pin_Data().set_dir(Link::INPUT); pin_Data().set_dir(Link::INPUT);
pin_Data().set_name(perm_string::literal("Data"), 0); pin_Data().set_name(perm_string::literal("Data"));
pin_Q().set_dir(Link::OUTPUT); pin_Q().set_dir(Link::OUTPUT);
pin_Q().set_name(perm_string::literal("Q"), 0); pin_Q().set_name(perm_string::literal("Q"));
} }
NetFF::~NetFF() NetFF::~NetFF()
@ -1097,9 +1097,9 @@ NetAbs::NetAbs(NetScope*s, perm_string n, unsigned w)
: NetNode(s, n, 2), width_(w) : NetNode(s, n, 2), width_(w)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("DataA"), 0); pin(1).set_name(perm_string::literal("DataA"));
} }
NetAbs::~NetAbs() NetAbs::~NetAbs()
@ -1128,23 +1128,23 @@ NetAddSub::NetAddSub(NetScope*s, perm_string n, unsigned w)
: NetNode(s, n, 9), width_(w) : NetNode(s, n, 9), width_(w)
{ {
pin(0).set_dir(Link::INPUT); pin(0).set_dir(Link::INPUT);
pin(0).set_name(perm_string::literal("Add_Sub"), 0); pin(0).set_name(perm_string::literal("Add_Sub"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("Aclr"), 0); pin(1).set_name(perm_string::literal("Aclr"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("Clock"), 0); pin(2).set_name(perm_string::literal("Clock"));
pin(3).set_dir(Link::INPUT); pin(3).set_dir(Link::INPUT);
pin(3).set_name(perm_string::literal("Cin"), 0); pin(3).set_name(perm_string::literal("Cin"));
pin(4).set_dir(Link::OUTPUT); pin(4).set_dir(Link::OUTPUT);
pin(4).set_name(perm_string::literal("Cout"), 0); pin(4).set_name(perm_string::literal("Cout"));
pin(5).set_dir(Link::OUTPUT); pin(5).set_dir(Link::OUTPUT);
pin(5).set_name(perm_string::literal("Overflow"), 0); pin(5).set_name(perm_string::literal("Overflow"));
pin(6).set_dir(Link::INPUT); pin(6).set_dir(Link::INPUT);
pin(6).set_name(perm_string::literal("DataA"), 0); pin(6).set_name(perm_string::literal("DataA"));
pin(7).set_dir(Link::INPUT); pin(7).set_dir(Link::INPUT);
pin(7).set_name(perm_string::literal("DataB"), 0); pin(7).set_name(perm_string::literal("DataB"));
pin(8).set_dir(Link::OUTPUT); pin(8).set_dir(Link::OUTPUT);
pin(8).set_name(perm_string::literal("Result"), 0); pin(8).set_name(perm_string::literal("Result"));
} }
NetAddSub::~NetAddSub() NetAddSub::~NetAddSub()
@ -1201,9 +1201,9 @@ NetArrayDq::NetArrayDq(NetScope*s, perm_string n, NetNet*mem, unsigned awid)
mem_(mem), awidth_(awid) mem_(mem), awidth_(awid)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("Address"), 0); pin(1).set_name(perm_string::literal("Address"));
// Increment the expression reference count for the target // Increment the expression reference count for the target
// memory so that it is not deleted underneath me. // memory so that it is not deleted underneath me.
mem->incr_eref(); mem->incr_eref();
@ -1262,11 +1262,11 @@ NetCLShift::NetCLShift(NetScope*s, perm_string n,
right_flag_(right_flag), signed_flag_(signed_flag) right_flag_(right_flag), signed_flag_(signed_flag)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("Data"), 0); pin(1).set_name(perm_string::literal("Data"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("Distance"), 0); pin(2).set_name(perm_string::literal("Distance"));
} }
NetCLShift::~NetCLShift() NetCLShift::~NetCLShift()
@ -1474,11 +1474,11 @@ NetDivide::NetDivide(NetScope*sc, perm_string n, unsigned wr,
width_r_(wr), width_a_(wa), width_b_(wb), signed_flag_(false) width_r_(wr), width_a_(wa), width_b_(wb), signed_flag_(false)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("DataA"), 0); pin(1).set_name(perm_string::literal("DataA"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("DataB"), 0); pin(2).set_name(perm_string::literal("DataB"));
} }
NetDivide::~NetDivide() NetDivide::~NetDivide()
@ -1544,7 +1544,7 @@ NetLiteral::NetLiteral(NetScope*sc, perm_string n, const verireal&val)
: NetNode(sc, n, 1), real_(val) : NetNode(sc, n, 1), real_(val)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
} }
NetLiteral::~NetLiteral() NetLiteral::~NetLiteral()
@ -1567,11 +1567,11 @@ NetMult::NetMult(NetScope*sc, perm_string n, unsigned wr,
signed_(false), width_r_(wr), width_a_(wa), width_b_(wb) signed_(false), width_r_(wr), width_a_(wa), width_b_(wb)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("DataA"), 0); pin(1).set_name(perm_string::literal("DataA"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("DataB"), 0); pin(2).set_name(perm_string::literal("DataB"));
} }
NetMult::~NetMult() NetMult::~NetMult()
@ -1639,11 +1639,11 @@ NetPow::NetPow(NetScope*sc, perm_string n, unsigned wr,
signed_(false), width_r_(wr), width_a_(wa), width_b_(wb) signed_(false), width_r_(wr), width_a_(wa), width_b_(wb)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Result"), 0); pin(0).set_name(perm_string::literal("Result"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("DataA"), 0); pin(1).set_name(perm_string::literal("DataA"));
pin(2).set_dir(Link::INPUT); pin(2).set_dir(Link::INPUT);
pin(2).set_name(perm_string::literal("DataB"), 0); pin(2).set_name(perm_string::literal("DataB"));
} }
NetPow::~NetPow() NetPow::~NetPow()
@ -1719,13 +1719,13 @@ NetMux::NetMux(NetScope*s, perm_string n,
width_(wi), size_(si), swidth_(sw) width_(wi), size_(si), swidth_(sw)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("Q"), 0); pin(0).set_name(perm_string::literal("Q"));
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(1).set_name(perm_string::literal("Sel"), 0); pin(1).set_name(perm_string::literal("Sel"));
for (unsigned idx = 0 ; idx < size_ ; idx += 1) { for (unsigned idx = 0 ; idx < size_ ; idx += 1) {
pin_Data(idx).set_dir(Link::INPUT); pin_Data(idx).set_dir(Link::INPUT);
pin_Data(idx).set_name(perm_string::literal("D"), idx); pin_Data(idx).set_name(perm_string::literal("D"));
} }
} }
@ -1785,8 +1785,8 @@ NetSignExtend::NetSignExtend(NetScope*s, perm_string n, unsigned w)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
pin(1).set_name(perm_string::literal("I"), 0); pin(1).set_name(perm_string::literal("I"));
} }
NetSignExtend::~NetSignExtend() NetSignExtend::~NetSignExtend()
@ -1803,8 +1803,8 @@ NetBUFZ::NetBUFZ(NetScope*s, perm_string n, unsigned w)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(1).set_dir(Link::INPUT); pin(1).set_dir(Link::INPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
pin(1).set_name(perm_string::literal("I"), 0); pin(1).set_name(perm_string::literal("I"));
} }
NetBUFZ::~NetBUFZ() NetBUFZ::~NetBUFZ()
@ -1819,9 +1819,9 @@ unsigned NetBUFZ::width() const
NetCaseCmp::NetCaseCmp(NetScope*s, perm_string n, unsigned wid, bool eeq) NetCaseCmp::NetCaseCmp(NetScope*s, perm_string n, unsigned wid, bool eeq)
: NetNode(s, n, 3), width_(wid), eeq_(eeq) : NetNode(s, n, 3), width_(wid), eeq_(eeq)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_name(perm_string::literal("O"),0); pin(0).set_dir(Link::OUTPUT); pin(0).set_name(perm_string::literal("O"));
pin(1).set_dir(Link::INPUT); pin(1).set_name(perm_string::literal("I"),0); pin(1).set_dir(Link::INPUT); pin(1).set_name(perm_string::literal("I0"));
pin(2).set_dir(Link::INPUT); pin(2).set_name(perm_string::literal("I"),1); pin(2).set_dir(Link::INPUT); pin(2).set_name(perm_string::literal("I1"));
} }
NetCaseCmp::~NetCaseCmp() NetCaseCmp::~NetCaseCmp()
@ -1880,7 +1880,7 @@ NetConst::NetConst(NetScope*s, perm_string n, verinum::V v)
: NetNode(s, n, 1), width_(1) : NetNode(s, n, 1), width_(1)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
value_ = new verinum::V[1]; value_ = new verinum::V[1];
value_[0] = v; value_[0] = v;
} }
@ -1889,7 +1889,7 @@ NetConst::NetConst(NetScope*s, perm_string n, const verinum&val)
: NetNode(s, n, 1), width_(val.len()) : NetNode(s, n, 1), width_(val.len())
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
value_ = new verinum::V[width_]; value_ = new verinum::V[width_];
for (unsigned idx = 0 ; idx < width_ ; idx += 1) { for (unsigned idx = 0 ; idx < width_ ; idx += 1) {
value_[idx] = val.get(idx); value_[idx] = val.get(idx);
@ -2418,10 +2418,10 @@ NetLogic::NetLogic(NetScope*s, perm_string n, unsigned pins,
: NetNode(s, n, pins), type_(t), width_(wid) : NetNode(s, n, pins), type_(t), width_(wid)
{ {
pin(0).set_dir(Link::OUTPUT); pin(0).set_dir(Link::OUTPUT);
pin(0).set_name(perm_string::literal("O"), 0); pin(0).set_name(perm_string::literal("O"));
for (unsigned idx = 1 ; idx < pins ; idx += 1) { for (unsigned idx = 1 ; idx < pins ; idx += 1) {
pin(idx).set_dir(Link::INPUT); pin(idx).set_dir(Link::INPUT);
pin(idx).set_name(perm_string::literal("I"), idx-1); pin(idx).set_name(perm_string::literal("I"));
} }
} }

View File

@ -259,9 +259,8 @@ class Link {
// A link of an object (sometimes called a "pin") has a // A link of an object (sometimes called a "pin") has a
// name. It is convenient for the name to have a string and an // name. It is convenient for the name to have a string and an
// integer part. // integer part.
void set_name(perm_string, unsigned inst =0); void set_name(perm_string);
perm_string get_name() const; perm_string get_name() const;
unsigned get_inst() const;
private: private:
// The NetNode manages these. They point back to the // The NetNode manages these. They point back to the
@ -277,7 +276,6 @@ class Link {
// has width, then the inst_ member is the index of the // has width, then the inst_ member is the index of the
// pin. // pin.
perm_string name_; perm_string name_;
unsigned inst_;
private: private:
Link *next_; Link *next_;