OpenAccessにPCell をキャッシングする SpringSoft社
OpenAccessにPCell をキャッシングする
従来のPcellにキャッシング
コンピュータ・プログラムでは、キャッシングは、命令を繰り返し実行する際にリクエストを再び行うことなく迅速に結果を得るために、ディスクで通常使用されている機能から、出力データを保存するために使用されています。これと同じメカニズムを、カスタムICデザインでパラメータ化されたセル(PCell)の表示を高速化するために使用することができます。Electronic Design Automation (EDA)ツールには、性能的な事由からPCellを自動的にキャッシングするもの、追加ライセンスを必要とするもの、まったくキャッシングしないものがあります。性能的な利点に加え、PCellキャッシングは、デザインフローの中でPCellを他のツールでも見ることができるようにすることも可能です。
■PCellはどこに行ったのか?
アナログ、カスタム・デジタル回路の設計で使用されるPCellはソフトウェア・スクリプトで、所定の可変パラメータを基に、カスタムICレイアウト・ツールでフィジカル・レイアウトを定義するために使用されます(図1)。PCellはカスタム・デザインの基本構築要素で、多くの異なるパターンセルの代わりに、1つのプログラム可能なPCellを使用します。PCellは、複雑な関連性を維持し、環境と互換性を維持する優れた機能を自動化することができます。
レイアウト・エディタで表示、編集するためにPCellを含むレイアウトを開く際、ツールは各PCellスクリプトを評価し、対応するレイアウトを生成し、このレイアウトをメモリに保存します。手作業ないしパラメータ属性フォームでパラメータを変更するなど、パラメータを変更した場合は、レイアウト・エディタはPCellを再評価し、レイアウトを適切に変更しなければなりません。レイアウトを保存、終了する際、多くのツールでは、PCellインスタンスやインスタンス特有のパラメータのみをディスクに記述し、ツールはファイルをオープンするごとにPCellを再評価します。
キャッシングは、どのツールでも当初のツールのデータベース言語を読み取れるよう、PCellレイアウトをディスクに記述するために使用されます。キャッシングを行わなければ、他のツールでファイルをオープンした際に、他のツールがPCellスクリプトを実行できなければ、PCellレイアウトは表示されません。
■スタンダード言語を進化させる特許所有のスクリプト言語
歴史的に見て、PCellはCadence®社のSKILL®のような各ツールに特化した特許所有のスクリプト言語で記述されていました。つまり、特許所有のスクリプトを評価するソフトウェアが存在しないため、現在既存のPCellの多くは他のベンダーのツールで見ることはできません。
今日この傾向は、全てのベンダーでインターオペラブルPCellを実行できるように標準化を行っているInteroperable PDK Library (IPL) Allianceの活動を通して、変わりつつあります(www.IPLnow.comご参照)。IPL Allianceスタンダードで使用されているPCellは、インターオペラブルなPythonスクリプト言語を使用して記述されており、このスタンダードPCellの開発企業であるCiranova社はPyCells™と呼んでいます。
ここで初めて、あらゆるEDAツールでオープンかつ修正可能なPCellを生成することができるようになりました。
■インターオペラブル・データベースがPCellのキャッシングを可能にする
EDAツールは全て、組み込まれた半導体設計データを保存、読込みする一般的な機能を実行するデータベース上に構築されています。今日まで、EDAツールは特許取得済みのデータベース上に構築されていました。EDAツールがツール固有のデータベースを使用する場合、他のツールでレイアウトを見るにはGDSIIのような共通半導体設計フォーマットに変換するしか手段はありませんでした。変換工程でオリジナルのツールがPCellを評価し、フィジカル・レイアウトをジオメトリックなGDSIIフォーマットに記述し、PCellに関連する多くのプロパティやパラメータは廃棄されます。
一度GDSIIに変換されると、多くの場合オリジナルのツールはこのレイアウト・データをPCellと認識できないため(GDSII変換はPCellに対して一方向の処理となるため)、レイアウトは他のレイアウト・セルと同等のものになります。PCellを確認、修正するためにツール固有のデータベースを基にしたツールを使用しているユーザは、設計を維持するためにベンダーに年間ライセンス料を払い続けなければなりません。これは、ユーザが従来払うことがなかった「ツール税」のようなものです。
ここ数年、Silicon Integration Initiative(Si2)のデータベース・スタンダードであるOpenAccess (OA)が半導体のカスタムIC設計向けのツールで使用されるようになってきました。このデータベースを使用することにより、どのツールでも同じデータベースで読込み/編集を行うことができ、場合によってはリアルタイムで同じメモリ・モデルを使用して作業を行うことが可能です。
OpenAccessデータベースにキャッシングされたPCellは、OA準拠のツールであれば確認することができます。事実上、あらゆる主要レイアウト・エディタやEDA業界のほとんどのカスタム・デザイン・ツールは、少なくともOAデータベースで読み込み、編集を行うことが可能、もしくは直ぐに可能になるだろう。しかし、他のベンダーの特許所有のキャッシングされたPCell修正したい場合はどうしたらいいでしょう?この問題も直ぐに対応可能です。
また、OAデータベースは、すべてのOAベース・ツールでPyCell APIを使用し作成された PyCellの基になっており、他のツールで確認する上でもキャッシングを行う必要はありません。PyCellは、Interoperable Component Description Format (iCDF)やIPL準拠ツールのIPLスタンダードのTclコールバックを使用する場合でも、完全に互換しています。
コンパイルされたPCellコードは、すぐにカスタムICデザインツールで使用することができ、PCell "supermaster"と呼ばれています。supermasterにはパラメータ値はなく、評価の際にComponent Description Format (CDF)、もしくはツール依存のインターオペラブルCDF(iCDF)ファイルで提供されます。
PCellをレイアウトに手作業で配置、もしくは「インスタンス化」する場合、CDFファイルから初期設定のパラメータを読み込み、ツールがメモリ内にインスタンス固有のセル・レイアウトを生成します。このインスタンス固有のセル・レイアウトをPCell "submaster"と言います。初期設定のパラメータ値を維持する、もしくは初期設定のパラメータを何らかの方法で修正することで、このパラメータをインスタンス固有のsubmasterプロパティとして保存します。PCellを評価する際、レイアウト・エディタはインスタンス固有のパラメータを使用してサブマスターを評価し、メモリにレイアウトを書き込み、レイアウトを確認/編集するために表示します。次にレイアウトをオープンすると、再び同等のレイアウトを生成するため、PCellは再評価されます。ご存知のとおり、レイアウトには何千ものインスタンスが存在するため、この作業には若干時間がかかります。
しかし、submasterをディスクに保存(キャッシング)すれば、都度再評価を行う必要はなく、レイアウトにかかる"描画"時間を劇的に加速させることができます。さらに、submasterを生成するたびに、ツールはPCellを評価する前に、まずキャッシュに同等のsubmasterが存在しないかを確認し、新しいレイアウトを生成します。同等のパラメータを持った同じPCellが何千回も使用されるなら(例:コンタクト・コール)、キャッシングする必要があるレイアウトは1種類だけになり、時間とディスク・スペースを節約することができます。
インターオペラブルなPCellがオプションでない場合、もしくは実際的な従来のPCellの既存ライブラリがある場合、キャッシングは複数のツールを使用する設計環境や新しいツールへ移行する際に非常に役立ちます。この分野には、次に挙げる2つの主要ツールがあります。
Express PCells: 今日のPCellの多くは、Cadence社特許のSKILLスクリプト言語で記述されています。もし新しいCadence社のOAバージョンで使用するように記述されていたとしても、SKILL PCellは自動的にキャッシングされることはないので、他のツールで見ることはできません。他のツールで"見る"ためには、Cadence社のExpress PCellsを使用してOAデータベースにセルをキャッシングする必要があります。これにより、読み込みに限りますが、Cadence社以外のDRCツールのような他社ツールでセルを見ることが可能になります。
ツールによっては、インスタンス固有のパラメータを含む属性フォームを見ることが可能ですが、始めに単純なレイアウト・インスタンスにPCellを平坦化しなければ、他のツールでPCellを修正することはできません。さらに、ストレッチ・ハンドル、自動アバットメント、コールバックを"外部"ツールで使用することはできません。(PCell機能の詳細に関しては、SpringSoft社ウェブサイトのテクノロジ・セクション、IC設計関連ホワイトペーパーに掲載されている論文「シリコン実証済みインターオペラブルPDK」をご参照下さい)。
例えばCadence社以外のDRCツールを使用しているユーザの場合、OAから直接DRCを駆動させるには、Express PCellsが必要になります。複数のツールを使用するデザインフローでは、様々なブロックをレイアウトするために複数のレイアウト・エディタを使用しているおり、この様々なブロックを1つのレイアウト・データベースに組み込む上でExpress PCellsは有効なソリューションと言えます。 Cadence社ベースのブロックをさらに修正するには、もちろんブロック全体を置き換えるか、少なくとも修正されたPCellインスタンスを置き換える必要があります。この方法は、実際のところ、異なるデザイン・センタや、IPサプライヤのような異なる企業で設計されたブロックを使用する一般的なSoCフローと変わりありません。
PCell Xtreme: Ciranova社のPCell Xtreme™ も、Express PCellsと同様にCadence社の環境で動作し、SKILL PCellをキャッシングし、設計をオープンする時間を短縮します。しかし、Express PCellsとは異なり、PCell Xtremeサーバの場合は、他のツールでもキャッシングされたPCellを見るだけでなく、読み込み、修正を行うことができます。PCell XtremeはPCellコードの変換、評価を行いません。別のツールから要求されたパラメータを持つPCellがキャッシングされていなかった場合、PCell XtremeはCadence社と同じ工程をとり、SKILL PCell evaluatorが修正済みのレイアウトを生成し、キャッシングします。新たにキャッシングされたレイアウトは、他のツールで使用することができ、リアルタイムで再描画することが可能です。このような別ツールで属性フォームを使用して実行されたパラメータの変更は、変更したツール、PCell Xtremeのどちらでも使用することができます。この手法は、SKILL PCellの評価を行うため、Cadence社ツールのライセンスが少なくとも1本必要になります。
しかし、PCell XtremeはSKILLのコールバックには対応していません。PCellパラメータは境界を超えた関連値を計算するためにパラメータ属性フォームで使用されるため、コールバックはPCellパラメータの重要要素になります。したがって、単純なパラメータのパッシングでは十分でありません。Cadence社ツール以外でコールバック機能を使用するには、IPL Alliance Reference flow 1.0のようなインターオペラブルなコールバックを複製しなければなりません。デュアル・コールバックはCadence社環境で動作させる上で、IPLライブラリを初めとするインターオペラブルPCellの必須条件になっており、Tclコールバックがほとんどのインターオペラブル環境に組み込まれています。双方のコールバックを適切に確保することで、完全なパラメータの互換性を維持することができます。
ストレッチ・ハンドルや自動アバットメントはレイアウトとともにキャッシングされるOA特許であるため、ユーザはSKILL機能と一致するTclや他のインターオペラブル・スクリプト言語で、同等のストレッチ・ハンドルや自動アバットメント処理を記述することができます。ストレッチ・ハンドルを移動させると、レイアウト・エディタは関連パラメータを更新し、関連するコールバックを実行します。パラメータを変更すると、PCell Xtremeは上述の手作業によるパラメータ変更と同様に、修正されたレイアウトを生成、キャッシングします。自動アバットメントも同様に可能です。
PCellキャッシングは、従来のレイアウト・データをOpenAccessベースのツールで使用する上で有効な手段で、ユーザはパラメータ化されたセルをGDSII変換するよりも、さらに多くのインターオペラビリティを得ることができます。
多くのインターオペラブル・ソリューションが、IPL Allianceが提供するPyCell、コールバック、CDF、ストレッチ・ハンドル/自動アバットメント技術を使用しているものの、PCellキャッシングは新しいOAベース・ツール、複数のベンダ・ツールからなる設計環境の使用、もしくは単に既存ツールの高速化を図る上で有効な手段になっています。
SpringSoft、SpringSoft社ロゴ、Lakerは、SpringSoft社の商標および登録商標です。
Cadence、SKILLは、Cadence Design Systems社の登録商標です。
PyCell、PCell Xtremeは、Ciranova社お商標および登録商標です。
その他すべての製品名および企業名は、それぞれの企業の商標および登録商標です。