Professional Documents
Culture Documents
25. To filter all the PG pins with direction bidi of a specific instance:
dbGet [dbGet -p [dbGet -p top.insts.name instName].pgCellTerms.inOutDir bidi].name
26. To get class and subClass of a cell:
dbGet [dbGetCellByName cellName].baseClass
dbGet [dbGetCellByName cellName].subClass
27. To find out the instname/cellname of the driver driving a specific net.
set netName <netName>
set inst [dbGet [dbGet -p [dbGet -p top.nets.name $netName].allTerms.isOutput 1].inst]
Puts "Net: $netName, driving inst name: [dbGet $inst.name], driving cell name: [dbGet
$inst.cell.name]"
28. To list all layers for the pin of a cell:
dbGet [dbGet -p selected.cell.terms.name pinName].pins.allShapes.layer.extName
29. Report points of polyon that forms the die area:
dbShape -output polygon [dbGet top.fPlan.boxes]
30. To query the max_cap for a list of cells
set cellPtrList [dbGet -p head.allCells.name BUF*]
foreach cellPtr $cellPtrList {puts "[dbGet $cellPtr.name] [dbFTermMaxCap [dbGet -p
$cellPtr.terms.name <termName>] 1]"}
31. To find all instances with a specify property name "myProp" (string property type) and
value "xyzzy"
set inst_ptrs [dbGet -p top.insts.props {.name == "myProp" && .value == "xyzzy"]
Puts "Instances with property myProp and value xyzzy: [dbGet $inst_ptrs.name]"
against sneak leakage paths. With great care, level shifters can be avoided in some cases, but
this will become less practicable on a wider scale.
(2) Isolation Cell: These are special cells required at the interface between blocks which are
shut-down and always on. They clamp the output node to a known voltage. These cells needs
to be placed in an always on region only and the enable signal of the isolation cell needs to
be always_on. In a nut-shell, an isolation cell is necessary to isolate floating inputs.
There are 2 types of isolation cells (a) Retain 0 (b) Retain 1
(3) Enable Level Shifter: This cell is a combination of a Level Shifter and a Isolation cell.
(4) Retention Flops: These cells are special flops with multiple power supply. They
are typically used as a shadow register to retain its value even if the block in which its
residing is shut-down. All the paths leading to this register need to be always_on and hence
special care must be taken to synthesize/place/route them. In a nut-shell, When design
blocks are switched off for sleep mode, data in all flip-flops contained within the block will
be lost. If the designer desires to retain state, retention flip-flops must be used.
The retention flop has the same structure as a standard master-slave flop. However, the
retention flop has a balloon latch that is connected to true-Vdd. With the proper series of
control signals before sleep, the data in the flop can be written into the balloon latch.
Similarly, when the block comes out of sleep, the data can be written back into the flip-flop.
(5) AON cells: Generally these are buffers, that remain always powered irrespective of where
they are placed. They can be either special cells or regular buffers. If special cells are used,
they have thier own secondary power supply and hence can be placed any where in the
design. Using regular buffers as AON cells restricts the placement of these cells in a specific
region.
Picture above gives an idea about how/why/when they are required. In a nut-shell, If data
needs to be routed through or from sleep blocks to active blocks and If the routing distance is
excessively long or the driving load is excessively large, then buffers might be needed to
drive the nets. In these cases, the always-on buffers can be used.
various different ways. First, they can be implemented as PMOS (header) or NMOS (footer)
switches. Secondly, their granularity can be implemented on a cell-level (fine-grain) or on a
block-level (coarse-grain). That is, the switches can be either built into every standard cell, or
they can be used to switch off a large design block of standard cells.
Depending on the design characteristics, if these cells are readily available, we can start
looking at how to use these cells in successfully implementing a Multi-Voltage Design.