Physical Design Interview Question | VLSI Physical Design | Tcl Programming

Physical Design Interview Question | VLSI Physical Design | Tcl Programming

Let's say you are working on a block/partition and handling physical design tasks from floor-planning to final GDSII. Floor-planning is one of the major tasks, alongside power planning. Define the major tasks performed during floor-planning. What are the key considerations for both floor-planning and power planning?

After completing the power planning, assume you encounter approximately 1000 power-ground (PG) shorts in the design on a specific layer, M1. How would you approach fixing these PG shorts? Additionally, write a program to quickly identify and resolve these shorts with built-in tool command.

Company : Product Based

Experience: 3+ Years

Answer:

Floor-planning:

https://compile-vlsi.blogspot.com/2024/05/floorplan-series-part-1-physical-design.html

https://compile-vlsi.blogspot.com/2024/05/floorplan-series-part-2-physical-design.html

https://compile-vlsi.blogspot.com/2024/05/floor-planning-part-3-final-physical.html


Tcl code to fix the shorts:

Tool - Cadence Innovus


1. Loop Through Markers

foreach a [get_db current_design .markers -if {.subtype == Short || .layer.name == M1}] {

  • Purpose: This line initiates a loop that iterates through all markers in the current design database.
  • get_db Command: This command retrieves objects from the design database. Here, it is used to get all markers.
  • Condition (-if): The condition filters markers to include only those that have a subtype of "Short" or are on layer "M1". This ensures that the script focuses on identifying short circuits specifically on the M1 layer.

2. Get Bounding Box

    set bbox [get_db $a .bbox]

  • Purpose: This line retrieves the bounding box of the current marker in the loop.
  • Bounding Box (bbox): The bounding box is a rectangular area that fully contains the marker. It defines the region in which the short exists.

3. Select Objects in the Area

    select_obj [get_obj_in_area -area $bbox -obj_type special_via -overlap_only -layers VIA1]

  • Purpose: This line selects objects within the bounding box area that are of type "special_via" on the VIA1 layer.
  • get_obj_in_area Command: This command retrieves objects within a specified area (-area $bbox).
    • Object Type (-obj_type special_via): Specifies that only objects of type "special_via" should be selected.
    • Overlap Only (-overlap_only): Indicates that only objects overlapping with the bounding box should be considered.
    • Layer (-layers VIA1): Specifies that only objects on the VIA1 layer should be selected.

4. Delete Selected Objects

    delete_selected_from_floorplan

  • Purpose: This line deletes the objects that were selected in the previous step from the floorplan.
  • delete_selected_from_floorplan Command: This command removes the selected objects (special vias) from the design. By doing so, it aims to resolve the shorts by removing the vias causing or contributing to the short circuits.


Happy Learning!


#physical #vlsi #vlsidesign #learning #physicaldesign #semiconductor #design #floorplan #powerplan #pv #drc #shorts #freshers #jobs #vlsi #semiconductor #india #ai #artificial #ml #coding #tcl #programming #physicalverification #short #pg #layout #optimization






Comments

Must Read

Understanding of Placement (Physical Design) - Part 1

Interview Question - Physical Design (PD) | Clock Skew

Dealing with Congestion in a Practical Way (Physical Design) :

Scripting Interview Question | Physical Design | VLSI

LVS Issue | Physical verification | VLSI

Port Punching | Physical Design | VLSI

Low Power Design | Physical Design | Part 1

PPA Optimization in Synthesis & Physical Design | Area | VLSI Design

Longer Routing Length | Tcl Scripting | Routing | Physical Design | VLSI

Placement - Physical Design - Part 2 - General Setup