achieve high test coverage for soc

Upload: umesh-parashar

Post on 04-Jun-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Achieve High Test Coverage for SoC

    1/26

    Strategy to Achieve High Test Coverage for SOC

    Nor Azura Zakaria

    MIMOS BERHAD, Malaysia

    [email protected]

    ABSTRACT

    Yield issues are very important and costly in semiconductor manufacturing process as it depends

    on the maturity of the process technology involved. To address yield issues and make sure the

    silicon device comes out functionally successful requires very high test coverage. In this paper, itwill present the strategy to ensure that high test coverage more than 98% coverage can be

    achieved for SOC chip with multimillions of gates.

    The work is cover from RTL level up to test pattern generation. It is also discussed further about

    how to debug DFT violation and failure in ATPG simulation. Full scan implementation has been

    done for testing core design 0.18 um process technology with 3 M gates SOC design.

    In this paper also, it is also presented the flow and methodology that used in IC design Lab for

    every stage and why the flow in implemented in this work.

  • 8/13/2019 Achieve High Test Coverage for SoC

    2/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC2

    Table of Contents

    1.0 Introduction.6

    2.0 DFT Challenge and DFT Goal...6

    2.1 DFT Project Implementation.6

    2.2 Full Scan Flow and Methodology..72.3 RTL Cleanup...9

    2.3.1 Common DFT Violation...9

    2.3.1.2 Latches...9

    2.3.1.3 Uncontrollable Clock.9

    2.3.1.4 Asynchronous Reset As a data.9

    2.3.1.5 Bus Contention.10

    2.3.1.6 Sensitivity of Feedback Loop..10

    2.3.2 Violation Coding Example..11

    2.4 Synthesis and Scan-Stitching12

    2.4.1 Scan Chain Architecture.13

    2.4.2 Scan Testing Clock...13

    2.4.3 Control Signal during Scan Testing...13

    2.4.4 Hookup Test Port.14

    2.4.5 Latch Clock Gating..15

    2.5 Handling Hard Macro: ARM7TDMI and Memories.16

    3.0 ATPG Run and Fault Simulation.16

    3.1 Increasing Test Coverage With Data Analysis16

    3.2 Blockage Tracking and Debugging..18

    3.3 Fault Simulation with VCS Simulator.20

    3.4 Failure Simulation and Debugging..23

    4.0 Discussion and Conclusion ..254.1 Discussion.25

    4.2 Conclusion......26

    5.0 Acknowledgement......26

    6.0 References...26

  • 8/13/2019 Achieve High Test Coverage for SoC

    3/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC3

    List of Figures

    Figure 1: Wireless IC Design at top level design . ..7

    Figure 2: Recommended DFT Flow8

    Figure 3: Bidirectional Pad...10

    Figure 4: Example Violation.. ...11

    Figure 5: Test Mode Selection Module..13

    Figure 6: Scan Chain Architecture.14

    Figure 7: Latch Clock Gating for DFT.....15

    Figure 8: Memory Bypassed Using scan_mode signal..16

    Figure 9: Fault Number vs Test Coverage.17

    Figure 10: Graph Test Coverage vs Module Name...17

    Figure 11: Blocking Path between USB and Synchronous Reset Synchronizer Module..18

    Figure 12: Blockage path before fixed......19Figure 13: Blockage Path is Removed...19

    Figure 14: Fault Number vs Test Coverage...19

    Figure 15: Test Coverage vs Module Name..20

    Figure 16: Recommended Scan Simulation Flow.22

    Figure 17: Data Shifting Failure. ..23

    Figure 18: Hold Violation Causing Failure...24

  • 8/13/2019 Achieve High Test Coverage for SoC

    4/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC4

    List of Tables

    Table 1: Simulation Result Case I.25

    Table 2: Simulation Result Case II....25

  • 8/13/2019 Achieve High Test Coverage for SoC

    5/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC5

    1.0Introduction

    Semiconductor manufacturing is like any other production process and has inter-related

    chemical, electrical and mechanical engineering operations. The yield is defined on the

    expectancy of the silicon output without any manufacturing defects or faults.

    Test coverage is calculated based on how many faults that can be covered compared to the total

    number of possible faults in the chips. Since the complexity of the SOC increases rapidly, there

    is no way to test the millions of gates in a chip without help from well- structured test programs.

    Objective of the test program should be to generate test patterns that controls and observes

    almost all possible fault sites within silicon from chip periphery.

    Test Coverage = DT + (PT x PT_credit) x 100

    All_Faults - UD - (AN x AU_credit)

    " PT = Possibly Detected Faults" DT= Detected Faults

    PT_credit= initial 50 percent

    UD = Undetectable

    AU= ATPG untestable-not detected

    AN=ATPG untestable and not detected

    From this formula, test coverage result is proportionate to the all detected fault value. So in this

    paper, the strategy that we implemented in this project is ensuring that all possibility detected

    (PT) and DT (detected) fault must be increased. The design must be testable following DFT rules

    so that ability to observe and control is in our hand. Engineer has to know where the clocks and

    asynchronous reset is handling in the design.

    In section 2.0, it is elaborate the method in each stage from coding level until scan stiching. It is

    also give an example coding method and how to debug the DFT violation. It is also describes

    DFT architecture in SOC for handling clock distribution, reset distribution and bypassing IPs. All

    DFT architecture with the correct constraint and the specification for all valid scan path and

    invalid scan cell must be listed in DFT work. Debugging method and analysis method is

    discussed in Section 3.0. ATPG setting in TETRAMAX determined the success of DFT

    performance in verfying scan specification and all the information is important while debugging

    failure in scan simulation In Section 4, some points from this prior work need to be discussed as

    for the reference and improvement in future work. The conclusion is also including at the end of

    the paper.

    2.0 DFT Challenge and DFT Goal

    2.1 DFT Project Implementation

    Wireless Design that has 3 M gates is integrated with PLL, ARM7TDMI, AMBA peripheral,

    USB peripheral and 17 memories and targeting to 0.18 um process technology. All the IPs

  • 8/13/2019 Achieve High Test Coverage for SoC

    6/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC6

    embedded in this SOC design had been bypassed using test mode pin during testing exclude USB

    and AMBA module. For USB and AMBA module, the scan chain will be implemented and

    integrate with other module in design. In Figure 1, it shows the design diagram of the this

    Wireless IC with its BSR(Boundary Scan Register) cell. This design is consist of 256 pads, BSR

    cell to support boundary scan testing, JTAG tap controller, core design and some small is

    sub_top_core in handling clock and reset.

    Figure 1: Wireless IC Design at top level design

    2.2 Full Scan Flow and Methodology

    There is few method and methodology you can follow to complete your full scan implementation

    [2],[3],[4]. As the full scan implementation is done after synthesis process, the DFT flow is

    depending on the flow you chose in synthesis. After dealt with many issues on the timing

    problem, there are two approaches that have been done; one approach is optimizing the design by

    using bottom up synthesis and another one is top down synthesis. While achieving test coverage

    targets at two different flows, there is so many challenges that need to be faced as some of the

    architecture especially clock driven and reset driven at top level is need to be changed.

    Design Flow DFT Structure Test Coverage Timing ClosureBottom Up Synthesis 4 mains block group

    and integrated at top

    level

    99% Not achieved

    Top Down Flow Scan stiching at core

    level. Output of the core

    level is connected

    manually and compiled.

    98.08% Achieved for

    functional and test

    mode

  • 8/13/2019 Achieve High Test Coverage for SoC

    7/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC7

    But after achieved the target there is a recommended flow that DFT engineer could follow. The

    recommended flow is shown at Figure 2.

    Figure 2: Recommended DFT Flow

  • 8/13/2019 Achieve High Test Coverage for SoC

    8/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC8

    2.3 RTL Cleanup:

    As mentioned at introduction part, the strategy that we emphasized to have a quality result for

    DFT performance is ensure all RTL blocks is passing DFT violation. The clean up RTL means

    all the violations is need to improve at coding stage. In this stage the code is not only met its

    functionality requirement but meet testability requirement.

    There is an option in the tool to do automation fix for the DFT violation reported but due to some

    violation the tools cannot improve it. It is also not advisable to use this approach as to forbidden

    the tools creates its additional logic that could disturb timing requirement. It is also beneficial to

    STA team, whereby the clock driven, generated clocks, uncontrollable asynchronous reset and

    synchronous reset and feedback path loop can be traced earlier. From this information the timing

    constraint and the timing optimization can be debugged earlier while designer doing the RTL

    coding.

    2.3.1 Common DFT Violation

    The quality of the code is just not up to functionality goal but the quality of the code is must besynthesizable and testable. If they follows DFT rule, violation can be easily avoided. Sometimes

    because of human error, there will be a common dft violation that will come up. DFT Rules that

    indicates the violation to the scan chain sequential element are:

    2.3.1.2 Latches

    Latch is normally design to avoid glitches or having some delay for certain condition of

    achieving a good functionality. But for DFT purpose, latch would not be included in scan chain

    and tools would define it as non scan flip flop. As for this purpose if the designer could avoid the

    latch, it will better to get the high coverage of the design. But if there is no ways to avoid latches

    to meet the functionality performance, before scan stitching all the latches must be define to be

    excluded from scan chain.

    2.3.1.3 Uncontrollable Clock

    Uncontrollable clock violation could be caused by clock generated, clock drives the data and race

    condition between scan flop and non scan flops while capturing mode. All the method to solve it

    is normally is putting multiplexer and the control signal to select input signal is test mode [2].

    2.3.1.4 Asynchronous Reset As a data

    The most common violation that the designer always do is not put the register in initial condition

    for the asynchronous reset. If this happen, the data come from the logic is connected to this signaland as its function asychnronous to the clock the new data might be wrongly shifted. The failure

    data could be caused if the value that goes to reset signal is 0 propagate while capturing mode

    and after the clock rise for shifting mode, the reset value would reset all the value at its flops.

  • 8/13/2019 Achieve High Test Coverage for SoC

    9/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC9

    2.3.1.5 Bus Contention

    Bus contention could happen if the same bus is having a conflict data float in same bus between

    two different flops. This is always happened if the code of the register is using multi dimensional

    array method.

    1) Multi-dimensional array

    RTL example:

    reg [10:0] apiu_pwr_meas_set1 [10:0]; // multi-dimentional array

    apiu_pwr_meas_set1[0]

  • 8/13/2019 Achieve High Test Coverage for SoC

    10/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC10

    in shifting and capturing mode. If there is any blocked path or the ATPG tools cannot search for

    the new set of loading value to break the loop, the code must be changed as well.

    2.3.2 Violation Coding Example

    Some coding could be generated many violations based on the poor style coding. Example shownin box below is the RTL that coded to generate the counter to count error bit. In the point of DFT

    view, the first line of the RTL box code will generate the violation as the asynchronous reset

    signal is having a computation with other data. Figure 4 is presenting all DFT violation that had

    been reported by ATPG tool .All the other register that inputted by the violated asynchronous

    signal (reset as data) or violated clock (clock as data) is violated.

    rst

    QD

    clk

    A0

    A1

    B0

    B1

    Yber [1]

    all path connect to ber [7:0]is having a same loop path

    X1 violation

    All registers is violated rdat_tx , buff_tx_rdy , cn, k, bep , state ,

    b_err_count, err_burst, rdy

    a) Uncontrollable Asynchronous Reset

    b) Combination Feedback Pathloop Violation

    c) Clock as a Data and Connected to Primary Output

    Figure 4: Example ViolationSolution on Example 1:

    Improving DFT violation could sometimes give the improvement for the functionality

    verification. There is no doubt that sometimes the functional verification could not identify the

    root of the failure for the asynchronous reset where it depends on the quality of the functional

    testbench is been programmed. After identified the violation, the solution code is clean without

    any violation after run DFT check on it.

  • 8/13/2019 Achieve High Test Coverage for SoC

    11/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC11

    2.4 Synthesis and Scan-Stitching:

    After scan synthesis had been done from the synthesis guy, DFT Engineer has to ensure that allDFT constraints have been correctly defined and scan chain specification must be previewed to

    ensure that DFT scan chain architecture is balanced for the design itself before doing the

    implementation of scan chain stitching of all scan flops. After all DFT violation had been

    observed and repaired, the scan chain architecture had to be previewed first before the scan chain

    is been stitched for the whole design. If the fault coverage target is not achieved yet, all DFT

    violation must be analyzed using ATPG tool to improve the RTL code. Timing optimization

    always @(posedge clk or negedge rst)

    begin

    if(!rst)

    begin

    rdat_tx

  • 8/13/2019 Achieve High Test Coverage for SoC

    12/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC12

    during scan-stitching is disabled as timing optimization will be primarily handled by synthesis

    team.

    2.4.1 Scan Chain Architecture

    From the design architecture we have to determine the DFT architecture. Scan chain Architecture

    of the WIRELESS IC DESIGN design is as below:a) Sequential Element Count: 84333b) Scan Chain Count: 64c) Longest Path of scan chain: 1316d) Memory Scan Depth (tester reference) = 3.6 M clock cyclee) Scan In Port Number: 64f) Scan Out Port Number 64

    2.4.2 Scan Testing Clock

    WIRELESS IC DESIGN design has few clocks; CLKIN as a system clock, BB_CLKR as RF

    baseband Receiver clock, BB_MCKO as RF baseband Transmitter clock, TEST_CLK0 as clockin debug mode, and TEST_CLK1 is a clock in bypass mode. All the internal clock and the

    distributed PLL clock had been bypassed using one single clock domain as shown in Figure 6.

    The test clock for manufacturing test is using clock domain, CLKIN. Test clock configuration is

    as below:

    Clock period: 100ns

    Clock Edge Rise: 45 ns

    Clock Edge Fall: 55 ns

    2.4.3 Control Signal during Scan Testing

    Control Signal that has to be controlled during manufacturing test is stated as below.

    1)SE Set 0 (Capturing Mode) and Set 1 ( Shifting Mode )2)MODE[2] Must be always set to 03)MODE[1] Must be always set to 14)MODE[0] Must be always set to 05)POR Assertion and de-assertion is depend on the cycle of scan capturing and scan shifting

    Figure 5: Test Mode Selection Module

  • 8/13/2019 Achieve High Test Coverage for SoC

    13/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC13

    IO Pads

    BSR cellsPad 1EM_D[0]

    Pad 128

    I2c_SDA

    IO PadsBSR cells

    Pad 129

    EM_A[0]

    Pad 130

    EM_A[1]

    Pad 256BB_TXST

    sub_top_gprs (core design)0

    1

    01

    0

    1

    PLL

    CLKIN

    Scan Chain 1

    Scan Chain n

    io_bb_txst

    io_em_a_pad_0

    io_em_a_pad_1

    test_so64

    test_so2

    test_so1

    test_si64

    io_i2c_sda

    test_si1

    Example of clock

    bypassing

    Scan input port sharing

    with functional input port

    Scan output port sharing

    with functional output

    port

    test_mode

    Clock distributions

    Module from PLL

    01

    test mode

    sub_clkin

    sub_clkin

    BSR cells

    Figure 6: Scan Chain Architecture

    2.4.4 Hookup Test Port:

    As the chip is has limited additional I/O port, all the scan chain port is shared with the functional

    port. Scan In port is shared with the bidirectional pad, where during scan testing this pad is

    always functioning as the input pad. Scan Out Port is sharing with the output port controlled by

    test mode signal. It is briefly stated how the control signal drive the function of shifting testpattern, capturing the test pattern from the combinational logic to the register and observed the

    value at primary output in scan testing.

    In this project, hookup test port at the top level will be done manually on RTL as the limited

    option in DFT tool which only allow Scan Enable(SE) signal to control the IO pads instead of

    using test mode pin. While BSR cell is been inserted at top level RTL, all this port must be set as

    a linkage port:

  • 8/13/2019 Achieve High Test Coverage for SoC

    14/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC14

    set_bsd_linkage_port -port_list {MODE[2] MODE[1] MODE[0] CLKIN SE RFMD_CLKR

    EM_DCLK_IN TESTCLK0 TESTCLK1}

    SE pin is having maximum fanout from the top level to the all connection of the scan flops, the

    timing constraint for SE pin is amost critical part to STA team to ensure the timing performanceis meet between the tester and the chip. Therefore to avoid possibility of the timing issue between

    the ATE and SE signal of the chip, it was decided to choose the test mode pin to control IO pads

    for scan testing. After the hookup test port is done, the scan stitching netlist of core design will

    be compiled together in DC, to have a complete full scan netlist and SPF generated file.

    2.4.5 Latch Clock Gating

    In synthesis works, the synthesis guy is also optimizing the power performance of the chip itself.

    In improving the power performance in term of saving power for the remaining inactive

    switching work of the circuit, the clock gating cell should be inserted while running synthesis.Latch is a non scan flop and it will disturbed the controllable and observable of the test pattern

    propagating between the scan flops, there is a way to handle the violation to improve the test

    coverage. The few options are already served mainly for DFT purpose by Power Compiler tool.

    The option we used is to put the control signal before Scan Enable pin to get higher test

    coverage. The details explanation can be referred to the reference [11]. It was stated that the fault

    coverage using Scan Enable signal before the latch is given higher fault coverage.

    Power Optimizing Scripts:

    set_clock_gating_style -sequential_cell latch -control_point before \

    -control_signal scan_enable -max_fanout 16 -minimum_bitwidth 8 \ # Coloured Red is for

    -negative_edge_logic {integrated} -positive_edge_logic {integrated} \ # DFT Purpose

    insert_clock_gating

    propagate_constraints -gate_clock

    hookup_testports -verbose

    Figure 7: Latch Clock Gating for DFT

  • 8/13/2019 Achieve High Test Coverage for SoC

    15/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC15

    2.5 Handling Hard Macro: ARM7TDMI and Memories

    For the memories, the testing for manufacturing defect is used built in self test (BIST) method

    where the test mechanism and test algorithm is separate mode with testing mode. As the

    memories is a hard macro all the memories will isolated from the testing. This bypassing work is

    done manually coded at RTL coding stage.

    Figure 8: Memory Bypassed Using scan_mode signal

    As ARM7TDMI is a hard macro and do not have a scan chain stitched in its core, in scan testing

    mode this ARM macro had been bypassed. Some of the combinational logic surround the ARM

    will not be tested but it is not effected the fault coverage for the whole design as the nodes point

    is too little compared to overall total fault.

    3.0 ATPG Run and Fault Simulation:

    Final stage is to generate the test pattern with Tetramax and VCS and doing all scan simulation

    using VCS. DFT performance and its functionality in internal scan will be put into TETRAMAX

    tool to recheck the validity of DFT constraints, to analyze DFT violation, performing all

    algorithms of ATPG mode in generating test pattern, and review all report related. In case if the

    test coverage is low, the DFT Engineer should review all the fault coverage performance for each

    block for both Stuck At-0 and Stuck-At-1. The simulation works will be discussed detail in 3.2

    section.

    3.1 Increasing Test Coverage With Data Analysis

    Analysis of violations is effectively done using the advanced features of ATPG tools. Using GUIschematic and also extensive reports, we can get the information of all criteria of fault

    propagating in the design. All ATPG untestable paths for STA1 or STA0 can be used as a

    reference to investigate the root cause of low test coverage for overall design.

    The graph is obtained by choosing the module that presented the fault number bigger than 20k

    faults in design. From this result, the module that has a significant low fault coverage and bigger

    fault number is USB module. In the graph, turquoise colored bar shows that fault coverage for

  • 8/13/2019 Achieve High Test Coverage for SoC

    16/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC16

    USB block is only achieved 49.3% fault coverage. But compared to the result from USB module

    itself it has test coverage of 98.99%, after the scan path integrated to the top level test coverage

    drops by more than 50%. Due to increase the fault coverage for overall design, the analysis on

    the uncontrollable and unobservable point must be done.

    Figure 9: Fault Number vs Test Coverage

    Figure 10: Graph Test Coverage vs Module Name

  • 8/13/2019 Achieve High Test Coverage for SoC

    17/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC17

    3.2Blockage Tracking and Debugging

    Figure 11: Blocking Path between USB and Synchronous Reset Synchronizer Module

    As the violation is not occurs from the module itself, the integration path for each clocks,

    asynchronous reset and synchronous reset reviewed from path to path. From the Figure 11, it s

    traced that blockage is happen between reset synchronize block to reset synchronous signal from

    external patterns. Blockage means the pattern that enable to detect Stuck-AT-1 and Stuck-AT-0for the USB logics cannot be controlled where the combinational APTG cannot propagate from

    the primary input to check the defect point.

    To fix the issue, the synchronous reset itself need to be connected from any nearer input pin

    while scan testing. Therefore all the test patterns that to detect fault can be controlled easily and

    the fault can be observed savely. As the RTL is been freeze this time, the new connection is done

    into the verilog netlist shown in the box bellow.

    New connection to improve test coverage:

    mux_3 mux5 ( .a(usb_vp), .b(pll_reset_out_tmp), .sel(scanmode), .c( pll_reset_out) );mux_2 mux6 ( .a(usb_vp), .b(rst_dev_out_tmp), .sel(scanmode), .c(rst_dev_out) );mux_1 mux7 ( .a(usb_vp), .b(hreset_out_tmp), .sel(scanmode), .c(hreset_out) );mux_0 mux8 ( .a(usb_vp), .b(hreset_n_out_tmp), .sel(scanmode), .c( hreset_n_out) );

  • 8/13/2019 Achieve High Test Coverage for SoC

    18/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC18

    Figure 12: Blockage path before fixed

    Figure 13: Blockage Path is Removed

    Figure 14: Fault Number vs Test Coverage

  • 8/13/2019 Achieve High Test Coverage for SoC

    19/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC19

    Figure 15: Test Coverage vs Module Name

    The test coverage for the whole core design is finally achieved up to 97.19%. This result is

    achieved for the basic ATPG run as shown in the Figure 14 and Figure 15.

    3.3 Fault Simulation with VCS Simulator

    After fixed all violation at basic scan atpg, scan simulation need to be done for chain simulation.

    After it passed, the simulation will be run at parallel simulation and random pattern on serial

    simulation.The flow of the fault simulation and ATPG test generation is shown from the Figure16. After doing test case simulations and debugging the final settings for the ATPG to is as

    below:

    set drc -noshadows -allow_unstable_set_resetsrun_drc /project/Wireless_IC_Design/asic/ATPG/work/spf/top_core.spfDRC -force

    add capture mask run drc

    add nofaults top_Wireless_IC_Design_BSR_top_inst -Stuck 01

    add nofaults top_Wireless_IC_Design_DW_tap_inst -Stuck 01add_faults -all

    set_atpg -capture_cycles 0 -abort_limit 100set_atpg -resim_basic_scan_pattern maskrun_atpg -auto

    set_atpg -capture_cycles 4set_atpg -abort_limit 100set_atpg -resim_basic_scan_pattern mask

  • 8/13/2019 Achieve High Test Coverage for SoC

    20/26

  • 8/13/2019 Achieve High Test Coverage for SoC

    21/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC21

    Basic ATPG Run for

    Chain Test Pattern

    Chain SImulation

    Basic ATPG Run for

    Serial and Parallel Test

    Parallel SImulation

    Serial Simulation for

    Random test pattern

    Result

    Result

    Result

    Run Fast Sequential ATPG and Full

    Sequential ATPG

    Result

    End

    Fail

    Pass

    Fail

    Pass

    Fail

    Pass

    Pass

    Fail

    Figure 16: Recommended Scan Simulation Flow

  • 8/13/2019 Achieve High Test Coverage for SoC

    22/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC22

    3.4 Failure Simulation and Debugging

    The parallel simulation result had shown below indicated that the chain-9, chain-25 and chain-35

    is having a failure while capturing the data at the scan output port.

    Few segment of the failure report:

    // *** ERROR during scan pattern 257 (detected during load of pattern 258), T= 129200.00 ns

    257 chain9 784 (exp=0, got=1) // pin EM_A[8], scan cell 784

    257 chain9 785 (exp=0, got=1) // pin EM_A[8], scan cell 785

    257 chain9 791 (exp=0, got=1) // pin EM_A[8], scan cell 791

    // *** ERROR during scan pattern 3364 (detected during final pattern unload), T= 1693300.00 ns3364 chain9 1017 (exp=0, got=x) // pin EM_A[8], scan cell 10173364 chain9 1035 (exp=0, got=x) // pin EM_A[8], scan cell 10353364 chain9 1053 (exp=0, got=x) // pin EM_A[8], scan cell 1053

    // *** ERROR during scan pattern 3364 (detected during final pattern unload), T= 1693300.00 ns

    3364 chain25 82 (exp=0, got=x) // pin EM_WP[0], scan cell 82

    // *** ERROR during scan pattern 3364 (detected during final pattern unload), T= 1693300.00 ns3364 chain35 953 (exp=1, got=x) // pin EM_WE[1], scan cell 9533364 chain35 954 (exp=1, got=x) // pin EM_WE[1], scan cell 954

    // 1693400.00 ns : Simulation of 3365 patterns completed with 6 errors

    Figure 17: Data Shifting Failure

    Waveform shows the failure detected at EM_A[7], scan output port as it was expected to get 1,

    but got 0. The assumption can be make is the failure could be timing problem. As per assumption

    there was few test cases had been done, chain simulation, parallel simulation and serial

    simulations. But after run serial simulation on respected chain, the simulation is passed.

    Failure is detected expected value

    is one but ot 0 at EM_A 7

  • 8/13/2019 Achieve High Test Coverage for SoC

    23/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC23

    But one of the test case that detected on the simulation is fail with timing is running simulation

    for both test pattern 257 and test pattern 258. The failure is because the hold timing between the

    few register while shifting mode happen. It can be look at waveform below.

    Figure 18: Hold Violation Causing the Failure

    STA reports are rechecked and it was detected that the path is unconstraint and it had been traced

    that the constraint for one of distribution clock had not been defined.

    from u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/iq_ts_reg_2_ (SDFFRX2)to u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/prev_tx_st_reg (SDFFRXL)

    pt_shell> report_timing -delay min -to u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/main1/adjust_tb_reg_0_/SI

    Startpoint: u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/wr_iq_reg(rising edge-triggered flip-flop)

    Endpoint: u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/main1/adjust_tb_reg_0_(rising edge-triggered flip-flop clocked by clkin)

    Path Group: (none)Path Type: min

    Point Incr Path------------------------------------------------------------------------------

    /u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/wr_iq_reg/CK (SDFFRX1)0.000 0.000 r

    /u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/wr_iq_reg/Q (SDFFRX1)0.483 & 0.483 f

    /u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/cdis_trig1/wr_iq (sr_trigger)0.000 & 0.483 f

    /u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/main1/test_si (sr_main)0.000 & 0.483 f

    u_Apiu_baseband/u_apiu_l1c/l1c_top/sltrate/main1/adjust_tb_reg_0_/SI (SDFFRXL)0.004 & 0.487 f

    data arrival time 0.487------------------------------------------------------------------------------(Path is unconstrained)

    Incorrect settingset_case_analysis 1 u_sub_top_Wireless_IC_Design/u_comb_logic/clkmux2/S0set_case_analysis 0 u_sub_top_Wireless_IC_Design/u_comb_logic/clkmux1/S0

    Correct Setting:set_case_analysis 0 u_sub_top_Wireless_IC_Design/u_comb_logic/clkmux2/S0set_case_analysis 1 u_sub_top_Wireless_IC_Design/u_comb_logic/clkmux1/S0

    It was determined that there is hold violation

    between this two re isters

  • 8/13/2019 Achieve High Test Coverage for SoC

    24/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC24

    After the STA team put the correct DFT constraints and closed timing, the simulation with

    timing fixed netlist is passing simulations. After fixing timing for the test mode, the simulation is

    passing. Scan simulation for all test vectors have been done using two different format of test

    program, verilog format and STIL format. The results are tabled as below:

    Scenario 1: Timing in test mode is clean but timing in functional mode not clean

    Verilog Simulation Result STIL Simulation Result

    Parallel Simulation 6 Failure Parallel Simulation 1 Failure

    Chain Simulation Passed Chain Simulation Passed

    Random Serial

    Simulation Passed

    Random Serial

    Simulation Passed

    Table 1: Simulation Result Case I

    Scenario 2: Both timing performance of the functional mode and test mode is clean

    Verilog Simulation Result STIL Simulation Result

    Parallel Simulation 1 Failure Parallel Simulation Passed

    Chain Simulation Passed Chain Simulation Passed

    Random Serial

    Simulation Passed

    Random Serial

    Simulation Passed

    Table 2: Simulation Result Case II

    After the STA team closed the timing clean for both of functional mode and testing mode, the

    scan simulation passed for all type of scan simulation using STIL test program but using verilog

    simulation there is still 1 failure.From the scenarios, STIL simulation is performed bettercompared to verilog simulation.

    4.0 Discussion and Conclusion

    4.1 Discussion

    Based on the test cases discussed and the flow that have been recommended in this paper, it is

    emphasized that;

    o It is possible to get high test coverage for the design if the DFT rules and guidelines arefollowed and adhered right from the start of the design flow.

    o EDA tool does a good job only if the design is DFT compliant. Else unnecessary

    iterations occur in the design cycle.o During RTL freeze, list of registers to be avoided from scan chain should also be

    identified and included in the DFT constraints.

    o Some capture violations which results in mild drop of fault coverage can be maskedsuccessfully during test pattern generation. The decision to fix the violation or to mask

    the fault sites needs to be reviewed.

    o For some work like hook-up testing port from pad level to the core level is better done atRTL level as there are limitations in tool usage for these features.

  • 8/13/2019 Achieve High Test Coverage for SoC

    25/26

    SNUG Singapore 2008 Strategy to Achieve High Test Coverage for SOC25

    o From the Table 1 and Table 2, it is also recommended to do the scan simulation based onthe STIL protocol is using STIL test pattern. it is also directly supported by the fab ATE

    where the same STIL database could be simulated and run in the ATE. This saves disk

    space, and validates the actual pattern set and not a "branch" in the flow of data to a

    Verilog pattern database that only had value for simulation [5].

    o It is undeniable that the scan testing is only use low-speed test (10 MHz) rather than high-speed functional clock (WIRELESS_IC_DESIGN 52 MHz). Transition faults may not be

    covered but it is more applicable for deep submicron technology. For the target 0.18u

    technology, stuck-at fault model coverage suffices the required fault coverage

    requirements.

    Further Discussion:

    The quality of the overall performance of the test coverage based on the cost of the

    manufacturing defect and other issues faced during post-silicon test pattern debugging are not

    covered in this paper. It will be discussed further in the future paper.

    4.2 Conclusion

    This paper had discussed the flow and the methodology work to get high test coverage and how it

    is implemented in Wireless IC Labs project. The high test coverage is finally obtained for this

    design is 98% test coverage. Some issues had also had been shown and the solution to solve the

    problem had also been discussed.

    5.0 Acknowledgement

    The appreciation goes to those involved in this project and gave full cooperation in achieving

    good result. Acknowledgements to Suhaimi Bahisham, Muhammad Khairol, Roslee, Mohamed

    Farid, Noraini, Zubir, Sridar, Sivaprasad Embanath, Norliza Jalani and Nazaliza Othman.

    6.0 References

    1. Tracy Larrabee,Member, IEEE, Test Pattern Generation Using Boolean

    Satisfiability, IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN, VOL. 11,

    NO. 1, JANUARY 1992

    2. DFT Compiler DFT Architecture User Guide (DB Mode) ,Version X-2005.09, September2005

    3. DFT Compiler User Guide Vol. 1: Scan (XG Mode) Version Y-2006.06, June 2006

    4. TetraMAX ATPG User Guide Version Y-2006.06, June 2006

    5. Test Pattern Validation User Guide Version Y-2006.06, June 2006

    6. Kyeongsoon Cho, Randal E. Bryant, Carnegie Mellon University

    Test Pattern Generation For Sequential MOS Circuit by Symbolic Simulation

    7. Sukalyan Mukherjee, Design for Testability to Achieve High Test Coverage- A

    Case Study, Wipro Ltd.

  • 8/13/2019 Achieve High Test Coverage for SoC

    26/26

    8. Yinghua Min and Zhongcheng Li, Evaluation of Test Generation Algorithms

    Center for Fault-Tolerant Computing, CAD Lab. Institute of Computing

    Technology, Academia Sinica Beij ing, China

    9. Wang Wu Wen,2006 VLSI Test Principle and Architecture, Elsevier Inc

    10. J. Bhasker , Verilog HDL Synthesis

    11. Power Compiler" User Guide Version Y-2006.06, June 2006, Chapter 12