KR100683436B1 - Generator of memory BIST circuit - Google Patents

Generator of memory BIST circuit Download PDF

Info

Publication number
KR100683436B1
KR100683436B1 KR1020040066950A KR20040066950A KR100683436B1 KR 100683436 B1 KR100683436 B1 KR 100683436B1 KR 1020040066950 A KR1020040066950 A KR 1020040066950A KR 20040066950 A KR20040066950 A KR 20040066950A KR 100683436 B1 KR100683436 B1 KR 100683436B1
Authority
KR
South Korea
Prior art keywords
memory
test
algorithm
bist
model
Prior art date
Application number
KR1020040066950A
Other languages
Korean (ko)
Other versions
KR20060018542A (en
Inventor
장훈
심은성
이정민
이찬영
Original Assignee
숭실대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 숭실대학교산학협력단 filed Critical 숭실대학교산학협력단
Priority to KR1020040066950A priority Critical patent/KR100683436B1/en
Publication of KR20060018542A publication Critical patent/KR20060018542A/en
Application granted granted Critical
Publication of KR100683436B1 publication Critical patent/KR100683436B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/54Arrangements for designing test circuits, e.g. design for test [DFT] tools
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details

Abstract

본 발명은 메모리 자체 테스트 회로 생성기에 관한 것으로, 보다 자세하게는 사용자에게 메모리 구조와 메모리 테스트 알고리즘의 정보를 입력받아 자동으로 BIST IP를 생성해 주는 CAD 툴에 관한 것이다.The present invention relates to a memory self test circuit generator, and more particularly, to a CAD tool for automatically generating a BIST IP by receiving information of a memory structure and a memory test algorithm.

본 발명의 메모리 자체 테스트 회로 생성기는 메모리 자체 테스트를 위한 메모리 모델 설정 정보를 입력 받아 메모리 모델을 기술하는 단계; 상기 메모리 모델 기술 단계에서 테스트하기 위해 생성된 메모리 모델을 등록하는 메모리 구성 단계; 메모리 테스트에 적용할 알고리즘을 고장별로 선택하거나 종래의 알고리즘 중에서 선택하는 알고리즘 구성 단계 및 상기의 선택된 메모리 모델 및 테스트 알고리즘을 적용하여 시스템 온 칩에 내장 가능한 BIST Verilog 파일을 생성 및 출력하는 BIST IP 생성 단계를 포함하여 이루어짐에 기술적 특징이 있다.The memory self test circuit generator may include receiving memory model configuration information for memory self test and describing a memory model; A memory configuration step of registering a generated memory model for testing in the memory model description step; Algorithm configuration step for selecting an algorithm to be applied to the memory test by fault or a conventional algorithm, and BIST IP generation step for generating and outputting a BIST Verilog file embedded in a system on chip by applying the selected memory model and test algorithm. There is a technical feature made to include.

따라서, 본 발명의 메모리 자체 테스트 회로 생성기는 사용자에게 메모리 구조와 메모리 테스트 알고리즘의 정보를 입력받아 자동으로 BIST IP를 생성함으로써 반도체 집적 메모리의 모델 및 개수에 상관없이 효율적으로 테스트할 수 있는 효과가 있다.Therefore, the memory self test circuit generator according to the present invention has an effect of efficiently testing regardless of the model and the number of semiconductor integrated memories by automatically generating a BIST IP by receiving information of a memory structure and a memory test algorithm from a user. .

메모리 테스트, BIST, 회로 생성기Memory Test, BIST, Circuit Generators

Description

메모리 자체 테스트 회로 생성기{Generator of memory BIST circuit} Generator of memory BIST circuit             

도 1은 테스트를 위한 메모리의 기능모델을 나타낸 도면이다.1 illustrates a functional model of a memory for a test.

도 2는 이중 포트 메모리의 내부구조를 나타낸 도면이다.2 is a diagram illustrating an internal structure of a dual port memory.

도 3은 메모리 자체 테스트 회로 생성기의 동작 순서를 나타낸 도면이다.3 is a diagram illustrating an operation sequence of a memory self test circuit generator.

도 4는 테스트 알고리즘 최적화 순서도를 나타낸 도면이다.4 is a diagram illustrating a test algorithm optimization flowchart.

도 5는 이중 포트 메모리 셀 고장 분류를 나타낸 도면이다.5 is a diagram illustrating a dual port memory cell failure classification.

도 6은 이중 포트 메모리 고장을 검출하는 알고리즘을 나타낸 도면이다.6 is a diagram illustrating an algorithm for detecting a dual port memory failure.

도 7은 입력, 출력 신호를 모두 정의 했을 때의 이중 포트 메모리 구조도이다.7 is a diagram illustrating the structure of a dual port memory when both input and output signals are defined.

도 8은 사용자가 원하는 신호만을 선택해 만든 이중 포트 메모리 구조도의 하나의 실시예이다.FIG. 8 is an embodiment of a dual port memory structure diagram created by selecting only a signal desired by a user.

도 9는 도 7에 표현된 신호들의 기능을 나타낸 도면이다.FIG. 9 is a diagram illustrating functions of signals represented in FIG. 7.

도 10은 다중 포트 메모리 구조를 나타낸 도면이다.10 is a diagram illustrating a multi-port memory structure.

도 11은 단일 포트 메모리의 BIST IP 구조를 나타낸 도면이다.11 is a diagram illustrating a BIST IP structure of a single port memory.

도 12는 다중 포트 메모리의 BIST IP 구조를 나타낸 도면이다.12 illustrates a BIST IP structure of a multi-port memory.

도 13은 플래시 메모리를 테스트하기 위한 BIST 구조를 나타낸 도면이다.13 illustrates a BIST structure for testing a flash memory.

도 14는 플래시 메모리 BIST 제어부의 테스트모드 상태도이다.14 is a test mode state diagram of a flash memory BIST controller.

도 15는 플래시 메모리 BIST 제어부의 분석모드 상태도이다.15 is an analysis mode state diagram of a flash memory BIST controller.

도 16은 플래시 메모리 BIST 테스트 패턴 생성부의 상태도이다.16 is a state diagram of a flash memory BIST test pattern generator.

도 17은 고장 모델을 선택하여 March 알고리즘을 생성하는 툴을 나타낸 도면이다.17 is a diagram illustrating a tool for selecting a failure model and generating a March algorithm.

도 18은 GenMBC의 전체 사용자 인터페이스를 나타낸 도면이다.18 is a view showing the entire user interface of GenMBC.

도 19는 메모리 모델 생성 사용자 인터페이스를 나타낸 도면이다.19 illustrates a memory model generation user interface.

도 20은 메모리 모델의 읽기/쓰기 동작 파형의 실시예를 나타낸 도면이다.20 is a diagram illustrating an embodiment of a read / write operation waveform of a memory model.

도 21은 메모리 모델 등록 사용자 인터페이스를 나타낸 도면이다.21 is a diagram illustrating a memory model registration user interface.

도 22는 테스트 알고리즘 적용 사용자 인터페이스를 나타낸 도면이다.22 is a diagram illustrating a test algorithm application user interface.

<도면의 주요부분에 대한 부호의 설명>           <Description of the symbols for the main parts of the drawings>

100 : GenMBC 설정 정보 110 : GenMBC     100: GenMBC setting information 110: GenMBC

120 : 메모리 BIST IP 200 : Memory Model 메뉴     120: Memory BIST IP 200: Memory Model Menu

210 : Memory Config 메뉴 220 : Algorithm Config 메뉴     210: Memory Config Menu 220: Algorithm Config Menu

230 : MBIST Gen 메뉴     230: MBIST Gen menu

본 발명은 메모리 자체 테스트 회로 생성기에 관한 것으로, 보다 자세하게는 사용자에게 메모리 구조와 메모리 테스트 알고리즘의 정보를 입력받아 자동으로 BIST(Built-In Self Test) IP(Intellectual property)를 생성해 주는 CAD 툴에 관한 것이다. The present invention relates to a memory self-test circuit generator, and more particularly, to a CAD tool that generates a BIST (Built-In Self Test) intellectual property by receiving information of a memory structure and a memory test algorithm from a user. It is about.

반도체 집적 회로의 집적도의 증가로 인한 다수의 내장된 메모리를 테스트하기 위해서는 집적회로의 입출력 핀으로부터 직접 접근할 수 없기 때문에 점점 더 복잡하고 구현이 어려워지게 된다. 상기와 같은 문제점을 해결하기 위해서 테스트 용이화 설계(Design For Testability) 기법을 적용한 칩 설계 기법이 도입되게 되었다. 테스트 용이화 설계 기법은 칩 내부 노드들의 관측 용이도(observability)와 조절 용이도(controllability)가 향상되도록 설계하는 방법으로 스캔 기법, BIST 기법, Ad-hoc 기법 등이 있다. 특히, BIST 기법은 칩의 동작 주파수에서 테스트가 수행 가능하므로 테스트 소요시간이 적게 걸리며, 테스트 응답의 비교를 위해 부수적인 테스트 장비가 필요하지 않다는 장점을 지니고 있다. 이러한 장점으로 인하여 많은 칩에서 BIST 기법을 적용하고 있다.Testing of a large number of embedded memories due to the increased integration of semiconductor integrated circuits becomes increasingly complex and difficult to implement because they cannot be accessed directly from the input and output pins of the integrated circuit. In order to solve the above problems, a chip design technique using the design for testability technique has been introduced. Testability design techniques are designed to improve the observability and controllability of in-chip nodes. Scanning, BIST, and Ad-hoc techniques are used. In particular, the BIST technique takes less time because the test can be performed at the operating frequency of the chip, and has the advantage that no additional test equipment is required to compare the test response. Because of these advantages, many chips apply the BIST technique.

이러한 칩들을 이용하여 하나의 시스템을 구성할 때 기판 수준의 테스팅 또한 필요하다. 기판 수준 테스팅은 표면장착(surface mount) 기술의 발달로 칩간의 연결선들이 표면으로 드러나지 않는 경우가 증가함에 따라 테스팅의 어려움도 증가하게 되었다. 따라서, 이를 해결하기 위한 설계 기법이 필요하게 되었으며 기판 수준에서의 테스팅을 지원할 수 있는 테스트 용이화 설계 기법 기술이 현재까지 많이 연구되고 있다.Substrate-level testing is also required when constructing a system using these chips. Substrate-level testing has increased the difficulty of testing as the surface-to-chip technology has increased the number of interconnects between chips. Therefore, a design technique to solve this problem is required, and a lot of researches on a testability design technique that can support testing at the substrate level have been studied.

실제 메모리에서의 고장은 매우 다양한 형태로 나타나게 된다. 따라서 메모리의 정상적인 동작에 영향을 미칠 수 있는 고장의 모든 경우에 대해서 테스트를 수행한다는 것은 실질적으로 불가능하다. 그러나 메모리 테스트의 목적은 특수한 경우를 제외하고는 고장의 유형이나 위치를 파악하기 보다는 단순히 고장의 발생 유무를 파악하는 것이다. 그러므로 일반적인 메모리 테스트에서의 메모리 테스트는 먼저 메모리의 구조를 기능 모델로 단순화시킨다. Failures in real memory can take many forms. Therefore, it is practically impossible to perform a test for all cases of failure that may affect the normal operation of the memory. However, the purpose of the memory test is to determine whether a failure has occurred, rather than identifying the type or location of the failure, except in special cases. Therefore, memory test in general memory test first simplifies the structure of memory into functional model.

도 1은 테스트를 위한 메모리의 기능모델을 나타낸 도면이다. 이 경우 메모리는 메모리 셀 배열(memory cell array), 주소 디코더(address decoder), 읽기/쓰기 회로(read/write logic)로 구성된다. 각각의 모듈에서 발생 가능한 고장들은 발생 위치에 따라 나눌 수 있다. 이러한 기능적 모델에서 발생 가능한 고장들은 크게 주소 디코더 고장(address decoder fault), 고착 고장(stuck-at fault), 천이 고장(transition fault), 결합 고장(coupling fault) 등으로 분류할 수 있다. 고착 고장 및 천이고장은 하나의 메모리 셀을 고려한 고장 모델이고, 결합 고장은 두 개의 셀을 함께 고려한 고장 모델이다.1 illustrates a functional model of a memory for a test. In this case, the memory is composed of a memory cell array, an address decoder, and read / write logic. The faults that can occur in each module can be divided according to where they occur. The faults that can occur in this functional model can be classified into address decoder faults, stuck-at faults, transition faults, and coupling faults. Fixing failure and transition failure are failure models considering one memory cell, and combined failure is a failure model considering two cells together.

주소 디코더 고장은 특정 주소로 메모리의 어떤 셀도 접근할 수 없는 고장과 한 주소가 두 개의 메모리 셀을 접근하는 고장, 그리고 서로 다른 주소로 하나의 메모리 셀을 접근하는 고장으로 나뉘어 진다. An address decoder failure is divided into a failure in which no cell in memory can access a specific address, a failure in which one address accesses two memory cells, and a failure in accessing one memory cell at different addresses.

고착 고장은 메모리 셀의 값이 논리값 0이나 1로 고정되어 그 논리 값이 변하지 않는 고장으로서, 논리값이 0에 고정되는 고착-0(stuck-at-0) 고장과 1에 고정되는 고착-1(stuck-at-1) 고장이 있다. 고착 고장을 검출하기 위한 테스트는 각 각의 모든 셀에 0과 1을 읽고 쓸 수 있어야 한다. A fixation fault is a fault in which the value of a memory cell is fixed at a logic value of 0 or 1 and the logic value does not change. A fix-at-0 fault at which a logic value is fixed at 0 and a fixation at 1 is fixed. 1 (stuck-at-1) failure. Tests to detect stuck failures should be able to read and write 0 and 1 to each and every cell.

천이 고장은 메모리 셀의 논리 값이 0에서 1(상향 천이), 또는 1에서 0(하향 천이)으로의 천이가 되지 않는 고장이다. 천이 고장을 검출하기 위한 테스트는 각각의 모든 셀에 상향 천이와 하향 천이를 일으킬 수 있어야 하고, 다른 천이가 더 이상 발생되기 전에 셀의 값을 읽을 수 있어야 한다. 결합 고장은 특정 메모리 셀에서 논리 값의 천이가 일어날 때, 이 셀과 연관된 다른 메모리 셀의 값이 변하는 고장이다. A transition failure is a failure in which the logic value of a memory cell does not transition from 0 to 1 (upward transition) or 1 to 0 (downward transition). Tests to detect transition failures should be able to cause upward and downward transitions in each and every cell, and be able to read the value of the cell before another transition occurs anymore. Coupling failures are failures in which the value of another memory cell associated with that cell changes when a logical value transition occurs in a particular memory cell.

결합 고장에는 한 셀의 천이가 다른 셀의 내용을 바꾸는 반전 결합 고장(inversion coupling fault)과 한 셀의 천이가 다른 셀의 내용을 0이나 1의 논리 값으로 고정시키는 동행 결합 고장(idempotent coupling fault)이 있다. 결합 고장 <↑;1> 은 결합 셀에서 상향 천이가 발생할 때 피결합 셀의 값이 1로 고착되는 고장이고, <↑;0> 고장은 결합 셀에서 상향 천이가 발생할 때, 피결합 셀의 값이 0으로 고착되는 고장이다. <↓;0> 고장과 <↓;1> 고장은 결합 셀에서 하향 천이가 발생할 때, 피결합 셀의 값이 각각 0과 1로 고착되는 고장이다. 결합 고장을 검출하기 위해서는 발생 가능한 모든 경우의 결합 고장을 활성화시키고, 결합된 셀에 어떤 값을 쓰기 전에 이를 읽어볼 수 있으면 된다.Coupling faults include an inversion coupling fault where the transition of one cell changes the contents of another cell, and an intimate coupling fault where the transition of one cell fixes the contents of the other cell to a logical value of zero or one. There is this. Coupling failure <↑; 1> is a failure where the value of the coupled cell is fixed to 1 when an uplink transition occurs in the combined cell, and a <↑; 0> fault is the value of the combined cell when an upshift occurs in the combined cell. This is a fault that is stuck to zero. <↓; 0> faults and <↓; 1> faults are faults in which the value of the coupled cell is fixed to 0 and 1, respectively, when a downward transition occurs in the combined cell. In order to detect a coupling failure, it is necessary to activate the coupling failure in all possible cases and read it before writing any value to the combined cell.

메모리는 위치하는 곳에 따라 크게 독립형(stand-alone) 메모리와 내장형(embedded) 메모리로 구분할 수 있다. 내장형 메모리는 입출력 신호를 칩의 외부에서 제어하거나 관찰하여야 하기 때문에 독립형 메모리보다 테스트하기가 매우 어렵다. 또한, 앞에서 설명한 바와 같이 메모리 자체의 구조적 특성상 일반적으 로 사용되는 고착 고장(stuck-at fault) 모델로는 검출할 수 없는 복잡한 고장 형태들이 발생하기 때문에 메모리의 고장을 검출하기 위해서는 많은 양의 테스트 패턴을 인가해야만하고, 일반적으로 메모리 BIST 기법을 이용하여 테스트하는 것이 불문율로 받아들여진다.The memory can be divided into stand-alone memory and embedded memory according to where it is located. Built-in memory is more difficult to test than stand-alone memory because the input and output signals must be controlled or observed outside the chip. In addition, as described above, due to the structural characteristics of the memory itself, a large number of test patterns are needed to detect a memory failure since complex fault forms occur that cannot be detected by a commonly used stuck-at fault model. It is generally acceptable to test using the memory BIST technique.

상기의 메모리 고장들을 검출할 수 있는 March 기반의 다양한 메모리 테스트 알고리즘들이 현재까지 많이 개발되었다. 현재 널리 사용되고 있는 March C- 테스트 알고리즘은 상기의 주소 디코더 고장, 고착 고장, 천이 고장, 결합 고장 등을 모두 검출할 수 있으며, 그 알고리즘은 다음과 같이 표시된다.Various memory test algorithms based on March that can detect the above memory failures have been developed so far. The March C-test algorithm, which is currently widely used, can detect all of the above address decoder failures, stuck failures, transition failures, coupling failures, and the like.

↓(w0); ↓(r0,w1); ↓(r1,w0); ↑(r0, w1); ↑(r1, w0); ↑(r0)  ↓ (w0); ↓ (r0, w1); ↓ (r1, w0); ↑ (r0, w1); ↑ (r1, w0); ↑ (r0)

M0 M1 M2 M3 M4 M5     M0 M1 M2 M3 M4 M5

알고리즘에서 사용된 기호 ↓, ↑, w0, w1, r0, r1의 정의는 다음과 같다.The definitions of the symbols ↓, ↑, w0, w1, r0, and r1 used in the algorithm are as follows.

↓ : 메모리의 주소를 높은 주소에서 낮은 주소로 감소↓: Reduce the memory address from high address to low address

↑ : 메모리의 주소를 낮은 주소에서 높은 주소로 증가↑: Increase memory address from low to high

w0 : 메모리 셀에 논리값 0 쓰기w0: Write logical value 0 to memory cell

w1 : 메모리 셀에 논리값 1 쓰기w1: Write logical value 1 to memory cell

r0 : 메모리 셀에서 논리값 0 읽기r0: read logical value 0 from memory cell

r1 : 메모리 셀에서 논리값 1 읽기r1: read logical value 1 from a memory cell

예를 들어 M1 동작은 메모리 주소를 감소시키면서 현재 주소에 해당하는 셀 에 논리값 0을 읽고 논리값 1을 쓰는 동작이다. For example, M1 operation decreases the memory address and reads logical value 0 and writes logical value 1 to the cell corresponding to the current address.

메모리는 읽고 쓰는 단위에 따라 비트 단위의 메모리와 워드 단위의 메모리로 구분할 수 있는데 워드단위의 메모리는 비트 단위의 메모리와는 달리 워드 단위로 읽기와 쓰기가 일어나게 된다. 워드는 두 개 이상의 비트로 구성되므로 워드 단위의 메모리 테스트는 하나의 워드 내에서 발생될 수 있는 고장 마스킹(fault masking)의 문제를 고려해야만 한다. 이러한 워드단위의 메모리 테스트에서 하나의 비트 패턴만으로는 워드 내에서 비트간에 발생할 수 있는 고장 마스킹의 문제를 해결할 수 없으므로 이 고장들을 검출하기 위해서는 배경 데이터(background data)라고 불리는 비트 패턴들이 필요하다. 배경 데이터로 사용될 수 있는 비트 패턴들은 앞에서 언급한 고장 마스킹 문제를 해결할 수 있어야만 하며, 필요한 비트 패턴들의 수는 한 워드의 비트 수에 의해 결정된다. 한 워드의 비트 수가 m이라면 [log2m]+1개 이상의 배경 데이터가 사용되어야 한다.Memory can be divided into memory in bit unit and memory in word unit according to the unit of reading and writing. In contrast to the unit of memory, the unit of memory reads and writes in units of words. Since a word consists of two or more bits, word-by-word memory tests must take into account the problem of fault masking that can occur within one word. In this word-based memory test, only one bit pattern does not solve the problem of fault masking that may occur between bits in a word. Therefore, bit patterns called background data are required to detect these faults. Bit patterns that can be used as background data must be able to solve the above-mentioned fault masking problem, and the number of required bit patterns is determined by the number of bits in one word. If the number of bits in one word is m, then [log2m] + one or more background data should be used.

도 2는 다중 포트 메모리의 한 종류인 2-읽기/2-쓰기가 가능한 이중 포트 메모리의 내부구조를 나타낸 도면이다. 다중 포트 메모리는 하나의 공통된 메모리 셀 배열과 이를 접근할 수 있는 복수 개의 입출력 회로로 구성된다. 대부분의 다중 포트 메모리 테스트 알고리즘들은 다중 포트 메모리를 여러 개의 단일 포트 메모리로 여기고 각각의 포트에 대해 독립적으로 기존의 단일 포트 메모리 테스트를 위한 알고리즘을 이용하여 테스트를 수행한다. 따라서 기존의 다중 포트 메모리 테스트 알고리즘을 이용하여 포트수가 P개인 다중 포트 메모리를 시간 복잡도가 T인 단일 포트 메모리 테스트 알고리즘을 이용하여 테스트하는 데는 P*T의 시간이 소요된다. 기존의 다중 포트 메모리 테스트 알고리즘들은 다중 포트 메모리를 여러개의 단일 포트 메모리의 조합으로 여기기 때문에 테스트 수행 시간이 포트수에 비례하는 문제점을 갖고 있다.FIG. 2 is a diagram illustrating the internal structure of a dual-port memory capable of 2-read / 2-write, which is a type of multi-port memory. The multi-port memory consists of one common memory cell array and a plurality of input / output circuits that can access it. Most multi-port memory test algorithms consider multi-port memory as multiple single-port memory and perform tests using the algorithm for existing single-port memory test independently for each port. Therefore, it takes P * T time to test the multi-port memory with P ports using the single-port memory test algorithm with a time complexity of T using the existing multi-port memory test algorithm. Existing multi-port memory test algorithms consider the multi-port memory as a combination of several single-port memories, and thus, test execution time is proportional to the number of ports.

종래의 대부분의 상용 툴들은 생성된 회로를 게이트 수준의 회로로 제공하기 때문에 사용자가 선택적으로 사용할 수 있는 BIST 관련 명령어를 회로에 추가하기 어렵다는 단점이 있었다.Most commercially available tools have a disadvantage in that it is difficult to add BIST-related instructions that can be selectively used by a user because the generated circuit is provided as a gate level circuit.

종래 기술인 대한민국 공개특허 제10-2000-0051283호의 반도체 메모리 테스트 장치는 테스트 과정을 단순화하고 패키지 제작이 용이하도록 하여 메모리 테스트를 효율적으로 진행할 수 있도록 한 반도체 메모리의 테스트 장치에 관한 것으로 게이트 수준의 테스트 회로를 제공하기 때문에 사용자가 선택적으로 사용할 수 있는 BIST 관련 설정의 여지가 없으며 DRAM 메모리의 테스트에 한한다는 단점이 있었다.The conventional semiconductor memory test apparatus of the Republic of Korea Patent Publication No. 10-2000-0051283 relates to a test device of the semiconductor memory to simplify the test process and facilitate the manufacture of the package so that the memory test can be efficiently performed, the test circuit at the gate level Because of this, there is no room for BIST-related setting that can be selectively used by the user, and it was limited to testing DRAM memory.

또한 종래기술인 대한민국 공개특허 제10-2000-7014772호의 사용자 정의 메모리 내장형 자체 시험 회로의 자동 생성방법은 메모리 자체 테스트를 위한 회로를 자동으로 생성하는 툴을 제공하고 있으나, 세부적인 내장형 메모리 타입별 BIST 동작에 대한 세부적인 기재가 없으며 특히, 플레시 메모리에 대한 테스트를 고려하고 있지 않으며, Verilog-HDL 코드로 기술된 BIST IP를 출력하지 않는 등의 문제점이 있었다.In addition, the automatic generation method of a user-defined memory embedded self test circuit of the Republic of Korea Patent Publication No. 10-2000-7014772 of the prior art provides a tool for automatically generating a circuit for the memory self test, but detailed BIST operation for each embedded memory type There is no detailed description of, and in particular, it does not consider the test of the flash memory, there is a problem such as not outputting the BIST IP described in Verilog-HDL code.

따라서, 본 발명은 상기와 같은 종래 기술의 제반 단점과 문제점을 해결하기 위한 것으로, 사용자에게 메모리 구조와 메모리 테스트 알고리즘의 정보를 입력받아 자동으로 BIST IP를 생성하여 반도체 집적 메모리를 효율적으로 테스트할 수 있도록 하는 메모리 자체 테스트 회로 생성기를 제공함에 본 발명의 목적이 있다.
Accordingly, the present invention is to solve the above-mentioned disadvantages and problems of the prior art, it is possible to efficiently test the semiconductor integrated memory by automatically generating the BIST IP by receiving the information of the memory structure and the memory test algorithm to the user It is an object of the present invention to provide a memory self-test circuit generator.

본 발명의 상기 목적은 기판 수준의 메모리 자체 테스트 회로를 자동으로 생성하기 위한 방법에 있어서, 메모리 자체 테스트를 위한 메모리 모델 설정 정보를 입력 받아 메모리 모델을 기술하는 단계; 상기 메모리 모델 기술 단계에서 테스트하기 위해 생성된 메모리 모델을 등록하는 메모리 구성 단계; 메모리 테스트에 적용할 알고리즘을 고장별로 선택하거나 종래의 알고리즘 중에서 선택하는 알고리즘 구성 단계 및 상기의 선택된 메모리 모델 및 테스트 알고리즘을 적용하여 시스템 온 칩(SoC)에 내장 가능한 BIST Verilog 파일을 생성 및 출력하는 BIST IP 생성 단계를 포함하여 이루어진 메모리 자체 테스트 회로 생성기에 의해 달성된다.According to an aspect of the present invention, there is provided a method for automatically generating a board-level memory self test circuit, the method comprising: describing a memory model by receiving memory model setting information for memory self test; A memory configuration step of registering a generated memory model for testing in the memory model description step; BIST that generates and outputs a BIST Verilog file that can be embedded in a system on chip (SoC) by applying the selected memory model and test algorithm to the algorithm configuration step of selecting an algorithm to be applied to a memory test by fault or from among conventional algorithms. This is accomplished by a memory self test circuit generator comprising an IP generation step.

본 발명의 상기 목적과 기술적 구성 및 그에 따른 작용효과에 관한 자세한 사항은 본 발명의 바람직한 실시예를 도시하고 있는 도면을 참조한 이하 상세한 설명에 의해 보다 명확하게 이해될 것이다.Details of the above object and technical configuration of the present invention and the effects thereof according to the present invention will be more clearly understood by the following detailed description with reference to the drawings showing preferred embodiments of the present invention.

도 3은 메모리 자체 테스트 회로 생성기(Generator of memory BIST cuicuit: GenMBC, 이하 GenMBC라 칭함)의 동작 순서를 나타낸 도면이다. GenMBC는 테스트하고자 하는 메모리의 종류와 적용시킬 알고리즘을 선택해 입력하면 GenMBC는 사용자 로부터 받은 정보의 전략적 적용을 통해 Verilog-HDL 코드 형태의 BIST IP를 생성하게 된다. GenMBC의 설정파일 부분에서는 크게 세 부류로 구분된다. 첫 번째로 메모리 모델을 구분하는 부분으로서 단일포트 메모리, 다중포트 메모리, 플래시 메모리 중 테스트할 메모리를 선택하며, 선택한 메모리에 입력, 출력 핀의 이름과 핀의 크기를 정의하고 메모리의 읽기, 쓰기 시의 타이밍을 기술해 준다. 두 번째로 GenMBC는 여러 개의 같은 사이즈의 메모리 BIST IP가 지원되므로, 테스트 하고자 하는 메모리 모델 개수를 입력한다. 마지막으로 적용할 알고리즘과 배경데이터, 컨트롤 신호 등이 입력되면 모든 설정내용을 전략적으로 적용시켜 Verilog-HDL로 기술된 BIST IP를 생성해 낸다. FIG. 3 is a diagram illustrating an operation procedure of a generator of memory BIST cuicuit (GenMBC, hereinafter referred to as GenMBC). GenMBC selects the type of memory to test and the algorithm to apply, and GenMBC generates BIST IP in Verilog-HDL code form through strategic application of information received from the user. In the configuration file part of GenMBC, there are three main categories. The first part of memory model classification is to select memory to test among single-port memory, multi-port memory, and flash memory, define input and output pin names and pin size in selected memory, and read and write memory. Describe the timing of the Second, since GenMBC supports multiple memory BIST IPs of the same size, enter the number of memory models to test. Finally, when the algorithm, background data, control signal, etc. to be applied are input, all settings are applied strategically to generate BIST IP described in Verilog-HDL.

도 4는 테스트 알고리즘 최적화 순서도를 나타낸 도면이다. 종래에 선보인 March 알고리즘이 아닌 사용자가 원하는 고장 검출을 위한 알고리즘을 생성하려면 시간과 복잡도면에서 볼 때 상당히 많은 시간이 소비되던 단점을 개선하여 본 발명은 대표적인 고장 모델인 고착 고장(Stuck-at Fault), 천이 고장(Transition Fault), 두 셀 간의 고장(Coupling Fault), 주소 디코더 고장(Address Decoder Fault) 등의 메모리 고장을 검출 할 수 있다. 종래의 March 알고리즘 뿐만 아니라 사용자가 원하는 고장 알고리즘의 최적화와 사용자가 원하는 알고리즘을 직접 기술하여 적용시킬 수 있다.4 is a diagram illustrating a test algorithm optimization flowchart. In order to generate algorithms for detecting faults desired by the user rather than the conventional March algorithm, the present invention improves the disadvantage that a large amount of time is consumed in terms of time and complexity, and thus the present invention provides a typical fault model, a stuck-at fault. Memory failures such as transition faults, coupling faults between two cells, and address decoder faults can be detected. In addition to the conventional March algorithm, the optimization of the failure algorithm desired by the user and the desired algorithm can be directly described and applied.

도 5는 이중 포트 메모리 셀 고장 분류를 나타내고 있다. 이중 포트 관련 고장은 도 5에서 볼 수 있듯이 두 포트가 하나의 셀에 동시에 접근할 때 생기는 고장 (2PF1), 하나의 셀이 특정값을 가지고 있으면서 다른 셀에 두 포트가 동시에 접근 할 때 생기는 고장(2PF2a), 두 개의 포트를 통하여 동시에 하나의 셀에 접근할 때 다른 셀에 고장이 발생하는 경우의 고장 (2PF2v), 각각의 포트를 통해 하나의 셀에는 쓰기 동작을 하고, 다른 하나의 포트로는 다른 셀에 읽기 동작을 했을 때, 읽기 동작의 셀이 바뀌게 되는 고장(2PF2av)이 있다.5 shows a dual port memory cell failure classification. As shown in FIG. 5, a dual port related failure occurs when two ports access one cell at the same time (2PF1), and a failure occurs when two ports simultaneously access another cell while one cell has a certain value. 2PF2a), failure when two cells fail simultaneously when accessing one cell at the same time (2PF2v), write operation to one cell through each port, and another port When a read operation is performed to another cell, there is a failure (2PF2av) that causes the cell of the read operation to be changed.

