KR100527229B1 - 반도체 집적 회로 장치 - Google Patents
반도체 집적 회로 장치 Download PDFInfo
- Publication number
- KR100527229B1 KR100527229B1 KR10-2003-0091890A KR20030091890A KR100527229B1 KR 100527229 B1 KR100527229 B1 KR 100527229B1 KR 20030091890 A KR20030091890 A KR 20030091890A KR 100527229 B1 KR100527229 B1 KR 100527229B1
- Authority
- KR
- South Korea
- Prior art keywords
- test
- data
- ram
- flip
- flops
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318536—Scan chain arrangements, e.g. connections, test bus, analog signals
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318555—Control logic
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/3181—Functional testing
- G01R31/3185—Reconfiguring for testing, e.g. LSSD, partitioning
- G01R31/318533—Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
- G01R31/318558—Addressing or selecting of subparts of the device under test
- G01R31/318563—Multiple simultaneous testing of subparts
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
본 발명은 테스트 회로의 규모를 크게 하지 않고 기능 블록 단독의 테스트를 행하는 것으로, 로직부(80)의 출력과 기능 블록(90)의 입력간의 병렬 경로와 데이터를 직렬로 전달하기 위한 직렬 시프트 경로를 갖고, 선택기(10, 11, 12)와 플립플롭(30, 31, 32)에 의해 구성된 스캔 패스와, 스캔 패스의 직렬 시프트 경로 상에 접속되고, 기능 블록(90)의 출력과 직렬 시프트 경로를 전환하여 로직부(81)의 입력에 접속하기 위한 선택기(60, 61, 62)를 구비하고, SI 단자로부터 테스트 데이터를 선택기(60, 61, 62)를 거쳐서 기능 블록(90)에 시프트인하며, 선택기(60, 61, 62)를 전환하여 기능 블록(90)으로부터 출력된 데이터를 출력한다.
Description
본 발명은 RAM(Random Access Memory) 등의 기능 블록과, 그 기능 블록에 접속되는 로직부와, 그것들을 테스트하기 위한 테스트 회로를 구비한 반도체 집적 회로 장치에 관한 것이다.
도 21은 특허문헌 1에 개시된 스캔 테스트 기능을 구비한 종래의 반도체 집적 회로 장치를 나타내는 회로도이다. 도 21에 도시하는 바와 같이, 이 반도체 집적 회로 장치는, 시프트 모드 신호 SM에 의해 제어되는 선택기(10, 11, 12), 플립플롭(FF)(30, 31, 32), 테스트 모드 신호 TEST에 의해 제어되는 선택기(50, 51, 52), 로직부(80, 81), RAM(91)에 의해 구성되어 있다.
도 21에서, 선택기(10, 11, 12) 및 플립플롭(30, 31, 32)에 의해 스캔 패스가 구성되어 있다. 이 스캔 패스는, 로직부(80)의 출력과 RAM(91)의 입력간의 병렬 경로와, SI(스캔인) 단자로부터 SO(스캔아웃) 단자까지의 데이터를 직렬로 전달하기 위한 직렬 시프트 경로를 구비한 기억 회로이다.
다음에 도 21에 나타내는 반도체 집적 회로 장치의 동작에 대하여 설명한다.
통상 동작시는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST=0으로 설정하여 선택기(50, 51, 52)를 "0" 입력단으로 전환한다. 즉, 로직부(80)로부터 출력되는 데이터가, 선택기(10, 11, 12)에 의해 선택되어, 플립플롭(30, 31, 32)을 거쳐서 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력된다. 여기서, 도시되어 있지 않지만, 플립플롭(30, 31, 32)에는 클럭이 입력되어 있는 것으로 한다. 또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 데이터가 선택기(50, 51, 52)에 의해 선택되어 로직부(81)에 전달된다. 이와 같이, 통상 동작시는, RAM(91)은 로직부(80, 81)의 사이에 삽입된 상태로 되어, 데이터의 기록과 판독이 행해진다.
로직부(80, 81)의 스캔 테스트를 행하는 경우는, 테스트 모드 신호 TEST=1로 설정하여 선택기(50, 51, 52)를 "1" 입력단으로 전환한다. 이 상태에서는, 선택기(50, 51, 52)는 "1" 입력단에 입력된 데이터를 선택하여 출력하기 때문에, RAM(91)은 바이패스되어, 스캔 패스가 로직부(80)와 로직부(81) 사이에 삽입된 상태가 된다. 그 상태에서 시프트 모드 신호 SM을 제어하여 로직부(80, 81)의 스캔 테스트를 한다.
로직부(81)의 스캔 테스트를 행하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환한다. 선택기(10, 11, 12)는 "1" 입력단에 입력된 데이터를 선택하기 때문에, 플립플롭(30, 31, 32)에 클럭을 3회 인가하면, SI 단자로부터의 3 비트의 테스트 데이터가 시리얼 시프트 동작에 의해, 플립플롭(30, 31, 32)에 저장된다. 테스트 모드 신호 TEST=1이기 때문에, 플립플롭(30, 31, 32)에 저장된 3 비트의 테스트 데이터가 로직부(81)에 인가되고, 로직부(81)로부터 출력되는 데이터를 확인하는 것으로 로직부(81)의 스캔 테스트가 행해진다.
로직부(80)의 스캔 테스트를 행하는 경우에는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환한다. 테스트 데이터를 입력하여 소정의 동작을 한 로직부(80)로부터 출력되는 3 비트의 데이터가 선택기(10, 11, 12)에 의해 선택된다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 로직부(80)로부터의 3 비트의 데이터는 각각 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다. 다음에 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터가 시리얼 시프트 동작에 의해 SO 단자에 시리얼 출력되어, 로직부(80)의 스캔 테스트가 행해진다.
도 21에 나타내는 반도체 집적 회로 장치에서는, 시프트 모드 신호 SM=1인 상태에서 시리얼 시프트 동작에 의해, RAM(91)의 입력 단자 DI0, DI1, DI2에 SI 단자로부터의 테스트 데이터를 설정하는 것은 가능하지만, RAM(91)의 출력 단자 DO0, DO1, DO2로부터 출력되는 데이터를, 플립플롭(30, 31, 32)에 취입하여 SO 단자로부터 판독하는 기능은 없고, RAM(91) 단독의 테스트를 행할 수는 없다.
도 22는 특허문헌 1에 개시된 RAM(91) 단독의 테스트 기능을 구비한 종래의 반도체 집적 회로 장치를 나타내는 회로도이다. 이것은 도 21에 나타내는 반도체 집적 회로 장치에, RAM(91)의 테스트 모드를 실행하기 위해서, 출력 선택 신호 SELDO에 의해 제어되는 선택기(60, 61, 62)와, RAM 테스트 신호 RAMTEST에 의해 제어되는 선택기(70, 71, 72)가 추가되어 있다.
여기서, 선택기(60, 61, 62)의 "1" 입력단에는, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 데이터가 각각 입력되고, 선택기(60)의 "0" 입력단에는 SI 단자로부터의 테스트 데이터가 입력되며, 선택기(61, 62)의 "0" 입력단에는 각각 플립플롭(30, 31)으로부터의 데이터가 입력된다. 또한, 선택기(70, 71, 72)의 "0" 입력단에는, 플립플롭(30, 31, 32)으로부터의 데이터가 입력되고, 선택기(70, 71, 72)의 "1" 입력단에는, SID 단자로부터의 RAM 테스트 데이터가 입력된다.
다음에 도 22에 나타내는 반도체 집적 회로 장치의 동작에 대하여 설명한다.
통상 동작시는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST=0으로 설정하여 선택기(50, 51, 52)를 "0" 입력단으로 전환하며, RAM 테스트 신호 RAMTEST=0으로 설정하여 선택기(70, 71, 72)를 "0" 입력단으로 전환한다. 이 상태에서는, 로직부(80)로부터 출력되는 데이터가, 플립플롭(30, 31, 32)을 거쳐서 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력된다. 여기서, 플립플롭(30, 31, 32)에는 클럭이 입력되어 있는 것으로 한다. 또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 데이터가 로직부(81)에 전달된다. 이와 같이, 통상 동작시는, RAM(91)은 로직부(80, 81)의 사이에 삽입된 상태로 되어, 데이터의 기록과 판독이 행해진다.
로직부(80), 로직부(81)의 스캔 테스트를 행하는 경우에는, 테스트 모드 신호 TEST=1로 설정하여 선택기(50, 51, 52)를 "1" 입력단으로 전환하고, 출력 선택 신호 SELDO=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 이 상태에서는 RAM(91)은 바이패스되어, 스캔 패스가 로직부(80), 로직부(81)의 사이에 삽입된 상태로 된다. 그 상태에서, 도 21에 나타내는 반도체 집적 회로 장치와 마찬가지로, 시프트 모드 신호 SM을 제어하여 로직부(80), 로직부(81)를 스캔 테스트한다.
RAM(91)을 테스트하는 경우에는, RAM 테스트 신호 RAMTEST=1로 설정하여 선택기(70, 71, 72)를 "1" 입력단으로 전환하여, SID 단자로부터의 RAM 테스트 데이터를 RAM(91)으로의 기록 데이터로서 공급한다. 여기서는, 1 비트의 RAM 테스트 데이터를 3 비트의 기록 데이터로서 공통으로 RAM(91)에 공급하고 있다. 즉, RAM(91)으로의 기록 데이터로서 "000"이나 "111"을 순간적으로 부여할 수 있다.
출력 선택 신호 SELDO에 의해 제어되는 선택기(60, 61, 62)는, RAM(91)의 출력 단자 DO0∼DO2로부터의 테스트 결과의 데이터를 스캔 패스에 취입하기 위한 것이다. 출력 선택 신호 SELDO=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하며, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, RAM(91)의 출력 단자 DO0∼DO2로부터의 테스트 결과의 데이터를 플립플롭(30, 31, 32)에 저장한다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다. 다음에 출력 선택 신호 SELDO=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터는 시리얼 시프트 동작에 의해 SO 단자로부터 판독되어, 칩 외부의 테스트 장치나 칩 내부의 셀프테스트 회로에 의해 고장 판정을 한다.
[특허문헌 1] 일본 특허 공개 평성 제 10-73641호 공보(단락번호 0018∼0039, 도 1, 도 4)
종래의 반도체 집적 회로 장치는 이상과 같이 구성되어 있기 때문에, 도 21에 나타내는 회로에서는, RAM(91) 등의 기능 블록 단독의 테스트를 할 수 없다는 문제가 있었다. 또한, 도 22에 나타내는 회로에서는, RAM(91) 등의 기능 블록의 테스트 회로의 규모가 커진다는 문제가 있었다.
본 발명은 상기한 바와 같은 과제를 해결하기 위해서 이루어진 것으로, 테스트 회로의 규모를 크게 하지 않고, RAM(91) 등의 기능 블록 단독의 테스트를 실행할 수 있는 반도체 집적 회로 장치를 얻는 것을 목적으로 한다.
본 발명에 따른 반도체 집적 회로 장치는, 제 1, 제 2 로직부와, 제 1 로직부와 제 2 로직부 사이에 접속된 기능 블록과, 제 1 로직부의 출력과 기능 블록의 입력간의 병렬 경로와 데이터를 직렬로 전달하기 위한 직렬 시프트 경로를 갖고, 제 1 로직부의 출력과 직렬 시프트 경로를 전환하여 기능 블록의 입력에 접속하기 위한 복수의 제 1 선택기와, 데이터를 저장하는 복수의 플립플롭에 의해 구성된 스캔 패스를 구비한 것으로, 스캔 패스의 직렬 시프트 경로 상에 접속되고, 기능 블록의 출력과 직렬 시프트 경로를 전환하여 제 2 로직부의 입력에 접속하기 위한 복수의 제 2 선택기를 구비하고, 스캔 패스의 직렬 시프트 경로로부터 테스트 데이터를 제 2 선택기를 거쳐 기능 블록에 시프트인하고, 제 2 선택기를 전환하여 기능 블록으로부터 출력된 데이터를 제 2 선택기를 거쳐서 출력하는 것이다.
이하, 본 발명의 실시의 일 형태를 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 도 1에 도시하는 바와 같이, 이 반도체 집적 회로 장치는, 시프트 모드 신호 SM에 의해 제어되는 선택기(10, 11, 12)(제 1 선택기), 플립플롭(FF)(30, 31, 32), 테스트 모드 신호 TEST2에 의해 제어되는 선택기(60, 61, 62)(제 2 선택기), 로직부(80)(제 1 로직부), 로직부(81)(제 2 로직부), 기능 블록(90)에 의해 구성되어 있다. 여기서, 기능 블록(90)은 RAM뿐만 아니라, 연산 회로, 인터페이스 회로, 메모리 블록 등의 각종의 논리 기능 블록을 포함하는 것으로 한다.
도 1에서, 선택기(60, 61, 62), 선택기(10, 11, 12) 및 플립플롭(30, 31, 32)에 의해 스캔 패스가 구성되어 있다. 이 스캔 패스는, 로직부(80)의 출력과 기능 블록(90)의 입력간의 병렬 경로와, SI(스캔인) 단자로부터 SO(스캔아웃) 단자까지의 데이터를 직렬로 전달하기 위한 직렬 시프트 경로를 구비한 기억 회로이며, 선택기(60, 61, 62)는 스캔 패스의 직렬 시프트 경로에 접속되어 있다.
도 1에서는, 종래의 도 12의 선택기(50, 51, 52)의 삽입 위치를 변경하여 선택기(60, 61, 62)로서, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터 출력되는 데이터를 스캔 패스에 취입할 수 있도록 하고 있다. 이에 따라, 테스트 회로 규모의 증가없이 기능 블록(90) 단독의 테스트를 행할 수 있게 된다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 이 상태에서는, 로직부(80)로부터 출력되는 데이터가, 선택기(10, 11, 12)에 의해 선택되어, 플립플롭(30, 31, 32)을 거쳐서 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력된다. 여기서, 플립플롭(30, 31, 32)에는 클럭이 입력되어 있는 것으로 한다.
또한, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 데이터가, 선택기(60, 61, 62)에 의해 선택되어 로직부(81)에 전달된다. 이와 같이, 통상 동작시는, 기능 블록(90)은 로직부(80, 81)의 사이에 삽입된 상태로 되어, 소정의 연산이나 데이터 처리가 행해진다.
로직부(80, 81)의 스캔 테스트를 행하는 경우는, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 이 상태에서는 기능 블록(90)은 바이패스되어, 스캔 패스가 로직부(80)와 로직부(81)의 사이에 삽입된 상태가 된다. 그 상태에서 시프트 모드 신호 SM을 제어하여 로직부(80, 81)의 스캔 테스트를 한다.
로직부(81)의 스캔 테스트를 행하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, SI 단자로부터의 2 비트의 테스트 데이터가 시리얼 시프트 동작에 의해 플립플롭(30, 31)에 저장된다.
테스트 모드 신호 TEST2=1로 설정되어 있기 때문에, SI 단자의 다음 1 비트의 테스트 데이터는 선택기(60)에 의해 선택되어 로직부(81)에 입력되고, 플립플롭(30, 31)에 저장된 각 1 비트의 테스트 데이터는, 각각 선택기(61, 62)에 의해 선택되어 로직부(81)에 입력되고, 합계 3 비트의 테스트 데이터에 의해 로직부(81)의 스캔 테스트가 행해진다.
로직부(80)의 스캔 테스트를 행하는 경우에는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 테스트 데이터를 입력한 로직부(80)로부터의 테스트 결과의 3 비트의 데이터가 플립플롭(30, 31, 32)에 각각 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 이 경우, 로직부(81)에 대한 다음 테스트 데이터를 SI 단자로부터 플립플롭(30, 31)에 저장할 수도 있다. 또, 이 로직부(80)와 로직부(81)의 스캔 테스트는 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
기능 블록(90)의 테스트를 행하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환한다. 그리고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 3회 인가하면, SI 단자로부터의 3 비트의 테스트 데이터가 시리얼 시프트 동작에 의해 플립플롭(30, 31, 32)에 저장되어, 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력된다. 기능 블록(90)은 소망의 동작을 행하여, 테스트 결과의 데이터가 출력 단자 DO0, DO1, DO2에 출력된다.
다음에 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 또, 이 기능 블록(90)의 테스트는 SI 단자로부터 입력되는 테스트 데이터를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 1에 따르면, 테스트 회로의 규모를 크게 하지 않고 기능 블록(90) 단독으로 테스트할 수 있다는 효과를 얻을 수 있다.
(실시예 2)
도 2는 본 발명의 실시예 2에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 2에서는, 도 2에 도시하는 바와 같이, 실시예 1의 도 1에서의 기능 블록(90)을 RAM(91)으로 변경하여, 스캔 패스의 직렬 시프트 경로에 인버터(20, 21, 22)를 삽입하고 있다. 이 인버터(20, 21, 22)에 의해, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있다. 이에 따라, RAM(91)의 테스트를 행하는 경우에, "000"을 기록하고 다음 사이클에서 "111"을 기록하거나, 또는 "111"을 기록하고 다음 사이클에서 "000"을 기록한다는 테스트를 용이하게 실행할 수 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는 인버터(20, 21, 22)는 무관하며, 실시예 1의 기능 블록(90)이 RAM(91)으로 변경되어 있을 뿐이고 실시예 1과 마찬가지다. 또한, 로직부(80, 81)의 스캔 테스트시도, 기본적으로는 실시예 1과 마찬가지고, 테스트 데이터 및 테스트 결과의 데이터가 인버터(20, 21, 22)에 의해 반전 또는 비 반전으로 되어 있는 점을 배려하면 좋다.
RAM(91)의 테스트를 행하는 경우에 대하여 설명한다.
우선, RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 3회 인가하면, 시리얼 시프트 동작에 의해, SI 단자로부터의 3 비트의 테스트 데이터가 플립플롭(30, 31, 32)에 저장된다. 단, 플립플롭(30, 32)에는, 인버터(20, 21, 22)에 의해 반전된 테스트 데이터가 저장되기 때문에, SI 단자로부터 테스트 데이터 "010"을 시프트인한 경우에는, 플립플롭(30, 31, 32)의 출력의 테스트 데이터는 "111"로 되고, RAM(91)의 입력 단자 DI0, DI1, DI2에 테스트 데이터 "111"이 입력된다.
SI 단자로부터 후속의 테스트 데이터 "101010…"를 시프트인하면, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력되는 테스트 데이터는 "111"의 상태와 "000"의 상태를 반복한다. 소망의 테스트 데이터 "111" 또는 "000"이 설정됐을 때에, RAM(91)에 대하여 기록을 행한다. 이와 같이, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있다. 또, 이 테스트 데이터의 RAM(91)으로의 기록은 어드레스를 변경하면서 복수회 반복된다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 선택기(10, 11, 12)로부터 출력된다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 테스트 결과의 데이터가 각각 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 시리얼 시프트 동작에 의해 플립플롭(30, 31)에 저장된 각 1 비트의 데이터가 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 단, 플립플롭(30)에 저장된 데이터는 인버터(21, 22)를 통과하고, 플립플롭(31)에 저장된 데이터는 인버터(22)를 통과하여 SO 단자에 시리얼 출력되기 때문에, 이것을 배려하여 테스트를 해야 한다. 또, 이 RAM(91)의 판독 테스트는 어드레스를 변경하여 복수회 반복된다.
또한, 인버터(20)를 생략해도 무방하고, 그 경우, SI 단자로부터 시프트인하는 테스트 데이터를 상기의 경우와 반전시키면 좋다.
이 실시예 2를 종래의 도 13과 비교하면, 도 13의 선택기(50, 51, 52) 및 선택기(70, 71, 72)가 필요없게 된다.
이상과 같이, 이 실시예 2에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있고, 또한, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있다는 효과를 얻을 수 있다.
(실시예 3)
도 3은 본 발명의 실시예 3에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 3에서는, 도 3에 도시하는 바와 같이, 실시예 2의 도 2에서의 인버터(20, 21, 22)의 대신에, 스캔 패스의 직렬 시프트 경로에 인버터(40, 41, 42)를 삽입하고 있다. 이 인버터(40, 41, 42)에 의해, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 인버터(40, 41, 42)는 무관하며, 실시예 1의 기능 블록(90)이 RAM(91)으로 변경되어 있을 뿐이고 실시예 1과 마찬가지다. 또한, 로직부(80, 81)의 스캔 테스트시도, 기본적으로는 실시예 1과 마찬가지이며, 테스트 데이터 및 테스트 결과의 데이터가 인버터(40, 41, 42)에 의해 반전 또는 비 반전으로 되어 있는 점을 배려하면 좋다.
RAM(91)의 테스트를 행하는 경우에 대하여 설명한다.
우선, RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 3회 인가하면, 시리얼 시프트 동작에 의해, SI 단자로부터의 3 비트의 테스트 데이터가 플립플롭(30, 31, 32)에 저장된다. 단, 플립플롭(30, 32)에는, 인버터(40, 41, 42)에 의해 반전된 테스트 데이터가 저장되기 때문에, SI 단자로부터 테스트 데이터 "010"을 시프트인한 경우에는, 플립플롭(30, 31, 32)의 출력의 테스트 데이터는 "111"로 되고, RAM(91)의 입력 단자 DI0, DI1, DI2에 테스트 데이터 "111"이 입력된다.
SI 단자로부터 후속의 테스트 데이터 "101010…"를 시프트인하면, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력되는 테스트 데이터는, "111"의 상태와 "000"의 상태를 반복한다. 소망의 테스트 데이터 "111" 또는 "000"이 설정됐을 때에, RAM(91)에 대하여 기록을 행한다. 이와 같이, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있다. 또, 이 테스트 데이터의 RAM(91)으로의 기록은 어드레스를 변경하면서 복수회 반복된다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서, 인버터(40, 41, 42)에 의해 반전되어 선택기(10, 11, 12)로부터 출력된다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 테스트 결과의 반전 데이터가 각각 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 플립플롭(30, 31, 32)에 저장된 테스트 결과의 반전 데이터를 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력하여, RAM(91)에 테스트 결과의 반전 데이터를 기록한다. 예컨대, RAM(91)의 출력 단자 DO0, DO1, DO2에 출력된 테스트 결과의 데이터가 "000"인 경우에, 다음 사이클에서 RAM(91)에 테스트 데이터 "111"을 기록한다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터가 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 단, 플립플롭(30)에 저장된 데이터는 인버터(41, 42)를 통과하고, 플립플롭(31)에 저장된 데이터는 인버터(42)를 통과하여 SO 단자에 시프트아웃되기 때문에, 이것을 배려하여 테스트를 해야 한다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 3에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있고, 또한, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있다는 효과를 얻을 수 있다.
(실시예 4)
도 4는 본 발명의 실시예 4에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 1의 도 1에서는, 플립플롭(30, 31, 32)의 출력을 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력했지만, 이 실시예 4에서는, 도 4에 도시하는 바와 같이, 선택기(10, 11, 12)의 출력을 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력하고 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 로직부(80)로부터 출력되는 데이터가 선택기(10, 11, 12)에 의해 선택되어 직접 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력된다.
또한, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 데이터가 선택기(60, 61, 62)에 의해 선택되어 로직부(81)에 전달된다. 이와 같이, 통상 동작시는, 기능 블록(90)은 로직부(80, 81)의 사이에 삽입된 상태로 되어, 소정의 연산이나 데이터 처리가 행해진다. 이 실시예 4에서는, 통상 동작시는 플립플롭(30, 31, 32)은 무관해져, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 무방하다.
로직부(80, 81)의 스캔 테스트에 대해서는, 실시예 1의 도 1과 실시예 4의 도 4에서 스캔 패스의 직렬 시프트 경로에서의 플립플롭(30, 31, 32)의 위치는 동일하므로, 실시예 1과 동일하다.
기능 블록(90)의 테스트를 행하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 시리얼 시프트 동작에 의해, SI 단자로부터의 2 비트의 테스트 데이터가 플립플롭(30, 31)에 저장된다.
SI 단자로부터의 다음 1 비트의 테스트 데이터는, 선택기(60) 및 선택기(10)에 의해 선택되어, 기능 블록(90)의 입력 단자 DI0에 입력되고, 플립플롭(30, 31)에 저장된 각 1 비트의 테스트 데이터는, 각각 선택기(61, 62) 및 선택기(11, 12)에 의해 선택되어, 기능 블록(90)의 입력 단자 DI1, DI2에 입력된다. 기능 블록(90)은 소망의 동작을 행하고, 테스트 결과의 데이터를 기능 블록(90)의 출력 단자 DO0, DO1, DO2에 출력한다.
다음에 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 또, 이 기능 블록(90)의 테스트는 SI 단자로부터 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 4에 따르면, 테스트 회로의 규모를 크게 하지 않고 기능 블록(90) 단독으로 테스트할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
(실시예 5)
도 5는 본 발명의 실시예 5에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 2의 도 2에서는, 플립플롭(30, 31, 32)의 출력을 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력했지만, 이 실시예 5에서는, 도 5에 도시하는 바와 같이, 선택기(10, 11, 12)의 출력을 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력하고 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 인버터(20, 21, 22) 및 플립플롭(30, 31, 32)은 무관하고, 실시예 4의 기능 블록(90)이 RAM(91)으로 변경되어 있을 뿐이고 실시예 4와 마찬가지이며, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 무방하다. 또한, 로직부(80, 81)의 스캔 테스트시도, 기본적으로는 실시예 4와 마찬가지고, 인버터(20, 21, 22)에 의해 테스트 데이터 및 테스트 결과의 데이터가 반전 또는 비 반전으로 되어 있는 점을 배려하면 좋다.
RAM(91)의 테스트를 행하는 경우에 대하여 설명한다. 우선, RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 시리얼 시프트 동작에 의해, SI 단자로부터의 2 비트의 테스트 데이터가 플립플롭(30, 31)에 저장된다.
단, 플립플롭(30)에는 반전된 테스트 데이터가 저장되기 때문에, SI 단자로부터 "10"을 시프트인한 경우에는, 플립플롭(30, 31)의 출력은 "11"이 된다. 플립플롭(30)의 출력은 인버터(21)를 거쳐서 RAM(91)의 입력 단자 DI1에 입력되고, 플립플롭(31)의 출력은 인버터(22)를 거쳐서 RAM(91)의 입력 단자 DI2에 입력되어, RAM(91)의 입력 단자 DI1, DI2에 입력되는 테스트 데이터는 "00"이 된다. 또한, SI 단자로부터 후속의 테스트 데이터 "1"을 인가하면, 인버터(20)를 거쳐서 RAM(91)의 입력 단자 DI0에 입력되어, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력되는 테스트 데이터는 "000"이 된다.
SI 단자로부터 후속의 테스트 데이터 "101010…"(선두의 "1"은 상술한 테스트 데이터 "1")를 시프트인하면, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력되는 테스트 데이터는 "000"의 상태와, "111"의 상태를 교대로 반복한다. 소망의 데이터 "000" 또는 "111"이 입력됐을 때에, RAM(91)에 대하여 기록을 행한다. 이와 같이, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있다. 또, 이 테스트 데이터의 RAM(91)으로의 기록은 어드레스를 변경하면서 복수회 반복된다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하는 경우에는, 실시예 2와 동일하다. 또한, 실시예 2와 마찬가지로 인버터(20)를 생략해도 무방하다.
이상과 같이, 이 실시예 5에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있어, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
(실시예 6)
도 6은 본 발명의 실시예 6에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 3의 도 3에서는, 플립플롭(30, 31, 32)의 출력을 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력했지만, 이 실시예 6에서는, 도 6에 도시하는 바와 같이, 선택기(10, 11, 12)의 출력을 RAM(91)의 입력 단자 DI0, DI1, DI2에 입력하고 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 인버터(40, 41, 42) 및 플립플롭(30, 31, 32)은 무관하고, 실시예 4의 기능 블록(90)이 RAM(91)으로 변경되어 있을 뿐이고 실시예 4와 마찬가지이며, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 무방하다. 또한, 로직부(80, 81)의 스캔 테스트시도, 기본적으로는 실시예 4와 마찬가지고, 인버터(40, 41, 42)에 의해 테스트 데이터 및 테스트 결과의 데이터가 반전 또는 비 반전으로 되어 있는 점을 배려하면 좋다.
RAM(91)의 테스트를 행하는 경우에 대하여 설명한다. RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에는, 인버터(20, 21, 22)가 인버터(40, 41, 42)로 되어 있을 뿐이고 실시예 5와 동일하다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에 대하여 설명한다. 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 인버터(40, 41, 42)에 의해 반전되어 선택기(10, 11, 12)로부터 출력된다.
다음에 선택기(10, 11, 12)로부터 출력되는 테스트 결과의 반전 데이터를, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력하고, RAM(91)에 테스트 결과의 반전 데이터를 기록한다. 예컨대, RAM(91)의 출력 단자 DO0, DO1, DO2에 출력된 테스트 결과의 데이터가 "000"인 경우에, 다음 사이클에서 RAM(91)에 테스트 데이터 "111"을 기록한다.
다음에 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 선택기(10, 11, 12)로부터 출력되는 테스트 결과의 반전 데이터가 각각 플립플롭(30, 31, 32)에 저장된다. 이 때, 플립플롭(32)에 저장된 1 비트의 데이터는 SO 단자에 출력된다.
다음에 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1 비트의 데이터가 SO 단자에 시프트아웃되어, 합계 3 비트의 데이터의 내용이 확인된다. 단, 플립플롭(30)에 저장된 데이터는 인버터(41, 42)를 통과하고, 플립플롭(31)에 저장된 데이터는 인버터(42)를 통과하여 SO 단자에 시프트아웃되기 때문에, 이것을 배려하여 테스트를 해야 한다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 6에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있어, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
(실시예 7)
도 7은 본 발명의 실시예 7에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 7에서는, 도 7에 도시하는 바와 같이, 실시예 6의 도 6에, SO 단자로 출력되는 데이터를 SI 단자측에 피드백하는 선택기(100)(제 3 선택기)를 추가하고 있다. 이 선택기(100)는 루프 인에이블 신호 LOOPEN에 의해 제어된다. 실시예 2의 도 2, 실시예 3의 도 3, 실시예 5의 도 5에도, 마찬가지로 선택기(100)를 추가할 수 있다.
다음에 동작에 대하여 설명한다.
통상 동작시는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 통상 동작시는, 인버터(40, 41, 42) 및 플립플롭(30, 31, 32)은 무관하고, 실시예 4의 기능 블록(90)이 RAM(91)으로 변경되어 있을 뿐이고 실시예 4와 마찬가지이며, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 무방하다.
또한, 로직부(80, 81)의 스캔 테스트시는, 루프 인에이블 신호 LOOPEN=0으로 설정하여 선택기(100)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 이 로직부(80, 81)의 스캔 테스트도, 기본적으로는 실시예 4와 마찬가지고, 인버터(40, 41, 42)에 의해 테스트 데이터 및 테스트 결과의 데이터가 반전 또는 비 반전으로 되어 있는 점을 배려하면 좋다.
RAM(91)의 테스트를 행하는 경우에 대하여 설명한다.
우선, RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에 대하여 설명한다. 루프 인에이블 신호 LOOPEN=0으로 설정하여 선택기(100)를 "0" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하며, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다.
플립플롭(30, 31, 32)에 클럭을 3회 인가하면, 시리얼 시프트 동작에 의해, SI 단자로부터의 3 비트의 테스트 데이터가 플립플롭(30, 31, 32)에 저장된다. 단, 플립플롭(30, 32)에는 반전된 테스트 데이터가 저장되기 때문에, SI 단자로부터 "010"을 시프트인한 경우에는, 플립플롭(30, 31, 32)의 출력은 "111"이 된다. 이 상태에서는, SI 단자의 다음 테스트 데이터가 인버터(40)에 의해 반전되어 RAM(91)의 입력 단자 DI0에 전달되고, 플립플롭(30)의 출력의 데이터 "1"이 인버터(41)에 의해 반전되어 RAM(91)의 입력 단자 DI1에 전달되며, 플립플롭(31)의 출력의 데이터 "1"이 인버터(42)에 의해 반전되어 RAM(91)의 입력 단자 DI2에 전달된다.
다음에 루프 인에이블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하면, 플립플롭(32)의 출력의 데이터 "1"이 인버터(40)를 거쳐서 RAM(91)의 입력 단자 DI0에 전달되어, RAM(91)의 입력 단자 DI0, DI1, DI2의 데이터는 "000"이 된다. 루프 인에이블 신호 LOOPEN=1의 상태에서, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, 인버터(40, 41, 42)에 의해 RAM(91)의 입력 단자 DI0, DI1, DI2의 데이터는 변화하여, "000"의 상태와 "111"의 상태를 반복한다. 소망의 테스트 데이터 "000" 또는 "111"이 설정됐을 때에 RAM(91)에 대하여 기록을 행한다. 이 테스트 데이터의 RAM(91)의 기록은 어드레스를 변경하면서 복수회 반복된다.
RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에는, 실시예 6과 동일하다. 이 경우, 루프 인에이블 신호 LOOPEN의 설정은 어느 쪽이라도 좋다.
또, 이 실시예 7에서는, RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우에, 플립플롭(30, 31, 32)의 출력이 "111"이 되도록, SI 단자로부터 테스트 데이터를 시프트인하고 있지만, 플립플롭(30, 31, 32)의 출력이 "000"이 되도록 SI 단자로부터 테스트 데이터를 시프트인해도 무방하다.
이상과 같이, 이 실시예 7에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있어, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
또한, 이 실시예 7에 따르면, 루프 인에이블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인에이블 신호 LOOPEN=1로 전환하여 놓으면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2로의 데이터는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 인가할 필요는 없고, RAM(91)의 테스트를 쉽게 할 수 있다는 효과를 얻을 수 있다.
(실시예 8)
도 8은 본 발명의 실시예 8에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 8에서는, 도 8에 도시하는 바와 같이, 실시예 7의 도 7에 RAM(91)으로부터 출력되는 테스트 결과의 데이터를 단시간에 모니터링하기 위한 게이트 회로(110)를 추가하고 있다. 이 게이트 회로(110)는 선택기(60, 61, 62)의 출력의 데이터가 동일값인 것을 검출하는 것이다. 도 8에서는 게이트 회로(110)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 무방하다.
다음에 동작에 대하여 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 7과 동일하다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우의 동작도 실시예 7과 동일하다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에 대하여 설명한다. 루프 인에이블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하며, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2로 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 게이트 회로(110)의 입력에 전해진다. 이 때, 테스트 결과의 데이터가 "111"이면, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다.
또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터는, 인버터(40, 41, 42)에 의해 반전되어 RAM(91)의 입력 단자 DI0, DI1, DI2에 인가된다. 다음에 이 테스트 결과의 반전 데이터를 RAM(91)에 기록하는 동시에, 플립플롭(30, 31, 32)에 클럭을 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 반전 데이터를 저장한다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하면, 플립플롭(30, 31, 32)에 저장되어 있는 테스트 결과의 반전 데이터가 각각 선택기(60, 61, 62)를 거쳐서 게이트 회로(110)의 입력에 전해진다. 테스트 결과의 데이터가 "000"이면, 게이트 회로(110)의 입력은 "111"로 되고, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크함으로써, RAM(91)의 출력 단자 DO0, DO1, DO2로부터 출력되는 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 8에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있어, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
또한, 이 실시예 8에 따르면, 루프 인에이블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인에이블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 부여할 필요는 없고, RAM(91)의 테스트를 쉽게 할 수 있다는 효과를 얻을 수 있다.
또한, 이 실시예 8에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 실행할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다는 효과를 얻을 수 있다.
(실시예 9)
도 9는 본 발명의 실시예 9에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 9에서는, 도 9에 도시하는 바와 같이, 실시예 8의 도 8에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측으로부터 인버터(40, 41, 42)의 출력측에 게이트 회로(111)로서 이동하고 있다. 이 게이트 회로(111)는 인버터(40, 41, 42)의 출력의 데이터가 동일값인 것을 검출하는 것이다. 도 9에서는 게이트 회로(111)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 무방하다.
다음에 동작에 대하여 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 7과 동일하다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우의 동작도 실시예 7과 동일하다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에 대하여 설명한다. 루프 인에이블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하며, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 인버터(40, 41, 42)에 의해 반전되어 게이트 회로(111)의 입력에 전해진다. 이 때, 테스트 결과의 데이터가 "000"이면, 게이트 회로(111)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다.
또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터는, 인버터(40, 41, 42)에 의해 반전되어 RAM(91)의 입력 단자 DI0, DI1, DI2에 부여된다. 다음에 이 테스트 결과의 반전 데이터를 RAM(91)에 기록하는 동시에, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 반전 데이터를 저장한다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하면, 플립플롭(30, 31, 32)에 저장된 테스트 결과의 반전 데이터가, 각각 선택기(60, 61, 62)에 전해진다. 선택기(60, 61, 62)의 출력의 테스트 결과의 반전 데이터는, 인버터(40, 41, 42)에 의해 또 반전되어 게이트 회로(111)의 입력에 전해진다. 테스트 결과의 데이터가 "111"이면, 게이트 회로(111)의 입력은 "111"로 되어, 게이트 회로(111)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크함으로써, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다. 또, RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 9에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수 있어, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1 클럭 사이클에서 전환할 수 있어, RAM(91)의 테스트를 효율적으로 실행할 수 있고, 또한, 통상 동작시는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다는 효과를 얻을 수 있다.
또한, 이 실시예 9에 따르면, 루프 인에이블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인에이블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 부여할 필요는 없고, RAM(91)의 테스트를 쉽게 할 수 있다는 효과를 얻을 수 있다.
또한, 이 실시예 9에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지의 테스트와, "111"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 실행할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다는 효과를 얻을 수 있다.
(실시예 10)
도 10은 본 발명의 실시예 10에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 10에서는, 도 10에 도시하는 바와 같이, 실시예 8의 도 8에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측으로부터 선택기(10, 11, 12)의 출력측에 게이트 회로(112)로서 이동하고 있다. 이 게이트 회로(112)는 선택기(10, 11, 12)의 출력의 데이터가 동일값인 것을 검출하는 것이다. 도 10에서는 게이트 회로(112)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 무방하다.
다음에 동작에 대하여 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 7과 동일하다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우의 동작도 실시예 7과 동일하다. 또한, RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에는, 게이트 회로(112)가, 선택기(10, 11, 12)로부터 출력되는 데이터에 의해, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지, "111"인지를 판정하고 있는 것을 제외하고, 실시예 9와 동일하다.
이상과 같이, 이 실시예 10에 따르면, 실시예 9와 마찬가지의 효과를 얻을 수 있다.
(실시예 11)
도 11은 본 발명의 실시예 11에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 11에서는, 도 11에 도시하는 바와 같이, 실시예 8의 도 8에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측으로부터 플립플롭(30, 31, 32)의 출력측에 게이트 회로(113)로서 이동하고 있다. 이 게이트 회로(113)는 플립플롭(30, 31, 32)의 출력의 데이터가 동일값인 것을 검출하는 것이다. 도 11에서는 게이트 회로(113)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 무방하다.
다음에 동작에 대하여 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 7과 동일하다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 행하는 경우의 동작도 실시예 7과 동일하다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 행하는 경우에 대하여 설명한다. 루프 인에이블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하며, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 행하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62) 및 선택기(10, 11, 12)를 거쳐서 인버터(40, 41, 42)에 의해 반전되어, 테스트 결과의 반전 데이터가 플립플롭(30, 31, 32)의 입력 및 RAM(91)의 입력 단자 DI0, DI1, DI2에 전해진다.
다음에 테스트 결과의 반전 데이터를 RAM(91)에 기록하는 동시에, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)은 이 테스트 결과의 반전 데이터를 저장하고, 테스트 결과의 반전 데이터는 게이트 회로(113)의 입력에 전해진다.
이 때, 테스트 결과의 데이터가 "000"이면, 플립플롭(30, 31, 32)의 출력 데이터는 "111"이며, 게이트 회로(113)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하면, 플립플롭(30, 31, 32)에 저장되어 있는 테스트 결과의 반전 데이터가 각각 선택기(60, 61, 62)에 전해진다. 선택기(60, 61, 62)의 출력의 테스트 결과의 반전 데이터는, 인버터(40, 41, 42)에 의해 또 반전되어 테스트 결과의 데이터로 되고, 선택기(10, 11, 12)를 거쳐서 플립플롭(30, 31, 32)의 입력에 전해진다. 다음에 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 테스트 결과의 데이터를 저장하고, 게이트 회로(113)의 입력에 전해진다.
테스트 결과의 데이터가 "111"이면, 게이트 회로(113)의 입력은 "111"로 되고, 게이트 회로(113)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 이와 같이, 모니터 신호 MONI를 체크함으로써, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수 있다. 또, RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 11에 따르면, 실시예 9와 마찬가지의 효과를 얻을 수 있다.
(실시예 12)
도 12는 본 발명의 실시예 12에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 4의 도 4에서는, 플립플롭(30, 31, 32)의 입력을 선택기(10, 11, 12)의 출력에 접속하고 있었지만, 이 실시예 12에서는, 도 12에 나타내는 바와 같이, 플립플롭(30, 31, 32)의 입력을 선택기(60, 61, 62)의 출력에 접속하고, 플립플롭(30, 31, 32)의 출력을 로직부(81)에 접속하고, 선택기(12)의 출력으로부터 SO 단자의 사이에 플립플롭(33)이 추가되어 있다. 이것에 의해, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 기능 블록(90)의 출력 레지스터로서 이용할 수가 있다.
다음에 동작에 대해서 설명한다.
통상 동작시에는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 로직부(80)로부터 출력되는 데이터가, 선택기(10, 11, 12)에 의해 선택되고, 직접, 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력된다.
기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 데이터는, 선택기(60, 61, 62)에 의해 선택되어 플립플롭(30, 31, 32)의 입력에 전달되고, 플립플롭(30, 31, 32)의 출력은 로직부(81)에 접속되어 있기 때문에, 통상 동작시에는, 기능 블록(90)과 플립플롭(30, 31, 32)은 로직부(80, 81)의 사이에 삽입된 상태로 되고, 플립플롭(30, 31, 32)에 클럭을 인가하는 것으로 소정의 연산이나 데이터 처리가 행해진다. 이 때, 플립플롭(30, 31, 32)은 기능 블록(90)의 출력 레지스터로서 동작한다.
로직부(80, 81)의 스캔 테스트를 하는 경우는, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 이 상태에서는 기능 블록(90)은 바이패스되어, 스캔 패스가 로직부(80)와 로직부(81)의 사이에 삽입된 상태가 된다. 그 상태에서 시프트 모드 신호 SM을 제어하여 로직부(80, 81)의 스캔 테스트를 한다.
로직부(81)의 스캔 테스트를 하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 3회 인가하면(플립플롭(33)에 인가해도 좋다), SI 단자로부터의 3비트의 테스트 데이터가, 직렬 시프트 동작에 의해 플립플롭(30, 31, 32)에 저장된다.
이 플립플롭(30, 31, 32)이 출력하는 3비트의 테스트 데이터가 로직부(81)에 입력되어, 로직부(81)가 소망의 동작을 한다. 로직부(81)의 출력은 도시되어 있지 않는 다른 스캔 패스나 LSI의 출력 버퍼에 접속되어 있고, 종래의 방법으로 테스트된다.
로직부(80)의 스캔 테스트를 하는 경우에 대해서 설명한다. 로직부(80)의 입력은 도시되어 있지 않는 다른 스캔 패스의 플립플롭 출력이나 LSI의 입력 버퍼에 접속되어 있고, 종래의 방법으로 테스트 데이터가 인가된다. 이 테스트 데이터에 의해 로직부(80)가 소망의 동작을 하여, 로직부(80)의 테스트 결과의 출력은 선택기(10, 11, 12)의 "0" 입력단에 전달된다. 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 플립플롭(31, 32, 33)에 클럭을 1회 인가하면(플립플롭(30)에 인가해도 좋다), 로직부(80)로부터의 테스트 결과의 3비트의 데이터가 플립플롭(31, 32, 33)에 각각 저장된다. 이 때, 플립플롭(33)에 저장된 1비트의 데이터는 SO 단자에 출력된다.
다음에 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(31, 32, 33)에 클럭을 2회 인가하면(플립플롭(30)에 인가해도 좋다), 플립플롭(31, 32)에 저장된 각 1비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3비트의 데이터의 내용이 확인된다. 이 경우, 로직부(81)에 대한 다음 테스트 데이터를 SI 단자로부터 플립플롭(30, 31)에 저장할 수도 있다. 또, 이 로직부(80)와 로직부(81)의 스캔 테스트는, 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
기능 블록(90)의 테스트를 하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 플립플롭(30, 31, 32)에 클럭을 3회 인가하면(플립플롭(33)에 인가해도 좋다), 직렬 시프트 동작에 의해, SI 단자로부터의 3비트의 테스트 데이터가 플립플롭(30, 31, 32)에 저장된다.
이 플립플롭(30, 31, 32)에 저장된 3비트의 테스트 데이터가 선택기(10, 11, 12)에 의해 선택되고, 기능 블록(90)의 입력 단자 DI0, DI1, DI2에 입력된다. 기능 블록(90)은 소망의 동작을 행하고(필요하면 클럭을 인가한다), 테스트 결과의 데이터를 기능 블록(90)의 출력 단자 DO0, DO1, DO2에 출력한다.
다음에 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 기능 블록(90)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 플립플롭(30, 31, 32)에 저장된다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, 플립플롭(31, 32, 33)에 클럭을 3회 인가하면(플립플롭(30)에 인가해도 좋다), 플립플롭(30, 31, 32)에 저장된 각 1비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3비트의 데이터의 내용이 확인된다. 또, 이 기능 블록(90)의 테스트는, SI 단자로부터 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 12에 따르면, 테스트 회로의 규모를 크게 하지 않고 기능 블록(90) 단독으로 테스트할 수 있고, 또한, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 기능 블록(90)의 출력 레지스터로서 이용할 수 있다는 효과가 얻어진다.
(실시예 13)
도 13은 본 발명의 실시예 13에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 8의 도 8에서는, 플립플롭(30, 31, 32)의 입력을 선택기(10, 11, 12)의 출력에 접속하고 있었지만, 이 실시예 13에서는, 도 13에 나타내는 바와 같이, 플립플롭(30, 31, 32)의 입력을 선택기(60, 61, 62)의 출력에 접속하고, 플립플롭(30, 31, 32)의 출력을 로직부(81)에 접속하고, 선택기(12)의 출력으로부터 SO 단자의 사이에 플립플롭(33)이 추가되어 있다. 이것에 의해, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수가 있다. 도 13에서는 게이트 회로(110)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 좋다.
다음에 동작에 대해서 설명한다.
통상 동작시에는, 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다. 로직부(80)로부터 출력되는 데이터가 선택기(10, 11, 12)에 의해 선택되고, 직접, RAM(91)의 입력 단자 DI0, DI1, DI2에 입력된다.
RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 데이터는, 선택기(60, 61, 62)에 의해 선택되어 플립플롭(30, 31, 32)의 입력에 전달되고, 플립플롭(30, 31, 32)의 출력을 로직부(81)에 접속하고 있기 때문에, 통상 동작시에는, RAM(91)과 플립플롭(30, 31, 32)은 로직부(80, 81)의 사이에 삽입된 상태로 되어, 플립플롭(30, 31, 32)에 클럭을 인가하는 것으로 소정의 연산이나 데이터 처리가 행해진다. 이 때, 플립플롭(30, 31, 32)은 RAM(91)의 출력 레지스터로서 동작한다.
또한, 로직부(80, 81)의 스캔 테스트시에는, 루프 인이에블 신호 LOOPEN=0으로 설정하여 선택기(100)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 이 상태에서는 RAM(91)은 바이패스되어, 스캔 패스가 로직부(80)와 로직부(81)의 사이에 삽입된 상태가 된다. 그 상태에서 시프트 모드 신호 SM을 제어하여 로직부(80, 81)의 스캔 테스트를 한다.
로직부(81)의 스캔 테스트를 하는 경우에는, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 3회 인가하면(플립플롭(33)에 인가해도 좋다), SI 단자로부터의 3비트의 테스트 데이터가, 직렬 시프트 동작에 의해 플립플롭(30, 31, 32)에 저장된다. 이 때, 직렬 시프트 경로에 삽입된 인버터(40, 41, 42)에 배려하여 적절한 테스트 데이터를 인가해야 한다.
이 플립플롭(30, 31, 32)이 출력하는 3비트의 테스트 데이터가 로직부(81)에 입력되어, 로직부(81)가 소망의 동작을 한다. 로직부(81)의 출력은 도시되어 있지 않는 다른 스캔 패스나 LSI의 출력 버퍼에 접속되어 있고, 종래의 방법으로 테스트된다.
로직부(80)의 스캔 테스트를 하는 경우에 대해서 설명한다. 로직부(80)의 입력은 도시되어 있지 않는 다른 스캔 패스의 플립플롭 출력이나 LSI의 입력 버퍼에 접속되어 있고, 종래의 방법으로 테스트 데이터가 인가된다. 이 테스트 데이터에 의해 로직부(80)가 소망의 동작을 하고, 로직부(80)의 테스트 결과의 출력은 선택기(10, 11, 12)의 "0" 입력단에 전달된다. 시프트 모드 신호 SM=0으로 설정하여 선택기(10, 11, 12)를 "0" 입력단으로 전환하고, 플립플롭(31, 32, 33)에 클럭을 1회 인가하면(플립플롭(30)에 인가해도 좋다), 로직부(80)로부터의 테스트 결과의 3비트의 데이터가 플립플롭(31, 32, 33)에 각각 저장된다. 이 때, 플립플롭(33)에 저장된 1비트의 데이터는 SO 단자에 출력된다.
다음에 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 플립플롭(31, 32, 33)에 클럭을 2회 인가하면(플립플롭(30)에 인가해도 좋다), 플립플롭(31, 32)에 저장된 각 1비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3비트의 데이터의 내용이 확인된다. 이 경우, 로직부(81)에 대한 다음 테스트 데이터를 SI 단자로부터 플립플롭(30, 31)에 저장할 수도 있다. 또한, 이 때, 직렬 시프트 경로에 삽입된 인버터(40, 41, 42)에 배려하여 적절한 테스트 데이터를 인가해야 한다. 또, 이 로직부(80)와 로직부(81)의 스캔 테스트는, 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
RAM(91)의 테스트를 하는 경우에 대해서 설명한다.
우선, RAM(91)에 대하여 초기 데이터의 기록 테스트를 하는 경우에 대해서 설명한다. 루프 인이에블 신호 LOOPEN=0으로 설정하여 선택기(100)를 "0" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=1로 설정하여, 선택기(60, 61, 62)를 "1" 입력단으로 전환한다.
플립플롭(30, 31, 32)에 클럭을 3회 인가하면, 직렬 시프트 동작에 의해, SI 단자로부터의 3비트의 테스트 데이터가 플립플롭(30, 31, 32)에 저장된다. 단지, 플립플롭(31)에는 반전된 테스트 데이터가 저장되기 때문에, SI 단자로부터 "101"을 시프트인한 경우에는, 플립플롭(30, 31, 32)의 출력은 "111"이 된다. 플립플롭(30, 31, 32)의 출력은 인버터(40, 41, 42)에 의해 반전되어, 선택기(10, 11, 12)에 의해 선택되고, 데이터 "000"이 RAM(91)의 입력 단자 DI0, DI1, DI2에 전달된다.
다음에 루프 인이에블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, 인버터(40, 41, 42)에 의해 RAM(91)의 입력 단자 DI0, DI1, DI2의 데이터는 변화되어, "000"의 상태와 "111"의 상태를 반복한다. 소망의 테스트 데이터 "000" 또는 "111"이 설정되었을 때에 RAM(91)에 대하여 기록을 한다. 이 테스트 데이터의 RAM(91)의 기록은, 어드레스를 변경하면서 복수회 반복된다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 하는 경우에 대해서 설명한다. 루프 인이에블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 게이트 회로(110)의 입력에 전해진다. 이 때, 테스트 결과의 데이터가 "111"이면, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
다음에 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 데이터를 저장한다. 다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하면, 플립플롭(30, 31, 32)에 저장되어 있는 데이터는, 인버터(42, 40, 41)에 의해 반전되고, 선택기(12, 10, 11)에 의해 선택되어, RAM(91)의 입력 단자 DI2, DI0, DI1에 전달되고, 또한, 선택기(60, 61, 62)의 "1" 입력단에 전달된다. 이 경우, 플립플롭(32)에 저장되어 있는 데이터는 선택기(100)의 "1" 입력단을 경유한다.
이 때, RAM(91)의 테스트 결과의 데이터가 "000"이면, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, RAM(91)의 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
다음에 이 테스트 결과의 반전 데이터(고장이 없는 경우, "000" 또는 "111")를 RAM(91)에 기록한다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 13에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수가 있고, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1클럭 주기로 전환할 수 있어, RAM(91)의 테스트를 효율적으로 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 13에 따르면, 루프 인이에블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인이에블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 인가할 필요가 없어, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 13에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 13에 따르면, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수 있다는 효과가 얻어진다.
(실시예 14)
도 14는 본 발명의 실시예 14에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 14에서는, 도 14에 나타내는 바와 같이, 실시예 13의 도 13에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측보다 인버터(40, 41, 42)의 출력측으로 게이트 회로(114)로서 이동하고 있다. 이 게이트 회로(114)는 인버터(40, 41, 42)의 출력 데이터가 동일값인 것을 검출하는 것으로, 이것을 배려하여 RAM(91)의 테스트를 하면 좋다. 도 14에서는 게이트 회로(114)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 좋다. 또한, 도 14에서는, 도 13과 마찬가지로, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수가 있다.
다음에 동작에 대해서 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 13과 같다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 하는 경우의 동작도 실시예 13과 같다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 하는 경우에 대하여 설명한다. 루프 인이에블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 플립플롭(30, 31, 32)의 입력에 전해진다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 데이터를 저장한다. 플립플롭(30, 31, 32)에 저장된 테스트 결과의 데이터는, 인버터(40, 41, 42)에 의해 반전되고, 게이트 회로(114)의 인력에 전해진다.
이 때, 테스트 결과의 데이터가 "000"이면, 게이트 회로(114)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, S0 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, RAM(91)에 테스트 결과의 반전 데이터를 기록하고, 또한, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)에 저장되어 있는 데이터는, 인버터(42, 40, 41)에 의해 반전되어, 선택기(12, 10, 11)에 의해 선택되고, 선택기(60, 61, 62)의 "1" 입력단을 경유하여, 플립플롭(30, 31, 32)에 취입되어 출력된다. 이 경우, 플립플롭(32)에 저장되어 있는 데이터는 선택기(100)의 "1" 입력단을 경유한다.
플립플롭(30, 31, 32)의 출력 데이터가 인버터(40, 41, 42)에 의해 반전되어 게이트 회로(114)의 입력에 전달되기 때문에, 플립플롭(30, 31, 32)의 출력이 "000"(테스트 결과의 데이터가 "111")인 경우에는, 게이트 회로(114)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, RAM(91)의 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 14에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수가 있고, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1클럭 주기로 전환할 수 있어, RAM(91)의 테스트를 효율적으로 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 14에 따르면, 루프 인이에블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인이에블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 인가할 필요가 없어, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 14에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다는 효과가 얻어진다.
또한, 이 실시예 14에 따르면, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수 있다는 효과가 얻어진다.
(실시예 15)
도 15는 본 발명의 실시예 15에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 15에서는, 도 15에 나타내는 바와 같이, 실시예 13의 도 13에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측보다 선택기(10, 11, 12)의 출력측으로 게이트 회로(115)로서 이동하고 있다. 이 게이트 회로(115)는 선택기(10, 11, 12)의 출력의 데이터가 동일값인 것을 검출하는 것으로, 이것을 배려하여 RAM(91)의 테스트를 하면 좋다. 도 15에서는 게이트 회로(115)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 좋다. 또한, 도 15에서는, 도 13과 마찬가지로, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수가 있다.
다음에 동작에 대해서 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 13과 같다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 하는 경우의 동작도 실시예 13과 같다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 하는 경우에 대해서 설명한다. 루프 인이에블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 플립플롭(30, 31, 32)의 입력에 전해진다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 데이터를 저장한다. 플립플롭(30, 31, 32)에 저장된 테스트 결과의 데이터는 인버터(40, 41, 42)에 의해 반전되고, 선택기(10, 11, 12)를 거쳐 게이트 회로(115)의 입력에 전해진다.
이 때, 테스트 결과의 데이터가 "000"이면, 게이트 회로(115)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, RAM(91)에 테스트 결과의 반전 데이터를 기록하고, 또한, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)에 저장되어 있는 데이터는 인버터(42, 40, 41)에 의해 반전되고, 선택기(12, 10, 11)에 의해 선택되어, 선택기(60, 61, 62)의 "1" 입력단을 경유해서, 플립플롭(30, 31, 32)에 취입되어 출력된다. 이 경우, 플립플롭(32)에 저장되어 있는 데이터는 선택기(100)의 "1" 입력단을 경유한다.
플립플롭(30, 31, 32)의 출력 데이터가 인버터(40, 41, 42)에 의해 반전되어 선택기(10, 11, 12)를 거쳐 게이트 회로(115)의 입력에 전달되기 때문에, 플립플롭(30, 31, 32)의 출력이 "000"(테스트 결과의 데이터가 "111")인 경우에는, 게이트 회로(115)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, RAM(91)의 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 15에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수가 있고, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1클럭 주기로 전환할 수 있어, RAM(91)의 테스트를 효율적으로 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 15에 따르면, 루프 인이에블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인이에블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼DI2는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 인가할 필요가 없어, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 15에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 15에 따르면, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수 있다는 효과가 얻어진다.
(실시예 16)
도 16은 본 발명의 실시예 16에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 16에서는, 도 16에 나타내는 바와 같이, 실시예 13의 도 13에서의 게이트 회로(110)를, 선택기(60, 61, 62)의 출력측보다 플립플롭(30, 31, 32)의 출력측으로 게이트 회로(116)로서 이동하고 있다. 이 게이트 회로(116)는 플립플롭(30, 31, 32)의 출력의 데이터가 동일값인 것을 검출하는 것으로, 이것을 배려하여 RAM(91)의 테스트를 하면 좋다. 도 16에서는 게이트 회로(116)로서 AND 게이트를 사용하고 있지만, NAND 게이트, OR 게이트, NOR 게이트 중 어느 하나를 사용해도 좋다. 또한, 도 16에서는, 도 13과 마찬가지로, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수가 있다.
다음에 동작에 대해서 설명한다.
통상 동작시 및 로직부(80, 81)의 스캔 테스트시의 동작은 실시예 13과 같다. 또한, RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 하는 경우의 동작도 실시예 13과 같다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 하는 경우에 대해서 설명한다. 루프 인이에블 신호 LOOPEN=1로 설정하여 선택기(100)를 "1" 입력단으로 전환하고, 시프트 모드 신호 SM=1로 설정하여 선택기(10, 11, 12)를 "1" 입력단으로 전환하고, 테스트 모드 신호 TEST2=0으로 설정하여 선택기(60, 61, 62)를 "0" 입력단으로 전환한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 선택기(60, 61, 62)를 거쳐서 플립플롭(30, 31, 32)의 입력에 전해진다. 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 데이터를 저장한다. 플립플롭(30, 31, 32)에 저장된 테스트 결과의 데이터는 게이트 회로(116)의 입력에 전해진다.
이 때, 테스트 결과의 데이터가 "111"이면, 게이트 회로(116)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, S0 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
다음에 테스트 모드 신호 TEST2=1로 설정하여 선택기(60, 61, 62)를 "1" 입력단으로 전환하고, RAM(91)에 테스트 결과의 반전 데이터를 기록하고, 또한, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)에 저장되어 있는 데이터는 인버터(42, 40, 41)에 의해 반전되고, 선택기(12, 10, 11)에 의해 선택되어, 선택기(60, 61, 62)의 "1" 입력단을 경유해서, 플립플롭(30, 31, 32)에 취입되어 출력된다. 이 경우, 플립플롭(32)에 저장되어 있는 데이터는 선택기(100)의 "1" 입력단을 경유한다.
플립플롭(30, 31, 32)의 출력 데이터가 게이트 회로(116)의 입력에 전달되기 때문에, 플립플롭(30, 31, 32)의 출력이 "111"(테스트 결과의 데이터가 "000")인 경우에는, 게이트 회로(116)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, RAM(91)의 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 16에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수가 있고, RAM(91)에 기록하는 테스트 데이터를, 모두 0("000")이나 모두 1("111")로 1클럭 주기로 전환할 수 있어, RAM(91)의 테스트를 효율적으로 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 16에 따르면, 루프 인이에블 신호 LOOPEN=0으로 설정하여, SI 단자로부터 플립플롭(30, 31, 32)에 "111" 또는 "000"이 되는 테스트 데이터를 시프트인하고, 그 후, 루프 인이에블 신호 LOOPEN=1로 전환하면, 플립플롭(30, 31, 32)에 클럭을 인가할 때마다, RAM(91)의 입력 단자 DI0∼D12는 "111"과 "000"의 상태를 교대로 반복하기 때문에, SI 단자로부터 새롭게 테스트 데이터를 인가할 필요가 없어, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 16에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
또한, 이 실시예 16에 따르면, 통상 동작시에는 회로 규모의 증가없이, 플립플롭(30, 31, 32)을 통상 동작시의 RAM(91)의 출력 레지스터로서 이용할 수 있다는 효과가 얻어진다.
(실시예 17)
도 17은 본 발명의 실시예 17에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 17에서는, 도 17에 나타내는 바와 같이, 실시예 8의 도 8에서의 선택기(10, 11, 12) 및 선택기(60, 61, 62)를, AND-OR 복합 게이트형 선택기(10a, 11a, 12a) 및 AND-OR 복합 게이트형 선택기(60a, 61a, 62a)로 변경하고, AND-OR 복합 게이트형 선택기(10a, 11a, 12a)는 시프트 모드 신호 SMA, SMB에 의해 제어되고, 복합 게이트형 선택기(60a, 61a, 62a)는 테스트 모드 신호 TEST2A, 2B에 의해 제어된다.
다음에 동작에 대해서 설명한다.
통상 동작시의 동작은 실시예 8과 기본적으로 같다. 단지, 도 17에서는, 시프트 모드 신호 SMA=0, 시프트 모드 신호 SMB=1로 설정하여, AND-OR 복합 게이트형 선택기(10a, 11a, 12a)는 로직부(80)의 출력을 선택하고, 테스트 모드 신호 TEST2A=0, 테스트 모드 신호 TEST2B=1로 설정하여, 복합 게이트형 선택기(60a, 61a, 62a)는 RAM(91)의 출력을 선택하는 것에 의해, RAM(91)가 로직부(80)와 로직부(81) 사이에 삽입된 상태로 된다. 또한, 통상 동작시에는, 플립플롭(30, 31, 32)에 클럭을 인가하지 않아도 좋다.
로직부(80, 81)의 스캔 테스트시의 동작도 실시예 8과 기본적으로 같다. 단지, 도 17에서는, 루프 인이에블 신호 LOOPEN=0으로 설정하여 선택기(100)를 "0" 입력단으로 전환하고, 테스트 모드 신호 TEST2A=1, 테스트 모드 신호 TEST2B=0으로 설정하여, 복합 게이트형 선택기(60a, 61a, 62a)는 스캔 패스를 선택하는 것에 의해, RAM(91)는 바이패스되어, 스캔 패스가 로직부(80)와 로직부(81)의 사이에 삽입된 상태로 된다. 그 상태에서 시프트 모드 신호 SMA, SMB를 제어하여 로직부(80, 81)의 스캔 테스트를 한다.
로직부(81)의 스캔 테스트를 하는 경우에는, 시프트 모드 신호 SMA=1, 시프트 모드 신호 SMB=0으로 설정하고, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, SI 단자로부터의 2비트의 테스트 데이터가, 직렬 시프트 동작에 의해 플립플롭(30, 31)에 저장된다.
테스트 모드 신호 TEST2A=1로 설정되어 있기 때문에, SI 단자의 다음 1비트의 테스트 데이터는 복합 게이트형 선택기(60a)에 의해 선택되어 로직부(81)에 입력되고, 플립플롭(30, 31)에 저장된 각 1비트의 테스트 데이터는, 각각 복합 게이트형 선택기(61a, 62a)에 의해 선택되어 로직부(81)에 입력되며, 합계 3비트의 테스트 데이터에 의해 로직부(81)의 스캔 테스트가 행해진다.
로직부(80)의 스캔 테스트를 하는 경우에는, 시프트 모드 신호 SMA=0, 시프트 모드 신호 SMB=1로 설정하고, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 테스트 데이터를 입력한 로직부(80)로부터의 테스트 결과의 3비트의 데이터가, 플립플롭(30, 31, 32)에 각각 저장된다. 이 때, 플립플롭(32)에 저장된 1비트의 데이터는 SO 단자에 출력된다.
다음에 시프트 모드 신호 SMA=1, 시프트 모드 신호 SMB=0으로 설정하여, 플립플롭(30, 31, 32)에 클럭을 2회 인가하면, 플립플롭(30, 31)에 저장된 각 1비트의 데이터는 SO 단자에 시프트아웃되어, 합계 3비트의 데이터의 내용이 확인된다. 이 경우, 로직부(81)에 대한 다음 테스트 데이터를 SI 단자로부터 플립플롭(30, 31)에 저장할 수도 있다. 또, 이 로직부(80)와 로직부(81)의 스캔 테스트는 입력하는 테스트 데이터를 변경하여 복수회 반복된다.
RAM(91)의 테스트시에는, 시프트 모드 신호 SMA=0, SMB=0의 상태 및 테스트 모드 신호 TEST2A=0, TEST2B=0의 상태를 활용하는 것에 의해, RAM(91)의 기록 데이터를 용이하게 제어할 수 있다. 구체적으로는, 시프트 모드 신호 SMA=0, SMB=0으로 설정하는 것에 의해, RAM(91)의 입력 단자 DI0, DI1, DI2에의 입력 데이터를 "000"의 상태로 설정할 수 있다. 또한, 시프트 모드 신호 SMA=1, 테스트 모드 신호 TEST2A=0, TEST2B=0으로 설정하는 것에 의해, RAM(91)의 입력 단자 DI0, DI1, DI2에의 입력 데이터를 "111"의 상태로 설정할 수 있다. 즉, 이 실시예 17에서는, 스캔 패스의 직렬 시프트 동작에 의한 기록 데이터의 설정은 불필요하게 된다.
RAM(91)의 테스트에 의해 RAM(91)에 대하여 초기 데이터의 기록 테스트를 하는 경우의 동작에 대해서 설명한다. 시프트 모드 신호 SMA=0, SMB=0으로 설정하는 것에 의해, RAM(91)의 입력 단자 DI0, DI1, DI2에의 초기 데이터를 "000"의 상태로 설정하여, 초기 데이터 "000"을 기록한다. 또한, 시프트 모드 신호 SMA=1, 테스트 모드 신호 TEST2A=0, TEST2B=0으로 설정하는 것에 의해, RAM(91)의 입력 단자 DI0, DI1, DI2에의 초기 데이터를 "111"의 상태로 설정하고, 초기 데이터 "111"을 기록한다. 또, 이 초기 데이터의 기록은 동작은 어드레스를 바꾸면서 복수회 행한다.
다음에 RAM(91)의 특정 어드레스에 대하여 판독 및 기록 테스트를 하는 경우에 대해서 설명한다. 루프 인이에블 신호 LOOPEN=1, 시프트 모드 신호 SMA=1, SMB=0, 테스트 모드 신호 TEST2A=0, 테스트 모드 신호 TEST2B=1로 설정한다.
RAM(91)의 특정 어드레스에 대하여 판독 테스트를 하면, 테스트 결과의 데이터가 RAM(91)의 출력 단자 DO0, DO1, DO2에 출력되고, 각각 복합 게이트형 선택기(60a, 61a, 62a)를 거쳐 게이트 회로(110)의 입력에 전해진다. 이 때, 테스트 결과의 데이터가 "111"이면, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "111" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다.
또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터는, 인버터(40, 41, 42)에 의해 반전되고, AND-OR 복합 게이트형 선택기(10a, 11a, 12a)를 거쳐서 RAM(91)의 입력 단자 DI0, DI1, DI2에 인가된다. 다음에 이 테스트 결과의 반전 데이터를 RAM(91)에 기록하고, 또한, 플립플롭(30, 31, 32)에 클럭을 1회 인가하면, 플립플롭(30, 31, 32)이 이 테스트 결과의 반전 데이터를 저장한다. 다음에 테스트 모드 신호 TEST2A=1, 테스트 모드 신호 TEST2B=0으로 설정하여, 플립플롭(30, 31, 32)에 저장되어 있는 테스트 결과의 반전 데이터가, 각각 복합 게이트형 선택기(60a, 61a, 62a)를 거쳐 게이트 회로(110)의 입력에 전해진다. 이 경우, 플립플롭(32)에 저장되어 있는 데이터는, 선택기(100)의 "1" 입력단을 경유한다.
테스트 결과의 데이터가 "000"이면, 게이트 회로(110)의 입력은 "111"로 되어, 게이트 회로(110)로부터 출력되는 모니터 신호 MONI는 "1"이 되고, 테스트 결과의 데이터가 "000" 이외이면, 모니터 신호 MONI는 "0"이 된다. 따라서, 모니터 신호 MONI를 체크하는 것에 의해, RAM(91)의 출력 단자 DO0, DO1, DO2로부터 출력되는 테스트 결과의 데이터가 "000"인지 여부를, SO 단자로부터 시프트아웃하지 않아도 판정할 수가 있다. 또, 이 RAM(91)의 판독 및 기록 테스트는 어드레스를 변경하여 복수회 반복된다.
이상과 같이, 이 실시예 17에 따르면, 테스트 회로의 규모를 크게 하지 않고 RAM(91) 단독으로 테스트할 수가 있고, RAM(91)의 테스트시에, 시프트 모드 신호 SMA=0, SMB=0의 상태 및 테스트 모드 신호 TEST2A=0, TEST2B=0의 상태를 활용하는 것에 의해, 스캔 패스의 직렬 시프트 동작에 의한 기록 데이터의 설정은 불필요하게 되어, RAM(91)의 기록 데이터를 용이하게 제어할 수 있고, 또한, 통상 동작시에는, 플립플롭(30, 31, 32)에는 클럭을 인가하지 않아도 된다고 하는 효과가 얻어진다.
또한, 이 실시예 17에 따르면, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 "111"인지의 테스트와, "000"인지의 테스트를, SO 단자로부터 시프트아웃하지 않아도 모니터 신호 MONI의 체크만으로 할 수 있기 때문에, RAM(91)의 테스트를 쉽게 할 수 있다고 하는 효과가 얻어진다.
(실시예 18)
도 18은 본 발명의 실시예 18에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 18에서는, 도 18에 나타내는 바와 같이, 실시예 17의 도 17에서의 AND-OR 복합 게이트형 선택기(60a, 61a, 62a)를, AND-NOR 복합 게이트형 선택기(60b, 61b, 62b)로 변경하며, 도 17에서의 스캔 패스에 삽입되어 있는 인버터(40, 41, 42)를 삭제하고, AND-NOR 복합 게이트형 선택기(60b, 61b, 62c)의 출력으로부터 로직부(81)에의 경로에 인버터(40a, 41a, 42a)를 추가하고 있다.
다음에 동작에 대해서 설명한다.
AND-NOR 복합 게이트형 선택기(60b, 61b, 62b)는 인버터 기능을 포함하고 있기 때문에, 도 17에서 스캔 패스에 삽입되어 있는 인버터(40, 41, 42)는 불필요하게 된다. 또한, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 반전하여 로직부(81)에 전해지지 않도록, AND-NOR 복합 게이트형 선택기(60b, 61b, 62b)의 출력을, 인버터(40a, 41a, 42a)를 거치고 나서 로직부(81)에 전달하고 있다. 또, RAM(91)의 출력 단자 DO0, DO1, DO2로부터의 테스트 결과의 데이터가 반전하여 로직부(81)에 전달되어도 좋은 경우에는, 인버터(40a, 41a, 42a)를 삭제한다. 그 밖의 동작에 대해서는, 실시예 17과 같다.
이상과 같이, 이 실시예 18에 따르면 실시예 17과 마찬가지의 효과가 얻어진다.
(실시예 19)
도 19는 본 발명의 실시예 19에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 실시예 8의 도 8에서는 3비트의 RAM(91)을 대상으로 하고 있지만, 이 실시예 19에서는, 도 19에 나타내는 바와 같이 4비트의 RAM(91a)을 대상으로 하고 있다. 즉, RAM(91a)의 입력 단자를 DI0, DI1, DI2, DI3, 출력 단자를 DO0, DO1, DO2, DO3으로 하고, 선택기(13), 선택기(63), 플립플롭(33), 인버터(43)를 추가하며, 로직부(80)의 출력 단자와 로직부(80)의 입력 단자를 4비트로 하고, 실시예 8의 도 8에서의 게이트 회로(110)를, 3개의 게이트 회로(110a, 110b, 110c)로 구성하고 있다. 게이트 회로(110a)의 입력을 선택기(60, 62)의 출력에 접속하고, 게이트 회로(110b)의 입력을 선택기(61, 63)의 출력에 접속하며, 게이트 회로(110c)의 입력을 게이트 회로(110a, 110b)의 출력에 접속하고, 게이트 회로(110c)의 출력은 도 8에서의 게이트 회로(110)의 출력에 상당한다.
다음에 동작에 대해서 설명한다.
예컨대, RAM(91a)의 테스트시에, 테스트 모드 신호 TEST2=0의 상태에서, 게이트 회로(110a)의 출력 MONIA를 모니터링하는 것에 의해, RAM(91a)의 짝수비트번째의 출력 DO0, DO2에 대한 고장의 유무를 테스트할 수 있다. 마찬가지로, 게이트 회로(110b)의 출력 MONIB를 모니터링하는 것에 의해, RAM(91a)의 홀수비트번째의 출력 DO1, DO3에 대한 고장의 유무를 테스트할 수 있다. 즉, 실시예 19에서는, 실시예 8에 비해, RAM(91a)의 고장 위치가 짝수 비트인지 홀수 비트인지를 판정할 수 있는 기능이 추가되어 있기 때문에, RAM(91a)의 보다 상세한 고장 진단을 행할 수 있다. 그 밖의 동작은 실시예 8과 마찬가지다.
이상과 같이, 이 실시예 19에 따르면, 실시예 8의 효과 외에, RAM(91a)의 보다 상세한 고장 진단을 할 수 있다고 하는 효과가 얻어진다.
(실시예 20)
도 20은 본 발명의 실시예 20에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도이다. 이 실시예 20에서는, 도 20에 나타내는 바와 같이, 실시예 8의 도 8에 대하여, 페일플래그 생성 회로(FAIL FLAG GENERATOR)(120)와 OR 회로(130)를 추가하여, RAM(91)의 고장 진단을 쉽게 하는 것이다. 페일플래그 생성 회로(120)는, 인버터(121), AND 회로(122), OR 회로(123), AND 회로(124), 플립플롭(125)에 의해 구성되어 있다.
도 20에 나타내는 페일플래그 생성 회로(120)에서, 컴페어 인에이블 신호 CMPEN은, 기본적으로는 RAM 테스트시에 모니터 신호 MONI=1로 되는 것이 기대되고 있는 경우에, 컴페어 인에이블 신호 CMPEN=1로 설정되어, 모니터 신호 MONI가 불확정의 경우나, 모니터 신호 MONI=0이 기대되고 있는 경우는, 컴페어 인에이블 신호 CMPEN=0으로 설정되어, 모니터 신호 MONI의 비교 동작은 마스크 상태로 된다. 페일모니터 신호 FAILMONI는 고장의 유무를 실시간으로 판정하기 위해서, 예컨대 LSI 내부에 탑재되어 있는 셀프테스팅 제어 회로에 출력된다. 즉, 컴페어 인에이블 신호 CMPEN=1로 설정되어 있는 상태에서, 기대에 반하여 고장이 존재하는 경우에는 모니터 신호 MONI=0으로 되어, 페일모니터 신호 FAILMONI=1이 출력된다.
리셋 신호 RESETL=0으로 설정하여, 플립플롭(125)에 클럭을 인가하면 플립플롭(125)은 "0"으로 리셋된다. 페일플래그 신호 FAILFLAG는, RAM의 테스트 결과를 판정하기 위해서, 예컨대 LSI 내부에 탑재되어 있는 셀프테스팅 제어 회로에 출력되고, 고장이 없으면 페일모니터 신호 FAILMONI=0, 고장이 있으면 페일모니터 신호 FAILMONI=1로 된다. 일단, 페일플래그 신호 FAILFLAG=1로 되면, 그 상태가 유지되도록, 페일플래그 생성 회로(120) 내에 OR 회로(123)가 마련되고 있다.
OR 회로(130)는, 외부로부터의 테스트 모드 신호 TEST2A 또는 페일플래그 신호 FAILFLAG에 의해, 선택기(60, 61, 62)에 대한 테스트 모드 신호 TEST2를 출력한다.
다음에 동작에 대해서 설명한다.
RAM(91)의 고장 진단시에는, 리셋 신호 RSETL=0인 상태에서, 페일플래그 생성 회로(120) 내의 플립플롭(125)에 클럭을 인가하여, 페일플래그 신호 FAILFLAG=0으로 설정한다. 다음에 리셋 신호 RSETL=1로 설정하여 실시예 8의 도 8에서 설명한 바와 같은 RAM(91)의 테스트를 실행한다.
고장이 존재하여 게이트 회로(110)로부터의 모니터 신호 MONI=0으로 하면, AND 회로(124)의 출력은 "1"로 되고, 플립플롭(125)에 클럭을 인가하면, 페일플래그 신호 FAILFLAG=1로 되어 출력되고, 또한, 테스트 모드 신호 TEST2=1로 설정되어, 선택기(60, 61, 62)를 "1" 입력단으로 전환한다. 이 때, 플립플롭(30, 31, 32)에도 클럭을 인가하여 고장 데이터를 저장한다. 여기서 다음 이후의 RAM 테스트를 취소하고, 페일플래그 신호 FAILFLAG=1로 된 원인을 구명하기 위한 고장 해석 동작이, 예컨대 LSI 내부에 탑재되어 있는 셀프테스팅 제어 회로에서 행해진다.
RAM(91)의 테스트의 테스트시에는, 시프트 모드 신호 SM=1로 되어 있기 때문에, 루프 인이에블 신호 LOOPEN=1, 테스트 모드 신호 TEST2=1, 시프트 모드 신호 SM=1로 설정되어 있는 상태에서, 플립플롭(30, 31, 32)에도 클럭을 인가해도, 이 고장 데이터는, 스캔 패스의 직렬 시프트 경로의 3개의 플립플롭(30, 31, 32)의 루프 접속된 순환 시프트 레지스터 내에 유지되어 있기 때문에, 인가된 정확한 클럭수를 파악해 두면, SO 단자로부터 고장 데이터를 포함하는 데이터를 시프트아웃하고, 어떤 데이터 비트의 고장이었는지를 분석할 수 있다.
예컨대, RAM(91)의 0번지, 1번지, 2번지, 3번지…의 순서로 테스트를 하는 경우에 대해서 설명한다. 1번지에서 최초의 고장이 검출된 이후는 페일플래그 신호 FAILFLAG=1로 되어 고장 해석 동작에 이행한다. 세 개의 플립플롭(30, 31, 32)의 루프 접속된 순환 시프트 레지스터 내에 유지되어 있는 고장 데이터를 포함하는 데이터는 SO 단자로부터 시프트아웃된다.
2개째의 고장을 검출하는 테스트를 하는 경우에는, 페일플래그 신호 FAILFLAG를 리셋하는 동작으로부터 시작한다. 단, 0번지, 1번지의 테스트시에는 컴페어 인에이블 신호 CMPEN=0으로 하여 비교 동작은 마스크 상태로 한다. 컴페어 인에이블 신호 CMPEN=0으로 하는 제어는, 예컨대 셀프테스팅 제어 회로에 축적된 최초의 고장의 어드레스에 의해 행해진다. 0번지, 1번지의 테스트시에는 컴페어 인에이블 신호 CMPEN=0으로 설정되기 때문에, 모니터 신호 MONI의 값에 관계없이, 페일모니터 신호 FAILMONI는 강제적으로 "0"으로 되어 마스크 상태로 된다.
2번지 이후의 테스트에서는, 적절히 컴페어 인에이블 신호 CMPEN을 제어하여 비교 동작을 한다. 예컨대 3번지에 두개째의 고장이 존재하는 경우에는, 3번지의 테스트 시점에서 페일플래그 신호 FAILFLAlG=1로 되어, 이 시점에서 고장 해석 동작에 이행하고, 3개의 플립플롭(30, 31, 32)의 루프 접속된 순환 시프트 레지스터 내에 유지되어 있는 고장 데이터를 포함하는 데이터는 SO 단자로부터 시프트아웃된다.
RAM(91)가 용장 기능부 RAM인 경우에는, 이들 고장 데이터를 용장 회로의 전환 제어 데이터로서 사용할 수 있다.
이상과 같이, 이 실시예 20에 따르면, 실시예 8의 효과 외에, 페일플래그 생성 회로(120)에 의해 페일플래그 신호 FAILFLAG를 생성하여, RAM(91)의 고장 데이터를 플립플롭(30, 31, 32)에 저장하고, 테스트 종료 후, 또는 테스트 중단 후에, S0 단자로부터 고장 데이터를 시프트아웃하는 것에 의해, 검출된 고장에 대한 상세한 진단을 할 수 있다고 하는 효과가 얻어진다.
또, 본 발명의 실시는 기능 블록(90) 또는 RAM(91)의 입출력 단자의 모두에 적용할 필요는 없고, 부분적인 적용에 의해서도 효과가 있다. 예컨대, 기능 블록(90)의 입력 단자수와 출력 단자수가 다른 경우에는 적은 쪽에 맞춰 쌍을 이루어 본 발명을 실시하면 좋다.
이에 따라, 테스트 회로의 규모를 크게 하지 않고 기능 블록 단독으로 테스트할 수 있다는 효과가 있다.
도 1은 본 발명의 실시예 1에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 2는 본 발명의 실시예 2에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 3은 본 발명의 실시예 3에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 4는 본 발명의 실시예 4에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 5는 본 발명의 실시예 5에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 6은 본 발명의 실시예 6에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 7은 본 발명의 실시예 7에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 8은 본 발명의 실시예 8에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 9는 본 발명의 실시예 9에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 10은 본 발명의 실시예 10에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 11은 본 발명의 실시예 11에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 12는 본 발명의 실시예 12에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 13은 본 발명의 실시예 13에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 14는 본 발명의 실시예 14에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 15는 본 발명의 실시예 15에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 16은 본 발명의 실시예 16에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 17은 본 발명의 실시예 17에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 18은 본 발명의 실시예 18에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 19는 본 발명의 실시예 19에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 20은 본 발명의 실시예 20에 따른 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 21은 종래의 반도체 집적 회로 장치의 구성을 나타내는 회로도,
도 22는 종래의 반도체 집적 회로 장치의 구성을 나타내는 회로도.
도면의 주요 부분에 대한 부호의 설명
10, 11, 12, 13 : 선택기
10a, 11a, 12a : AND-OR 복합 게이트형 선택기
20, 21, 22 : 인버터
30, 31, 32, 33 : 플립플롭 40, 41, 42, 43 : 인버터
40a, 41a, 42a : 인버터 60, 61, 62, 63 : 선택기
60a, 61a, 62a : AND-OR 복합 게이트형 선택기
60b, 61b, 62b : AND-NOR 복합 게이트형 선택기
80, 81 : 로직부 90 : 기능 블록
91 : RAM 91a : RAM
100 : 선택기
110, 111, 112, 113, 114, 115, 116 : 게이트 회로
110a, 110b, 110c : 게이트 회로 120 : 페일플래그 생성 회로
121 : 인버터 122 : AND 회로
123 : OR 회로 124 : AND 회로
125 : 플립플롭 130 : OR 회로
Claims (1)
- 제 1, 제 2 로직부와,상기 제 1 로직부와 상기 제 2 로직부 사이에 접속된 기능 블록과,상기 제 1 로직부의 출력과 상기 기능 블록의 입력간의 병렬 경로와 데이터를 직렬로 전달하기 위한 직렬 시프트 경로를 갖고, 상기 제 1 로직부의 출력과 상기 직렬 시프트 경로를 전환하여 상기 기능 블록의 입력에 접속하기 위한 복수의 제 1 선택기와, 상기 데이터를 저장하는 복수의 플립플롭에 의해 구성된 스캔 패스를 구비한 반도체 집적 회로 장치에 있어서,상기 스캔 패스의 직렬 시프트 경로 상에 접속되고, 상기 기능 블록의 출력과 상기 직렬 시프트 경로를 전환하여 상기 제 2 로직부의 입력에 접속하기 위한 복수의 제 2 선택기를 구비하고,상기 스캔 패스의 직렬 시프트 경로로부터 테스트 데이터를 상기 제 2 선택기를 거쳐 상기 기능 블록에 인가하고, 상기 제 2 선택기를 전환하여 상기 기능 블록으로부터 출력된 데이터를 상기 제 2 선택기를 거쳐서 출력하는것을 특징으로 하는 반도체 집적 회로 장치.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPJP-P-2002-00364099 | 2002-12-16 | ||
JP2002364099 | 2002-12-16 | ||
JPJP-P-2003-00353924 | 2003-10-14 | ||
JP2003353924A JP4315775B2 (ja) | 2002-12-16 | 2003-10-14 | 半導体集積回路装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20040055625A KR20040055625A (ko) | 2004-06-26 |
KR100527229B1 true KR100527229B1 (ko) | 2005-11-08 |
Family
ID=32828685
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR10-2003-0091890A KR100527229B1 (ko) | 2002-12-16 | 2003-12-16 | 반도체 집적 회로 장치 |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP4315775B2 (ko) |
KR (1) | KR100527229B1 (ko) |
CN (1) | CN100375199C (ko) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5099869B2 (ja) * | 2005-02-23 | 2012-12-19 | ルネサスエレクトロニクス株式会社 | 半導体集積回路および半導体集積回路のテスト方法 |
JP2006337325A (ja) * | 2005-06-06 | 2006-12-14 | Renesas Technology Corp | テスト回路 |
JP4707053B2 (ja) * | 2005-06-06 | 2011-06-22 | ルネサスエレクトロニクス株式会社 | 半導体集積回路装置 |
JP2007183130A (ja) * | 2006-01-05 | 2007-07-19 | Nec Electronics Corp | バーンインテスト回路、方法、装置、及びパターン生成プログラム |
US7665003B2 (en) * | 2006-12-15 | 2010-02-16 | Qualcomm Incorporated | Method and device for testing memory |
JP5293940B2 (ja) * | 2008-05-29 | 2013-09-18 | ミツミ電機株式会社 | 半導体集積回路装置およびその試験方法 |
US8627159B2 (en) * | 2010-11-11 | 2014-01-07 | Qualcomm Incorporated | Feedback scan isolation and scan bypass architecture |
JP5793978B2 (ja) * | 2011-06-13 | 2015-10-14 | 富士通セミコンダクター株式会社 | 半導体装置 |
CN111366842B (zh) * | 2020-03-09 | 2022-04-22 | 广芯微电子(广州)股份有限公司 | 一种芯片量产测试方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5729553A (en) * | 1994-08-29 | 1998-03-17 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit with a testable block |
JP3691144B2 (ja) * | 1995-12-20 | 2005-08-31 | 株式会社ルネサステクノロジ | スキャンパス構成回路 |
JP3691170B2 (ja) * | 1996-08-30 | 2005-08-31 | 株式会社ルネサステクノロジ | テスト回路 |
CN1223443A (zh) * | 1998-01-16 | 1999-07-21 | 三菱电机株式会社 | 半导体集成电路装置 |
-
2003
- 2003-10-14 JP JP2003353924A patent/JP4315775B2/ja not_active Expired - Fee Related
- 2003-12-16 KR KR10-2003-0091890A patent/KR100527229B1/ko not_active IP Right Cessation
- 2003-12-16 CN CNB2003101233778A patent/CN100375199C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1534687A (zh) | 2004-10-06 |
KR20040055625A (ko) | 2004-06-26 |
CN100375199C (zh) | 2008-03-12 |
JP4315775B2 (ja) | 2009-08-19 |
JP2004212384A (ja) | 2004-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3076185B2 (ja) | 半導体メモリ装置及びその検査方法 | |
US7313739B2 (en) | Method and apparatus for testing embedded cores | |
US4768196A (en) | Programmable logic array | |
KR0174340B1 (ko) | 매립 논리 회로 검사 시스템 및 그 검사 방법과 집적 회로 칩 | |
KR0131185B1 (ko) | 논리회로 | |
JP3893238B2 (ja) | 半導体記憶装置の不良解析装置 | |
US5717695A (en) | Output pin for selectively outputting one of a plurality of signals internal to a semiconductor chip according to a programmable register for diagnostics | |
US10706951B2 (en) | Semiconductor integrated circuit including a memory macro | |
US11073556B2 (en) | Low pin count reversible scan architecture | |
US20210033669A1 (en) | Reversible Multi-Bit Scan Cell-based Scan Chains For Improving Chain Diagnostic Resolution | |
US4912395A (en) | Testable LSI device incorporating latch/shift registers and method of testing the same | |
US7076706B2 (en) | Method and apparatus for ABIST diagnostics | |
KR100527229B1 (ko) | 반도체 집적 회로 장치 | |
US7392449B2 (en) | Method, apparatus, and computer program product for diagnosing a scan chain failure employing fuses coupled to the scan chain | |
US7107502B2 (en) | Diagnostic method for detection of multiple defects in a Level Sensitive Scan Design (LSSD) | |
JP3614993B2 (ja) | テスト回路 | |
JP3207727B2 (ja) | 半導体集積回路およびその応用装置 | |
US7441169B2 (en) | Semiconductor integrated circuit with test circuit | |
US5425035A (en) | Enhanced data analyzer for use in bist circuitry | |
EP0933644B1 (en) | Device scan testing | |
KR100319711B1 (ko) | 디버깅기능을갖는내장자기테스트회로 | |
KR20050041706A (ko) | 반도체 테스트 장치 | |
US6421810B1 (en) | Scalable parallel test bus and testing method | |
Mittal et al. | Industry Evaluation of Reversible Scan Chain Diagnosis | |
US20030126525A1 (en) | Semiconductor device, method of testing the same and electronic instrument |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111019 Year of fee payment: 7 |
|
FPAY | Annual fee payment |
Payment date: 20121023 Year of fee payment: 8 |
|
LAPS | Lapse due to unpaid annual fee |