バックナンバーはこちら

today&tomorrow

Industry Trend

  • T&T HOME
  • Industry Trend
  • マルチレベルの物理階層フロアプランニング―2階層のみのフロアプランニングに対する優位性

2017 Jan Winter vol.105

マルチレベルの物理階層フロアプランニング
―2階層のみのフロアプランニングに対する優位性

シノプシス テクニカル・マーケティング・マネージャー Steve Kister

子階層レベルで作業している設計者が知らず知らずのうちに問題を引き起こして悪化させることもあります。たとえば親階層レベルのロジックで接続された2つのサブチップの作業をそれぞれ別の設計者が担当しており、配線性とタイミングを改善するために各設計者がそれぞれのサブチップ内でブロックを移動したとします。しかしこれらのサブチップをフルチップ・コンテキストに統合してみると、それぞれの設計者が作成したタイミング・パスではクロージャの達成が難しいケースがあります(図3)。

サブチップの変更によって最上位のクロージャが困難になる例

図3:サブチップの変更によって最上位のクロージャが困難になる例

マルチ・インスタンス・ブロック(MIB)をチームで使用する場合は、さらに複雑さが増します。MIBとは、あるデザインで複数回使用する物理ブロックです。設計チームがMIBを作成する際は、レイアウト全体のどこでどのようにMIBを使用するかを考慮する必要があります。たとえば下位階層のサブチップ内でMIBを使用する場合、MIBをインプリメントするために必要な形状、サイズ、ピン配置、タイミングの制約を定義する際に、それぞれ異なる個別環境に対する要件を考慮する必要があります。マルチレベルの物理階層プランニング自体の複雑さに加え、MIBは任意の階層にインスタンシエートできる複雑さがあります。したがって、ここでも設計チームのメンバーは複数のサブチップ内のどこにMIBを使用するかについてプランニングの時間を費やす必要があります。

一度に2階層までしか扱えないと、ここに挙げた問題以外にもさまざまな理由によって時間の無駄が生じ、デザインの結果品質が低下します。次に、シノプシスのIC Compiler IIが現在のデザインの複雑な階層構造をどのように扱うのかを見てみましょう。

マルチレベルの物理階層プランニングをサポートしたIC Compiler II

シノプシスのIC Compiler IIは、物理階層にネイティブに対応した新しいデータ・モデルを採用しています。ほとんどのフィジカル設計ツールはフラット型データベースに基づいて開発されており、物理階層への対応は競合製品への対抗策として後付けされたものに過ぎません。これに対し、シノプシスのIC Compiler IIは物理階層にネイティブに対応しており、マルチレベルの物理階層プランニングとインプリメンテーションにおいて大きな優位性があります。すべてのエンジン(代表的なものだけでもシェーパー、配置、配線、タイミングなど)は、それぞれの機能の実行に必要な物理階層に関係のあるデータにすばやくアクセスできます。

ここではシェーパー(形状決定エンジン)を例に見てみます。図4では、シェーパーは各サブチップの目標面積、子レベルのハード・マクロによって規定されるアスペクト比制約、および子から子、親から子、子から親へのインターフェイスに存在するインターコネクトの情報を必要とします。デザインがマルチボルテージ・デザインの場合、シェーパーはボルテージ・エリアの目標面積に関する情報も必要とします。このため、デザイン内でシェーパーが扱う制約の数が増えます。マルチレベルの物理階層プランニングでは、下位階層のサブチップに対して存在する形状制約は、親サブチップに対する形状制約の形で上位階層に伝搬します。シェーパーは、各サブチップまたはブロック内に存在するネットリストの内容を完全には知る必要がありません。このことに着目し、シノプシスは各エンジンの機能実行に必要なデータのみをエンジンに供給するようにIC Compiler IIのデータベースを開発しました。マルチボルテージ・デザインの場合、IC Compiler IIはUPFを読み出して適切なデータをサブチップ・レベル内に格納します。各エンジンはデータベースからデータを取得してデザインの通常の利用シナリオに基づいてターゲットを計算するか、ターゲットを指定するユーザー定義属性を取得します。

IC Compiler IIのマルチレベル・シェーパーの実行結果

図4:IC Compiler IIのマルチレベル・シェーパーの実行結果

シノプシスが開発した新しいデータ・モデルは分散処理アーキテクチャをサポートしています。IC Compiler IIのエンジンは、ジョブ(またはジョブの一部)を複数のプロセスに分割します。図5に示すように、セル配置ではこの相乗効果が顕著に見られます。

カテゴリートップ