도 6은 도 5와 같은 이중 포트 메모리 고장을 검출하는 알고리즘을 나타내고 있다. GenMBC는 이 알고리즘과 더불어 사용자가 원하는 알고리즘을 넣을 수 있는 사용자 정의 알고리즘 부분을 제공한다.FIG. 6 illustrates an algorithm for detecting a dual port memory failure as shown in FIG. 5. GenMBC provides this algorithm as well as a user-defined algorithm part that allows you to put your own algorithm.

GenMBC를 통해 모델링된 이중 포트 메모리의 구조는 포트의 입력, 출력 신호에 특정 규정 없이 원하는 메모리 모델의 특징에 따라 입력, 출력 신호들을 정의할 수 있다. 도 7은 입력, 출력 신호를 모두 정의 했을 때의 이중 포트 메모리 구조도이며 이 구조에서 사용자가 원하는 이중 포트 메모리 입력, 출력 신호를 택해 이중 포트 메모리를 설계할 수 있다. 도 8은 사용자가 원하는 신호만을 선택해 만든 이중 포트 메모리 구조의 하나의 실시예이다. 도 9는 도 7에 표현된 신호들의 기능을 나타낸 것이다. 도 8의 사용자 신호 정의에 따른 이중 포트에서는 제어신호, 입력, 출력신호 뿐만 아니라 그 신호들의 비트너비, 읽기, 쓰기 동작 기술 또한 정의할 수 있다. 이와 같이 사용자가 테스트하기 원하는 이중 포트 메모리 모델을 정의할 수 있고 정의한 모델을 용이하게 테스트할 수 있도록 BIST IP를 제공한다.The dual port memory structure modeled through GenMBC can define the input and output signals according to the characteristics of the desired memory model without specifying the port input and output signals. 7 is a dual port memory structure diagram when both input and output signals are defined. In this structure, a dual port memory can be designed by selecting a dual port memory input and output signal desired by a user. FIG. 8 is an exemplary embodiment of a dual port memory structure in which only a signal desired by a user is selected. 9 illustrates the function of the signals represented in FIG. In the dual port according to the user signal definition of FIG. 8, not only a control signal, an input and an output signal but also a bit width, read and write operation technique of the signals may be defined. As such, you can define the dual-port memory model you want to test and provide BIST IP to facilitate testing of the defined model.

