From 823807641bf9f49b8ceef46d415acdd724b5c79b Mon Sep 17 00:00:00 2001 From: Matthias Koefferlein Date: Sun, 14 Jun 2020 18:49:21 +0200 Subject: [PATCH] Added anonot method to DRC, provide tests. --- src/drc/drc/built-in-macros/_drc_engine.rb | 55 +++++++++++++++++++++ src/drc/drc/built-in-macros/_drc_layer.rb | 29 +++++++++++ testdata/drc/drcSuiteTests.drc | 7 ++- testdata/drc/drcSuiteTests_au1.oas | Bin 13806 -> 13849 bytes testdata/drc/drcSuiteTests_au2.oas | Bin 62174 -> 62220 bytes testdata/drc/drcSuiteTests_au3.oas | Bin 1200250 -> 1206033 bytes testdata/drc/drcSuiteTests_au4.oas | Bin 62050 -> 62096 bytes testdata/drc/drcSuiteTests_au5.oas | Bin 13605 -> 13648 bytes testdata/drc/drcSuiteTests_au6.oas | Bin 20103 -> 20146 bytes 9 files changed, 90 insertions(+), 1 deletion(-) diff --git a/src/drc/drc/built-in-macros/_drc_engine.rb b/src/drc/drc/built-in-macros/_drc_engine.rb index 6c6b6186a..6776eacb6 100644 --- a/src/drc/drc/built-in-macros/_drc_engine.rb +++ b/src/drc/drc/built-in-macros/_drc_engine.rb @@ -1494,6 +1494,61 @@ CODE end + # used for two-element array output methods (e.g. andnot) + def _tcmd_a2(obj, border, result_cls1, result_cls2, method, *args) + + if @tx && @ty + + tp = RBA::TilingProcessor::new + tp.dbu = self.dbu + tp.scale_to_dbu = false + tp.tile_size(@tx, @ty) + bx = [ @bx || 0.0, border * self.dbu ].max + by = [ @by || 0.0, border * self.dbu ].max + tp.tile_border(bx, by) + + res1 = result_cls1.new + tp.output("res1", res1) + res2 = result_cls2.new + tp.output("res2", res2) + res = [ res1, res2 ] + tp.input("self", obj) + tp.threads = (@tt || 1) + args.each_with_index do |a,i| + if a.is_a?(RBA::Edges) || a.is_a?(RBA::Region) || a.is_a?(RBA::EdgePairs) || a.is_a?(RBA::Texts) + tp.input("a#{i}", a) + else + tp.var("a#{i}", a) + end + end + av = args.size.times.collect { |i| "a#{i}" }.join(", ") + tp.queue("var rr = self.#{method}(#{av}); _output(res1, rr[0]); _output(res2, rr[1])") + run_timed("\"#{method}\" in: #{src_line}", obj) do + tp.execute("Tiled \"#{method}\" in: #{src_line}") + end + + else + + if @dss + @dss.threads = (@tt || 1) + end + + res = nil + run_timed("\"#{method}\" in: #{src_line}", obj) do + res = obj.send(method, *args) + end + + end + + # enable progress + if obj.is_a?(RBA::Region) + obj.disable_progress + end + + res + + end + # used for area and perimeter only def _tdcmd(obj, border, method) diff --git a/src/drc/drc/built-in-macros/_drc_layer.rb b/src/drc/drc/built-in-macros/_drc_layer.rb index 64033a89a..070c18ce0 100644 --- a/src/drc/drc/built-in-macros/_drc_layer.rb +++ b/src/drc/drc/built-in-macros/_drc_layer.rb @@ -1308,6 +1308,35 @@ CODE self + other end + # %DRC% + # @name andnot + # @brief Computes Boolean AND and NOT results at the same time + # @synopsis layer.andnot(other) + # This method returns a two-element array containing one layer for the + # AND result and one for the NOT result. + # + # This method is available for polygon layers. + # + # It can be used to initialize two variables with the AND and NOT results: + # + # @code + # (and_result, not_result) = l1.andnot(l2) + # @/code + # + # As the AND and NOT results are computed in the same sweep, calling this + # method is faster than calling AND and NOT separately. + + def andnot(other) + + requires_region("andnot") + other.requires_region("andnot") + + res = @engine._tcmd_a2(@data, 0, @data.class, @data.class, :andnot, other.data) + + [ DRCLayer::new(@engine, res[0]), DRCLayer::new(@engine, res[1]) ] + + end + # %DRC% # @name & # @brief Boolean AND operation diff --git a/testdata/drc/drcSuiteTests.drc b/testdata/drc/drcSuiteTests.drc index 55cbbedd2..26e7d5e01 100644 --- a/testdata/drc/drcSuiteTests.drc +++ b/testdata/drc/drcSuiteTests.drc @@ -31,16 +31,21 @@ def run_testsuite(dm, ic, tiled = false, hier = false) message "--- general #{lb}" - l1 = a&b + l1 = a & b l1.output(lb, dm) expect_eq(l1.is_empty?, false) + (an1, an2) = a.andnot(b) + an1.output(lb, dm + 1) + expect_eq(an1.is_empty?, false) + a.and(b).xor(l1).is_empty? || raise("xor not empty") tiled || hier || expect_eq(a.and(b).is_merged?, true) a.xor(b).output(RBA::LayerInfo::new(lb + 1, dm)) a.xor(b).xor(a ^ b).is_empty? || raise("xor not empty") a.not(b).output(lb + 2, dm) + an2.output(lb + 2, dm + 1) a.not(b).xor(a - b).is_empty? || raise("xor not empty") a.or(b).output(lb + 3, dm) a.or(b).xor(a | b).is_empty? || raise("xor not empty") diff --git a/testdata/drc/drcSuiteTests_au1.oas b/testdata/drc/drcSuiteTests_au1.oas index 47716726f803011fcdc084e4dfb5ba33f10607d1..f8915df9296fa311d65926cb0daa88531ec6be94 100644 GIT binary patch delta 50 zcmV-20L}mIYng12kOve30TnxC0Fjf>0XmZr2on_s$QrN-*#y}HnGx6okpsa#6+34D IvtA9W1kXC9~;! E0LsV^)c^nh delta 27 jcmeBq#(eK7^Mtv~qPD3UmwskqvQ3}3)NwNl3&(o^sbvd2 diff --git a/testdata/drc/drcSuiteTests_au3.oas b/testdata/drc/drcSuiteTests_au3.oas index eb87b64f167aa531b133a371bc47887954b70c8a..003fd638216d785f14d0c9f9d7e83b3c87d68b57 100644 GIT binary patch delta 24648 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 diff --git a/testdata/drc/drcSuiteTests_au4.oas b/testdata/drc/drcSuiteTests_au4.oas index 969c76839df0b6569f1d75aee8d93059c8d9af4b..0e4551375558e92302bdba2bd48701ae8baf6d28 100644 GIT binary patch delta 52 zcmaF#gn7bK<_U8-MA#S^MD0@2tOkT;XyYb;BCPur-0YF{@voN!LI#_1&O6HyK E0L=gqUH||9 delta 27 jcmbR6l=;yU<_U9|MQu|zF8$2JWSc&5spDoAmY#P2s|O3l diff --git a/testdata/drc/drcSuiteTests_au5.oas b/testdata/drc/drcSuiteTests_au5.oas index f7bda73766efdda4ff5a7568d0af4989d2c03864..53a0b9fb3770d96a714ffbc5944d89931292e75f 100644 GIT binary patch delta 72 zcmV-O0Js08YS3zskOve30TnxC0F!_RDv`aFDLMfJ1j2BLGJs3Qq5**!xiA$t0S3q# eunE}&*#wyp*aVRS!9Eo`X8@D=2Pm_A0jV>4a~QJ# delta 25 hcmcbRwKQwO1ZGjo)X5K(v?d;$%4C_oxt{T&F#wPs3ZMW0 diff --git a/testdata/drc/drcSuiteTests_au6.oas b/testdata/drc/drcSuiteTests_au6.oas index ae57f6a900f3aed4b3c2e6b6fde2a63797421310..51f01d3a1c21188693fcb0475ec55cf810709e92 100644 GIT binary patch delta 70 zcmV-M0J;B%odL3)0g#&q6aoPiJ7oZqfeI>-$dxHN0R#lXaELO1OU9xBff>0l6*vI~ c$QrN-*#y}HnGx6okpsa#6*Fi6vtI!yO)PO1vj6}9 delta 27 jcmdlqm$7{=