Closed gkamendje closed 1 year ago
Its hard to know but I'm guessing you are somehow loading the same gds twice. Can you include the full klayout log?
Here is how Klayout gets called
[INFO][FLOW] Using platform directory ./platforms/myplatform
(/usr/bin/time -f 'Elapsed time: %E[h:]min:sec. CPU time: user %U sys %S (%P). Peak memory: %MKB.' stdbuf -o L /usr/bin/klayout -zz -rd design_name=my_design_top \
-rd in_def=results/myplatform/mydesign/base/6_final.def \
-rd in_files="./platforms/myplatform/gds/mygds.gds " \
-rd config_file=./platforms/myplatform/fill.json \
-rd seal_file="" \
-rd out_file=results/myplatform/mydesign/base/6_1_merged.gds \
-rd tech_file=./objects/myplatform/mydesign/base/klayout.lyt \
-rd layer_map= \
-r ./util/def2stream.py) 2>&1 | tee ./logs/myplatform/mydesign/base/6_1_merge.log
Unfortunately there is not much in the log file (6_1_merge.log) and I am assuming here that KLayout does not generate a separate log file.
Warning: Reading layer map file myStreamout018.map, line 31: NAME record ignored for purpose: myName
Warning: Reading layer map file myStreamout018.map, line 32: NAME record ignored for purpose: myName
Warning: Reading layer map file myStreamout018.map, line 33: NAME record ignored for purpose: myName
Warning: Reading layer map file myStreamout018.map, line 34: NAME record ignored for purpose: myName
Warning: Reading layer map file myStreamout018.map, line 35: NAME record ignored for purpose: myName
Warning: Reading layer map file myStreamout018.map, line 36: NAME record ignored for purpose: myName
[INFO] Reporting cells prior to loading DEF ...
[INFO] Reading DEF ...
ERROR: Duplicate MACRO name: MyCell (inside MACRO) (line=15, cell=, file=MyLef.lef) in Layout.read
./util/def2stream.py:113
Command exited with non-zero status 1
Elapsed time: 0:01.55[h:]min:sec. CPU time: user 1.38 sys 0.12 (96%). Peak memory: 394212KB.
Could it be that the following definition of MyCell
in Mylef.lef
is an issue? (this works fine with other EDA tools so I doubt this could be a problem)
MACRO MyCell
CLASS CORE ;
ORIGIN 0 0 ;
FOREIGN MyCell 0 0 ;
SIZE 15.12 BY 4.48 ;
If your top cell name MyCell or is that something you are instantiating in top?
MyCell is just a cell instantiated at top.
Perhaps you are getting both the LEF and the GDS for the same cell and that is causing the problem?
How is this supposed to work? I can see that the GDS file is passed as an argument to Klayout whereas, def2stream.py reads the LEF file. Is this the expected behavior?
Looking more closely I see it reads the LEF, then reads the GDS, and substitutes it. Could you be reading two LEFs with MyCell (or the same LEF twice)?
I figured out that the entry <lef-files> </lef-files>
was duplicated in the file klayout.lyt
which is passed as tech file to KLayout
-rd tech_file=./objects/myplatform/mydesign/base/klayout.lyt
Removing one of the entries fixed the issue.
Subject
[Documentation] for documentation errors.
Describe the bug
When I try to run
make results/myplatform/mydesign/base/6_1_merged.gds
I get the following errorERROR: Duplicate MACRO name: myCellName (inside MACRO) (line=15, cell=, file=mylef.lef) in Layout.read
Expected Behavior
The merged GDS file should have been created.
Environment