다중 포트 메모리의 고장은 여러 포트로 인한 하나의 셀에 대한 고장과 두개의 셀이 연관된 고장으로 구분지을 수 있다. GenMBC는 다중 포트 메모리 고장을 검출하기 위해 March spPF 알고리즘을 기본적으로 제공하며 사용자가 원하는 알고리 즘을 적용 시킬 수 있도록 BIST IP를 제공한다.The failure of a multi-port memory can be divided into a failure for one cell due to multiple ports and a failure in which two cells are associated. GenMBC basically provides March sp PF algorithm to detect multi-port memory failures and provides BIST IP to apply the algorithm that user wants.

도 10은 다중 포트 메모리 구조를 나타낸 도면으로, 이중 포트 메모리와 마찬가지로 사용자 정의에 의해 입력, 출력 신호를 조절할 수 있다. FIG. 10 is a diagram illustrating a multi-port memory structure, in which input and output signals can be adjusted by user definition like a dual port memory.

도 11은 단일 포트 메모리의 BIST IP 구조를 나타낸 도면이다. GenMBC에 의해 생성된 메모리 BIST IP는 IP 전체를 제어하는 제어 모듈(CONTROL Module)과 테스트 패턴을 인가하기 위한 주소를 생성 하는 주소 생성 모듈(AGL Module), 테스트 패턴을 만들어 내는 데이터 생성 모듈(DGL Module), 마지막으로 테스트 패턴을 인가한 후 고장 유무를 판단하기 위해 메모리로부터 데이터를 받아 비교하는 데이터 비교 모듈(DCL Module)로 나뉜다. 11 is a diagram illustrating a BIST IP structure of a single port memory. The memory BIST IP generated by GenMBC is a control module that controls the entire IP, an address generation module (AGL Module) that generates an address for applying a test pattern, and a data generation module (DGL Module) that produces a test pattern. Finally, it is divided into data comparison module (DCL module) which receives data from memory and compares it to determine the failure after applying test pattern.

