Vlsi Design Unit 5
Vlsi Design Unit 5
SEMICONDUCTOR INTEGRATED
CIRCUIT DESIGN: PLAs, FPGAs,
CPLDs, Standard Cells,
Programmable Array Logic,
Design Approach, Parameters
influencing low power design.
A
B
C
A
B
C
Y
A
B
C
A
B
C
Figure 5.1 Fixed logic circuit.
2. In the case of fixed logic devices, the process of design validation followed by
incorporation of changes, if any, involves substantial nonrecurring engineering (NRE)
costs, which leads to an enhanced cost of the initial prototype device. In the case of PLDs,
inexpensive software tools can be used for quick validation of designs. The programmable
feature of these devices allows quick incorporation of changes and also a quick testing of
the device in an actual application environment. In this case, the device used for
prototyping is the same as the one that would qualify for use in the end equipment.
3. In the case of programmable logic devices, users can change the circuit as often as
they want to until the design operates to their satisfaction. PLDs offer to the users much
more flexibility during the design cycle. Design iterations are nothing but changes to the
programming file.
4. Fixed logic devices have an edge for large-volume applications as they can be mass
produced more economically. They are also the preferred choice in applications requiring
the highest performance level.
+V
A
B
C
+V
+V
+V
Hard-wired AND-array Y1 Y2 Y3 Y4
Figure 5.4 Internal architecture of a PLA device.
D C B A
Hard-Wired OR-array
Programmable AND-array
Y1 Y2
Figure 5.5Internal architecture of a PAL device.
5.2.4 Generic Array Logic
A generic array logic (GAL) device is similarto a PAL device and as
invented by Lattice Semiconductor. It differs from a PAL device in that the programmable
AND array of a GAL device can be erased and reprogrammed. Also, it has
reprogrammable output logic. This feature makes it particularly attractive at the device
prototyping stage, as any bugs in the logic can be corrected by reprogramming. A similar
device called PEEL (Programmable Electrically Erasable Logic) was introduced by the
International CMOS Technology (ICT) Corporation.
5.2.5 Complex Programmable Logic Device
Programmable logic devices such as PLAs, PALs, GALs and other PAL-like devices are
often grouped into a single category called simple programmable logic devices (SPLDs) to
distinguish them from the ones that are far more complex. A complex programmable logic
device (CPLD), as the name suggests, is a much more complex device than any of the
programmable logic devices discussed so far. A CPLD may contain circuitry equivalent to
that of several PAL devices linked to each other by programmable interconnections.
Figure 5.6 shows the internal structure of a typical CPLD. Each of the four logic blocks is
equivalent to a PLD such as a PAL device. The number of logic blocks in a CPLD could be
more or less than four. Each of the logic blocks has programmable interconnections. A
switch matrix is used for logic block to logic block interconnections. Also, the switch
matrix in a CPLD may or may not be fully connected. That is, some of the possible
connections between logic block outputs and inputs may not be supported by a given
CPLD. While the complexity of a typical PAL device may be of the order of a few hundred
logic gates, a CPLD may have a complexity equivalent to tens of thousands of logic gates.
When compared with FPGAs, CPLDs offer predictable timing characteristics owing to
their less flexible internal architecture and are thus ideal for critical control applications
and other applications where a high performance level is required. Also, because of their
relatively much lower power consumption and lower cost, CPLDs are an ideal solution for
battery-operated portable applications such as mobile phones, digital assistants and so
on. A CPLD can be programmed either by using a PAL programmer or by feeding it with a
serial data stream from a PC after soldering it on the PC board. A circuit on the CPLD
decodes the data stream and configures it to perform the intended logic function.
FPGAs offer a much higher logic density and much larger performance features compared
with CPLDs. Some of the contemporary FPGA devices offer a logic complexity equivalent
to that of eight million system gates. Also, these devices offer features such as built-in
hard-wired processors, large memory, clock management systems and support for many
of the contemporary device-to-device signaling technologies. FPGAs find extensive use in
a variety of applications, which include data processing and storage, digital signal
processing, instrumentation and telecommunications.
FPGAs are also programmed like CPLDs after they are soldered onto the PC board. In the
case of FPGAs, the programmed configuration is usually volatile and therefore needs to be
reloaded whenever power is applied or a different functionality is required.
Programmable
Interconnect
I/O
Blocks
Logic Blocks
Figure 5.11 shows the internal architecture of a PLA device with four input lines, eight
product lines and four output lines. That is, the programmable AND gate array has eight
AND gates. Each of the AND gates here has eight inputs, corresponding to four input
variables and their complements. The input to each of the AND gates can be programmed
to be any of the possible 16 combinations of four input variables and their complements.
Four OR gates at the output can generate four different Boolean functions, each having a
maximum of eight minterms out of 16 minterms possible with four variables. The logic
diagram depicts the unprogrammed state of the device. The internal architecture shown
in Fig. 5.11 can also be represented by the schematic form of Fig. 5.12. PLAs usually have
inverters at the output of OR gates to enable them to implement a given Boolean function
in either AND-OR or AND-OR-INVERT form.
Figure 5.13 shows a generalized block schematic representation of a PLA device having n
inputs, m outputs and k product terms, with n, m and k respectively representing the
number of input variables, the number of OR gates and the number of AND gates. The
number of inputs to each OR gate and each AND gate are k and 2n respectively.
A PLA is specified in terms of the number of inputs, the number of product terms and the
number of outputs. As is clear from the description given in the preceding paragraph, the
PLA would have a total of 2Kn + Km programmable interconnections. A ROM with the
same number of input and output lines would have 2n × m programmable
interconnections.
A PLA could be either mask programmable or field programmable. In the case of a mask-
programmable PLA, the customer submits a program table to the manufacturer to
produce a custom-made PLA having the desired internal paths between inputs and
outputs. A field-programmable logic array (FPLA) is programmed by the users themselves
by means of a hardware programmer unit available commercially.
A B C D
Programmable OR-array
Programmable AND-array
Y1 Y2 Y3 Y4
Figure 5.11 Internal architecture of a PLA device
4
True
AND 8x4
A, B, C, D 8x8 OR Outputs
Inputs Array Array
4
Comp.
Limitations of PLAs
The device shown in the figure has 4 inputs and 4 outputs. Each input has a buffer-
inverter gate, and each output is generated by a fixed OR gate.
The device has 4 sections, each composed of a 3-wide AND-OR array, meaning that there
are 3 programmable AND gates in each section.
Each AND gate has 10 programmable input connections indicating by 10 vertical lines
intersecting each horizontal line. The horizontal line symbolizes the multiple input
configuration of an AND gate.
One of the outputs F1 is connected to a buffer-inverter gate and is fed back into the inputs
of the AND gates through programmed connections.
Designing using a PAL device, the Boolean functions must be simplified to fit into each
section.
The number of product terms in each section is fixed and if the number of terms in the
function is too large, it may be necessary to use two or more sections to implement one
Boolean function.
Example:
Implement the following Boolean functions using the PAL device as shown above:
W(A, B, C, D) = ∑m(2, 12, 13)
X(A, B, C, D) = ∑m(7, 8, 9, 10, 11, 12, 13, 14, 15)
Y(A, B, C, D) = ∑m(0, 2, 3, 4, 5, 6, 7, 8, 10, 11, 15)
Z(A, B, C, D) = ∑m(1, 2, 8, 12, 13)
Simplifying the 4 functions to a minimum number of terms results in the following
Boolean functions:
W = ABC’ + A’B’CD’
X = A + BCD
Y = A’B + CD + B’D’
Z = ABC’ + A’B’CD + AC’D’ + A’B’C’D
=W +AC’D’ + A’B’C’D
Note that the function for Z has four product terms. The logical sum of two of these terms
is equal to W. Thus, by using W, it is possible to reduce the number of terms for Z from
four to three, so that the function can fit into the given PAL device.
The PAL programming table is similar to the table used for the PLA, except that only the
inputs of the AND gates need to be programmed.
The figure shows the connection map for the PAL device, as specified in the programming
table.
Since both W and X have two product terms, third AND gate is not used. If all the inputs
to this AND gate left intact, then its output will always be 0, because it receives both the
true and complement of each input variable i.e., AA’ =0
Comparing PALs and P LAs
PALs have the same limitations as PLAs (small number of allowed AND terms) plus they
have a fixed OR plane less flexibility than PLAs
PALs are simpler to manufacture, cheaper, and faster (better performance) PALs also
often have extra circuitry connected to the output of each OR gate
Macrocell:
Macrocell Functions:
Enable = 0 can be used to allow the output pin for f1 to be used as an additional input pin
to the PAL.
Enable = Select = 1 allows the PAL to synchronize the output changes with a clock pulse.
Programming SPLD s
PLAs, PALs, and ROMs are also called SPLDs – Simple Programmable Logic Devices,
SPLDs must be p programmed so that the switches are in the correct places.
CAD tools are usually used to do this: A fuse map is created by the CAD tool and then
that map is downloaded to the device via a special programming unit.
There are two basic types of programming techniques
1. Removable sockets on a PCB
2. In system programming (ISP) on a PCB
This approach is not very common for PLAs and PALs but it is quite common for more
complex PLDs,
An SPLD Programming Unit: The SPLD is removed from the PCB, placed into the unit
and programmed there
Removable SPLD Socket Package: PLCC (plastic-leaded chip carrier)
In System Programming (ISP) :
Used when the SPLD cannot be removed from the PCB
A special cable and PCB connection are required to program the SPLD from an
attached computer
Very common approach to programming more complex PLDs like CPLDs, FPGAs,
etc.
Internal Structure of a PA L-like Block Includes macrocells, Usually about 16.Each Fixed
OR planes: OR gates have fan-in between 5-20.XOR gates provide negation ability:XOR
has a control input.
More on PAL-like Blocks:
CPLD pins are provided to control XOR, MUX, and tri-state gates.
When tri-state gat e is disabled, the corresponding output pin can be used as an input pin
The associated PAL-like block is then useless.
The AND plane and interconnection network are programmable Commercial CPLDs have
between 2-100 PAL-like blocks.
Programming a CPLD: CPLDs have many pins – large ones have > 200,so Removal of
CPLD from a PCB is difficult without breaking the pins instead Use ISP (in system
programming) to program the CPLD by using JTAG (Joint Test Action Group) port used
to connect the CPLD to a computer.
Large designs are partitioned and mapped to a number of CLBs with each CLB
configured (programmed) to perform a particular function.
These CLBs are then connected together to fully implement the target design.
Connecting the CLBs is done using the FPGA programmable routing structure.
2. Programmable routing structure:
To allow for flexible interconnection of CLBs, FPGAs have 3 programmable routing
resources:
1. Vertical and horizontal routing channels which consist of different length wires that
can be connected together if needed. These channel run vertically and horizontally
between columns and rows of CLBs as shown in the Figure.
2. Connection boxes, which are a set of programmable links that can connect
input and output pins of the CLBs to wires of the vertical or the horizontal routing
channels.
3. Switch boxes, located at the intersection of the vertical and horizontal channels.
These are a set of programmable links that can connect wire segments in the
horizontal and vertical channels.
3. Programmable I/O:
These are mainly buffers that can be configured either as input buffers, output buffers
or input/output buffers.
They allow the pins of the FPGA chip to function either as input pins, output pins or
input/output pins.
Programmable I/O’s
Field Programmable Gate Arrays (FPGA) can handle larger circuits, No AND/OR planes
and provide logic blocks, I/O blocks, and interconnection wires and switches Logic blocks
provide functionality. Interconnection switches allow logic blocks to be connected to
each other and to the I/O pins.
LUTs :_ Logic blocks are implemented using a lookup table (LUT).LUT’S contain Small
number of inputs, one output, Contains storage cells that can be loaded with the desired
values. A 2 input LUT uses 3 MUXes to implement any desired function of 2 variables.
“Shannon's expansion at work!
3 Input LUT: 7 2X1 MUXes and 8 storage cells are required, Commercial LUTs have 4-5
inputs, and 16-32 storage cells.
Example FPGA
Use an FPGA with 2 input LUTS to implement the function f = x1X2 + x2'X3
F1 = X1x2, f2 = x2'X3, f = f1 + f2
Another Example FPGA
Use an FPGA with 2 input LUTS to implement the function f = X1X3x6' +X1x4x5x6' + x2 X3x7
+ x2x4x5x7
Fan-in of expression is too large for FPGA (this was simple to do in a CPLD)
Factor f to get sub-expressions with max fan-in = 2
f = X1x6'(X3 + x4x5) + x2x7(X3 + x4x5) = (X1X6' + x2x7)(X3 + x4x5) Could use Shannon's
expansion instead, Goal is to build expressions out of 2-input LUTs
FPGA Implementation: f = (X1X6' + x2x7)(X3 + x4x5)
Standard Cells:
Rows of logic gates can be connected by wires in the routing channels.
Designers (via CAD tools) select prefab gates from a library and place them in rows
Interconnections are made by wires in routing channels.
Multiple layers may be used to avoid short circuiting.
A hard-wired connection between layers is called a via.
Roles of Testing
Detection: Determination of whether or not the device under test (DUT) has some fault.
Diagnosis: Identification of a specific fault that is present on DUT.
Device characterization: Determination and correction of errors in design and/or test
procedure.
Failure mode analysis (FMA): Determination of manufacturing process errors that may
have caused defects on the DUT.
Testing principle
Apply inputs and compare “outputs” with the “expected outputs”
Testing is applied to detect faults after several operations: design, manufacturing,
packaging and especially during the active life of a system, and thus since failures caused
by wear-out can occur at any moment of its usage. Design for Testability (DfT) is the
ability of simplifying the test of any system. DfT could be synthesized by a set of
techniques and design guidelines where the goals are:
minimizing costs of system production
minimizing system test complexity : test generation and application
improving quality
Avoiding problems of timing discordance or block nature incompatibility.
Classification of tests
A test is a procedure which allows one to distinguish between good and bad parts. Tests
can be classified according to the technology they are designed for, the parameters they
measure, the purpose for which the test results are used, and the test application method.
The type of tests to be performed depends heavily on the technology of the circuit to be
tested: analog, digital, or mixed-signal.
Digital circuits have the property that the domain of values of the input and output
signals is binary (usually referred to as digital); i.e., the signals can only take on the value
‘logic 0’ or ‘logic 1’.
Functional Testing versus manufacturing Testing
IC test is comprised of two primary approaches: functional testing and structural
(MANUFACTURING TEST) testing.
There are two basic forms of validation
Functional test:
Does this chip design produce the correct results?
Functional test seeks logical correctness, several year effort, up to 50 people, to ensure
that the design is good. Ferociously expensive, Often a software approach. But, may
comprise: Scanning Electron Microscope tests, Bright-Lite detection of defects, Electron
beam testing, Artificial intelligence (expert system) methods, repeated functional tests
Functional testing verifies that the circuit performs as it is designed to perform. For
example, if we assume that the design is an adder circuit. Functional testing verifies that
this circuit performs the addition function and computes the correct results over the
range of values tested. However, exhaustive testing of all possible input combinations
grows exponentially as the number of inputs increases. To maintain a reasonable test
time, one needs to focus functional test patterns on the general function and corner cases.
Manufacturing test:
Does this particular die work? Can I sell it?
Manufacturing test is done on each die prior to market release, Send your parts through a
burn-in oven and a tester before selling them, The distinction is in the testing, not in the
problem. Determines if manufactured chip meets specs, Must cover high % of modeled
faults, Must minimize test time (to control cost), No fault diagnosis, Tests every device on
chip, Tests are functional or at speed of application or speed guaranteed by supplier
• Verify the physical operation of every gate in the chip.
It is done during chip fabrication so that functional correctness is assumed.
Typical manufacturing defects are
• Layer to layer shorts. Shorts to VDD or VSS, shorts between to nodes.
• Discontinuous wires. Floating inputs, disconnected outputs.
• Thin-oxide shorts to substrate. Shorts to VDD or GND.
I/O integrity tests
• Level tests: Noise margins for the TTL, ECL, CMOS etc. I/O pads.
• Speed test
•IDD test
n+ n+
(a)
Advantages
1) Covers a large percentage of physical defects - some research indicates that
bridging faults account for up to 30% of all defects
Disadvantages
1) ATPG algorithms are more complex - testing requires setting the two bridged
nodes to opposite values and observing the effect
2) Requires a lower level circuit description for bridging faults within logic elements
Logical Faults
Logical struck-at-0 or struck-at-1
The most popular model is called the “Struck-at” model. With this model, a faulty gate
input is modeled as a “struck at 0” or “stuck at 1”.
These faults are of two types: 1) Single Stuck-at Fault Model &
2) Multiple Stuck-at Fault Model.
Single Stuck-at Fault Model:
Fault-Free Gate Faulty Gate
Fault: A s-a-1
A B C A B C
Vcc
0 0 0 0 0 0
0 1 0 A 0 1 1
1 0 0 B C 1 0 0
1 1 1 1 1
1
Assumptions
1) Only one line in the circuit is faulty at a time
2) The fault is permanent (as opposed to transient)
3) The effect of the fault is as if the faulty node is tied to either Vcc (s-a-1), or Gnd (s-
a-0)
4) The function of the gates in the circuit is unaffected by the fault
Advantages
1) Can be applied at the logic level or module level
2) Reasonable numbers of faults 2n (n=number of circuit nodes)
3) Algorithms for automatic test pattern generation (ATPG) and faults simulation are
well developed and efficient
4) Research indicates that the single stuck-at fault model covers about 90% of the
possible manufacturing defects in CMOS circuits
5) Source-drain shorts, oxide pinholes, missing features, diffusion contaminants,
metallization shorts, etc.
6) Other useful fault models (stuck-open, bridging faults) can be mapped into
(sequences of) stuck-at faults
Disadvantages
1) Does not cover all defects in CMOS or other devices
Multiple Stuck-at Fault Model.:
Assumptions:
1) Same as single stuck-at faults except:
2) 2 or more lines in the circuit can be faulty at the same time
Advantage
1) If used in conjunction with single stuck-at faults, it covers a greater
percentage of physical defects
Disadvantages
1) Large number of faults 3n-1 (n=number of circuit nodes)
2) Algorithms for ATPG and fault simulation are much more complex and not as well
developed
3) Does not cover a significantly larger number of detects that single stuck-at faults
Design Strategies for Test:
• Design for Testability (DFT)
Controllability and observability are the two key concepts for designing circuits that are
testable.
• Controllability is the ability to set every internal node to logic-1 and logic-0.
• Observability is the ability to observe either directly or indirectly the state of any node in
the circuit.
Controllability and observability together with predictability are the most important
factors that determine the complexity of deriving a test set for a circuit. Controllability is
the ability to establish a specific signal value at each node in a circuit by setting values on
the circuit’s inputs. Observability, on the other hand, is the ability to determine the signal
value at any node in a circuit by controlling the circuit’s inputs and observing its outputs.
DFT techniques, used to improve a circuit’s controllability and observability, can be
divided into three major categories:
Three main approaches to Design For Testability
• Ad-hoc (based on experience)
• Scan based
• Self-test and Built-in test
Ad-Hoc Testing
Aim is to reduce complexity of testing. Common techniques are;
• Partitioning large sequential circuits
• Adding test points
• Adding multiplexers to provide alternative signal paths
• Providing for easy state reset
The techniques involve tricks that are developed over the years to avoid the overheads of
systematic approach to testing.
Example: Consider a long counter (n-bit). Possible ad-hoc techniques are;
• Add parallel-load feature to test carry propagation.
• Reduce counter length to k bits, so that (n/k) 2k output vectors to test instead of 2n
output vectors.
Example: Ina bus oriented system, the bus can be used for observing and controlling the
internal nodes for testing.
Scan-Based Test Techniques
Level Sensitive Scan Design (LSSD)
• In this technique, every input combinational logic may be controlled and every
output may be observed. Also, running a serial sequence of “110010” through
scan registers can test these registers. The disadvantage is the complexity of
the scan registers that impacts IC performance.
Serial Scan
Partial Serial Scan
Parallel Scan
BUILT-IN SELF-TEST
The main idea behind a BIST approach is to eliminate the need for the external tester by
integrating active test infrastructure onto the chip. A typical BIST architecture consists of
a test pattern generator (TPG), usually implemented as a linear feedback shift register
(LFSR), a test response analyzer (TRA), implemented as a multiple input shift register
(MISR), and a BIST control unit (BCU), all implemented on the chip (Figure 1). This
approach allows applying at-speed tests and eliminates the need for an external tester.
Furthermore, the BIST approach is also one of the most appropriate techniques for testing
complex Systems on chip, as every core in the system can be tested independently from
the rest of the system. It reduces test pattern generation cost, volume of test data and test
time.
R R R
S0 S1 S2
1 0 0
0 1 0
1 0 1
1 1 0
1 1 1
0 1 1
0 0 1
1 0 0
The above circuit is a single-input linear feedback shift register (LFSR) in which all the
latches are edge-triggered. In this case, the signature is the content of this register after
the last input bit has been sampled. The input sequence {an} is represented by polynomial
G(x) and the output sequence by Q(x). It can be shown that G(x)= Q(x).P(x) +R(x), where
P(x) is the characteristic polynomial of LFSR and R(x) is the remainder, the degree of
which is lower than that of P(x). For the above case characteristic polynomial is
P(x) = 1 + x2 + x4 + x5
For the 8-bit input sequence { 1 1 1 1 0 1 0 1 }, the corresponding input polynomial is
G(x) = x7 + x6 + x5 + x4 + x2 + 1
And the remainder term becomes R(x) = x4 + x2, which corresponds to the register
contents of { 0 0 1 0 1}.
Logic Signature
PRSG
Cloud Analyzer
ScanIn ScanOut
In Combinational Combinational
BILBO-B
Out
BILBO-A
Logic Logic
• IDDQ Testing
It is a method of testing for bridging faults. VDD current is monitored. Static CMOS logic
gate does not draw DC current (except leakage). But, when bridging fault occurs, a
measurable DC IDD flows. Current measuring is a slow process, hence test time ncreases.
Automatic test pattern generation (ATPG) attempts to analyze the logic of a circuit
and, in particular, the access paths to observe and control internal state, and formulate
test stimuli that should give a high fault coverage.
The main difficulty in testability lies in internal state registers, and one solution is to
make these easily accessible by connecting them into a long shift register. The chip can
then run in a number of modes:
_ Normal – the registers are disconnected from the shift register.
_ Shift – the shift register steps along.
_ Read – the state registers are copied into the shift register.
_ Write – the shift register is copied into the state registers.
ATPG Systems
Increase fault coverage
Reduce overall effort (CPU time)
Fewer test vectors (test application time)
Testability Measures
A powerful heuristic used during test generation (more on its uses in later slides)
Reduce cost of fault simulation
Fault list reduction
Efficient and diverse fault simulation methods
suited for specific applications and environment
Fault sampling method
The process of generating the test patterns on a design via a CAD (Computer Aided
Design) tool is called ATPG or Automatic Test Pattern Generation. Test patterns,
sometimes called test vectors, are sets of 1S and 0s placed on primary input pins during
the manufacturing test process to determine if the chip is functioning properly. When the
test pattern is applied, the Automatic Test Equipment (ATE) determines if the circuit is
free from manufacturing defects by comparing the fault-free output which is also
contained in the test pattern with the actual output measured by the ATE.
The goal of ATPG is to create a set of patterns that achieves a given test coverage, where
test coverage is the total percentage of testable faults the pattern set actually detects. The
ATPG run itself consists of two main steps i.e generating patterns and performing fault
simulation to determine which faults the patterns detect [17]. The two most typical
methods for pattern generation are random and deterministic. Additionally, the ATPG
tools can fault simulate patterns from an external set and place those patterns detecting
faults in a test set.