서론타이밍 오류를 찾아내기 위해 16비트 카운터의 입력과 출력을 동시에 관찰해야 되지만, 여러분에게 2채널 스코프만 있다면 어떻게 모두를 관찰하겠는가? 디지털 회로로 가득한 보드를 위한 타이밍 다이어그램을 개발했다면 어떻게 이를 검증하겠는가? 이를 캡처하고 분석하는 데 무엇을 사용하겠는가? 잘못된 툴로 이런 유형의 문제를 해결하는 것은 엄청난 시간 낭비일 수 있다. 이와 같은 문제를 위해서는 로직분석기가 최상의 해결책이다.오실로스코프 대 로직분석기스코프와 로직분석기 중에서 하나를 선택해야 하는 경우 많은 엔지니어들이 오실로스코프를 선택할 것이다. 그러나 스코프는 일부 애플리케이션에서 유용성의 한계가 있다. 사용자가 달성하려는 사항에 따라 로직분석기가 더 유용한 정보를 제공할 수도 있다.스코프 사용 시기· 신호에서 작은 전압 편위를 관찰해야 하는 경우· 높은 시간 간격 정확도가 필요한 경우로직분석기 사용 시기· 동시에 많은 신호를 관찰해야 하는 경우· 하드웨어와 동일한 방법으로 시스템에서 신호를 관찰해야 하는 경우· 여러 라인에서 하이 및 로우 패턴에서 트리거하고 그 결과를 관찰해야 하는 경우시스템의 신호가 단일 임계값을 교차할 경우 로직분석기는 로직 회로와 마찬가지의 방식으로 반응한다. 신호를 로우 또는 하이 중 하나로 인식한다. 또한 이 신호에서 하이 및 로우 패턴에 대해서도 트리거할 수 있다.일반적으로 오실로스코프가 표시할 수 있는 것보다 많은 라인을 관찰해야 하는 경우에는 로직분석기를 사용하라. 로직분석기는 마이크로프로세서 주소, 데이터 또는 제어 버스와 같은 버스 상의 시간 관계나 데이터를 관찰할 때 특히 유용하다. 로직분석기는 마이크로프로세서 버스 상의 정보를 디코드하여 의미 있는 형식으로 표시할 수 있다.엔지니어가 설계의 파라미터 단계를 지났고, 많은 신호 사이의 타이밍 관계에 관심을 두고 있으며, 로직 하이 및 로우 패턴에 대해 트리거해야 하는 경우, 로직분석기가 적합한 툴이다.로직분석기란 무엇인가?대부분의 로직분석기는 사실은 두 분석기가 하나로 합쳐진 것이다. 첫 번째 부분은 타이밍 분석기이고 두 번째 부분은 상태 분석기이다.타이밍 분석기 기초타이밍 분석기는 시간을 나타내는 수평 축과 전압 진폭을 의미하는 수직 축을 통해 스코프와 동일한 형식으로 정보를 표시한다. 두 계측기 상의 파형이 시간 종속적이므로 디스플레이는 시간 영역 안에 있다고 말할 수 있다.· 올바른 샘플링 방법 선택타이밍 분석기는 1비트의 수직 분해능을 갖는 디지타이징 스코프와 유사하다. 1비트의 분해능으로는 하이 또는 로우의 두 가지 상태만 표시할 수 있다. 타이밍 분석기는 한 명의 사용자가 정의한 전압 임계값만 고려한다. 샘플링할 때 신호가 임계값을 초과하면 분석기에 의해 이 신호는 하이(high) 또는 1로 표시된다. 임계값 미만의 샘플링된 신호는 0 또는 로우(low)로 표시된다. 이 샘플링 포인트부터 0과 1의 목록이 생성되며 이 목록은 입력 파형의 1비트 그림을 나타낸다. 이 목록은 메모리에 저장되며 그림 1과 같이 입력 파형의 1비트 그림을 재구성하는 데도 사용된다.타이밍 분석기는 모든 내용을 사각형으로 표시하는 경향이 있으며 이로 인해 유용성이 제한되는 것처럼 보인다. 합쳐진 여러 개 또는 수백 개의 라인 사이의 관계를 검증해야 하는 경우 타이밍 분석기가 올바른 선택이다. 모든 샘플링 포인트는 하나의 메모리 위치를 사용한다는 것을 기억하자. 따라서 분해능이 높을수록(샘플링 속도가 빠를수록) 수집 시간은 짧아진다.- 전환 샘플링그림 2와 같이 데이터가 데이터 버스트가 포함된 입력 라인에서 캡처된 경우 초반에 고속 펄스를 캡처하려면 샘플링 속도를 높은 분해능(예: 4ns)으로 조정해야 한다. 이것은 4K(4096개의 샘플)의 메모리를 갖는 타이밍 분석기는 16.4μs 후에 데이터의 수집을 멈추며 엔지니어는 두 번째 데이터 버스트를 캡처할 수 없음을 의미한다.일반적인 디버깅 작업에서는 데이터가 샘플링되어 동작이 없는 곳에 오랫동안 저장된다. 여기에서는 추가 정보를 제공하지 않고 로직분석기 메모리를 다 사용해버린다. 언제 전환이 발생하고 데이터가 양인지 아니면 음인지 알면 이 문제를 해결할 수 있다. 이 정보는 메모리를 효율적으로 사용하는 전환 타이밍을 위한 기초적인 내용이다.전환 타이밍을 구현하기 위해, 카운터와 함께 ‘전환 검출기’를 타이밍 분석기의 입력에서 사용할 수 있다. 이제 타이밍 분석기는 마지막 전환부터 경과된 시간과 함께 전환 이전의 샘플만 저장한다. 이 방법은 전환당 2개의 메모리 위치만 사용할 수 있으며 입력에 동작이 없는 경우에는 사용 가능한 메모리가 없다.그림 3의 예를 보면 버스트당 얼마나 많은 펄스가 존재하느냐에 따라 두 번째, 세 번째, 네 번째 및 다섯 번째 버스트를 캡처할 수 있다. 동시에 4ns의 타이밍 분해능을 유지할 수 있다.· 글리치 캡처글리치는 결과가 가장 안 좋은 가장 불운한 때에 나타나는 고약한 습관이 있다. 타이밍 분석기는 수신 데이터를 샘플링하고 샘플 간에 발생하는 모든 전환을 추적하며 글리치를 즉시 인식할 수 있다. 분석기의 경우 글리치는 샘플링 사이에서 두 번 이상 로직 임계값을 교차하는 모든 전환으로 정의된다. 글리치를 인식하려면 분석기를 다수의 모든 전환을 추적하고 이 전환을 글리치로 표시하도록 ‘설정’해야 한다.글리치 표시 기능은 유용하며 글리치에서 트리거하고 글리치 이전에 발생한 데이터를 표시하는 기능 또한 유용하다. 이 기능은 글리치를 발생 원인을 파악하는 데 도움이 된다. 또한, 이 기능을 통해 분석기는 필요한 경우에만(글리치가 발생했을 때) 데이터를 캡처할 수 있다.글리치가 라인 중 하나에 나타나기 때문에 주기적으로 시스템 장애가 발생하는 예를 가정해 보자. 이러한 일은 드물게 발생하므로, 데이터를 계속 저장하면(저장 능력이 충분하다고 가정) 정렬해야 할 정보가 엄청나게 많아진다. 다른 대안은 글리치 트리거 기능이 없는 분석기를 사용해서 시스템 앞에 앉아 실행 버튼을 누르고 글리치가 나타날 때까지 기다리는 것이다.· 타이밍 분석기 트리거링로직분석기는 지속적으로 데이터를 캡처하며 트레이스 포인트가 발견된 후에는 수집을 중지한다. 따라서 로직분석기는 트레이스 포인트 이전의 정보(부극성 시간)는 물론 트레이스 포인트 이후의 정보도 표시할 수 있다.- 패턴 트리거타이밍 분석기에 트레이스 사양을 설정하는 것은 오실로스코프에 트리거 레벨과 기울기를 설정하는 것과는 약간 다르다. 대다수의 분석기는 입력 라인에 걸쳐 하이 및 로우 패턴에서 트리거한다.일부 사용자들이 좀더 쉽게 작업할 수 있도록 대부분의 분석기에서 트리거 포인트를 2진수(1과 0), 16진수, 8진수, ASCII 또는 10진수로 설정할 수 있다. 트리거 포인트에 16진수를 사용하면 4비트, 8비트, 16비트, 24비트, 32비트 넓이의 버스에서 관찰할 때 특히 유용하다. 24비트 버스의 사양을 2진수로 설정하는 작업이 얼마나 성가실지 상상해 보라.- 에지 트리거스코프의 트리거 레벨 노브를 조정할 경우, 이를 입력 전압이 이 레벨을 교차할 때 소코프에 트리거 명령을 내리는 전압 비교기의 레벨을 설정하는 동작이라고 생각하라. 트리거 레벨이 로직 임계값에 사전 설정되는 것을 제외하고 타이밍 분석기는 에지 트리거링에서 본질적으로 동일하게 작동한다. 많은 로직 디바이스가 레벨 종속적인 반면, 이러한 디바이스의 클록 및 제어 신호는 종종 에지에 민감하다. 에지 트리거링을 통해 사용자는 디바이스가 클록킹될 때 데이터 캡처를 시작할 수 있다.분석기는 클록 에지(상승 또는 하강)가 발생할 때 데이터를 캡처하며 쉬프트 레지스터의 출력을 모두 포착할 수 있다. 이 경우 쉬프트 레지스터를 통한 전파 지연을 처리하기 위해 트레이스 포인트를 지연시켜야 한다.상태 분석기 기초상태 분석기를 사용해본 경험이 전혀 없는 엔지니어라면 이 분석기를 숙달하는 데 많은 시간이 필요한 상당히 복잡한 계측기라고 생각할 수 있다. 하지만 실제로 많은 하드웨어 설계자들은 상태 분석기가 매우 가치 있는 툴이라는 사실을 알게 된다.· 상태 분석기 사용 시기로직 회로의 ‘상태’는 로직 회로의 데이터가 유효할 경우의 버스 또는 라인의 샘플이다.간단한 ‘D’ 플립플롭을 예로 들겠다. ‘D’ 입력의 데이터는 상승(positive-going) 클록 에지가 발생할 때까지는 유효하지 않다. 따라서 플립플롭의 상태는 정극성 클록 에지가 발생하는 때이다. 이러한 병렬 플립플롭이 8개 있고 이 모두가 동일한 클록 신호에 연결되어 있다고 상상해보자. 클록 라인에서 정극성 전환이 발생하면 8개 모두가 자신의 ‘D’ 입력에서 데이터를 캡처한다. 다시 클록 라인에서 정극성 전환이 발생할 때마다 상태가 발생한다. 이 8개의 라인은 마이크로프로세서 버스와 유사하다.상태 분석기가 이 8개의 라인에 연결되어 있고 클록 라인에 정극성 전환이 존재할 때 데이터를 수집하도록 설정되어 있는 경우, 분석기는 그 작업만 수행한다. 클록이 높아지지 않는 한, 입력의 어떠한 동작도 상태 분석기에 의해 캡처되지 않는다.타이밍 분석기에는 샘플링을 제어하기 위한 내부 클록이 있어 테스트 대상 시스템을 비동기적으로 샘플링한다. 상태 분석기는 시스템에서 샘플링 클록을 가져오므로 시스템을 동기적으로 샘플링한다. 일반적으로 상태 분석기는 데이터를 목록 형식으로 표시하고 타이밍 분석기는 데이터를 파형 다이어그램으로 표시한다.· 클록 이해하기타이밍 분석기에서 샘플링은 단일 내부 클록의 지시를 받는다. 따라서 작업이 매우 간단해진다. 그러나 마이크로프로세서 세계에서는 시스템이 여러 ‘클록’을 가질 수 있다.엔지니어가 RAM의 특정 주소에서 트리거하고 거기 저장된 데이터를 보고자 하는 경우를 가정해 보라. 그리고 시스템이 Zilog Z80을 사용한다고 가정해 보자.상태 분석기로 Z80에서 주소를 캡처하려면 MREQ 라인이 낮아질 때 캡처해야 한다. 그러나 데이터를 캡처하려면 분석기가 쓰기 주기(WR) 라인이 낮아지거나 읽기 주기(RD)가 낮아질 때 샘플링해야 한다. 일부 마이크로프로세서는 동일한 라인에서 데이터와 주소를 멀티플렉싱한다. 분석기는 동일한 라인이지만 각기 다른 클록의 정보에서 클록킹할 수 있어야 한다.Z80은 읽기 주기 또는 쓰기 주기 동안 먼저 주소를 주소 버스로 보낸다. 그런 다음 MREQ를 어설션해 메모리 읽기 또는 쓰기에 대해 주소가 유효함을 보여준다. 마지막으로 읽기 또는 쓰기가 수행되고 있는지에 따라 RD 또는 WR 라인이 어설션된다. WR 라인은 버스의 데이터가 유효한 경우에만 어설션된다. 따라서 타이밍 분석기는 적절한 시간에 주소를 캡쳐하는 디멀티플렉서의 역할을 한 후 동일한 라인에서 발생하는 데이터를 포착한다.상태 분석기 트리거링타이밍 분석기와 마찬가지로 상태 분석기에는 저장할 데이터를 한정하는 기능이 있다. 주소 버스에서 특정 하이 및 로우 패턴을 찾고 있는 경우 이 분석기는 패턴을 발견하면 저장을 시작하여 분석기의 메모리가 가득 찰 때까지 계속 저장한다.정보는 16진수 또는 2진수 형식으로 표시할 수 있다. 16진수를 어셈블리 코드로 디코딩하면 더욱 유용할 수 있다. 프로세서의 경우 특정 16진수 문자는 명령으로 구성될 수 있다. 대부분의 분석기 제조업체는 디스어셈블러 또는 역어셈블러라고 하는 소프트웨어 패키지를 설계했다. 이들 패키지의 역할은 16진수 코드를 읽기 편하도록 어셈블리 코드로 변환하는 것이다.시퀀스 레벨 이해하기상태 분석기에는 트리거링과 저장을 도와주는 ‘시퀀스 레벨’이 있다. 시퀀스 레벨을 통해 데이터 저장을 단일 트리거 포인트보다 더욱 정확하게 한정할 수 있다. 이는 필요 없는 정보를 저장하지 않고 데이터를 윈도우잉할 수 있음을 의미한다. 시퀀스 레벨은 일반적으로 다음과 같은 모습이다.1 find xxxxelse on xxxx go to level x 2 then find xxxxelse on xxxx go to level x 3 trigger on xxxx- 선별적인 저장을 통해 메모리와 시간을 절약한다.선별적인 저장은 간단히 말해 큰 전체에서 일부만 저장함을 의미한다. 예를 들어 주어진 수의 제곱을 계산하는 어셈블리 루틴이 존재한다고 가정해 보자. 이 루틴이 제곱을 올바르게 계산하지 않는 경우 사용자는 해당 상태 분석기에 이 루틴을 캡처하라고 명령할 수 있다. 이를 위해 먼저 분석기에게 루틴의 시작을 찾으라고 명령한다. 분석기는 시작 주소를 발견한 다음 마지막 주소를 찾으며 그 사이의 모든 내용을 저장한다. 루틴의 끝을 발견하면 분석기가 저장을 중단한다(저장되는 상태가 없음).대상 시스템과의 연결 방법지금까지 스코프와 타이밍/상태 분석기 사이의 몇 가지 차이점에 대해 설명했다. 이 새로운 툴을 응용하기 전에 프로빙 시스템을 언급해야 한다.로직분석기 프로브는 테스트 대상 신호의 진폭 정확도를 상쇄시켜 많은 채널을 대상 시스템에 쉽게 연결하도록 설계되었다. 전통적으로 로직분석기는 8채널 캐패시턴스를 위한 통합형 신호 검출 회로가 있는 액티브 프로브 포드를 사용하여 채널당 총 16pF를 제공했었다.프로빙 솔루션디버깅을 위한 디지털 시스템과의 물리적 연결은 디버그 중인 대상 시스템에 대한 최소의 침해로 로직분석기에 정확한 데이터를 제공할 수 있도록 신뢰할 수 있고 편리해야 한다.일반적인 프로빙 솔루션은 케이블당 16채널을 갖는 패시브 프로브이다. 각 채널은 100kΩ과 8pF로 양 끝에서 종단된다. 패시브 프로브를 스코프 프로브와 전기적으로 비교하는 것이 가장 좋은 방법이다. 패시브 프로빙 시스템의 장점은 작은 크기와 높은 신뢰성 외에도 대상 시스템과의 연결 지점에서 바로 프로브를 종단할 수 있다는 것이다. 이렇게 하면 더 큰 액티브 포드로부터 테스트 대상 회로에 이어진 와이어로 인한 추가적인 표유 캐패시턴스를 피할 수 있다. 그 결과 테스트 대상 회로에는 이전의 프로빙 시스템을 사용한 경우의 16pF 대신 8pF 로드 캐패시턴스만 ‘표시’된다.- 분석 프로브 및 기타 액세서리상태 분석기를 마이크로프로세서 시스템에 연결하려면 기계적 연결과 클록 선택에 관한 약간의 수고가 필요하다. 버스 상의 데이터 또는 주소가 유효할 때마다 상태 분석기를 클록킹해야 한다는 사실을 기억하라. 일부 마이크로프로세서의 경우 상태 분석기를 위한 클록을 얻기 위해 여러 신호를 디코드하기 위한 외부 회로가 필요할 수 있다. 분석 프로브는 대상 시스템을 위한 빠르고 신뢰할 수 있는 정확한 기계적 연결뿐 아니라, 시스템의 작동을 올바르게 캡처하는 데 필요한 클록킹과 디멀티플렉싱과 같은 전기적 적응을 제공한다.요약이 글에서는 로직분석기가 무엇이며 어떤 기능을 하는지에 대해 설명했다. 대부분의 분석기는 타이밍 분석기와 상태 분석기로 구성되므로 이 두 개의 분석기를 개별적으로 다뤘다. 아울러 이 두 분석기는 디지털 설계자를 위한 강력한 툴을 구성한다. 타이밍 분석기는 버스 유형의 구조나 많은 라인을 다루는 애플리케이션에 더 적합하다. 라인에 걸친 패턴이나 글리치에서 트리거하는 기능도 있다. 상태 분석기는 대부분의 경우 소프트웨어 툴로 간주된다. 실제로 상태 분석기는 하드웨어 영역에서기도 많이 사용된다. 상태 분석기는 테스트 대상 시스템에서 클록을 얻으므로 시스템이 상태 분석기를 시스템의 클록 상에서 볼 수 있는 경우 데이터를 포착하는 데 사용할 수 있다. 이 기초 지식을 통해 엔지니어는 이제 디지털 설계를 디버그할 수 있다는 자신감과 함께 로직분석기를 사용할 수 있을 것이다.
회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지