제어 모듈은 테스트 진행 과정 중에 메모리 BIST IP의 각 모듈의 동작을 제어하는 회로이다. 이 모듈은 전체적인 테스트 시작과 종료 시점을 판단하며, 각각의 모듈에 적절한 신호를 인가하여 테스트가 원활하게 돌아갈 수 있도록 총체적인 역할을 담당한다. 제어 모듈은 설정파일에 입력된 알고리즘과 배경데이터는 각각의 상태머신이 존재하며, 알고리즘과 배경데이터를 상태머신으로 분석해 메모리의 주소가 끝날 때 까지 알고리즘은 단계적으로 반복하여 알고리즘 부분의 각 단계에서 적절한 배경 데이터를 인가할 수 있도록 데이터 생성 모듈 (DGL Module)에 DGLEnable 신호를 주고, 테스트 데이터가 메모리의 정확한 주소에 읽기, 쓰기를 할 수 있도록 주소를 생성해주는 주소 생성 모듈 (AGL Module)에 AGLEnable 신호를 만들어 준다. 마지막으로 고장의 유무를 판단하는 데이터 비교 모듈 (DCL Module)에 DCLEnable 신호를 주어 고장을 판단할 수 있는 구조로 동작한다.The control module is a circuit that controls the operation of each module of the memory BIST IP during the test process. This module determines the overall start and end of the test, and plays an overall role in ensuring that the test runs smoothly by applying the appropriate signal to each module. In the control module, the algorithm and background data inputted to the configuration file exist for each state machine, and the algorithm and background data are analyzed with the state machine, and the algorithm is repeated step by step until the address of the memory is completed. The DGLEnable signal is sent to the DGL Module to apply the background data, and the AGLEnable signal is sent to the AGL Module that generates the address so that the test data can read and write to the correct address in memory. Make it. Lastly, DCLEnable signal is applied to the data comparison module (DCL Module) to determine whether there is a failure.

주소 생성 모듈은 테스트 모드시에 제어 모듈로부터 생성되는 신호를 받아 테스트 데이터 값을 정확한 위치에 읽고, 쓰기할 수 있도록 메모리의 0번지 주소에서부터 마지막 주소까지 순차적으로 증가, 감소할 수 있는 카운터를 만들었으며 증가 상태에서 감소상태로 변할 때 혹은 감소 상태에서 증가 상태로 변할 때 주소의 보수를 취해 원하는 주소를 생성할 수 있도록 하였다. 또한 여러 개의 메모리가 사용될 경우 현재 테스트가 진행중인 메모리의 주소의 크기에 맞도록 마지막 메모리 주소를 조정할 수 있도록 하였다.The address generation module creates a counter that can sequentially increase and decrease from address 0 to the last address in order to receive the signal generated from the control module in test mode and read and write the test data value in the correct location. When changing from incremental state to decrement state, or from decrement state to incremental state, it is possible to generate the desired address by taking address's complement. In addition, when multiple memories are used, the last memory address can be adjusted to match the size of the address of the memory currently being tested.

데이터 생성 모듈은 제어 모듈에서 발생하는 DGLEnable 신호에 의해 테스트 패턴을 만들어 내는 모듈이다. 현재 테스트가 진행 중인 메모리를 위한 데이터나 배경데이터를 생성해 메모리에 전달한다.The data generation module generates a test pattern by the DGLEnable signal generated from the control module. It generates data or background data for the memory currently being tested and delivers it to the memory.

데이터 비교 모듈은 메모리에서 읽혀진 값과 데이터 비교 모듈에서 생성된 데이터 값을 읽어 비교 수행하는 모듈이다. 메모리에서 읽혀진 값과 데이터 비교 모듈에서 생성된 값이 각종 연산을 통해 결과를 쉬프트 연산에 의해 IEEE 1149.1 또는 IEEE P1500을 통해 외부로 최종 테스트 결과 값을 출력한다.The data comparison module reads and compares the values read from the memory with the data values generated by the data comparison module. The value read from the memory and the value generated by the data comparison module output the final test result value to the outside through IEEE 1149.1 or IEEE P1500 by shifting the result through various operations.

도 12는 다중 포트 메모리의 BIST IP 구조를 나타낸 도면으로, 하나의 비트데이터 입력, 다중 주소 접근 입력과 메모리에서 출력되는 다중 데이터 신호를 갖는 다중 메모리 모델을 GenMBC를 통해 테스트하게 된다. 모든 신호를 담당하는 제어 모듈(CONTROL Module), 다중 포트에서 발생하는 고장을 검출하기 위해 적절한 알고리즘 처리를 위한 알고리즘 모듈 (AlgoGL Module), 알고리즘에 따라 적절한 데이터 값을 메모리에 전달 해주는 데이터 생성 모듈 (DGL Module), 메모리의 값을 읽어와 테스트 패턴과 비교하는 데이터 비교 모듈 (DCL Module), 테스트 패턴을 메모리의 원하는 주소에 인가시키기 위한 주소 생성 모듈 (AGL Module)의 총 다섯 개의 모듈이 다중 포트 메모리 고장을 검출하기 위한 BIST IP를 구성하고 있다.FIG. 12 is a diagram illustrating a BIST IP structure of a multi-port memory, in which a multi-memory model having one bit data input, multiple address access inputs, and multiple data signals output from the memory is tested through GenMBC. Control module that takes care of all signals, AlgoGL module for proper algorithm processing to detect faults occurring in multiple ports, and data generation module that delivers appropriate data values to memory according to algorithm. Module, a data comparison module (DCL module) that reads the value of the memory and compares it to the test pattern, and a total of five modules of the AGL module to apply the test pattern to the desired address of the memory BIST IP is configured to detect

