画期的かつスケーラブルなパワー・シーケンス・システム、多くの電源レールを対象とする設計/デバッグを大幅に簡素化

はじめに

周知のとおり、あらゆる分野の電子システムは、ますます複雑になっています。しかし、その複雑さが電源の設計にまで及んでいることは、それほど認識されていません。例えば、機能的な複雑さに対応するために、ASIC、FPGA、マイクロプロセッサを使用して、アプリケーションの豊富な機能セットをより小さなフォーム・ファクタに詰め込むというのはよく行われていることです。それらのデジタル・デバイスは、電源システムにとっての新たな負荷になります。電圧値の異なる電源レールがいくつも必要になり、各レールの許容範囲もそれぞれ全く異なります。また、正しいシーケンスで電源を投入/遮断することも、非常に重要な要件となります。基板上に複数の電源レールが配置されると、電源の投入/遮断シーケンスの設計とデバッグの複雑さは、指数関数的に増大します。

スケーラビリティ

アプリケーションで使用する基板に必要な電源レールの数は、基板の複雑さに依存します。電源レールは10本しか必要ないこともあれば、200本も必要になるケースもあります。通常のシーケンサICは約16本までの電源レールに対応し、その本数までなら簡単に適用できるように設計されています。電源レールの数が1個のシーケンサで対応できる本数を超えると、複雑さは急激に増大します。その結果、設計者は、各シーケンサの予測不能な挙動や、複雑なシステムにシーケンサを組み込む方法について学ばなければならなくなります。

多数の電源レールを使用するシステムでは、複数のシーケンサをカスケード接続することで対応を図ることはよくあります。ただ、そのために必要になる作業は、それほど単純なものではありません。電源レールの本数が線形的に増加すると、カスケード接続のシステムの複雑さは、指数関数的に増大します。そうした複雑さを抑えるために、シーケンサをカスケード接続するための方法には、独創的な工夫が盛り込まれています。例えば、ピンポン機構を利用したり、専用のデジタル信号によってフォルトとパワー・グッドの状態を共有したり、といった具合です。そうしたソリューションは、比較的単純明快なシーケンスに対しては、十分な効果をもたらします。しかし、電源の投入/停止のシーケンスが単純ではないシステムでは、それらのソリューションではすぐに歯が立たなくなります。

ADM1266」は、アナログ・デバイセズのSuper Sequencer®ファミリに新たに加わった製品です。この製品を採用すれば、真のスケーラビリティによって、複雑さの問題を解決することができます。複数のADM1266を接続する場合、専用の2線式デバイス間バス(IDB:Interdevice Bus)を使用して通信を行います。1個のADM1266で、17本の電源レールの監視とシーケンス制御が可能です。同ICは、最大で16個並列に接続できます。すべてを同一のIDBに接続すれば、257本の電源レールの監視/シーケンス制御を実現可能です。 

ADM1266は、シングル・マスタ方式を採用しています。マスタ以外のADM1266は、すべてスレーブとして動作します。その並列アーキテクチャにより、IDBに接続されたすべてのADM1266は、システムの条件に基づいて同一の状態に遷移します。それによって、バス上のすべてのADM1266の同期が確保されます。バスによる通信はトランスペアレントなものであり、ADM1266が1個の場合でも16個の場合でも、シーケンスを作成する作業は同じです。このシステムがもたらす顕著なメリットは、1個のデバイスの使用方法を習得するだけで、単純な設計と複雑な設計の両方に対応できることです。言い換えれば、それぞれのケースに応じて異なるデバイスの使用方法を習得する必要はありません。図1に示すように、同じIDBに接続するだけで、複数のADM1266を簡単にカスケード接続することができます。

図1. 複数のADM1266を使用したシーケンス制御回路。すべてのADM1266をIDBに接続することで、簡単にスケール・アップできます。

図1. 複数のADM1266を使用したシーケンス制御回路。すべてのADM1266をIDBに接続することで、簡単にスケール・アップできます。

イベント・ベースのシーケンス制御

最新のシーケンサは、電源レールを監視するだけでなく、デジタル信号にも対応する必要があります。従来の時間ベースのシーケンサには、特定の結果に対応づけられた固定の信号だけが用意されており、機能も限定されていました。

