Saturday, February 20, 2016

Double Patterning Technique







Tuesday, February 2, 2016

power routing basics

Power routing basics :
  • How to calculate number of core power/ground pads required?
Lets assume 1Watt power is consumed by chip and 1V is ss corner voltage
Power = Voltage*Current
P=V*I 
I = P/V
  =1/1
  = 1 ampere = 1000 milli ampere
Assume each pad can drive maximum of 100mA current.
No.of power pads required (p) = 1000/100=10  pads
No.of ground pads required (g) = p = 10 pads
Ideally 10 ground pads and 10  power pads are sufficient. In most of the cases the power distribution may not be uniform meaning the pads which are placed in the centre of chip are more effective as the sinks at centre might have less resistive paths. So we need to add more pads lets say 30% more pads.
So, no.of power/ground pads = (1+0.3)*10=13

  • How to calculate the core PG ring width? Given Jmax (maximum current density of metal layer = 50mA/um)
    • Core PG ring width = (Total current)/(No.of sides *Jmax)
             = 1000/(4*50)=5 u


  • How to calculate pad to core trunk width?
    • Pad to core trunk width = total current/(no.of sides * Jmax)
                                            = 1000/(4*50)=5 u
  • How to calculate strap width and no.of straps for a block? Given width of block is W and height of block as H. Total power of block as P
    • Let I = P/V
    • Total current from top and bottom = (I * W)/(W+H)
      • Let current is equally be supplied from top and bottom.
      • Itop = Ibottom = (I * W)/(W+H)
      • Similarly Ileft = Iright = (I * H)/(W+H)
    • With 1% voltage drop at a node in the center
    • Reffective (from Vertical) = (0.01*(VDD/2))/Itop
    • Reffective (from Horizontal) = (0.01*(VDD/2))/Ileft

  • Width of Straps based on EM limits :
    • Total width of Vertical strap (Wvstrap-em) = Itop /Jmax
    • Total width of horizontal strap (Whstrap-em) = Ileft /Jmax
  • Now assume initial width of strap to be 5X of min-width
    • Wvstrap = 5*0.07=0.35 (0.07 is the min width for metal6)
    • Rstripe-v = (Rpsq * H)/Wvstrap
    • Note :  Rpsq =  Rho/thickness
  • No.of vertical straps = Nvstraps = Rstripe-v / Reffective
  • Now check the total width of vertical straps = Nvstraps * Wvstrap is greater than or equal to Wvstrap-em else increase the Wvstrap accordingly.



Tuesday, December 15, 2015

TCL example scripts

In this post, I will upload sample scripts to refer : (Under cons)

EXAMPLE : 1
For the engineers who are familiar with static timing analysis, as a programmer I want to calculate arrival time, required time, slack at each node using the given circuit. The example script will be able to demonstrate some of the tcl functions. The following circuit 10 nodes excluding (Out node), delay of each node is represented in the brackets. The objective of this program is to write a TCL script to analyse the slack at each and every node using graph based slack analysis.

Brief introduction about the graph based STA :
We need to break the entire program into three sections :
1. Arrival time calculation (AT)
2. Required time calculation (RT)
3. Slack calculation. 

First we need to calculate AT at each node, Let's do hand calculation of arrival time at few nodes. Arrival time at node 'A' is 10 as delay of node  'A' is 10 and then it passes through node 'D' whose delay is '8',  so the arrival time at node 'D' is 18 adding the delay of traversed path. But we can reach D by traversing IN->B->D accounting the delay of 13 (5+8), so we need to choose bigger one of the two arrival times (18,13) and assign that  arrival time to node 'D' in this case it is '18'. We need to repeat the same for all the nodes.


In the second section we need to calculate the required time starting from out node 'O'. In general we might be given required time by the clock specification. But in this case we take RT as the max of all the arrival times.









The above circuit can be represented using the adjacency matrix. Please refer to following link to know more about adjacency matrix. https://en.wikipedia.org/wiki/Adjacency_matrix




Sunday, December 13, 2015

physical design

Please visit this blog to learn/discuss all about physical design tips, techniques, fundamentals.

Monday, December 7, 2015

regex

Regex,regsub  :


A regular expression is simply a description of a pattern that describes a set of possible characters in an input string.

Example :



strings

Strings

  • A string is a sequence of letters, it always need not be enclosed in the quotes until you use some white spaces in between the words. Tcl is a string based language it provides rich set of operations on strings.
Examples :
set str1 one
set str2 "two three"

set str3 I\ need\ not\ enclose\ this\ in\ quotes

  • Following operations can be executed on strings:
    • string compare
    • string equal
    • string length
    • string match #global expression
    • string toupper
    • string tolower
    • string totitle #it will convert the starting letter of string to uppercase
    • string index
    • string range
    • string reverse
Example :




lists


  • Lists
    • Lists are equivalent to arrays in the conventional programming language like C.
    • Lists can be expanded and collapsed on the fly.

  • Example 1:
    • set list1 "a  b c d"