News and Views 2007 Autumn

[FEATURE-1] FPGA Design

最前線FPGA設計に必要とされるパフォーマンスと生産性の改善

FPGAアーキテクチャの複雑化が進むにつれ、設計プロセスもより難しくなってきています。設計者が現在取り組まねばならな いFPGA設計では、高速シリアル通信、DSP機能、大規模メモリなど、多数の様々なブロックが単一のデバイスに組み込れていま す。このような機能の拡大は、タイミング収束達成の困難を招き、合成、シミュレーション、配置配線の処理時間 も長くなります。設計の繰り返しには必ず代償が伴い、プロジェクトの遅延と開発コストの増大につながります。

メンター・グラフィックスのPrecision RTL PlusはFPGA設計向けに技術開発されており、以下を特長としています。

  • 設計パフォーマンスの改善
  • FPGAアーキテクチャに含まれる特殊用途リソースを効率的に管理
  • 合成と配置配線の実行時間を短縮
  • 設計内の変更されていない部分のパフォーマンス維持
  • タイミング収束達成のための環境と設計デバッグ機能

設計パフォーマンスの改善

従来の物理合成技術では、優れた結果品質(QoR)達成のためには配置配線の長い繰り返し工程が必要 でした。最近の配線を中心としたアプローチでは処理時間とデバイス・サポートの制限が問題となっており、 一方配置後の処理を中心とした物理合成アプローチでは限られたQoR改善しか達成できません。これらの問題に 対応するには、統計的タイミング解析の概念に基づき、ユニークかつ革新的で、配置配線前の 物理設計を考慮した合成が必要です。このアプローチでは、昨今の物理合成に匹敵するQoRを達成すると 同時に、幅広いベンダおよびデバイスに対応することができます。FPGAも刻々と、より微細なジオメトリに移行 する中、配線遅延はタイミングに対してこれまでになく深刻な影響を与えています。RTL合成と それに続く配置配線では短期間でのタイミング収束を保証できなくなっています。合成エンジン は論理の配置と配線を認識しないため、限られた情報の範囲内でしか最適化が行えません。そのため、 配置配線に長い処理時間をかけることでユーザーのタイミング制約の達成を試みなければならないという結果に なりました。今日のほとんどの設計では、1回のパスでタイミング収束を達成することは困難です。その結果、 ユーザーはこの工程を複数回繰り返して制約の微調整や論理のコーディング変更を行い、また合成や配置配線の オプションを活用し、様々な組み合わせを試みることで目標を達成する必要がありました。このようなアプローチ は小規模設計には適用可能ですが、より大規模で複雑な設計においてはスケジュールに大きな影響を及ぼします。

従来の合成

従来の合成に対するアプローチは、配置配線からのフィードバックをほとんど使用せずに設計をコンパイルし、 合成するものでした。この手法は設計に対して様々な合成最適化を行うもので、セル遅延が配線遅延より大きい従来の FPGAアーキテクチャに対しては有効でした。また、当時は設計も現在に比べはるかにシンプルであったため、 良好な結果を得るには従来型のワイヤロード・モデルで十分だったのです。しかし設計の複雑性が高まり、 ノードサイズの微細化が進む中で、従来からの合成アプローチはもはや不十分です。タイミングの修正が大きな問題となり、 また結果品質についても同様です。FPGAベンダが提供する物理合成ツールは配置配線ツールから得られた実際のタイミングや 配置データを利用できるという利点があります。これらの合成ツールはこの情報を利用して論理の最適化を行い、これを 配置配線ツールにフィードバックします。これによりQoRは改善しますが、このアプローチではタイミング収束を短時間で 達成することが困難になります。各パスで配置配線処理が必要とされるため、複雑な設計では24~36時間以上もかかる場合が あります。

物理合成

EDAベンダの立場からは、あらゆるFPGAベンダの物理的なデバイス情報を入手し、対応する物理合成(その当時の形態での) を実装することが困難になりつつありました。ベンダ非依存のツールは限られた数のデバイスやベンダしか サポートできなかったのです。これは、各設計に 対して最小(そして必要最低な速度の)FPGAを 最も有利な価格で提供してくれるベンダから利 用したいと考えているエンドユーザーにとって問 題でした。 上記のように利用の限られた純粋な物理合成 アプローチを回避するため様々な代替案が試み られましたが、成果は限定されていました。その 1つである配置を中心としたフローは、簡単な配 置パスを実行して配置を決め、その配置に基づ いて合成を行うというものでしたが、確実な配 線予測を行うことができなかったため、合成段 階で優れた結果を生成しても、配線段階でそれ をすべて捨てるようなことになりがちでした。ま た、配線を中心としたフローは純粋な物理合成 のように完全な配置配線パスを実行するもので したが、前述したように配線サイクルのコストが かかること、デバイス・サポートが限定されてい ることという2つの主な問題が障害となりました。 設計者がかなり面倒な計画を行わなければなら ないためフロアプランニングは効率的ではなく、 しかも実装工程では元のプランが大幅に変更 される結果になることがしばしばありました。

世界各地の生産性を向上

「スロバキア共和国やルーマニアでSystem-Verilogの全面展開を開始していますが、採用に抵抗するエンジニアはいません。AVMによってコードの書き方やテストベンチの検証環境構築方法に関する標準化手順が示されていて、コードや関数を再利用できるからです。このメソドロジは非常に効果があります。」Notbauer氏はこのように思い起こしています。