ここで、オプションのドーター・ボードを接続したマザーボードの例を考えてみます。ドーター・カードの検出信号は、シーケンサで監視されます。信号が存在する場合、シーケンサはドーター・カード上の電源レールを起動します。信号が存在しない場合には、マザーボードのシーケンス処理をパワー・グッドの状態になるまで続行します。このドーター・カードの検出信号のような仕組みは、従来型のほとんどのシーケンサでは利用できません。また、この種の要件はアプリケーションごとに異なり、GPIO(General Purpose Inputs Outputs)によって処理する必要があります。

別の例として、ASICとFPGAに対する給電について考えます。ASICを完全に起動させてからFPGAに給電しなければならないシステムがあるとします。この場合、シーケンサはASICの電源を投入し、ASICからのパワー・グッド信号(デジタル信号)を待ちます。ASICのパワー・グッド信号がアサートされると、シーケンサは100ミリ秒待機してからFPGAに対する給電を開始します。イベント・ベースのシーケンサは、このような複雑なシーケンスを生成する必要があります。また、システムに複数のシーケンサが存在する場合、それらすべてが同期した状態で動作できるようにしなければなりません。そのためには、1つのシーケンサのイベント情報を基板上の他のシーケンサと共有することが重要になります。

豊富な機能を備えたADM1266のシーケンス・エンジンには、過電圧(OV:Overvoltage)と低電圧(UV:Undervoltage)を検出するコンパレータの出力、GPIOやPDIO(Programmable Driver Inputs Outputs)などのデジタル信号、タイマーからの信号、変数の情報、IDBからのメッセージのすべてが供給され、イベントとしてトリガされます。この仕組みを利用することにより、様々なイベントを監視して適切な動作を実行する複雑なステート・マシンを簡単に作成することができます。

システム設計の加速

従来は、シーケンサを1個だけ使用する場合と複数個を使用する場合とでは、設計を行う際のユーザ・エクスペリエンスが全く異なっていました。1個のシーケンサで16個の電源レールを扱うのであれば、その設計は単純明快であるはずです。ソフトウェアのGUI(Graphical User Interface)を使用して、各電源レールとそのシーケンスを簡単に設定することができます。16本であれば、手作業で選択/設定を繰り返すことは可能でしょう。しかし、5個のシーケンサで80本のレールを制御するとしたらどうでしょうか。GUIで80本のレールを手作業で設定していたのでは、時間がかかるだけでなく、人的ミスも発生しやすくなります。複数のシーケンサをカスケード接続する方法を考えた上で、5個のシーケンサのリソースを80本の電源レールに割り当てる方法も検討しなければなりません。ソフトウェア・ベースの設計支援ツールのほとんどは、このような作業までは支援してくれません。ユーザは、シーケンサの具体的な機能を理解し、GUIを使ってその動作を明示的に指定する必要があります。これは、プロジェクトごとにかなり厳しい学習曲線をたどらなければならないということを意味します。

ADM1266では、異なるアプローチを採用しています。設定とデバッグには、PCベースの開発/デバッグ・ツール「ADI Power Studio」を使用します。これは、堅牢なシーケンスを実現したい設計者を支援する完全なツールです。ADM1266の各種項目を設定するだけにはとどまらない、はるかに高度な機能を備えています。これを使用すれば、従来のGUIを使う場合よりもはるかに高いレベルで電源システムの設計が行えます。例えば、同ツールが備えるウィザードを使用すると、手作業であれば数時間はかかるであろう80本の電源レールの設定を、わずか数分で完了することができます。図2と図3に、ADI Power Studioの操作画面の例を示しました。

図2. ADI Power Studioの操作画面(その1)。このツール上では、電源レールに自由に名前を付けることができます。そのため、大規模なシステムの設計とデバッグが大幅に簡素化されます。(a)に示したのは、デフォルトの名前を使用しているパワー・ツリーです。(b)には、ユーザが定義した名前を使用しているパワー・ツリーを示しています。

図2. ADI Power Studioの操作画面(その1)。このツール上では、電源レールに自由に名前を付けることができます。そのため、大規模なシステムの設計とデバッグが大幅に簡素化されます。(a)に示したのは、デフォルトの名前を使用しているパワー・ツリーです。(b)には、ユーザが定義した名前を使用しているパワー・ツリーを示しています。

