KR100657077B1 - 디버그 회로 - Google Patents

디버그 회로 Download PDF

Info

Publication number
KR100657077B1
KR100657077B1 KR1020040074467A KR20040074467A KR100657077B1 KR 100657077 B1 KR100657077 B1 KR 100657077B1 KR 1020040074467 A KR1020040074467 A KR 1020040074467A KR 20040074467 A KR20040074467 A KR 20040074467A KR 100657077 B1 KR100657077 B1 KR 100657077B1
Authority
KR
South Korea
Prior art keywords
block
signal
output
lsi
circuit
Prior art date
Application number
KR1020040074467A
Other languages
English (en)
Other versions
KR20050028830A (ko
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 마츠시타 덴끼 산교 가부시키가이샤
Publication of KR20050028830A publication Critical patent/KR20050028830A/ko
Application granted granted Critical
Publication of KR100657077B1 publication Critical patent/KR100657077B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/24Marginal checking or other specified testing methods not covered by G06F11/26, e.g. race tests
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31705Debugging aspects, e.g. using test circuits for debugging, using dedicated debugging test circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

LSI를 장치 기판에 실장하여 기능 평가할 때 동작 불량이 발생한 경우, 그 원인 해석은 내부 회로의 동작을 상세하게 파악할 수 없기 때문에, 매우 곤란하여, 이 문제를 해결하는 디버그 회로를 제공한다.
변환 블록(140)에서 선택 블록(120)으로부터 출력된 불량의 원인 해명에 유효하다고 생각되는 복수의 내부 신호를 타이밍 생성 블록(130)으로부터 출력된 신호로 래치하고, 직렬 데이터로 변환하여 출력 블록(150)에 출력함으로써, 적은 외부 핀으로 LSI 내부의 복수의 신호를 관측 가능해지고, LSI의 동작 불량의 해석을 빠르게 또한 확실하게 실행할 수 있는 구성으로 했다.

Description

디버그 회로{DEBUG CIRCUIT}
도 1은 본 발명의 실시예 1에 의한 디버그 회로의 구성을 나타내는 블록도,
도 2는 본 발명의 실시예 2에 의한 디버그 회로의 구성을 나타내는 블록도,
도 3은 본 발명의 실시예 3에 의한 디버그 회로의 구성을 나타내는 블록도,
도 4는 본 발명의 실시예 4에 의한 디버그 회로의 구성을 나타내는 블록도,
도 5는 본 발명의 실시예 5에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도면의 주요 부분에 대한 부호의 설명
100 : LSI 110 : 논리 회로
111, 121, 131, 141, 151, 161, 171, 181, 191 : 레지스터
112~118, 122~127, 132, 142 : 선택 회로
120 : 선택 블록 130 : 타이밍 생성 블록
140 : 변환 블록 143 : 병렬 직렬 변환 회로
150 : 출력 블록 160 : 트리거 신호 생성 블록
162 : 논리 연산 회로 170 : 변화점 반전 블록
172~177, 182~187 : 신호 처리 회로
180 : 펄스폭 변경 블록 190 : 신호 레벨 판별 블록
192 : 레벨 판별 회로
본 발명은 디버그 회로, 특히 LSI(대규모 집적 회로)의 논리 회로의 동작 불량시에 LSI의 논리 회로의 타이밍을 디버그하는 회로에 관한 것이다.
LSI는 일반적으로 극히 다수의 회로가 고밀도로 집적되어 있기 때문에, 설계 시작 단계에서 각 회로가 정상으로 동작할 뿐만 아니라, 회로 상호간의 동작도 보증할 필요가 있다. 특히, 이들 회로로의 신호로(信號路)에는 불가피적으로 전파 지연 등을 수반하기 때문에, 신호의 타이밍의 차이에 의해 동작 이상(불량)을 발생하는 경우가 있다.
불량이 발생한 경우에는 디버그를 실행하여, 그 원인을 구명하여 해결할 필요가 있다. 종래의 LSI의 동작 불량의 디버그 기법으로서는, 프로그램의 순서와 LSI의 외부 단자를 논리 분석기 등의 측정기에 의한 파형 관측으로부터 얻어지는 한정된 정보에 근거해 내부 상태를 추정하고, 그 상태가 논리적으로 설계 데이터에 적합한지 여부를 판단한다.
또한, LSI의 내부 타이밍 신호를 미리 복수의 선택 회로에 입력해 두고, LSI 외부로부터 레지스터 설정된 레지스터의 값을 디코드하여 복수의 선택 회로에 입력하는 것에 의해, 소망하는 신호를 외부 단자로부터 직접 관측할 수 있는 회로도 제안되고 있다(예를 들면, 특허 문헌 1 참조).
[특허 문헌 1] 일본 특허 공개 제2000-259441호 공보(제 1-4 페이지, 도 1)
그러나, 상기 종래의 기술에서는, 전자의 경우에는 LSI의 내부 상태를 적은 정보에 근거하여 추정/가정해야 되기 때문에, LSI의 동작 불량의 원인 구명에 많은 시간이 걸린다고 하는 문제가 있었다. 또한, 후자의 경우, LSI 내부의 신호를 직접 외부에 출력하기 때문에, 원인을 해석하기 위해서는 많은 전용 외부 핀이 필요로 된다고 하는 문제가 있었다. 또한, 내부 타이밍 신호에는 고속으로 동작하고 있는 신호가 많기 때문에, LSI 외부에서 관측하기 위해서는 그 속도에 대응한 계측기가 필요로 되는 문제도 있었다. 또한, 내부 타이밍 신호 단체에서는 문제의 해석을 개시하기 위한 트리거를 발생할 수 없는 경우가 있다고 하는 문제도 있었다.
본 발명은 상기한 바와 같은 종래 문제를 해결하기 위해서 이루어진 것으로, 선택 회로 및 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하여, 논리 회로 내부의 병렬 신호를 효율적으로 선택하고, 또한 직렬 신호로 변환하는 것에 의해, 적은 외부 핀으로 LSI 내부의 복수의 상태를 관측할 수 있는 디버그 회로를 제공하는 것을 목적으로 한다.
또한, 본 발명은 선택된 논리 회로의 내부 신호에 대하여 연산 처리를 실행 하여 데이터를 출력하는 것에 의해, 설계 단계에서 상정하고 있지 않은 타이밍의 트리거 신호를 해석시에 생성할 수 있는 디버그 회로를 제공하는 것을 목적으로 한다.
또한, 본 발명은 선택된 논리 회로의 내부의 고속 신호의 변화점을 검출하여, 해당 신호를 반전시키고, 또는 해당 신호의 펄스폭을 변경하는 것에 의해, 고속으로 변화되는 신호를 비교적 용이하게 취입하여 관측할 수 있는 디버그 회로를 제공하는 것을 목적으로 한다.
또한, 본 발명은 선택된 논리 회로의 내부 신호를 레지스터로부터 설정된 값과 비교하여, 그 결과를 LSI 외부에 출력하는 것에 의해, 적은 외부 핀으로 LSI 내부의 이상 데이터 해석을 가능하게 할 수 있는 디버그 회로를 제공하는 것을 목적으로 한다.
상기 종래의 과제를 해결하기 위해서, 본 발명의 청구항 1에 기재된 디버그 회로는, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 논리 회로로부터 출력되는 복수의 기준 신호로부터 소정의 기준 신호를 선택하는 타이밍 생성 블록과, 상기 선택 블록에서 선택된 소정의 신호를 상기 타이밍 생성 블록으로부터 출력되는 기준 신호의 타이밍으로 병렬 직렬 변환하고, 변환한 직렬 신호를 출력하는 변환 블록과, 상기 변환 블록으로부터 출력된 직렬 신호를 외부에 출력하는 출력 블록을 구비하는 것을 특징으로 하는 것이다.
이에 따라, 병렬 신호를 직렬 신호로 변환하여 출력할 수 있기 때문에, 적은 외부 핀으로 매우 많은 LSI 내부 상태를 관측하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
또한, 본 발명의 청구항 2에 기재된 디버그 회로는, 청구항 1에 기재된 디버그 회로에 있어서, 상기 타이밍 생성 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 논리 회로로부터 출력되는 복수의 기준 신호를 선택하는 것을 특징으로 하는 것이다.
이에 따라, LSI가 동작중에서도 자유롭게 상기 타이밍 생성 블록의 출력 신호를 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 3에 기재된 디버그 회로는, 청구항 1에 기재된 디버그 회로에 있어서, 상기 변환 블록은 상기 직렬 신호를 출력하는 타이밍에 동기하여 스트로브(strobe) 신호를 출력하는 것을 특징으로 하는 것이다.
이에 따라, 직렬 데이터의 유효 범위를 용이하게 판단하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 4에 기재된 디버그 회로는, 청구항 1에 기재된 디버그 회 로에 있어서, 상기 변환 블록은 상기 직렬 신호의 앞에, 또는 뒤에, 또는 앞 및 뒤에 소정의 기준 신호를 부가하여 출력하는 것을 특징으로 하는 것이다.
이에 따라, 직렬 데이터의 유효 범위를 용이하게 판단하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 5에 기재된 디버그 회로는, 청구항 1에 기재된 디버그 회로에 있어서, 상기 변환 블록은 상기 선택 블록으로부터 출력되는 신호로부터 소정의 신호를 선택하는 선택 회로를 구비하며, 상기 선택 회로에서 선택된 신호만을 병렬 직렬 변환하여 상기 출력 블록에 출력하고, 상기 선택된 신호 이외의 신호를 그대로 상기 출력 블록에 출력하는 것을 특징으로 하는 것이다.
이에 따라, 예를 들면, 상세한 타이밍을 디버그하는 신호와, 상태를 디버그하는 신호를 나누어 출력하는 것도 가능해져, 적은 외부 핀으로 LSI 내부의 복수의 상태를 관측할 수 있고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 6에 기재된 디버그 회로는, 청구항 5에 기재된 디버그 회로에 있어서, 상기 변환 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 더 구비하고, 상기 선택 회로는 상기 레지스터의 값을 기초로 상기 선택 블록으로부터 출력되는 신호를 선택하는 것을 특징으로 하는 것이다.
이에 따라, LSI가 동작중에서도 자유롭게 상기 변환 블록의 출력 신호를 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간 단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 7에 기재된 디버그 회로는, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 선택 블록에서 선택된 소정의 신호를 논리 연산하여, 그 결과를 트리거 신호로서 출력하는 트리거 신호 생성 블록과, 상기 선택 블록에서 선택된 소정의 신호, 및 상기 트리거 신호를 외부에 출력하는 출력 블록을 구비하는 것을 특징으로 하는 것이다.
이에 따라, 설계 단계에서 미리 상정하고 있지 않았던 타이밍의 트리거 신호를 생성하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 8에 기재된 디버그 회로는, 청구항 7에 기재된 디버그 회로에 있어서, 상기 선택 블록은 복수의 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 복수의 레지스터의 값을 기초로 상기 트리거 신호 생성 블록에 출력하는 신호와, 상기 출력 블록에 출력하는 신호를 각각 개별적으로 선택하여 출력하는 것을 특징으로 하는 것이다.
이에 따라, 트리거 신호 생성에 사용한 신호, 및 그 이외의 신호를 LSI 외부에 출력하는 것도 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 9에 기재된 디버그 회로는, 청구항 7에 기재된 디버그 회 로에 있어서, 상기 트리거 신호 생성 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 미리 정해진 논리 연산 패턴 중 하나를 선택하여 논리 연산을 실행하는 것을 특징으로 하는 것이다.
이에 따라, LSI가 동작중에서도 자유롭게 상기 트리거 신호 생성 블록의 논리 연산 방법을 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 10에 기재된 디버그 회로는, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 선택 블록에서 선택된 소정의 신호마다 변화점을 검출하고, 검출한 변화점에서 상기 소정의 신호를 반전시켜 출력하는 변화점 반전 블록과, 상기 변화점 반전 블록에서 변환된 소정의 신호를 외부에 출력하는 출력 블록을 구비하는 것을 특징으로 하는 것이다.
이에 따라, 고속으로 변화되는 신호를 비교적 용이하게 취입하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 11에 기재된 디버그 회로는, 청구항 10에 기재된 디버그 회로에 있어서, 상기 변화점 반전 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 선택 블록에서 선택된 소정의 신호마다 변화점으로서 검출하는 에지의 종류를 변경하는 것을 특징으로 하는 것이 다.
이에 따라, 해석을 실행하고자 하는 에지를 자유롭게 선택하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 12에 기재된 디버그 회로는, 청구항 10에 기재된 디버그 회로에 있어서, 상기 변화점 반전 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 해당 변화점 반전 블록에서의 반전기능의 실행을 온/오프하는 것을 특징으로 하는 것이다.
이에 따라, 변화점을 해석하는 필요의 유무를 신호마다 선택하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 13에 기재된 디버그 회로는, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 선택 블록에서 선택된 소정의 신호마다 변화점을 검출하고, 검출한 변화점에서 상기 소정 신호의 펄스폭을 변경하는 펄스폭 변경 블록과, 상기 펄스폭 변경 블록에서 변환된 소정의 신호를 외부에 출력하는 출력 블록을 구비하는 것을 특징으로 하는 것이다.
이에 따라, 고속으로 변화되는 신호를 비교적 용이하게 취입하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확 하게 디버그를 실행할 수 있다.
본 발명의 청구항 14에 기재된 디버그 회로는, 청구항 13에 기재된 디버그 회로에 있어서, 상기 펄스폭 변경 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 선택 블록에서 선택된 소정의 신호마다 변화점으로서 검출하는 에지의 종류를 변경하는 것을 특징으로 하는 것이다.
이에 따라, 해석을 실행하고자 하는 에지를 자유롭게 선택하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 15에 기재된 디버그 회로는, 청구항 13에 기재된 디버그 회로에 있어서, 상기 펄스폭 변경 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 소정 신호마다의 펄스폭의 변화량을 변경하는 것을 특징으로 하는 것이다.
이에 따라, 해석에 사용하는 계측기의 분해능에 맞춘 신호 처리가 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 16에 기재된 디버그 회로는, 청구항 13에 기재된 디버그 회로에 있어서, 상기 펄스폭 변경 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 해당 펄스폭 변경 블록에서의 펄스폭 변경 기능의 실행을 온/오프하는 것이다.
이에 따라, 변화점을 해석하는 필요의 유무를 신호마다 선택하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 17에 기재된 디버그 회로는, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 선택 블록에서 선택된 소정 신호의 레벨을 판별하여, 그 결과를 출력하는 신호 레벨 판별 블록과, 상기 선택 블록에서 선택된 소정의 신호, 및 상기 레벨 판별 결과를 외부에 출력하는 출력 블록을 구비하는 것을 특징으로 하는 것이다.
이에 따라, 내부 데이터 버스나 어드레스 버스와 같은 복수의 신호의 이상 상태를 검출하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 18에 기재된 디버그 회로는, 청구항 17에 기재된 디버그 회로에 있어서, 상기 선택 블록은 복수의 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 복수의 레지스터의 값을 기초로 상기 신호 레벨 판별 블록에 출력하는 신호와, 외부에 출력하는 신호를 각각 개별적으로 선택하여 출력하는 것을 특징으로 하는 것이다.
이에 따라, 신호 레벨 판별에 사용한 신호와, 다른 신호와의 양쪽을 LSI 외부에 출력하는 것도 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비 교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 19에 기재된 디버그 회로는, 청구항 17에 기재된 디버그 회로에 있어서, 상기 신호 레벨 판별 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 해당 신호 레벨 판별 블록을 판별하는 레벨의 값을 변경하는 것을 특징으로 하는 것이다.
이에 따라, 자유롭게 상기 신호 레벨 판별 블록을 판별하는 레벨값을 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 20에 기재된 디버그 회로는, 청구항 1, 청구항 7, 청구항 10, 청구항 13, 청구항 17 중 어느 하나에 기재된 디버그 회로에 있어서, 상기 선택 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호를 선택하는 것을 특징으로 하는 것이다.
이에 따라, LSI가 동작중에서도 자유롭게 상기 선택 블록의 출력 신호를 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 21에 기재된 디버그 회로는, 청구항 1, 청구항 7, 청구항 10, 청구항 13, 청구항 17 중 어느 하나에 기재된 디버그 회로에 있어서, 상기 논리 회로는 LSI 외부로부터 리라이팅 가능한 레지스터와, 상기 레지스터의 값에 따라서 복수의 타이밍 신호, 복수의 상태 신호, 또는 복수의 기준 신호를 선택하는 선택 회로를 구비한 것을 특징으로 하는 것이다.
이에 따라, LSI가 동작중에서도 자유롭게 상기 논리 회로의 출력 신호를 변경하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
본 발명의 청구항 22에 기재된 디버그 회로는, 청구항 1, 청구항 7, 청구항 10, 청구항 13, 청구항 17 중 어느 하나에 기재된 디버그 회로에 있어서, 상기 출력 블록은 디버그 전용 단자를 이용하여 출력하는 것을 특징으로 하는 것이다.
이에 따라, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그를 실행하는 것이 가능해진다.
본 발명의 청구항 23에 기재된 디버그 회로는, 청구항 1, 청구항 7, 청구항 10, 청구항 13, 청구항 17 중 어느 하나에 기재된 디버그 회로에 있어서, 상기 출력 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 출력 블록이 상기 레지스터의 값을 디코드하는 것에 의해 LSI의 기존의 출력 단자를 이용하여 출력하는 것을 특징으로 하는 것이다.
이에 따라, 디버그 전용의 외부 핀을 삭제하는 것이 가능해지고, LSI 내부에 복잡한 회로를 내장하는 일 없이, 비교적 간단하고 또한 적확하게 디버그를 실행할 수 있다.
이하에, 본 발명의 각 실시예에 대하여 도면을 참조하면서 상세하게 설명한다.
(실시예 1)
이하에, 본 발명의 실시예 1에 의한 디버그 회로를 도 1을 이용하여 설명한다.
도 1은 본 발명의 실시예 1에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도 1에서 본 발명의 디버그 회로를 포함한 LSI(100)는 LSI의 주기능을 실현하는 논리 회로(110)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 블록(120)과, 논리 회로(110)로부터 출력된 기준 신호 그룹으로부터 소정의 기준 신호를 선택하는 타이밍 생성 블록(130)과, 선택 블록(120)으로부터 입력된 병렬 데이터를 타이밍 생성 블록(130)으로부터 출력된 타이밍으로 직렬 데이터로 변환하는 변환 블록(140)과, 변환 블록(140)으로부터 출력된 신호를 LSI 외부에 출력하는 출력 블록(150)으로 이루어진다.
또한, 논리 회로(110)는 LSI 외부로부터 리라이팅 가능한 레지스터(111)와, 논리 회로(110) 내부의 복수의 타이밍 신호 그룹 또는 복수의 상태 신호 그룹으로부터 소정의 신호 그룹을 선택하는 선택 회로(112~117)와, 논리 회로(110) 내부의 복수의 기준 신호 그룹으로부터 소정의 신호 그룹을 선택하는 선택 회로(118)로 구성되어 있다. 또한, 선택 블록(120)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 회로(122~127)로 구성되어 있다. 또한, 타이밍 생성 블록(130)은 LSI 외부로부터 리라이팅 가능한 레지스터(131)와, 논리 회로(110)로부터 출력된 기준 신호 그룹으로부터 소정의 기준 신호를 선택하는 선택 회로(132)로 구성되어 있다. 또한, 변환 블록(140)은 LSI 외부로부터 리라이팅 가능한 레지스터(141)와, 선택 블록(120)으로부터 입력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 회로(142)와, 선택 회로(142)로부터 출력된 병렬 데이터를 타이밍 생성 블록(130)으로부터 출력된 타이밍으로 직렬 데이터로 변환하는 병렬 직렬 변환 회로(143)로 구성되어 있다.
이와 같이, 본 실시예 1에 의한 디버그 회로는, LSI의 논리 회로내에 마련되어 있는 논리 회로(110) 내부의 복수의 타이밍 신호 그룹, 상태 신호 그룹, 기준 신호 그룹으로부터 소정의 신호 그룹을 선택하는 선택 회로 그룹(112~118) 및 레지스터(111)와, 선택 회로 그룹(122~127) 및 레지스터(121)를 갖는 선택 블록(120)과, 선택 회로(132) 및 레지스터(131)를 갖는 타이밍 생성 블록(130)과, 레지스터(141), 선택 회로(142), 및 병렬 직렬 변환 회로(143)를 갖는 변환 블록(140)과, 출력 블록(150)에 의해서 구성되어 있다.
다음에, 상기한 바와 같이 구성되어 있는 본 실시예 1에 의한 디버그 회로의 동작을 도 1을 참조하면서 상세하게 설명한다.
논리 회로(110)는 LSI(100)의 주기능을 실현하는 회로이다. 불량이 발생한 경우, LSI의 설계자는 LSI의 설계시에 논리 회로(110)가 정상으로 동작하지 않을 때에 대비하여, 그 불량의 해석, 원인 구명에 유효하다고 생각되는 논리 회로(110)의 내부 타이밍 신호 또는 상태 신호를 미리 복수개 선택하여, 선택 블록(120)의 선택 회로 그룹(122~127)에 접속한다. 또한, 원인 해명에 유효하다고 생각되는 복 수의 내부 타이밍 신호 또는 상태 신호를 취입하기 위한 기준 신호를 미리 복수개 선택해 두어, 타이밍 생성 블록(130)의 선택 회로(132)에 접속한다.
통상의 논리 회로는 복수의 동작 조건과 복수의 타이밍 신호 또는 복수의 상태 신호로부터 동작이 결정되기 때문에, 동작 조건과 타이밍 신호 또는 상태 신호의 조합이 무수히 존재할 수 있다. 그러나, LSI의 논리 회로 설계자는 한정된 시간내에서, 이 무수히 존재할 수 있는 동작 조건의 회로 검증을 어떤 동작의 회로 검증에 대표시켜 실행하기 때문에, LSI의 논리 회로 설계자가 상정하고 있지 않은 동작 조건이 있으면, 불량이 출현하는 것이 있다. 이 경향은 LSI의 회로 규모가 커질수록 그 LSI의 동작이 복잡해지기 때문에, 이러한 불량의 출현이 현저하게 된다.
이 과제를 해결하기 위해서, 본 실시예 1에서는, 논리 회로(110)의 내부에도 선택 회로 그룹(112~118), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)를 마련하고, LSI 외부로부터 리라이팅 가능한 레지스터(111)의 값에 의해서 각 선택 회로의 출력 신호 그룹을 선택 가능하게 하여, 보다 많은 신호를 효율적으로 선택하는 것이 가능해진다. 예를 들면, 논리 회로(110)의 기능 블록마다 선택 회로를 마련하거나, 논리 회로(110)의 설계자마다 선택 회로를 마련하는 것에 의해, 논리 회로(110)내에서 기능 블록마다, 또는 설계자마다 선택 블록(120)에 접속하는 복수의 타이밍 신호 또는 복수의 상태 신호, 및 타이밍 생성 블록(130)에 접속하는 복수의 기준 신호를 선택 가능하게 하여, 디버그시의 효율을 향상시키는 것이 가능해진다.
또한, 본 실시예 1에서는, 선택 블록(120)에 접속된 복수의 타이밍 신호 또 는 복수의 상태 신호를 선택 회로 그룹(122~127)에 접속함에 대해서는, 선택 회로(112)의 출력을 선택 회로(122)의 입력에, 선택 회로(113~117)의 각각의 출력을 선택 회로(123~127)의 입력에 접속하고 있지만, 어떤 접속 형태로 선택 블록(120)의 선택 회로 그룹(122~127)에 접속해도 디버그 회로를 실현하는 것은 가능하다.
다음에, 선택 블록(120)의 선택 회로 그룹(122~127)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)의 값에 의해서 각 선택 회로가 갖는 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호를 선택하여, 변환 블록(140)에 접속할 수 있다.
또한, 타이밍 생성 블록(130)에 접속된 선택 회로(118)의 복수의 기준 신호 출력은 선택 회로(132)에 접속된다. 선택 회로(132)는 LSI 외부로부터 리라이팅 가능한 레지스터(131)의 값에 의해서 그 값을 디코드하는 것에 의해 선택 회로의 출력 신호를 선택하여, 변환 블록(140)에 접속한다.
변환 블록(140)은 병렬 직렬 변환 회로(143)에서 선택 블록(120)의 선택 회로 그룹(122~127)의 출력 신호 중, 선택 회로(142)에서 선택된 신호를 타이밍 생성 블록(130)의 선택 회로(132)의 출력 신호로 래치(latch)하고, 래치한 데이터를 특정한 순서로 직렬 데이터로 변환하여 출력 블록(150)에 출력한다. 또한, 디버그시에 해석을 용이하게 하기 위해서, 출력 블록(150)에 데이터를 송출할 때에, 송출 데이터에 동기하여 스트로브 신호를 출력하는 것도 가능하다. 또한, 출력 블록(150)에 데이터를 송출할 때에, 송출 데이터의 앞, 또는 뒤, 또는 앞뒤 모두에 미리 정해 둔 기준 신호를 부가하여 데이터를 송출하는 것도 가능하다. 이에 따라 송출 데이터의 유효 범위를 용이하게 판단하는 것이 가능해진다.
또한, 변환 블록(140)에서 선택 블록(120)의 선택 회로 그룹(122~127)의 출력 신호 중, 고속으로 변화되는 신호와, 저속으로 변화되는 신호를 선택 회로(142)에서 선택하고, 저속으로 변화되는 신호를 병렬 직렬 변환 회로(143)에 입력하여 병렬 직렬 변환하고, 고속으로 변화되는 신호를 그대로 출력 블록(150)에 출력하는 것도 가능하다. 이에 따라, 상세한 타이밍을 디버그하는 신호와, 상태를 디버그하는 신호를 나누어 적은 출력 신호로 LSI 내부의 복수의 상태를 관측하는 것이 가능해진다. 또한 LSI 외부로부터 리라이팅 가능한 레지스터(141)의 값에 의해서 그 값을 디코드하는 것에 의해, 선택 블록(120)의 선택 회로 그룹(122~127)의 출력 신호를 병렬 직렬 변환 회로(143)에 출력하는 신호와, 그대로 출력 블록(150)에 출력하는 신호로 선택 회로(142)에서 선택하고 출력하는 것도 가능하다.
출력 블록(150)은 변환 블록(140)으로부터 출력된 데이터, 또는 스트로브 신호를 LSI(100)의 외부에 출력한다. 또한, 출력 블록(150)은 외부 출력 핀을 디버그 전용 핀으로서 이용하지만, LSI 외부로부터 리라이팅 가능한 레지스터(도시하지 않음)를 구비하여, 그 값에 의해서 LSI(100)의 기존의 핀으로 다중화(multiplex)하여 데이터, 또는 스트로브 신호를 출력하는 것도 가능하다.
그 후, 출력 블록(150)으로부터 출력된 데이터, 또는 스트로브 신호를 논리 분석기 등의 측정기를 사용하여 관측하는 것에 의해, 디버그를 실행한다. 문제가 있는, 즉 불량의 원인으로 되는 내부 타이밍 신호, 또는 상태 신호가 판명될 때까지, LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 131, 141)로 기입하는 값 을 순차적으로 변경하여 디버그를 실행한다. 이에 따라, LSI(100)의 내부 타이밍 신호, 또는 상태 신호의 동작 불량의 디버그를 간단하게 실현할 수 있다.
이와 같이, 본 실시예 1에 의한 디버그 회로에서는, LSI의 논리 회로내에 배치되어 있는 논리 회로의 내부 신호를 선택하여 출력하는 선택 회로 그룹(112~118), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)와, 상기 선택 회로 그룹(112~117)으로부터의 출력 신호를 선택하여 출력하는 선택 회로 그룹(122~127), 및 LSI 외부로부터 리라이팅 가능한 레지스터(121)를 갖는 선택 블록(120)과, 상기 선택 회로(118)부터의 출력 신호를 선택하여 출력하는 선택 회로(132), 및 LSI 외부로부터 리라이팅 가능한 레지스터(131)를 갖는 타이밍 생성 블록(130)과, 상기 선택 회로 그룹(122~127)으로부터의 출력 신호를 선택하여 출력하는 선택 회로(142), 상기 선택 회로(142)로부터의 출력 신호를 변환하는 병렬 직렬 변환 회로(143), 및 LSI 외부로부터 리라이팅 가능한 레지스터(141)를 갖는 변환 블록(140)과, 상기 변환 블록(140)의 출력 신호를 LSI 외부로 출력하는 출력 블록(150)을 구비하도록 했기 때문에, 논리 회로의 복수의 내부 타이밍 신호, 상태 신호, 또는 기준 신호를 효율적으로 선택하여 디버그시의 효율을 향상시키는 동시에, 병렬 직렬 변환하는 것에 의해, 적은 외부 핀으로 매우 많은 논리 회로의 내부 신호를 관측할 수 있다.
또한, 출력 신호에 기준 신호를 부가하여 출력하고, 또는 동기하여 스트로브 신호를 출력하는 것에 의해, 송출 데이터의 유효 범위를 용이하게 판단할 수 있다.
또한, 변환 블록(140)에서, 예를 들면 저속으로 변화되는 신호를 병렬 직렬 변환 신호로서, 그 외의 신호를 그대로 LSI 외부에 출력하는 신호로서 선택하는 선택 회로(142)를 구비했기 때문에, 상세한 타이밍을 디버그하는 신호와, 상태를 디버그하는 신호를 나누어, 적은 출력 신호로 LSI 내부의 복수의 상태를 관측하는 것이 가능해진다.
또한, 논리 회로(110), 선택 블록(120), 타이밍 생성 블록(130), 및 변환 블록(140)에 LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 131, 141)를 마련하도록 했기 때문에, 해당 레지스터(111, 121, 131, 141)가 유지하고 있는 값을 디코드하는 것에 의해, LSI가 동작중에서도 자유롭게 당해 회로 또는 블록의 출력 신호를 변경할 수 있다.
또한, 본 실시예 1의 출력 블록(150)에서의 외부 출력 핀을 LSI의 전용 출력 핀으로 실현하는 것에 의해, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그가 가능하다. 또한, 출력 블록(150)에 LSI 외부로부터 리라이팅 가능한 레지스터를 마련하도록 하면, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, LSI 기존의 출력 단자를 이용하여 출력할 수도 있다. 이에 따라, 디버그 전용 단자를 마련하지 않더라도 디버그가 가능해져, 디버그 전용의 외부 핀을 삭감할 수 있다.
(실시예 2)
이하에, 본 발명의 실시예 2에 의한 디버그 회로를 도 2를 이용하여 설명한다.
도 2는 본 실시예 2에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도 2에서 본 발명의 디버그 회로를 포함한 LSI(100)는 LSI의 주기능을 실현하는 논리 회로(110)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 블록(120)과, 선택 블록(120)으로부터 입력된 데이터를 논리 연산하여 트리거 신호를 생성하는 트리거 신호 생성 블록(160)과, 선택 블록(120) 및 트리거 신호 생성 블록(160)으로부터 출력된 신호를 LSI 외부에 출력하는 출력 블록(150)으로 이루어진다. 또한, 본 실시예 2에 의한 디버그 회로에서 트리거 신호 생성 블록(160) 이외의 구성 요소에 대해서는, 전술한 실시예 1에 의한 디버그 회로의 구성 요소와 동일하기 때문에, 여기서는 동일한 부호를 부여하고 설명을 생략한다.
트리거 신호 생성 블록(160)은 LSI 외부로부터 리라이팅 가능한 레지스터(161)와, 선택 블록(120)으로부터 입력된 데이터를 논리 연산하는 논리 연산 회로(162)로 구성된다.
다음에, 상기한 바와 같은 구성을 갖는 본 실시예 2에 의한 디버그 회로의 동작을 도 2를 참조하면서 상세하게 설명한다.
논리 회로(110)는 LSI(100)의 주기능을 실현하는 회로이다. 불량이 발생한 경우, LSI의 설계자는 LSI의 설계시에 논리 회로(110)가 정상으로 동작하지 않을 때에 대비하여, 그 불량의 해석, 원인 구명에 유효하다고 생각되는 논리 회로(110)의 내부 타이밍 신호 또는 상태 신호를 미리 복수개 선택하여, 선택 블록(120)의 선택 회로 그룹(122~127)에 접속한다.
통상의 논리 회로는 복수의 동작 조건과 복수의 타이밍 신호 또는 복수의 상태 신호로부터 동작이 결정되기 때문에, 동작 조건과 타이밍 신호 또는 상태 신호의 조합이 무수히 존재할 수 있다. 그러나, LSI의 논리 회로 설계자는 한정된 시간내에서, 이 무수히 존재할 수 있는 동작 조건의 회로 검증을 어떤 동작의 회로 검증에 대표시켜 논리 회로의 검증을 하기 때문에, LSI의 논리 회로 설계자가 상정하고 있지 않은 동작 조건이 있으면, 불량이 출현하는 것이 있다. 이 경향은 LSI의 회로 규모가 커질수록 그 LSI의 동작이 복잡해지기 때문에, 이러한 불량의 출현이 현저하게 된다.
이 과제를 해결하기 위해서, 본 실시예 2에서는 논리 회로(110)의 내부에도 선택 회로 그룹(112~117), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)를 마련하고, 레지스터(111)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호 그룹을 선택 가능하게 하여, 보다 많은 신호를 효율적으로 선택하는 것이 가능해진다. 예를 들면, 논리 회로(110)의 기능 블록마다 선택 회로를 마련하거나, 논리 회로(110)의 설계자마다 선택 회로를 마련하는 것에 의해, 논리 회로(110)내에서 기능 블록마다, 또는 설계자마다 선택 블록(120)에 접속하는 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 가능하게 하여, 디버그시의 효율을 향상시키는 것이 가능해진다.
또한, 본 실시예 2에서는, 선택 블록(120)에 접속된 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 회로 그룹(122~127)에 접속함에 대해서는, 선택 회로(112)의 출력을 선택 회로(122)의 입력에, 선택 회로(113~117)의 각각의 출력을 선 택 회로(123~127)의 입력에 접속하고 있지만, 어떤 접속 형태로 선택 블록(120)의 선택 회로 그룹(122~127)에 접속해도 디버그 회로를 실현하는 것은 가능하다. 선택 회로 그룹(122~127)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호를 선택하여, 트리거 신호 생성 블록(160), 또는 출력 블록(150)에 접속한다. 또한, 디버그를 용이하게 하기 위해서 선택 블록(120)에 LSI 외부로부터 리라이팅 가능한 레지스터를 복수개 마련하여, 선택 블록(120)의 선택 회로 그룹(122~127)이 복수개의 출력 신호를 출력할 수 있도록 하고, 상기 복수의 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, 트리거 신호 생성 블록(160)에 입력한 복수의 신호와는 상이한 다른 신호를 출력 블록(150)에 출력하도록 해도 무방하다.
트리거 신호 생성 블록(160)에서 선택 블록(120)으로부터 출력된 복수의 타이밍 신호 또는 복수의 상태 신호는 논리 연산 회로(162)에 입력된다. 논리 연산 회로(162)는 LSI 외부로부터 리라이팅 가능한 레지스터(161)의 값에 의해서 그 값을 디코드하는 것에 의해, 입력된 복수의 타이밍 신호 또는 복수의 상태 신호를 미리 결정해 둔 논리식에 근거하여 논리 연산을 실행한다. 예를 들면, 논리 연산 회로(162)에 입력되는 신호가, A, B, C, D, E, 레지스터(161)의 값을 0 내지 7의 범위로 설정할 수 있다고 하면, 레지스터(161)의 값이 0일 때 "A&B", 레지스터(161)의 값이 1일 때 "A&B&C", 레지스터(161)의 값이 2일 때 "A&B&C&D", 레지스터(161)의 값이 3일 때 "A&B&C&D&E", 레지스터(161)의 값이 4일 때 "A or B", 레지스터(161)의 값이 5일 때 "A or B or C", 레지스터(161)의 값이 6일 때 "A or B or C or D", 레지스터(161)의 값이 7일 때 "A or B or C or D or E"라고 하도록 논리식을 미리 논리 연산 회로(162)에 설계해 두는 것에 의해, 선택 회로의 레지스터(111, 121)의 값을 변경하여 소망하는 신호를 논리 연산 회로(162)에 입력하고, 디버그에 필요한 트리거 신호를 용이하게 발생하는 것이 가능하게 된다. 또한, 논리 연산된 트리거 신호는 출력 블록(150)에 입력되어, LSI 외부에 출력된다.
출력 블록(150)은 트리거 신호 생성 블록(160)으로부터 출력된 트리거 신호와, 선택 블록(120)으로부터 출력된 복수의 타이밍 신호 또는 복수의 상태 신호를 LSI(100)의 외부에 출력한다. 또한, 출력 블록(150)은 외부 출력 핀을 디버그 전용 핀으로서 이용하지만, LSI 외부로부터 리라이팅 가능한 레지스터(도시하지 않음)를 구비하여, 그 값에 의해서 LSI(100)의 기존의 핀으로 다중화하여 트리거 신호, 또는 복수의 타이밍 신호, 또는 복수의 상태 신호를 출력하는 것도 가능하다.
그 후, 출력 블록(150)으로부터 출력된 트리거 신호, 또는 복수의 타이밍 신호, 또는 복수의 상태 신호를 논리 분석기 등의 측정기를 사용하여 관측하는 것에 의해, 디버그를 실행한다. 문제가 있는, 즉 불량의 원인으로 되는 내부 타이밍 신호 또는 상태 신호가 판명될 때까지, LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 161)로 기입하는 값을 순차적으로 변경하여 디버그를 실행한다. 이에 따라, LSI(100)의 내부 타이밍 신호 또는 상태 신호의 동작 불량의 디버그를 간단하게 실현할 수 있다.
이와 같이 본 실시예 2에 의한 디버그 회로에서는, 선택 회로(122~127)로부터 출력된 복수의 신호를 논리 연산 회로(162)를 가지고 논리 연산하여, 트리거 신 호를 출력하는 트리거 신호 생성 블록(160)을 구비하도록 했기 때문에, 설계 단계에서 미리 상정하고 있지 않았던 타이밍의 트리거 신호를 디버그에 필요한 때에 간단하게 발생할 수 있다.
또한, 트리거 신호 생성 블록(160)에 LSI 외부로부터 리라이팅 가능한 레지스터(161)를 마련했기 때문에, 그 레지스터(161)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에서도 미리 설정해 둔 논리 연산의 패턴 중 하나를 자유롭게 선택하여 연산할 수 있고, 디버그에 필요한 트리거 신호를 생성할 수 있다.
또한, 논리 회로(110), 및 선택 블록(120)에도 LSI 외부로부터 리라이팅 가능한 레지스터(111, 121)를 마련함으로써, 해당 레지스터(111, 121)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에서도 자유롭게 당해 회로 또는 블록의 출력 신호를 변경할 수 있다.
또한, 본 실시예 2의 출력 블록(150)에서의 외부 출력 핀을 LSI의 전용 출력 핀으로 실현하는 것에 의해, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그가 가능하다. 또한, 출력 블록(150)에 LSI 외부로부터 리라이팅 가능한 레지스터를 마련하도록 하면, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, LSI 기존의 출력 단자를 이용하여 출력할 수도 있다. 이에 따라, 디버그 전용 단자를 마련하지 않더라도 디버그가 가능해져, 디버그 전용의 외부 핀을 삭감할 수 있다.
(실시예 3)
이하에, 본 발명의 실시예 3에 의한 디버그 회로를 도 3을 이용하여 설명한다.
도 3은 본 실시예 3에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도 3에서 본 발명의 디버그 회로를 포함한 LSI(100)는 LSI의 주기능을 실현하는 논리 회로(110)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 블록(120)과, 선택 블록(120)으로부터 출력된 복수의 타이밍 신호 또는 복수의 상태 신호의 변화점을 검출하여 신호 처리를 실행하는 변화점 반전 블록(170)과, 변화점 반전 블록(170)으로부터 출력된 신호를 LSI 외부에 출력하는 출력 블록(150)으로 이루어진다. 또한, 본 실시예 3에 의한 디버그 회로에서 변화점 반전 블록(170) 이외의 구성 요소에 대해서는, 전술한 실시예 1에 의한 디버그 회로의 구성 요소와 동일하기 때문에, 여기서는 동일한 부호를 부여하고 설명을 생략한다.
변화점 반전 블록(170)은 LSI 외부로부터 리라이팅 가능한 레지스터(171)와, 선택 블록(120)의 선택 회로 그룹(122~127)으로부터 출력된 신호로부터 변화점을 검출하여 신호 처리를 실행하는 신호 처리 회로(172~177)로 구성된다.
다음에, 상기한 바와 같은 구성을 갖는 본 실시예 3에 의한 디버그 회로의 동작을 도 3을 참조하면서 상세하게 설명한다.
논리 회로(110)는 LSI(100)의 주기능을 실현하는 회로이다. 불량이 발생한 경우, LSI의 설계자는 LSI의 설계시에 논리 회로(110)가 정상으로 동작하지 않을 때에 대비하여, 그 불량의 해석, 원인 구명에 유효하다고 생각되는 논리 회로(110)의 내부 타이밍 신호, 또는 상태 신호를 미리 복수개 선택하여, 선택 블록(120)의 선택 회로 그룹(122~127)에 접속한다.
통상의 논리 회로는 복수의 동작 조건과 복수의 타이밍 신호 또는 복수의 상태 신호로부터 동작이 결정되기 때문에, 동작 조건과 타이밍 신호 또는 상태 신호의 조합이 무수히 존재할 수 있다. 그러나, LSI의 논리 회로 설계자는 한정된 시간내에서, 이 무수히 존재할 수 있는 동작 조건의 회로 검증을 어떤 동작의 회로 검증에 대표시켜 논리 회로의 검증을 하기 때문에, LSI의 논리 회로 설계자가 상정하고 있지 않은 동작 조건이 있으면, 불량이 출현하는 것이 있다. 이 경향은 LSI의 회로 규모가 커질수록 그 LSI의 동작이 복잡해지기 때문에, 이러한 불량의 출현이 현저하게 된다.
이 문제를 해결하기 위해서, 본 실시예 3에서는 논리 회로(110)의 내부에도 선택 회로 그룹(112~117), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)를 마련하고, 레지스터(111)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호 그룹을 선택 가능하게 하여, 보다 많은 신호를 효율적으로 선택하는 것이 가능해진다. 예를 들면, 논리 회로(110)의 기능 블록마다 선택 회로를 마련하거나, 논리 회로(110)의 설계자마다 선택 회로를 마련하는 것에 의해, 논리 회로(110)내에서 기능 블록마다, 또는 설계자마다 선택 블록(120)에 접속하는 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 가능하게 하여, 디버그시의 효율을 향상시키는 것이 가능해진다.
또한, 본 실시예 3에서는 선택 블록(120)에 접속된 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 회로 그룹(122~127)에 접속함에 대해서는, 선택 회로(112)의 출력을 선택 회로(122)의 입력에, 선택 회로(113~117)의 각각의 출력을 선택 회로(123~127)의 입력에 접속하고 있지만, 어떤 접속 형태로 선택 블록(120)의 선택 회로 그룹(122~127)에 접속해도 디버그 회로를 실현하는 것은 가능하다. 선택 회로 그룹(122~127)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)의 값에 의해서 그 값을 디코드하는 것에 의해, 각 선택 회로의 출력 신호를 선택하여, 변화점 반전 블록(170)에 접속된다.
변화점 반전 블록(170)은 선택 블록(120)의 선택 회로 그룹(122~127)으로부터 출력된 신호를 신호 처리 회로 그룹(172~177)이 대응하는 신호 처리 회로에 입력한다. 신호가 입력된 신호 처리 회로 그룹(172~177)은 LSI 외부로부터 리라이팅 가능한 레지스터(171)의 값에 의해서 그 값을 디코드하는 것에 의해, 상승 에지에서, 또는 하강 에지에서, 또는 양쪽의 에지에서 출력 신호의 변화점을 검출하고, 반전시켜 출력 블록(150)에 출력한다. 이들 설정은 LSI 외부로부터 리라이팅 가능한 레지스터(171)에 의해서 각 신호 처리 회로마다 설정 가능하고, 또한 개별적으로 기능을 온/오프하는 것도 가능하다.
출력 블록(150)은 변화점 반전 블록(170)으로부터 출력된 신호를 LSI(100)의 외부에 출력한다. 또한, 출력 블록(150)은 외부 출력 핀을 디버그 전용 핀으로서 이용하지만, LSI 외부로부터 리라이팅 가능한 레지스터(도시하지 않음)를 구비하여, 그 값에 의해서 LSI(100)의 기존의 핀으로 다중화하여 신호를 출력하는 것도 가능하다.
그 후, 출력 블록(150)으로부터 출력된 신호를 논리 분석기 등의 측정기를 사용하여 관측하는 것에 의해, 디버그를 실행한다. 문제가 있는, 즉 불량의 원인으로 되는 내부 타이밍 신호 또는 상태 신호가 판명될 때까지, LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 171)로 기입하는 값을 순차적으로 변경하여 디버그를 실행한다. 이에 따라, LSI(100)의 내부 타이밍 신호 또는 상태 신호의 동작 불량의 디버그를 간단하게 실현할 수 있다.
이와 같이, 본 실시예 3에 의한 디버그 회로에서는 선택 블록(120)에서 선택된 복수의 신호의 각각에 대하여 대응하는 신호 처리 회로 그룹(172~177)을 가지고 해당 신호의 변화점을 검출하여, 신호를 반전시키는 변화점 반전 블록(170)을 구비하도록 했기 때문에, 고속으로 변화되는 신호를 비교적 용이하게 취입하는 수 있고, 고속의 신호이더라도 관측할 수 있게 되어, 디버그 효율을 대폭 개선할 수 있다.
또한, 변화점 반전 블록(170)에 LSI 외부로부터 리라이팅 가능한 레지스터(171)를 마련하여, 해당 레지스터(171)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에도 상승 에지, 하강 에지, 또는 양쪽의 에지 중 어느 하나를 해석하고자 하는 에지로서 자유롭게 선택하여 신호의 변화점을 검출할 수 있다. 또는, 해당 레지스터(171)가 유지하고 있는 값을 디코드하는 것에 의해, 반전 기능의 실행을 온/오프로 하여, 변화점을 해석하는 필요의 유무를 신호마다 선택할 수도 있다.
또한, 논리 회로(110), 및 선택 블록(120)에도 LSI 외부로부터 리라이팅 가능한 레지스터(111, 121)를 마련함으로써, 해당 레지스터(111, 121)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에서도 자유롭게 해당 회로 또는 블록의 출력 신호를 변경할 수 있다.
또한, 본 실시예 3의 출력 블록(150)에서의 외부 출력 핀을 LSI의 전용 출력 핀으로 실현하는 것에 의해, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그가 가능하다. 또한, 출력 블록(150)에 LSI 외부로부터 리라이팅 가능한 레지스터를 마련하도록 하면, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, LSI 기존의 출력 단자를 이용하여 출력할 수도 있다. 이에 따라, 디버그 전용 단자를 마련하지 않더라도 디버그가 가능해져, 디버그 전용의 외부 핀을 삭감할 수 있다.
(실시예 4)
이하에, 본 발명의 실시예 4에 의한 디버그 회로를 도 4를 이용하여 설명한다.
도 4는 본 실시예 4에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도 4에서 본 발명의 디버그 회로를 포함한 LSI(100)는 LSI의 주기능을 실현하는 논리 회로(110)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 블록(120)과, 선택 블록(120)으로부터 출력된 복수의 타이밍 신호 또는 복수의 상태 신호의 변화점을 검출하여 신호 처리를 실행하는 펄스폭 변 경 블록(180)과, 펄스폭 변경 블록(180)으로부터 출력된 신호를 LSI 외부에 출력하는 출력 블록(150)으로 이루어진다. 또한, 본 실시예 4에 의한 디버그 회로에서 펄스폭 변경 블록(180) 이외의 구성 요소에 대해서는, 전술한 실시예 1에 의한 디버그 회로의 구성 요소와 동일하기 때문에, 여기서는 동일한 부호를 부여하고 설명을 생략한다.
펄스폭 변경 블록(180)은 LSI 외부로부터 리라이팅 가능한 레지스터(181)와, 선택 블록(120)의 선택 회로 그룹(122~127)으로부터 출력된 신호로부터 변화점을 검출하여 신호 처리를 실행하는 신호 처리 회로(182~187)로 구성된다.
다음에, 상기한 바와 같은 구성을 갖는 본 실시예 4에 의한 디버그 회로의 동작을 도 4를 참조하면서 상세하게 설명한다.
논리 회로(110)는 LSI(100)의 주기능을 실현하는 회로이다. 불량이 발생한 경우, LSI의 설계자는 LSI의 설계시에 논리 회로(110)가 정상으로 동작하지 않을 때에 대비하여, 그 불량의 해석, 원인 구명에 유효하다고 생각되는 논리 회로(110)의 내부 타이밍 신호 또는 상태 신호를 미리 복수개 선택하여, 선택 블록(120)의 선택 회로 그룹(122~127)에 접속한다.
통상의 논리 회로는 복수의 동작 조건과 복수의 타이밍 신호 또는 복수의 상태 신호로부터 동작이 결정되기 때문에, 동작 조건과 타이밍 신호 또는 상태 신호의 조합이 무수히 존재할 수 있다. 그러나, LSI의 논리 회로 설계자는 한정된 시간내에서, 이 무수히 존재할 수 있는 동작 조건의 회로 검증을 어떤 동작의 회로 검증에 대표시켜 논리 회로의 검증을 실행하기 때문에, LSI의 논리 회로 설계자가 상정하고 있지 않은 동작 조건이 있으면, 불량이 출현하는 것이 있다. 이 경향은 LSI의 회로 규모가 커질수록 그 LSI의 동작이 복잡해지기 때문에, 이러한 불량의 출현이 현저하게 된다.
이 문제를 해결하기 위해서, 본 실시예 4에서는 논리 회로(110)의 내부에도 선택 회로 그룹(112~117), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)를 마련하여, 레지스터(111)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호 그룹을 선택 가능하게 하여, 보다 많은 신호를 효율적으로 선택하는 것이 가능해진다. 예를 들면, 논리 회로(110)의 기능 블록마다 선택 회로를 마련하거나, 논리 회로(110)의 설계자마다 선택 회로를 마련하는 것에 의해, 논리 회로(110)내에서 기능 블록마다, 또는 설계자마다 선택 블록(120)에 접속하는 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 가능하게 하여, 디버그시의 효율을 향상시키는 것이 가능해진다.
또한, 본 실시예 4에서는 선택 블록(120)에 접속된 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 회로 그룹(122~127)에 접속함에 대해서는, 선택 회로(112)의 출력을 선택 회로(122)의 입력에, 선택 회로(113~117)의 각각의 출력을 선택 회로(123~127)의 입력에 접속하고 있지만, 어떤 접속 형태로 선택 블록(120)의 선택 회로 그룹(122~127)에 접속해도 디버그 회로를 실현하는 것은 가능하다.
선택 회로 그룹(122~127)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호를 선택하여, 펄스폭 변경 블록(180)에 접속한다.
펄스폭 변경 블록(180)은 선택 블록(120)의 선택 회로 그룹(122~127)으로부터 출력된 신호를 신호 처리 회로 그룹(182~187)이 대응하는 신호 처리 회로에 입력한다. 신호의 입력된 신호 처리 회로 그룹(182~187)은 LSI 외부로부터 리라이팅 가능한 레지스터(181)의 값에 의해서 그 값을 디코드하는 것에 의해, 상승 에지에서, 또는 하강 에지에서, 또는 양쪽의 에지에서 신호의 변화점을 검출하고, 펄스폭을 변경시켜 출력 블록(150)에 출력한다. 이들 설정은 LSI 외부로부터 리라이팅 가능한 레지스터(181)에 의해서, 각 신호 처리 회로마다 설정 가능하고, 개별적으로 기능을 온/오프하는 것도 가능하다. 또한, 변경하는 펄스폭의 변화량도 설정하는 것이 가능하다.
출력 블록(150)은 펄스폭 변경 블록(180)으로부터 출력된 신호를 LSI(100)의 외부에 출력한다. 또한, 출력 블록(150)은 외부 출력 핀을 디버그 전용 핀으로서 이용하지만, LSI 외부로부터 리라이팅 가능한 레지스터(도시하지 않음)를 구비하여, 그 값에 의해서 LSI(100)의 기존의 핀으로 다중화하고 신호를 출력하는 것도 가능하다.
그 후, 출력 블록(150)으로부터 출력된 신호를 논리 분석기 등의 측정기를 사용하여 관측하는 것에 의해, 디버그를 실행한다. 문제가 있는, 즉 불량의 원인으로 되는 내부 타이밍 신호 또는 상태 신호가 판명될 때까지, LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 181)로 기록하는 값을 순차적으로 변경하여 디버그를 실행한다. 이에 따라, LSI(100)의 내부 타이밍 신호 또는 상태 신호의 동작 불량의 디버그를 간단하게 실현할 수 있다.
이와 같이, 본 실시예 4에 의한 디버그 회로에서는, 선택 블록(120)에서 선택된 복수의 신호의 각각에 대하여 대응하는 신호 처리 회로 그룹(182~187)을 가지고 해당 신호의 변화점을 검출하여, 신호의 펄스폭을 늘어나게 하는 펄스폭 변경 블록(180)을 구비하도록 했으므로, 고속으로 변화되는 신호를 비교적 용이하게 취입할 수 있기 때문에, 고속의 신호이더라도 관측할 수 있게 되어, 디버그 효율을 대폭 개선할 수 있다.
또한, 펄스폭 변경 블록(180)에 LSI 외부로부터 리라이팅 가능한 레지스터(181)를 마련하여, 해당 레지스터(181)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에도 상승 에지, 또는 하강 에지, 또는 양쪽 중 어느 하나를 해석하고자 하는 에지로서 자유롭게 선택하여 신호의 변화점을 검출할 수 있다. 또한, 해당 레지스터(181)가 유지하고 있는 값을 디코드하는 것에 의해, 펄스폭의 변경량을 자유롭게 선택하여, 해석에 사용하는 계측기의 분해능에 맞춘 신호 처리가 가능해진다. 또한, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, 펄스폭 변경 기능의 실행을 온/오프로 하여, 신호마다 변화점을 해석하는 필요의 유무를 선택할 수도 있다.
또한, 논리 회로(110), 및 선택 블록(120)에도 LSI 외부로부터 리라이팅 가능한 레지스터(111, 121)를 마련함으로써, 해당 레지스터(111, 121)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에서도 자유롭게 해당 회로 또는 블록의 출력 신호를 변경할 수 있다.
또한, 본 실시예 4의 출력 블록(150)에서의 외부 출력 핀을 LSI의 전용 출력 핀으로 실현하는 것에 의해, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그가 가능하다. 또한, 출력 블록(150)에 LSI 외부로부터 리라이팅 가능한 레지스터를 마련하도록 하면, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, LSI 기존의 출력 단자를 이용하여 출력할 수도 있다. 이에 따라, 디버그 전용 단자를 마련하지 않더라도 디버그가 가능해져, 디버그 전용의 외부 핀을 삭감할 수 있다.
(실시예 5)
이하에, 본 발명의 실시예 5에 의한 디버그 회로를 도 5를 이용하여 설명한다.
도 5는 본 실시예 5에 의한 디버그 회로의 구성을 나타내는 블록도이다.
도 5에서 본 발명의 디버그 회로를 포함한 LSI(100)는 LSI의 주기능을 실현하는 논리 회로(110)와, 논리 회로(110)로부터 출력된 신호 그룹으로부터 소정의 신호를 선택하는 선택 블록(120)과, 선택 블록(120)으로부터 입력된 신호의 레벨로 설정된 값을 비교 판별하는 신호 레벨 판별 블록(190)과, 선택 블록(120) 및 신호 레벨 판별 블록(190)으로부터 출력된 신호를 LSI 외부에 출력하는 출력 블록(150)으로 이루어진다. 또한, 본 실시예 5에 의한 디버그 회로에서 신호 레벨 판별 블록(190) 이외의 구성 요소에 대해서는, 전술한 실시예 1에 의한 디버그 회로의 구성 요소와 동일하기 때문에, 여기서는 동일한 부호를 부여하고 설명을 생략한다.
신호 레벨 판별 블록(190)은 LSI 외부로부터 리라이팅 가능한 레지스터(191) 와, 선택 블록(120)으로부터 입력된 신호 레벨과 레지스터(191)에서 설정된 값을 비교 판별하는 레벨 판별 회로(192)로 구성된다.
다음에, 상기한 바와 같은 구성을 갖는 본 실시예 5에 의한 디버그 회로의 동작을 도 5를 참조하면서 상세하게 설명한다.
논리 회로(110)는 LSI(100)의 주기능을 실현하는 회로이다. 불량이 발생한 경우, LSI의 설계자는 LSI의 설계시에 논리 회로(110)가 정상으로 동작하지 않을 때에 대비하여, 그 불량의 해석, 원인 구명에 유효하다고 생각되는 논리 회로(110)의 내부 타이밍 신호 또는 상태 신호를 미리 복수개 선택하여, 선택 블록(120)의 선택 회로 그룹(122~127)에 접속한다.
통상의 논리 회로는 복수의 동작 조건과 복수의 타이밍 신호 또는 복수의 상태 신호로부터 동작이 결정되기 때문에, 동작 조건과 타이밍 신호 또는 상태 신호의 조합이 무수히 존재할 수 있다. 그러나, LSI의 논리 회로 설계자는 한정된 시간내에서, 이 무수히 존재할 수 있는 동작 조건의 회로 검증을 어떤 동작의 회로 검증에 대표시켜 논리 회로의 검증을 하기 때문에, LSI의 논리 회로 설계자가 상정하고 있지 않은 동작 조건이 있으면, 불량이 출현하는 것이 있다. 이 경향은 LSI의 회로 규모가 커질수록 그 LSI의 동작이 복잡해지기 때문에, 이러한 불량의 출현이 현저하게 된다.
이 문제를 해결하기 위해서, 본 실시예 5에서는 논리 회로(110)의 내부에도 선택 회로 그룹(112~117), 및 LSI 외부로부터 리라이팅 가능한 레지스터(111)를 마련하고, 레지스터(111)의 값에 의해 값을 디코드하는 것에 의해 각 선택 회로의 출 력 신호 그룹을 선택 가능하게 하여, 보다 많은 신호를 효율적으로 선택하는 것이 가능해진다. 예를 들면, 논리 회로(110)의 기능 블록마다 선택 회로를 마련하거나, 논리 회로(110)의 설계자마다 선택 회로를 마련하는 것에 의해, 논리 회로(110)내에서 기능 블록마다, 또는 설계자마다 선택 블록(120)에 접속하는 복수의 타이밍 신호, 또는 복수의 상태 신호를 선택 가능하게 하여, 디버그시의 효율을 향상시키는 것이 가능해진다.
또한, 본 실시예 5에서는 선택 블록(120)에 접속된 복수의 타이밍 신호 또는 복수의 상태 신호를 선택 회로 그룹(122~127)에 접속함에 대해서는, 선택 회로(112)의 출력을 선택 회로(122)의 입력에, 선택 회로(113~117)의 각각의 출력을 선택 회로(123~127)의 입력에 접속하고 있지만, 어떤 접속 형태로 선택 블록(120)의 선택 회로 그룹(122~127)에 접속해도 디버그 회로를 실현하는 것은 가능하다. 선택 회로 그룹(122~127)은 LSI 외부로부터 리라이팅 가능한 레지스터(121)의 값에 의해서 그 값을 디코드하는 것에 의해 각 선택 회로의 출력 신호를 선택하여, 신호 레벨 판별 블록(190), 또는 출력 블록(150)에 접속한다. 또한, 디버그를 용이하게 하기 위해서 선택 블록(120)에 LSI 외부로부터 리라이팅 가능한 레지스터를 복수개 마련하여, 선택 블록(120)의 선택 회로 그룹(122~127)이 복수개의 출력 신호를 출력할 수 있도록 하고, 상기 복수의 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, 신호 레벨 판별 블록(190)에 입력한 복수의 신호와는 상이한 다른 신호를 출력 블록(150)에 출력하도록 해도 무방하다.
신호 레벨 판별 블록(190)에서 선택 블록(120)으로부터 출력된 복수의 타이 밍 신호 또는 복수의 상태 신호는 레벨 판별 회로(192)에 입력된다. 레벨 판별 회로(192)는 LSI 외부로부터 리라이팅 가능한 레지스터(191)에서 설정된 값과, 입력된 복수의 타이밍 신호 또는 복수의 상태 신호의 레벨을 비교 판별하여, 레벨 판별 결과 신호를 출력 블록(150)에 출력한다. 또한, 여기서는 선택 회로(122~127)로부터의 출력에 각각 대응하는 레지스터(191)의 값과, 선택 회로(122~127)로부터의 출력값이 전부 일치하는 경우에는 "1"을, 그 이외의 경우에는 "O"을 레벨 판별 결과 신호로서 출력 블록(150)에 출력하도록 한다.
구체적으로는, 예를 들면, 레지스터의 값이 "101101"(LSI측으로부터 선택 회로(122, 123, 124, 125, 126, 127)와 대응함)이었던 경우에, 선택 회로(122)의 출력이 "1", 선택 회로(123)의 출력이 "1", 선택 회로(124)의 출력이 "0", 선택 회로(125)의 출력이 "1", 선택 회로(126)의 출력이 "1", 선택 회로(127)의 출력이 "0"이었다고 하면, 레지스터(191)의 값과, 선택 회로(122~127)로부터의 출력값이 일치하고 있지 않기 때문에, "0"이 레벨 판별 결과 신호로서 출력 블록(150)에 출력된다.
이에 따라, 레지스터(111, 121)의 값을 변경하여 소망하는 신호를 신호 레벨 판정 회로(192)에 입력하고, 레지스터(191)의 값을 소망하는 값으로 변경하는 것에 의해서, 디버그에 필요한 신호를 용이하게 발생하는 것이 가능하게 된다. 레벨 판정된 레벨 판별 결과 신호는 출력 블록(150)에 입력되어, LSI 외부에 출력된다.
출력 블록(150)은 신호 레벨 판정 블록(190)으로부터 출력된 레벨 판별 결과 신호와, 선택 블록(120)으로부터 출력된 복수의 타이밍 신호 또는 복수의 상태 신 호를 LSI(100)의 외부에 출력한다. 또한, 출력 블록(150)은 외부 출력 핀을 디버그 전용 핀으로서 이용하지만, LSI 외부로부터 리라이팅 가능한 레지스터(도시하지 않음)를 구비하여, 그 값에 의해서 LSI(100)의 기존의 핀으로 다중화하고 레벨 판별 결과 신호, 또는 복수의 타이밍 신호 또는 복수의 상태 신호를 출력하는 것도 가능하다.
그 후, 출력 블록(150)으로부터 출력된 레벨 판별 결과 신호, 또는 복수의 타이밍 신호 또는 복수의 상태 신호를 논리 분석기 등의 측정기를 사용하여 관측하는 것에 의해 디버그를 실행한다. 문제가 있는, 즉 불량의 원인으로 되는 내부 타이밍 신호 또는 상태 신호가 판명될 때까지, LSI 외부로부터 리라이팅 가능한 레지스터(111, 121, 191)로 기입하는 값을 순차적으로 변경하여 디버그를 실행한다. 이에 따라, LSI(100)의 내부 타이밍 신호 또는 상태 신호의 동작 불량의 디버그를 간단하게 실현할 수 있다.
이와 같이, 본 실시예 5에 의한 디버그 회로에서는, LSI 외부로부터 리라이팅 가능한 레지스터(191)가 유지하고 있는 값과, 선택 블록(120)에서 선택된 복수의 신호의 레벨을 비교하여 그 결과를 LSI 외부에 출력하는 신호 레벨 판별 블록(190)을 구비하도록 했기 때문에, 매우 적은 출력 단자로 LSI 내부의 데이터 버스나 어드레스 버스와 같은 복수의 신호의 이상 상태의 검출을 가능하게 하고, 또한, LSI 동작중에서도 상기 레지스터의 값의 변경에 의해서 비교 기준값을 자유롭게 변경할 수 있기 때문에, 디버그 효율을 한층 올릴 수 있다.
또한, 논리 회로(110), 및 선택 블록(120)에도 LSI 외부로부터 리라이팅 가 능한 레지스터(111, 121)를 마련함으로써, 해당 레지스터(111, 121)가 유지하고 있는 값을 디코드하는 것에 의해, LSI 동작중에서도 자유롭게 해당 회로 또는 블록의 출력 신호를 변경할 수 있다.
또한, 본 실시예 5의 출력 블록(150)에서의 외부 출력 핀을 LSI의 전용 출력 핀으로 실현하는 것에 의해, LSI가 실장된 기판상이어도 어떠한 고안도 없이 디버그가 가능하다. 또한, 출력 블록(150)에 LSI 외부로부터 리라이팅 가능한 레지스터를 마련하도록 하면, 해당 레지스터가 유지하고 있는 값을 디코드하는 것에 의해, LSI 기존의 출력 단자를 이용하여 출력할 수도 있다. 이에 따라, 디버그 전용 단자를 마련하지 않더라도 디버그가 가능해져, 디버그 전용의 외부 핀을 삭감할 수 있다.
본 발명에 따른 디버그 회로에 의하면, 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서, 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과, 상기 논리 회로로부터 출력되는 복수의 기준 신호로부터 소정의 기준 신호를 선택하는 타이밍 생성 블록과, 상기 선택 블록에서 선택된 소정의 신호를 상기 타이밍 생성 블록으로부터 출력되는 기준 신호의 타이밍으로 병렬 직렬 변환하고, 변환한 직렬 신호를 출력하는 변환 블록과, 상기 변환 블록으로부터 출력된 직렬 신호를 외부에 출력하는 출력 블록을 구비하도록 했기 때문에, 논리 회로의 복수의 내부 타이밍 신호, 상태 신호, 또는 기준 신호를 효율적으로 선택하여, 디버그시의 효율을 향상시키는 동시에, 병렬 직렬 변환하는 것에 의해, 적은 외부 핀으로 매우 많은 논리 회로의 내부 신호를 관측할 수 있는 효과를 얻을 수 있다.
또한, 본 발명에 따른 디버그 회로에 의하면, 선택 블록으로부터 출력된 복수의 신호를 논리 연산 회로를 가지고 논리 연산하여, 트리거 신호를 출력하는 트리거 신호 생성 블록을 구비하도록 했기 때문에, 설계 단계에서 미리 상정하고 있지 않았던 타이밍의 트리거 신호를, 디버그에 필요한 때에 간단하게 발생할 수 있는 효과를 얻을 수 있다.
또한, 본 발명에 따른 디버그 회로에 의하면, 선택 블록에서 선택된 복수의 신호의 각각에 대하여 대응하는 신호 처리 회로를 가지고 해당 신호의 변화점을 검출하여, 신호를 반전시키는 변화점 반전 블록을 구비하도록 했기 때문에, 고속으로 변화되는 신호를 비교적 용이하게 취입할 수 있고, 고속의 신호이더라도 관측할 수 있게 되어, 디버그 효율을 대폭 개선할 수 있는 효과를 얻을 수 있다.
또한, 본 발명에 따른 디버그 회로에 의하면, 선택 블록에서 선택된 복수의 신호의 각각에 대하여 대응하는 신호 처리 회로를 가지고 해당 신호의 변화점을 검출하여, 신호의 펄스폭을 늘어나게 하는 펄스폭 변경 블록을 구비하도록 했기 때문에, 고속으로 변화되는 신호를 비교적 용이하게 취입할 수 있고, 고속의 신호이더라도 관측할 수 있게 되어, 디버그 효율을 대폭 개선할 수 있는 효과를 얻을 수 있다.
또한, 본 발명에 따른 디버그 회로에 의하면, LSI 외부로부터 리라이팅 가능한 레지스터가 유지하고 있는 값과, 선택 블록에서 선택된 복수의 신호의 레벨을 비교하여 그 결과를 LSI 외부에 출력하는 신호 레벨 판별 블록을 구비하도록 했기 때문에, 매우 적은 출력 단자에서 LSI 내부의 데이터 버스나 어드레스 버스와 같은 복수의 신호의 이상 상태의 검출을 할 수 있게 하고, 또한, LSI 동작중에서도 상기 레지스터의 값의 변경에 의해서 비교 기준값을 자유롭게 변경할 수 있기 때문에, 디버그 효율을 한층 올릴 수 있는 효과를 얻을 수 있다.
즉, 본 발명의 디버그 회로에 의하면, 타겟으로 되는 장치에 실장된 LSI에서 그 내부 회로로부터 출력되는 내부 타이밍이나 내부 상태를 LSI 외부로부터 확인하여, LSI 설계의 검증시의 논리 시뮬레이션에서의 디버그의 누락을 장치 평가시에 신속하게 발견할 수 있다. 이에 따라, LSI의 평가를 위한 공정수를 삭감하여, LSI 개발에 따른 개발 시간을 단축하는 것이 가능해진다. 또한, LSI 평가시에 검출되지 않고, 실제의 사용 환경내에서 발생할 수 있는 잠재적인 버그 해석도 가능한 디버그 회로를 제공하는 것이 가능해진다.
본 발명에 따른 디버그 회로는 타겟으로 되는 장치에 실장된 LSI에서, 그 내부 회로로부터 출력되는 내부 타이밍이나 내부 상태를 LSI 외부로부터 확인하여, LSI 설계 검증시의 논리 시뮬레이션에서의 디버그 누락을 장치 평가시에 신속하게 발견하는 효과를 갖는 것으로서, LSI의 평가를 위한 공정수를 삭감하여 LSI 개발에 따른 개발 시간을 단축할 수 있고, 또한, LSI 평가시에 검출되지 않고, 실제의 사용 환경내에서 발생할 수 있는 잠재적인 버그 해석도 가능하게 하는 디버그 회로로 서 유용하며, 특히 LSI(대규모 집적 회로)의 논리 회로의 동작 불량시의 LSI의 논리 회로의 타이밍을 해석하는 수법으로서 유용하다.

Claims (23)

  1. 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서,
    상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과,
    상기 논리 회로로부터 출력되는 복수의 기준 신호로부터 소정의 기준 신호를 선택하는 타이밍 생성 블록과,
    상기 선택 블록에서 선택된 소정의 신호를 상기 타이밍 생성 블록으로부터 출력되는 기준 신호의 타이밍으로 병렬 직렬 변환하여, 변환한 직렬 신호 앞에, 또는 뒤에, 혹은 앞 및 뒤에, 식별 신호를 부가하여 출력하는 변환 블록과,
    상기 변환 블록으로부터 출력된 직렬 신호를 외부에 출력하는 출력 블록
    을 구비하는 것을 특징으로 하는 디버그 회로.
  2. 제 1 항에 있어서,
    상기 타이밍 생성 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 논리 회로로부터 출력되는 복수의 기준 신호를 선택하는 것
    을 특징으로 하는 디버그 회로.
  3. 제 1 항에 있어서,
    상기 변환 블록은 상기 직렬 신호를 출력하는 타이밍에 동기하여 스트로브(strobe) 신호를 출력하는 것
    을 특징으로 하는 디버그 회로.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 변환 블록은,
    상기 선택 블록으로부터 출력되는 신호로부터 소정의 신호를 선택하는 선택 회로를 구비하고,
    상기 선택 회로에서 선택된 신호만을 병렬 직렬 변환하여 상기 출력 블록에 출력하고, 상기 선택된 신호 이외의 신호를 그대로 상기 출력 블록에 출력하는 것
    을 특징으로 하는 디버그 회로.
  6. 제 5 항에 있어서,
    상기 변환 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 더 구비하고,
    상기 선택 회로는 상기 레지스터의 값을 기초로 상기 선택 블록으로부터 출력되는 신호를 선택하는 것
    을 특징으로 하는 디버그 회로.
  7. 소망하는 논리 기능을 실현하는 논리 회로를 포함하는 LSI의 기능을 디버그하는 디버그 회로에 있어서,
    상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호로부터 소정의 신호를 선택하여 출력하는 선택 블록과,
    상기 선택 블록에서 선택된 소정의 신호를 논리 연산하여, 그 결과를 트리거 신호로서 출력하는 트리거 신호 생성 블록과,
    상기 선택 블록에서 선택된 소정의 신호, 및 상기 트리거 신호를 외부에 출력하는 출력 블록
    을 구비하는 것을 특징으로 하는 디버그 회로.
  8. 제 7 항에 있어서,
    상기 선택 블록은 복수의 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 복수의 레지스터의 값을 기초로 상기 트리거 신호 생성 블록에 출력하는 신호와, 상기 출력 블록에 출력하는 신호를 각각 개별적으로 선택하여 출력하는 것
    을 특징으로 하는 디버그 회로.
  9. 제 7 항에 있어서,
    상기 트리거 신호 생성 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 미리 정해진 논리 연산 패턴 중 하나를 선택하여 논리 연산을 실행하는 것
    을 특징으로 하는 디버그 회로.
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 제 1 항 또는 제 7 항에 있어서,
    상기 선택 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고, 상기 레지스터의 값을 기초로 상기 논리 회로로부터 출력되는 복수의 타이밍 신호, 또는 복수의 상태 신호를 선택하는 것
    을 특징으로 하는 디버그 회로.
  21. 제 1 항 또는 제 7 항에 있어서,
    상기 논리 회로는,
    LSI 외부로부터 리라이팅 가능한 레지스터와,
    상기 레지스터의 값에 따라서 복수의 타이밍 신호, 복수의 상태 신호, 또는 복수의 기준 신호를 선택하는 선택 회로를 구비한 것
    을 특징으로 하는 디버그 회로.
  22. 제 1 항 또는 제 7 항에 있어서,
    상기 출력 블록은 디버그 전용 단자를 이용하여 출력하는 것을 특징으로 하는 디버그 회로.
  23. 제 1 항 또는 제 7 항에 있어서,
    상기 출력 블록은 LSI 외부로부터 리라이팅 가능한 레지스터를 구비하고,
    상기 출력 블록이 상기 레지스터의 값을 디코드하는 것에 의해 LSI의 기존의 출력 단자를 이용하여 출력하는 것
    을 특징으로 하는 디버그 회로.
