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



Monday, August 5, 2019

Xterm terminal basic commands


sh xterm -bg black &---->for to change terminal background color
sh xterm -fg white -bg black &------>for to change terminal text and color

Tkdiff 1st tcl file 2nd tcl file ------------>for to compare 2 file parlelly
:set hls----------------->for to highlight error
:3,8w filename------>it will dump from line 3 to line 8 in a new a file
-c "100,200w new_file.txt" -c wq original_file.txt----->it will dump from line 3 to line 8 in a new a file
cd $WARD ------------------>for to know the word area
df -kh--------------------------->for to know disk size  and disk area
Df -hs--------------->
:se nu----> for to give number
:se nonu---->for to remove number
:set nowrap ---->for  to separate the word with space
grep -h /PAD filepath ------>will give PAD word all line in that file
sh gvim +10 net_names.tcl------>it will open the file and point the 10 th line onwards
:r filename t1---->if u want to dump t1 file data in t2 file use this one.u have to use this cmnd in by opening t2 file
Shift+up arrow---->goto line home position
Shift+$---------> goto line End position
ls -R | grep .filetype(.spef,.rpt)------------------->it will list specific type of files
ls -l -R | grep  .filetype(.spef,.rpt)------------------->it will list specific type of files with file permissions

Explain CHMODE:
In chmod total 10 hifuns( symbol - )----->will be there
In that 1st hifun indicate file
Next 3 hifun indicate user

How to insert something in line on before first word ?
First open that file then go to that line keep ur cursor on first word of that line
then press ESC now press CNTL+V
now press down arrow up to which line u required
then press Shift+I now type the word u required then press Esc.

ICC2 Tool Commands


How to add ndms in ref_libs
Open block.tcl file
Report_ref_libs information dump in a new tcl file
Now go to icc2shell
set_ref_libs -add missed ndm file---> from block.tcl file
set_ref_libs -rebind
link_block -force
report_ref_libs
save_block
save_lib

How to resolve upf error ?
commit_upf
save_block
save_lib

How to move ESD cell with origin coordinates ?
move_objects [get_selection ] -to {7486.0965 3288.0000}

How to select all the cells which have net name VDD_1V2_IO ?
 change_selection [get_cells -of_objects [get_net VDD_1V2_IO]]

Cmd for to check shorts
 check_lvs -max_error 0 -checks short----->for to check shorts

How to add buffers
add_buffer -lib_cell ec0cbf000an1n20x5 -new_cell_names 01122019_cell -new_net_names 01122019_net [get_pins lgcio_pch/giolgcpchtop/lgciopchdig/chaitanya_fix_3/clk]

For to check open nets for a specific net
check_lvs -checks open -nets {biss_bg_vref_out} -open_reporting detailed------>for to check opens of a specific net

How to load bumps
read_def -add_def_only_objects {cells nets ports} def file path

How to prepare Empty db

   change_selection  [get_cells *BUMP*]
   remove_objects [get_selection ]
   change_selection [get_shapes -of_objects -filter "layer_name==AP"]
   change_selection [get_shapes  -filter "layer_name==AP"]
   change_selection [get_shapes  -filter "layer_name==M11"]
   change_selection [get_vias  -filter "upper_layer_name==M11 || upper_layer_name==AP "]
   remove_objects [get_selection ]

How to get def file?
Select whatever u need in tool then use below command
write_def -objects [get_selection] filename.def


How to load def?

First create empty db
Then use below command
read_def -add_def_only_objects {cells nets ports} def path

To create cell
create_cell  inst_TMS_SWDIO  */io_sndwire_fs_1v2_1v8_n1
move_objects [get_cell inst_1V8_SUP1V8_1 ] -to {4250.0000 0.0000} 

To get cells
change_selection [get_cells -of_objects [get_nets VDD_DIG_BIS]]
sizeof_collection [get_cells]

To select all cells
lsort -u [get_attribute [get_selection ] object_class ]
Remove_cells [get_selection]
getting particular pins
get_pins par_opio/*xx*
connecting and disconnecting nets
Connect_net -net name pin name
Disconnect_net -net name pin name
cs [gp -of [gn vccvdd2_rpll_hv]] 
get_nets -of_objects [gs]
How to remove terminals?
change_selection [get_terminals *]
remove_objects [get_selection]

How to take routes with tcl
Off terminal,ports,cells
First select nets
Give get selection
Then take that net names and paste in this cmnd on braces
1.change_selection [get_shapes  -of_objects [get_nets netname]] then u will get that net nets shapes
2.change_selection [get_viass -of_objects [get_nets netname ]] -add
3. lsort -u [get_attribute [get_selection ] object_class ]
 4.write_routes -objects [get_selection ] -output filename

To know width of the layer 
ga [get_layer m9] min_width 

For to remove cells from design
Remove_cellls [get_selection]

For to select that net shapes in specific Layer
change_selection [get_shapes -of_objects [get_net VDD_1V2_IO] -filter "layer_name==M10"] 

For to know cell count
sizeof_collection [get_selection]

How to drop Vias in a perticular place by using commands.
 By using bound option first create bound on that area
Next by using this command u can create vias for specific nets by selecting that bound
get_attribute [get_selection ] bbox

How to remove vias from a particular location
Here I am removing m10 vias
First draw bound on the area where u required.
Next use below commands
get_attribute [get_selection ] bbox
change_selection [get_vias -within {give bbox coordinates} -filter "upper_layer_name==M11 || upper_layer_name==M10"]