(57)【要約】装置、システム、および方法が、同期回路設計表現由来の同期ネットリストを生成し、非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換して、非同期コアを形成し、同期ネットリストを非同期回路設計表現へと変換するよう動作する。さらなる装置、システムおよび方法が開示される。
2011512602.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
同期回路設計表現から同期ネットリストを生成するステップと、
非同期コアを形成するために、非同期標準セルコンポーネントから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換するステップと、
前記同期ネットリストを非同期回路設計表現へと変換するステップと、
を含む、
ことを特徴とする方法。
【請求項２】
前記同期ネットリストは、電子設計インターフェイスフォーマットに従ってフォーマットされる、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項３】
前記同期回路設計表現は、ハードウェア記述言語を使用して表現される、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項４】
自動的に置換するステップは、
前記非同期コンポーネントのピン接続を、前記標準セル同期コンポーネントのピン接続に対してマッピングするステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項５】
自動的に置換するステップは、前記標準セル同期コンポーネントのうちの一つを含む状態保持素子を、通信リンクもしくは初期トークン素子の一つと交換するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項６】
自動的に置換するステップは、前記標準セル同期コンポーネントのうちの一つを含むレジスタを、接続素子に関連する初期トークン素子と交換するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項７】
前記同期ネットリストに、前記非同期コアへ入力される信号を受け取るための同期−非同期変換セルを追加するステップ含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項８】
前記同期ネットリストに、前記非同期コアから出て行く信号を送信するための非同期−同期変換セルを追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項９】
前記非同期回路設計表現は、
データフローグラフ、データフローグラフの記述、もしくは高レベル言語の一つを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１０】
デュアルレールデータエンコーディングおよび単一の肯定応答を用いて実施されるデータフローモデルとして、前記非同期回路設計表現を表現するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１１】
前記非同期回路設計表現は、
データ、関数ブロック、ソースブロック、シンクブロック、コピーブロック、マージブロック、もしくは初期ブロックを表すためのトークンのうちの少なくとも１つを含むデータフローグラフを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１２】
前記非同期回路設計表現は、同期入力信号および同期出力信号を含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１３】
前記変換するステップは、
前記非同期回路設計表現の性能特性を同期ドメインへ翻訳して前記非同期回路設計表現のタイミング特性を有効化するためのアノテーションを生成するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１４】
前記非同期回路設計表現から非同期ネットリストを生成するステップであって、前記非同期ネットリストは特定用途集積回路上での実施向けに構成されるステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１５】
前記非同期回路設計表現に基づいて、特定用途集積回路を作製するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１６】
前記非同期回路設計表現の平均スループット性能を増加させるために、前記非同期回路設計表現へと接続素子を追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１７】
前記非同期コンポーネント間のパスタイミングの平衡を保つために、前記非同期回路設計表現へと接続素子を追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１８】
コンピュータと、
前記コンピュータに結合され、前記同期回路設計表現から同期ネットリストを生成するための合成ツールモジュールと、
非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換して、非同期コアを形成するための置換モジュールと、
前記同期ネットリストを非同期回路設計表現に変換するための変換モジュールと、
を含む、
ことを特徴とするシステム。
【請求項１９】
前記コンピュータに結合され、前記同期回路設計表現のアイデンティフィケーションを受信するためのグラフィカルユーザインターフェイスを提供するためのユーザ端末、
を含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記コンピュータに結合され、前記同期回路設計表現を格納するためのストレージデバイス、
を含むことを特徴とする請求項１８に記載のシステム。
【請求項２１】
１つまたは複数のプロセッサで実行されたときに前記１つまたは複数のプロセッサに以下の動作を実施させる命令、を含むマシン読み出し可能な媒体であって、
前記動作は、
同期回路設計表現から同期ネットリストを生成する動作、
非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換して、非同期コアを形成する動作、および
前記同期ネットリストを非同期回路設計表現に変換する動作である、
ことを特徴とするマシン読み出し可能な媒体。
【請求項２２】
前記命令は、前記１つまたは複数のプロセッサで実行されたとき、前記１つまたは複数のプロセッサに、特定用途集積回路を作製するために使用されるべき命令として前記非同期回路設計表現を格納する動作を実施させる、
ことを特徴とする請求項２１に記載のマシン読み出し可能な媒体。
【請求項２３】
前記命令は、前記１つまたは複数プロセッサで実行されたとき、前記１つまたは複数のプロセッサに、前記非同期コアに同期ラッパーを追加する動作を実施させる、
ことを特徴とする請求項２１に記載のマシン読み出し可能な媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの場合、非同期回路設計は、同期設計に対して、性能および電力に関する便益を含む種々の利点を提供する。しかしながら、非同期論理に基づいてデバイスを実現するためには、長い時間、多くの経験、および多くの専用の非同期ツールが必要となる可能性がある。この理由および他の理由のために、既存の特定用途集積回路（ＡＳＩＣ）デバイスは、主として同期回路および技術を使用して設計される。
【図面の簡単な説明】
【０００２】
【図１】本発明の種々の実施形態に従う、同期論理から非同期論理への変換を示すフロー図である。
【図２】本発明の種々の実施形態に従う、非同期組み合わせ論理回路および非同期順序論理回路を示すブロック図である。
【図３】本発明の種々の実施形態に従う、非同期論理回路周囲の同期ラッパーのブロック図である。
【図４】本発明の種々の実施形態に従う、同期論理から非同期論理へ変換する方法を示すフロー図である。
【図５】本発明の種々の実施形態に従う、同期論理から非同期論理への変換に関連して使用される装置およびシステムのブロック図である。
【発明を実施するための最良の形態】
【０００３】
上述された課題のうちの幾つかならびに他の課題は、非同期標準セルコンポーネントの自動置換およびライブラリを使用して、ハードウェア記述言語（ＨＤＬ）もしくは任意の高レベル動作論理記述によって記述された同期論理を自動的に合成するように機能する装置、システムおよび方法によって対処することができる。本明細書で記述されたこのメカニズムは、非同期設計が第１原則から実施されているときに時折引き起こされる困難なしに、非同期設計者に対して、使用可能な多くの利点を提供することができる。
【０００４】
既存の標準セルＡＳＩＣは、“セル”、“標準セル”もしくは“論理セル”と呼ばれる、事前に設計された回路素子を使用する。通常、標準セルライブラリは、レジスタやフロップなどのこれら同期セルの多くの集合、ならびにＡＮＤゲート、ＯＲゲート、ＸＯＲゲート、インバータなどの非同期組み合わせ論理素子を含む。明瞭化のために伝えるが、このような非同期組み合わせ回路素子は、本開示内容中で説明する非同期回路素子とは明らかに異なることに留意されたい。非同期組み合わせ回路素子は、ほとんどの既存のデジタル回路によって使用されるような標準バイナリ論理で動作する単なる組み合わせ論理素子である。一方、非同期回路素子は、非同期組み合わせ論理素子および同期論理素子両方の機能を再現するが、既存の同期標準セル回路の実施における標準クロック・バイナリ・フォーマットでのデータ情報の受け渡しを行わない。
【０００５】
図１は、本発明の種々の実施形態に従う、同期論理から非同期論理への変換を示すフロー図である。これらの変換方法１１１は、マシンによるアクセスおよび読み出しの可能な媒体に、命令を格納することによって実施することができる。方法１１１は、ネットワーク内およびネットワーク間での処理に使用可能であり、これらネットワークは、有線、ワイヤレス、もしくは有線とワイヤレスの組み合わせてあってもよい。方法１１１は命令として実施することができるが、この命令が、マシンによって実行されると図１に示された処理を実施する。この状況を想定して、自動コンポーネント置換を使用する同期論理から非同期論理への変換を、図１を参照して今から議論する。
【０００６】
幾つかの実施形態においては、論理合成が、非同期設計を提供するために使用される。他の実施形態においては、物理的合成が使用される。さらに他の実施形態においては、論理合成および物理的合成の組み合わせが使用される。
【０００７】
同期設計から非同期設計を合成する方法１１１を、ブロック１１５において開始し、ブロック１１９に進行させることができ、高レベルハードウェア記述が得られるが、この高レベルハードウェア記述は、おそらくはレジスタ転送レベル（ＲＴＬ）記述を利用するものである。
【０００８】
同期標準セルライブラリ素子のライブラリが存在し、そのライブラリ各々は、ある所望の機能を示す論理回路を互いに接続された際に実現する多くの標準セル素子を有する。簡単な例として、そのライブラリが４部分を有する場合、つまり、ＡＮＤゲートと、ＯＲゲートと、インバータと、ポジティブエッジトリガードフロップ（positive-edge triggered flop）を含む順序論理回路とを含む組み合わせ論理回路について検討する。各組み合わせセルは、その（１つまたは複数の）入力に対して論理動作を実施して、組み合わせ出力を生成する。フロップのシーケンシャルな出力は、データ入力およびクロック入力の関数である。フロップは、“レジスタ”と呼ぶことができる。なぜなら、フロップは、クロック入力信号エッジの連続的発生の間、データ入力値を記録するよう動作するからである。この同期コンポーネントライブラリの例で使用可能な機能は、表１、表２、表３および表４に見ることができる。
【表１】
2011512602.tif 000003
【表２】
2011512602.tif 000004
【表３】
2011512602.tif 000005
【表４】
2011512602.tif 000006
【０００９】
このライブラリにおける（通常は、この限定された例で示すものよりも多くの）標準セルコンポーネントを使用して、方法１１１を、ブロック１２３に進行させ、機能的回路記述を合成して同期標準セルライブラリコンポーネントのネットリストを提供する。これは、Ｖｅｒｉｌｏｇ（登録商標）もしくはＶＨＤＬ（超高速集積回路設計用ハードウェア記述言語）言語を使用するＲＴＬ記述などの、ハードウェア記述言語（ＨＤＬ）で定義されたハードウェアの記述を解釈するように動作する当業者にとって既知の合成ツールを使用して達成することができる。
【００１０】
ブロック１２３の合成動作は、非同期ライブラリコンポーネントの最終的置換に対する結果を最適化するという意図で実施されてもよい。しかしながら、これは実施される個々の実施形態に依存する。ブロック１２３の動作は、論理合成、物理的合成、もしくはこれらの組み合わせを含むことができる。したがって、この時点で配置情報を獲得することができる。
【００１１】
方法１１１を、ブロック１２７に進行させ、ブロック１２３の合成動作由来の同期ライブラリコンポーネントと自動的に置換することができる非同期標準セルライブラリコンポーネントを獲得することができる。
【００１２】
ブロック１３１において、逐次的に、もしくは幾つかの実施形態においては実質的に同時に、各非同期標準セルライブラリコンポーネントが、同期標準セルライブラリコンポーネントと置き換わり、同期ネットリスト記述は、非同期ネットリスト記述へと変換される。この時点で、非同期標準セル記述は、完全な非同期（データフローに基づく）記述へと変更することができる。非同期論理回路は、その後、境界回路もしくはフレームで包囲することができ、これにより、結果として生じる回路への外部からの入力およびのこの回路の出力は、元の同期論理設計と同様に動作する。
【００１３】
このデータフローモデルを実施する一方法は、データおよび肯定応答を用いたデュアルレールエンコーディングを使用することである。無論、当業者は、非同期回路データフロー通信を実施するために使用することができる他の多くのハンドシェイクプロトコル（例えば、シングルレール、デュアルフェイズなど）が存在することを理解するであろう。種々の実施形態が、全てのこのようなメカニズムを含むように動作することができる。
【００１４】
方法１１１では、ブロック１３５に進行して配置を行い、ブロック１３９に進行してルーティングすることができるが、これら配置およびルーティングは当業者には周知のことである。これらの動作いずれかも、非同期実施向けに最適化することができる。
【００１５】
ブロック１４３で判定される際にタイミング・クロージャが達成されていなかった場合には、方法１１１は、ブロック１４７においてタイミングをクローズするステップを含んでもよい。その後、または、タイミングが既にクローズされている場合には、方法１１１は、非同期設計に従って回路を作製するステップを含んでもよい。
【００１６】
本開示を読んで理解した後、当業者は、同期標準セルライブラリにおける組み合わせ論理素子ごとに、等価な非同期標準セル素子が存在すること、またはこれを作成することができることを理解するであろう。非同期標準セルライブラリにおける各素子は、種々の非同期論理回路を使用して実現することができ、この種々の非同期論理回路は、擬似遅延非感受性（quasi delay-insensitive）、タイムド（timed）、セルフタイムド（self-timed）、および他の非同期論理ファミリータイプを含む。非同期ライブラリにおける素子は、同期ライブラリ由来の対応する組み合わせ論理素子と同一の機能を演算するよう設計される。このような組み合わせ論理素子の例は、ルックアップテーブル、ＡＯＩ（ａｎｄ−ｏｒ−ｉｎｖｅｒｔ）ゲートなどを含む。
【００１７】
図２は、本発明の種々の実施形態に従う非同期組み合わせ２００および順序論理回路２１２を示すブロック図である。例えば、非同期組み合わせ２００および順序論理回路２１２を含む簡略化された非同期標準セルライブラリを考える。各組み合わせセル２０４（例えば、非同期ＡＮＤコンポーネント）、２０６（例えば、非同期ＯＲコンポーネント）、２０８（例えば、非同期インバータコンポーネント）は、自体の（１つまたは複数の）入力に対する論理動作を実施して出力を生成する。非同期接続素子（ＣＥ）セル２１２は、状態を格納することができるが、それを行うことは必要ではない。これらのセルは、表１、表２、表３および表４に示されるテーブルファンクションに関する同期コンポーネントと同一の論理方法で機能する。
【００１８】
論理機能は同一のままであるが、データフロー構築ブロックとしての非同期論理素子の実施によって、総括的機能における相違が発生する。この非同期論理素子は、有効入力を待った後に有効出力を生成することによって動作する。したがって、データフローＡＮＤゲート２０４は、その入力に有効入力が到着するのを待った後に、ＡＮＤ関数を演算して適切な有効出力を生成する。したがって、同期および非同期セル実施において演算される関数は同一であるが、その動作は異なる。なぜなら、非同期実施では、その出力を連続的に演算する同期実施とは対照的に、全入力が有効になるのを待った後に有効出力が生成されるからである。ＣＥセルは、わずかに異なる。つまり、次の非同期パイプライン段によって前の出力が受け取られるたびに、出力がデータ入力の値を取る。
【００１９】
初期トークン素子２１６は、初期データ値を保持するために非同期標準セルライブラリで使用することができる。初期トークン素子２１６は、順序素子の機能的均等物を回路へと追加するために使用される。例えば元の同期ＲＴＬのどこに順序素子（例えばレジスタ）が存在しても、それを初期トークン素子２１６と交換することができる。元の同期設計においては、これは、例えば、ポジティブエッジトリガードフロップ（positive edge-triggered flop）を使用して実施されていた可能性がある。本明細書で記述された変換に続いて、初期トークンをＣＥセル２１２へと追加することができ、これにより、元の同期フロップセルと等価な作用がもたらされる。
【００２０】
ほとんどの実施形態においては、同期論理データ値を非同期トークンへと変換し、その反対の変換をも行う入力および出力変換素子２２４、２２８も、非同期標準セルライブラリの一部である。通常、同期ラッパーが、非同期コアを包囲する。したがって、結果として得られる非同期コア設計に同期ラッパーから入力される各信号は、同期−非同期変換（ＳＡＣ）セル２２４を通過する。同様に、非同期コアから出力されて同期ラッパーパスに入っていく各信号は、非同期−同期変換（ＡＳＣ）セル２２８に入力される。
【００２１】
当業者にとって周知の合成ツールを、本明細書で記述される方法と併せて使用する一例として、図１を参照し、以下の動作を有する同期回路のＲＴＬ記述（図１のブロック１１９を参照）を考えることができる。
2011512602.tif 000007
この合成ツールは、このように記述された設計を解釈してネットリストを合成することができる。このネットリストでは、標準セルライブラリ素子（例えば同期ＯＲゲートおよびフロップ）が互いに接続されて、必要とされる論理動作を示す回路（図１のブロック１２３を参照）が形成される。この特定の記述の場合、合成ツールからのネットリスト出力は、以下のようにすることができる。
2011512602.tif 000008
ここでは、クロック信号ＣＬＫを受信するとともに出力信号（Ｙ）を提供するポジティブエッジトリガードフロップのデータ入力へと入力を行う出力（Ｇ）を有する２入力（例えば、入力ＥおよびＦ）ＯＲゲートが記述される。
【００２２】
このネットリスト出力記述は、今度は、以下のような非同期表現（図１のブロック１３１を参照）へと変換することができる。
2011512602.tif 000009
ここでは、図２からわかるように、入力Ｅと入力ＦとＣＥセルコンポーネント２３８に入力を行う出力Ｇとを有し、初期トークン値がＹである非同期ＯＲセルコンポーネント２３４が記述される。元の同期回路の完全な非同期実施は、したがって、非同期コア回路２３０として示される。
【００２３】
同期ネットリストの非同期設計表現への（自動置換なしでの）変換についてさらに知りたい読者には、”Systems and Methods for Performing Automated Conversion of Representations of Synchronous Circuit Designs to and From Representations of Asynchronous Circuit Designs”と題された、米国特許出願公開2007/0256038の参照を推奨する。これは本開示の譲受人に譲渡されており、また、その全体を本明細書と合体する。
【００２４】
図３は、本発明の種々の実施形態に従う、非同期論理回路周囲の同期ラッパー３０４のブロック図である。同期設計のこの非同期実施３００においては、（図２のセル２２４、２２８と類似するかまたは同一であってもよい）変換セル３２４、３２８が使用されて、同期ラッパー３０４と非同期コア３０８との間の通信が容易になる。クロック信号ＣＬＫの入力周期ごとに、各ＳＡＣセル３２４は、単一のトークンＴＩ１、ＴＩ２、ＴＩ３を生成し、これらは非同期コア３０８へと入力される。クロック信号ＣＬＫの出力周期ごとに、ＡＳＣセル３２８は、トークンＴＯを消費し、等価なデータ値を自体の出力Ｑに伝播させる。同期ラッパー３０４によって示された非同期境界におけるデータ値（すなわちトークン）の変換により、同期回路の非同期実施３００が元の同期設計と同一の動作を有することが確実になる。
【００２５】
実施することの可能な、非常に多くの考えられる変形実施形態が存在する。これらの実施形態は、合成に対してより適したカスタマイズ素子と、設計者が異なる設計メトリクス（例えば、面積、電力および／もしくは性能）の最適化の観点から選択肢を与えられるための同一のライブラリコンポーネントの複数例と、最終的な回路の実施が最適化されるように他の論理回路に初期トークン素子が追加される“融合”ライブラリ素子とを非同期標準セルライブラリに含めるという最適化を含む。
【００２６】
図４は、本発明の種々の実施形態に従う、同期論理の非同期論理への変換方法４６１を示すフロー図である。方法４６１は、マシンによるアクセスおよび読み出しの可能な媒体において実施することができ、ネットワーク内およびネットワーク間のプロセスで使用可能である。ネットワークは、有線でも、ワイヤレスでも、有線とワイヤレスの組み合わせでもよい。方法４６１は、マシンによってアクセスされたときに図４に示された処理を実施する命令として実施することができる。
【００２７】
コンピュータにより実施される、標準セル素子の自動置換を使用して同期回路設計の少なくとも一部を非同期設計へと変換する方法４６１は、ブロック４６５で開始され、続いてブロック４６９に進められ、同期回路設計表現から同期ネットリストが生成される。この同期ネットリストは、例えば、電子設計インターフェイスフォーマット（ＥＤＩＦ）に従ってフォーマットすることができる。
【００２８】
ほとんどの実施形態においては、方法４６１は、ブロック４７１において、同期ネットリストに、非同期コアに入力される信号を受信するためのＳＡＣセルを追加するステップを含む。同様に、ブロック４７１での動作は、同期ネットリストに、非同期コアから出力する信号を伝送するためのＡＳＣセルを追加するステップを含んでもよい。
【００２９】
方法４６１は、続いて、ブロック４７５に進行することができ、このブロックでは、非同期コアを形成するために、非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、同期ネットリストにおける対応する標準セル同期コンポーネントと自動置換するステップを含む。ブロック４７５における自動置換するステップは、標準セル同期コンポーネントのピン接続に対して、非同期コンポーネントのピン接続をマッピングするステップを含んでもよい。
【００３０】
ブロック４７５における自動置換するステップは、標準セル同期コンポーネントのうちの一つを含む状態保持素子を、通信リンクおよび初期トークン素子のうちの一つと交換するステップをも含んでもよい。例えば、ブロック４７５における自動置換するステップは、標準セル同期コンポーネントの一つとして含まれるレジスタを、接続素子に関連する初期トークン素子と交換するステップを含んでもよい。この初期トークン素子は、接続素子上だけでなく、どこにでも配置することができることに留意されたい。幾つかの実施形態においては、初期トークン素子は、接続素子に直接結合される。しかしながら、幾つかのＡＳＩＣ実施においては、初期トークンを他の場所に加えるのが有利であることがある。
【００３１】
方法４６１は、ブロック４７９に進めることができ、このブロックは、同期ネットリストを非同期回路設計表現へと変換するステップを含む。幾つかの実施形態においては、同期回路設計表現は、ハードウェア記述言語を使用して表わされる。ＲＴＬを使用して記述を実施するもの、記述を直接ゲートレベルに翻訳するものを含めて、あらゆる高レベル行動言語を使用することができる。
【００３２】
したがって、ブロック４６９から４７９の動作は、高レベル記述（同期設計意図を含んでいるものでも含んでいないものでもよい）からデータフローに基づく非同期回路実施へと進行するステップを含んでもよい。非同期回路設計表現は、データフローグラフ、データフローグラフの記述、高レベル言語のうちの１つまたはそれ以上を含むことができる。このデータフローグラフは、データ、関数ブロック、ソースブロック、シンクブロック、コピーブロック、マージブロック、および／もしくは初期ブロックを表す１つまたは複数のトークンを含むことができる。したがって、ブロック４７９の動作は、例えば、とりわけ、シングルレールコーディング、デュアルレールコーディング、単一の肯定応答を伴うデュアルレールエンコーディングなどの種々の通信メカニズムを使用して実施されるデータフローモデルとして非同期回路設計表現を表現するステップを含んでもよい。
【００３３】
本明細書で記述される種々の実施形態の一部として、同期論理演算の合成ＲＴＬもしくは高レベル記述を、データフロー非同期演算へと変換するステップは、同期論理回路における幾つか（もしくは全て）の組み合わせ論理素子を、非同期標準セルライブラリにおける対応する素子へと変換するステップと、同期論理回路における１つまたは複数の状態保持素子を、非同期標準セルライブラリ由来の通信リンクまたは初期トークン素子と交換するステップとを含みうる。初期トークン素子もしくは通信リンクが使用されるかどうかは、変換される状態保持素子のタイプに依存する。
【００３４】
次いで、回路への外部インターフェイスが変更されないように、この新たな回路表現（例えば、非同期コア）を境界要素によって包囲することができる。したがって、ブロック４７９の動作は、同期ラッパーを非同期コアへと追加するステップを含むことがある。
【００３５】
このように、この非同期回路設計表現は、同期入力信号と同期出力信号を含みうる。同期部分および非同期部分の両方の使用を可能にすることによって、とりわけ、特定のＡＳＩＣ設計に対してさらなる利点を提供することができる。例えば、複数の非同期コアを、単一の同期デバイス内に組み込むことができる。
【００３６】
ブロック４７９の動作は、非同期回路設計表現の性能特性を同期ドメインに翻訳して非同期回路設計表現のタイミング特性を有効化するためのアノテーションの生成を介した変換を含むこともある。ブロック４７９の動作は、１つまたは複数のＡＳＩＣを作製するのに使用する命令として非同期回路設計表現を格納するステップをも含んでもよい。無論、もし望むならば、この表現はデータフローグラフフォーマットで格納することもできる。
【００３７】
幾つかの実施形態においては、方法４６１は、回路性能を調整するステップを含んでもよい。もし、そのステップがない場合には、方法４６１を、ブロック４８９へと進めることができる。そうでなければ、幾つかの実施形態においては、方法４６１は、非同期回路設計表現の平均スループット性能を増大させるために、接続素子（ＣＥ）を非同期回路設計表現へと追加するステップをブロック４８５において含むことがある。
【００３８】
当業者は、多くの異なる理由のためにＣＥを追加することができることを理解するであろう。例えば、幾つかのＣＥが挿入された接続パスを実装することにより、幾つかのデータトークンが、同時に‘フライト状態（in flight）’になることが可能になる。さらには、論理レベルが多数存在する場合には、２つの論理レベルの間に挿入されたＣＥを使用して、１つのデータトークンがレベルの前半部分を通過する間、別のデータトークンがそのレベルの後半部分を通過することを可能することができ、それによってスループットが増加する。ＣＥの挿入は、時には、“透過的パイプライン段（transparent pipeline stage）”を使用するものとして知られるが、これは、多くの場合、パイプライン処理の利点を、新規のデータトークンに対して遅延をもたらすことなく得ることができるからである。
【００３９】
ブロック４８５の動作は、非同期コンポーネント間のパスタイミング（path timing）のバランスを保つために、非同期回路設計表現にＣＥを追加するステップも含むことがある。幾つかの場合においては、パス性能のバランスを保つために、ＣＥを、再収束パスのうち“短い”パス中に加えることができ、それによって、結果として得られる構成がより高速度で動作することが可能になる。
【００４０】
方法４６１を、ブロック４８９へと進めることができ、非同期回路設計表現から非同期ネットリストが生成される。幾つかの実施形態においては、非同期ネットリストを、ＡＳＩＣ上での実施向けに構成することができる。したがって、方法４６１は、ブロック４９１において、非同期回路設計表現に基づくＡＳＩＣを作製するステップを含むことができ、また、ブロック４９５において終了される。
【００４１】
当業者は、図４に示される方法エレメントのうちのいくつかを、図１に示される方法エレメントに追加すること、あるいはそれと置換することができることを理解するであろう。さらには、当業者は、図１および図４の方法エレメントそれぞれを、種々の方法で他のものと組み合わせて、各図面由来のエレメントを連続的、並列的、ループ的、および／もしくは反復的に使用する種々の方法を形成することができることも理解するであろう。多くの他の実施形態を実現することができる。
【００４２】
例えば、図５は、本発明の種々の実施形態に従う、同期論理の非同期論理への変換に関連して使用される装置５００およびシステム５１０のブロック図である。装置５００およびシステム５１０は、１つまたは複数のネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）および／もしくはワイドエリアネットワーク（ＷＡＮ）などのネットワーク５１８）で動作可能であり、マシン・アクセスおよびマシン読み出しの可能な媒体中で実現することができる。ネットワーク５１８は、有線、ワイヤレス、もしくは有線とワイヤレスの組み合わせであってもよい。装置５００およびシステム５１０は、とりわけ、図１および図４のそれぞれ方法１１１および４６１に関連する処理を実行する。
【００４３】
装置５００は、端末５０２、サーバ５３０、汎用コンピュータ、およびコンピュータ性能を有する他のデバイスなどの多くのデバイスを含んでもよい。装置５００は、メモリ５５４に結合された１つまたは複数のプロセッサ５０４を含んでもよい。
【００４４】
装置５００は、同期設計情報５４４を生成するためにおそらくは使用される１つまたは複数のユーザ入力デバイス５０８を含んでもよい。ユーザ入力デバイス５０８は、音声認識装置５１６、キーボードもしくはキーパッド５２０、タッチスクリーン５２４、またはマウス５２８のうちの１つもしくは複数を含んでもよい。ディスプレイ５０６および／もしくはタッチスクリーン５２４は、１つまたは複数のＧＵＩ５２６を表示するために使用することができる。ＧＵＩ５２６は、同期設計記述、非同期設計記述、自動置換のための標準同期および非同期設計ライブラリコンポーネント、ならびに他の情報を表示するか、そうでなければ提供するために使用することができる。
【００４５】
プロセッサ５０４の１つまたは複数、ならびに合成モジュール５３８、置換モジュール５４０、変換モジュール５４２を、単一のサーバ５３０内に含めることができる。装置５００は種々の情報を含むデータ構造５５６（例えば、おそらくは標準ライブラリコンポーネントセルデータを含む同期および／もしくは非同期設計情報のデータベース）を格納するために、１つまたは複数のストレージデバイス５５０を含んでもよい。
【００４６】
同期設計情報５４４は、ユーザインターフェイスデバイス５０８から、命令形式でメモリ５４４から、データベース５５６から、および、当業者に周知の他のいくつかのの方法で受信することができる。情報５４４は、一方的に供給することも、サーバ５３０に由来する要求に応答して（例えば、プログラム的誘因の一部として）供給することも、端末５０２に応答して（例えば、非同期設計が定型化できるように情報を入力するという設計者の要求の一部として）供給することもできる。
【００４７】
標準セルライブラリの自動置換を使用して同期論理設計から非同期論理設計への同期の変換を可能にするシステム５１０は、１つまたは複数の端末５０２や１つまたは複数のサーバ５３０などの装置５００の１つまたは複数を含んでもよい。端末５０２は、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、販売時点管理（ポイントオブセール（ＰＯＳ））端末、およびネットワーク５１８を介してサーバ５３０と結合することができる他のデバイスの形式をとることができる。端末５０２は、１つまたは複数のプロセッサ５０４、およびメモリ５５４を含んでもよい。ネットワーク５１８は、有線ネットワーク、ワイヤレスネットワーク、ローカルエリアネットワーク（ＬＡＮ）もしくはグローバルコンピュータネットワーク（例えばインターネット）などのより大きな範囲のネットワークを含んでもよい。したがって、端末５０２は、ワイヤレス端末を含んでもよい。サーバ５３０および端末５０２の各々は、同期設計情報５５４のソースとして使用することができる。したがって、多くの実施形態を実現することができる。
【００４８】
例えば、幾つかの実施形態においては、同期回路設計の一部を非同期設計へと変換するためのシステムが、サーバ５３０などのコンピュータと、このコンピュータに結合され、同期回路設計表現から同期ネットリストを生成するための合成ツールモジュール５３８とを含む。この同期回路設計表現は、おそらく同期設計情報５４４から得られるものである。システム５１０は、非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、同期ネットリストにおける対応する標準セル同期コンポーネントに自動的に置換して非同期コアを形成するための置換モジュール５４０も含む。また、システム５１０は、同期ネットリストを非同期回路設計表現へと変換するための変換モジュール５４２をも含む。
【００４９】
システム５１０には、コンピュータに結合し、ＧＵＩ５２６を提供して同期回路設計表現のアイデンティフィケーション（例えば、同期設計情報５４４の一部分または全て）を受信するためのユーザ端末５０２を含めることができる。例えば、端末５０２は、ＡＳＩＣ設計端末を含んでもよい。システム５１０は、コンピュータに結合し、同期回路設計表現を（おそらくはデータベース５５６中に）格納するためのストレージデバイス５５０も含むことができる。
【００５０】
モジュール５３８、５４０、および５４２は、ハードウェア、ソフトウェア、ファームウェア、もしくはこれらの任意の組み合わせを含んでもよい。したがって、例えば、幾つかの実施形態は、命令５３６を含むマシン読み出し可能な記憶媒体（例えば、メモリ５５４）を含んでもよい。命令５３６は、１つまたは複数のプロセッサ５０４によって実行されると、本明細書で記述された方法ならびに／または図１および図４に示された方法のいずれかをプロセッサ５０４に実行させる。
【００５１】
したがって、本明細書に記述された装置、システムおよび方法を実施することによって、自動置換による既存の合成ツールを、同期論理記述を非同期論理実施に合成する際に役立つように使用することを可能にすることができる。これで、非同期設計においてそれほど技術のない人でも、同期設計を等価な非同期設計へと迅速に変換することが可能となり、したがって、これに伴う利点を得ることができる。例えば、幾つかの同期ＦＰＧＡ設計は、さらに高速で、かつ／またはより高い密度を有するＡＳＩＣ設計へと変換することができる。既存の製造工場およびＩＣ設計会社も、同期設計を取り入れ、標準ＡＳＩＣセルライブラリを使用してこれらの設計を直接実施することにより、こうした利益を享受することができる。
【００５２】
したがって、本発明の実施形態は、種々の構造上プラットフォーム（architectural platform）、オペレーティングシステム、サーバシステム、デバイス、システムもしくはアプリケーションで実施することができる。したがって、本明細書に提示されたあらゆる特定の構造的レイアウトもしくは実現例は、例示および理解の目的のためにのみ提供され、種々の実施形態を限定することは意図しない。
【００５３】
この詳細な説明は、例示的なものであって、限定的なものではない。他の多くの実施形態が、本開示を再考することによって当業者にとって明らかになるであろう。したがって、実施形態の範囲は、添付の特許請求の範囲に加えて、それが権利を付与する均等物の全範囲に関連して判断されるべきである。
【００５４】
本開示の要約書を、米国特許法施行規則（３７Ｃ．Ｆ．Ｒ．）§１．７２（ｂ）に従って提供するが、これは、読者が本技術的開示の本質を迅速に確認することを可能にするものである。要約書は、請求項の範囲または意味を解釈または限定するためには使用されないとういう理解の上で提示されている。
【００５５】
種々の実施形態の詳細な説明においては、いくつかの特徴が、開示内容を簡素化するために単一の実施形態においてグループ化されている。この開示方法は、特許請求された実施形態が、各請求項に明確に記載されたものよりも多くの特徴を有するということを意図するものとして解釈されるべきではない。それよりもむしろ、添付の特許請求の範囲に反映されるように、発明としての主題は、開示されている単一の実施形態の特徴の全てには存在しない。したがって、添付する請求項を詳細な説明に組み込み、各々の請求項は、独立した実施形態としてそれ自体が成り立つものとする。
【図３】
2011512602.tif 000010
【図１】
2011512602.tif 000011
【図２】
2011512602.tif 000012
【図４】
2011512602.tif 000013
【図５】
2011512602.tif 000014
【手続補正書】
【提出日】平成21年12月14日(2009.12.14)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【背景技術】
【０００１】
多くの場合、非同期回路設計は、同期設計に対して、性能および電力に関する便益を含む種々の利点を提供する。しかしながら、非同期論理に基づいてデバイスを実現するためには、長い時間、多くの経験、および多くの専用の非同期ツールが必要となる可能性がある。この理由および他の理由のために、既存の特定用途集積回路（ＡＳＩＣ）デバイスは、主として同期回路および技術を使用して設計される。
【図面の簡単な説明】
【０００２】
【図１】本発明の種々の実施形態に従う、同期論理から非同期論理への変換を示すフロー図である。
【図２】本発明の種々の実施形態に従う、非同期組み合わせ論理回路および非同期順序論理回路を示すブロック図である。
【図３】本発明の種々の実施形態に従う、非同期論理回路周囲の同期ラッパーのブロック図である。
【図４】本発明の種々の実施形態に従う、同期論理から非同期論理へ変換する方法を示すフロー図である。
【図５】本発明の種々の実施形態に従う、同期論理から非同期論理への変換に関連して使用される装置およびシステムのブロック図である。
【発明を実施するための最良の形態】
【０００３】
上述された課題のうちの幾つかならびに他の課題は、非同期標準セルコンポーネントの自動置換およびライブラリを使用して、ハードウェア記述言語（ＨＤＬ）もしくは任意の高レベル動作論理記述によって記述された同期論理を自動的に合成するように機能する装置、システムおよび方法によって対処することができる。本明細書で記述されたこのメカニズムは、非同期設計が第１原則から実施されているときに時折引き起こされる困難なしに、非同期設計者に対して、使用可能な多くの利点を提供することができる。
【０００４】
既存の標準セルＡＳＩＣは、“セル”、“標準セル”もしくは“論理セル”と呼ばれる、事前に設計された回路素子を使用する。通常、標準セルライブラリは、レジスタやフロップなどのこれら同期セルの多くの集合、ならびにＡＮＤゲート、ＯＲゲート、ＸＯＲゲート、インバータなどの非同期組み合わせ論理素子を含む。明瞭化のために伝えるが、このような非同期組み合わせ回路素子は、本開示内容中で説明する非同期回路素子とは明らかに異なることに留意されたい。非同期組み合わせ回路素子は、ほとんどの既存のデジタル回路によって使用されるような標準バイナリ論理で動作する単なる組み合わせ論理素子である。一方、非同期回路素子は、非同期組み合わせ論理素子および同期論理素子両方の機能を再現するが、既存の同期標準セル回路の実施における標準クロック・バイナリ・フォーマットでのデータ情報の受け渡しを行わない。
【０００５】
図１は、本発明の種々の実施形態に従う、同期論理から非同期論理への変換を示すフロー図である。これらの変換方法１１１は、マシンによるアクセスおよび読み出しの可能な媒体に、命令を格納することによって実施することができる。方法１１１は、ネットワーク内およびネットワーク間での処理に使用可能であり、これらネットワークは、有線、ワイヤレス、もしくは有線とワイヤレスの組み合わせてあってもよい。方法１１１は命令として実施することができるが、この命令が、マシンによって実行されると図１に示された処理を実施する。この状況を想定して、自動コンポーネント置換を使用する同期論理から非同期論理への変換を、図１を参照して今から議論する。
【０００６】
幾つかの実施形態においては、論理合成が、非同期設計を提供するために使用される。他の実施形態においては、物理的合成が使用される。さらに他の実施形態においては、論理合成および物理的合成の組み合わせが使用される。
【０００７】
同期設計から非同期設計を合成する方法１１１を、ブロック１１５において開始し、ブロック１１９に進行させることができ、高レベルハードウェア記述が得られるが、この高レベルハードウェア記述は、おそらくはレジスタ転送レベル（ＲＴＬ）記述を利用するものである。
【０００８】
同期標準セルライブラリ素子のライブラリが存在し、そのライブラリ各々は、ある所望の機能を示す論理回路を互いに接続された際に実現する多くの標準セル素子を有する。簡単な例として、そのライブラリが４部分を有する場合、つまり、ＡＮＤゲートと、ＯＲゲートと、インバータと、ポジティブエッジトリガードフロップ（positive-edge triggered flop）を含む順序論理回路とを含む組み合わせ論理回路について検討する。各組み合わせセルは、その（１つまたは複数の）入力に対して論理動作を実施して、組み合わせ出力を生成する。フロップのシーケンシャルな出力は、データ入力およびクロック入力の関数である。フロップは、“レジスタ”と呼ぶことができる。なぜなら、フロップは、クロック入力信号エッジの連続的発生の間、データ入力値を記録するよう動作するからである。この同期コンポーネントライブラリの例で使用可能な機能は、表１、表２、表３および表４に見ることができる。
【表１】
2011512602.tif 000015
【表２】
2011512602.tif 000016
【表３】
2011512602.tif 000017
【表４】
2011512602.tif 000018
【０００９】
このライブラリにおける（通常は、この限定された例で示すものよりも多くの）標準セルコンポーネントを使用して、方法１１１を、ブロック１２３に進行させ、機能的回路記述を合成して同期標準セルライブラリコンポーネントのネットリストを提供する。これは、Ｖｅｒｉｌｏｇ（登録商標）もしくはＶＨＤＬ（超高速集積回路設計用ハードウェア記述言語）言語を使用するＲＴＬ記述などの、ハードウェア記述言語（ＨＤＬ）で定義されたハードウェアの記述を解釈するように動作する当業者にとって既知の合成ツールを使用して達成することができる。
【００１０】
ブロック１２３の合成動作は、非同期ライブラリコンポーネントの最終的置換に対する結果を最適化するという意図で実施されてもよい。しかしながら、これは実施される個々の実施形態に依存する。ブロック１２３の動作は、論理合成、物理的合成、もしくはこれらの組み合わせを含むことができる。したがって、この時点で配置情報を獲得することができる。
【００１１】
方法１１１を、ブロック１２７に進行させ、ブロック１２３の合成動作由来の同期ライブラリコンポーネントと自動的に置換することができる非同期標準セルライブラリコンポーネントを獲得することができる。
【００１２】
ブロック１３１において、逐次的に、もしくは幾つかの実施形態においては実質的に同時に、各非同期標準セルライブラリコンポーネントが、同期標準セルライブラリコンポーネントと置き換わり、同期ネットリスト記述は、非同期ネットリスト記述へと変換される。この時点で、非同期標準セル記述は、完全な非同期（データフローに基づく）記述へと変更することができる。非同期論理回路は、その後、境界回路もしくはフレームで包囲することができ、これにより、結果として生じる回路への外部からの入力およびのこの回路の出力は、元の同期論理設計と同様に動作する。
【００１３】
このデータフローモデルを実施する一方法は、データおよび肯定応答を用いたデュアルレールエンコーディングを使用することである。無論、当業者は、非同期回路データフロー通信を実施するために使用することができる他の多くのハンドシェイクプロトコル（例えば、シングルレール、デュアルフェイズなど）が存在することを理解するであろう。種々の実施形態が、全てのこのようなメカニズムを含むように動作することができる。
【００１４】
方法１１１では、ブロック１３５に進行して配置を行い、ブロック１３９に進行してルーティングすることができるが、これら配置およびルーティングは当業者には周知のことである。これらの動作いずれかも、非同期実施向けに最適化することができる。
【００１５】
ブロック１４３で判定される際にタイミング・クロージャが達成されていなかった場合には、方法１１１は、ブロック１４７においてタイミングをクローズするステップを含んでもよい。その後、または、タイミングが既にクローズされている場合には、方法１１１は、非同期設計に従って回路を作製するステップを含んでもよい。
【００１６】
本開示を読んで理解した後、当業者は、同期標準セルライブラリにおける組み合わせ論理素子ごとに、等価な非同期標準セル素子が存在すること、またはこれを作成することができることを理解するであろう。非同期標準セルライブラリにおける各素子は、種々の非同期論理回路を使用して実現することができ、この種々の非同期論理回路は、擬似遅延非感受性（quasi delay-insensitive）、タイムド（timed）、セルフタイムド（self-timed）、および他の非同期論理ファミリータイプを含む。非同期ライブラリにおける素子は、同期ライブラリ由来の対応する組み合わせ論理素子と同一の機能を演算するよう設計される。このような組み合わせ論理素子の例は、ルックアップテーブル、ＡＯＩ（ａｎｄ−ｏｒ−ｉｎｖｅｒｔ）ゲートなどを含む。
【００１７】
図２は、本発明の種々の実施形態に従う非同期組み合わせ２００および順序論理回路２１２を示すブロック図である。例えば、非同期組み合わせ２００および順序論理回路２１２を含む簡略化された非同期標準セルライブラリを考える。各組み合わせセル２０４（例えば、非同期ＡＮＤコンポーネント）、２０６（例えば、非同期ＯＲコンポーネント）、２０８（例えば、非同期インバータコンポーネント）は、自体の（１つまたは複数の）入力に対する論理動作を実施して出力を生成する。非同期接続素子（ＣＥ）セル２１２は、状態を格納することができるが、それを行うことは必要ではない。これらのセルは、表１、表２、表３および表４に示されるテーブルファンクションに関する同期コンポーネントと同一の論理方法で機能する。
【００１８】
論理機能は同一のままであるが、データフロー構築ブロックとしての非同期論理素子の実施によって、総括的機能における相違が発生する。この非同期論理素子は、有効入力を待った後に有効出力を生成することによって動作する。したがって、データフローＡＮＤゲート２０４は、その入力に有効入力が到着するのを待った後に、ＡＮＤ関数を演算して適切な有効出力を生成する。したがって、同期および非同期セル実施において演算される関数は同一であるが、その動作は異なる。なぜなら、非同期実施では、その出力を連続的に演算する同期実施とは対照的に、全入力が有効になるのを待った後に有効出力が生成されるからである。ＣＥセルは、わずかに異なる。つまり、次の非同期パイプライン段によって前の出力が受け取られるたびに、出力がデータ入力の値を取る。
【００１９】
初期トークン素子２１６は、初期データ値を保持するために非同期標準セルライブラリで使用することができる。初期トークン素子２１６は、順序素子の機能的均等物を回路へと追加するために使用される。例えば元の同期ＲＴＬのどこに順序素子（例えばレジスタ）が存在しても、それを初期トークン素子２１６と交換することができる。元の同期設計においては、これは、例えば、ポジティブエッジトリガードフロップ（positive edge-triggered flop）を使用して実施されていた可能性がある。本明細書で記述された変換に続いて、初期トークンをＣＥセル２１２へと追加することができ、これにより、元の同期フロップセルと等価な作用がもたらされる。
【００２０】
ほとんどの実施形態においては、同期論理データ値を非同期トークンへと変換し、その反対の変換をも行う入力および出力変換素子２２４、２２８も、非同期標準セルライブラリの一部である。通常、同期ラッパーが、非同期コアを包囲する。したがって、結果として得られる非同期コア設計に同期ラッパーから入力される各信号は、同期−非同期変換（ＳＡＣ）セル２２４を通過する。同様に、非同期コアから出力されて同期ラッパーパスに入っていく各信号は、非同期−同期変換（ＡＳＣ）セル２２８に入力される。
【００２１】
当業者にとって周知の合成ツールを、本明細書で記述される方法と併せて使用する一例として、図１を参照し、以下の動作を有する同期回路のＲＴＬ記述（図１のブロック１１９を参照）を考えることができる。
2011512602.tif 000019
この合成ツールは、このように記述された設計を解釈してネットリストを合成することができる。このネットリストでは、標準セルライブラリ素子（例えば同期ＯＲゲートおよびフロップ）が互いに接続されて、必要とされる論理動作を示す回路（図１のブロック１２３を参照）が形成される。この特定の記述の場合、合成ツールからのネットリスト出力は、以下のようにすることができる。
2011512602.tif 000020
ここでは、クロック信号ＣＬＫを受信するとともに出力信号（Ｙ）を提供するポジティブエッジトリガードフロップのデータ入力へと入力を行う出力（Ｇ）を有する２入力（例えば、入力ＥおよびＦ）ＯＲゲートが記述される。
【００２２】
このネットリスト出力記述は、今度は、以下のような非同期表現（図１のブロック１３１を参照）へと変換することができる。
2011512602.tif 000021
ここでは、図２からわかるように、入力Ｅと入力ＦとＣＥセルコンポーネント２３８に入力を行う出力Ｇとを有し、初期トークン値がＹである非同期ＯＲセルコンポーネント２３４が記述される。元の同期回路の完全な非同期実施は、したがって、非同期コア回路２３０として示される。
【００２３】
同期ネットリストの非同期設計表現への（自動置換なしでの）変換についてさらに知りたい読者には、”Systems and Methods for Performing Automated Conversion of Representations of Synchronous Circuit Designs to and From Representations of Asynchronous Circuit Designs”と題された、米国特許出願公開2007/0256038の参照を推奨する。これは本開示の譲受人に譲渡されており、また、その全体を本明細書と合体する。
【００２４】
複数クロックドメインの存在によって、事態が少しだけ複雑になる。異なるクロックドメインに由来する問題は、二つの状態保持素子間のインターフェイスにおいて生じるもののみである。クロック周期時間はお互いの有理数倍であると想定する。実際にそうである場合、演算を静的に展開して、演算における全周期時間の最小公倍数に対応する繰り返し期間を見出すことができる。
【００２５】
図３は、本発明の種々の実施形態に従う、非同期論理回路周囲の同期ラッパー３０４のブロック図である。同期設計のこの非同期実施３００においては、（図２のセル２２４、２２８と類似するかまたは同一であってもよい）変換セル３２４、３２８が使用されて、同期ラッパー３０４と非同期コア３０８との間の通信が容易になる。クロック信号ＣＬＫの入力周期ごとに、各ＳＡＣセル３２４は、単一のトークンＴＩ１、ＴＩ２、ＴＩ３を生成し、これらは非同期コア３０８へと入力される。クロック信号ＣＬＫの出力周期ごとに、ＡＳＣセル３２８は、トークンＴＯを消費し、等価なデータ値を自体の出力Ｑに伝播させる。同期ラッパー３０４によって示された非同期境界におけるデータ値（すなわちトークン）の変換により、同期回路の非同期実施３００が元の同期設計と同一の動作を有することが確実になる。
【００２６】
実施することの可能な、非常に多くの考えられる変形実施形態が存在する。これらの実施形態は、合成に対してより適したカスタマイズ素子と、設計者が異なる設計メトリクス（例えば、面積、電力および／もしくは性能）の最適化の観点から選択肢を与えられるための同一のライブラリコンポーネントの複数例と、最終的な回路の実施が最適化されるように他の論理回路に初期トークン素子が追加される“融合”ライブラリ素子とを非同期標準セルライブラリに含めるという最適化を含む。
【００２７】
図４は、本発明の種々の実施形態に従う、同期論理の非同期論理への変換方法４６１を示すフロー図である。方法４６１は、マシンによるアクセスおよび読み出しの可能な媒体において実施することができ、ネットワーク内およびネットワーク間のプロセスで使用可能である。ネットワークは、有線でも、ワイヤレスでも、有線とワイヤレスの組み合わせでもよい。方法４６１は、マシンによってアクセスされたときに図４に示された処理を実施する命令として実施することができる。
【００２８】
コンピュータにより実施される、標準セル素子の自動置換を使用して同期回路設計の少なくとも一部を非同期設計へと変換する方法４６１は、ブロック４６５で開始され、続いてブロック４６９に進められ、同期回路設計表現から同期ネットリストが生成される。この同期ネットリストは、例えば、電子設計インターフェイスフォーマット（ＥＤＩＦ）に従ってフォーマットすることができる。
【００２９】
ほとんどの実施形態においては、方法４６１は、ブロック４７１において、同期ネットリストに、非同期コアに入力される信号を受信するためのＳＡＣセルを追加するステップを含む。同様に、ブロック４７１での動作は、同期ネットリストに、非同期コアから出力する信号を伝送するためのＡＳＣセルを追加するステップを含んでもよい。
【００３０】
方法４６１は、続いて、ブロック４７５に進行することができ、このブロックでは、非同期コアを形成するために、非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、同期ネットリストにおける対応する標準セル同期コンポーネントと自動置換するステップを含む。ブロック４７５における自動置換するステップは、標準セル同期コンポーネントのピン接続に対して、非同期コンポーネントのピン接続をマッピングするステップを含んでもよい。
【００３１】
ブロック４７５における自動置換するステップは、標準セル同期コンポーネントのうちの一つを含む状態保持素子を、通信リンクおよび初期トークン素子のうちの一つと交換するステップをも含んでもよい。例えば、ブロック４７５における自動置換するステップは、標準セル同期コンポーネントの一つとして含まれるレジスタを、接続素子に関連する初期トークン素子と交換するステップを含んでもよい。この初期トークン素子は、接続素子上だけでなく、どこにでも配置することができることに留意されたい。幾つかの実施形態においては、初期トークン素子は、接続素子に直接結合される。しかしながら、幾つかのＡＳＩＣ実施においては、初期トークンを他の場所に加えるのが有利であることがある。
【００３２】
方法４６１は、ブロック４７９に進めることができ、このブロックは、同期ネットリストを非同期回路設計表現へと変換するステップを含む。幾つかの実施形態においては、同期回路設計表現は、ハードウェア記述言語を使用して表わされる。ＲＴＬを使用して記述を実施するもの、記述を直接ゲートレベルに翻訳するものを含めて、あらゆる高レベル行動言語を使用することができる。
【００３３】
したがって、ブロック４６９から４７９の動作は、高レベル記述（同期設計意図を含んでいるものでも含んでいないものでもよい）からデータフローに基づく非同期回路実施へと進行するステップを含んでもよい。非同期回路設計表現は、データフローグラフ、データフローグラフの記述、高レベル言語のうちの１つまたはそれ以上を含むことができる。このデータフローグラフは、データ、関数ブロック、ソースブロック、シンクブロック、コピーブロック、マージブロック、および／もしくは初期ブロックを表す１つまたは複数のトークンを含むことができる。したがって、ブロック４７９の動作は、例えば、とりわけ、シングルレールコーディング、デュアルレールコーディング、単一の肯定応答を伴うデュアルレールエンコーディングなどの種々の通信メカニズムを使用して実施されるデータフローモデルとして非同期回路設計表現を表現するステップを含んでもよい。
【００３４】
本明細書で記述される種々の実施形態の一部として、同期論理演算の合成ＲＴＬもしくは高レベル記述を、データフロー非同期演算へと変換するステップは、同期論理回路における幾つか（もしくは全て）の組み合わせ論理素子を、非同期標準セルライブラリにおける対応する素子へと変換するステップと、同期論理回路における１つまたは複数の状態保持素子を、非同期標準セルライブラリ由来の通信リンクまたは初期トークン素子と交換するステップとを含みうる。初期トークン素子もしくは通信リンクが使用されるかどうかは、変換される状態保持素子のタイプに依存する。
【００３５】
次いで、回路への外部インターフェイスが変更されないように、この新たな回路表現（例えば、非同期コア）を境界要素によって包囲することができる。したがって、ブロック４７９の動作は、同期ラッパーを非同期コアへと追加するステップを含むことがある。
【００３６】
このように、この非同期回路設計表現は、同期入力信号と同期出力信号を含みうる。同期部分および非同期部分の両方の使用を可能にすることによって、とりわけ、特定のＡＳＩＣ設計に対してさらなる利点を提供することができる。例えば、複数の非同期コアを、単一の同期デバイス内に組み込むことができる。
【００３７】
ブロック４７９の動作は、非同期回路設計表現の性能特性を同期ドメインに翻訳して非同期回路設計表現のタイミング特性を有効化するためのアノテーションの生成を介した変換を含むこともある。ブロック４７９の動作は、１つまたは複数のＡＳＩＣを作製するのに使用する命令として非同期回路設計表現を格納するステップをも含んでもよい。無論、もし望むならば、この表現はデータフローグラフフォーマットで格納することもできる。
【００３８】
幾つかの実施形態においては、方法４６１は、回路性能を調整するステップを含んでもよい。もし、そのステップがない場合には、方法４６１を、ブロック４８９へと進めることができる。そうでなければ、幾つかの実施形態においては、方法４６１は、非同期回路設計表現の平均スループット性能を増大させるために、接続素子（ＣＥ）を非同期回路設計表現へと追加するステップをブロック４８５において含むことがある。
【００３９】
当業者は、多くの異なる理由のためにＣＥを追加することができることを理解するであろう。例えば、幾つかのＣＥが挿入された接続パスを実装することにより、幾つかのデータトークンが、同時に‘フライト状態（in flight）’になることが可能になる。さらには、論理レベルが多数存在する場合には、２つの論理レベルの間に挿入されたＣＥを使用して、１つのデータトークンがレベルの前半部分を通過する間、別のデータトークンがそのレベルの後半部分を通過することを可能することができ、それによってスループットが増加する。ＣＥの挿入は、時には、“透過的パイプライン段（transparent pipeline stage）”を使用するものとして知られるが、これは、多くの場合、パイプライン処理の利点を、新規のデータトークンに対して遅延をもたらすことなく得ることができるからである。
【００４０】
ブロック４８５の動作は、非同期コンポーネント間のパスタイミング（path timing）のバランスを保つために、非同期回路設計表現にＣＥを追加するステップも含むことがある。幾つかの場合においては、パス性能のバランスを保つために、ＣＥを、再収束パスのうち“短い”パス中に加えることができ、それによって、結果として得られる構成がより高速度で動作することが可能になる。
【００４１】
方法４６１を、ブロック４８９へと進めることができ、非同期回路設計表現から非同期ネットリストが生成される。幾つかの実施形態においては、非同期ネットリストを、ＡＳＩＣ上での実施向けに構成することができる。したがって、方法４６１は、ブロック４９１において、非同期回路設計表現に基づくＡＳＩＣを作製するステップを含むことができ、また、ブロック４９５において終了される。
【００４２】
当業者は、図４に示される方法エレメントのうちのいくつかを、図１に示される方法エレメントに追加すること、あるいはそれと置換することができることを理解するであろう。さらには、当業者は、図１および図４の方法エレメントそれぞれを、種々の方法で他のものと組み合わせて、各図面由来のエレメントを連続的、並列的、ループ的、および／もしくは反復的に使用する種々の方法を形成することができることも理解するであろう。多くの他の実施形態を実現することができる。
【００４３】
例えば、図５は、本発明の種々の実施形態に従う、同期論理の非同期論理への変換に関連して使用される装置５００およびシステム５１０のブロック図である。装置５００およびシステム５１０は、１つまたは複数のネットワーク（例えば、ローカルエリアネットワーク（ＬＡＮ）および／もしくはワイドエリアネットワーク（ＷＡＮ）などのネットワーク５１８）で動作可能であり、マシン・アクセスおよびマシン読み出しの可能な媒体中で実現することができる。ネットワーク５１８は、有線、ワイヤレス、もしくは有線とワイヤレスの組み合わせであってもよい。装置５００およびシステム５１０は、とりわけ、図１および図４のそれぞれ方法１１１および４６１に関連する処理を実行する。
【００４４】
装置５００は、端末５０２、サーバ５３０、汎用コンピュータ、およびコンピュータ性能を有する他のデバイスなどの多くのデバイスを含んでもよい。装置５００は、メモリ５５４に結合された１つまたは複数のプロセッサ５０４を含んでもよい。
【００４５】
装置５００は、同期設計情報５４４を生成するためにおそらくは使用される１つまたは複数のユーザ入力デバイス５０８を含んでもよい。ユーザ入力デバイス５０８は、音声認識装置５１６、キーボードもしくはキーパッド５２０、タッチスクリーン５２４、またはマウス５２８のうちの１つもしくは複数を含んでもよい。ディスプレイ５０６および／もしくはタッチスクリーン５２４は、１つまたは複数のＧＵＩ５２６を表示するために使用することができる。ＧＵＩ５２６は、同期設計記述、非同期設計記述、自動置換のための標準同期および非同期設計ライブラリコンポーネント、ならびに他の情報を表示するか、そうでなければ提供するために使用することができる。
【００４６】
プロセッサ５０４の１つまたは複数、ならびに合成モジュール５３８、置換モジュール５４０、変換モジュール５４２を、単一のサーバ５３０内に含めることができる。装置５００は種々の情報を含むデータ構造５５６（例えば、おそらくは標準ライブラリコンポーネントセルデータを含む同期および／もしくは非同期設計情報のデータベース）を格納するために、１つまたは複数のストレージデバイス５５０を含んでもよい。
【００４７】
同期設計情報５４４は、ユーザインターフェイスデバイス５０８から、命令形式でメモリ５４４から、データベース５５６から、および、当業者に周知の他のいくつかのの方法で受信することができる。情報５４４は、一方的に供給することも、サーバ５３０に由来する要求に応答して（例えば、プログラム的誘因の一部として）供給することも、端末５０２に応答して（例えば、非同期設計が定型化できるように情報を入力するという設計者の要求の一部として）供給することもできる。
【００４８】
標準セルライブラリの自動置換を使用して同期論理設計から非同期論理設計への同期の変換を可能にするシステム５１０は、１つまたは複数の端末５０２や１つまたは複数のサーバ５３０などの装置５００の１つまたは複数を含んでもよい。端末５０２は、デスクトップコンピュータ、ラップトップコンピュータ、携帯電話、販売時点管理（ポイントオブセール（ＰＯＳ））端末、およびネットワーク５１８を介してサーバ５３０と結合することができる他のデバイスの形式をとることができる。端末５０２は、１つまたは複数のプロセッサ５０４、およびメモリ５５４を含んでもよい。ネットワーク５１８は、有線ネットワーク、ワイヤレスネットワーク、ローカルエリアネットワーク（ＬＡＮ）もしくはグローバルコンピュータネットワーク（例えばインターネット）などのより大きな範囲のネットワークを含んでもよい。したがって、端末５０２は、ワイヤレス端末を含んでもよい。サーバ５３０および端末５０２の各々は、同期設計情報５５４のソースとして使用することができる。したがって、多くの実施形態を実現することができる。
【００４９】
例えば、幾つかの実施形態においては、同期回路設計の一部を非同期設計へと変換するためのシステムが、サーバ５３０などのコンピュータと、このコンピュータに結合され、同期回路設計表現から同期ネットリストを生成するための合成ツールモジュール５３８とを含む。この同期回路設計表現は、おそらく同期設計情報５４４から得られるものである。システム５１０は、非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、同期ネットリストにおける対応する標準セル同期コンポーネントに自動的に置換して非同期コアを形成するための置換モジュール５４０も含む。また、システム５１０は、同期ネットリストを非同期回路設計表現へと変換するための変換モジュール５４２をも含む。
【００５０】
システム５１０には、コンピュータに結合し、ＧＵＩ５２６を提供して同期回路設計表現のアイデンティフィケーション（例えば、同期設計情報５４４の一部分または全て）を受信するためのユーザ端末５０２を含めることができる。例えば、端末５０２は、ＡＳＩＣ設計端末を含んでもよい。システム５１０は、コンピュータに結合し、同期回路設計表現を（おそらくはデータベース５５６中に）格納するためのストレージデバイス５５０も含むことができる。
【００５１】
モジュール５３８、５４０、および５４２は、ハードウェア、ソフトウェア、ファームウェア、もしくはこれらの任意の組み合わせを含んでもよい。したがって、例えば、幾つかの実施形態は、命令５３６を含むマシン読み出し可能な記憶媒体（例えば、メモリ５５４）を含んでもよい。命令５３６は、１つまたは複数のプロセッサ５０４によって実行されると、本明細書で記述された方法ならびに／または図１および図４に示された方法のいずれかをプロセッサ５０４に実行させる。
【００５２】
したがって、本明細書に記述された装置、システムおよび方法を実施することによって、自動置換による既存の合成ツールを、同期論理記述を非同期論理実施に合成する際に役立つように使用することを可能にすることができる。これで、非同期設計においてそれほど技術のない人でも、同期設計を等価な非同期設計へと迅速に変換することが可能となり、したがって、これに伴う利点を得ることができる。例えば、幾つかの同期ＦＰＧＡ設計は、さらに高速で、かつ／またはより高い密度を有するＡＳＩＣ設計へと変換することができる。既存の製造工場およびＩＣ設計会社も、同期設計を取り入れ、標準ＡＳＩＣセルライブラリを使用してこれらの設計を直接実施することにより、こうした利益を享受することができる。
【００５３】
したがって、本発明の実施形態は、種々の構造上プラットフォーム（architectural platform）、オペレーティングシステム、サーバシステム、デバイス、システムもしくはアプリケーションで実施することができる。したがって、本明細書に提示されたあらゆる特定の構造的レイアウトもしくは実現例は、例示および理解の目的のためにのみ提供され、種々の実施形態を限定することは意図しない。
【００５４】
この詳細な説明は、例示的なものであって、限定的なものではない。他の多くの実施形態が、本開示を再考することによって当業者にとって明らかになるであろう。したがって、実施形態の範囲は、添付の特許請求の範囲に加えて、それが権利を付与する均等物の全範囲に関連して判断されるべきである。
【００５５】
本開示の要約書を、米国特許法施行規則（３７Ｃ．Ｆ．Ｒ．）§１．７２（ｂ）に従って提供するが、これは、読者が本技術的開示の本質を迅速に確認することを可能にするものである。要約書は、請求項の範囲または意味を解釈または限定するためには使用されないとういう理解の上で提示されている。
【００５６】
種々の実施形態の詳細な説明においては、いくつかの特徴が、開示内容を簡素化するために単一の実施形態においてグループ化されている。この開示方法は、特許請求された実施形態が、各請求項に明確に記載されたものよりも多くの特徴を有するということを意図するものとして解釈されるべきではない。それよりもむしろ、添付の特許請求の範囲に反映されるように、発明としての主題は、開示されている単一の実施形態の特徴の全てには存在しない。したがって、添付する請求項を詳細な説明に組み込み、各々の請求項は、独立した実施形態としてそれ自体が成り立つものとする。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
複数クロックドメインを含む同期回路設計表現から同期ネットリストを生成するステップと、
非同期コアを形成するために、非同期標準セルコンポーネントから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換するステップと、
前記同期ネットリストを非同期回路設計表現へと変換するステップであって、前記複数クロックドメインに関連する全クロック周期時間の最小公倍数に対応する繰り返し期間を決定するステップを含む、ステップと、
を含む、
ことを特徴とする方法。
【請求項２】
前記同期ネットリストは、電子設計インターフェイスフォーマットに従ってフォーマットされる、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項３】
前記同期回路設計表現は、ハードウェア記述言語を使用して表現される、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項４】
自動的に置換するステップは、
前記非同期コンポーネントのピン接続を、前記標準セル同期コンポーネントのピン接続に対してマッピングするステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項５】
自動的に置換するステップは、前記標準セル同期コンポーネントのうちの一つを含む状態保持素子を、通信リンクもしくは初期トークン素子の一つと交換するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項６】
自動的に置換するステップは、前記標準セル同期コンポーネントのうちの一つを含むレジスタを、接続素子に関連する初期トークン素子と交換するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項７】
前記同期ネットリストに、前記非同期コアへ入力される信号を受け取るための同期−非同期変換セルを追加するステップ含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項８】
前記同期ネットリストに、前記非同期コアから出て行く信号を送信するための非同期−同期変換セルを追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項９】
前記非同期回路設計表現は、
データフローグラフ、データフローグラフの記述、もしくは高レベル言語の一つを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１０】
デュアルレールデータエンコーディングおよび単一の肯定応答を用いて実施されるデータフローモデルとして、前記非同期回路設計表現を表現するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１１】
前記非同期回路設計表現は、
データ、関数ブロック、ソースブロック、シンクブロック、コピーブロック、マージブロック、もしくは初期ブロックを表すためのトークンのうちの少なくとも１つを含むデータフローグラフを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１２】
前記非同期回路設計表現は、同期入力信号および同期出力信号を含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１３】
前記変換するステップは、
前記非同期回路設計表現の性能特性を同期ドメインへ翻訳して前記非同期回路設計表現のタイミング特性を有効化するためのアノテーションを生成するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１４】
前記非同期回路設計表現から非同期ネットリストを生成するステップであって、前記非同期ネットリストは特定用途集積回路上での実施向けに構成されるステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１５】
前記非同期回路設計表現に基づいて、特定用途集積回路を作製するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１６】
前記非同期回路設計表現の平均スループット性能を増加させるために、前記非同期回路設計表現へと接続素子を追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１７】
前記非同期コンポーネント間のパスタイミングの平衡を保つために、前記非同期回路設計表現へと接続素子を追加するステップを含む、
ことを特徴とする請求項１に記載のコンピュータで実施される方法。
【請求項１８】
コンピュータと、
前記コンピュータに結合され、複数クロックドメインを含む前記同期回路設計表現から同期ネットリストを生成するための合成ツールモジュールと、
非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換して、非同期コアを形成するための置換モジュールと、
前記同期ネットリストを非同期回路設計表現に変換するための変換モジュールであって、前記複数クロックドメインに関連する全クロック周期時間の最小公倍数に対応する繰り返し期間の決定を含む、変換モジュールと、
を含む、
ことを特徴とするシステム。
【請求項１９】
前記コンピュータに結合され、前記同期回路設計表現のアイデンティフィケーションを受信するためのグラフィカルユーザインターフェイスを提供するためのユーザ端末、
を含むことを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記コンピュータに結合され、前記同期回路設計表現を格納するためのストレージデバイス、
を含むことを特徴とする請求項１８に記載のシステム。
【請求項２１】
１つまたは複数のプロセッサで実行されたときに前記１つまたは複数のプロセッサに以下の動作を実施させる命令、を含むマシン読み出し可能な媒体であって、
前記動作は、
複数クロックドメインを含む同期回路設計表現から同期ネットリストを生成する動作、
非同期標準セルコンポーネントライブラリから得られる非同期コンポーネントを、前記同期ネットリストにおける対応する標準セル同期コンポーネントと自動的に置換して、非同期コアを形成する動作、および
前記同期ネットリストを非同期回路設計表現に変換する動作であって、前記複数のクロックドメインに関連する全クロック周期時間の最小公倍数に対応する繰り返し期間を決定することを含む、動作である、
ことを特徴とするマシン読み出し可能な媒体。
【請求項２２】
前記命令は、前記１つまたは複数のプロセッサで実行されたとき、前記１つまたは複数のプロセッサに、特定用途集積回路を作製するために使用されるべき命令として前記非同期回路設計表現を格納する動作を実施させる、
ことを特徴とする請求項２１に記載のマシン読み出し可能な媒体。
【請求項２３】
前記命令は、前記１つまたは複数プロセッサで実行されたとき、前記１つまたは複数のプロセッサに、前記非同期コアに同期ラッパーを追加する動作を実施させる、
ことを特徴とする請求項２１に記載のマシン読み出し可能な媒体。
【国際調査報告】
2011512602.tif 000022