write_verilog fails for missing pins
This commit is contained in:
parent
5d7ad0a1ef
commit
d108a15c56
|
|
@ -205,12 +205,14 @@ VerilogWriter::writeChild(Instance *child)
|
||||||
while (member_iter->hasNext()) {
|
while (member_iter->hasNext()) {
|
||||||
Port *member = member_iter->next();
|
Port *member = member_iter->next();
|
||||||
Pin *pin = network_->findPin(child, member);
|
Pin *pin = network_->findPin(child, member);
|
||||||
|
const char *net_name = nullptr;
|
||||||
|
if (pin) {
|
||||||
Net *net = network_->net(pin);
|
Net *net = network_->net(pin);
|
||||||
const char *net_name;
|
|
||||||
if (net)
|
if (net)
|
||||||
net_name = network_->name(net);
|
net_name = network_->name(net);
|
||||||
else
|
}
|
||||||
// I can't see the verilog syntax to "skip" a bit in the concatentation.
|
if (net_name == nullptr)
|
||||||
|
// There is no verilog syntax to "skip" a bit in the concatentation.
|
||||||
net_name = stringPrintTmp("_NC%d", unconnected_net_index_++);
|
net_name = stringPrintTmp("_NC%d", unconnected_net_index_++);
|
||||||
const char *net_vname = netVerilogName(net_name, network_->pathEscape());
|
const char *net_vname = netVerilogName(net_name, network_->pathEscape());
|
||||||
if (!first_member)
|
if (!first_member)
|
||||||
|
|
@ -223,6 +225,7 @@ VerilogWriter::writeChild(Instance *child)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
Pin *pin = network_->findPin(child, port);
|
Pin *pin = network_->findPin(child, port);
|
||||||
|
if (pin) {
|
||||||
Net *net = network_->net(pin);
|
Net *net = network_->net(pin);
|
||||||
if (net) {
|
if (net) {
|
||||||
const char *net_name = network_->name(net);
|
const char *net_name = network_->name(net);
|
||||||
|
|
@ -236,6 +239,7 @@ VerilogWriter::writeChild(Instance *child)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
delete port_iter;
|
delete port_iter;
|
||||||
fprintf(stream_, ");\n");
|
fprintf(stream_, ");\n");
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue