KR101031641B1 - 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 - Google Patents
디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 Download PDFInfo
- Publication number
- KR101031641B1 KR101031641B1 KR1020100012244A KR20100012244A KR101031641B1 KR 101031641 B1 KR101031641 B1 KR 101031641B1 KR 1020100012244 A KR1020100012244 A KR 1020100012244A KR 20100012244 A KR20100012244 A KR 20100012244A KR 101031641 B1 KR101031641 B1 KR 101031641B1
- Authority
- KR
- South Korea
- Prior art keywords
- debugging
- chip
- data
- signal
- debugging signal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2205—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing using arrangements specific to the hardware being tested
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/25—Testing of logic operation, e.g. by logic analysers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/263—Generation of test inputs, e.g. test vectors, patterns or sequences ; with adaptation of the tested hardware for testability with external testers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
외부 칩 신호를 디버깅(debugging)하는 디버깅 칩, 디버깅 시스템 및 외부 칩 신호의 데이터화 방법이 개시된다. 외부의 디버깅 대상 칩에 구비된 하나 이상의 출력 핀으로부터 출력되는 디버깅 신호를 입력받는 하나 이상의 입력 핀을 구비하고 있는 디버깅 칩으로서, 외부의 호스트 장치로부터의 제어 신호에 따라 데이터화 구간을 결정하기 위한 변수가 설정되어 있는 레지스터, 상기 데이터화 구간 내에 입력되는 상기 디버깅 신호를 데이터화한 디버깅 신호 데이터를 생성하는 디버깅 신호 데이터화부 및 상기 레지스터에 설정된 변수를 기초로 상기 데이터화 구간을 결정하여 상기 디버깅 신호 데이터화부를 제어하는 칩 제어부를 포함하는 디버깅 칩에 의하면, 오실로스코프 혹은 로직 분석기과 같은 고가의 장비를 대신하여 저렴한 가격으로 디버깅 시스템을 구현할 수 있다.
Description
본 발명은 외부 칩 신호를 디버깅(debugging)하는 디버깅 칩, 디버깅 시스템 및 외부 칩 신호의 데이터화 방법에 관한 것이다.
디버깅(debugging)은 개발 마지막 단계에서 오류를 발견하고 그 원인을 밝히는 작업을 의미한다. 디버깅이라는 용어는 프로그래밍을 할 때 코딩 과정에서의 오류를 찾아내고 수정하는 작업을 일반적으로 의미하지만, 최근 디지털 하드웨어, 아날로그 회로의 개발 등에서도 사용되고 있다.
디지털 회로로 구성된 장치로서, 영상처리, 음성처리, 제어 등의 동작을 수행하는 칩(chip)에 대해서도 설계안대로 개발되었는지 여부를 확인할 필요가 있다. 이러한 칩에 대한 종래 디버깅 장치로는 오실로스코프(Oscilloscope) 혹은 로직 분석기(Logic analyzer)가 이용되어, 칩의 외부 핀을 통해 출력되는 신호를 고속으로 샘플링하고 시간 변화에 따라 신호들의 상태를 디스플레이 터미널에 파형으로 출력해 줌으로써 개발자를 이를 통해 대상 칩 내에서의 논리 회로 동작을 조사하고 시험할 수 있어 디버깅 작업 수행이 가능하도록 하였다.
도 1은 오실로스코프 혹은 로직 분석기를 이용한 디버깅 구조를 나타낸 개략도이고, 도 2는 일반적인 오실로스코프 칩 디버깅 장치를 나타낸 개략도이다.
오실로스코프 혹은 로직 분석기를 이용한 디버깅 구조를 살펴보면, 도 1에 도시된 것과 같이 동작 상태를 확인하고 싶은 칩(10)의 외부 핀(External pin)과 오실로스코프 혹은 로직 분석기(20)의 프로브(probe)를 연결함으로써, 외부 핀을 통해 출력되는 신호 상태를 확인하는 구조이다.
도 2를 참조하면, 오실로스코프 혹은 로직 분석기(20)는 시간 변화에 따른 디버깅 신호들의 상태를 파형(waveform)으로 출력해주는 디스플레이 터미널(display terminal)(22)과, 디버깅 신호를 입력받을 수 있는 프로브 선(24)과, 디버깅 제어를 위한 컨트롤 패널(control panel)(26)을 포함한다.
프로브 선(24)은 동작 상태를 확인하고 싶은 칩(10)의 외부 핀과 일대일로 대응하며, 접촉을 통해 대응되는 외부 핀으로부터 출력되는 디버깅 신호를 오실로스코프 혹은 로직 분석기(20)로 입력한다.
이와 같은 디버깅 작업을 수행하기 위한 오실로스코프 혹은 로직 분석기(20)는 그 가격이 수백에서 수천만원에 달하는 고가의 디버깅 장치인 바 그 이용이 용이하지 않은 한계가 있다.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명은 오실로스코프 혹은 로직 분석기과 같은 고가의 장비를 대신하여 저렴한 가격으로 디버깅 시스템을 구현함으로써 디버깅 대상 칩의 출력 신호를 디지털 신호로 변환하고, 이를 호스트 장치에 전달하여 파형으로 출력가능하도록 지원하는 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법을 제공하기 위한 것이다.
본 발명의 이외의 목적들은 하기의 설명을 통해 쉽게 이해될 수 있을 것이다.
본 발명의 일 측면에 따르면, 외부의 디버깅 대상 칩에 구비된 하나 이상의 출력 핀으로부터 출력되는 디버깅 신호를 입력받는 하나 이상의 입력 핀을 구비하고 있는 디버깅 칩으로서, 외부의 호스트 장치로부터의 제어 신호에 따라 데이터화 구간을 결정하기 위한 변수가 설정되어 있는 레지스터; 상기 데이터화 구간 내에 입력되는 상기 디버깅 신호를 데이터화한 디버깅 신호 데이터를 생성하는 디버깅 신호 데이터화부; 및 상기 레지스터에 설정된 변수를 기초로 상기 데이터화 구간을 결정하여 상기 디버깅 신호 데이터화부를 제어하는 칩 제어부를 포함하는 디버깅 칩이 제공된다.
외부의 오실레이터로부터 입력받은 제1 클럭을 소정의 주파수를 가지는 제2 클럭으로 변환하는 위상동기부를 더 포함하되, 상기 디버깅 신호 데이터화부는 상기 데이터화 구간 내에서 상기 제2 클럭의 상승 에지 혹은 하강 에지에 해당하는 시점마다 감지한 상기 디버깅 신호의 상태를 버스화하여 상기 디버깅 신호 데이터를 생성할 수 있다.
상기 디버깅 신호 데이터는 상기 시점에서 감지한 상기 디버깅 신호의 수에 상응하는 수의 비트를 가질 수 있다. 상기 디버깅 신호 데이터의 각 비트와 상기 디버깅 신호는 일대일 대응하며, 상기 일대일 대응되는 디버깅 신호의 감지된 상태가 상기 각 비트의 비트 값이 될 수 있다.
상기 데이터화 구간을 결정하기 위한 변수는 검출 시작점 및 설정 클럭 수를 포함할 수 있다. 상기 검출 시작점은 상기 디버깅 신호 중 선택된 하나의 상태가 변하는 시점일 수 있다.
또한, 상기 데이터화 구간을 결정하기 위한 변수는 검출 끝점을 더 포함할 수 있다.
상기 디버깅 신호 데이터를 임시 저장하는 내부 메모리; 및 상기 디버깅 신호 데이터화부에서 생성된 상기 디버깅 신호 데이터를 외부 메모리에 저장하기 이전에 상기 내부 메모리에 임시 저장하거나 상기 외부 메모리에 저장된 상기 디버깅 신호 데이터를 호스트 장치로 전달하기 위해 상기 내부 메모리에 임시 저장하는 메모리 제어부를 더 포함할 수 있다.
한편, 본 발명의 다른 측면에 따르면, 디버깅 대상 칩과 연결되어 상기 디버깅 대상 칩에 구비된 하나 이상의 출력 핀으로부터 출력되는 디버깅 신호를 입력받고, 레지스터에 설정된 데이터화 구간 내에 입력되는 상기 디버깅 신호를 데이터화한 디버깅 신호 데이터를 생성하는 디버깅 칩; 및 제어 신호를 상기 디버깅 칩으로 전송하여 상기 레지스터를 설정하며, 상기 디버깅 신호 데이터를 전달받아 해석하고 파형(waveform)으로 변환하여 디스플레이 터미널에 출력하는 호스트 장치를 포함하는 디버깅 시스템이 제공된다.
제1 클럭을 생성하는 오실레이터를 더 포함하되, 상기 디버깅 칩은 상기 제1 클럭을 입력받아 소정의 주파수를 가지는 제2 클럭으로 변환하고, 상기 데이터화 구간 내에서 상기 제2 클럭의 상승 에지 혹은 하강 에지에 해당하는 시점마다 감지한 상기 디버깅 신호의 상태를 버스화하여 상기 디버깅 신호 데이터를 생성할 수 있다.
상기 디버깅 신호 데이터를 저장하는 외부 메모리를 더 포함하되, 상기 디버깅 칩은 상기 디버깅 신호 데이터를 상기 외부 메모리에 우선 저장하고, 상기 외부 메모리에 저장된 디버깅 신호 데이터를 상기 호스트 장치로 전달할 수 있다.
한편, 본 발명의 또 다른 측면에 따르면, 디버깅 칩에서 외부 칩 신호를 데이터화하는 방법에 있어서, (a) 상기 디버깅 칩에 연결된 디버깅 대상 칩으로부터 하나 이상의 디버깅 신호를 입력받는 단계; (b) 상기 디버깅 신호에 대한 데이터화 구간을 결정하는 단계; (c) 상기 데이터화 구간 동안 입력되는 상기 디버깅 신호에 대하여 상기 디버깅 신호의 상태를 감지하는 단계; 및 (d) 상기 감지된 디버깅 신호의 상태를 버스화하여 디버깅 신호 데이터를 생성하는 단계를 포함하는 외부 칩 신호 데이터화 방법이 제공된다.
상기 디버깅 신호의 수가 N(자연수)인 경우 상기 디버깅 신호 데이터는 N 비트를 가지는 데이터일 수 있다. 상기 디버깅 신호 각각이 상기 디버깅 신호 데이터의 각 비트에 일대일 대응하며, 상기 디버깅 신호 데이터의 각 비트에 일대일 대응되는 상기 디버깅 신호의 상태가 상기 비트의 비트 값이 될 수 있다.
오실레이터로부터 입력된 제1 클럭을 소정의 주파수를 가지는 제2 클럭으로 변환하는 단계를 더 포함하되, 상기 제2 클럭의 상승 에지 또는 하강 에지에 해당하는 시점마다 상기 단계 (c) 및 (d)를 반복 수행할 수 있다.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.
본 발명의 실시예에 따르면, 오실로스코프 혹은 로직 분석기과 같은 고가의 장비를 대신하여 저렴한 가격으로 디버깅 시스템을 구현할 수 있다.
또한, 디버깅 대상 칩의 출력 신호를 디지털 신호로 변환하고, 이를 호스트 장치에 전달하여 파형으로 출력함으로써 오실로스코프 혹은 로직 분석기를 대신할 수 있는 효과가 있다.
도 1은 오실로스코프 혹은 로직 분석기를 이용한 디버깅 구조를 나타낸 개략도.
도 2는 일반적인 오실로스코프 칩 디버깅 장치를 나타낸 개략도.
도 3은 본 발명의 일 실시예에 따른 디버깅 시스템의 구성을 나타내는 블록도.
도 4는 디버깅 신호의 검출 시간 지정 방법을 설명하기 위한 도면.
도 5는 디버깅 신호의 데이터화 방법을 설명하기 위한 도면.
도 6은 디버깅 신호들의 상태를 버스화하는 방법을 설명하기 위한 도면.
도 7은 본 발명의 일 실시예에 따른 디버깅 칩에서의 외부 칩 신호 데이터화 방법의 순서도.
도 2는 일반적인 오실로스코프 칩 디버깅 장치를 나타낸 개략도.
도 3은 본 발명의 일 실시예에 따른 디버깅 시스템의 구성을 나타내는 블록도.
도 4는 디버깅 신호의 검출 시간 지정 방법을 설명하기 위한 도면.
도 5는 디버깅 신호의 데이터화 방법을 설명하기 위한 도면.
도 6은 디버깅 신호들의 상태를 버스화하는 방법을 설명하기 위한 도면.
도 7은 본 발명의 일 실시예에 따른 디버깅 칩에서의 외부 칩 신호 데이터화 방법의 순서도.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 명세서에 기재된 "…부", "…모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
또한, 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본 발명의 실시예에 대해 관련 도면들을 참조하여 상세히 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 디버깅 시스템의 구성을 나타내는 블록도이고, 도 4는 디버깅 신호의 검출 시간 지정 방법을 설명하기 위한 도면이며, 도 5는 디버깅 신호의 데이터화 방법을 설명하기 위한 도면이며, 도 6은 디버깅 신호들의 상태를 버스화하는 방법을 설명하기 위한 도면이다.
도 3을 참조하면, 디버깅 대상 칩(10), 오실레이터(50), 디버깅 칩(100), 위상동기부(110), 디버깅 신호 데이터화부(120), 내부 메모리(130a, 130b), 메모리 제어부(140), 칩 제어부(150), 레지스터(160), 외부 메모리(200), 호스트 장치(300)가 도시되어 있다.
본 실시예에 따른 디버깅 시스템은 오실레이터(50), 디버깅 칩(100), 외부 메모리(200), 호스트 장치(300)를 포함한다. 여기서, 디버깅 칩(100)은 위상동기부(110), 디버깅 신호 데이터화부(120), 내부 메모리(130a, 130b), 메모리 제어부(140), 칩 제어부(150), 레지스터(160)를 포함한다.
호스트 장치(300)는 디버깅 칩(100)을 제어하고, 디버깅 칩(100)에서 출력된 신호를 입력받아 사용자에게 오실로스코프 혹은 로직 분석기와 같이 파형으로 변환하여 제공해주는 장치이다. 컴퓨터와 같이 입력받은 신호를 디스플레이 터미널에 출력하고, 이를 제어할 수 있는 장치이다. 여기서, 파형으로 변환된 신호를 출력하기 위한 디스플레이 터미널은 호스트 장치(300) 내에 포함되거나 외부에 연결되어 있을 수 있다.
디버깅 칩(100)은 외부에 위치한 디버깅 대상 칩(10)과의 인터페이스를 위한 클럭 핀과 하나 이상의 입력 핀을 구비하고 있다. 여기서, 디버깅 대상 칩(10)의 클럭 핀은 디버깅 칩(100)의 클럭 핀과 연결된다.
디버깅 대상 칩(10)의 신호들을 데이터화하기 위해서는 고속의 클럭으로 신호들을 샘플링할 필요가 있는데, 이는 디버깅 칩(100) 내부의 위상동기부(110)에서 발생되는 클럭을 기준으로 샘플링하거나 혹은 클럭 핀을 서로 연결함으로써 해당 클럭 핀에 연결된 신호를 이용하여 샘플링하기 때문이다. 여기서, 샘플링은 클럭이 '0'에서 '1'로 변하는 이벤트가 발생하는 시점(상승 에지(rising edge)) 혹은 '1'에서 '0'으로 변하는 이벤트가 발생하는 시점(하강 에지(falling edge))에서 디버깅 대상 칩(10)의 출력 핀을 통해 출력되는 각 신호들의 상태를 감지하는 것을 의미한다.
클럭 핀 이외의 핀들, 즉 디버깅 대상 칩(10)의 출력 핀들(Output pin1 ~ Output pin(N))은 디버깅 칩(100)의 입력 핀들(Input pin1 ~ Input pin(N))에 일대일로 각각 연결될 수 있다. 여기서, N은 2 이상의 자연수이며, 디버깅 칩(100)의 입력 핀의 수는 디버깅 대상 칩(10)의 출력 핀의 수와 동일하거나 많을 수 있다. 다양한 디버깅 대상 칩(10)에 적용가능하도록 디버깅 칩(100)의 입력 핀의 수는 가능한한 많은 것이 바람직할 것이다.
위상동기부(Phase Locked Loop, PLL)(110)는 디버깅 칩(100)의 외부에 있는 오실레이터(50)로부터 입력받은 클럭(clock)을 소정의 주파수를 가지는 클럭, 즉 위상동기 클럭으로 변환한다. 여기서, 클럭은 동일한 주기로 '0', '1'을 반복하는 신호를 의미하며, 주파수는 신호가 '0'에서 '1', '1'에서 '0'으로 일정한 왕복운동을 지속적으로 반복하는 경우, 단위 시간당 이러한 반복운동이 일어난 횟수를 의미한다.
위상동기부(110)에서 변환한 위상동기 클럭은 후술할 디버깅 신호 데이터화부(120)에서 데이터화를 위한 샘플링의 기준이 된다.
오실레이터(50)는 디버깅 칩(100)의 외부에 위치하며, 정해진 주기의 클럭을 생성하는 장치로서, 디버깅 칩(100) 내에 일정 주기의 클럭을 생성하여 제공해 준다.
디버깅 신호 데이터화부(Debugging signal data generator)(120)는 외부의 칩, 즉 디버깅 대상 칩(10)의 신호를 데이터화한 디버깅 신호 데이터를 생성한다.
디버깅 신호 데이터화부(120)가 디버깅 칩(100)의 입력 핀들을 통해서 입력되는 디버깅 대상 칩(10)의 출력 핀들로부터의 출력 신호들(이하 '디버깅 신호'라 칭함)을 데이터화하기 위해서는 신호 상태를 검출하는 검출 시작점을 결정할 필요가 있다.
이를 위해서 클럭 핀을 제외하고 디버깅 대상 칩(10)의 출력 핀들과 연결된 디버깅 칩(100)의 입력 핀들 중 하나를 기준 핀으로 결정하고, 해당 기준 핀을 통해 입력되는 신호가 '0'에서 '1'로 혹은 '1'에서 '0'으로 변하는 시점을 시작점으로 결정할 수 있다. 기준 핀의 결정은 호스트 장치(300)에서 전송된 제어 신호(control signal)에 따라 레지스터(160)를 설정함으로써 이루어질 수 있다.
도 4를 참조하면, 제1 입력 핀이 기준 핀으로 결정되어 있으며, 제1 입력 핀을 통해 입력되는 제1 신호선의 신호(Signal 1)에 대해서, 해당 신호가 '0'에서 '1'로 변하는 시점, 즉 위상동기 클럭(PLL clock)을 기준으로는 step2를 검출 시작점으로 결정될 수 있다.
데이터화하기 위한 검출 시작점이 결정되면, 데이터화하는 구간을 결정할 필요가 있다. 데이터화 구간은 디버깅 신호들을 검출하는 구간으로, 검출 시작점을 기준으로 하여 호스트 장치(300)가 설정한 클럭 개수만큼을 포함한다. 즉, 호스트 장치(300)가 설정한 수의 클럭 이후에 검출 끝점이 존재하게 되며, 검출 시작점과 검출 끝점 사이에 클럭 개수에 상응하는 길이의 데이터화 구간이 존재하게 된다.
여기서, 데이터화 구간을 결정하기 위한 변수들, 즉 검출 시작점 및 설정 클럭 수는 호스트 장치(300)에 의해 설정된 레지스터(160)에 그 값이 저장되어 있어, 디버깅 신호 데이터화부(120)는 레지스터(160)에서 해당 값을 읽어 데이터화 구간을 결정하게 된다. 여기서, 데이터화 구간을 결정하기 위한 변수로 검출 끝점이 더 포함될 수도 있다.
디버깅 신호 데이터화부(120)는 데이터화 구간 동안에 입력되는 디버깅 신호들에 대해서 데이터화를 수행한다. 데이터화 구간 동안에 클럭의 상승 에지(또는 하강 에지)에 해당하는 시점마다 각 디버깅 신호들의 상태를 감지하고, 이를 버스화된 디버깅 신호 데이터로 만든다.
도 5를 참조하면, 입력 핀을 통해 입력된 디버깅 신호들에 대해서 클럭의 상승 에지에 해당하는 시점마다 그 상태를 감지하고 있다. 예를 들어, step1 클럭에서 Signal1, Signal2, Signal3, …, Signal(N-1), Signal(N)에 대하여 감지된 상태는 각각 '0', '0', '1', …, '1', '0'이다
각 클럭에서 감지된 각 디버깅 신호의 상태를 이용하여 용이하게 처리될 수 있도록 디버깅 신호 데이터로 만들게 된다. 예를 들어, 도 6에 도시된 것과 같이 디버깅 신호 중 N번째 위치한 Signal(N)의 상태를 최상위 비트로 하고, 1번째 위치한 Signal1의 상태를 최하위 비트로 하며, 각 디버깅 신호의 상태는 그 위치에 상응하는 비트의 값이 되도록 할 수 있다. 따라서, step1 클럭에서 감지된 디버깅 신호들의 상태를 버스화한 디버깅 신호 데이터 data0[N-1:0]은 01…100이 될 수 있을 것이다. 같은 원리에 의해 data1[N-1:0]은 10…011, data2[N-1:0]는 10…001 등이 될 수 있을 것이다.
여기서, 디버깅 신호들의 상태를 버스화하는 방법은 디버깅 신호의 수(N)만큼의 비트를 가지는, 즉 N 비트의 디버깅 신호 데이터를 생성하고, 디버깅 신호 데이터의 각 비트는 특정 클럭에서 감지된 출력 신호들의 상태를 상응하는 비트의 값으로 가질 수 있다. 출력 신호와 비트는 일대일 대응을 만족하면 충분하므로, 도 6에서는 Signal(N), Signal(N-1), …, Signal3, Signal2, Singal1의 순서로 최상위 비트에서부터 최하위 비트로 일대일 대응되는 것을 가정하였지만, 호스트 장치(300)에서의 제어에 따라 그 대응 순서가 반대이거나 임의의 출력 신호와 비트가 대응될 수도 있을 것이다.
내부 메모리(130a, 130b)는 디버깅 신호 데이터화부(120)에서 데이터화된 정보인 디버깅 신호 데이터를 외부 메모리(200)로 전달하거나 호스트 장치(300)로 전달하기 전에 임시로 저장하는 임시 버퍼(buffer)로 사용된다.
메모리 제어부(140)는 디버깅 신호 데이터를 외부 메모리(200)에 기록하거나 외부 메모리(200)에 저장된 디버깅 신호 데이터를 읽어오기 위해 외부 메모리(200) 및 내부 메모리(130a, 130b)를 제어한다.
디버깅 신호 데이터화부(120)에 의해 데이터화된 디버깅 신호들, 즉 디버깅 신호 데이터는 제1 내부 메모리(130a)에 임시 저장된다. 메모리 제어부(140)는 일정량 이상의 디버깅 신호 데이터가 제1 내부 메모리(130a)에 저장되면, 제1 내부 메모리(130a)에 저장된 일정량 이상의 디버깅 신호 데이터를 외부 메모리(200)에 저장한다.
외부 메모리(200)는 저장뿐 아니라 호스트 장치(300)에 데이터를 전달하기 위한 읽기도 수행될 수 있는 바, 매 순간 저장 동작이 즉시 수행되지 못할 수도 있기 때문에 제1 내부 메모리(130a)에 우선적으로 임시 저장함으로써 시간적 여유를 확보할 수 있게 된다.
또한, 메모리 제어부(140)는 외부 메모리(200)에 저장된 디버깅 신호 데이터를 호스트 장치(300)로 전달하기 위한 중간 단계로 제2 내부 메모리(130b)에 임시 저장한다. 읽기 동작이 즉시 수행되지 못할 수도 있기 때문에 외부 메모리(200)에의 접근이 가능할 때마다 순차적으로 디버깅 신호 데이터를 읽어와 제2 내부 메모리(130b)에 우선적으로 디버깅 신호 데이터를 임시 저장하게 된다. 이후 일정량 이상의 디버깅 신호 데이터가 제2 내부 메모리(130b)에 저장되면, 제2 내부 메모리(130b)에 저장된 일정량 이상의 디버깅 신호 데이터를 호스트 장치(300)로 전달한다.
칩 제어부(150)는 레지스터(160)를 참고하여 데이터화 구간을 결정하는 등 디버깅 칩(100)의 각 구성요소가 상술한 기능을 수행할 수 있도록 각 구성요소를 제어한다.
레지스터(160)는 칩 제어부(150)의 동작을 정의하기 위해 외부의 호스트 장치(300)로부터 제어 레지스터 정보를 입력받아 저장하고 있다.
외부 메모리(200)는 디버깅 칩(100)에서 생성된 디버깅 신호 데이터를 저장하는 공간으로, 디버깅 칩(100)과는 별개로 구성되는 휘발성 혹은 비휘발성 메모리일 수 있다.
호스트 장치(300)는 외부 메모리(200)에 저장되어 있는 디버깅 신호 데이터를 전달받으며, 디버깅 신호 데이터를 해석하여 사용자가 확인가능한 파형으로 변환하여 디스플레이 터미널로 출력한다.
디버깅 신호 데이터가 생성된 순서는 데이터화 구간 내에서의 해당 디버깅 신호 데이터가 생성될 때의 클럭 순서에 해당한다. 또한, 디버깅 신호 데이터는 N 비트의 데이터로서 각 비트의 위치와 디버깅 대상 칩(10)의 출력 핀들이 일대일로 대응하고 있기 때문에, 소정 위치의 비트 값을 확인함으로써 상응하는 디버깅 대상 칩(10)의 출력 핀에서 출력된 신호의 상태를 확인할 수 있게 된다.
즉, 디버깅 신호 데이터 중 특정 비트의 비트 값을 디버깅 신호가 생성된 순서에 따라 나열하게 되면, 해당 특정 비트에 일대일 대응되는 디버깅 대상 칩(10)의 출력 핀에서 출력된 신호에 대해서 클럭 주기에 따른 순차적인 신호 상태를 확인할 수 있게 되어 파형으로의 출력이 이루어질 수 있다.
본 실시예에서, 디버깅 칩(100)과 호스트 장치(300)간의 인터페이스는 일반적인 직렬 인터페이스(serial interface)인 I2C(Inter-Integrated Circuit) 또는 SPI(Serial Peripheral Interface) 통신 등의 방법을 이용하게 된다.
도 7은 본 발명의 일 실시예에 따른 디버깅 칩에서의 외부 칩 신호 데이터화 방법의 순서도이다. 여기서, 외부 칩 신호는 디버깅 대상 칩의 출력 핀들을 통해 출력되는 신호로서, 디버깅 신호인 경우를 가정하여 설명한다.
디버깅 칩이 외부에 연결된 디버깅 대상 칩으로부터 디버깅 신호를 입력받는다(S1).
입력받은 디버깅 신호에 대한 데이터화 구간을 결정한다(S2). 여기서, 데이터화 구간은 외부의 호스트 장치에 의해 디버깅 칩의 레지스터에 설정되어 있는 값에 따른 데이터화 구간 변수에 의해 결정될 수 있다. 데이터화 구간 변수는 검출 시작점 및 설정 클럭 수를 포함할 수 있으며, 추가적으로 검출 끝점을 더 포함할 수도 있다.
데이터화 구간 동안 입력되는 디버깅 신호에 대하여 각 디버깅 신호의 상태를 감지한다(S3).
감지된 각 디버깅 신호의 상태를 버스화하여 디버깅 신호 데이터를 생성한다(S4). 디버깅 신호의 수(N)에 해당하는 비트를 가지는, 즉 N 비트의 디버깅 신호 데이터를 생성하고, 디버깅 신호 데이터의 각 비트에는 일대일로 대응되는 디버깅 신호의 상태가 해당 시점에서의 비트 값이 될 수 있다.
데이터화 구간은 위상동기부에 의해 생성 출력되는 위상동기 클럭을 기준으로 하여 설정될 수 있다. 위상동기 클럭은 오실레이터로부터 입력된 클럭이 위상동기부에서 변환된 주파수를 가지는 클럭이다.
위상동기 클럭의 상승 에지 또는 하강 에지에 해당하는 시점마다 단계 S3 및 단계 S4를 반복 수행하여, 설정 클럭 수에 상응하는 수의 디버깅 신호 데이터가 생성된다.
상술한 단계를 거쳐 생성된 디버깅 신호 데이터는 내부 메모리를 거쳐 외부 메모리에 저장되었다가 호스트 장치로부터의 요청에 의해 호스트 장치로 전달되며, 호스트 장치에서는 디버깅 신호 데이터를 해석한 결과에 따라 사용자가 확인할 수 있도록 파형으로 디스플레이 터미널에 표시하게 된다.
상기에서는 본 발명의 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10: 디버깅 대상 칩 20: 오실로스코프 혹은 로직 분석기
50: 오실레이터 100: 디버깅 칩
110: 위상동기부 120: 디버깅 신호 데이터화부
130a, 130b: 내부 메모리 140: 메모리 제어부
150: 칩 제어부 160: 레지스터
200: 외부 메모리 300: 호스트 장치
50: 오실레이터 100: 디버깅 칩
110: 위상동기부 120: 디버깅 신호 데이터화부
130a, 130b: 내부 메모리 140: 메모리 제어부
150: 칩 제어부 160: 레지스터
200: 외부 메모리 300: 호스트 장치
Claims (15)
- 외부의 디버깅 대상 칩에 구비된 하나 이상의 출력 핀으로부터 출력되는 디버깅 신호를 입력받는 하나 이상의 입력 핀을 구비하고 있는 디버깅 칩으로서,
외부의 호스트 장치로부터의 제어 신호에 따라 데이터화 구간을 결정하기 위한 변수가 설정되어 있는 레지스터;
상기 데이터화 구간 내에 입력되는 상기 디버깅 신호를 데이터화한 디버깅 신호 데이터를 생성하는 디버깅 신호 데이터화부; 및
상기 레지스터에 설정된 변수를 기초로 상기 데이터화 구간을 결정하여 상기 디버깅 신호 데이터화부를 제어하는 칩 제어부를 포함하는 디버깅 칩.
- 제1항에 있어서,
외부의 오실레이터로부터 입력받은 제1 클럭을 소정의 주파수를 가지는 제2 클럭으로 변환하는 위상동기부를 더 포함하되,
상기 디버깅 신호 데이터화부는 상기 데이터화 구간 내에서 상기 제2 클럭의 상승 에지 혹은 하강 에지에 해당하는 시점마다 감지한 상기 디버깅 신호의 상태를 버스화하여 상기 디버깅 신호 데이터를 생성하는 것을 특징으로 하는 디버깅 칩.
- 제2항에 있어서,
상기 디버깅 신호 데이터는 상기 시점에서 감지한 상기 디버깅 신호의 수에 상응하는 수의 비트를 가지는 것을 특징으로 하는 디버깅 칩.
- 제3항에 있어서,
상기 디버깅 신호 데이터의 각 비트와 상기 디버깅 신호는 일대일 대응하며,
상기 일대일 대응되는 디버깅 신호의 감지된 상태가 상기 각 비트의 비트 값이 되는 것을 특징으로 하는 디버깅 칩.
- 제2항에 있어서,
상기 데이터화 구간을 결정하기 위한 변수는 검출 시작점 및 설정 클럭 수를 포함하는 것을 특징으로 하는 디버깅 칩.
- 제5항에 있어서,
상기 검출 시작점은 상기 디버깅 신호 중 선택된 하나의 상태가 변하는 시점인 것을 특징으로 하는 디버깅 칩.
- 제5항에 있어서,
상기 데이터화 구간을 결정하기 위한 변수는 검출 끝점을 더 포함하는 것을 특징으로 하는 디버깅 칩.
- 제1항에 있어서,
상기 디버깅 신호 데이터를 임시 저장하는 내부 메모리; 및
상기 디버깅 신호 데이터화부에서 생성된 상기 디버깅 신호 데이터를 외부 메모리에 저장하기 이전에 상기 내부 메모리에 임시 저장하거나 상기 외부 메모리에 저장된 상기 디버깅 신호 데이터를 호스트 장치로 전달하기 위해 상기 내부 메모리에 임시 저장하는 메모리 제어부를 더 포함하는 디버깅 칩.
- 디버깅 대상 칩과 연결되어 상기 디버깅 대상 칩에 구비된 하나 이상의 출력 핀으로부터 출력되는 디버깅 신호를 입력받고, 레지스터에 설정된 데이터화 구간 내에 입력되는 상기 디버깅 신호를 데이터화한 디버깅 신호 데이터를 생성하는 디버깅 칩; 및
제어 신호를 상기 디버깅 칩으로 전송하여 상기 레지스터를 설정하며, 상기 디버깅 신호 데이터를 전달받아 해석하고 파형(waveform)으로 변환하여 디스플레이 터미널에 출력하는 호스트 장치를 포함하는 디버깅 시스템.
- 제9항에 있어서,
제1 클럭을 생성하는 오실레이터를 더 포함하되,
상기 디버깅 칩은 상기 제1 클럭을 입력받아 소정의 주파수를 가지는 제2 클럭으로 변환하고, 상기 데이터화 구간 내에서 상기 제2 클럭의 상승 에지 혹은 하강 에지에 해당하는 시점마다 감지한 상기 디버깅 신호의 상태를 버스화하여 상기 디버깅 신호 데이터를 생성하는 것을 특징으로 하는 디버깅 시스템.
- 제10항에 있어서,
상기 디버깅 신호 데이터를 저장하는 외부 메모리를 더 포함하되,
상기 디버깅 칩은 상기 디버깅 신호 데이터를 상기 외부 메모리에 우선 저장하고, 상기 외부 메모리에 저장된 디버깅 신호 데이터를 상기 호스트 장치로 전달하는 것을 특징으로 하는 디버깅 시스템.
- 디버깅 칩에서 외부 칩 신호를 데이터화하는 방법에 있어서,
(a) 상기 디버깅 칩에 연결된 디버깅 대상 칩으로부터 하나 이상의 디버깅 신호를 입력받는 단계;
(b) 상기 디버깅 신호에 대한 데이터화 구간을 결정하는 단계;
(c) 상기 데이터화 구간 동안 입력되는 상기 디버깅 신호에 대하여 상기 디버깅 신호의 상태를 감지하는 단계; 및
(d) 상기 감지된 디버깅 신호의 상태를 버스화하여 디버깅 신호 데이터를 생성하는 단계를 포함하는 외부 칩 신호 데이터화 방법.
- 제12항에 있어서,
상기 디버깅 신호의 수가 N(자연수)인 경우 상기 디버깅 신호 데이터는 N 비트를 가지는 데이터인 것을 특징으로 하는 외부 칩 신호 데이터화 방법.
- 제13항에 있어서,
상기 디버깅 신호 각각이 상기 디버깅 신호 데이터의 각 비트에 일대일 대응하며,
상기 디버깅 신호 데이터의 각 비트에 일대일 대응되는 상기 디버깅 신호의 상태가 상기 비트의 비트 값이 되는 것을 특징으로 하는 외부 칩 신호 데이터화 방법.
- 제13항에 있어서,
오실레이터로부터 입력된 제1 클럭을 소정의 주파수를 가지는 제2 클럭으로 변환하는 단계를 더 포함하되,
상기 제2 클럭의 상승 에지 또는 하강 에지에 해당하는 시점마다 상기 단계 (c) 및 (d)를 반복 수행하는 것을 특징으로 하는 외부 칩 신호 데이터화 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100012244A KR101031641B1 (ko) | 2010-02-10 | 2010-02-10 | 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100012244A KR101031641B1 (ko) | 2010-02-10 | 2010-02-10 | 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101031641B1 true KR101031641B1 (ko) | 2011-04-29 |
Family
ID=44050687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100012244A KR101031641B1 (ko) | 2010-02-10 | 2010-02-10 | 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101031641B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020065188A (ko) * | 2001-02-06 | 2002-08-13 | 삼성전자 주식회사 | 컴퓨터 시스템의 장애관리 방법 |
KR20030031782A (ko) * | 2001-10-16 | 2003-04-23 | 엘지전자 주식회사 | 임베디드 시스템의 웜 스타트시 데이터 백업 방법 |
-
2010
- 2010-02-10 KR KR1020100012244A patent/KR101031641B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20020065188A (ko) * | 2001-02-06 | 2002-08-13 | 삼성전자 주식회사 | 컴퓨터 시스템의 장애관리 방법 |
KR20030031782A (ko) * | 2001-10-16 | 2003-04-23 | 엘지전자 주식회사 | 임베디드 시스템의 웜 스타트시 데이터 백업 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3684831B2 (ja) | マイクロコンピュータ、電子機器及びデバッグシステム | |
JP6594309B2 (ja) | チャネル回路と自動試験システム | |
US7562256B2 (en) | Semiconductor memory device for build-in fault diagnosis | |
KR102035108B1 (ko) | 반도체 시스템 | |
CN109213703B (zh) | 一种数据检测方法及数据检测装置 | |
CN112559267A (zh) | 集成电路间总线i2c从机以及i2c控制器测试方法 | |
EP2704363A2 (en) | Transmitting device, transceiver system, and control method | |
JP6458626B2 (ja) | デバッグ回路、半導体装置及びデバッグ方法 | |
JP2016186707A (ja) | デバッグ回路、半導体装置及びデバッグ方法 | |
JP6354489B2 (ja) | デバッグ回路、半導体装置及びデバッグ方法 | |
KR101031641B1 (ko) | 디버깅 칩, 이를 이용한 디버깅 시스템 및 외부 칩 신호의 데이터화 방법 | |
TWI682184B (zh) | 單一可現場規劃閘陣列中多排組數位刺激響應之技術 | |
CN102778645B (zh) | 一种jtag主控制器及其实现方法 | |
US8290729B2 (en) | Low voltage differential signaling timing test system and method | |
WO2008075702A1 (ja) | 信号測定装置および信号測定方法 | |
US9857423B2 (en) | Debugging circuit, debugger device, and debugging method | |
JP2005222446A (ja) | オンボードデバッグ装置および半導体回路装置 | |
KR101429257B1 (ko) | 메모리 테스터에서 레이트 및 타이밍 발생장치 | |
CN100426234C (zh) | 测量基本输入输出***的自我开机测试时间的方法 | |
CN117236277B (zh) | 用于检查寄存器的方法及装置、电子设备 | |
CN117408226B (zh) | 用于通讯总线的数据解析方法及装置、*** | |
US7379837B1 (en) | Method and system for testing integrated circuits | |
CN117976023A (zh) | 存储器容量测试方法、装置、存储介质及电子设备 | |
CN114297070A (zh) | 基于接口协议和vip的自动转换的方法及应用 | |
JPWO2006062067A1 (ja) | 試験装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170329 Year of fee payment: 7 |