「AVMのメソドロジに従いテストをすぐに作成できました。集約した1つのテストでLSIの機能をほとんど検証しました。テスト環境からテストの品質評価データを少し取得しましたが、機能カバレッジで表現できました。このプロジェクトの開発時に、他のプロジェクトのモニタや、ドライバ、コードを再利用できました。これはたいへん大きな効果です。」Daniska氏はこのように述べています。

「言うまでもないですが、新たなメソドロジに移行する場合、サポートは特に重要です。メンター・グラフィックスのコンサルティングや検証エンジニアリングの支援は、とても強力でした。当社の依頼や要求に対して、どちらもたいへん率直でした。ヨーロッパ全体、そして各地で System-VerilogとAVMを成功に導く鍵はサポートだと思います。また、最近発表されたOVM(Open Verification Methodology)で、System-Verilogの高度な検証手法はベンダ依存がほとんどなくなり、よい方向へ進むと思います。」 Notbauer氏はこのように見ています。

Physically-Aware合成

Physically-Aware合成を成功させるには、 合成エンジンが設計の物理的側面(パッキン グ・ルール、配置、配線など)を理解していることだけでなく、タイミング収束のための工数削減 が不可欠です。メンター・グラフィックスの Precision RTL Plusで採用されている Physically-Aware合成技術は、チップ全体の物 理レイアウトに対して、統計的タイミング解析の コンセプトを適用することにより、簡単な遅延予 測のパスを実行します。この解析段階で、配置 やパッキング・ルールを含めた物理レイアウトの ハイレベル・ビューは常に維持されます。この高 度な遅延予測に基づいて、クリティカル・パスに 対するリタイミングや複製、再合成等の物理合 成テクニックが適用されます。この工程により配 置配線に適したネットリストが生成され、合成と 配置配線間の繰り返しが最小限に抑えられます。 また、ここで採用されている再合成の技術も面 積使用率の増大を抑えるのに役立っています。 そしてこれらの様々な利点を、シンプルで使いや すいプッシュボタン方式の合成実行により実現 することができます。エンドユーザーはごく標準 的な(必須な)タイミング制約を指定するだけで、 この物理設計を考慮した合成で最高の結果を 得ることができます。(図1)

Precision RTL PlusではFPGAの物理レイ アウトに関する深い知識を必要とせず、主要な FPGAベンダのデバイスすべてにおいて、面積 使用率に与える影響を最小限に抑えながら優れ たQoRとタイミング収束の短縮が可能です。設 計の繰り返しも大幅に削減でき、大きな設計期 間短縮につながります。

インクリメンタル設計フロー

FPGA設計プロセスには元々繰り返しが伴い がちな面があり、設計規模の拡大と複雑性の高 まりはこの状況をますます深刻にしています。設 計者は設計プロセスの様々な段階で、機能上、 パフォーマンス上の問題に直面します。1つの部 分で機能上の不具合やタイミング違反を修正す ることにより、設計の別の部分で問題が生じて しまうこともあります。このような修正により何 度も設計の繰り返しが発生し、設計プロセスの 収束をコントロールすることは困難です。

この問題を解決すべく、FPGA設計ツールを 提供する多くの企業がパーティション(ブロック) ベースのインクリメンタルな設計フローを提供 しています。パーティショニングにより設計変更 の影響を受けない論理ブロックのパフォーマン スを維持できるだろうと期待されてのことでした。

このアプローチでは、設計者は設計プロセ スの早い段階でパーティショニングを行い、各 ブロックにパーティショニング制約を設定する ことが必要とされます。これらの制約はその後 の設計プロセスを通して適用され、設計ブロッ クを分離しておくのに使用されます。このプロ セスに従うことで、処理時間の改善やブロック 毎のパフォーマンスの維持が可能になります。

デバッグや部分的な再構成のためのアプリ ケーションには、このようなパーティション・ベー スのインクリメンタル・フローが必要であり、効 果的でもありますが、この手法に伴う限界のた めに、多くの設計者がパーティション・ベースの インクリメンタル設計フローを採用するまでには 至っていません。その結果、処理時間の改善や パフォーマンスの維持などの効果は現実のもの となっていません。

パーティション・ベースのインクリメンタル合成の限界

パーティション・ベースのインクリメンタル設 計の問題の1つは、ユーザーが事前にパーティ ションの数と大きさを決め、適切なパーティショ ン制約を設定しなければならない、という点でし ょう。合成と配置配線はデフォルトではブロック境界を越えた設計最適化を行うため、パーティ ショニングが必要となります。パーティションを 適切に管理することなく境界を越えた最適化を 実行すると、ブロックがインクリメンタルに更新 された場合に期待通りに設計結果を維持するこ とができない恐れがあります。

パーティション・ベースのインクリメンタル設計 を効率的に実施するには、設計エラーがブロッ クレベルの局所的なものである必要があります (ブロック境界を越えたエラーは複数ブロックの 変更を必要とします)。しかしながら、通常の設 計デバッグ・サイクルでは、FPGAデバイスを中 間的なバージョンでプログラミングして設計に 内在する問題を洗い出し、小さな変更を行って から新しい設計でデバイスを再度プログラミン グする、という作業が行われます。タイミングや 機能に関する問題が、設計のどこに現れるかは 事前に予測できません。問題がどこで発生する かわからない、という問題が最適なパーティショ ン作成の妨げとなります。

2番目の問題は、パーティション後の設計で 境界を越えた最適化が行われないことによるパ フォーマンス(タイミングと面積)の限界です。タ イミングを収束させ、1つのデバイスに設計を 収めることは難しい作業である場合が多く、パ フォーマンスが得られないことでこの問題はま すます悪化します。