図3. ADI Power Studioの操作画面(その2)。このツールを使用することにより、システム全体を1ステップで設定できます。この「System Rails Wizard」を使えば、レールの本数にかかわらず、同じインターフェースを使用してシーケンス全体の設定作業を進めることが可能です。各電源レールには、ユーザが定義した名前が付けられているので、ひと目で簡単に識別できます。

図3. ADI Power Studioの操作画面(その2)。このツールを使用することにより、システム全体を1ステップで設定できます。この「System Rails Wizard」を使えば、レールの本数にかかわらず、同じインターフェースを使用してシーケンス全体の設定作業を進めることが可能です。各電源レールには、ユーザが定義した名前が付けられているので、ひと目で簡単に識別できます。

シーケンスの設定は、一般的には次のような手順で実施します。設計者は、まずシステムの要件を満たす仮想ステート・マシンを作成します。シーケンサが1個(レール数が17本以下)の場合、GUI上の仮想ステート・マシンは、シーケンサのステート・マシンと完全に一致します。シーケンサが複数になると、仮想ステート・マシンと、個々のシーケンサのステート・マシンに違いが出てきます。複数のシーケンサが様々なイベントを互いにやり取りするので、ステート・マシンには追加のステップが必要になるのです。

例として、シーケンサ1で2本の電源レールを監視し、シーケンサ2で別の2本の電源レールを監視するケースを考えます。4本の電源レールのうちいずれかに障害が発生した場合、すべてのレールをシャットダウンする必要があります。そのためには、2個のシーケンサの間でフォルト信号を共有しなければなりません。図4に、システムの仮想ステート・マシンと、個々のシーケンサのステート・マシンを示しました。

図4. 仮想ステート・マシンと各シーケンサのステート・マシン

図4. 仮想ステート・マシンと各シーケンサのステート・マシン

電源レールの数が増え、シーケンスの要件が複雑になるにつれて、システムの仮想ステート・マシンとシーケンサのステート・マシンの違いは大きくなっていきます。どのような状態になればよいのか把握していたとしても、その状態になるように複数のシーケンサを連動させるのは容易ではありません。時間がかかるだけでなく、バグが入り込みやすい作業になるからです。ADI Power Studioは、ステート・マシンを作成する作業の多くを自動化します。GUIを使って仮想ステート・マシンを設計する作業は、ユーザが実施しなければなりません。しかし、複数のシーケンサの間の複雑な通信は、ADI Power Studioのコンパイラが処理します。そのため、設計者は柔軟性が高く直感的に理解できるプロセスによって、複雑なステート・マシンを実現することができます。

強力なデバッグ・ツール

複雑なシステムを開発する場合、開発過程のあらゆる段階でバグが作り込まれる可能性があります。開発のどこかの段階で、ほとんどのバグが検出されて取り除かれればよいのですが、なかにはシステムの稼働時まで発見されずにいるバグも存在します。したがって、システム設計者にとっては、不具合を素早く特定し、それに対処するための修正を加えることのできるツールが不可欠です。一般に、設計者は純粋な設計作業よりも、デバッグ作業にはるかに多くの時間を費やしているからです。不具合の多くは、信号のロジック・レベルが誤っていることで発生します。それだけでなく、電源レールの起動/停止が適切でないことに起因する不具合も数多く発生します。

ここで、80本の電源レールを備える基板に電源を投入するケースを考えます。設計の段階で、どれか1本のレールが正しく設定されていなかったというのは、珍しいことではありません。コンポーネントのレベルや設定のレベルで誤りがあるために不具合が生じるのはよくあることです。いずれにせよ、まずは不具合が発生している電源レールを特定する必要があります。ここで問題になるのは、一般的なシーケンスでは、いずれかの電源レールに異常が発生したら、シーケンサによってすべての電源レールがシャットダウンされることです。この動作は、システムが実際に稼働する際の堅牢性を保証するためには欠かせないものです。しかし、設計の段階では、この動作がデバッグの妨げになります。システム全体が異常終了し、どこに不具合があるのかがわからなくなるのです。設計者は、いわば森が邪魔で木を見ることができない状態になります。80本すべてのレールを同時にベンチトップ型の計測器でモニタリングするのは現実的ではなく、不具合が発生しているレールの特定は非常に困難になります。

