Unit V
Unit V
Introduction to wafer to chip fabrication process flow. Microchip design process & issues
in test and verification of complex chips, embedded cores and SOCs, Fault models, Test
coding. ASIC Design Flow, Introduction to ASICs, Introduction to test benches, Writing
test benches in Verilog HDL, Automatic test pattern generation, Design for testability, Scan
design: Test interface and boundary scan.
1. Wafer Ingot Growth: The process begins with the growth of a silicon ingot. The silicon ingot
is sliced into thin, circular wafers using a diamond-tipped saw. These wafers serve as the base
material for manufacturing chips.
2. Wafer Cleaning: The wafers undergo rigorous cleaning processes to remove any
contaminants or particles that might have accumulated during handling or previous steps.
Cleanliness is crucial to ensure defect-free manufacturing.
3. Oxidation: The wafers are exposed to high-temperature oxygen or steam to create a thin layer
of silicon dioxide (SiO2) on their surface. This layer serves as an insulating material and also
provides a base for subsequent processes.
4. Photolithography: In this step, a photoresist material is applied to the wafer's surface. Light
is then shone through a photomask that contains the pattern of the desired circuit. The photoresist
is exposed to this patterned light, creating a mask on the wafer. This process defines the circuit
pattern for the subsequent steps.
5. Etching: The exposed parts of the wafer's surface are either removed or modified using
chemical or physical etching processes. This step transfers the pattern from the photomask onto
the wafer, defining the circuit layout.
6. Doping: Dopants (impurity atoms) are selectively introduced into specific areas of the wafer
to modify its electrical properties. This process creates regions with either excess or deficient
electrons, forming the various components of transistors (source, drain, gate, etc.).
7. Thin Film Deposition: Thin films of various materials, such as metal, polysilicon, or
insulators, are deposited onto the wafer surface using techniques like chemical vapor deposition
(CVD) or physical vapor deposition (PVD). These films serve as conductors or insulators in the
circuit.
8. Chemical Mechanical Polishing (CMP): CMP is used to polishing the wafer's surface,
making it smooth and even. This is essential for accurate layering and subsequent processing
steps.
9. Annealing: The wafer is heated in a controlled environment to activate dopants, repair crystal
damage, and improve the electrical properties of the fabricated components.
10. Chemical Mechanical Polishing (CMP): CMP is used to polishing the wafer's surface,
making it smooth and even. This is essential for accurate layering and subsequent processing
steps.
11. Annealing: The wafer is heated in a controlled environment to activate dopants, repair
crystal damage, and improve the electrical properties of the fabricated components.
12. Testing: Throughout the process, various tests are conducted to ensure the quality of the
chips being manufactured. These tests help identify defects and ensure that the chips meet the
required specifications.
13. Packaging: Once all the chips on the wafer are deemed functional, they are separated and
assembled into their respective packages. The packages provide protection and electrical
connections to the chips, enabling them to be mounted on printed circuit boards (PCBs).
14. Final Testing: After packaging, the chips undergo final testing to verify their functionality
and performance. Defective chips are discarded, and only fully functional chips are sent for
distribution and integration into electronic devices.
II. Microchip design process & issues in test and verification of complex chips:
1. Complexity: As chips and systems-on-chip (SoCs) become more complex, the verification
effort increases exponentially. Ensuring all possible scenarios and corner cases are covered in
testing becomes challenging.
2. Verification Time and Cost: With the growing complexity, the time and cost required for
functional verification can become substantial.
3. Integration Testing: Integrating various IP cores and subsystems onto a single chip or SoC
introduces new challenges in testing the interactions between these components.
4. Power and Clock Domains: Handling multiple power domains and clock domains in a chip
requires careful verification to ensure proper functionality and minimize power consumption.
5. Performance Verification: Ensuring that the chip operates at the desired performance levels
under all conditions and workloads is crucial, especially for high-performance chips.
6. Test Generation: Generating effective and efficient test patterns to cover various fault models
is a non-trivial task, especially for complex designs.
7. Debugging: Identifying and debugging issues in large and complex designs can be time-
consuming and requires advanced debugging techniques.
• To begin with, a system on chip must have a processor at its core which will define its
functions.
• Normally, an SoC has multiple processor cores.
• It can be a microcontroller, a microprocessor, a digital signal processor, or an application
specific instruction set processor.
• Secondly, the chip must have its memories which will allow it to perform computation. It
may have RAM, ROM, EEPROM, or even a flash memory.
• SoC must possess are external interfaces which will help it comply with industry standard
communication protocols such as USB, Ethernet, and HDMI.
• It can also incorporate wireless technology and involve protocols pertaining to WiFi and
Bluetooth.
• It will also need a GPU or a Graphical Processing Unit in order to help visualize t he
interface.
• Other stuff that an SoC may have includes voltage regulators, phase lock loop control
systems and oscillators, clocks and timers, analog to digital and digital to analog converters,
etc.
• Internal interface bus or a network to connect all the individual blocks.
• Ultimately, the elements incorporate in an SoC corresponds to the function it is supposed to
perform.
Advantages of SoC:
• Power saving, space saving and cost reduction.
• SoCs are also much more efficient as systems as their performance is maximized per watt.
• minimize the latency.
• SoC has a greater design security.
Applications of SoC:
• Q1 and Q2 are PMOS transistors and Q3 and Q4 are NMOS transistors. When gate inputs
A and B are '0', transistors Q1, Q2 are shorted and Q3, Q4 are open. Therefore when
A=B=0, output C is connected to VDD. Similarly when A=B=1 output C is connected to
ground i.e. 0.
• Suppose fault Q1 stuck-open. If A = B = 0 then Q1 and Q2 are shorted in fault tree circuit
but only Q2 is shorted in faulty circuit Q3 and Q4 are open in both circuit. Hence output
C is '1' in good circuit but is floating (neither VDD nor ground) in faulty circuit.
1
• The good and faulty state-s of output C are denoted by Z and 𝑍 respectively.
• The output node C has parasitic capacitance. For detecting a fault, it should be ensured
that value of Z is 0. It can be done by preceding A = B = 0 as initializing vector to A = 1,
B = 0. This sets output node C to 0 in faulty circuit by discharging node capacitance to
ground potential.
• To complete the test another input from 10 to 00 is applied. It produces an output 0 → 1
in good circuit and 0 → 0 in faulty circuit.
V. Test coding:
Test coding involves writing test patterns to test the functionality and detect faults in a chip.
Various methods and languages can be used for test coding, such as:
1. ATPG (Automatic Test Pattern Generation): ATPG tools automatically generate test
patterns based on fault models.
2. BIST (Built-In Self-Test): BIST structures are embedded within the chip to facilitate self-
testing.
3. Scan Chains: These enable efficient testing by serially scanning in test data and capturing
results.
4. Test benches: Test benches are used for simulation-based verification, where test stimuli are
applied to the design, and responses are analyzed.
5. High-Level Test Languages: Some specialized languages and tools are used for high-level
test descriptions, which can be automatically converted to lower-level test patterns.
VI. ASIC Design Flow:
ASIC design flow describes the sequence of steps to be followed in ASIC design. Such a steps
are given below:
Steps:
1. Design Entry:
Enter the design into ASIC design system using VHDL (or) Verilog.
2. Logic Synthesis:
Create netlist using VHDL (or) Verilog tool.
Netlist is a description of logic cells and their connections.
3. System Partitioning:
A large system is divided into ASIC sized pieces.
4. Pre layout Simulation:
It is used to check the design whether it functions (works) correctly or not.
5. Floor Planning:
In this step, the blocks of netlist are arranged on the chip.
6. Placement:
It is used to decide the location of cells in a block.
7. Routing:
It makes the connections between cells and blocks.
8. Extraction:
It is used to find the resistance and capacitance of the interconnect.
9. Post layout Simulation:
It checks to see the design whether it still works with the added loads of the interconnect.
Step 1 to Step 4 are known as logic design.
Step 5 to Step 9 are known as physical design.
Features:
• It is a cell-based ASIC ( CBIC —“sea-bick”)
• It has Standard cells. Standard cell is logic elements used CMOS technology.
• Possibly megacells , megafunctions , full-custom blocks , system-level macros
(SLMs), fixed blocks , cores , or Functional Standard Blocks ( FSBs )
• All mask layers are customized - transistors and interconnect
• Automated buffer sizing, placement and routing. And custom blocks can be embedded.
• A “wall” of standard cells forms a flexible block.
b. Gate Array Based ASICs:
• For ex: if embedded block has 32K bit memory. But the customer
needs only 18K bit, the 16K memory is wasted.
VIII. Introduction to test benches:
A test bench is a model which is used to exercise and verify the correctness of hardware model.
It is used for:
• Generating stimulus for simulation
• Applying the stimulus to the entity under test and to collect the output.
• Comparing obtained output with expected output.
Verilog models are tested through simulation. For small designs, it may be practical to manually
apply inputs to a simulator and visually check for the correct outputs. For larger designs, this
procedure is usually automated with a test bench.
The test bench uses nonsynthesizable system calls to read a file, apply the test vectors to the
device under test (DUT), check the results, and report.
The test bench is used to verify the functionality of the design. The test bench allows the design
to verify the functionality of the design at each step in the HDL synthesis-based methodology.
When the designer makes a small change to fix an error, the change can be tested to make sure
that it didn't affect the other part of the design.
As mentioned in the block diagram, a test bench is at the highest level in the hierarchy of the
design. The test bench instantiates the design under test (DUT). The test bench provides the
necessary input stimulus to the DUT and examines the output from the DUT.
The test bench format is given below.
entity testbench is
end;
architecture tb of testbench is
component test
Port (port names and modes)
end component;
Local signal declarations;
Begin
-
-
-
port map (port associations);
end tb;
Waveform Generation
Two methods can be followed to generate stimulus values.
✓ To create waveforms and apply stimulus at discrete time intervals.
✓ To generate stimulus based on the state of the entity or output of the entity.
Two types of waveforms can be obtained namely repetitive pattern and vector pattern.
Repetitive Pattern
If clk<= not elk after 10 ns
Then the following waveform is created. Here ON period and off period are same.
Example:
if NOW> 100 ns then
wait;
endif;
clk<= '0', '1' after 50ns,
'0' after 100ns, '1' after 150ns;
For this format, the corresponding waveform is given below.
Non-Repetitive Waveform
Non-repetitive waveform can be generated by using following statement.
clk <= '0', '1' after 50 ns, '0' after
80 ns, '1' after 100 ns
Its waveform is given below.
A physical fault can be transformed into a logical fault model that allows one to develop sets of
test vectors. Many techniques have been developed for testing CMOS VLSI chips that use
common circuit design styles. Most Automatic Test Pattern Generation (ATPG) approaches have
been based on simulation. A five-valued logic form is commonly used to implement test
generation algorithms (more advanced algorithms use up to 10 level logic). This consists of the
states 1, 0, D, D and X, where 0 and 1 represent logical zero and logical one respectively, D
represents a logic 1 in a good machine and a logic 0 in a faulty machine, D represents a logic 0 in
a good machine and a logic 1 in a faulty machine. X represents the don't-care state.
If we want to test the gate which is embedded in large logic circuit.
Then we can use the existing circuit to create a specific path from the location of gate which is
going to be checked for finding fault. This technique is known as path sensitization. This process
of creating the path is known as propagation.
In the Fig.5.5, we want to find the inputs to test for SA0 fault at c. Path sensitization is
performed using two steps given below.
Step: 1 Forward Drive:
Note: If we want to test any node for SA0 fault, that node = 1
We want to test for SA0 fault, So, c should be equal to 1(c = 1). If c = 1, Then we want
to get the o/p of A2 as 1 (propagate c through A2).
c = 1,
We want to get Z2=1.
So, b = 1
To get output y,
Z2 = 1 and Z1 = 0.
It should be processed through OR gate 1. (Fig. 5.5)
Test h-node for SA0 fault. Sensitization steps are given below.
Steps:
We want to test h-node for SA0 fault. So, h = 1 (h should be equal to 1).
We want to get y = 1, (to propagate h) Refer Fig. 5.6.
So, e =1, ( y=e. h)
If
h = 1,
then f=1, and g = 1. (: h=f. g)
If f=1
then a = 1
b = 1 ( f = a. b)
If
g=1
then c = 1 and d=0
(or)
c=0 and d = 1
11.xx.0.0) (10)
d=0
Now, we can write test vector {a, b, c, d, e} = {1, 1, 1, 0, 1} (or) {1, 1, 0, 1, 1}
Eg: 3
If we want to check h-node for SA1 fault.
Then steps are given below. For the same Fig.5.6.
Steps:
h=0 (h should be equal to 0 for testing SA1 fault)
y = 0 (: y = h.e)
So, e=1
If h=0,
then f=0 and g=1
(or)
f=1 and g=0,
If
g=0
c=0
d=0
If
g=1,
c=x
d=x
(or)
c=0
d=0
If
f=0,
a=0
b=1
(or)
a=1
b=0
If, f=1
a=1
b=1
Now, we can write test vector set as
{a, b, c, d, e} = {0, 1, x, x, 1}
(or)
{1, 0, x, x, 1}
(or)
{0, 0, x, x, 1}
(or)
{1, 1, 0, 0, 1}
D Algorithm
1. Ad hoc testing:
Ad hoc test techniques, are collections of ideas aimed at reducing the combinational explosion of
testing. It is only useful for small designs ATPG, and BIST are not available. A complete scan-
based testing methodology is recommended for all digital circuits. Common techniques for ad
hoc testing involve:
• Partitioning large sequential circuits
• Adding test points
• Adding multiplexers
• Providing for easy state reset
A technique classified in this category is the use of the bus in a bus-oriented system for
test purposes.Each register has been made loadable from the bus and capable of being driven
onto the bus. Here, the internal logic values that exist on a data bus are enabled onto the bus for
testing purposes.
Frequently, multiplexers can be used to provide alternative signal paths during testing. In
CMOS, transmission gate multiplexers provide low area and delay overhead.
Any design should always have a method of resetting the internal state of the chip within a
single cycle or at most a few cycles. Apart from making testing easier, this also makes simulation
faster as a few cycles are required to initialize the chip.
2. Scan-based approaches:
The scan-design strategy for testing to provide observability and controllability at each register.
In designs with scan, the registers operate in one of two modes. In normal mode, it behave as
expected. In scan mode, it connected to form a giant shift register called a scan chain spanning
the whole chip. By applying N clock pulses in scan mode, all N bits of state in the system can be
shifted out and new Nbits of state can be shifted in. Therefore, scan mode gives easy
observability and controllability of every register in the system. The scan register is a D flip-flop
preceded by a multiplexer.
• When the SCAN signal is deasserted, the register behaves as a conventional register,
storing data on the D input.
• When SCAN is asserted, the data is loaded from the SI pin, which is connected in shift
register fashion to the previous register Q output in the scan chain.
Modern scan is based on the use of scan registers, as shown in Figure 12.13.
For the circuit shown, to load the scan chain, SCAN is asserted and CLK is pulsed eight times to
load the first two ranks of 4-bit registers with data. SCAN is deasserted and CLK is asserted for
one cycle to operate the circuit normally with predefined inputs. SCAN is then reasserted and
CLK asserted eight times read the stored data out. At the same time, the new register contents
can be shifted in for the next test.
Testing proceeds in this manner of serially clocking the data through the scan register to the right
point in the circuit, running a single system clock cycle and serially clocking the data out for
observation. In this scheme, every input to the combinational block can be controlled and every
output can be observed. In addition, running a random pattern of 1's and 0's through the scan
chain can test the chain itself.
Test generation for this type of test architecture can be highly automated. ATPG techniques can
be used or the combinational blocks and, as mentioned, the scan chain is easily tested.
Disadvantage:
The area and delay impact of the extra multiplexer in the scan register.
Each register in the design is arranged on an imaginary (or real) grid where registers on common
rows receive common data lines and registers in common columns receive common read- and
write-control signals. In the figure, and array of 2-by-2 registers is shown. The D and Q signals
of the registers are connected to the normal circuit connections. Any register output may be
observed by enabling the appropriate column read line and setting the appropriate address on an
output data multiplexer. Similarly, data may be written to any register.
4.IDDQ Testing:
When the signal inputs are stable (not switching), the quiescent leakage current Ippo can be
measured. This is illustrated in Figure 14.30.
Every chip design is found to have a range of 'normal' levels. IDDQ testing is based on the
assumption that an abnormal reading of the leakage current indicates a problem on the chip. IDDQ
testing is usually performed at the beginning of the testing cycle. If a die fails, it is reflected and
no further tests are performed.
The components of a basic IDDQ measurement system is shown in Figure 14.31.
The test chip is modelled as being in parallel with the testing capacitance, Ctest. A power supply
with a value VDD is connected to the chip by a switch that is momentarily closed at time t = 0.
The current IDD is monitored by a buffer (a unity-gain amplifier) and gives the output voltage.
5. Design for Manufacturability:
Circuits can be optimized for manufacturability to increase their yield. This can be done in a
number of different ways.
i. Physical:
At the physical level (i.e., mask level), the yield and hence manufacturability can be improved
by reducing the effect of process defects.
• Increase the spacing between wires where possible- this reduces the chance of a defect
causing a short circuit.
• Increase the overlap of layers around contacts and vias-this reduces the chance that a
misalignment will cause an aberration in the contact structure.
• Increase the number of vias at wire intersections beyond one if possible-this reduces the
chance of a defect causing an open circuit.
Increasingly, design tools are dealing with these kinds of optimizations automatically.
ii. Redundancy:
Redundant structures can be used to compensate for defective components on a chip. For
example, memory arrays are commonly built with extra rows.
iii. Power:
Elevated power can cause failure due to excess current in wires, which in turn can cause metal
migration failures. In addition, high-power devices raise the die temperature, degrading device
performance and, over time, causing device parameter shifts.
iv. Process Spread:
Process simulations can be carried out at different process corners. Monte Carlo analysis,
provide better modeling for process spread and can help with centering a design within the
process variations.
v. Yield Analysis:
When a chip has poor yield or will be manufactured in high volume, dice that fail manufacturing
test can be taken to a laboratory for yield analysis to locate the root cause of the failure. If
particular structures are determined to have caused many of the failures, the layout of the
structures can be redesigned.
XII. Scan design: Test interface and boundary scan:
The IEEE 1149 Boundary scan architecture is shown in Figure 14.33. It provides a standardized
serial scan path through the I/O pins of an IC. At the board level, ICs obeying the standard may
be connected in a variety of series and parallel combinations to enable testing of a complete
board or, possibly, collection of boards. The standard allows for the following types of tests to be
run in a certified testing framework:
• Connectivity tests between components.
• Sampling and setting chip I/Os.
• Distribution and collection of self-test or built-in test result
The TAP Controller is a 16-state FSM that proceeds from state to state based on the TCK and
TMS signals. It provides signals that control the test data registers, and the instruction register.
These include serial-shift clocks and update clocks. The state diagram is shown in Figure 14.35.
The state adjacent to each state transition is that of the TMS signal at the rising edge of TCK.
Starting initially in the Test-logic-Reset state, a low on TMS transitions the FSM to the Run-
Test/Idle Mode. Holding TMS high for the next three TCK cycle places the FSM in the select-
DR-scan, select-IR-scan, and finally capture-IR mode. In this mode, two bits are input to the TDI
port and shifted into the instruction register.
Asserting TMS for a cycle allows the instruction register to pause while serially loading to allow
tests to be carried out. Asserting TMS for two cycles allows the FSM to enter the Exit-2-IR mode
on exit from the pause-IR state and then to enter the Update-IR mode where the Instruction
Register is updated with the new IR value. Similar sequencing is used to load the data registers.
The test-data registers are used to set the inputs of modules to be tested, and to collect the results
of running tests. The simplest data-register configuration would be a boundary-scan register
(passing through all I/O pads) and a bypass register (1-bit long). Figure 14.37 shows a
generalized view of the data registers where one internal data register has been added. A
multiplexer under the control of the TAP controller selects which particular data register is
routed to the TDO pin.
vi. Boundary Scan Registers:
The boundary scan register is a special case of a data register. It allows circuit-board
interconnections to be tested, external components tested, and the state of chip digital I/Os to be
sampled. Apart from the bypass register, it is the only data register required in a Boundary Scan
compliant part.
A single structure in addition to the existing I/O circuitry can be used for all I/O pad types,
depending on the connections made on the cell. It consists of two multiplexers and two edge-
triggered registers.
Figure 14.38(a) shows this cell used as an input pad. Two register bits allow the serial shifting of
data through the boundary-scan chain and the local storage of a data bit. This data bit may be
directed to internal circuitry in the INTEST or RUNBIST modes (mode 1). When mode = 0, the
cell is in EXTEST or SAMPLE/PRELOAD mode. A further multiplexer under the control of
shift DR controls the serial/parallel nature of the cell. The signal clock DR and update DR
generated by the TAP controller load the serial and parallel register respectively.
An output cell is shown in Figure 14.38(b). When mode=1, the cell is in EXTEST, INTEST, or
RUNBIST modes, communicating the internal data to the output pad. When mode = 0, the cell is
in the SAMPLE/PRELOAD mode. Two output cells may be combined to form a tristate
boundary-scan cell, as in Figure 14.39.
The output signal and tristate-enable each have their own MUXes and registers. The Mode
control is the same for the output-cell example. Finally, a bidirectional pin combines an input
and tristate cell as in Figure 14.40.