T 기술기고문

전원 시스템의 설계 및 디버깅 시간을 단축하는 혁신적이고 유연하며 직관적인 전원 시퀀싱 시스템

글 : 나브딥 싱 드한잘(Navdeep Singh Dhanjal) / 아나로그디바이스

어느 산업분야에서나 전자 시스템들이 점점 더 복잡해지고 있다는 것은 틀림없는 사실이지만, 이를 위한 전원공급장치 설계가 얼마나 복잡해졌는지는 명확하지 않다. 일례로, 점점 더 작아지는 폼 팩터에 보다 풍부한 애플리케이션 기능 세트를 구현하기 위해, 설계자들은 일반적으로 ASIC, FPGA, 마이크로프로세서를 사용함으로써 이러한 기능적 복잡성 문제를 해결한다. 하지만 이러한 디바이스들은 전원 시스템에 대해 서로 다른 디지털 부하를 형성함으로써, 일정 범위의 전력 레벨에 대해 각 레일마다 공차가 조금씩 다른 매우 다양한 전압 레일을 요구한다. 전원의 정확한 스타트업과 셧다운 시퀀싱 역시 중요하다. 보드 상에서 여러 개의 전압 레일이 필요해짐으로써 전원 시스템 시퀀싱 설계와 디버깅이 나날이 복잡해지고 있다.

확장성
애플리케이션 보드가 필요로 하는 전압 레일 수는 보드의 복잡성과 직결된다. 전원장치 설계자는 단 10개의 전압 레일만을 필요로 하는 보드를 설계할 수도 있고, 200개의 전압 레일이 필요한 보드를 설계할 수도 있다. 시퀀서 디바이스는 대개 16 레일까지 지원할 수 있도록 설계된다. 레일 수가 단일 시퀀서로 지원할 수 있는 수보다 얼마나 많이 초과하는지 여부에 따라서 복잡성이 기하급수적으로 높아지기 때문에, 설계자는 각각의 시퀀서를 학습해서 이를 복잡한 시스템에 어떻게 결합할지 이해해야 한다.

전압 레일 수가 많은 경우에는 여러 개의 시퀀서를 캐스케이드 방식으로 연결해야 하는데, 작업이 그리 쉽지는 않다. 캐스케이드 시스템에서는 전압 레일 수가 늘어날수록 복잡도가 극적으로 높아진다. 설계자들은 이러한 복잡성을 완화하기 위해서 시퀀서를 캐스케이드로 연결하기 위한 창의적인 기법들을 도입하고 있다. 핑퐁 메커니즘을 사용하거나 전용 디지털 신호를 통해서 결함 및 파워굿(power good) 상태를 공유하는 것을 들 수 있다. 이러한 기법들은 비교적 단순한 시퀀싱에는 충분히 사용할 만하지만, 파워업/파워다운 시퀀싱이 복잡해질수록 사용하기가 힘들어진다.

ADM1266은 진정한 확장성을 제공함으로써 이러한 복잡성 문제를 해결한다. 이 디바이스는 ADI의 수퍼 시퀀서(Super Sequencer®) 제품군으로 가장 최근에 추가된 제품이다. 여러 개의 ADM1266 디바이스를 연결하기 위해서는 통신 전용 2와이어 IDB(interdevice bus)를 사용해야 한다. 각각의 ADM1266은 17개 전압 레일을 모니터링 및 시퀀싱 할 수 있으며, 최대 16개까지 ADM1266 디바이스를 병렬로 연결해서 총 257개 전압 레일을 모니터링 및 시퀀싱 할 수 있다. 그러기 위해서는 모든 디바이스들이 동일한 IDB로 연결되어야 한다.

ADM1266은 하나의 마스터를 사용하며, 추가적인 ADM1266 디바이스들은 슬레이브가 된다. 또 IDB로 연결된 모든 개별 ADM1266은 동시에 다음 단계로 넘어가는 병렬 아키텍처를 사용함으로써, 시스템 조건에 따라서 버스 상의 모든 ADM1266들은 동기화한다. 버스 통신은 투명하게 이루어지므로, 설계자 측면에서는 1개의 ADM1266을 위한 시퀀스를 생성하는 것이나 16개 ADM1266 디바이스를 위한 시퀀스를 생성하는 것이나, 작업에 들어가는 시간이나 노력이 똑같아진다. 이 시스템의 가장 큰 장점은, 단순한 설계이든 복잡한 설계이든 설계자는 1개의 디바이스를 사용하는 방법만 배우면 되기 때문에 학습 과정이 단순하다는 것이다. 그림 1에서 보이는 것처럼, 여러 개의 디바이스를 동일한 IDB로 연결하기만 하면 된다.