제어 모듈은 BIST 동작 중에 모든 모듈을 제어 하는 모듈로서 전체적인 테스트의 시작과 종료 시점을 판단하며, 각각의 모듈에 도 12와 같이 서브 모듈이 동작하기 알맞은 테스트 동작을 진행되도록 구현되어 있다. 설정 파일에서 기술한 알고리즘을 위한 수행 상태 머신과 각각의 메모리에 대하여 정의한 배경데이터를 위한 배경데이터 상태 머신이 존재한다. 제어 모듈에서 AGLEnable, DCLEnable, DGLEnable, AlgorithmEnable를 각각 인가하면 주소 생성 모듈 (AGL Module), 데이터 비교 모듈 (DCL Module), 데이터 생성 모듈 (DGL Module), 알고리즘 생성 모듈 (AlgoGL Module)이 각각 수행된다.The control module is a module that controls all modules during the BIST operation, and determines the start and end points of the entire test. Each module is implemented to perform a test operation suitable for the sub-module to operate as shown in FIG. 12. There is a performance state machine for the algorithm described in the configuration file and a background data state machine for the background data defined for each memory. When AGLEnable, DCLEnable, DGLEnable, and AlgorithmEnable are applied in the control module, an address generation module (AGL Module), a data comparison module (DCL Module), a data generation module (DGL Module), and an algorithm generation module (AlgoGL Module) are performed.

주소 생성 모듈은 테스트 모드 시에 제어 회로로부터 주소 생성 신호를 받아 카운터 회로를 생성해 메모리의 주소 0번지부터 마지막 주소까지 증가, 감소가 쉽게 이루어지도록 하였고, 또 테스트 패턴을 정확한 주소에 읽고, 쓰기가 가능하도록 하였다. 메모리 주소가 증가 상태에서 감소 상태로 변할때나 감소 상태에서 증가 상태로 변할 때 주소의 보수를 취해 원하는 주소를 생성할 수 있도록 하였으며, 여러 개의 메모리가 사용될 경우 현재 테스트가 진행 중인 메모리의 주소의 크기에 맞도록 마지막 메모리 주소를 조정할 수 있도록 하였다.The address generation module receives the address generation signal from the control circuit in the test mode and generates a counter circuit so that it can be easily increased or decreased from address 0 to the last address of the memory, and the test pattern is read and written to the correct address. It was made possible. When the memory address is changed from the incremented state to the decreased state, or when the memory address is changed from the reduced state to the increased state, the address can be repaired to generate the desired address.When multiple memories are used, the size of the address of the memory currently being tested is determined. The last memory address can be adjusted to fit.

데이터 비교 모듈은 메모리에서 읽혀진 값과 메모리에 쓰기한 값을 비교해 고장의 여부를 판단한다. 고장의 유무는 데이터 비교 모듈 내에서 연산 후 쉬프트 연산에 의해 IEEE 1149.1 또는 IEEE P1500을 통해 외부로 최종 테스트 결과 값을 내보낸다.The data comparison module compares the value read from the memory with the value written to the memory to determine whether there is a failure. The presence of a fault is sent to the final test result value through IEEE 1149.1 or IEEE P1500 by shift operation after calculation in the data comparison module.

데이터 생성 모듈은 알고리즘 생성 모듈(AlgoGL Module)에서 알고리즘 단계에 따라 배경 데이터를 생성해 현재 테스트 진행 중인 메모리에 전달하는 모듈이다.The data generation module is a module that generates background data according to the algorithm level in the AlgoGL module and delivers it to the memory under test.

알고리즘 생성 모듈은 사용자에 의해 기술된 테스트 알고리즘을 분석해 각각의 알고리즘 단계에 맞게 데이터 신호를 인가하는 모듈이다.The algorithm generating module analyzes the test algorithm described by the user and applies a data signal for each algorithm step.

도 13은 플래시 메모리를 테스트하기 위한 BIST 구조를 나타낸 도면이다. 상기 BIST 구조는 크게 제어부(CTR), 테스트 패턴 생성부(TPG), 테스트 collar(MUX) 세부분으로 나눌 수 있다. 제어부는 시리얼 인터페이스를 통해 입력되는 입력 값을 이용해 테스트 패턴 생성부로 보내지는 테스트 명령어를 다룬다. CTR은 BMS신호에 따라 테스트와 분석 두 가지 모드를 생성한다. 13 illustrates a BIST structure for testing a flash memory. The BIST structure can be broadly divided into a control unit (CTR), a test pattern generator (TPG), and a test collar (MUX). The controller handles the test commands sent to the test pattern generator using input values input through the serial interface. CTR generates two modes, test and analysis, depending on the BMS signal.

테스트 모드에서는 도 14의 상태를 통해서 CTR에서 TPG로 built-in 명령어 집합을 보내준다.In the test mode, the state of FIG. 14 sends a set of built-in instructions from the CTR to the TPG.

분석 모드에서는 도 15에서 보는 것과 같은 상태들을 거치면서 테스트 알고리즘을 프로그램 할 수 있고, 도 13의 BSI를 통해 입력된 테스트 명령어를 시프트 할 수 있다.In the analysis mode, the test algorithm may be programmed while passing through the states as shown in FIG. 15, and the test command input through the BSI of FIG. 13 may be shifted.

도 16은 테스트 패턴 생성부(TPG)의 상태를 나타낸 것으로, TPG는 사용자 서술에 의해 주소 순서를 생성하는 역할을 한다. 처음으로 리셋이 되면 Idle 상태에 들어가게 된다. ENA 신호가 들어오면 Ifetch 상태로 가서 테스트 명령어를 가져오 고 분석한다. Exec 상태에서는 read, write, erase 명령어에서 요구되는 타이밍 순서를 생성해 준다. Dfetch 상태에서 플래시 메모리로부터 데이터를 읽어오고, Compare 부분에서 결함이 없는 데이터와 비교해서 만약 결함을 발견할 경우 Wait 상태에서 시리얼 출력을 통해 결함을 알리도록 한다.16 illustrates a state of the test pattern generation unit TPG. The TPG serves to generate an address order by user description. When it is reset for the first time, it enters Idle state. When the ENA signal comes in, it goes to the Ifetch state to get the test command and analyze it. In the Exec state, the timing sequence required for the read, write, and erase commands is generated. The data is read from flash memory in the Dfetch state, and compared to the data without defects in the Compare section, and if a fault is found, the defect is notified through the serial output in the Wait state.

본 발명의 메모리 자체 테스트 회로 생성기는 메모리에 발생하는 고장 모델별로 취사선택하여 최적화 테스트 알고리즘을 생성한다. 상기 최적화 테스트 알고리즘을 생성하는 프로그램은 Windows OS 환경하에서 구현하였으며 소프트웨어 개발툴은 그래픽 사용자 인터페이스의 작성을 위하여 Visual C++ compiler를 사용하였다.The memory self test circuit generator of the present invention generates an optimized test algorithm by selecting and selecting each failure model generated in the memory. The program generating the optimized test algorithm was implemented in a Windows OS environment, and the software development tool used the Visual C ++ compiler to prepare a graphical user interface.

도 17은 고장 모델 ADF(Address Decoder Fault), TF(Transition Fault), SAF(Stuck-at Fault)을 선택하여 March 알고리즘을 생성하는 툴을 나타낸 도면이다. 상기와 같이 고장 모델을 선택을 통하여 최적화된 테스트 알고리즘을 생성하게 된다.FIG. 17 is a diagram illustrating a tool for generating a March algorithm by selecting a failure model address decoder fault (ADF), transition fault (TF), and stuck-at fault (SAF). As described above, an optimized test algorithm is generated by selecting a failure model.

도 18은 GenMBC의 전체 사용자 인터페이스를 나타낸 도면이다. GenMBC, 메모리 BIST Generator는 시스템 온 칩에 내장된 메모리 테스트 RTL 모듈을 생성한다. 생성하기 위한 동작 과정은 다음의 4단계의 과정을 거친다.18 is a view showing the entire user interface of GenMBC. GenMBC, a memory BIST Generator, generates a memory test RTL module embedded in the system on a chip. The operation process to generate is performed in the following four steps.

1. 메모리 모델(Memory Model) 기술 단계에서 메모리 모델을 만들어 준다.1. Memory Model Create a memory model at the technical stage.

1.1 읽기, 쓰기, 읽기/쓰기 포트타입을 정의한다.1.1 Define the read, write and read / write port types.

1.2 입출력 핀들의 대역폭(Bandwidth)과 Enable신호의 액티브(Active) 값을 정의한다.1.2 Defines the bandwidth of the input and output pins and the active value of the enable signal.

