FPGAを対象とした設計支援ツールセット

非同期式回路とは?

今日の集積回路はほとんどが同期式回路という、クロック信号の遷移に同期して動作するように設計されている回路です。しかしながら、半導体微細化技術の進歩により、クロック信号で回路全体を制御することが困難になりつつあります。高周波数のクロック信号を広範囲に分配することは、配線遅延の増大による同期の失敗、消費電力や電磁放射の増大など、様々な問題を引き起こします。

一方、非同期式回路とはその名の通り、クロック信号による同期をせずに、ローカルなハンドシェーク信号を用いて制御モジュールが通信を行い、回路を制御します。

まず、制御モジュールA から「データを送信してもいいですか?」という要求信号を制御モジュールB に送ります。しばらく経つと、「データを受信する準備ができたので、送信してください。」と制御モジュールB から応答信号を返します。この時に制御モジュールA はレジスタA に対し制御信号を送り、レジスタA からデータが出力され、組み合わせ回路で計算を行い、計算結果をレジスタBに格納します。

非同期式回路はクロックを持たないので、クロックにまつわる問題が起こりません。また、制御モジュール同士が相互に通信しあい、必要な時に必要な部分のみが動作するため、低消費電力低電磁放射であるという特徴があります。

本研究で対象となる非同期式回路は束データ方式というデータエンコーディング方式を使用しており、N ビットのデータ信号に要求・応答の2つを含めたN+2本の信号線でデータを表す方式です。以下の図は対象となる非同期式回路モデルとなります。

左側が制御モジュールCTRLiから構成される制御回路、右側がレジスタ(REG)、マルチプレクサ(MUX)、演算器(FU)、グルーロジック(G)から構成されるデータパス回路です。各制御モジュールCTRLiはQモジュールQiと遅延素子SDiから構成されます。SDiはデータパス回路における演算の終了を保証するために用いられます。

研究の背景

非同期式回路には上で述べたような利点がありますが、同期式回路に比べ設計が難しいという欠点があります。設計を難化させる要因としては以下のようなことが挙げられます。

1. ハザードのない回路が要求される

ハザード(Hazard)とは信号の伝播遅延の差によって、出力信号が予期せぬ変化をする現象です。同期式回路においては、次のクロックサイクルまでにハザードが収まり、安定した値が得られれば問題とはなりませんが、非同期式回路においてこのようなハザードが発生すると、制御回路からデータパスにハザードが伝播して、誤動作を引き起こす可能性があります。

2. 遅延モデルやデータエンコーディング方式によって設計手法やタイミング制約が異なる

同期式回路はクロックサイクルをベースに設計を行いますが、非同期式回路はクロックを持たないため、回路内部の遅延モデルや入出力の遷移タイミングを考慮して設計を行う必要があります。

3.タイミング検証、遅延調整を人手で行う必要がある

非同期式回路はクロックを持たないため、制御回路の遅延素子セルの数を調整してタイミングを取る必要があります。また、タイミング検証のために制御回路のパスに対して静的タイミング解析(Static Timing Analysis, STA)を行いますが、商用ツールでは非同期式回路のタイミング検証はサポートされておらず、設計者が人手で行う必要があります。

また、組込みシステムにおけるFPGA (Field Programmable Gate Array)の需要の高まりも研究の背景の一つとして挙げられます。ASIC のように一旦チップ上に回路を乗せると、その回路構成を変更できないデバイスとは違い、FPGA は何度でも回路構成を変更することができます。また、FPGAはレイアウトやマスクも不要であり、無償の開発環境も多く用意されているので、回路構成がある程度決まると、すぐに実機検証が行えるという利点もあります。このように、FPGAが持つ柔軟性設計コストの低さが、組込みシステム設計におけるFPGA 需要の高まりに貢献しているといえます。

研究の目的

本研究の目的は非同期式回路のFPGA設計支援ツールセットの構築です。

この設計支援ツールセットは、商用の設計支援ツールではサポートされていない以下のプロセスを自動化します。

  • 設計制約の生成
  • タイミング制約のチェック
  • 遅延調整

