Uploaded by bagam.smile

VLSI PD

advertisement
03/01/2024, 00:15
VLSI PD
More
shivashivakumar81@gmail.com
Dashboard
Sign Out
VLSI PD
WEDNESDAY, JANUARY 22, 2020
ABOUT ME
swamy
View my complete profile
ENCOUNTER COMMANDS
BLOG ARCHIVE
▼ 2020 (1)
To select all the ports in the design
selectIOPin *
▼ January (1)
ENCOUNTER COMMANDS To select
all the por...
To display all the contents in the shell window
enc_tcl_return_display_limit value
► 2019 (3)
► 2018 (2)
To get the direction of ports
get_attribute [get_pins *] direction
To get the output ports name
all_outputs
get_attribute [get_pins * -filter "direction==out"] name
To get the input ports name
all_inputs
get_attribute [get_pins * -filter "direction==in"] name
To filter weather a port is signal or clock port
To select all the instances in the design
selectInst *
To get the instance names in the design
get_cells *
get_cells * -hierarchical
get_attribute [get_cells * -hierarchical] hierarchical_name
To get all the net names in the design
get_nets *
get_nets * -hierarchical
To get all the combinational cells in the design
get_attribute [get_cells * -hierarchical -filter "is_combinational==true"] hierarchical_name
To check weather a cell is combinational or not
get_attribute [get_cells tem_mbist4/l_releasclk_reg/g16] is_combinational
To get all the sequential cells in the design
get_attribute [get_cells * -hierarchical -filter "is_sequential==true"] hierarchical_name
get_attribute [get_cells tem_mbist4/l_releasclk_reg/g16] is_sequential
To get the no. of pins of an instance
get_attribute [get_cells tem_mbist4/l_releasclk_reg/g16] pin_count
To get the library cell name of an instance
get_attribute [get_cells tem_mbist4/l_releasclk_reg/g16] ref_lib_cell_name
To get only sequential cells excluding memories
get_attribute [get_cells * -hierarchical -filter "is_memory_cell==false && is_sequential==true"] hierarchial_name
Posted by swamy at 11:34 PM
No comments:
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
https://vlsipdforfreshers.blogspot.com
1/7
03/01/2024, 00:15
VLSI PD
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
Posted by swamy at 2:15 AM
1 comment:
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
https://vlsipdforfreshers.blogspot.com
2/7
03/01/2024, 00:15
VLSI PD
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.
Posted by swamy at 2:35 AM
No comments:
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]
https://vlsipdforfreshers.blogspot.com
3/7
03/01/2024, 00:15
VLSI PD
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"]
Posted by maddileti swamy at 1:56 AM
5 comments:
TUESDAY, OCTOBER 23, 2018
How to take route as a tcl file in ICC2.
first switch of pin,ports,terminal,cells.
then select all route in gui.
then come to chell and use this command
lsort -unique [get_attribute [get_selection] object_class]
shapes vias
Then it will show Shapes if u have any vias in ur route then it will show shapes and Vias
Then next use this command
write_routes -objects [get_selection] -output filename.tcl
now routes are generated as tcl file.
Posted by maddileti swamy at 12:19 AM
No comments:
SUNDAY, OCTOBER 7, 2018
Types of DRC's
The layout of a design must be in accordance with a set of predefined technology rules given by the foundry for manufacturability. After
completion of the layout and its physical connection, an automatic program will check each and every polygon in the design against these design
rules and report any violations. This whole process is called Design Rule Checking (DRC). There are many design rules at different technology
nodes, a few of which are mentioned below.
Types of DRCs:
Minimum width and spacing for metal
Minimum width and spacing for via
Fat wire Via keep out Enclosure
End of Line spacing
Minimum area
Over Max stack level
Wide metal jog
Misaligned Via wire
Different net spacing
Special notch spacing
Shorts violation
Different net Via cut spacing
Less than min edge length
Here are some of the practical problems and their solution for different types of DRCs and their solutions.
CASE A: Shorts violation
Description: In short violation, two or more different net segments of the same layer were crossing each other. Here is a practical problem of two
different nets in same metal layer crossing to each other as seen in the following pic.
https://vlsipdforfreshers.blogspot.com
4/7
03/01/2024, 00:15
VLSI PD
Solution:
To fix this type of short violation, different net segments on same layer has to be placed away so that they will not cross each other. In this case,
net adjusted net will not cross each other and also meet the spacing requirement in the same layer.
CASE B: Different Spacing violation
Description : In some cases, the via enclosure is quite large compared to metal width due to large via enclosure. Thee other long net passing
each other and dropped in via will create a different spacing violation.
Solution:
To fix this type of spacing violation, the net needs to be placed away from the via, or different size vias need to be inserted so it will meet the
same net spacing requirement. In above case, routing taken in reverse U shape will meet the spacing requirements as below.
CASE C: Same layer spacing with net and cell geometry blockage
Description: In this case, there is same layer spacing with the cell blockage and via enclosure
Highlighted in pic using white marker. Same net spacing in red color.
Solution:
In this case, to fix violation, the net is routed in non-preferred direction in green color inserted via so spacing is increased between cell blockage
and a net.
https://vlsipdforfreshers.blogspot.com
5/7
03/01/2024, 00:15
VLSI PD
CASE D: Minimum area requirement
Description: There is a minimum area requirement for every segment in a layout.
Solution:
To meet this minimum area requirement, we need to increase the area of the segment that will not violate the other design rule (spacing, short).
For this case I have increase the area where I was getting the violation shown below.
CASE E: VIA Misalignment
Description: This type violation pops up when two different layer of same logical net connected by inserting the VIA. If inserted via is not aligning
with the metal crossing we are seeing the VIA misalignment.
Solution:
Proper VIA instance need to insert so the VIA enclosure align layer in its direction properly and if needed we need to stretch the net and insert
the VIA.
After fixing the all DRC again we need to verify drc with different tool Caliber,Quartz before releasing to foundary because while fixing the drc
there may be a chances of populating the new DRC violation.
Posted by maddileti swamy at 9:45 AM
https://vlsipdforfreshers.blogspot.com
1 comment:
6/7
03/01/2024, 00:15
VLSI PD
Home
Subscribe to: Posts (Atom)
Picture Window theme. Powered by Blogger.
https://vlsipdforfreshers.blogspot.com
7/7
Download