1.3 Cycle Editor에서 메모리 동작 방식을 기술해 준다.1.3 Describes how memory works in the Cycle Editor.

2. 메모리 구성(Memory Config) 단계에서 테스트하기 위한 메모리 모델을 등록해 준다.2. Register the memory model for testing in the Memory Config step.

2.1 테스트 할 메모리 모델을 적재한다.2.1 Load the memory model to test.

2.2 테스트 할 모델 종류와 각각의 모델의 개수를 등록한다.2.2 Register the model type to be tested and the number of each model.

2.3 배경 데이터 정보를 입력한다.2.3 Enter background data information.

3. 알고리즘 구성 (MBIST Configuration) 단계에서 적용 알고리즘을 고장별로 선택하거나 기존의 March 알고리즘 중에서 선택하여 준다.3. In the algorithm configuration (MBIST Configuration) step, select the applied algorithm by fault or select from the existing March algorithm.

3.1 User Define Mode 에서는 고장 종류별로 테스트 알고리즘을 선택한다.3.1 User Define Mode selects test algorithm by fault type.

3.2 Select March Algorithm Mode 에서는 기존의 March 알고리즘을 선택하여 적용 할 수 있다.3.2 Select March In Algorithm Mode, the existing March algorithm can be selected and applied.

3.3 Clock 시그널과 Reset 시그널의 이름을 정의한다.3.3 Define the names of the clock and reset signals.

4. MBIST Gen 단계에서 시스템 온 칩에 내장 가능한 BIST Verilog 파일을 생성하여준다.4. Create BIST Verilog file that can be embedded in system on chip at MBIST Gen stage.

4.1 한 종류의 메모리 모델의 경우 BIST Verilog 파일 한개 생성.4.1 Create one BIST Verilog file for one type of memory model.

4.2 한 종류 이상의 메모리 모델의 경우 BIST Verilog 파일이 메모리 모델의 개수만큼 생성.4.2 For more than one type of memory model, BIST Verilog files generate as many memory models.

도 19는 메모리 모델 생성 사용자 인터페이스를 나타낸 도면이다. 메모리 모델을 에디션할 시에 읽기 포트, 쓰기 포트 혹은 읽기/쓰기 포트를 등록한다. 한 개를 등록하면 단일 포트로 동작하며, 포트를 두개 이상으로 등록하면 다중 포트 메 모리 모델로 동작하게 된다. 19 illustrates a memory model generation user interface. Register a read port, write port, or read / write port when you edition a memory model. Registering one acts as a single port, and registering two or more ports acts as a multi-port memory model.

처음으로 메모리 모델 이름을 정의한다. keyword는 model 이며, model_name이 필요하다. 다음으로, 메모리 핀 정의를 한다. 메모리의 핀 정보에 관한 핀 타입 정의 keyword는 address, data_in, data_out, write_en, ram_en, reset 이다. address keyword는 메모리 주소의 이름과 사이즈를 정의한다. data_in은 메모리의 입력 데이터 버스이고 data_out는 메모리의 출력 데이터 버스이다. <name>과 <bit_width>는 각각 address, data_in, data_out의 핀 이름과 사이즈를 정의한다. write_en, read_en, ram_en은 메모리의 컨트롤 신호를 정의한다. <pin>은 각 컨트롤 신호의 이름을 정의한다. 그리고 <assert_state>는 컨트롤 신호의 액티브 상태를 정의하는 것으로서 high 또는 low로 표시한다.First we define the memory model name. The keyword is model, which requires model_name. Next, we define the memory pins. The pin type definition keywords for the pin information of the memory are address, data_in, data_out, write_en, ram_en, and reset. The address keyword defines the name and size of the memory address. data_in is the input data bus of the memory and data_out is the output data bus of the memory. <name> and <bit_width> define the pin names and sizes of address, data_in, and data_out, respectively. write_en, read_en, and ram_en define the control signals in memory. <pin> defines the name of each control signal. The <assert_state> defines the active state of the control signal, which is marked high or low.

다음으로 읽기/쓰기 포트와 동작을 정의한다. 포트의 타입은 read_port, write_port, read_write_port중 하나이다. 포트의 타입 안에는 사이클 타입을 정의한다. 사이클 타입은 read_cycle과 write_cycle로 구성된다. 그리고 각 사이클 타입 안에는 읽기/쓰기 동작이 기술된다.Next, we define the read / write ports and their behavior. The port type is one of read_port, write_port, and read_write_port. Within the type of port you define the cycle type. The cycle type consists of read_cycle and write_cycle. Within each cycle type, read / write operations are described.

도 20은 메모리 모델의 읽기/쓰기 동작 파형의 실시예를 나타낸 도면이다. 상기와 같은 동작 파형으로 작동하는 메모리 모델의 정의는 아래와 같다.20 is a diagram illustrating an embodiment of a read / write operation waveform of a memory model. The definition of the memory model operating with the above operating waveform is as follows.

model RAM1( // 메모리 모델 이름 RAM1 모델 정의 시작model RAM1 (// Memory model name RAM1 Start model definition

address ADDR 4 // address 포트이름 ADDR, bandwidth 4bit address ADDR 4 // address port name ADDR, bandwidth 4bit

data_in DIN 8 // data_in 포트이름 DIN, bandwidth 8bitdata_in DIN 8 // data_in port name DIN, bandwidth 8bit

data_out DOUT 8 // data_out 포트이름 DOUT, bandwidth 8bitdata_out DOUT 8 // data_out port name DOUT, bandwidth 8bit

write_en WEN high // write_en 포트이름 WEN, active highwrite_en WEN high // write_en portname WEN, active high

read_en REN high // read_en 포트이름 REN, active highread_en REN high // read_en portname REN, active high

read_write_port ( // read_write_port 포트타입 정의read_write_port (// read_write_port porttype definition

read_cycle( // read_cycle 읽기 동작 기술read_cycle (// read_cycle read operation description

change ADDR // address 값 변화 표시change ADDR // change of address value

wait // 한 클럭 시간 진행wait // advance one clock time

assert REN //read_en 컨트롤 신호 active 변경assert REN // read_en control signal active change

expect DOUT // data_out 출력 시점 명시expect DOUT // specify when to output data_out

wait // 한 클럭 시간 진행wait // advance one clock time

wait // 한 클럭 시간 진행wait // advance one clock time

))

write_cycle( // write_cycle 쓰기 동작 기술write_cycle (// write_cycle write operation description

change ADDR // address 값 변화 표시change ADDR // change of address value

change DIN // data_in 값 변화 표시change DIN // Display data_in value change

wait // 한 클럭 시간 진행wait // advance one clock time

assert WEN //write_en 컨트롤신호 active 변경assert WEN // write_en control signal active

wait // 한 클럭 사이클 진행wait // proceed one clock cycle

wait // 한 클럭 사이클 진행wait // proceed one clock cycle

))

))

) )

읽기/쓰기 포트와 동작을 정의한 다음 과정은 생성한 메모리 모델을 등록(Memory config)하는 과정이다. 도 21은 메모리 모델 등록 사용자 인터페이스를 나타낸 도면이다. 상기 과정에서는 생성한 메모리 모델을 종류와 개수에 상관없이 등록할 수 있다. 메모리 모델의 종류가 같으면 개수의 상관없이 BIST IP 하나가 생성된다. 반면에 메모리 개수에는 상관없이 다른 종류의 모델이 있다면 메모리 모델의 개수만큼 BIST IP가 생성된다.After defining the read / write port and operation, the next step is to register the created memory model. 21 is a diagram illustrating a memory model registration user interface. In the above process, the generated memory models may be registered regardless of the type and number. If the types of memory models are the same, one BIST IP is generated regardless of the number. On the other hand, if there are other types of models regardless of the number of memories, BIST IPs are generated as many as the number of memory models.

