Wednesday, September 4, 2019

Scripts for ICCII:

Below all commands are for ICC2 tool so u can replace that commands with your tool commands.


Script for dump all cell ref name in the design.
set fp [open spacer_create.tcl w]                                                                         
foreach A $AA {                                                                                            
set cell [get_attribute [get_cell $A] full_name ]                                                                     
set ref [get_attribute [get_cell $A] ref_name]                                                                        
puts $fp "create_cell $cell */$ref"                                                                                     }
close $fp



Script for to change instance name of cells in the design
set fp [open spacer_create_new.tcl w]                                                                    
set i 1
foreach A $AA {                             
set cell [get_attribute [get_cell $A] full_name ]                                                                      
puts $fp "change_names -instance $cell -new_name inst_pad_spacer_sp$i"                                                 
incr i                                                                                                                  }
 close $fp



For to draw a net along with  on one ESD cell:
First create logical connectivy before sourcing this command
VSS
foreach bbox [get_attribute [get_shapes -of_objects [get_pins -of_objects VSS -filter "port_type == ground"] -filter "layer.name == M9"] bbox] {
        create_shape -net VSS -boundary $bbox -layer M10 -shape_type rect
       create_pg_vias -allow_parallel_objects  -from_layers M9 -to_layers M10 -nets VSS -within_bbox $bbox
        }
POWER
 foreach bbox [get_attribute [get_shapes -of_objects [get_pins -of_objects VDD netname -filter "port_type == power"] -filter "layer.name == M9"] bbox] {
        create_shape -net VDD netname -boundary $bbox -layer M10 -shape_type rect
        create_pg_vias -allow_parallel_objects  -from_layers M9 -to_layers M10 -nets VDD netname -within_bbox $bbox

        }

To get ref names & orientation

set cell [get_cells {<instance names>}]
foreach_in_collection cells [get_cells $cell] {                                                                                                                                                                                                                       set ref [get_attribute $cells ref_name]
set ori [get_attribute $cells orientation] 
puts "$ref$ori"  
 } > filename.tcl

Tcl file for logical connectivity.

change_selection [get_cells *BUMP*]
set r [get_object_name [get_pins -of_objects [get_selection ]]]
foreach i $r {                                                                                                                  
set b [get_object_name [get_nets -of_objects $i]]                                                                                           
puts "$i $b"                                                                                                                              
   }

For to dump [net name] [pin name] [no of pins] [pins layer name] to a tcl file
set values {net names}
puts "net name\t pin_name\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t no.of_pins\t\t\t\t layer_name"
foreach x $values {
set p [get_object_name [get_pins -of_objects [get_nets $x]]]
set q [sizeof_collection [get_pins -of_objects [get_nets $x]]]
set r [get_attribute [get_pins -of_objects [get_nets $x]] layer_name]
puts " $x\t $p\t $q\t\t $r"
> filename.tcl