KLayout / klayout

KLayout Main Sources
http://www.klayout.org
GNU General Public License v3.0
782 stars 200 forks source link

In batch .drc script, klayout version prior to 0.27.12, writing OASIS file, how to enable CBLOCKs in OASIS-writer-options (ala SaveLayoutOptions)? #1781

Open sto6 opened 3 months ago

sto6 commented 3 months ago

As of 0.27.12 (I test against 0.27.4 & 0.29.2), CBLOCKS are enabled by default in OASIS writer. For older klayout versions, in .rb batch script I'm able to use SaveLayoutOptions to enable CBLOCKS before writing an OASIS file. How to do the same/similar (if possible) in a .drc script (where to give an altered SaveLayoutOptions)?

For example using ol parameter (klayout -b -r xor.drc ... -rd ol=xor.oas) with the script towards end of (fall 2014): https://www.klayout.de/forum/discussion/100/xor-vs-diff-tool which has line: $ol && target($ol, $co || "XOR")

aside: That script has issues with OASIS named layers: A layerInfo.to_s is used as hash-key, and also as .input() parameter. It can yield format "met3 (46/0)" which is not supported by .input(), and such hash-keys for same layer/datatype pair can differ between the a/b input layout-files (if either or both are OASIS format). Thank you.

klayoutmatthias commented 2 months ago

I assume you are using target to specify the output file. E.g.

target("out.gds")

In order to be more specific in terms of save options, you can write to a RBA::Layout object and save explicitly:

output_layout = RBA::Layout::new
target(output_layout, "TOP")

...

options = RBA::SaveLayoutOptions::new
# ... configure options ...
output_layout.write("out.gds")

Matthias