不具合のある電圧レールが検出されても他の電圧レールはそのまま起動しておき、それらに対応する部分を稼働させながら、問題のレールの動作を観測することができれば、デバッグ用のシステムとして理想的です。シーケンスの設定を強制的に変更することでも同じことを実現できますが、シーケンスのデバッグを行うために、わざわざシーケンスの設定を不適切な方向に変更するのは面倒だと言わざるを得ません。

ADI Power StudioとADM1266を組み合わせた場合、デバッグ作業を簡素化するためにソフトウェア設計環境で一般的に使われる高度なデバッグ・ツールを使用できます。1つ目のデバッグ・ツールはブレークポイントです。ブレークポイントを使えば、シーケンスの進行を特定の状態で停止させることができます。複数のADM1266を使用するシステムの場合、すべてのADM1266がステート・マシンに従って遷移し、ユーザが設定したブレークポイントの手前で停止します。このようにしてシーケンスを一時停止させることにより、正しく動作していない電源レールを見出したり、信号が正しいロジック・レベルになっていない理由を検証したりすることができます(図5)。

また、すべての状態に対してブレークポイントを設定すれば、1ステップずつシーケンスを実行することも可能です。このステップ実行は、例えばイネーブルになる前の電源レールのプリバイアス起動を確認する場合に適用できます。また、電源シーケンスのステップ実行によって、ディスエーブルであるはずのレールの出力に電圧が生じていないかどうかということを、ADI Power Studioのモニタ・ウィンドウのセクションを使って確認することも可能です。

図5. ブレークポイントの設定。シーケンスを任意の状態で一時停止することで、詳細なデバッグを行うことができます。

図5. ブレークポイントの設定。シーケンスを任意の状態で一時停止することで、詳細なデバッグを行うことができます。

2つ目のデバッグ・ツールは、ブラックボックス記録機能です。ADM1266は、クリティカルなイベントによってトリガされた際、監視したすべての電圧とデジタル・ピンの状態のスナップショットを記録します。ブラックボックスがトリガされると、イベントが発生したときの状態、それ以前の良好な状態、イベントが発生した時間、ADM1266が起動した回数、障害が発生した回数などの情報が記録されます(図6)。これらの情報は、障害が発生した個所を特定し、原因を迅速に診断する上で役に立ちます。

ブラックボックス記録機能は、システムが運用された際、障害の状況を捉える上で重要な役割を担います。システムのメンテナンスとアップグレードに役立つ機能ですが、これを開発時のデバッグ・ツールとして利用することもできます。例えば、サーマル・チャンバを使用したテストや機械的なテストを実施する際など、ベンチトップ型計測器のプローブを使用するのは不可能なケースがあります。そのような場合に、ブラックボックス記録機能を使用すれば、障害の発生を捉えて後で確認することができます。

図6. ブラックボックス記録機能の表示画面。ユーザが定義したイベントが発生した際の各種の状態が記録されています。実際に配備するシステムに、この機能に対するトリガを含めれば、フィールドでのトラブルシューティング、メンテナンス、デバッグが容易になります。

図6. ブラックボックス記録機能の表示画面。ユーザが定義したイベントが発生した際の各種の状態が記録されています。実際に配備するシステムに、この機能に対するトリガを含めれば、フィールドでのトラブルシューティング、メンテナンス、デバッグが容易になります。

まとめ

ますます複雑さを増す電源の投入/遮断シーケンスの要件に対応するには、スケーラブルかつ機能が豊富で、直感的に使用できるソリューションが必要です。ADI Power Studioと17チャンネルに対応するシーケンサであるADM1266を採用すれば、高度な設計/デバッグ・ツールを使用することにより、開発時間とデバッグ時間を短縮することができます。その結果、設計者は、イノベーションの創出と堅牢なソリューションの構築に、より多くの時間を費やすことが可能になります。

著者

Navdeep-Singh-Dhanjal

Navdeep Singh Dhanjal

Navdeep Singh Dhanjalは、アナログ・デバイセズで14年間にわたりデジタル電源やSuper Sequencer®などの画期的な製品に携わってきました。直感的に操作が可能なデジタル電源製品向けのGUIを設計した経験を持ちます。最近では、SuperSequencer製品「ADM1266」の設計者として、ファームウェア、ソフトウェア、ハードウェアの開発を統括しました。サンノゼ州立大学で電気工学の修士号を取得。3件の特許を保有しています。