以下に示したセットアップ解析やホールド解析結果のレポートの確認をしない人はいないと思いますが、これら以外にも必ず確認が必要なレポートがいくつかあります。
まず、「Report All Summaries」コマンドを実行したときにできる「Minimum Pulse Width」レポートを確認してください。このレポートでは、クロックのHighとLowの幅が十分かどうかを確認します。クロックの幅が十分でないと、フリップ・フロップやRAMは、クロック・パルスとして正しく認識できないため、このチェックが必要になります。図15に「Minimum Pulse Width」レポートの例を示します。
上に挙げたレポートは、回路が要求を満たしているかどうかの確認のためのものでした。これ以外に制約の妥当性を確認するためのレポートがあります。連載第1回で説明したとおり、制約の間違いは、設計の間違いと同じくらい気を付ける必要があります。以下に示すレポートを使って、制約が漏れなく、正しく設計要求を反映していることを確認します。
定義したクロックの名前、種類、周波数などが表示されます(図16)。特に分周やPLL出力など、派生クロックが思いどおりに定義されていることを確認してください。
クロックの組み合わせごとに、データ・パス数を表示します(図17)。セットアップ、ホールド、リカバリー、リムーバルの4種類のレポートがあります。クロック間の関係を非同期または、排他として定義している場合はフォルス・パスとして表示されます。
制約されていないパスを表示するレポートです(図18)。すべてのパスは漏れなく、制約されている必要があるため、このレポートにエラーがないことを確認する必要があります。レポートされたパスが考慮不要な場合には、フォルス・パスの指定をしてください。
“SDCコマンドに指定するノード名が間違っている”などの理由で、TimeQuestが無視した制約を表示します。
回路と制約の潜在的な問題点をレポートします(図19)。回路の問題点は、例えば、論理ループやラッチ、クロックのつながっていないフリップ・フロップが含まれる、などの内容です。制約の問題点は、例えば、入出力遅延を設定していないポートがある、定義したが使われていない仮想クロックがある、などの内容です。
タイミング解析には、異なる動作条件を考える必要がありました。復習になりますが(連載第1回を参照)、プロセスのばらつき、電圧と温度変動を考慮して、どの場合であってもタイミング制約を満足することを確認するためには、少なくとも「Slow corner」と「Fast corner」の2つの条件での解析が必要でした。
TimeQuestは、Stratix IIIやCyclone IIIなど、65nmプロセス以降のデバイスに対しては、3つの条件で解析を行います。例えば、商用のスピード・グレードのStratix IIIでは、以下の3つが動作条件となります(表2)。
No. | プロセス | 電圧 | 温度 | − |
---|---|---|---|---|
1 | Slow | 1100mV | 85℃ | Slow corner |
2 | Slow | 1100mV | 0℃ | |
3 | Fast | 1100mV | 0℃ | Fast corner |
表2 Stratix IIIの動作条件 |
ここまで説明してきた方法では、すべて初期設定の「Slow corner」で解析が行われます。別の動作条件で解析をするためには、「set_operating_conditions」コマンドを使います。TimeQuestのGUIから図20のように、メニュー[Netllist]−[Set Operating Conditions]を選択します。
実行後はこれまでの説明と同じように、レポートを作成してタイミングを確認します。図21は同じセットアップ・パスに対して、「Slow corner」と「Fast corner」のレポートを示しています。ゲートや配線の遅延が変化していることが分かると思います。
今回はアルテラ社のタイミング解析ツール「TimeQuest」を使った、タイミングの解析方法を紹介しました。ここまでの内容をもって本連載は終了となります。最後までお付き合いいただきありがとうございました。本連載が皆さんのFPGA開発の手助けになれば幸いです。(連載完)
Copyright © ITmedia, Inc. All Rights Reserved.