diff --git a/src/db/db/gsiDeclDbNetlist.cc b/src/db/db/gsiDeclDbNetlist.cc index 4ecc0e002..c083786ac 100644 --- a/src/db/db/gsiDeclDbNetlist.cc +++ b/src/db/db/gsiDeclDbNetlist.cc @@ -1455,10 +1455,11 @@ nets_by_name_const_from_netlist (const db::Netlist *netlist, const std::string & tl::GlobPattern glob (name_pattern); glob.set_case_sensitive (netlist->is_case_sensitive ()); for (auto c = netlist->begin_circuits (); c != netlist->end_circuits (); ++c) { + bool is_top = (c->begin_parents () == c->end_parents ()); for (auto n = c->begin_nets (); n != c->end_nets (); ++n) { const db::Net *net = n.operator-> (); - // NOTE: we only pick root nets (pin_count == 0) - if (net->pin_count () == 0 && glob.match (net->name ())) { + // NOTE: we only pick root nets (pin_count == 0 or in top cell) + if ((is_top || net->pin_count () == 0) && glob.match (net->name ())) { res.push_back (net); } } diff --git a/src/drc/drc/built-in-macros/_drc_source.rb b/src/drc/drc/built-in-macros/_drc_source.rb index 6cade1e21..ba1b8a457 100644 --- a/src/drc/drc/built-in-macros/_drc_source.rb +++ b/src/drc/drc/built-in-macros/_drc_source.rb @@ -351,7 +351,7 @@ CODE @layout_var.cells(cell_filter).each do |cell| cell.shapes(tmp).insert(cell.bbox) end - layer = DRCLayer::new(@engine, @engine._cmd(@engine, :_input, @layout_var, @cell.cell_index, [tmp], @sel, @box, @clip, @overlapping, RBA::Shapes::SAll, @global_trans, RBA::Region)) + layer = DRCLayer::new(@engine, @engine._cmd(@engine, :_input, @layout_var, @cell.cell_index, [tmp], @sel, @box, @clip, @overlapping, RBA::Shapes::SAll, @global_trans, [], RBA::Region)) else layer = input layer.insert((RBA::DBox::from_ibox(@cell.bbox) * @layout.dbu).transformed(@global_trans)) @@ -555,7 +555,8 @@ CODE def make_layer layers = [] - DRCLayer::new(@engine, @engine._cmd(@engine, :_input, @layout_var, @cell.cell_index, layers, @sel, @box, @clip, @overlapping, RBA::Shapes::SAll, @global_trans, RBA::Region)) + prop_selectors = [] + DRCLayer::new(@engine, @engine._cmd(@engine, :_input, @layout_var, @cell.cell_index, layers, @sel, @box, @clip, @overlapping, RBA::Shapes::SAll, @global_trans, prop_selectors, RBA::Region)) end # %DRC% diff --git a/testdata/drc/drcGenericTests_au8.gds b/testdata/drc/drcGenericTests_au8.gds index ce06f30ff..805de7592 100644 Binary files a/testdata/drc/drcGenericTests_au8.gds and b/testdata/drc/drcGenericTests_au8.gds differ diff --git a/testdata/drc/drcGenericTests_au8d.gds b/testdata/drc/drcGenericTests_au8d.gds index b1933640c..68c86ae3c 100644 Binary files a/testdata/drc/drcGenericTests_au8d.gds and b/testdata/drc/drcGenericTests_au8d.gds differ