이벤트 기반 시퀀싱
오늘날의 시퀀서는 전압 레일 모니터링 외에, 디지털 신호에 대한 응답도 할 수 있어야 한다. 기존의 시간 기반 시퀀서는 고정된 신호를 사용하기 때문에 결과가 정해져 있고 기능성도 제한적이다.

예를 들어 살펴보자. 여기, 메인보드 한 개와 옵션인 도터 보드가 한 개 있다. 도터 카드 탐지 신호는 시퀀서에 의해 모니터링 된다. 이 신호가 감지되면, 시퀀서는 도터 카드 상에 존재하는 전압 레일을 실행시킨다. 만약 이 신호가 없으면, 시퀀서는 메인보드 시퀀스 절차를 계속 수행하고 파워굿 상태로 완료한다. 대부분의 기존 시퀀서들은 이러한 도터 카드 탐지 신호 모니터링 기능을 제공하지 않는다. 또한 이러한 요구 사항은 애플리케이션마다 다를 수 있으며, 범용 입출력 핀(GPIO)을 사용해서 지원할 수 있다.

또 다른 예로, ASICFPGA를 포함하는 시스템에서, ASIC을 완전히 파워업하고 실행한 다음에 FPGA를 구동하는 애플리케이션을 살펴보자. 이 경우, 시퀀서는 ASIC 전원들을 순서대로 실행한 후에, ASIC으로부터 디지털 파워굿 신호를 기다린다. ASIC 파워굿 신호를 확인하면, 100ms 기다렸다가 이어서 FPGA를 파워업한다. 이러한 복잡한 시퀀스를 만들기 위해서는 이벤트 기반 시퀀서가 필요하다. 여러 개의 시퀀서를 사용하는 시스템에서는 1개의 시퀀서가 갖고 있는 정보를 보드 상의 다른 시퀀서들과 공유해야 한다. 그래야 디바이스들이 일제히 동시에 동작할 수 있다.

전압 모니터링 OV 및 UV 비교기, GPIO 및 PDIO 같은 디지털 신호, 타이머, 변수, IDB로부터의 메시지 모두를 풍부한 기능의 ADM1266 시퀀스 엔진으로 전달하고 이벤트를 트리거 할 수 있다. 따라서 사용자는 다양한 이벤트를 모니터링하고 적절한 조치를 취할 수 있는 복잡한 상태기를 손쉽게 작성할 수 있다.


그림 1: 여러 개의 ADM1266을 IDB로 연결함으로써 시퀀싱을 손쉽게 확장할 수 있다.

시스템 설계 시간 단축
기존에는 1개의 시퀀서를 사용하는 전원 시퀀싱 시스템을 설계하는 것과 여러 개의 시퀀서를 사용해야 하는 시스템을 설계하는 것이 차이가 컸다. 16개 전압을 위해 1개의 시퀀서를 사용하는 설계는 단순하기 때문에, 설계자는 소프트웨어 그래픽 사용자 인터페이스(GUI)를 사용해서 각각의 전압 레일과 시퀀싱을 구성할 수 있다. 이 프로세스에서는 16개 레일에 대해서 수작업으로 일일이 선택하고 설정하는 작업이 반복된다. 이와 달리, 5개의 시퀀서와 80개 레일을 사용하는 설계를 살펴보자. GUI를 사용해서 80개 레일을 수작업으로 구성하려면 시간도 많이 걸리고 사람의 실수도 개입되기 쉽다. 또 여러 개의 디바이스를 어떻게 해야 가장 잘 연결할지, 5개 시퀀서의 자원을 80개 전압 레일로 어떻게 할당할지, 설계자가 결정해야 한다. 대부분의 소프트웨어 지원 설계 툴은 이 작업을 지원하지 못한다. 따라서 사용자가 시퀀서 IC의 특정한 기능들을 이해하고 GUI를 통해서 일일이 지정을 해야 하므로 매번 프로젝트를 할 때마다 상당한 학습이 필요하다.

ADM1266은 이와 다른 접근법을 취하고 있다. PC 기반 개발 툴인 ADI Power Studio™를 사용하면 이 디바이스의 구성 및 디버깅이 가능하다. 이 툴은 ADM1266의 다양한 설정을 구성하는 것뿐만 아니라 훨씬 많은 것들을 할 수 있다. ADI Power Studio는 포괄적인 개발 및 디버깅 툴로서, 설계자가 견고한 시퀀스를 달성할 수 있도록 돕는다. 설계자는 기존 GUI를 활용할 때보다 더 상위 레벨에서 전원 시스템에 접근할 수 있다. 이 툴의 마법사 기능을 사용하면 80개 전압 레일을 단 몇 분만에 셋업 및 구성할 수 있다. 이 작업을 수작업으로 하려고 하면 적어도 몇 시간은 걸릴 것이다. 그림 2와 그림 3은 이 툴의 인터페이스 화면을 보여준다.


