8 Replies Latest reply on Sep 27, 2016 5:35 AM by luciano.artuso

    PROBLEM DURING MERGING GDS FILES

    luciano.artuso

          Hello,

       

      I used this tcl script on command line

       

      calibredrv  myfile.tcl

       

      to merge 3 different gds files.

       

      The output gds file, has been created with correct hierarchy but empty layout.

       

      What is it wrong in my tcl scritp??

       

         Many thanks

       

               Ciao

       

             Luciano

       

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

      # Load file.gds

       

      set Lone [layout create file1.gds -dt_expand -preservePaths -preserveProperties -preserveTextAttributes]

      set precision [expr int (1/([$Lone units]))]

      $Lone units microns $precision

      array set peekdata [layout peek file1.gds -type -precision -topcell -topcells -layers]

      puts $peekdata(layers)

       

      set Ltwo [layout create file2.gds.gz -dt_expand -preservePaths -preserveProperties -preserveTextAttributes]

      set precision2 [expr int (1/([$Ltwo units]))]

      $Ltwo units microns $precision2

      array set peekdata [layout peek file2.gds.gz -type -precision -topcell -topcells -layers]

      puts $peekdata(layers)

       

      set Lthre [layout create file3.gds.gz -dt_expand -preservePaths -preserveProperties -preserveTextAttributes]

      set precision3 [expr int (1/([$Lthre units]))]

      $Lthre units microns $precision3

      array set peekdata [layout peek file3.gds.gz -type -precision -topcell -topcells -layers]

      puts $peekdata(layers)

       

      # Create empty cell

      set Lnew [layout create]

       

      # Create new topcell

      $Lnew create cell TOP

       

      # Copy patterns on new layout

      $Lnew create cell ONE $Lone [$Lone topcell]

      $Lnew create cell TWO $Ltwo [$Ltwo topcell]

      $Lnew create cell THRE $Lthre [$Lthre topcell]

       

      # Place cell reference on new layout

      $Lnew create ref TOP ONE 0 -3743.5 0 0 1

      $Lnew create ref TOP TWO 4358.5 -3366.5 0 0 1

      $Lnew create ref TOP THRE -4546.5 -3282.5 0 0 1

      $Lnew units microns $precision

       

      # Create final gds file

      $Lnew gdsout test.gds.gz TOP

      array set peekdata [layout peek test.gds.gz -type -precision -topcell -topcells -layers]

      puts $peekdata(layers)

      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~