From 3b9f3eae2018456e96d7f429cbc9938aaf1afc19 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 29 Jul 2023 02:45:17 +0200 Subject: [PATCH 1/2] Fixed issue #1432 (strm2oas def ignores path segment) --- .../streamers/lefdef/db_plugin/dbDEFImporter.cc | 4 ++-- .../lefdef/unit_tests/dbLEFDEFImportTests.cc | 6 ++++++ testdata/lefdef/issue-1432/au.oas | Bin 0 -> 465 bytes testdata/lefdef/issue-1432/test.def | 8 ++++++++ testdata/lefdef/issue-1432/test.lef | 11 +++++++++++ testdata/lefdef/issue-1432/test.map | 2 ++ 6 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 testdata/lefdef/issue-1432/au.oas create mode 100644 testdata/lefdef/issue-1432/test.def create mode 100644 testdata/lefdef/issue-1432/test.lef create mode 100644 testdata/lefdef/issue-1432/test.map diff --git a/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc b/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc index c72efceee..fdd3f6c24 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc @@ -588,8 +588,8 @@ DEFImporter::read_single_net (std::string &nondefaultrule, Layout &layout, db::C error (tl::to_string (tr ("RECT routing specification not followed by coordinate list"))); } - // breaks wiring - pts.clear (); + // breaks wiring? Issue #1432 says: no. + // pts.clear (); // rect spec diff --git a/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc b/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc index 142b1d92d..788770b82 100644 --- a/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc +++ b/src/plugins/streamers/lefdef/unit_tests/dbLEFDEFImportTests.cc @@ -986,3 +986,9 @@ TEST(207_joined_paths) run_test (_this, "issue-1345", "lef:in.lef+def:in.def", "au-nojoin.oas.gz", default_options (), false); } +// issue-1432 +TEST(208_nets_and_rects) +{ + run_test (_this, "issue-1432", "map:test.map+lef:test.lef+def:test.def", "au.oas", default_options (), false); +} + diff --git a/testdata/lefdef/issue-1432/au.oas b/testdata/lefdef/issue-1432/au.oas new file mode 100644 index 0000000000000000000000000000000000000000..a0e587298f0d31fae45535943e313e42e8b1e5a3 GIT binary patch literal 465 zcmY!lcJ=kt^>+;R4CduxWH!_@V0gjKC?n3q!6L)YEF;ds&!EJR>XUoMnybM;fb~F; z;|1o9>4KX(8~>b$4qRRSKbqrK6n{_8gJqfS+Zf>O#gOU8>wD0`9A3uI6PCb{H_Q3I3 z!RDV*uYT@qGdRtxI^hNbFN4VK90pEiX0f00j9iS2JbX+t>WmzW{ET8242)b146-6O fm^heZnZf2VF`i~*WMEWgEM{x~G8#q}U|;|MFbl#* literal 0 HcmV?d00001 diff --git a/testdata/lefdef/issue-1432/test.def b/testdata/lefdef/issue-1432/test.def new file mode 100644 index 000000000..6c27d93d2 --- /dev/null +++ b/testdata/lefdef/issue-1432/test.def @@ -0,0 +1,8 @@ +VERSION 5.8 ; +DESIGN test ; +UNITS DISTANCE MICRONS 1000 ; +DIEAREA ( -1 -1 ) ( 8 8 ) ; +NETS 1 ; +- dummy + ROUTED M1 ( 0 0 ) ( 5 0 ) VIRTUAL ( 7 1 ) RECT ( -3 0 -1 2 ) ( 7 7 ) ; +END NETS +END DESIGN diff --git a/testdata/lefdef/issue-1432/test.lef b/testdata/lefdef/issue-1432/test.lef new file mode 100644 index 000000000..3a62839f8 --- /dev/null +++ b/testdata/lefdef/issue-1432/test.lef @@ -0,0 +1,11 @@ +UNITS + DATABASE MICRONS 1000 ; +END UNITS + +MANUFACTURINGGRID 0.001 ; + +LAYER M1 + TYPE ROUTING ; + WIDTH 0.002 ; +END M1 + diff --git a/testdata/lefdef/issue-1432/test.map b/testdata/lefdef/issue-1432/test.map new file mode 100644 index 000000000..769acbcb4 --- /dev/null +++ b/testdata/lefdef/issue-1432/test.map @@ -0,0 +1,2 @@ +DIEAREA ALL 108 0 +M1 NET 31 0 From 4f7da687d48064659598c5e153967947cad31509 Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sat, 29 Jul 2023 09:50:58 +0200 Subject: [PATCH 2/2] Removed a question comment --- src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc b/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc index fdd3f6c24..1a58a5061 100644 --- a/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc +++ b/src/plugins/streamers/lefdef/db_plugin/dbDEFImporter.cc @@ -588,9 +588,6 @@ DEFImporter::read_single_net (std::string &nondefaultrule, Layout &layout, db::C error (tl::to_string (tr ("RECT routing specification not followed by coordinate list"))); } - // breaks wiring? Issue #1432 says: no. - // pts.clear (); - // rect spec double x1 = get_double ();