ASIC Design Entry and Schematic Methods
ASIC Design Entry and Schematic Methods
Unit III
Low-Level Design Entry: Schematic entry: Hierarchical design, The cell library,
Names, Schematic Icons & Symbols, Nets, Schematic
Entry for ASICs, Connections, vectored instances &
buses, Edit in place, attributes, Netlist screener.
ASIC Construction: Physical Design, CAD Tools, System partitioning, Estimating
ASIC size. Partitioning: Goals and objectives, Constructive
Partitioning, Iterative Partitioning Improvement, KL, FM and
Look Ahead algorithms.
(05+05) Hrs
FIGURE: IEEE-recommended dimensions and their construction for logic-gate symbols. (a) NAND gate
(b) exclusive-OR gate (an OR gate is a subset).
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 5
Application – Specific Integrated Circuits [ASIC]
• Figure shows some pictorial definitions of objects you can use in a simple schematic. We shall
discuss the different types of objects that might appear in an ASIC schematic first and then discuss
the different types of connections.
Hierarchical Design
• Hierarchy reduces the size and complexity of a schematic. Suppose a building has 10 floors and
contains several hundred offices but only three different basic office plans.
• Furthermore, suppose each of the floors above the ground floor that contains the lobby is identical.
Then the plans for the whole building need only show detailed plans for the ground floor and one
of the upper floors.
• The plans for the upper floor need only show the locations of each office and the office type. We
can then use a separate set of three detailed plans for each of the different office types. All these
different plans together form a nested structure that is a hierarchical design.
• The plan for the whole building is the top-level plan. The plans for the individual offices are at
the lowest level.
• To clarify the relationship between different levels of hierarchy, we say that a sub-schematic (an
office) is a child of the parent schematic (the floor containing offices).
• An electrical schematic can contain sub-schematics. The sub-schematic, in turn, may contain other
sub-schematics. The figure illustrates the principles of schematic hierarchical design.
• The alternative to hierarchical design is to draw all of the ASIC components on one giant schematic, with no
hierarchy, in a flat design.
• A Second problem with ASIC schematic libraries is that there are no standards for cell behavior.
• For example, a two-input MUX in an Actel library operates so that the input labeled A is selected when the MUX select
input S = '0'. A two-input MUX in a VLSI Technology library operates in the reverse fashion, so that the input labeled B is
selected when S = '0’.
• These types of differences can cause hard-to-find problems when trying to convert a schematic from one vendor to another
by hand.
• These problems make changing or retargeting schematics from one vendor to another difficult. This process is sometimes
known as porting a design.
• Library cells that represent basic logic gates, such as a NAND gate, are known as primitive cells, usually referred to just
as cells.
• In a hierarchical ASIC design, a cell may be a NAND gate, a flip-flop, a multiplier, or even a microprocessor, for example.
• To use the office building analogy again, each of the three basic office types is a primitive cell. However, the plan for the
second floor is also a cell. The second-floor cell is a subschematic of the schematic for the whole building.
• There are two types of macros for MGAs and programmable ASICs. The most common type of macro is a hard macro
that includes placement information. A hard macro can change in position and orientation, but the relative location of the
transistors, other layout, and wiring inside the macro is fixed.
• A soft macro contains only connection information (between transistors for a gate array or between logic cells for a
programmable ASIC). Thus the placement and wiring for a soft macro can vary. This means that the timing parameters for
a soft macro can only be determined after you complete the place-and-route step. For this reason, the basic library
elements for MGAs and programmable ASICs, such as NAND gates, flip-flops, and so on, are hard macros.
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 10
Application – Specific Integrated Circuits [ASIC]
NAMES
• Each of the cells, primitive or not, that you place on an ASIC schematic has a cell name .
• Each use of a cell is a different instance of that cell, and we give each instance a unique instance name .
• A cell instance is somewhere between a copy and a reference to a cell in a library.
• An analogy would be the pictures of hamburgers on the wall in a fast-food restaurant. The pictures are
somewhere between a copy and a reference to a real hamburger.
• We represent each cell instance by a picture or icon , also known as a symbol.
• We can represent primitive cells, such as NAND and NOR gates, with familiar icons that look like spades
and shovels.
• Some schematic editors offer the option of switching between these familiar icons and using the rectangular
IEEE standard symbols for logic gates. Unfortunately the term icon is also often used to refer to any of the
pictures on a schematic, including those that represent subschematics.
• There is no accepted way to differentiate between an icon that represents a primitive cell and one that
represents a subschematic that may be in turn a collection of primitive cells.
• In fact, there is usually no easy way to tell by looking at a schematic which icons represent primitive cells and
which represent subschematics.
FIGURE 9.4 A cell and its subschematic. (a) A schematic library containing icons for the primitive cells. (b) A
subschematic for a cell, DLAT, showing the instance names for the primitive cells. (c) A symbol for cell DLAT.
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 13
Application – Specific Integrated Circuits [ASIC]
• Figure 9.5 (a) shows a more complex subschematic for a 4-bit latch. Each primitive cell instance in this
schematic must have a unique name. This can get very tiresome for large circuits. Instead of creating
complex, but repetitive, subschematics for complex cells we can use hierarchy.
• Figure 9.5 (b) shows a hierarchical subschematic for a cell Four Bit, which in turn uses four instances of the
cell DLAT.
• The four instances of DLAT in Figure 9.5 (b) have different instance names: L1, L2, L3, and L4.
• Notice that we cannot use just one name for the four instances of DLAT to indicate that they are all the same
cell.
• If we did, we could not differentiate between L1 and L2, for example. The vertical row of instances in Figure
9.5 (b) looks like a vector of elements. Figure 9.5 (c) shows a vectored instance representing four copies of the
DLAT cell. We say the cardinality of this instance is 4.
• Tools normally use bold lines or some other distinguishing feature to represent a vectored instance. The
cardinality information is often shown as a vector.
• Thus L[1:4] represents four instances: L[1], L[2], L[3], L[4]. This is convenient because now we can see that
all subcells are identical copies of L, but we have a unique name for each.
• Finally, as shown in Figure 9.5 (d), we can create a new symbol for the 4-bit latch, FourBit.
• The symbol for FourBit has a 4-bit wide input bus for the four D inputs, and a 4-bit wide output bus for the
four Q outputs.
• The subschematic for FourBit could be either Figure 9.5 (a), (b), or (c) (though the exact naming of the inputs
and outputs and their attachment to the buses may be different in each case).
NETS
The schematics shown in Figure 9.4 contain both local nets and external nets. An example of a local
net in Figure 9.4 (b) is n1, the connection between the output terminal of the AND cell and1 to the OR cell
or1. When the four copies of this circuit are placed in the parent cell FourBit in Figure 9.5 (d), four copies of
net n1 are created. Since the four nets named n1 are not actually electrically connected, even though they have
the same name at the lowest hierarchical level, we must somehow find a way to uniquely identify each net.
The usual convention for naming nets in a hierarchical schematic uses the parent cell instance name as
a prefix to the local net name. A special character (':' '/' '$’ '#' for example) that is not allowed to appear in
names is used as a delimiter to separate the net name from the cell instance name. Supposing that we drew the
subschematic for cell FourBit as shown in Figure 9.5 (b), the four different nets labeled n1 might then
become:
FourBit .L1:n1 FourBit .L2:n1 FourBit .L3:n1 FourBit .L4:n1
This naming is usually done automatically by the schematic-entry tool. The schematic DLAT also
contains three external nets: D, EN, and Q. The terminals on the symbol DLAT connect these nets to other
nets in the hierarchical level above. For example, the signal Trigger:flag in Figure 9.4 (c) is also
[Link]:Q. Each schematic tool handles this situation differently, and life becomes especially difficult
when we need to refer to these nodes from a simulator outside the schematic tool, for example. HDLs such as
VHDL and Verilog have a very precise and well-defined standard for naming nets in hierarchical structures.
There is no process in ASIC design directly equivalent to the process of part assignment
described above, and thus no need to use reference designators. The reference-designator naming
convention quickly becomes unwieldy if there are a large number of components in a design. For
example, how will we find a NAND gate named X3146 in an ASIC schematic with 100 pages?
Instead, for ASICs, we use a naming scheme based on hierarchy.
In large hierarchical ASIC designs, it is difficult to provide a unique reference designator to each
element. For this reason, ASIC designs use instance names to identify the individual components.
Meaningful names can be assigned to low-level components and also the symbols that represent
hierarchy. We derive the component names by joining all of the higher-level cell names together. A
special character is used as a delimiter and separates each level.
[Link].and01
MotherBoard:Cache:RAM4:ReadBit4:Inverter2
FIGURE 9.6 An example of the use of a bus to simplify a schematic. (a) An address decoder without using a bus. (b) A
bus with bus rippers simplifies the schematic and reduces the possibility of making a mistake in creating and reading the
schematic.
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 19
Application – Specific Integrated Circuits [ASIC]
• Figure 9.7 (c) shows an alternative representation of the 16-bit latch using a vectored instance of
FourBit with cardinality 4.
• Suppose we wish to make a connection to expressly one bit, D1 (we have used D1 as the first bit
rather than the more conventional D0, so that numbering is easier to follow).
• We also wish to make a connection to bits D9-D12, represented as D[9:12]. We do this using a
bus ripper. Now we have the rather awkward situation of bus naming shown in Figure 9.7 (c).
• Problems arise when we have “buses of buses” because the numbers for the bus widths do not
match on either side of a ripper. For this reason, it is best to use the single-bus approach shown
in Figure 9.7 (b) rather than the vectored-bus approach of Figure 9.7 (c).
• Using edit-in-place we can edit the cell Floor. Suppose we change some of the cell instances of cell
name NoWindowOffice to instances of cell name WindowOffice. When we finish editing and save
the cell Floor , we have effectively changed all of the floors that contain instances of this cell.
• Instead of editing a cell in place, you may really want to edit just one instance of a cell and leave
any other instances unchanged. In this case you must create a new cell with a new symbol and new,
unique cell name. It might also be wise to change the instance name of the new cell to avoid any
confusion.
• For example, we might change the third-floor plan of our office to be different from the other upper
floors. Suppose the third floor is now an instance of cell name FloorVIP instead of Floor. We could
continue to call the third-floor cell instance FloorThree , but it would be better to rename the
instance differently, FloorSpecial for example, to make it clear that it is different from all the other
floors.
• Some tools have the ability to alias nets. Aliasing creates a net name from the highest level in the
design. Local names are net names at the lowest level such as D , and Q in a flip-flop cell. These
local names are automatically replaced by the appropriate top-level names such as Clock1, or
Data2, using a dictionary. This greatly speeds tracing of signals through a design containing many
levels of hierarchy.
ATTRIBUTES
• You can attach a name, also known as an identifier or label, to a component, cell instance, net,
terminal, or connector. You can also attach an attribute, or property, which describes some aspect
of the component, cell instance, net, or connector. Each attribute has a name, and some attributes also
have values. The most common problems in working with schematics and netlists, especially when
you try to exchange schematic information between different tools, are problems in naming.
• Since cells and their contents have to be stored in a database, a cell name frequently corresponds (or
is mapped to) a filename. This then raises the problems of naming conventions including: case
sensitivity, name-collision resolution, dictionaries, handling of special characters (such as embedded
blanks or underscores), other special characters “common” (such as characters in foreign alphabets),
first-character restrictions, name-length problems (only 28 characters are permitted on an NFS
compatible filename), and so on.
• A screener usually generates a list of errors together with the locations of the problem on the schematic
where appropriate. Some editors associate an identifier, or handle, to every piece of a schematic,
including comments and every net.
• Most schematic-entry programs work on a grid. The designer can control the size of the grid and
whether it is visible or not. When you place components or wires you can instruct the editor to force
your drawing to snap to grid.
• This simplifies the internal mechanics of the schematic-entry program. It also makes the transfer of
schematics between different EDA systems more manageable.
• More sophisticated options allow more complex searches, perhaps using wildcard matching. For
example, to find all three-input NAND gates (primitive cell name ND3) or three-input NOR gates
(primitive cell name NO3), you could search for cell name N*3, where * is a wildcard symbol standing
for any character.
• For large schematics it is useful to be able to generate a report on the used and unused reference
designators. An example would be:
Reference designator prefix: R
Unused reference designator numbers: 153, 154
Last used reference designator number: 180
• If you need this feature, you probably are not using enough hierarchy to simplify your design.
• Most schematic-entry programs allow you to undo commands. This feature may be restricted
to simply undoing the last command that you entered, or may be an unlimited undo and redo,
allowing you to back up as many commands as you want in the current editing session.
• You can spend a lot of time in a schematic editor placing components and drawing the
connections between them. Features that simplify initial entry and allow modifications to be
made easily can make an enormous difference to the efficiency of the schematic-entry process.
• In large schematics it is necessary to continue large nets and signals across several pages of
schematics. Signals such as power and ground, VDD and GND, can be connected using global
nets or special connectors. Global nets allow the designer to label a net with the same name
at different places on a schematic page or on different pages without having to draw a
connection explicitly. The schematic editor treats these nets as though they were electrically
connected.
• Special connector symbols can be used for connections that cross schematic pages. An off-
page connector or multipage connector is a special symbol that will show and label a
connection to different schematic pages. More sophisticated editors can automatically label
these connectors with the page numbers of the destination connectors.
Back-Annotation
➢ After you enter a schematic, you simulate the design to make sure it works as expected.
➢ This completes the logical design. Next you move to ASIC physical design and complete the layout.
➢ Only after you complete the layout do you know the parasitic capacitance and therefore the delay associated
with the interconnect.
➢ This postroute delay information must be returned to the schematic in a process known as back-annotation.
➢ Then you can complete a final, postlayout simulation to make sure that the specifications for the ASIC are met.
ASIC Construction
• A town planner works out the number, types, and sizes of buildings in a development project.
• An architect designs each building, including the arrangement of the rooms in each building.
• Then a builder carries out the construction according to the architect’s drawings.
• Electrical wiring is one of the last steps in the construction of each building.
• The physical design of ASICs is normally divided into
- System Partitioning
- Floorplanning
- Placement
- Routing
• A microelectronic system is the town, and the ASICs are the buildings.
• System partitioning corresponds to town planning, ASIC floorplanning is the architect’s job,
placement is done by the builder, and the routing is done by the electrician. We shall design most,
but not all, ASICs using these design steps.
Physical Design
• Figure shows part of the design flow, the physical design
steps, for an ASIC (omitting simulation, test, and other
logical design steps that have already been covered).
• Some of the steps in Figure might be performed in a different
order from that shown. For example, we might,
depending on the size of the system, perform system
partitioning before we do any design entry or synthesis.
There may be some iteration between the different steps, too.
• FIGURE: Part of an ASIC design flow showing the system
partitioning, floorplanning, placement, and routing steps.
• These steps may be performed in a slightly different order,
iterated or omitted, depending on the type and size of the
system and its ASICs. As the focus shifts from logic to
interconnect, floorplanning assumes an increasingly important
role.
• Each of the steps shown in the figure must be performed, and
each depends on the previous step. However, the trend is
toward completing these steps in a parallel fashion and iterating,
rather than in a sequential manner.
CAD Tools
• To develop a CAD tool, it is necessary to convert each of the physical design steps to a problem with
well-defined goals and objectives. The goals for each physical design step are the things we must
achieve.
• The objectives for each step are things we would like to meet on the way to achieving the goals.
Some examples of goals and objectives for each of the ASIC physical design steps are as follows:
✓System partitioning:
- Goal. Partition a system into multiple ASICs.
- Objectives. Minimize the number of external connections between the ASICs. Keep each ASIC
smaller than a maximum size.
✓Floorplanning:
- Goal. Calculate the sizes of all the blocks and assign them to locations.
- Objective. Keep the highly connected blocks physically close together.
✓Placement:
- Goal. Assign the interconnect areas and the location of all the logic cells within the flexible blocks.
- Objectives. Minimize the ASIC area and the interconnect density.
✓Global routing:
- Goal. Determine the location of all the interconnect.
- Objective. Minimize the total interconnect area used.
✓Detailed routing:
- Goal. Completely route all the interconnect on the chip.
- Objective. Minimize the total interconnect length used.
• There is no magic recipe involved in the choice of the ASIC physical design steps. These
steps have been chosen simply because, as tools and techniques have developed historically,
these steps proved to be the easiest way to split up the larger problem of ASIC physical
design.
• The boundaries between the steps are not cast in stone. For example, floorplanning and
placement are often thought of as one step, and in some tools placement and routing are
performed together
• Suppose we find a practical method to solve our problem, even if we can find a solution we now
have a dilemma.
• How shall we know if we have a good solution if, because the problem is NP-complete, we cannot
find the optimum or best solution to which to compare it? We need to know how close we are to the
optimum solution to a problem, even if that optimum solution cannot be found exactly.
• We need to make a quantitative measurement of the quality of the solution that we are able to find.
• Often, we combine several parameters or metrics that measure our goals and objectives into a
measurement function or objective function. If we are minimizing the measurement function, it is
a cost function. If we are maximizing the measurement function, we call the function a gain
function (sometimes just gain).
• Now we are ready to solve each of the ASIC physical design steps with the following items in hand:
a set of goals and objectives, a way to measure the goals and objectives, and an algorithm or method
to find a solution that meets the goals and objectives.
• As designers attempt to achieve a desired ASIC performance, they make a continuous trade-off
between speed, area, power, and several other factors.
• Presently, CAD tools are not smart enough to be able to do this alone. In fact, current CAD tools are
only capable of finding a solution subject to a few, very simple, objectives.
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 42
Application – Specific Integrated Circuits [ASIC]
System Partitioning
• Microelectronic systems typically consist of many functional blocks. If a functional block is too large to fit
in one ASIC, we may have to split, or partition, the function into pieces using goals and objectives that we
need to specify.
• For example, we might want to minimise the number of pins for each ASIC to minimize package cost. We
can use CAD tools to help us with this type of system partitioning.
• Figure 15.2 shows the system diagram of the Sun Microsystems SPARCstation 1. The system is partitioned
as follows: the numbers refer to the labels in Figure 15.2.
✓ Nine custom ASICs (1–9)
✓ Memory subsystems (SIMMs, single-in-line memory modules): CPU cache (10), RAM (11), memory cache
(12, 13)
✓ Six ASSPs (application-specific standard products) for I/O (14–19)
✓ An ASSP for time of day (20)
✓ An EPROM (21)
✓ Video memory subsystem (22)
✓ One analog/digital ASSP DAC (digital-to-analog converter) (23)
FPGA Partitioning
• Many different issues have to be considered when partitioning a complex system into custom ASICs.
• There are no commercial tools that can help us with all of these issues—a spreadsheet is the best tool in this
case. Things are a little easier if we limit ourselves to partitioning a group of logic cells into FPGAs—and
restrict the FPGAs to be all of the same type.
ATM (Asynchronous Transfer Mode) Simulator
- We shall examine a hardware simulator for Asynchronous Transfer Mode ( ATM ).
- ATM is a signaling protocol for many different types of traffic, including constant bit rates (voice signals) as
well as variable bit rates (compressed video).
- The ATM Connection Simulator is a card that is connected to a computer. Under computer control the card
monitors and corrupts the ATM signals to simulate the effects of real networks.
- An example would be to test different video compression algorithms. Compressed video is very bursty (brief
periods of very high activity), has very strict delay constraints, and is susceptible to errors.
- ATM is based on ATM cells (packets). Each ATM cell has 53 bytes: a 5-byte header and a 48-byte
payload; Figure 15.4 shows the format of the ATM packet. The ATM Connection Simulator looks at the entire
header as an address
• Figure 15.5 shows the system block diagram of the ATM simulator designed by Craig Fujikami at the
University of Hawaii. Now produced by AdTech, the simulator emulates the characteristics of a single
connection in an ATM network and models ATM traffic policing, ATM cell delays, and ATM cell errors. The
simulator is partitioned into the three major blocks, shown in Figure 15.5, and connected to an IBM-
IBM-compatible PC through an Intel 80186 controller board together with an interface board. These three blocks
are
➢ The traffic policer, which regulates the input to the simulator.
➢ The delay generator, which delays ATM cells, reorders ATM cells, and inserts ATM cells with valid ATM cell
headers.
➢ The error generator, which produces bit errors and four random variables that are needed by the other two
blocks.
The error generator performs the following operations on ATM cells:
1. Payload bit error ratio generation. The user specifies the Bernoulli probability, pBER , of the payload bit error
ratio.
2. Random-variable generation for ATM cell loss, misinsertion, reordering, and deletion.
The delay generator delays, misinserts, and reorders the target ATM cells. Finally, the traffic policer performs the
following operations:
1. Performs header screening and remapping.
2. Checks ATM cell conformance.
3. Deletes selected ATM cells.
Table 15.7 shows the partitioning of the ATM board into 12 Lattice Logic FPGAs (ispLSI 1048)
corresponding to the 12 blocks shown in Figure 15.5 . The Lattice Logic ispLSI 1048 has 48 GLBs (generic
logic blocks) on each chip. This system was partitioned by handwith difficulty.
TABLE 15.7 Partitioning of the ATM board using Lattice Logic ispLSI 1048 FPGAs.
Each FPGA contains 48 generic logic blocks (GLBs).
Partitioning Methods
• System partitioning requires goals and objectives, methods and algorithms to find solutions, and ways to
evaluate these solutions. We start with measuring connectivity, proceed to an example that illustrates the
concepts of system partitioning and then to the algorithms for partitioning.
• Assume that we have decided which parts of the system will use ASICs. The goal of partitioning is to divide this
part of the system so that each partition is a single ASIC. To do this we may need to take into account any or all
of the following objectives:
✓ A maximum size for each ASIC
✓ A maximum number of ASICs
✓ A maximum number of connections for each ASIC
✓ A maximum number of total connections between all ASICs
• Partitioning Methods
1. Constructive Partitioning
2. Iterative Partitioning Improvement
3. The Kernighan–Lin Algorithm
4. The Ratio-CutAlgorithm
5. The Look-ahead Algorithm
6. Simulated Annealing
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 53
Application – Specific Integrated Circuits [ASIC]
Constructive Partitioning
• The most common constructive partitioning algorithms use seed growth or cluster growth. A simple seed-
growth algorithm for constructive partitioning consists of the following steps:
1. Start a new partition with a seed logic cell.
2. Consider all the logic cells that are not yet in a partition. Select each of these logic cells in turn.
3. Calculate a gain function, g(m) , that measures the benefit of adding logic cell m to the current partition.
One measure of gain is the number of connections between logic cell m and the current partition.
4. Add the logic cell with the highest gain g(m) to the current partition.
5. Repeat the process from step 2. If you reach the limit of logic cells in a partition, start again at step 1.
• We may choose different gain functions according to our objectives (but we have to be careful to distinguish
between connections and nets). The algorithm starts with the choice of a seed logic cell (seed module, or just
seed). The logic cell with the most nets is a good choice as the seed logic cell.
• You can also use a set of seed logic cells known as a cluster. Some people also use the term clique —borrowed
from graph theory. A clique of a graph is a subset of nodes where each pair of nodes is connected by an edge—
like your group of friends at school where everyone knows everyone else in your clique.
• In some tools you can use schematic pages (at the leaf or lowest hierarchical level) as a starting point for
partitioning. If you use a high-level design language, you can use a Verilog module (different from a circuit
module) or VHDL entity/architecture as seeds (again at the leaf level).
• Group migration consists of swapping groups of logic cells between partitions. The group
migration algorithms are better than simple interchange methods at improving a solution but
are more complex. Almost all group migration methods are based on the powerful and general
Kernighan–Lin algorithm (K–L algorithm) that partitions a graph [ Kernighan and Lin, 1970].
• The problem of dividing a graph into two pieces, minimizing the nets that are cut, is the min-
cut problem—a very important one in VLSI design. As the next section shows, the K–L
algorithm can be applied to many different problems in ASIC design.
• In Figure 15.8 (a) the cut weight is 4 (all the edges have weights of 1). In order to simplify the
measurement of the change in cut weight when we interchange nodes, we need some more definitions.
First, for any node a in partition A , we define an external edge cost, which measures the connections from
node a to B ,
• So, in Figure 15.8 (a), I 1 = 0, and I 3 = 2. We define the edge costs for partition B in a similar way (so E 8
= 2, and I 8 = 1). The cost difference is the difference between external edge costs and internal edge costs,
• Thus, in Figure 15.8 (a) D 1 = 1, D 3 = – 2, and D 8 = 1. Now pick any node in A , and any node in B . If
we swap these nodes, a and b, we need to measure the reduction in cut weight, which we call the gain, g .
We can express g in terms of the edge costs as follows:
• The last term accounts for the fact that a and b may be connected.
• So, in Figure 15.8 (a), if we swap nodes 1 and 6, then
g = D1 + D6 – 2 c16 = 1 + 1.
If we swap nodes 2 and 8, then
g = D2 + D8 – 2 c28 = 1 + 2 – 2.
• The K–L algorithm finds a group of node pairs to swap that increases the gain even though swapping
individual node pairs from that group might decrease the gain. First we pretend to swap all of the nodes a
pair at a time. Pretend swaps are like studying chess games when you make a series of trial moves in your
head.
• This is the algorithm: .
1. Find two nodes, a i from A , and b i from B , so that the gain from swapping them is a maximum. The gain
is
gi = D ai + D bi – 2 c aibi . (15.18)
2. Next pretend swap a i and b i even if the gain g i is zero or negative, and do not consider a i and b i
eligible for being swapped again.
3. Repeat steps 1 and 2 a total of m times until all the nodes of A and B have been pretend swapped. We are
back where we started, but we have ordered pairs of nodes in A and B according to the gain from
interchanging those pairs.
4. Now we can choose which nodes we shall actually swap. Suppose we only swap the first n pairs of nodes
that we found in the preceding process. In other words we swap nodes X = a 1 , a 2 ,…, a n from A with
nodes Y = b 1 , b 2 ,…, b n from B. The total gain would be
• The K–L algorithm minimizes W while keeping partitions A and B the same size. The ratio of a cut is defined
as
• In this equation | A | and | B | are the sizes of partitions A and B . The size of a partition is equal to the number
of nodes it contains (also known as the set cardinality).
• The cut that minimizes R is called the ratio cut. The original description of the ratio-cut algorithm uses ratio
cuts to partition a network into small, highly connected groups. Then you form a reduced network from these
groups—each small group of logic cells forms a node in the reduced network. Finally, you use the F–M
algorithm to improve the reduced network
Hemanth T S Assistant Professor, Dept., of E&CE, AIET, Moodbidri. 65
Application – Specific Integrated Circuits [ASIC]
Simulated Annealing
• A different approach to solving large graph problems (and other types of problems) that arise in VLSI
layout, including system partitioning, uses the simulated-annealing algorithm [ Kirkpatrick et al., 1983].
Simulated annealing takes an existing solution and then makes successive changes in a series of random
moves.
• Each move is accepted or rejected based on an energy function, calculated for each new trial
configuration. The minimums of the energy function correspond to possible solutions.
• The best solution is the global minimum. So far the description of simulated annealing is similar to the
interchange algorithms, but there is an important difference. In an interchange strategy we accept the new
trial configuration only if the energy function decreases, which means the new configuration is an
improvement.
• However, in the simulated-annealing algorithm, we accept the new configuration even if the energy
function increases for the new configuration—which means things are getting worse. The probability of
accepting a worse configuration is controlled by the exponential expression exp(–D E / T ), where D E is
the resulting increase in the energy function.
• The parameter T is a variable that we control and corresponds to the temperature in the annealing of a
metal cooling (this is why the process is called simulated annealing).
• To find a good solution, a local minimum close to the global minimum, requires a high initial temperature and
a slow cooling schedule.
• This results in many trial moves and very long computer run times [ Rose, Klebsch, and Wolf, 1990]. If we
are prepared to wait a long time (forever in the worst case), simulated annealing is useful because we can
guarantee that we can find the optimum solution.
Questions
1. Draw the IEEE recommended dimensions and their constructions for logic gate symbols, NAND gate and XOR gate.
2. Explain the Hierarchical design with a suitable example.
3. Describe the schematic entry method in ASIC Design.
4. Explain annotation in ASIC Design.
5. Explain the vectored instances and buses for 16-bit D-latch and draw the diagram for 4-bit D-latch.
6. Discuss the vectored instances for 16-bit D-Latch.
7. Discuss the local nets and external nets in the ASIC design.
8. Explain the Schematic ICONs and Symbols with suitable examples.
9. What is Netlist Screener? List the errors that can be found by netlist screeners and mention the methods to overcome.
10. Explain the following with respect to low-level design entry:
i. Edit in place
ii. Schematic icons and symbols
iii. Hierarchical design
iv. Nets
v. Vectored instances
Questions
1. Enumerate the physical design/ASIC design of ASICs.
2. List steps in ASIC Physical Design and describe the goals and objectives of each step.
3. Explain the system partitioning with a proper example
4. Discuss the FPGA Partitioning by taking the example of the ATM simulator cell format
5. Describe the list of partitioning methods and explain any two of them
6. Explain the following partitioning methods
i. Kernighan–Lin Algorithm
ii. Constructive Partitioning
5. Explain the following partitioning methods
i. Iterative partitioning improvement
ii. Ratio-Cut Algorithm
6. Explain the following partitioning methods
i. Look Ahead Algorithm
ii. Simulated Annealing
7. With relevant equations, explain KL algorithm. Construct the connectivity matrix for the network shown in the
figure below. Also, find the gain in the network graph shown if:
i. Nodes 1 and 6 are swapped.
ii. Nodes 2 and 8 are swapped.
THANK YOU…☺