그림 2: ADI Power Studio는 각각의 레일 이름을 사용한다는 것이 특징이다.


그림 3: 전체 시스템을 한 번에 구성 가능. 시스템 레일 마법사가 레일 수에 상관없이 동일한 인터페이스를 사용해서 전체 시퀀스를 구성하는 작업을 안내한다. 사용자 정의 레일 이름을 사용하여 개별 레일들을 손쉽게 식별할 수 있다.

설계자가 가장 먼저 할 일은, 시스템의 요구에 맞게 가상 상태기를 생성하는 것이다. 단일 시퀀서 설계(레일이 17개 이하)의 경우에는, GUI의 가상 상태기와 시퀀서의 상태기가 일치한다. 시퀀서가 더 많이 추가될수록 가상 상태기와 개별 시퀀서 상태기의 차이가 더욱 벌어져, 디바이스들 간에 다양한 이벤트를 통신하려면 상태기에 추가적인 조치들이 필요하다.

예컨대 시퀀서 1로 2개의 전압 레일을, 시퀀서 2로 2개의 전압 레일을 각각 모니터링한다고 하자. 설계에 따르면 4개의 전압 레일 중 하나라도 고장을 발견하면 모든 것이 정지된다. 여기서는 디바이스가 2개이므로, 이들 사이에 결함 신호를 공유해야 한다. 그림 4는 이 시스템의 가상 상태기와 개별 디바이스 상태기를 나타낸다.


그림 4: 가상 상태기와 디바이스 차원 상태기

레일 수가 늘어나고 시퀀싱 요구가 복잡해질수록, 시스템의 가상 상태기와 디바이스 차원 상태기의 차이는 점점 더 벌어진다. 설계자는 어떻게 동작이 일어났으면 하고 생각하는 것이 있을 것이고, 그러기 위해서는 시퀀서들을 잘 조율해야 한다. 여기에는 많은 시간이 걸리고 버그도 발생하기 쉽다. ADI Power Studio는 상태기 작성 작업의 상당 부분을 자동화한다. 사용자가 GUI를 사용해서 설계하면, 여러 시퀀서들 사이의 복잡한 통신은 ADI Power Studio의 컴파일러가 알아서 처리한다. 따라서 설계자는 유연하면서도 직관적인 방법으로 복잡한 상태기를 생성할 수 있다.

강력한 디버깅 툴
버그는 복잡한 시스템을 개발하는 어느 단계에서나 발생할 수 있다. 대개의 경우에는 개발 단계에서 대부분의 버그를 잡아내고 해결하지만, 어떤 경우에는 생산 단계에서 버그가 발견되기도 한다. 어떤 경우이든, 중요한 것은 시스템 설계자가 문제를 재빨리 찾아내고 해결할 수 있도록 도와줄 수 있는 툴이 필요하다는 것이다. 일반적으로 설계자들은 순수한 설계 작업보다도 디버깅 작업에 훨씬 더 많은 시간을 소모하기 때문이다. 대표적인 결함으로는 전압 레일 결함과 신호의 로직 레벨이 잘못되는 것을 들 수 있다.

앞서 예시한, 80개의 전압 레일을 사용하는 보드를 떠올려 보자. 이러한 경우, 설계 단계에서 이들 레일 중의 어느 한 곳에 결함이 발생하는 일은 결코 드물지 않다. 해당 결함은 부품 차원의 설계 잘못일 수도 있고, 구성이 잘못된 것일 수도 있다. 어느 경우이든 문제 해결을 위해 가장 먼저 할 일은, 문제의 레일이 어느 것인지부터 알아내는 것이다. 문제는, 통상적인 시퀀스의 경우에 어떤 전압 레일에 문제가 발생하면 시퀀서가 모든 전압 레일을 셧다운한다는 것이다. 이러한 셧다운 동작은 제품 기능으로서는 견고성을 높이나, 설계 단계에서 디버깅에는 방해가 된다. 시스템이 전체적으로 중단됨으로써 결함이 어디에서 발생했는지 알 수 없게 되기 때문이다. 설계자가 숲은 보되 나무는 볼 수 없는 것이다. 설계자가 테스트 장비를 동원해서 80개 레일 모두를 동시에 모니터링한다는 것이 현실적으로 어렵기 때문에 문제의 레일을 찾아내기가 거의 불가능하다.

