google "klayout drawing bitmap".
It's AI generated summary is not bad and also points you to forum entries where Matthias outlines how the rendering works.
For trying to understand and navigate a large code base, I would recommend to run v…
The layer stack info is in a tech lef and the mapping to gds/oasis layer/datatype is defined in a map file.
klayout already reads both file types, it "just" has to "fill out the layer stack form".
Another approach is to "gu…
klayout -ne reads a 1GB oas using cblocks (1.4GB uncompressed) in < 60s using 1.5GB of memory on a Mac M1. Testcase is the 700k stdcell bsg_chip from the public ispd24 contest, routed/stdcell filled with OpenRoad, uniquely referenced 36 times, no…
What do you run klayout on ?
Windows/Linux/Mac, what kind of cpu/corecount, how much memory ?
What kind of design ?
P&R data ? Maybe with hierarchical fill ? Or fractured (mask) data ?
Please see this discussion on how to provide some informat…
a) I usually change files before opening them again, in this case a cache won’t help at all.
What’s your use case for opening the same file again and again ?
b) What kind of oasis file size and read times do you experience ?
To see klayout read time…
ERROR: A cell with name triangle already exists (position=596, record number=43, cell=triangle)
dump_gds2 output_demo.gds | grep '"'
shows that the gds contains multiple struct with the same name.
So the question is not how to make klayout re…
Considering how easy it is to compile klayout yourself, try that route.
You’ll also be able to run klayout in a debugger in case you still have coredumps.
Get the apple c++ compiler:
https://mac.install.guide/commandlinetools/4
xcode-select –-install
Get some package dependencies:
brew install qt5
brew install git
brew install ruby
brew install python
Get the klayout source code:
git clone https://g…
I’ve been using klayout on an M1 MacBook since that machine came out.
Install homebrew or anaconda clang and qt (both qt5 and qt6 work) packages, get the klayout sources from GitHub and you’re a 12min compile away from always using the latest and g…
Could you give some context ?
Any specific reason why you want to do that inside klayout using a script ?
This can also be done with klayout's buddy tools strm2gds/strm2oas, which will take care of uniquification.
strm2oas a.gds,b.gds.gz,c.oas coll…
I was referring to the this lefdefref pdf:
http://coriolis.lip6.fr/doc/lefdef/lefdefref/lefdefref.pdf 5.8 May 2017
No “golden” gds/oas, because OpenRoad uses klayout to generate that.
To see how OpenRoad draws this testcase use ‘openroad -gui test.…
Matt’s attached reproducer is a valid testcase and the WIDTHTABLE property is described in the lefdefref5.8 on page 104 with some examples.
Essentially it’s a superset of the existing MINWIDTH functionality.
LEF58_MINWIDTH is implemented,
LEF58_WIDTHTABLE is not, it's a different property.
On a related note:
The testcase uses klayout with def2stream.py to convert lef/def and merge it with gds.
This can be also be achieved by using klayout's strm2gds b…
The oasis spec (you might find the draft in web-archives) requires n-strings for cell names.
n-strings must only contain printable ascii (21-7E), which excludes space, tabs and all other control characters and have a length > 0.
Since some databa…
Sorry, I'm not familiar with msys.
But googling your errors, it seems this was still allowed with c++11, so -std=c++11 might help.
PS: If you use ``` in a line before and after code or log output, it's going to be easier to read.
You can edit old po…
You can use https://github.com/klayoutmatthias/dump_oas_gds2 to get an ascii view of gds and oasis files.
Duplicate cells are an error for both gds and oasis, so a small test case will be highly appreciated to fix any potential issue in the klayout …
The oasis spec deliberately removed all text magnification, rotation, positioning and font selection that was possible in gds.
For physical verification the text string and it's coordinates is all that's needed.
There are various gds viewers that c…
Here's some information about the granddaddy of the mask data formats.
Appendix E: EBES Format
https://www.rulabinsky.com/cavd/text/chape.html
But by now everybody should have gotten on the oasis.mask bandwagon.
Is it time to switch to OASIS.MASK?
…
Instead of a file property, I think S_TOP_CELL only makes sense as a property for CELLNAME. Multiple CELLNAME in the cellname table of a strict oasis file can have a S_TOP_CELL property, all but unresolved references have the S_CELL_OFFSET property…
The idea behind oasis S_TOP_CELL and S_BOUNDING_BOX, S_BOUNDING_BOX_AVAILABLE properties was to allow a viewer to load the top cell and the first level bounding boxes to show these while continuing to load the rest of the file in the background. But…
You can use the four arrow buttons at the bottom of the layer view to "move" the selected layers to get the order you want.
I thought I remembered to be able to do that with a mouse click and drag, but couldn't get that to work. I would ha…