IP Library Granted Patent US 7,617,425
Granted Patent B2
US 7,617,425 · App. 11/439,497 · Granted Nov 10, 2009

Method for at-speed testing of memory interface using scan

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,617,425
App. No.
11/439,497
Granted
Nov 10, 2009
Kind
B2
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.

Claims (59)

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 locations 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 locations corresponding to said initialization address.

8. The method as defined in claim 7 , 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 9 , 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 12 , 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 12 , 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 elements 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 15 , 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 inputs.

17. The method as defined in claim 15 , 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 18 , 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 18 , 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 18 , 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 18 , 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 inputs and applying the selected input to said memory write enable input.

23. The circuit as defined in claim 22 , 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 18 , 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 24 , 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 18 , 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 18 , 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.

Assignments (5)
MERGER AND CHANGE OF NAME Recorded Jun 16, 2021
From: MENTOR GRAPHICS CORPORATION; SIEMENS INDUSTRY SOFTWARE INC.
To: SIEMENS INDUSTRY SOFTWARE INC.
Reel/Frame 056597/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2010
From: LOGICVISION, INC.
To: MENTOR GRAPHICS CORPORATION
Reel/Frame 024233/0056 →
RELEASE OF SECURITY INTEREST Recorded Sep 15, 2009
From: COMERICA BANK
To: LOGICVISION, INC.
Reel/Frame 023234/0037 →
SECURITY AGREEMENT Recorded May 4, 2009
From: LOGICVISION, INC.
To: COMERICA BANK
Reel/Frame 022629/0938 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 24, 2006
From: NADEAU-DOSTIE, BENOIT; COTE, JEAN-FRANCOIS
To: LOGICVISION, INC.
Reel/Frame 017934/0352 →