Skip to content

Commit 2218351

Browse files
committed
issue109 write_verilog seg fault
Signed-off-by: James Cherry <[email protected]>
1 parent 900c762 commit 2218351

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

verilog/VerilogWriter.cc

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -411,30 +411,32 @@ VerilogWriter::writeAssigns(Instance *inst)
411411
while (pin_iter->hasNext()) {
412412
Pin *pin = pin_iter->next();
413413
Term *term = network_->term(pin);
414-
Net *net = network_->net(term);
415-
Port *port = network_->port(pin);
416-
if (port
417-
&& (include_pwr_gnd_
418-
|| !(network_->isPower(net) || network_->isGround(net)))
419-
&& (network_->direction(port)->isAnyOutput()
420-
|| (include_pwr_gnd_ && network_->direction(port)->isPowerGround()))
421-
&& !stringEqual(network_->name(port), network_->name(net))) {
422-
// Port name is different from net name.
423-
string port_vname = netVerilogName(network_->name(port),
424-
network_->pathEscape());
425-
string net_vname = netVerilogName(network_->name(net),
426-
network_->pathEscape());
427-
fprintf(stream_, " assign %s = %s;\n",
428-
port_vname.c_str(),
429-
net_vname.c_str());
414+
if (term) {
415+
Net *net = network_->net(term);
416+
Port *port = network_->port(pin);
417+
if (port
418+
&& (include_pwr_gnd_
419+
|| !(network_->isPower(net) || network_->isGround(net)))
420+
&& (network_->direction(port)->isAnyOutput()
421+
|| (include_pwr_gnd_ && network_->direction(port)->isPowerGround()))
422+
&& !stringEqual(network_->name(port), network_->name(net))) {
423+
// Port name is different from net name.
424+
string port_vname = netVerilogName(network_->name(port),
425+
network_->pathEscape());
426+
string net_vname = netVerilogName(network_->name(net),
427+
network_->pathEscape());
428+
fprintf(stream_, " assign %s = %s;\n",
429+
port_vname.c_str(),
430+
net_vname.c_str());
431+
}
430432
}
431433
}
432434
delete pin_iter;
433435
}
434436

435437
////////////////////////////////////////////////////////////////
436438

437-
// Walk the hierarch counting unconnected nets used to connect to
439+
// Walk the hierarchy counting unconnected nets used to connect to
438440
// bus ports with concatenation.
439441
int
440442
VerilogWriter::findUnconnectedNetCount()

0 commit comments

Comments
 (0)