From 203a62f0afa4bab7b5c2bdaadb8a1714078750a4 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 17 Mar 2024 20:41:45 +0100 Subject: [PATCH] Place diodes in debug mode for soft connections, but still generate log entries --- src/db/db/dbLayoutToNetlist.cc | 15 ++++++++------- src/db/db/dbLayoutToNetlist.h | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/db/db/dbLayoutToNetlist.cc b/src/db/db/dbLayoutToNetlist.cc index 74aa559cb..9a8fc5bbc 100644 --- a/src/db/db/dbLayoutToNetlist.cc +++ b/src/db/db/dbLayoutToNetlist.cc @@ -430,11 +430,7 @@ void LayoutToNetlist::extract_netlist () tl_assert (check_many_pins (mp_netlist.get ())); // @@@ // treat soft connections - if (m_make_soft_connection_diodes) { - do_make_soft_connection_diodes (); - } else { - do_soft_connections (); - } + do_soft_connections (); tl_assert (check_many_pins (mp_netlist.get ())); // @@@ // implement the "join_nets" (aka "must connect") feature @@ -650,7 +646,7 @@ void LayoutToNetlist::check_must_connect_impl (const db::Circuit &c, const db::N } } -void LayoutToNetlist::do_make_soft_connection_diodes () +void LayoutToNetlist::place_soft_connection_diodes () { db::DeviceClassDiode *soft_diode = 0; @@ -690,7 +686,12 @@ void LayoutToNetlist::do_soft_connections () SoftConnectionInfo sc_info; sc_info.build (*netlist (), net_clusters ()); sc_info.report (*this); - sc_info.join_soft_connections (*netlist ()); + + if (m_make_soft_connection_diodes) { + place_soft_connection_diodes (); + } else { + sc_info.join_soft_connections (*netlist ()); + } } void LayoutToNetlist::do_join_nets () diff --git a/src/db/db/dbLayoutToNetlist.h b/src/db/db/dbLayoutToNetlist.h index 075804df1..812ee5d7b 100644 --- a/src/db/db/dbLayoutToNetlist.h +++ b/src/db/db/dbLayoutToNetlist.h @@ -1113,7 +1113,7 @@ private: void check_must_connect_impl (const db::Circuit &c, const db::Net &a, const db::Net &b, const db::Circuit &c_org, const db::Net &a_org, const db::Net &b_org, std::vector &path); // for debugging and testing - void do_make_soft_connection_diodes (); + void place_soft_connection_diodes (); // implementation of NetlistManipulationCallbacks virtual size_t link_net_to_parent_circuit (const Net *subcircuit_net, Circuit *parent_circuit, const DCplxTrans &trans);