U.S. patent application number 12/579572 was filed with the patent office on 2010-02-11 for method for at-speed testing of memory interface using scan.
This patent application is currently assigned to LogicVision, Inc.. Invention is credited to Jean-Francois COTE, Benoit NADEAU-DOSTIE.
Application Number | 20100037109 12/579572 |
Document ID | / |
Family ID | 38686480 |
Filed Date | 2010-02-11 |
United States Patent
Application |
20100037109 |
Kind Code |
A1 |
NADEAU-DOSTIE; Benoit ; et
al. |
February 11, 2010 |
METHOD FOR AT-SPEED TESTING OF MEMORY INTERFACE USING SCAN
Abstract
A method and a circuit of testing of a memory interface
associated with an embedded memory in a semiconductor circuit
involves writing to two memory locations in succession; reading the
two memory locations in succession in the same order in which the
two memory locations were written; capturing output data from the
memory interface; and analyzing captured output data to determine
whether said captured output data corresponds to expected data.
Inventors: |
NADEAU-DOSTIE; Benoit;
(Gatineau, CA) ; COTE; Jean-Francois; (Chelsea,
CA) |
Correspondence
Address: |
RIDOUT & MAYBEE LLP
4TH FLOOR, 100 MURRAY STREET
OTTAWA
ON
K1N 0A1
CA
|
Assignee: |
LogicVision, Inc.
San Jose
CA
|
Family ID: |
38686480 |
Appl. No.: |
12/579572 |
Filed: |
October 15, 2009 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
11439497 |
May 24, 2006 |
7617425 |
|
|
12579572 |
|
|
|
|
60693778 |
Jun 27, 2005 |
|
|
|
Current U.S.
Class: |
714/719 ;
714/E11.177 |
Current CPC
Class: |
G11C 2029/3202 20130101;
G11C 29/50 20130101; G11C 2029/0401 20130101; G11C 29/50012
20130101 |
Class at
Publication: |
714/719 ;
714/E11.177 |
International
Class: |
G11C 29/10 20060101
G11C029/10; G06F 11/263 20060101 G06F011/263 |
Claims
1. A method of testing a memory interface associated with an
embedded memory in a semiconductor circuit, said method comprising:
launching an initialization address and initialization data;
writing said initialization data to a memory location corresponding
to said initialization address and launching final data; writing
said final data to a memory location corresponding to a final
address derived from said initialization address; reading
initialization data from said memory location corresponding to said
initialization address; reading said final data from said memory
location corresponding to said final address; capturing output data
from said memory interface corresponding to the act of reading from
the memory location corresponding to said final address; and
analyzing said captured output data to determine whether said
captured output data corresponds to expected data.
2. The method as defined in claim 1, further including: scanning
address and input data into scannable memory elements in a fan-in
of respective memory address and memory data inputs prior to said
acts of writing said initialization data and writing said final
data; and scanning out the contents of said scannable memory
elements in a fan-out of the memory subsequent to said act of
capturing but prior to said act of analyzing.
3. The method as defined in claim 2, said act of scanning address
and input data comprising scanning in a first memory address and
first memory input data into said scannable memory elements in the
fan-in of the memory address and memory data inputs.
4. The method as defined in claim 3, wherein the contents of said
memory locations are determined by the state of said scannable
memory elements.
5. The method as defined in claim 4, further including performing
reading of said memory location corresponding to said final address
and wherein the act of capturing output data is at a rated speed of
said memory.
6. The method as defined in claim 4, said act of deriving a second
memory address comprising flipping at least one bit of said memory
location corresponding to said initialization address.
7. The method as defined in claim 2, further including holding
constant contents of said scannable memory elements in the fan-in
of memory address inputs during writing and reading of said memory
and holding constant the contents of said scannable memory elements
in the fan-in of memory data inputs after writing to said memory
location corresponding to said initialization address.
8. The method as defined in claim 8, further including modeling
said memory as a direct connection between said memory data inputs
and a memory data output.
9. The method as defined in claim 1, further including holding the
initialization address in a dedicated address register.
10. The method as defined in claim 12, further including modeling
said memory as a number of non-scannable memory elements connected
between a memory data input and a corresponding memory data output
of the memory with the number of memory elements corresponding to a
number of clock cycles to propagate data through the memory.
11. The method as defined in claim 1, further including performing
said method using a scan test which includes a capture phase having
a sequence of clock cycles between test data scan in and test
response scan out operations with at least a last two of the cycles
of said sequence being at said rated speed of said memory and with
a penultimate cycle being a read cycle of said second memory
location and a last cycle being a capture cycle.
12. A method for performing an at-speed scan test of a memory
interface associated with an embedded memory in a semiconductor
circuit, said memory having memory data inputs controllable from
and memory data outputs observable by scannable memory elements,
said method comprising: scanning an initialization address and an
initialization data word into respective scannable memory elements
in a fan-in of respective memory address and of the memory data
inputs of the memory; launching said initialization address and
initialization data word from said scannable memory elements in the
fan-in of the memory address and memory data inputs; writing said
initialization data word to said initialization address and
launching a final data word; deriving a final address from said
initialization address; writing said final data word to said final
address; reading said initialization address; reading said final
address; and capturing said memory data outputs in output scan
chains.
13. The method as defined in claim 17, wherein said act of deriving
a final address from said initialization address comprises flipping
at least one bit of said initialization address.
14. The method as defined in claim 17, further including performing
said writing and reading operations while maintaining said
initialization address stable for a first predetermined number of
clock cycles prior to a capture cycle and maintaining said final
data source address stable for a second predetermined number of
clock cycles prior to a capture cycle.
15. A method for performing an at-speed scan test of a memory
interface associated with an embedded memory in a semiconductor
circuit, said memory having memory data inputs controllable from
and memory data outputs observable by scannable memory elements,
said method comprising: storing a test address in a register
consisting of at least one storage element and applying an output
of said register to an input of a corresponding test interface
address input selector; alternating an output of said at least one
storage element to produce initialization and final addresses;
scanning said initialization address and an initialization data
word into respective scannable memory elements in a fan-in of
respective memory address and of the memory data inputs of the
memory; launching said initialization address and initialization
data word from said scannable memory elements in the fan-in of the
memory address and memory data inputs; writing said initialization
data word to said initialization address and launching a final data
word; writing said final data word to said final address; reading
said initialization address; reading said final address; and
capturing said memory data outputs in output scan chains.
16. The method as defined in claim 20, said act of alternating
including: flipping the output of each of the at least one storage
elements prior to applying it to a corresponding memory address
input.
17. The method as defined in claim 20, further including, for a
memory having an incomplete address ranges, forcing a most
significant bit (MSB) of each address to Logic 0 so that no access
is performed out of range.
18. A semiconductor circuit having an embedded memory having a
write enable input, memory address inputs, memory data inputs and
memory data outputs, and interface logic to be tested, said circuit
comprising: an address register in a fan-in to said memory address
inputs for receiving and holding initialization address data
corresponding to a first of said memory locations for a first
predetermined number of clock cycles prior to a capture cycle;
means for deriving, from said initialization address data, final
memory address data corresponding to a second of said memory
locations; a data register for storing an initialization data input
for a second predetermined number of clock cycles prior to a
capture cycle; means for writing to said initialization address and
said final address in succession and for reading said
initialization address and said final address in succession in the
same order in which said initialization address and said final
address were written under control of a clock signal; and means for
capturing output data in the fan-out of said memory data
outputs.
19. The circuit as defined in claim 24, wherein said address
register comprises all memory elements in the fan-in to said memory
address inputs and said data register comprises all memory elements
in the fan-in to said memory data inputs.
20. The circuit as defined in claim 24, wherein said address
register comprises all memory elements in the fan-in to said memory
address inputs selected by a first value of a control signal and
said data register comprises all memory elements in the fan-in to
said memory inputs selected by the first value of the control
signal.
21. The circuit as defined in claim 24, wherein said address
register comprises all memory elements of a dedicated address
register and said data register comprises all memory elements in
the fan-in to said memory inputs.
22. The circuit as defined in claim 24, said means for writing
including means connected to said memory write enable input for
receiving a write enable mask and a functional input and responsive
to a test control signal for selecting one of said write enable
mask and said functional input and applying the selected input to
said memory write enable input.
23. The circuit as defined in claim 28, said means for capturing
including an output scan chain having scannable memory elements in
the fan-out of said memory data outputs.
24. The circuit as defined in claim 24, said address and data
registers including scannable memory elements in an input scan
chain for receiving write enable input data, said initialization
address data and final input data.
25. The circuit as defined in claim 30, further including scannable
memory elements in an output scan chain in the fan-out of memory
outputs for capturing data output from said interface logic.
26. The circuit as defined in claim 24, further including a
scannable memory bypass register with an output selectively
connected to said memory data inputs for writing to said two memory
locations under control of a first value of a control signal and
for substituting the contents of said bypass register for memory
output under control of a second value of said control signal.
27. The circuit as defined in claim 24, further including an
address input observation register having an input for receiving
address input data applied to said memory and an output selectively
connected to said memory address inputs.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application is a continuation of U.S. patent
application Ser. No. 11/439,497 and claims the benefit of U.S.
Provisional Patent Application Ser. No. 60/693,778 filed Jun. 27,
2005.
BACKGROUND OF THE INVENTION
[0002] 1. Field of the Invention
[0003] The present invention relates, in general, to the testing of
integrated circuits and, more specifically, to verification of the
exact timing of a memory interface with surrounding logic when
performing an at-speed scan test of an integrated circuit (IC).
[0004] 2. Description of Related Art
[0005] The main challenges which face semiconductor manufacturers
and integrated circuit designers revolve around achieving the
highest yield in the shortest amount of time. This is especially
true as the industry continues to move to smaller process
geometries and beyond and as circuit operating speeds continue to
increase. There is a need therefore for products and test solutions
that enable circuit designers to improve product quality, gain
information on the source of product failures and field returns,
and use that information to create higher yielding integrated
circuits (ICs) faster. To that end, it is well known to test ICs by
scan test techniques in which test data is scanned into an IC to
stimulate the IC and IC response data is scanned out for analysis.
One problem which has yet to be satisfactorily resolved is testing
of memory test interfaces and surrounding test logic which generate
memory inputs and receive memory outputs.
[0006] FIGS. 1a and 1b illustrate a memory 12, surrounded by input
and output logic circuitry 14, and 16, respectively. The memory
includes memory cells, address decoder, precharge logic, etc.,
which are not shown for simplicity. Input scannable memory elements
18, which form a test input scan chain, are provided for scanning
test data into the circuit and output scannable memory elements 20,
which form a test response output scan chain, are provided for
capturing and scanning test responses from the circuit. The input
memory elements apply test patterns to the logic which, in turn,
apply inputs to the write enable control, address and data inputs
of the memory 12. The data outputs of the memory are applied to the
output logic on the output side of the memory. The output of the
logic is applied to the output scannable memory elements 20. The
memory elements are arranged into scan chains by applying an active
scan enable signal, SE, to respective inputs. An inactive scan
enable signal is applied to the memory elements to launch test data
or capture response data. As is well known in the art, the
scannable memory elements include flip-flops for storing test and
response data.
[0007] The bold lines in the figures represent a plurality of lines
or connectors and corresponding scannable memory elements, the
number of which depends on the number of memory write enable
inputs, address inputs and data inputs and memory outputs of the
circuit design.
[0008] For the purpose of simplifying the description, it is
assumed herein that all flip-flops, and the memory are positive
edge-triggered. In FIG. 1a, the memory is in phase with the
surrounding logic so that it captures its input and updates its
output on the rising edge of the clock. In FIG. 1b, the memory is
out of phase with the surrounding logic because of clock inversion
caused by inverter 22. The memory output is latched by transparent
latch 24 so that the memory output appears to update its output on
the positive edge before it is used by the surrounding logic 16.
The memory input is captured on the falling edge of the clock. The
test method of the present invention addresses both circuit
configurations.
[0009] FIG. 2 illustrates a known memory circuit 12 which includes
a memory test interface or BIS T collar 32 which surrounds memory
12, a memory BIST (Built-In Self-Test) circuit 34 and circuit
modifications, described below, to the memory circuits of FIGS. 1a
and 1b for performing at-speed scan testing of the memory interface
32. The circuit logic includes logic 14a which outputs a write
enable data, logic 14b which outputs an address and input data to
be applied to the memory and output logic 16 which receives data
output by the memory. The test interface is indicated by the dotted
line and includes test interface input multiplexers (muxes) 36,
controlled by a BistOn select signal for selecting between
functional inputs and BIST inputs. The input muxes include a write
enable mux 38, a plurality of address input muxes 40 and a
plurality of data input muxes 42.
[0010] A bypass mechanism 44 connects data inputs and corresponding
data outputs through respective scannable flip-flops 46. Flip-flops
46 are clocked on the same edge of the clock, CK, which clocks the
memory. The test interface also includes a set of output muxes 48,
controlled by a test mode signal, tm, which is active high during
scan and BIST testing to select between a memory output and the
output of a corresponding bypass flip-flops 46.
[0011] Scannable observation logic 50 and 52 are provided for the
control (e.g. write enable) and address inputs, respectively, of
the memory. This logic is in the form of scannable flip-flops that
are clocked on the same edge as the memory. The bypass mechanism
and the observation logic complement other features, such as memory
BIST circuit 34, to test the memory independently of a scan
test.
[0012] A scan test is performed by deselecting the memory, setting
BistOn low and tm high. Test data is scanned into the input scan
chain 18 and applied to input logic 14a and 14b whose outputs are
applied to the test interface input muxes 36. The outputs of input
muxes 38 and 40 are captured in observation logic 50 and 52 and the
outputs of data input muxes 42 are captured in bypass flip-flops
46. The outputs of bypass flip-flops 42 are applied to inputs of
output muxes 48, the outputs of which are applied to output logic
16 whose outputs are captured by the output scan chain. The
captured data is scanned out for analysis.
[0013] An interface input timing test is performed by launching
test data from the input scan chain and capturing data in the
observation memory elements 50 and 52 and bypass flip-flops 46. The
captured data is scanned out for analysis. An output timing test
involves launching data from bypass flip-flops 46 and capturing the
resulting data in output scan chain 20. The captured data is
scanned out and analyzed. As explained below, there are drawbacks
to this method and circuitry.
[0014] The observation and bypass mechanisms allow for testing the
timing of the input relatively accurately because the setup time
for a synchronous configuration is similar to that of a flip-flop.
However, the test of the output side of the memory is less accurate
because the bypass flip-flops update their output significantly
faster than the memory. As a result, subtle delay faults can escape
detection by a combination of a scan test and a memory BIST test
even though both tests are performed at-speed. Another limitation
is that the bypass mechanism can be relatively expensive in terms
of silicon area for wide data buses. Further, because of their
potential impact on timing, it would also be desirable to eliminate
the set of output muxes 48 at the output of the memory. It will be
seen therefore that there is a need for a method and circuitry that
address these limitations.
SUMMARY OF THE INVENTION
[0015] The present invention provides a method and test interface
circuitry that enables the transfer of test data through the memory
using functional clocks so that the exact timing of the interface
with surrounding logic is tested whenever possible. The method is
compatible with both random logic BIST and ATPG scan test methods.
Different embodiments of the method provide different trade-offs of
hardware versus software support. The method supports various types
of multi-port memories. For a given port type, slight variations of
the method are proposed to handle different clock configurations.
The embodiments also allow gated clock configurations to reduce
power during certain modes of operation (functional or memory BIST)
and reduce the number of simulation events during verification of
these modes.
[0016] In accordance with the method of the present invention, an
initialization data word and a final data word are propagated
through the memory to act as a pipeline from the memory data input
terminal to the memory data output terminal. The method writes to
and reads from two memory locations in fast succession to cause the
memory circuitry (memory cells, address decoder (partial),
precharge logic, etc.) and surrounding logic to be tested at
speed.
[0017] The method of the present invention is generally defined as
a method of testing of a memory interface associated with an
embedded memory in a semiconductor circuit, said method comprising
writing to two memory locations in succession; reading the two
memory locations in succession in the same order in which the two
memory locations were written; capturing output data from the
memory interface; and analyzing captured output data to determine
whether the captured output data corresponds to expected data.
[0018] According to a first broad aspect of the present disclosure,
there is provided a method of testing a memory interface associated
with an embedded memory in a semiconductor circuit, said method
comprising: launching an initialization address and initialization
data; writing said initialization data to a memory location
corresponding to said initialization address and launching final
data; writing said final data to a memory location corresponding to
a final address derived from said initialization address; reading
initialization data from said memory location corresponding to said
initialization address; reading final said data from said memory
location corresponding to said final address; capturing output data
from said memory interface corresponding to the act of reading from
the memory location corresponding to said final address; and
analyzing said captured output data to determine whether said
captured output data corresponds to expected data.
[0019] According to a second broad aspect of the present
disclosure, there is provided a method for performing an at-speed
scan test of a memory interface associated with an embedded memory
in a semiconductor circuit, said memory having memory data inputs
controllable from and memory data outputs observable by scannable
memory elements, said method comprising: scanning an initialization
address and an initialization data word into respective scannable
memory elements in a fan-in of respective memory address and of the
memory data inputs of the memory; launching said initialization
address and initialization data word from said scannable memory
elements in the fan-in of the memory address and memory data
inputs; writing said initialization data word to said
initialization address and launching a final data word; deriving a
final address from said initialization address; writing said final
data word to said final address; reading said initialization
address; reading said final address; and capturing said memory data
outputs in output scan chains.
[0020] According to a third broad aspect of the present disclosure,
there is provided a method for performing an at-speed scan test of
a memory interface associated with an embedded memory in a
semiconductor circuit, said memory having memory data inputs
controllable from and memory data outputs observable by scannable
memory elements, said method comprising: storing a test address in
a register consisting of at least one storage element and applying
an output of said register to an input of a corresponding test
interface address input selector; alternating an output of said at
least one storage element to produce initialization and final
addresses; scanning said initialization address and an
initialization data word into respective scannable memory elements
in a fan-in of respective memory address and of the memory data
inputs of the memory; launching said initialization address and
initialization data word from said scannable memory elements in the
fan-in of the memory address and memory data inputs; writing said
initialization data word to said initialization address and
launching a final data word; writing said final data word to said
final address; reading said initialization address; reading said
final address; and capturing said memory data outputs in output
scan chains.
[0021] According to a fourth broad aspect of the present
disclosure, there is provided a semiconductor circuit having an
embedded memory having a write enable input, memory address inputs,
memory data inputs and memory data outputs, and interface logic to
be tested, said circuit comprising: an address register in a fan-in
to said memory address inputs for receiving and holding
initialization address data corresponding to a first of said memory
locations for a first predetermined number of clock cycles prior to
a capture cycle; means for deriving, from said initialization
address data, final memory address data corresponding to a second
of said memory locations; a data register for storing an
initialization data input for a second predetermined number of
clock cycles prior to a capture cycle; means for writing to said
initialization address and said final address in succession and for
reading said initialization address and said final address in
succession in the same order in which said initialization address
and said final address were written under control of a clock
signal; and means for capturing output data in the fan-out of said
memory data outputs.
BRIEF DESCRIPTION OF THE DRAWINGS
[0022] These and other features of the invention will become more
apparent from the following description in which reference is made
to the appended drawings in which:
[0023] FIG. 1a illustrates a memory circuit which is in-phase with
surrounding logic so that it captures its input and updates its
output on the rising edge of the clock;
[0024] FIG. 1b illustrates a memory circuit in which is
out-of-phase with surrounding logic so that it captures its input
and updates its output on the falling edge of the clock;
[0025] FIG. 2 illustrates a known memory circuit having a test
interface or collar, BIST controller and circuitry to allow memory
BIST testing of the memory and scan testing of input and output
testing of the test interface and surrounding logic;
[0026] FIG. 3 is a flow diagram illustrating the operations
performed according to the present invention;
[0027] FIG. 4 is a timing diagram illustrating signal waveforms
according to an embodiment in which memory is out-of-phase with
surrounding logic;
[0028] FIG. 5 is a timing diagram illustrating signal waveforms
according to an embodiment in which memory is in-phase with
surrounding logic;
[0029] FIG. 6 is a circuit diagram of a test interface according to
a first embodiment of the present invention;
[0030] FIG. 7 is a circuit diagram of a test interface according to
second embodiment of the present invention;
[0031] FIG. 8 is a circuit diagram of a test interface according to
a third embodiment of the present invention; and
[0032] FIG. 9 is a circuit diagram of a test interface, similar to
that of FIG. 7, according to still another embodiment of the
present invention;
DETAILED DESCRIPTION OF EMBODIMENTS
[0033] In the following detailed description, numerous specific
details are set forth in order to provide a thorough understanding
of the present invention. However, it will be understood by those
skilled in the art that the present invention may be practiced
without these specific details. In other instances, well known
methods, procedures, components and circuits have not been
described in detail so as not to obscure aspects of the present
invention.
[0034] In accordance with the method of the present invention, an
initialization data word and a final data word are propagated
through the memory to act as a pipeline from memory data input
terminals to memory data output terminals. The method writes to and
reads from two memory locations in fast succession to cause the
memory circuitry (memory cells, address decoder (partial),
precharge logic, etc.) and surrounding logic to be tested at
speed.
[0035] The sequence of events for a number of embodiments of the
method of the present invention is described below. In a preferred
embodiment of the present invention, the sequence of events is
performed during a burst of five clock cycles, during which the
operations in the flow diagram of FIG. 3 are performed:
[0036] First, an initialization address and data word are launched
(step 60);
[0037] Second, the initialization data word is written to the
initialization address and a final data word is launched (step
62);
[0038] Third, the final data word is written to a second or final
address (step 64); Preferably, the final address is derived from
the initialization address and obtained by flipping at least one
bit of the initialization address;
[0039] Fourth, the initialization data word is read from the
initialization address (step 66);
[0040] Fifth, the final data word is read from the final address
(step 68);
[0041] Sixth, the outputs of surrounding logic is captured (step
70); and
[0042] Seventh, the captured data is analyzed to determine whether
it corresponds to expected data (step 72).
[0043] This sequence of operations is generally referred to a
"write-thru" process herein. The waveforms associated with the
sequence of operations is illustrated in FIG. 4 and FIG. 5. FIG. 4
shows waveforms for a memory which is out-of-phase with surrounding
logic (time borrowing) while FIG. 5 shows waveforms for a memory
which is in-phase with surrounding logic. The timing shown in the
various figures is for a scan test method such as that described
and claimed in Applicants' U.S. application Ser. No. 10/739,055
filed Dec. 19, 2003 (Applicant's Docket No. LVPAT068US). The scan
test method described therein is for testing a circuit having
memory elements arranged into one or more scan chains. The method
has a shift phase for serially loading test patterns into the said
chains and serially unloading test response patterns from the scan
chains and a capture phase for capturing the response of the
circuit to the test pattern. During the capture phase, the serial
output of each scan chain is connected to its respective serial
input, and a predetermined number of clock cycles are applied with
the memory elements being configured in a non-capture mode for all
but the last clock cycle of the capture phase and being configured
in capture mode for the last clock cycle of the capture phase. In
the present invention, at the very least, the last two clock cycles
are applied at the rated or system speed to perform the last read
access and capture of the result of the read operation in the
flip-flops. However, it will be understood by those skilled in the
art that other scan test methods can be used.
[0044] In FIG. 4 and FIG. 5, the waveform labeled SP is a test
phase control signal which defines a shift phase (high) and a
capture phase (low). The waveform labeled Clock is the clock
signal, (CK in FIG. 3) applied to the circuit and memory. The
waveform labeled SE is a scan enabled signal which configures
scannable memory in a shift mode (high) or a capture mode (low).
Scannable memory elements are configured in shift mode when test
data is shifted into scan chains and when test response data is
shift out of the scan chains. The waveform labeled Adm is an
address mask control signal which controls the address applied to
address inputs of the memory. The waveform labeled Address is the
address signal applied to the address inputs of the memory. As can
be seen, the figures shows two address: A1 and A2. The waveform
labeled WEM is a write enable mask signal which controls the write
enable signal applied to the memory. WEM is first maintained high
to write to the two memory locations in succession and then changed
to low to read from the two memory locations in succession in the
same order in which the addresses were written to the memory
locations. The waveforms labeled Input and Output are the input and
output signals at inputs and outputs, respectively, of the
memory.
[0045] The above described sequence of operations yields a
repeatable timing test that allows the calculation of transition
fault coverage of the circuit in a conventional manner for a scan
testable circuit. By writing to and reading from two memory
locations in fast succession, the memory circuitry (memory cells,
address decoder (partial), precharge logic, etc.) as well as the
surrounding logic will be tested at speed. A single write/read
operation would not yield a proper transition of the memory output
for a memory that updates its output on a write operation and would
thereby invalidate an at-speed test.
[0046] In the following description, the following assumptions are
made. Memories are synchronous memories operating either in-phase
or out-of-phase with surrounding logic. The specific embodiments
illustrated, show out-of-phase configurations. For out-of-phase
configurations, memory access starts on the falling edge of the
clock and an update latch is used to stretch the access cycle (time
borrowing). The method described in aforementioned application Ser.
No. 10/739,055 is preferred because it allows for the use of longer
burst lengths to achieve higher at-speed coverage of the memory
input. However, it will be understood that other scan methods with
shorter burst lengths (down to two) can be used. Memories are
single port and their address range can be incomplete as discussed
later in a discussion of handling of incomplete address space and
multi-port memories.
[0047] The method provides a number of advantages. First, it tests
the exact timing of memory output timing, i.e., from the start of
the read operation to data capture. Second, it provides for high
coverage: many address and data inputs are applied at-speed through
the memory. Third, the method handles memories that either update
or do not update their outputs during a write operation.
[0048] The present invention provides different test interface
embodiments for carrying out the test interface timing method in
order to address the following specific situations: a first
situation in which changes to functional circuits are permitted
(FIG. 6); a second situation in which no changes to functional
circuits are permitted (FIG. 7); and a third situation in which no
functional circuit modification and no memory bypass are permitted
(FIG. 8).
[0049] Functional Circuit Modifications Permitted
[0050] FIG. 6 illustrates a first embodiment of a memory test
interface for use in a circuit 80 in which functional circuit
modifications are permitted. The figure shows a circuit with an
out-of-phase circuit configuration which includes an inverter 22
applied to the memory clock input and a transparent latch 82 for
each memory output. The output of the transparent latches are
applied to the output logic 16 and to inputs labeled "output" of
memory BIST circuit 34. As in FIG. 2, each of the outputs of output
logic 16 is applied to the data input of a corresponding scannable
memory elements 20 of the output scan chain.
[0051] Retiming memory elements 84 and 86 are connected to the
outputs of the test interface input muxes 38 and 40 associated with
the write enable input and address inputs, respectively, of the
memory and observation logic 50 and 52 is provided for the write
enable and address inputs of the memory. The clock inputs of
latches 84 and 86 are inverted by inverters 88 and 90. Retiming
memory elements 84 and 86 as well as inverters 88 and 90 are not
needed when the memory is in-phase.
[0052] Bypass flip-flops 46 of FIG. 2 are eliminated. The memory
output is connected directly to the data input of the transparent
latch 62.
[0053] An XOR gate 92 is inserted between one or more memory
address input ports and a corresponding test interface address
input mux and serves to derive a final address from an
initialization address. The XOR gate receives an address mask
signal, Adm, and the output of a corresponding test interface
address input mux. As previously mentioned, for input and output
timing tests, Adm is a square wave to cause data to be written to
two memory locations in succession and then read from the same two
memory locations in succession.
[0054] The write enable input of the memory is connected to the
output of a second write enable selector 94 controlled by a test
mode signal, tm, which is set high during scan testing and
interface timing testing. This selector has a first input connected
to a write enable mask, WEM, input and a second input connected to
the output of test interface write enable input selector 38. During
a timing test, WEM is set high to allow for writing to two memory
locations in sequence and then set low to allow for reading from
the same two memory locations in sequence.
[0055] The output of test interface write enable input selector 38
is also applied to the input of a retiming memory element whose
output is applied to an observation scannable memory element
50.
[0056] In this embodiment, address test data is launched from a
input scannable memory element 18 and a test data input is launched
from a corresponding input scannable memory element 18 after the
launch of the address data. All flip-flops in the fanin of the
memory address input must hold their value for five clock cycles
(MCP5) and all flip-flops in the fanin of data inputs must hold
their value for four clock cycles (MCP4) for both functional and
BIST memory elements. The former keeps the initialization address,
A1, constant, throughout the write-thru process. The latter allows
for the application of two input data values: initialization data
and final data.
[0057] In the embodiment illustrated in FIG. 6, the invention
described in Applicants' U.S. Pat. No. 6,145,105 issued Nov. 7,
2000 (Docket No. LVPAT002US) is used to maintain the address stable
for five clock cycles and the data stable for four clock cycles
before the capture operation so that the circuit only depends on
flip-flop outputs which have completed their shift phase and can
therefore be modeled as a combinational circuit.
[0058] BistOn can be assigned both active and inactive values and
the applied value is kept constant during the burst of clock cycles
of the capture phase When BistOn is active, the BIST outputs are
selected at the test interface mux inputs. When BistOn is inactive,
the functional inputs are selected.
[0059] This embodiment works best when a local address and data bus
are used, i.e., when there is no fanout to other parts of the
circuit other than to the memory. Note that an FSM has implicit
fanout.
[0060] The advantages of this embodiment are that it tests the
exact timing of both memory data input and output; eliminates the
bypass logic, resulting in significant area savings, eliminates the
output mux in the functional path, and has potential application to
register files (requires observable address decoder).
[0061] The trade-offs of this embodiment are that there is a need
to change the functional source of address and data to MCP5 and
MCP4 flip-flops, respectively. This implies a) loss of at-speed
coverage if a source that fans out to parts of the circuit other
than the memory; b) it is not applicable to circuits where the
sources of address and/or data is the memory itself, and c) it can
introduce redundant faults or asynchronous loops because the path
through the memory is modeled as a direct connection from input to
output during analysis, at least one address bit has an extra gate
(XOR gate) on its functional path to the memory, and the
combinational depth of the circuit: the memory is modeled as a
direct connection from input to output and the depth of the circuit
is the sum of the depth of the logic connected to the data input
and the depth of the logic connected to the data output. Fault
coverage might be reduced and ATPG complexity increased.
[0062] No Functional Circuit Modifications Permitted
[0063] FIG. 7 illustrates a test interface embodiment 100 for use
when functional circuit modifications are not permitted. Again, the
figure shows a circuit with an out-of-phase circuit configuration
which includes an inverter 22 applied to the memory clock input and
a transparent latch 82 for each memory output, as well as retiming
memory elements 84, 86 and 104 and inverters 88 and 90, all of
which are not needed for in-phase configuration. In this
embodiment, all changes are confined to the memory BIST collar and
BIST controller 34. Memory write-thru is enabled only when BistOn
is active (Logic 1). Data used for write-thru is sourced by data
bypass flip-flops 102 which are MCP4. Address data used for
write-thru is sourced by MCP5 flip-flops (not shown) in the memory
BIST controller or in the collar if a local address counter is
used. The BistOn signal is randomly selected and is an MCP5 source.
The write-thru mode is enabled/disabled by a Test Access Port (TAP)
instruction register or data register bit (not shown) called
Write-Thru Enable, and labeled WTE in FIG. 7, for diagnostic
purposes.
[0064] As can be seen in FIG. 7, a write enable input selector 94
is provided with inputs connected to the output of a write enable
test interface input selector 38 and to write enable mask (WEM)
signal. The output of the test controller data input selector 42 is
connected to the memory and to the input of bypass scannable
flip-flop 102 through a retiming memory element 104. The output of
flip-flop 102 is applied to one input of an output selector 48. The
output selector 48 is controlled by a AND gate 108. The inputs of
the first AND gate are the test mode signal, tm, and the output of
a NAND gate 110. The inputs of the NAND gate are BistOn and the
aforementioned WTE signal. When tm is inactive (Logic 0), the
output of the memory is always selected because the circuit is in
functional mode.
[0065] The address output of the BIST controller is applied to one
input of an XOR gate 112 whose other input is the address mask
signal, Adm. The data output of the BIST controller is applied to
one input of a selector 114 controlled by the write enable mask,
WEM. The other input of the input selector is the output of the
bypass flip-flop 102.
[0066] When BistOn is active, the functional input logic is not
tested. BistOn selects the BIST address/data at the test interface
inputs and selects the memory output to test the output logic. A
"write-thru" operation is performed. However, when BistOn is
inactive, the functional input logic is tested by capturing the
functional address and data using the observation and bypass
flip-flops respectively. On the output side, the output of the
bypass register is selected to test the output logic (both
functional and BIST).
[0067] The advantages of this embodiment is that no functional
changes are required. This has several implications. First, there
is no need to reduce at-speed coverage of other destinations.
Second, it is applicable to more circuits (e.g. data and/or address
provided by another memory). Third, there is no introduction of
asynchronous loops or redundant faults. Fourth, it has reduced
combinational depth: the memory output is directly controllable
from a set of dedicated registers and limit the combinational depth
of the circuit as compared to the embodiment of FIG. 6 and there
are no combinational paths that traverse the memory. Fifth, there
is no need to modify the BIST controller itself except for the
address counter in the case illustrated. This can be relaxed by
using the address observation flip-flops to provide the address.
This is discussed in more detail in the description of the third
embodiment below. Sixth, this embodiment allows running with or
without write-thru enabled and the signature is the same in both
cases. This might be useful for diagnosing problems occurring when
the memory is involved in the at-speed scan test.
[0068] This embodiment has some trade-offs. The timing of
functional inputs is not exactly the same as in functional mode.
The difference is primarily from the difference in setup time of
the observation and bypass flip-flops compared to the memory input.
However, this is usually relatively small. Further, there is a need
to employ bypass registers. This is expensive, especially when
re-timing is needed for a memory running out-of-phase with the
circuit, as in the illustrated embodiment. There is a need for a
bypass multiplexer in the functional path at the output of the
memory. FIG. 9 illustrates a modification to the embodiment of FIG.
7. This is described later. This embodiment is useful when the
memory BIST circuit must operate from a different clock branch from
that of the memory so that the clock can be gated off during
functional operation.
No Functional Modification and No Memory Bypass Permitted
[0069] In the embodiment illustrated in FIG. 6, the invention
described in Applicants' U.S. Pat. No. 6,145,105 issued Nov. 7,
2000 (Docket No. LVPAT002US) is used to maintain the address stable
for five cycles and data stable for four cycles before the capture
operation so that the circuit only depends on flip-flop outputs
which have completed their shift phase and can therefore be modeled
as a combinational circuit. As illustrated in FIG. 8, this
requirement can be relaxed in two ways.
[0070] First, the requirement to hold the flip-flops which generate
the address can be relaxed by using address observation flip-flops
120 to take a snapshot of the memory BIST address at the same time
as step 62 (write to the first memory address and launch of the
final address) in which the sequence is performed. This step is
labeled "Start write to address A1" in FIG. 5. Then, a path 122 is
created from the observation flops 120 to the memory address input,
via XOR gate 124, selector 126 controlled by scan enable, SE, and
test interface selector 40, also controlled by scan enable, to
apply the stored address A1 in subsequent step 4 (read of the final
address) or the modified address A2 during steps 3 and 5. This
could be done, for example, by forcing the value of BistOn high and
intercepting the address generated by the memory BIST controller.
During the last clock cycle, the observation flip-flops perform a
capture, like all other flip-flops, and thereby capture the address
applied to the memory. The process of taking the address snapshot
and holding the value until the capture step is totally transparent
to analysis tools. For that reason, the value of the address at
which the snapshot is taken is not important. This feature can be
used in the context of all embodiments proposed herein.
[0071] Second, the requirement to hold the flip-flops in the BIST
controller, which generate the data input, requires analysis tools
to calculate the value of the data input before the test pattern is
completely shifted into the flip-flops. This data value is used
during step 2 (initialization) and step 3 (final) of the sequence.
Analysis tools already perform this type of operation when
calculating transition fault coverage. Since the memory behaves
like a pipeline of depth 3 that is clocked while data is scanned
in, the initialization and final values are simply derived from a
shifted version of the scan chain contents. This operation only
needs to be performed locally on the portion of the circuit which
generates the data input of the memory.
[0072] This embodiment has all of the advantages of the first
embodiment described earlier and eliminates the data input-output
bypass logic, thereby saving area and eliminating a multiplexer on
memory output functional paths. There is no need to modify the
memory BIST controller. There is no need to modify the functional
logic and there is no impact on at-speed fault coverage of
flip-flops that fan out to logic other than memory.
[0073] The trade-offs of this embodiment are that first, as in the
first embodiment, there are some cases in which the method is not
applicable; second, the embodiment is not applicable to circuits
where the source of address and/or data is a memory itself, third,
the embodiment can introduce redundant faults or even loops because
the path through the memory goes through pipeline stages whose
value cannot be set independently; and fourth, the combinational
depth is the same as in the first embodiment.
[0074] Special Cases
[0075] Memories with incomplete address ranges can be handled by
forcing the most significant bit (MSB) of the address to 0 so that
no access is performed out of range. This results in a slight loss
of coverage if the MSB is on a critical path.
[0076] For multi-port memories, the principle is the same for all
cases. The BIST logic must be on the same clock domain as the read
port that is to be tested at-speed. Multiple read ports can be
tested if they share the same clock. The timing at the input used
during the write operation is tested at-speed if the clock is the
same as the read port. Otherwise, MCP5+ (false path) source
flip-flops must be used. Another possibility to cover the address
path on the write port(s) is to separate the clock for the
observation logic with which it is associated:
[0077] a) 1R1W ports: Force read address to be the same as the
write address. The BIST logic must be on the same clock domain as
the read port. The source of the signals used to perform the write
operation must be MCP5+ (false path) as opposed to an MCP4 if a
different clock is used for the write port.
[0078] b) 2RW ports: If the clocks are the same, force MSBs (one if
complete address space and two if incomplete address space) to
opposite values. The value can be constant or derived from the same
bit that is inverted before being applied to the second port. Local
bypass logic is used. If the clocks are different for the two
ports, only one RW port can be tested using write-thru. Test the
one working at the highest speed and put the BIST logic on that
domain.
[0079] c) 1W2R ports: If the clocks are the same, the solution is
similar to a), i.e., force address to be the same on both read
ports and write port. This test will stress the memory cell because
both read ports will be active. If the clocks are different for the
three ports, only one of the read ports can be tested at-speed. The
second read port can still perform "shadow" reads to disturb the
first port being tested at-speed.
[0080] d) 2W1R ports: If the clocks are different, turn off the
writes on one of the write-only ports and the solution is similar
to 1R1W (see a).
[0081] e) 1RW1W ports: If the clocks are different, turn off writes
on the write-only port and use the 1RW solution.
[0082] f) 1RW1R ports: If the clocks are different, always select
the bypass register to drive the read-only port. If the clocks are
the same, the solution is similar to 1R1W (see a).
[0083] Low Power Option
[0084] It is sometimes desirable to provide modes where either the
functional logic or memory BIST logic needs to cease all operations
to reduce power consumption or reduce the number of simulation
events. To do so, gates can be added to create balanced branches of
the clock distribution tree so that synchronous operation between
branches is preserved. FIG. 9 illustrates the embodiment of FIG. 8
which provides AND gates 130, 132 and 134 for providing these modes
and for enabling balanced branches and disabling others under
different conditions.
[0085] AND gate 130 receives a functional signal, FuncMode input,
or test mode signal, tm at one input and a clock signal, CK, at its
other input and outputs a functional clock signal, FCK, branch. AND
gate 132 receives clock signal, CK, at one input and V.sub.DD at
its other input to produce a memory clock signal branch, MCK. AND
gate 134 is connected to clock input, CK, and an inverted
functional mode input to generate a BIST clock signal branch.
[0086] Although the present invention has been described in detail
with regard to preferred embodiments and drawings of the invention,
it will be apparent to those skilled in the art that various
adaptions, modifications and alterations may be accomplished
without departing from the spirit and scope of the present
invention. Accordingly, it is to be understood that the
accompanying drawings as set forth hereinabove are not intended to
limit the breadth of the present invention, which should be
inferred only from the following claims and their appropriately
construed legal equivalents.
* * * * *