이상적인 디버깅 시스템이라면, 문제의 소지가 있는 전압 레일이 확인됐을 때 다른 전압 레일들은 계속 작동을 해야, 시스템의 나머지 부분이 계속해서 동작하는 가운데, 문제가 있는 레일의 동작을 관찰할 수 있게 해줄 것이다. 시퀀스 설정을 강제로 수정해서 이러한 동작을 수행할 수 있게 할 수도 있겠지만, 디버깅을 하기 위해서 시퀀스를 중단하는 것은 번거로움을 더할 뿐이다.

ADI Power StudioADM1266은 디버깅 작업을 손쉽게 하기 위해 소프트웨어 설계 환경에 흔히 사용되는 향상된 디버깅 툴들을 제공한다. 첫 번째 디버깅 툴은 중단점(breakpoint) 형태로 제공된다. 중단점은 특정한 상태가 발생했을 때 시퀀스 진행을 멈추는 것이다. 여러 개의 ADM1266 디바이스를 사용하는 시스템에서, 모든 ADM1266 디바이스들은 상태기를 진행해 가다가 사용자가 중단점을 지정한 상태가 발생하면 동작을 정지한다. 이렇게 시퀀스를 일단 정지함으로써 설계자는 문제의 전압 레일을 디버깅하거나 신호가 왜 적절한 로직 레벨이 아닌지 확인할 수 있다.

또한 설계자는 모든 상태에 대해 중단점을 지정해서 시퀀스를 진행할 수도 있다. 이러한 싱글 스텝핑의 한 예로는 전압 레일을 시작하기 앞서 사전 바이어스 스타트 업을 검사하는 것을 들 수 있다. 전원 시퀀스를 싱글 스텝핑 함으로써, 꺼져 있어야 할 레일이 출력으로 전압을 나타내고 있지 않은지 확인할 수 있다. 이러한 사항들이 ADI Power Studio의 모니터링 창에 나타난다. 그림 5는 사용자 정의 중단점 예시를 나타낸 것이다.


그림 5: 중단점을 사용하면 어떤 조건이 발생했을 때 시퀀스를 일단정지 할 수 있어 디버깅이 수월해진다.

또 다른 디버깅 툴은 블랙박스 기록 기능이다. 이는 특정한 이벤트가 발생했을 때의 모든 전압 모니터링 및 디지털 핀 상태를 사진을 찍듯이 기록하는 것이다. 블랙박스 기능이 작동하면, 이벤트가 발생했을 때의 상태, 이벤트 발생 전의 양호한 상태, 이벤트 발생 시각, 파워업을 한 횟수, 결함 발생 횟수 같은 정보들을 기록한다. 따라서 설계자는 문제가 어디에서 발생했는지 찾아내서 신속히 원인을 진단할 수 있다.

블랙박스 기능은 양산 애플리케이션에서 결함 조건을 찾아내고 유지관리와 업그레이드를 하는 데 크게 도움이 될 뿐만 아니라, 개발 단계에서 디버깅 툴로도 사용될 수 있다. 예를 들어 어떤 시스템 설계에 대한 열 체임버 테스트나 기계적 테스트를 진행할 때 실험실의 벤치톱 장비를 사용해서 측정하기란 거의 불가능하지만, 블랙박스 기능을 사용하면 이 단계에서 결함을 포착하고 난 다음, 나중에 검토할 수 있다. 그림 6은 블랙박스 기록 화면을 캡처한 것이다.


그림 6: 블랙박스 기능은 사용자가 지정한 이벤트가 발생했을 때의 상태를 기록한다. 양산 시스템에 블랙박스 기능을 내장하면 디버깅은 물론이고 현장에서 문제 해결과 유지보수에도 크게 도움이 될 수 있다.

맺음말
점점 더 복잡해지는 전원 시퀀싱 요구를 충족하기 위해서는 유연하고 기능이 풍부하며 직관적인 솔루션이 필요하다. ADI Power StudioADM1266 17채널 시퀀서는 바로 그러한 솔루션으로서, 수준 높은 설계 및 디버깅 툴을 사용해서 개발 작업과 디버깅에 드는 시간을 단축할 수 있다. 이로써 설계자는 제품 자체의 혁신에 좀더 집중할 수 있다.

저자 소개
나브딥 싱 드한잘(Navdeep Singh Dhanjal)은 아나로그디바이스에 14년 간 재직하면서, 디지털 전원 제품과 수퍼 시퀀서(Super Sequencer®) 디바이스 같은 혁신적인 제품들을 개발해 왔다. 직관적인 디지털 전원 GUI와 ADM1266 Super Sequencer의 아키텍처를 설계했으며, 펌웨어, 소프트웨어, 하드웨어 개발을 맡고 있다. 3개의 특허를 보유하고 있으며, 산호세 주립대학에서 전기공학 석사학위를 취득했다. 문의: navdeep.dhanjal@analog.com