設計フロー

本研究で想定する設計フローは提案するツールセットと商用ツールの連携により実現します。

 「パス情報ファイル」はパス解析のための情報などを含んだXML 形式ファイル、「リソース情報ファイル」は遅延素子生成などに用いられるリソースの情報などを含んだXML 形式ファイルです。「非同期式回路(RTL レベル)」はVerilog HDL 記述の束データ方式による非同期式回路です。これらのファイルは設計者が事前に用意する必要があります。

「パス情報ファイル」「リソース情報ファイル」から「設計制約」を生成します。この「設計制約」と「非同期式回路(RTLレベル)」をAltera 社のQuartus II を用いて合成します。配置配線まで行った後、「タイミング検証」を行い、タイミング制約を満たしているかを自動で検証します。満たしていれば設計は完了となり、性能評価や性能最適化などに移ります。満たしていなければタイミング制約を満足するための「遅延調整」を行い、再合成を行います。これを全てのタイミング制約を満足するまで繰り返します。

入力

提案する設計フローでは4つの入力を与えます。

1.Verilog HDL 記述の束データ方式による非同期式回路

Verilog HDL でモデリングした束データ方式による非同期式回路です。各回路部品は部品ごとにモジュール化します。遅延素子SDi の中には遅延素子用セルとして用いるLCELL を最低1つは入れておきます。(さもなければ、論理合成の際に遅延素子SDi が最適化されて消失する恐れがあります。)

2.XML 形式のパス情報ファイル

タイミング検証が必要な全てのパスを表したファイルです。以下がパス情報ファイルの例です。

 startend でタイミング解析するパスの開始点と終了点の名前を指定します。場合によってはthrough で通過点も指定します。source はソースレジスタを制御するQ モジュールを、destination はデスティネーションレジスタを制御するQ モジュールを指定します。Tio は外部への出力、外部からの入力にかかる時間、sm はデータパスに対するマージンを表します。

3.XML 形式のリソース情報ファイル

遅延素子用セルを表したリソース情報ファイルです。以下がリソース情報ファイルの例です。

 gate-name は遅延素子用セルの名前で、提案手法ではAltera 社のプリミティブLCELL を用います。delay は遅延素子セル1個増やす時の遅延です。pin-name は遅延素子SDi の入出力ピンの名前です。

4.レイテンシ制約及びレイテンシ制約に関するパラメータ(DR,CR)

レイテンシ(Latency)はここでは「start 信号から最後の制御モジュールによって制御されるレジスタまでの制御遅延の最大値」と定義しています。つまり、制御回路が一周するのにかかる時間です。このレイテンシ制約は同期式回路のクロック周期に非同期式回路の状態数を掛けることにより算出されます。(例えば、同期式回路のクロック周期が10ns、非同期式回路の状態数が4ならば、10*4 = 40 (ns) がレイテンシ制約となります)また、レイテンシにまつわるパラメータDR(データパス割合)とCR(制御割合)を入力として与えます。

出力

設計フローに沿ってツールセットを適用させると以下の出力が得られます。

1.合成に必要な設計制約

非同期式回路の合成に必要な制約です。例えば、Design Partition 制約は回路構成の維持に必要な制約で、このような制約をパス情報ファイルをもとに自動で生成します。

2.パス解析用のSTAコマンド

パス情報ファイルをもとに、静的タイミング解析(STA)コマンドを生成します。これらのコマンドはTcl 形式で出力され、STAを行った結果得られたSTA結果はXML 形式で保存されます。このSTA 結果から、タイミング検証を行い、タイミング制約を満たしているかなどの判定を行います。

3.遅延調整後の遅延素子

 タイミング検証結果をもとに、遅延素子セルの数を調整します。遅延調整後の遅延素子はVerilog HDL 形式で出力されます。

今後の予定

今後は規模の大きな回路での評価フロアプランニングの導入パイプライン回路を扱うためのツールセットの拡張などを行う予定です。