Posts

Magnet Placement and Placement Bound in VLSI Physical Design

Magnet Placement and Placement Bound in  VLSI Physical Design These two popular techniques used to optimize placement are Placement Bounds and Magnet Placement. While both techniques aim to improve placement, they differ in their approach, application, and benefits. In this article, we'll look into the details of each technique and compare them to help designers make informed decisions. 1. Placement Bounds Placement Bounds are a type of constraint that controls the placement of groups of leaf cells and hierarchical cells. They allow designers to group cells to minimize wire length and place the cells at the most appropriate locations. Placement Bounds are particularly useful when timing is critical during placement, and cells need to be placed in close proximity to each other. Types of placement Bound: Soft Bound : A Soft Bound is a type of Placement Bound that suggests a preferred placement region for a group of cells. The placement tool tries to place the cells within the specifi...

Scripting Interview Question 2 | Physical Design | Floor-planning | Tcl Programming

Image
Scripting Interview Question 2 | Physical Design  | Floor-Planning | Tcl Programming Role:  Physical Design Company  : Product Based Experience:  5+ years Suppose you are working on floor-planning for a block-level implementation, and one of the key tasks is macro placement. In this scenario, there are special cells in the design that need to be placed according to specific requirements: The cells must be uniformly placed throughout the chip. The block has dimensions of 500 μm in height and 1000 μm in width. The distance between adjacent special cells should be 10 μm in both the vertical and horizontal directions. Each special cell has dimensions of 2 μm x 2 μm. The first special cell should be placed with an offset of 5 μm from the origin. Write a TCL script to implement this placement strategy at floorplan stage. Instructions for Submission: Please post your answers in the comment section below. For detailed explanations and solutions, check the answers later on...

Scripting Interview Question | Physical Design | VLSI

Scripting Interview Question Role: Physical Design Company : Product Based Experience: 5+ years Write a program or suggest an algorithm that compares two files containing lines of code. The program should perform the following tasks: Consider all possible solutions and identify the most efficient one. Identify and report matching patterns between the two files. Identify and report non-matching patterns between the two files. Propose a solution for scenarios where the file sizes are small (hundreds of lines of code). Propose a solution for scenarios where the file sizes are large (thousands of lines of code). Discuss whether the same solution works for both small and large file sizes. Instructions for Submission: Please post your answers in the comment section below. For detailed explanations and solutions, check the answers later on compile-vlsi.blogspot.com Answer: (Updated on 01 Aug 2024) Approach 1: Brute Force Description: Use two nested loops to compare each line of the first f...

Port Punching | Physical Design | VLSI

Image
Port Punching in Physical Design VLSI: Port punching refers to the process where a synthesis or implementation tool automatically creates a port to facilitate connections between hierarchical levels. Let's understand this with a simple example. During the power planning stage, we use UPF commands like create_supply_net, create_supply_port, and connect_supply_net. These commands facilitate the addition of ports between hierarchical levels to establish supply connections, ensuring proper power distribution across the design. Another example is feedthrough port punching/creation. In multi-voltage domains, many nets need to travel long distances due to multiple power domains. Since nets are not permitted to cross voltage areas to which they do not belong, this can lead to excessive wiring, congestion, and potential timing violations. We can address these issues by breaking these nets using feedthroughs with extra ports created on the voltage area boundary, allowing nets to travel into ...

Inputs to Physical Design with examples | VLSI

Inputs to Physical Design | VLSI Today, let's discuss the inputs required to start physical design, along with example. 1. Gate Level Netlist: This is a representation of the circuit at the gate level. It defines the logic gates and their interconnections.                          module and_gate (input A, input B, output Y);                              assign Y = A & B;                          endmodule 2. Cell Libraries: Cell libraries contain information about the standard cells used in the design. There are different types of libraries: Logical Library / timing libraries : Defines the logical functionality of the cells and  provides timing information (e.g., delays, setup, and hold times). Physical Library : Contains physical dimensions and ...

Tcl program to find out unique/odd elements using XOR

Write a Tcl program to find out unique/odd elements from the list 1,3,5,7,7,5,3,1,9. Input : 1,3,5,7,7,5,3,1,9 output : 9 While there are multiple ways to achieve this, as a hashtag VLSI engineer, we'll leverage the hashtag XOR operation. XOR (exclusive OR) results in 1 when two inputs are different and 0 when they are equal. In our program, every number appears twice except for 9. Therefore, by XOR-ing all elements in the list, the result will be 9, the unique/odd element. Below is Tcl Program: hashtag # Define the list set lst [list 1 3 5 3 1 5 9] hashtag # Initialize a variable to store the result set result 0 hashtag # iterate through the list and XOR all elements foreach num $lst { set result [expr {$result ^ $num}] } hashtag # The 'result' variable now contains the odd element puts "The odd element in the list is: $result" "This works well if we have a single unique element, but if there are two or more unique elements, a little extra effort is ...

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

In VLSI physical design and synthesis, achieving optimal PPA ( Power, Performance, Area)    is of paramount importance. Among these criteria, area efficiency is a critical consideration. EDA tools play a crucial role in optimizing area utilization hash  is of paramount importance. Among these criteria, area efficiency is a critical consideration. EDA tools play a crucial role in optimizing area utilization. Let's looks into various techniques for area optimization: Auto-Ungrouping & Boundary Optimization: hashtag EDA tools employ auto-ungrouping to strategically break down certain hierarchical structures, benefiting both area and timing. Furthermore, the tools optimize the placement of hierarchical instance boundaries to minimize area usage. It is recommended to keep these settings enabled, unless specific design constraints necessitate otherwise. Sequential Merging/Removal: EDA tools perform sequential analysis to identify and eliminate hashtag sequencial element...