도 22는 마지막 설정 단계인 테스트 알고리즘 적용(MBIST configuration) 사용자 인터페이스를 나타낸 도면이다. 테스트 알고리즘 적용은 User Define Mode에서는 고장별로 AF, SAF, TF, CFin, CFid, Flash Memory 단일 혹은 조합가능하게 선택 할 수 있다. 고장별로 선택을 하게 되면 구현한 프로그램 내부에서는 최적화된 March 시퀀스를 생성해서 실행하게 된다. 그리고 Select March Algorithm은 기존의 March Algorithm을 선택해서 그대로 적용 가능하도록 하였다. 또한 이중 포트 알고리즘 및 다중 포트 알고리즘은 Hamdioui(Journal of Memory Technology, Design and Testing) 등이 제안한 알고리즘을 적용할 수 있다. GenMBC에서 제공해주는 알고리즘이 아닌 사용자가 원하는 알고리즘은 메모리 모델에 상관없이 적용시킬 수 있다. 또한 상기 단계에서는 클럭(Clock) 신호와 리셋(Reset) 신호의 이름을 정의하게 된다.FIG. 22 is a diagram illustrating a test algorithm application (MBIST configuration) user interface which is a final configuration step. FIG. The test algorithm application can be selected single or combination AF, SAF, TF, CFin, CFid, Flash Memory by fault in User Define Mode. Selecting by fault causes the optimized March sequence to be generated and executed inside the implemented program. Select March Algorithm selects the existing March Algorithm and applies it as it is. In addition, the dual-port algorithm and the multi-port algorithm can apply the algorithm proposed by Hamdioui (Journal of Memory Technology, Design and Testing). Algorithm that user wants, not algorithm provided by GenMBC, can be applied regardless of memory model. In this step, names of a clock signal and a reset signal are defined.

최종적으로 도 22에 도시된 왼쪽 메뉴바의 "MBIST Gen" 버튼을 선택하면 지 금까지 설정한 구조에 따른 BIST IP가 Verilog 파일 형식으로 생성되게 된다.Finally, if the "MBIST Gen" button on the left menu bar shown in Figure 22 is selected, the BIST IP according to the structure set up to now is generated in the Verilog file format.

본 발명은 이상에서 살펴본 바와 같이 바람직한 실시예를 들어 도시하고 설명하였으나, 상기한 실시예에 한정되지 아니하며 본 발명의 정신을 벗어나지 않는 범위 내에서 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변경과 수정이 가능할 것이다.Although the present invention has been shown and described with reference to the preferred embodiments as described above, it is not limited to the above embodiments and those skilled in the art without departing from the spirit of the present invention. Various changes and modifications will be possible.

따라서, 본 발명의 메모리 자체 테스트 회로 생성기는 사용자에게 메모리 구조와 메모리 테스트 알고리즘의 정보를 입력받아 자동으로 BIST IP를 생성함으로써 반도체 집적 메모리의 모델 및 개수에 상관없이 효율적으로 테스트할 수 있는 효과가 있다.
Therefore, the memory self test circuit generator according to the present invention has an effect of efficiently testing regardless of the model and the number of semiconductor integrated memories by automatically generating a BIST IP by receiving information of a memory structure and a memory test algorithm from a user. .

Claims (14)

삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 기판 수준의 메모리 자체 테스트 회로를 자동으로 생성하기 위한 테스트 회로 생성기에 있어서, A test circuit generator for automatically generating board-level memory self test circuits, 메모리 자체 테스트를 위한 메모리 모델 설정 정보를 입력받는 메모리 모델부;A memory model unit configured to receive memory model setting information for memory self test; 상기 메모리 모델부에서 테스트하기 위해 생성된 메모리 모델의 테스트 정보를 입력받는 메모리 구성부;A memory component to receive test information of a memory model generated for testing in the memory model unit; 메모리 테스트에 적용할 알고리즘의 종류를 입력받는 알고리즘 구성부; 및 An algorithm component for receiving a type of algorithm to be applied to a memory test; And 상기 선택된 메모리 모델 및 테스트 알고리즘을 적용하여 시스템 온 칩(SoC)에 내장 가능한 비스트-베릴로그(BIST Verilog) 파일을 생성 및 출력하는 엠비스트-겐(MBIST Gen) 실행부MBIST Gen execution unit generating and outputting a BIST Verilog file that can be embedded in a system on a chip (SoC) by applying the selected memory model and test algorithm 를 포함하여 구성되는 메모리 자체 테스트 회로 생성기.Memory self-test circuit generator that is configured to include. 삭제delete 제 11항에 있어서, The method of claim 11, 상기 테스트 회로 생성기는 단일 포트 메모리, 이중 포트 메모리, 다중 포트 메모리 및 플래시 메모리 중 어느 하나를 테스트할 수 있는 것을 특징으로 하는 메모리 자체 테스트 회로 생성기.And the test circuit generator is capable of testing any one of a single port memory, a dual port memory, a multi-port memory, and a flash memory. 삭제delete
KR1020040066950A 2004-08-25 2004-08-25 Generator of memory BIST circuit KR100683436B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040066950A KR100683436B1 (en) 2004-08-25 2004-08-25 Generator of memory BIST circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040066950A KR100683436B1 (en) 2004-08-25 2004-08-25 Generator of memory BIST circuit

Publications (2)

Publication Number Publication Date
KR20060018542A KR20060018542A (en) 2006-03-02
KR100683436B1 true KR100683436B1 (en) 2007-02-20

Family

ID=37126152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040066950A KR100683436B1 (en) 2004-08-25 2004-08-25 Generator of memory BIST circuit

Country Status (1)

Country Link
KR (1) KR100683436B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100727975B1 (en) * 2005-09-10 2007-06-14 삼성전자주식회사 Fault diagnostic apparatus of System on chip and method thereof, SoC capable of fault diagnostic
KR100959055B1 (en) * 2007-02-16 2010-05-20 한국전자통신연구원 System and embedded circuit for built-in self repair and built-in self test and method thereof
KR101460665B1 (en) 2008-07-16 2014-11-12 삼성전자주식회사 SoC DEVICE VERIFICATION MODEL USING MEMORY INTERFACE
KR100951513B1 (en) * 2008-08-13 2010-04-09 연세대학교 산학협력단 Apparatus for generating programmable memory built in self test circuit and method for generating the same

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08262116A (en) * 1995-03-03 1996-10-11 Internatl Business Mach Corp <Ibm> Bist tester for many memories
US5640509A (en) * 1995-10-03 1997-06-17 Intel Corporation Programmable built-in self-test function for an integrated circuit
KR20000033120A (en) * 1998-11-19 2000-06-15 윤종용 Programmable self test system for semiconductor memory device
JP2003332443A (en) * 2002-05-08 2003-11-21 Toshiba Corp Semiconductor integrated circuit and design supporting device as well as test method therefor

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08262116A (en) * 1995-03-03 1996-10-11 Internatl Business Mach Corp <Ibm> Bist tester for many memories
US5640509A (en) * 1995-10-03 1997-06-17 Intel Corporation Programmable built-in self-test function for an integrated circuit
KR20000033120A (en) * 1998-11-19 2000-06-15 윤종용 Programmable self test system for semiconductor memory device
JP2003332443A (en) * 2002-05-08 2003-11-21 Toshiba Corp Semiconductor integrated circuit and design supporting device as well as test method therefor

Also Published As

Publication number Publication date
KR20060018542A (en) 2006-03-02

Similar Documents

Publication Publication Date Title
US7225379B2 (en) Circuit and method for testing semiconductor device
Huang et al. A programmable BIST core for embedded DRAM
KR100714240B1 (en) Semiconductor integrated circuit and recording medium
US7114113B2 (en) Test circuit provided with built-in self test function
US7653845B2 (en) Test algorithm selection in memory built-in self test controller
US6370661B1 (en) Apparatus for testing memory in a microprocessor
US6868532B2 (en) Method and program product for designing hierarchical circuit for quiescent current testing and circuit produced thereby
US20020059543A1 (en) Full-speed bist controller for testing embedded synchronous memories
US8201037B2 (en) Semiconductor integrated circuit and method for controlling semiconductor integrated circuit
US7533309B2 (en) Testing memories using algorithm selection
US7308623B2 (en) Integrated circuit and method for testing memory on the integrated circuit
Camurati et al. Industrial BIST of embedded RAMs
Dekker et al. Realistic built-in self-test for static RAMs
US6813201B2 (en) Automatic generation and validation of memory test models
Aitken A modular wrapper enabling high speed BIST and repair for small wide memories
US6862704B1 (en) Apparatus and method for testing memory in a microprocessor
Manasa et al. Implementation of BIST technology using March-LR algorithm
JP2005332555A (en) Test circuit, test method and semiconductor integrated circuit device
US7152194B2 (en) Method and circuit for scan testing latch based random access memory
KR100683436B1 (en) Generator of memory BIST circuit
Singh et al. Modeling and Simulation of efficient march algorithm for memory testing
Cheng Comprehensive study on designing memory BIST: algorithms, implementations and trade-offs
US20030182607A1 (en) Semiconductor memory device and method of testing same
JP3667146B2 (en) Built-in self-test circuit for memory
JP3972416B2 (en) Memory test pattern generation circuit

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
N231 Notification of change of applicant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121203

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140113

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150108

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee