ASIC設計支援のツールセット

ASICとFPGA

ASIC(Application Specific Integration Circuit)は特定用途向けに製造されるICです。回路設計を書き換えるプログラマブルロジックデバイスやFPGAと比べて、面積、動作速度や消費電力の面で優れています。しかし、開発費や開発期間などのコストが高く、製造後は内部の回路構成を書き換えることができません。FPGA(Field Programmable Gate Array)はチップ内部の論理回路を書き換えることができ、ASICと比較すると開発コストは少ないのですが、チップ性能ではASICと比較すると劣ります。

同期式回路と非同期式回路

  • 同期式回路

図1. 同期式回路

同期式回路は、グローバルクロック信号により回路を制御します。テクノロジの発展に伴い、配線遅延の割合が大きくなっています。そのため、クロックスキューの問題が顕著になってきています。クロックスキューの問題を回避するため、クロックツリーなどを使用します。しかし、クロック信号を広い範囲に分配したり、高い周波数のクロックを供給しようとすると、消費電力が大きくなってしまうという問題があります。

  • 非同期式回路

図2. 束データ方式による非同期式回路

非同期式回路は、ローカルなハンドシェイク信号(要求、応答)により回路を制御します。同期式回路で使用しているクロック信号を使用しません。そのため、上記のグローバルクロック信号に伴う問題がありません。そのため、同期式回路より低消費電力な回路と言われています。また、クロック信号のような一定周期の信号を使用しないので、低電磁放射な回路でもあります。

束データ方式による非同期式回路の回路モデル

本研究は、束データ方式による非同期式回路を対象としています。図2は、束データ方式による非同期式回路を表します。Nビットのデータと2ビットのハンドシェイク信号(要求、応答)によりデータ転送を行います。
図3は、本研究で対象としている回路モデルを表します。左側が制御回路、右側がデータパス回路です。制御回路は、いくつかの制御モジュールにより構成されています。制御モジュールは、図4のように、Qモジュール、遅延素子(SDi, BDj,i, ID,i)、グルーロジックから構成されています。SDi の遅延により、演算の完了を保障します。データパス回路は、レジスタ(REGi)、マルチプレクサ(MUXi)、演算器(FUi)、グルーロジック(glue)により構成されています。束データ方式のデータパス回路には、同期式回路のものとほぼ同じものが使用できます。

図3. 束データ方式による非同期式回路の回路モデル

図4. CTRLiの詳細

研究の背景

同期式回路に比べて、設計が難しいということがあります。主な理由は、以下の3つです。

  1. ハザードフリーな回路
  2. ハザードは、予期せぬ信号遷移のことです。これは、非同期式回路の制御回路を伝播し、誤動作の原因になります。

  3. 設計手法と制約
  4. 非同期式回路を設計する際、選択したデータエンコーディング方式やハンドシェイクプロトコルにあわせた遅延モデルにより、演算のタイミングを考える必要があります。それらの選択により、設計方法や設計制約が異なります。

  5. タイミング検証、遅延素子の調整
  6. 束データ方式の場合、制御回路にある遅延素子により、データパス回路の演算の完了を保障する必要があります。そのため、データパス回路の演算の遅延にあわせて、遅延素子を調整する必要があります。遅延解析には、商用のタイミング解析ツールが使用できます。しかし、非同期式回路特有のタイミング検証、遅延調整は、現在のほとんどの商用ツールでは対応していません。

研究の目的
束データ方式による非同期式回路のASIC設計支援ツールセットの構築です。このツールセットでは、商用のツールではサポートしていないところを自動化します。以下のようなツールになります。

  • 最大遅延制約生成
  • フロアプラン
  • タイミング検証
  • 遅延調整

設計フロー
以下の図5は、提案する設計支援ツールを用いた設計フローの一例です。

図5. ASIC設計支援ツールを使用した設計フロー

設計フローの入力ファイル

  • 非同期式回路のRTL記述
  • 束データ方式による非同期式回路を、Verilog HDL で記述したものです。各回路部品をモジュールとして記述します。制御回路は、ゲートレベル記述しておきます。SDiには、遅延素子としてバッファを一つ以上入れておきます。

  • パス情報
  • 解析するパスの情報をXMLで記述します。以下の表1は、その例を表します。

    表1. パス情報ファイルの例

    START THROUGH EDN SOURCE DESTINATION MARGIN
    REG1 FU1 REG2 CTRL1 CTRL2 1.1
    REG2 FU2 REG3 CTRL2 CTRL3 1.1

    START, THROUGH, END にパスの始点、通過点、終点を記述します。SOURCEは、STARTを制御する制御モジュールを、DESTINATIONは、ENDを制御する制御モジュールを記述します。MARGINは、データパスの遅延に対するマージンを記述します。

  • リソース情報
  • 遅延素子として使用するバッファのセル名、遅延、ピン名をXMLで記述します。表2は、その例を表します。

    表2. リソース情報ファイルの例

    CELL NAME DELAY INPUT PIN NAME OUTPUT PIN NAME
    BUF1 500 ps A Y
    BUF2 700 ps A Y
  • デザインの情報(モジュール面積、モジュールの遅延、接続関係、配線容量)
  • フロアプランに必要な情報をXMLで記述します。各モジュールの面積、面積に対するマージン、アスペクト比、遅延、入出力ポートを記述します。また、それぞれのモジュールの接続関係とその付加容量を記述します。各モジュールの面積、面積に対するマージン、アスペクト比は、モジュールの形を決定するために必要になります。接続関係、付加容量は、フロアプランの際、性能最適化を行うために必要になります。

設計フローの出力ファイル

  • 最大遅延制約
  • 各パスに最大遅延値を設定ための制約です。商用ツールは、設定された遅延値よりも遅延値が小さくなるように合成しようとします。性能の向上のために設定します。

  • 配置制約
  • 各モジュールをチップのどこに配置するか、という制約になります。フロアプランの目的は、チップ面積を小さくし、性能を向上させることです。

  • タイミング解析コマンド
  • パス情報を基に、タイミング解析するべきパスに対して、Static Timing Analysis (STA) を行うコマンドをTclで出力します。STAの結果は、テキストとして出力されます。提案ツールは、STAのコマンドとSTA結果のテキストを読み込み、非同期式回路特有の制約に対するタイミング検証を行います。

  • 遅延素子の数を調整するコマンド
  • タイミング検証の結果、遅延素子を追加、あるいは、削除するための Engineering Change Order (ECO) コマンドを生成します。ECOは、配置配線後のレイアウトに対し、必要最低限の変更を行います。このコマンドを商用ツールで実行し、遅延素子の数を調整します。