KR1020040074467A 2003-09-19 2004-09-17 디버그 회로 KR100657077B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003328803A JP4242741B2 (ja) 2003-09-19 2003-09-19 デバッグ用信号処理回路
JPJP-P-2003-00328803 2003-09-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020060071537A Division KR100950612B1 (ko) 2003-09-19 2006-07-28 디버그 회로

Publications (2)

Publication Number Publication Date
KR20050028830A KR20050028830A (ko) 2005-03-23
KR100657077B1 true KR100657077B1 (ko) 2006-12-12

Family

ID=34308831

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020040074467A KR100657077B1 (ko) 2003-09-19 2004-09-17 디버그 회로
KR1020060071537A KR100950612B1 (ko) 2003-09-19 2006-07-28 디버그 회로

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020060071537A KR100950612B1 (ko) 2003-09-19 2006-07-28 디버그 회로

Country Status (5)

Country Link
US (3) US20050066232A1 (ko)
JP (1) JP4242741B2 (ko)
KR (2) KR100657077B1 (ko)
CN (2) CN101604274A (ko)
TW (1) TWI252321B (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100849208B1 (ko) * 2006-10-24 2008-07-31 삼성전자주식회사 링 오실레이터를 구비하는 테스트 회로 및 테스트 방법
JP5022741B2 (ja) * 2007-03-12 2012-09-12 株式会社リコー 半導体集積回路
JP2008170443A (ja) * 2008-01-18 2008-07-24 Matsushita Electric Ind Co Ltd デバッグ用信号処理回路
JP5146179B2 (ja) * 2008-07-31 2013-02-20 富士通株式会社 集積回路及びそのモニタ信号出力方法
CN102236067B (zh) * 2010-04-22 2015-07-01 上海华虹集成电路有限责任公司 实现芯片功能故障快速调试定位的方法及其调试电路
CN102236066B (zh) * 2010-04-22 2015-07-01 上海华虹集成电路有限责任公司 实现芯片功能故障快速调试定位的方法及调试电路
CN102236065B (zh) * 2010-04-22 2015-07-01 上海华虹集成电路有限责任公司 芯片功能故障快速调试定位的方法及调试电路
GB2520724A (en) * 2013-11-29 2015-06-03 St Microelectronics Res & Dev Debug circuitry
US9804991B2 (en) 2015-03-03 2017-10-31 Qualcomm Incorporated High-frequency signal observations in electronic systems

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6570944B2 (en) * 2001-06-25 2003-05-27 Rambus Inc. Apparatus for data recovery in a synchronous chip-to-chip system
US5247292A (en) * 1987-09-30 1993-09-21 Nakamura Kiki Engineering Co. Ltd. Sensor signal transmission system
JP2723232B2 (ja) * 1987-09-30 1998-03-09 黒田精工株式会社 並列のセンサ信号の直列伝送方式
JPH0773219B2 (ja) * 1988-06-16 1995-08-02 富士通株式会社 並直列変換装置
CN1171094C (zh) * 1989-01-27 2004-10-13 松下电器产业株式会社 集成电路内部信号监控设备
JPH04350737A (ja) * 1991-05-29 1992-12-04 Nec Corp マイクロコンピュータ
JP3267401B2 (ja) * 1993-08-05 2002-03-18 株式会社東芝 半導体集積回路
US5455540A (en) * 1994-10-26 1995-10-03 Cypress Semiconductor Corp. Modified bang-bang phase detector with ternary output
US5717695A (en) * 1995-12-04 1998-02-10 Silicon Graphics, Inc. Output pin for selectively outputting one of a plurality of signals internal to a semiconductor chip according to a programmable register for diagnostics
JPH09319727A (ja) * 1996-05-31 1997-12-12 Hitachi Ltd データプロセッサ及びデータ処理システム
US5771240A (en) * 1996-11-14 1998-06-23 Hewlett-Packard Company Test systems for obtaining a sample-on-the-fly event trace for an integrated circuit with an integrated debug trigger apparatus and an external pulse pin
US5751735A (en) * 1996-11-14 1998-05-12 Hewlett-Packard Company Integrated debug trigger method and apparatus for an integrated circuit
JPH11122232A (ja) * 1997-10-17 1999-04-30 Fujitsu Ltd 位相検出回路及び位相検出回路を用いたタイミング抽出回路
JP2898957B1 (ja) * 1998-03-12 1999-06-02 日本テキサス・インスツルメンツ株式会社 位相比較回路
US6158030A (en) * 1998-08-21 2000-12-05 Micron Technology, Inc. System and method for aligning output signals in massively parallel testers and other electronic devices
US6218869B1 (en) * 1998-11-25 2001-04-17 Philips Electronics North America Corp. Pulse detector with double resolution
JP2000259441A (ja) 1999-03-09 2000-09-22 Nec Eng Ltd デバッグ回路
US6137850A (en) * 1999-08-18 2000-10-24 Hughes Electronics Corporation Digital bit synchronizer for low transition densities
JP4310878B2 (ja) * 2000-02-10 2009-08-12 ソニー株式会社 バスエミュレーション装置
US20020089348A1 (en) * 2000-10-02 2002-07-11 Martin Langhammer Programmable logic integrated circuit devices including dedicated processor components
JP4712183B2 (ja) * 2000-11-30 2011-06-29 富士通セミコンダクター株式会社 同期型半導体装置、及び試験システム
JP3708493B2 (ja) * 2001-05-18 2005-10-19 株式会社ソニー・コンピュータエンタテインメント デバッグシステム、半導体集積回路、半導体集積回路のデバッグ方法、半導体集積回路のデバッグプログラム、及び半導体集積回路のデバッグプログラムを記録したコンピュータ読み取り可能な記録媒体
JP4437881B2 (ja) * 2001-06-22 2010-03-24 富士通マイクロエレクトロニクス株式会社 デバッグサポートユニットを有するマイクロコントローラ
DE10214304B4 (de) * 2002-03-28 2004-10-21 Infineon Technologies Ag Verfahren und Vorrichtung zur Erzeugung zweier Signale mit einem vorbestimmten Abstand sich entsprechender Signalflanken zueinander
US7092472B2 (en) * 2003-09-16 2006-08-15 Rambus Inc. Data-level clock recovery

Also Published As

Publication number Publication date
US20080313499A1 (en) 2008-12-18
CN101604274A (zh) 2009-12-16
CN100568006C (zh) 2009-12-09
KR20060092182A (ko) 2006-08-22
TWI252321B (en) 2006-04-01
TW200521457A (en) 2005-07-01
KR20050028830A (ko) 2005-03-23
US20050066232A1 (en) 2005-03-24
JP4242741B2 (ja) 2009-03-25
US20080313517A1 (en) 2008-12-18
CN1598608A (zh) 2005-03-23
JP2005091310A (ja) 2005-04-07
KR100950612B1 (ko) 2010-04-01

Similar Documents

Publication Publication Date Title
KR100950612B1 (ko) 디버그 회로
US7296201B2 (en) Method to locate logic errors and defects in digital circuits
KR100506777B1 (ko) 반도체 테스트 시스템을 위한 글리치 검출
US7610526B2 (en) On-chip circuitry for bus validation
CN105631077B (zh) 具有增大的故障覆盖率的集成电路
JP2003332443A (ja) 半導体集積回路とその設計支援装置およびテスト方法
US7292970B1 (en) Finding unexercised logic for use in code coverage testing
KR100506769B1 (ko) 고속 테스트 패턴 평가 장치
US20060064678A1 (en) Debugger of an electric circuit manufactured based on a program in harware description language
US8392776B2 (en) Delay fault diagnosis program
US7900103B2 (en) Scan chain architecture for increased diagnostic capability in digital electronic devices
CN113609804B (zh) 用例生成方法及装置、测试方法、可测试性设计方法
US7716549B2 (en) Semiconductor apparatus and testing method
JP2002148312A (ja) 集積回路
JP2008527322A (ja) 回路配置並びにその検査および/または診断方法
JP4863547B2 (ja) Bist回路内蔵半導体集積回路装置
El-Kharashy et al. A novel assertions-based code coverage automatic cad tool
US7188288B2 (en) Semiconductor LSI circuit with scan circuit, scan circuit system, scanning test system and method
Choudhury et al. Accelerating CDC Verification Closure on Gate-Level Designs
Jiang et al. Effective error diagnosis for RTL designs in HDLs
JP2008170443A (ja) デバッグ用信号処理回路
KR100345673B1 (ko) 자기 진단 가능한 집적 회로
US6421810B1 (en) Scalable parallel test bus and testing method
JPH07198784A (ja) 演算論理診断装置
JP2000259441A (ja) デバッグ回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20101124

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee