JP2010515972A - 同期式から非同期式データフロー回路へのファブリック変換 - Google Patents

同期式から非同期式データフロー回路へのファブリック変換 Download PDF

Info

Publication number
JP2010515972A
JP2010515972A JP2009544906A JP2009544906A JP2010515972A JP 2010515972 A JP2010515972 A JP 2010515972A JP 2009544906 A JP2009544906 A JP 2009544906A JP 2009544906 A JP2009544906 A JP 2009544906A JP 2010515972 A JP2010515972 A JP 2010515972A
Authority
JP
Japan
Prior art keywords
synchronous
programmable
circuit design
logic blocks
asynchronous
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009544906A
Other languages
English (en)
Other versions
JP5055378B2 (ja
Inventor
マノハー,ラジット
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Achronix Semiconductor Corp
Original Assignee
Achronix Semiconductor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Achronix Semiconductor Corp filed Critical Achronix Semiconductor Corp
Publication of JP2010515972A publication Critical patent/JP2010515972A/ja
Application granted granted Critical
Publication of JP5055378B2 publication Critical patent/JP5055378B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/35Delay-insensitive circuit design, e.g. asynchronous or self-timed
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Logic Circuits (AREA)

Abstract

同期式回路設計を非同期式回路設計、特にプログラマブル非同期式回路設計へと変換するための方法及びシステム。系統的、実行可能及び繰り返し可能な処理が提供され、その処理は、同期式回路設計を評価し、回線、スイッチ/接続及びロジック機能を等価な機能の非同期式回路設計へと変換し、それゆえに、その全利点を伴って機能的に等価な非同期式回路を実装する。更に、系統的に変換を行うための処理、及び非同期式構成要素のための等価ハードウェアが(形式として、或いは機能記述として)提供される。本発明を使用して、典型的には元の設計実装へと変更を加えることなく、いかなる同期式回路設計も非同期式の等価物へと変換されうる。

Description

[優先権主張]
本出願は、2007年1月5日出願のU.S. Patent Application Serial No. 11/650238の優先権の利益を主張し、本出願は参照により本明細書に組み込まれる。
[技術分野]
本出願は、概して非同期式回路のための方法及びシステムに関し、より詳細には、同期式回路ファブリックを非同期式データフロー回路ファブリックへと変換するための方法及びシステムに関する。これによって、同期式回路設計は、非同期式回路設計へと変換されうる。
本技術分野においてはよく知られているように、フィールドプログラマブルゲートアレイ(FPGA)は、プログラマブル(プログラム可能な)ロジックデバイス(PLD)半導体デバイスの一種である。それは、コンフィギュラブル(設定可能な)ロジックブロック(CLB)としても知られるプログラマブルロジック素子と、入力/出力ブロック(IOB)としても知られるプログラマブルインターコネクトを含む。インターコネクトの設定を介して、プログラマブルロジック素子は、AND、OR、XOR、NOTのような基本のロジックゲートの機能性、或いは、デコーダのようなより複雑な組み合わせの機能、或いは単純な数学的機能を再現(duplicate)するようプログラムされうる。大部分のFPGAにおいては、これらのプログラマブルロジック素子(或いは、FPGA語としてはロジックブロック)はメモリ素子をも含み、このメモリ素子は単純なフリップフロップ或いはより完全なメモリブロックでありうる。
上述されたように、プログラマブルインターコネクトの階層は、FPGAのロジックブロックが、いくらかワンチッププログラマブルブレッドボードに似て、必要に応じシステム設計者によって相互接続されることを可能にする。これらのロジックブロック及びインターコネクトは、いかなるロジック機能が必要とされる場合にもFPGAが実行可能であるように、使用者/設計者による製造プロセスの後にプログラム可能(それゆえに用語「フィールドプログラマブル」)である。
FPGAは、従来の特定用途集積回路(ASIC)に対して著しい優位性を幾つか有する。それは、市場に出るまでの時間の短縮、バグを解決するためにフィールドにおいてプログラミングしなおす性能、及び非反復エンジニアリングコスト(NREコスト)の低減を含んでいる。FPGAの用途は、デジタル信号処理(DSP)、ソフトウェア無線、航空宇宙システム及び防衛システム、ASICプロトタイピング、医療画像処理、コンピュータ画像、言語認識、暗号法、バイオインフォマティクス、コンピュータハードウェアエミュレーションなどを含み、他領域の範囲にも及びつつある。
FPGAの挙動を定義するため、使用者は、ハードウェア記述言語(HDL)或いは概要設計を提供する。電子工学においては、ハードウェア記述言語或いはHDLは、電子回路の形式的記述を開発するために使用されるコンピュータ言語の一種からなる言語である。典型的なHDLは、回路動作、その設計、及びシミュレーションによってその動作を検証するためのテストを記述しうる。
HDLの文法及び意味は、ハードウェアの基本的な属性である時間及び並行性を表現するための明確な表記法を含む。あるブロック階層間での回路の接続性を表現することを主要な特徴とする言語は、ネットリスト言語として分類される。HDLの中にはこの目的のために使用されるものもありうる。HDLの使用の一つは、FPGAのようなプログラマブルロジックデバイスの設計を含む。今日の産業において使用される、もっとも広く使用され、かつ十分にサポートされているHDL2種は、VHDL及びVerilogである。VHDL或いは、VHSICハードウェア記述言語は、フィールドプログラマブルゲートアレイ、及びデジタル回路の電子的設計自動化における特定用途集積回路のためのデザインエントリ言語として一般に使用される。Verilogは、電子システムをモデル化するために使用されるハードウェア記述言語(HDL)である。Verilog言語(VerilogHDLと呼ばれる場合もある)は、種々のレベルの抽出において、アナログ、デジタル及び混合性信号回路の設計、検証、及び実装をサポートしている。
HDL設計に必要不可欠なことは、HDLプログラムをシミュレートするための性能である。HDLプログラムは、プログラマブルロジックデバイスへとプログラムをアップロードすることによって、或いはさらに、その仕様に基づいたチップを製造することなどによっても、ハードウェア内においてテストされうる。しかしながら、これは一般的に、大変時間を消費し、かつコストがかかるプロセスであり、一般的には、大部分のテスト及びデバッグはシミュレータと呼ばれるプログラムを使用することによってなされる。シミュレータは、再指定可能な“クロック”を保持しており、それはデジタルデバイスの実際のクロックに類似している。シミュレータは、設計を検証及びデバッグするために、設計者が経時的に種々のレジスタの値をプリントアウトすることを可能にする。
回路は、二つの基本的な周波数モードにおいて動作し、そのモードとは同期式と非同期式である。同期式回路は、種々の回路素子が、中心部で生成するクロック信号によって同期するデジタル回路である。理想的な同期式回路においては、それぞれの記憶素子の論理レベルにおける各変化は同時に起こる。これらの変遷はクロックのレベル変化に続いて起こる。理想的には、それぞれの記憶素子に対する入力は、次のクロックが生じる前に最終値に達し、ゆえに、回路全体の挙動が正確に予期されうる。実際には、それぞれのロジック動作には多少の遅延が必要であり、結果として、それぞれの同期式システムが動くのは最大の速度となる。これらの回路を正確に動かすために、クロック分配ネットワークの設計においては、相当の配慮が必要とされる。静的タイミング解析は、最大安全動作速度を決定するために、多くの場合に使用される。
同期式回路は、同期式シミュレーションアルゴリズムを使用してシミュレーションされる。これらのアルゴリズムは、回路におけるイベントのパスに続くため中心化された時間(Centralized−timed)を使用する。この方法においては、現在のシミュレーション時間に生じる全てのイベントが処理されるまで、シミュレーションは進行しない。これらのアルゴリズムを実行するため、イベントはグローバル順の待ち行列(キュー)に記憶される。この待ち行列における各スロットは、シミュレーション時間を表し、そのシミュレーション時間において生じる一連のイベントのリンクされたリストを記憶する。
非同期式回路は、回路素子が主に自律して動作する回路である。回路素子は、クロック回路或いはグローバルクロック信号によって管理されず、その代わりに、直前の指示及び動作の完了を示す信号に基づいて動作する。これらの信号は、単純なデータ伝送プロトコルによって特定される。このデジタルロジック設計は、クロックタイミング信号に従って動作する上述の同期式回路とは対照的である。
現在の時間スロットのイベントが非同期式回路シミュレーションのために処理される場合、そのイベントの出力は、対応するロジック素子の直前の出力と比較され、もし異なる場合には、入力が現在のイベントの出力によって駆動されるロジック素子に新しいイベントが発生する。グローバルな中心化された時間は存在しない。その代わりに、それぞれのデータ項目或いはトークンは、そのデータが有効である時間を表すタイムスタンプを伝送する。イベントの評価はトークンの可用性に依存する。非同期式シミュレーションアルゴリズムは、異なる時間インスタンスに生じるイベントを処理することが可能である。したがって、同期式シミュレーションアルゴリズムと比較して、より並列性を抽出することが可能である。
非同期式シミュレーションアルゴリズムの一つの重要な要素は、データ要素のタイムスタンプの決定方法を決定することである。保守的及び楽観的な異なるアプローチが存在する。保守的な手法においては、安全な評価時間だけが許容される、すなわち、正確な結果を保証する評価時間だけが許容される。ロジック素子は、有効な入力トークン全てを受け取った後にのみ、評価される。ロジック素子が評価される場合、その出力は入力に基づいて決定され、出力のタイムスタンプは最後に到着したトークンのタイムスタンプ、及びそのロジック素子の遅延によって決定される。対照的に、ロジック素子の楽観的な評価は、入力トークンがその入力に到着するとすぐに行われる。発生した出力が正確ではないことがわかった場合には、続いてロールバックが行われ、直前の正確だとわかっている状態にまで戻り、前方の素子に対してメッセージが送られて、先に送られた誤ったメッセージの効果がキャンセルされる。この楽観的なアルゴリズムは、状態を保留するためのさらなるコスト及び、ロールバックを調節するためのより複雑な制御機構を有する。楽観的な手法は一般的には、ロールバックがほとんどない場合には、より効果的である。
同期式回路は非同期式回路をエミュレートするためにも使用されうる。このような同期式“ハンドシェイク”回路は、非同期式回路と同一の通信プロトコルに従うが、一連の動作のためにはクロック信号を使用し続ける。このような実装の実施例は、例えば、2001年3月の第7回非同期式回路及びシステムに関する国際シンポジウムの予稿集のAd Peeters及びKees van Berkelによる“Synchronous Handshake Circuits(同期式ハンドシェイク回路)”を含む。これらの回路は、結果がロジック素子によっていつ計算されたかを示す信号を使用する。この信号(“有効ビット”と呼ばれることもある)は、クロックと組み合わせて使用される。このような回路においては、トークンは、これらの追加信号を使用して明確に表現される。このような回路における動作は、これらの入力が有効である場合に従来の非同期式回路と同様に進行する。しかしながら、クロック信号もなお、状態遷移を制御するために使用される。このような回路のクロック周波数は、必ずしも性能を決定するわけではない。なぜなら、全てのクロック周期が、計算されるべき有効な結果になるわけではないからである。しかしながら、クロックは回路動作を制御するために使用されるため、同期式シミュレーション方法はこのような回路をシミュレートするために使用されうる。
同期式回路の実装が非同期式回路をエミュレートするために使用される場合、根底にある計算モデルは、それでもなお非同期式である。なぜなら、計算の性能及び他の特性は、トークンが処理される速度によって決定されるからである。我々は、この根底にある計算モデルを“非同期式データフロー”と呼ぶ。
いったん設計が完成し、シミュレーションによって検証されると、HDLコードはロジックコンパイラへと送られ、出力はFPGAデバイスへとアップロードされる。これは、テクノロジーマップドネットリストの生成を介して実現される。ネットリストはプレースアンドルートと呼ばれる処理を使用して、実際のFPGAアーキテクチャへと適合する。プレースアンドルートは、通常、FPGAの会社が専売するプレースアンドルートソフトウェアによって実行される。上述されたシミュレーションは、製造業者に特異的な実行を法的に有効にするため、このネットリスト作成後に実施されうる。いったん設計及び動作確認処理が完了すると、生成したバイナリファイル(これもFPGAの会社の専売するソフトウェアを使用する)が、FPGAを(再)設定するために使用される。
上述されたように、非同期式動作は、同期式動作に比べて幾つかの重大な利点を提供する。しかしながら、開発の歴史的な推移において、同期式回路が産業、特に再設定可能なゲートアレイの分野において、まず広く受け入れられてきた。この理由のため、現在、非同期式形式よりも同期式ロジック形式において、より多くの設計が存在する。産業が直面する重大な課題の一つは、同期式回路設計を非同期式設計へと変換する効率的な方法を決定することであり、それによって、大掛かりな再設計をすることなく、或いは、更に悪いとしても変換した設計における欠陥なく、非同期式動作の利益を活用することである。
研究グループ及び企業の両者によって開発されてきた、種々の同期式再設定可能なアーキテクチャが存在する。しかしながら、これらのアーキテクチャの大部分は、そのインターコネクトのスケーリングが乏しいために性能の問題を被る。
本発明者は、非同期式回路のインターコネクト構造は、本技術分野においてはチップ‘ファブリック’として知られるが、同期式回路から非同期式回路への変換において大変限定的な要素でありうることを認識していた。非同期式トークン検証プロトコル、非同期式ロジックブロック間の有効データを示す‘ハンドシェイク’をサポートするために必要なインターコネクトアーキテクチャの複雑性のため、このことは特に当てはまる。本発明者は、非同期式の形式へと変換された同期式回路をサポートするための、改良されたインターコネクト方法及びシステムの必要性を認識していた。
本発明は、同期式アーキテクチャを非同期式データフロー実装へと自動的に変換するためのシステム及び方法を含む。変換は、元の同期式アーキテクチャからロジック基本要素を保存し、それによって元の同期式アーキテクチャによって使用されたのと同じ統合アルゴリズムがデータフローアーキテクチャに使用されることを可能にする。すなわち、HDL同期式回路設計の出力は、開発者側或いは製造者側で再設計することなく、同一のロジック回路の非同期式の形式を作成するために使用されうる。最終的な非同期式データフロー実装は同期式、或いは非同期式回路のいずれかを使用して実現されうる。
本発明の一実施形態においては、同期式回路設計を非同期式データフロー設計へと変換するための方法及びシステムが提供される。典型的な方法は、次のステップを含む。
複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定するステップであり、複数の接続ボックスは、回線を同期式ロジックブロックへと接続する同期式接続スイッチを含み、複数のスイッチボックスは、回線を他の回線へと接続するスイッチボックススイッチを含む、ステップと、
同期式回路設計の機能的な特性を決定するステップと、
同期式設計から、少なくともいくつかの複数の同期式ロジックブロックを、対応する非同期式データフローロジックブロックへと変換し、対応する非同期式データフローロジック機能にプロトコル信号を提供するステップと、
同期式回路設計において、回線をトラックに変換するステップであって、各トラックは、非同期式ロジックブロック間でデータ及びプロトコル信号を通信するために複数の回線をサポートする、ステップと、
同期式回路設計において、同期式回路設計の機能特性に依存して、同期式スイッチボックススイッチをプログラマブルスイッチポイントへと変換するステップと、
同期式回路設計において、同期式回路設計の機能特性に依存して、同期式接続スイッチをプログラマブルスイッチへと変換するステップと、を含む。
本発明のこれら及び他の目的、特徴及び利点は、図面と組み合わせて検討される以下の本発明の詳細な説明を考慮することによって明らかとなるであろう。
非同期式回路チップファブリックの概観図である。 異なる半導体チップコンダクタトラックの概観図を示す。 異なる半導体チップコンダクタトラックの概観図を示す。 異なる半導体チップコンダクタトラックの概観図を示す。 プログラマブルスイッチポイントの概観図を示す。 プログラマブルスイッチポイント実装ハードウェアの概要素子を示す。 プログラマブルスイッチポイント実装ハードウェアの概要素子を示す。 プログラマブルスイッチポイントの第一の実施形態の組み立てられた素子を示す。 図3A−Dのプログラマブルスイッチポイントハードウェアの別の実施形態を示す。 図3A−Dのプログラマブルスイッチポイントハードウェアの別の実施形態を示す。 プログラマブルスイッチポイントの別の実施形態の組み立てられた素子を示す。 プログラマブル接続ポイントの概観図を示す。 本発明に係る、同期式回路設計の非同期式回路設計への変換のための処理のフローチャートである。 同期式ロジック回路実施例の論理記号図を示す。 同期式ロジック回路実施例の概観図を示す。 本発明に係る非同期式設計へと変換された図7の同期式ロジック回路実施例の論理記号図を示す。 本発明に係る非同期式設計へと変換された図7の同期式ロジック回路実施例の概観図を示す。
本明細書においては、本発明に係り、同期式回路設計を非同期式回路設計、特にプログラマブル非同期式回路設計へと変換するための方法及びシステムが提供される。本発明は、同期式回路設計を評価し、回線、スイッチ/接続およびロジック機能を、同等の機能を有する非同期式回路設計へと変換し、その全ての利点を伴って、機能的に同等の非同期式回路を実装するための、系統的、実行可能及び繰り返し可能な処理を提供する。系統的に変換を行うための処理、及び非同期式素子のための等価ハードウェアが(形式として、或いは機能記述として)提供される。本発明を使用して、いかなる同期式回路設計も非同期式の等価物へと変換されうる。典型的には元の設計実装へと変化を加えることなく、同期式回路の実質的に変化していないネットリスト、概略設計或いは他の設計実装を使用して変換されうる。
本明細書において使用される実施例は、例示的なものであってそれに限定されるものではない。
まず、図1に関して、標準的で再設定可能である、半導体回路チップアーキテクチャの一部100が示され、本技術分野においては、これは“アイランドスタイル”アーキテクチャと呼ばれる。このアーキテクチャは、種々のプログラマブルロジック機能をサポートするロジックブロック(LB)102のプログラマブルアレイを含む。このアーキテクチャにおけるルーティングトラック104は、複数の直交方向に方向づけられたトラックとして図示されているが、電子信号を伝送し、選択されたロジックブロック102間の再設定可能なインターコネクトを実装するために使用される。ルーティングトラックを相互接続し、ロジックブロックを設定するために使用される、柔軟性のあるルーティングアーキテクチャの主要素子は、接続ボックス(CB)106及びスイッチボックス(SB)108を含む。実装においては、スイッチボックス108は、ある回線を、水平方向及び垂直方向のルーティングトラック内の線である回線へと接続するスイッチである。接続ボックスは、回線をロジックブロック素子へと接続するスイッチである。例示の目的のために、図面においては典型的な素子のみが示されている。しかしながら、読者は、回線トラック、接続ボックス及びスイッチボックスが、所望のインターコネクト機能を提供するために、実際には半導体チップ表面全体にわたって、反復されることが理解されるだろう。
実際には、同期式回路設計のスイッチボックスにおける典型的な接続は、マルチプレクサ回路及び信号ドライバを含み、マルチプレクサへの制御入力はプログラム可能である。マルチプレクサは、スイッチボックスの一組の入力から一つの出力への接続をサポートするために使用される。同期式回路設計の接続ボックスにおける典型的な接続は、プログラマブルスイッチを含む。
実際には、接続ボックス及びスイッチボックスの構造は、回線トラックのロジックブロックへの接続を決定し、それによって半導体チップの機能性を決定する。説明されている本発明の実施形態においては、部分100と表されている半導体チップは、例えば、本技術分野でよく知られているような、AchronixTM、XilinxTM、AlteraTMなどから利用可能なタイプのFPGAである。
続いて図2A−図2Cに関して、本技術分野においてはよく知られているように、トラック104は、同期式ファブリックにおいて、単一の回線を含んでいる。対照的に、非同期式データフローファブリックにおいては、それぞれのトラック104は、データフロー通信チャネルを提供する回線束を使用して実装される。図2B−図2Cは、データフローインターコネクトへの変換における、個々の回線の2つの異なる実装方法を示す。トラック104は、図2Bに示されるように、3本の回線構造210、212及び214において実装され、或いは、図2Cに示されるように、2本の回線構造220、222において実装され、本明細書に記載されているように、かつ本技術分野において既知であるように、選択される構造は、実装されるハンドシェイクプロトコルの形式に基づく。実際には、典型的なゲートアレイ半導体チップにおいては、回線はトラック或いはチャネルとして知られるものに含まれ、示されるように、1チャネルにつき3本、或いは2本にまとめられる。
図2Bの3本の回線構造においては、回線210及び212は、データ伝送に使用され、一方、回線214は例えば確認信号(ACK信号)のような、制御信号のために使用される。図2Cの2本の回線構造においては、これは“シングルトラック”としても知られているが、回線220及び222の両者が、データ及び制御信号の両方のために使用される。これらの回線は、本技術分野においてはよく知られているように、多様な非同期式通信プロトコルを実装するために使用されうる。
個々のトラックが1ビット以上の情報を伝送することが可能な、他の回線構造もまた可能性があることが理解されるであろう。全てのプログラマブルルーティングは、異種のプロトコル、ビット幅、及び回線構造を含みうる。データ及び制御信号を表すために、単一の回線と、様々な電圧(マルチ電圧)のロジック信号とを使用するトラックを実装するための方法もまた知られている。
説明されている本発明の実施形態においては、トラックのビット幅は、一回の動作中にトラックによって伝送されるビット数であるが、非同期式回路設計のビット幅が、変換された同期式回路設計のビット幅と同じになるように、元々の同期式アーキテクチャからのビット幅によって決定される。異なるビット幅及び、2フェイズ及び4フェイズハンドシェイクプロトコルを含む、マルチフェイズハンドシェイクプロトコルが、本技術分野においてはよく知られている。説明されているプログラマブルルーティングアーキテクチャの実施形態は、1本のルーティング回線につき1ビットの通信のために、3本の回線機構210、及び標準的な4フェイズハンドシェイクプロトコルを使用する。
続いて、非同期式回路設計への同期式回路設計の変換を一般的に考えると、本発明に係り、元々の同期式アーキテクチャの回線は本発明の通信チャネルで置換され、これは、元の同期式回路設計のデータフローと機能的に同一な、ロジックブロック間のデータのための完全なフロー制御を提供する。示されるように、本発明の通信チャネルは、同期式回路のための同一の機械言語設計を使用して実装され、非同期式形式で回路を実装するために再設計する必要はない。
[スイッチボックスハードウェア]
続いて図3Aに関して、4ポートを含むプログラマブルスイッチポイント300が示される。4ポートとは、北(N)ポート302、西(W)ポート304、南(S)ポート306、及び東(E)ポート308である。プログラマブルスイッチポイント300は、スイッチボックス108(図1)の回線トラックの各交点に挿入されることが理解されるであろう。各プログラマブルスイッチポイント300は、図3B、図3Cに示されるプログラマブルスイッチングアーキテクチャを含む。図3Bに関して、2つのファーストインファーストアウト(FIFO)バッファ310、312が示され、二つ合わせてシングルバッファとも呼ばれるが、入力L(それぞれL0、L1)及び出力R(それぞれR0、R1)を有する。図3Cに関して、4つのプログラマブルスイッチ318が、320、322、324、326として示され、それぞれが4入力(トラックにおける各回線に1入力)及び1出力を含む。各スイッチのそれぞれの接続はプログラマブルリンクを含み、そのうちの一つがプログラマブルスイッチ320においては316と番号がつけられている。読者には、従来のように、プログラマブルリンク316は、接続回路或いは開回路のいずれかとして機能するために、したがってリンクを接続/切断するために、設計処理の一部として制御されうることが理解されるであろう。
示されるプログラマブルスイッチ318の構成は、マルチプレクサ回路の考えられる実装の一つである。スイッチ及び/或いはロジックゲートの異なる構造を使用する他の実装もまた知られている。
図3A、3B、3Cにおいて、符号の命名によって示されるように、プログラマブルスイッチ320は、NSEWポートのいずれかをバッファ310の入力L0へと接続しうる。プログラマブルスイッチ324は、同様にNSEWポートのいずれかをバッファ312の入力L1へと接続しうる。プログラマブルスイッチ322、324もそれぞれ同様に、NSEWポートのいずれかに対する接続のため、それぞれ対応するバッファ310、312の出力R0、R1を選択しうる。プログラマブルスイッチ及びバッファを含む、説明されるスイッチポイント300は、このように任意の入力トラック回線/ポートを、任意の出力トラック回線/ポートに対して接続することが可能である。図3Dは、動作構造において接続されるスイッチポイント300の素子を示す。
同期式スイッチブロックアーキテクチャを非同期式データフローアーキテクチャへと変換するために、同期式回路設計アーキテクチャにおける元の信号バッファ及び回線は、説明されるデータフローパイプラインステージで置換され、各終端においてプログラマブルスイッチポイント300を含むマルチ回線トラック104(図2Bに示される)で、各回線を置換することも含む。このように、信号バッファを伴う同期式回線は、プログラマブルスイッチポイント300を伴うマルチ回線トラック(図2B、図2C)によって置換される。このデータフロー素子は、有限の容量を有するファーストインファーストアウト(FIFO)バッファを実装し、FIFOの回路実装は同期式アーキテクチャから回線を実装するために使用される変換形式の特性によって決定される。
各プログラマブルスイッチポイント300は、種々の方法によって実装されうる。それは、完全な伝送ゲート或いは単一のパストランジスタを伴い、バッファされるかバッファされないかのどちらかの方法である。これらのオプションは、当業者によって十分に理解されるであろう。使用されるスイッチの方式は、元の同期式実装の複製物か、或いは、変換される再設定可能なファブリックの新しい性能、電力、領域特性に基づいた改良物でありうる。
示される説明されているスイッチポイントは、2つのバッファ310、312のみを含む。なぜなら、データのための2回線及びプロトコル信号のための1回線を伴う、説明される3回線チャネルにおいては、スイッチポイント300によってサポートされる、独立した入力から独立した出力への接続が、最大で2つ存在しうるからである。異なるスイッチポイントトポロジーの可能性があり、独立したルートの最大数は回線トラック及びハンドシェイクプロトコル変換によって決定され、これは同様に必要なバッファ数を決定する。バッファは、様々な方法において実装されうる。その方法は、ウィークコンディション(weak-conditioned)のバッファ、プレチャージハーフバッファ、プレチャージフルバッファを含み、或いはさらに、自動リセットロジック、スタティック或いはダイナミックロジックファミリーを含む、任意のロジックファミリーを使用して実装される同期式ラッチ或いは記憶素子をも含む。また、ルーティングトラックによって使用される特定のプロトコルは、バッファを実装するために使用される回路に対しても影響を与えることが理解されるであろう。これらの選択もまた、当業者にとっては明らかであろう。
図3において説明されるパイプラインスイッチポイントの固有の限界は、単一のバッファは最大で一つの宛先しか有することができないということである。この限界は、インターコネクトのデータフロー特性から生じる。データフローではない同期式インターコネクトにおいては、バッファの出力を多数の宛先へと接続することが有効である。しかしながら、このような接続は、データフロースイッチポイントにおいては無効である。なぜなら、通信プロトコルは、フロー制御を含むからである。例えば、図2Bの3回線非同期式プロトコルにおいては、2本のデータ回線210、212及び確認回線214を含むが、データ回線は送信者から受信者へと情報を伝送し、一方、確認回線は受信者から送信者へと情報を伝送する。データ回線を一送信者から多数の宛先へと接続し得るとしても、多数の確認回線をまとめて接続することは不可能である。なぜなら、それぞれの受信者は独立した確認信号を有するからである。
多数の宛先への出力をサポートするために、パイプラインスイッチポイントを拡張するために、図4及び図4Bに示される更なる構成が提供される。図面は、2つの変更が導入された同一のスイッチポイント300の改変版を示す。類似する構成要素は、先の図面と同様の参照符号によって示されている。変更された、対応する構成要素にはダッシュが付加されて示される。第一の変更は、第二のバッファ312に対する接続324’、326’の変更容易性(Configurability)の減少である。この減少は、ルーティングにおけるいかなる柔軟性をも犠牲にすることなく、元のスイッチポイント300に対してなされうる。これをサポートするために、スイッチポイントの選択された1ポート、例えば西(W)ポートに対する可能性のある任意の接続は、第一のバッファ310の入力/出力320、322へと割り当てられる。いったんこれが完了すると、可能性のある他の全ての接続は第二のバッファによってサポートされる。この最適化は、プログラマブルスイッチポイントを実装するために必要とされる領域を縮小するという利点を有する。
第二の変更は、第一のバッファ310の出力のために多数の宛先をサポートすることである。新しい接続性は、バッファ310の入力L0への同一の接続性を含む。第一のバッファの出力R0に対する接続性は、ファンアウトをサポートするために改変される。ルーティングトラックのための回線は、バッファから対応するNSE或いはWスイッチポイントポートへと情報を伝送するデータ回線、及びスイッチポイントポートからバッファへとデータを伝送するデータ及び確認回線から構成される。スイッチポイントトラック回線の組は、前述されたものと同様に、スイッチ322を介してバッファの出力へと直接接続される。4ポート420の各々へと接続されるトラック回線に対応する確認回線、例えば、トラック104における回線214(図2B)は、プログラマブル完了検出素子424を使用して、バッファR0の出力のための確認信号へと接続される。これによって4つの確認は単一の確認信号へと一まとめになり、これはハンドシェイクプロトコルに従ってバッファへと提供されうる。
プログラマブル完了検出回路415は、適切なAND(或いは他の適切なロジック)機能とともに、プログラマブルスイッチを使用することによって、いつ入力が完了し受け入れ可能かを示す。これは、本技術分野においてはよく知られているような種々の方法によって実装可能である。プログラマブル完了検出回路の一実施例は、本明細書に全体が組み入れられている、TeifelらによるU.S. Patent application 2005/0077918に示される。他の実施例は、電流センシング完了検出(CSCD)、活動モニタリング完了検出(ACMD)など、読者に知られているであろう他の方法を含む。スタンドアローン素子に加えて、バッファの回路実装とプログラマブル完了検出素子424とを組み合わせるような他の実装も可能性がある。このことは、性能、電力消費、及び面積を含む様々な理由のためになされうる。
図4Cは、使用可能なファンアウト構造において接続されるスイッチポイント300の構成要素を示す。
動作において、プログラマブル完了検出回路は、制御されるバッファの出力へと情報を伝送することを許容する確認信号を生成する前に、次のデータ項目を許容する用意ができていることを示す信号を全ての宛先が伝送するのを待つ。通信プロトコルの異なる選択によって、この機能を実装するために異なる回路素子が使用されうる。適切なロジック機能、及びそれに対応する回路素子は、選択された通信プロトコルに依存するが、当業者にとっては明らかであろう。
[接続ボックスハードウェア]
再度図1に関して、各接続ボックス110は、ロジックブロック入力或いは出力がルーティングトラックへと接続されることを可能にする一組の接続ポイントを含んでいる。続いて図5に関して、プログラマブルスイッチ502、504を介して、i)回線104Bから選択されたロジックブロックへ、ii)選択されたロジックブロックから回線104Bへと、回線104Aからの信号を選択的にルーティングするための標準的な接続ポイント500が示される。ロジックブロックへの信号及びロジックブロックからの信号は、このようにプログラマブルスイッチ502、504を使用して、回線トラック104Aへと接続される。接続ポイント500とスイッチポイント300(図3)の機能的な差異の一つは、接続ポイントはルーティングトラックを分割するためのいかなるサポートも含んではいないということである。例えば、個々のルーティングトラックは、適切なスイッチの設定によって、プログラマブルスイッチポイント300によって2つのトラックへと“切断”されうるが、接続ポイントによってそうされることはない。すなわち、スイッチポイント300においては、北(N)ポートからの入力は、(図3Aにおいては、図面に示されているが)南(S)ポートへと接続される必要はない。しかしながら、接続ポイント500においては、トラック104Aは分割できない。
その接続性において方向性を有する接続ボックス106は、本明細書に記述され、以下の明細書において更に説明されるように、変換された再設定可能なアーキテクチャにおいては改変なく複製されることが可能である。しかしながら、接続ポイント500は、説明されたようにファンアウトをサポートしないことが明らかであろう。接続ポイント500がファンアウトをサポートするように改変するために、上記の図4A、図4Bにおいて説明されたようなプログラマブルスイッチポイントに類似した方法で設計されうる。
図3及び図4に関して上記で説明されたスイッチ及び接続を一般的に考慮すると、プログラマブルトラック/回線ルーティングによって必要とされる柔軟性に依存する多様な最適化の可能性が存在する。第一の最適化は、プログラマブルスイッチポイント300からバッファ(図3B)を完全に排除することであり、それによってパイプラインを減少させる。除去されたバッファは、回線、或いは従来の信号ドライバによって置換されうる。これは、接続ポイント500にとっても同様に使用可能な最適化である。第二の最適化は、プログラマブルスイッチ及び接続ポイントにおいて、その全体にわたって、設定可能なスイッチを排除することであり、ルーティングトラックからの対応するデータレールを互いに常に接続することである。データレールのみが直接接続される。この最適化は、一般的には、接続ポイントにとってより適切である。なぜなら、従来の接続ポイントは、通常このように設計されているからである。確認回線は、ファンアウトをサポートするためのプログラマブル完了検出素子を必要とするであろう。
当業者にとって明らかであろう、説明されるスイッチ構成の他の多くの変形が存在する。変形例は、スイッチポイント或いは接続ポイントを実装するためにパイプラインバッファと信号バッファの混合物を有するもの、全データレール上にスイッチを有するのに対していくつかのデータレール上にスイッチを有するものなどを含む。これらのオプションは、結果としてインターコネクトの柔軟性、面積、性能、及び電力消費の様々なトレードオフをもたらし、使用される実際の実装は、アプリケーションの特性及び様々なトレードオフの重要性に依存するであろう。
[設定可能なスイッチボックス及び接続ボックス接続の変換]
動作においては、同期式アーキテクチャ回路設計を非同期式データフロー設計へと変換する一ステップは、上記で説明された非同期式接続を同期式接続の代替として用いることである。適切な構成を作成するため、同期式回路接続のある特性を同定し、適切な非同期式置換を選択することが必要である。
第一の特徴或いは特性は、同期式アーキテクチャにおける設定可能な接続がファンアウトをサポートするか、或いはファンアウトをサポートしないかである。決定すべき第二の特性は、同期式回路設計における接続が方向性をもつか否かである。一方向性の接続では、その構成の可能性に関わりなく、情報の送信者及び受信者が静的に決定される。
ファンアウトが元の同期式回路設計において使用される場合においては、図4に関して上記で説明されたように、設定可能な完了検出素子を使用して、プログラマブルスイッチポイント300’を接続ボックスへと単に置換することによって、非同期式等価物が作成される。ファンアウトが元の同期式設計において使用されていない場合には、変換される接続は、いかなる設定可能な完了検出素子も必要とせず、上記の図3に示されるように実装される。
一方向性の同期式回路設計に関して、等価の非同期式設計をサポートする変換されるデータフロー接続は、正確なファンアウトあり/ファンアウトなしの構成の選択に加えて、性能を改良するために、例えば図3に示されるバッファのようなデータフローバッファを導入しうる。このようなバッファの導入は任意であり、選択は、最終的に変換される設計の重要性(面積、電力、性能)の評価指標(metrics of interest)に基づいてなされるべきである。
双方向性の同期式回路設計に関して、非同期式等価物をサポートする変換されたデータフロー接続は、バッファの入力或いは出力のどちらかを適切なルーティングトラックへと接続するために使用される、方向性についての情報を伴うバッファを含む。図3は、接続性が双方向性であるプログラマブルスイッチポイント300の一実施例を示す。ゆえに、種々のポートは、示されているバッファの入力或いは出力のどちらかに接続することが可能であるはずである。類似した構成は、同期式プログラマブル接続において存在し、そこでは、プログラマブル接続は、性能の理由で単一のバッファを含む。
このように、適切な接続形式の選択に従って、同期式接続を上記で説明された非同期式接続へと変換することは、本発明に従って同期式回路設計を非同期式回路設計へと変換する一ステップであることが理解される。
[同期式回路設計の非同期式データフロー設計への変換]
本技術分野においてよく知られているように、同期式ロジックブロックは、様々な設定可能なロジック機能を含み、そのロジック機能は、典型的には、以下のものを含むがそのいずれにも限定されることはない。すなわち、様々なサイズの設定可能なルックアップテーブル(LUT)、キャリーチェーンサポート、プログラマブルANDゲート、プログラマブルXORゲート、プログラマブルMUX、及び読者にとってよく知られている他のものを含む。
続いて図6に関して、本発明に係る、同期式回路設計を非同期式データフローロジック回路設計へと変換するための処理600を示す。
同期式回路を非同期式データフロー回路へと変換するために、同期式設計が同定される(ステップ602)。以下に記述されるように、この設計は、いかなる従来の機械及び/或いは回路構成設計でもよい。同期式設計における信号回線(ステップ604)及びロジック機能(ステップ606)が同定される。非同期式信号回線が、上記で説明されたように、マルチ回線トラックで置換される(ステップ608)。
スイッチや接続といった、同期式設計のプログラマブルな接続性が、上記で説明されたように、接続されるロジックの特性によって同定され(ステップ610)、対応する適切な非同期式スイッチ及び接続へと上記で説明されたように変換される(ステップ612)。上述されたように、異なるスイッチボックス及び接続ボックスの構成は、ロジック回路特性に基づいて選択されうる。その特性とは、ファンアウトあり/ファンアウトなし、ハンドシェイクプロトコル選択、及び一方向性/双方向性などである。
以下で記述されるように、同期式回路のロジック機能は、等価のデータフロービルディングブロックロジック機能へと変換される(ステップ614)。
[一般的なロジックブロック変換]
同期式回路の等価な非同期式回路への変換を完了するため、ANDゲートのようなロジック機能は、データフローANDゲートで置換される。データフローANDゲートは、その全入力で有効データが使用可能になるのを待ち、その場合にのみ続いて有効な出力を生成する。各ロジック機能の実装は、パイプラインで経由されてもよいし、経由されなくてもよい。その選択は、結果として生じるアーキテクチャに対して所望される、性能及び動作特性、例えば、電力、性能、サイズなどに依存する。プログラマブルルックアップテーブルのようなロジック機能は、データフロールックアップテーブルで置換され、ロジックブロックは、ルックアップ動作を実施して有効出力を生成する前に、全入力が有効になるのを待つ。
非同期式データフローロジック素子は、一般的には、本技術分野においてよく知られているように、同期式対応物と同一の機能を実施するが、元の同期式アーキテクチャ回線を置換する非同期式アーキテクチャ接続トラックで使用される、通信プロトコルの特定の選択に依存する非同期式な方法で動作する。例示の目的のため、典型的な同期式から非同期式へのロジックブロック変換が以下では説明される。
[レジスタ変換]
元のアーキテクチャからレジスタ或いは、フリップフロップがFIFOステージによって置換され、そのFIFOステージは、有効な非同期式データトークンで初期化され、標準的な制御プロトコルに従って制御されうる。これは、元の設計からフリップフロップの機能性を複製するために十分である。
[メモリブロック、及び他の知的財産(IP)ブロック変換]
メモリブロックは、ロジック変換と類似した方法でデータフロー実装へと変換されうる。データフロー読み出し及び書き込みポートが導入され、それが、元の同期式読み出し及び書き込みポートを置換する。他のIPブロック(例えば乗算器)もまた、ロジックの一次入力及び出力ポート上に、データフローインターフェイスを確保することによって、同様な方法で変換される。
[同期式バウンダリの導入]
変換されたアーキテクチャは、ラップされうる。すなわち、電子的及び論理的に同期式回路バウンダリによって包まれる。同期式回路バウンダリは、データフロープロトコルを単純な同期式入力及び出力信号へと変換する。このことは様々な方法において実施されうる。例えば、有効な入力は、各クロック周期において生成され、データフローファブリック100(図1)への各入力のために導入される変換回路によって、データフローファブリックへと挿入される。ファブリックが、クロック信号の周波数よりも高いスループットにおいて動作し得る構成要素から構成される限り、ファブリックは、正確に動作を継続するであろう。
類似したインターフェイスは出力において適用されうる。ファブリックによってサポートされるスループットが、出力がクロックされる速度よりも高い場合、常にデータフローファブリックの出力上の有効データは同期式出力へと伝送されるであろう。
データフローファブリック100が、クロックを必要とするロジックファミリーとインターフェイスで連結されている場合、I/Oクロック周波数が、データフローファブリックへのインターフェイスにおいて、いかなる不安定性及び/或いは準安定性をも避けるように選択されることを保証することが重要である。
[同期式回路設計形式]
本発明は、実質的には、設計データの再使用の必要なく、いかなる回路設計形式を変換するためにでも適応されうることが理解されるであろう。その代わりに、作製は本明細書に説明される代替物を作製するように実装される。サポートされる設計形式は、例えば以下を含む。
―回路図に基づく設計、
―例えば、以下を含むハードウェア記述言語(HDL)設計:
VHDL、Verilog、ABEL、AHDL、HDCaml、JHDL、及び読者に知られているその他の言語。
[同期式から非同期式への回路変換実施例]
図7A、図7B及び図8A、図8Bに関して、典型的な同期式から非同期式への回路変換が示される。図7A、図7Bに関しては、単純な同期式ロジックNANDゲートがブール代数記号形式702において、及び実際の回路形式704において示される。NANDゲート702は、入力a、b及び出力‘out’を含むように見える。回路それ自体は、回路704において電界効果トランジスタを伴う単純な形式において実装される。
図6に関して上記で説明された処理を考慮すると、単純な同期式回路設計は、接続a、b及びoutを伴う(ステップ604)NANDゲートとして同定される(ステップ602)。同期式ロジック機能は、もちろん、NANDゲートである(ステップ606)。変換処理においては、a、b、及びout回線はそれぞれ上記に示された3回線トラックへと変換され(ステップ608)、トラックは、a回線のためにa.t、a.f(データ回線)及びa.e(制御回線)を含み、b回線のためにb.t、b.f及びb.eを含み、out回線のためにout.t、out.f及びout.eを含む。.t及び.t回線はデータ回線を含み、.e回線は制御回線を含む。接続及びスイッチは、元の設計においてはファンアウトのない一方向性のものであると仮定され(ステップ610)、このように接続ボックスは上記で説明されたようにプログラマブル接続スイッチへと変換され、スイッチボックスは、バッファリングとともに、或いはバッファリングなしで、プログラマブルスイッチポイントを含むよう変換される(ステップ612)。ファンアウトはないので、完了検出は必要とされない。NANDロジック機能は、図8A、図8Bに示されるデータフロー動作を伴って非同期式NAND機能へと変換される(ステップ614)。
図8A、図8Bに関して、同一のロジックNAND機能が、一つの特定の非同期式ロジックファミリーとともに実装されるように示される。そのロジックファミリーは、NANDゲート機能回路804及びNANDゲート完了回路802を含む。動作においては、ゲート機能回路804は、非同期式NANDロジック機能を計算するように動作し、一方、完了回路802は、先行する及び追随するロジックブロックとともに、ハンドシェイク/制御信号機能を実行するように機能する。上述されたように、説明された本発明に係り、元のNANDゲートからの各信号回線入力は、3回線トラックシステムへと変換されている。
前のロジックブロックからの入力a.t、a.f及びb.t、b.fは、2つのNORロジックゲート806への入力である。NORゲートの出力は、入力がいつ有効データトークン値を保持するか、及び入力がいつ有効データトークン値を保持しないかを決定するために使用されうる。有効データトークンは、a.t或いはa.fをハイにすることよって示され、その結果、ゲートは論理ゼロ、或いはロウの値を出力する。無効データトークンは、a.t及びa.fの両者がロウであることによって示され、その結果、ゲートは論理1、或いはハイの値を出力する。2つのNORゲートからの結果は、第一の完了検出素子C1へと提供され、C1の出力は、いつ両入力が有効データトークンを保持するか、或いは、いつ両入力が有効データトークンを保持しないかを示す。
完了回路802におけるNANDゲート808は、入力_o.t及び_o.fを有し、これらはそれぞれ、回路機能804からの出力out.t及びout.fの補完された形式である。NANDゲート808の出力は、信号_o.t及び_o.fがデータトークンを保持するかどうかを示すという点で、NORゲートと類似した機能を有する。有効データトークンは、_o.t或いは_o.fのどちらかがロウであることによって示され、その結果、ゲートは論理1、或いはハイの値を出力する。無効データトークンは、_o.t及び_o.fの両者がハイであることによって示され、その結果、ゲートは論理0、或いはロウの値を出力する。続いて結果は完了検出素子C2へと提供され、そのC1からの他の入力は入力が有効か否かを示す。この組み合わせられた完了検出は、それぞれ入力a.t、a.f及びb.t、b.fの確認信号に対応する信号a.e及びb.eを介して、入力が確認されうるか否かを示すために使用される。out.e信号は、出力のためのトラックの一部であり、データout.t及びout.f信号が伝送されるステージから到着する。最終的には、出力からの確認信号、out.eは、完了C2の出力と組み合わせられ、ロジックNAND機能を計算する回路804を使用可能にするために使用される信号enを生成する。
以下は非同期式NANDゲートの動作の完全な一周期を説明する。初期状態においては、“en”はハイである。“a”入力がハイであり(a.tをロウ、a.fをハイにすることによって表される)、かつ、“b”入力がハイである(b.tをハイ、b.fをロウにすることによって表される)場合、回路804におけるn型トランジスタは、_o.tをロウにし、そしてout.tをハイに設定する。並行して、ゲートC1の出力は、最終的にハイになり、入力として_o.f及び_o.tを伴うNANDゲートの出力もまた、ハイになる。なぜなら、_o.tはロウであるからである。これによって、a.e、b.eは両方ともロウになり、それによって入力を確認する。
いったん入力が確認されると、入力a.t、a.f及びb.t、b.fは、両者ともロウになり、入力“a”及び“b”においてハンドシェイクプロトコルを完了する。並行して、出力データが確認されると、out.eは最終的にロウになる。これは、次にC3の出力をハイにし、enをロウにする。enがロウになる場合、_o.t及び_o.fの両方がハイに駆動され、それによって今度は出力out.t、out.fがロウにリセットされる。同様に並行して、C2の出力がハイになると、a.e及びb.eをハイにし、入力“a”及び“b”においてハンドシェイクを完了する。最終的には、out.eがハイになってC3にその出力を変化させるや否や、enは、再度ハイになり、ゲートに再度計算するための準備をさせる。
回路804は、en信号によって許可されるとNAND動作を計算し、出力回線out.t及びout.fに正確に計算されたデータトークンを生成する。
読者は、説明された本発明に係り、元のNANDゲートからの各信号回線入力は、3回線トラックシステムへと変換され、入力aはa.t、a.f及びa.eによって置換され、bは、b.t、b.f、b.eによって置換され、outはout.t、out.f及びout.eによって置換されることを理解し認識するであろう。ここで、接尾辞“.t”及び接尾辞“.f”はデータ回線を示し、接尾辞“.e”はハンドシェイク回線を示す。機能回路804は、非同期式ロジックAND機能を実施するために動作し、一方、完了回路802は、有効データが入力において受信されること、及び、先行及び追随するロジック機能への適切なハンドシェイク信号に従って、有効データが出力において生成されることを保証するために動作する。
[統合の透明性]
本発明の重要な特性は、データフローアーキテクチャが、非同期式構成における速度及び他の固有な利点を提供しながら、機能的に元の同期式ロジック機能をエミュレートすることが可能であることである。
同一の基本原理の様々な同期式データフロー実装もまた可能である。例えば、非同期式ハンドシェイクは、本明細書で上述されたように、同期式回路技術を使用してエミュレートされうることがよく知られている。(例えば有効ビットを伴って)完全なフロー制御を有する同期式通信プロトコルは、同期式ロジックを使用する説明されたインターコネクトの非同期式特性をエミュレートするための方法の一実施例であり、目下、当業者にとって明らかであろう。これらの実装は、本発明への明らかな拡張である。
[コンフィギュレーションメモリ]
ロジックゲート及び固定ロジック機能に加えて、本発明は、プログラマブル同期式ロジック変換に対しても同様に適用可能である。プログラマブルロジックデバイスは、本技術分野において、かつ読者にとってよく知られているが、メモリ、スイッチ、マルチプレクサ或いは、デバイスのロジック機能を制御するためにプログラムされるような他のプログラマブル素子のようなプログラマブル素子を含む。例えば、図3Bは、スイッチポイントにおけるプログラマブルスイッチ318を示す。これらのスイッチ及び、回路における他のプログラマブル素子は、各プログラマブル素子のための設定値を保持する、ストレージ或いはメモリの適切な形に接続される。例えば、スイッチが制御されうる一つの方法は、スイッチが開放か、閉鎖かを特定するメモリの1ビットを使用することによるものである。
本発明に係る、同期式ロジック設計から非同期式データフロー設計への変換後、元のロジックにおけるスイッチとデータフローロジックにおける対応するスイッチの設定は、同一のままである。したがって、元のロジックと同一のメモリビットが、変換されたロジックをプログラムするために使用されうる。このことは、本質的に全プログラマブルロジックデバイスにあてはまる。これは本発明の特徴かつ利点であり、元の設計のロジックが、変換された設計において使用されるとき本質的に変化しないままであるようプログラミングすることを可能にする。
変換されたロジック設計がプログラマブル完了検出素子(例えば、プログラマブル完了検出回路415)の導入によってファンアウトをサポートしなければならない場合には、この新しいプログラマブル素子は設定サポートを必要とする。これらの新しいプログラマブル素子によって必要とされる設定制御は、典型的には、元の同期式実装のために前に存在するコンフィギュレーションビットから推測されうる。完了検出素子415の場合には、必要なことは、N、S、E或いはW ackレール(図4B)が、完了に関与するか否かを知ることだけである。これは、N、S、E、Wのためのデータレールが出力へと接続されているか否かを制御するために使用されているのと同じ情報である。図4Cを考察すると、プログラマブル完了素子424に必要とされる設定は、出力群322におけるスイッチを制御する設定と同一である。
回路設計者は、上記で説明されたような単純なロジックを使用する、必要とされる任意の新しい設定信号を計算するために、既存のコンフィギュレーションビットを使用するよう選択してもよい。或いは、設計者は、新しいコンフィギュレーションビットを導入するよう選択してもよい。これらの二つの選択肢間の選択は、最終的な設計の全電力消費、面積、及び/或いは性能のような設計のトレードオフに依存する。本発明の特徴及び利点は、変換された設計を制御するために必要とされるコンフィギュレーションビットが、元の同期式設計のためのコンフィギュレーションビットと同一であるか、或いはほぼ同一であるように生成されうることである。その結果として、元の同期式設計をプログラムするのに使用されたいかなるソフトウェア及びプログラミングでも、変換された設計をプログラムするためにほぼ改変することなく使用されうる。
このように、同期式回路設計を非同期式データフロー設計、特にプログラマブル非同期式データフロー設計へと変換するための新規かつ改良された方法及びシステムが提供されてきた。本発明は、系統的、実行可能及び繰り返し可能な処理を提供する。その処理は、同期式回路設計を評価し、回線、スイッチ/接続及びロジック機能を等価な機能の非同期式回路設計へと変換し、それゆえに、その全利点を伴って機能的に等価な非同期式回路を実装する。系統的に変換を行うための処理、及び非同期式素子のための等価ハードウェアが(形式として、或いは機能記述として)提供される。本発明を使用して、いかなる同期式回路設計も非同期式の等価物へと変換されうる。典型的には元の設計実装へと変化を加えることなく、ネットリスト、概略設計或いは他の設計実装を使用する。本発明は、電子工学の分野において、特に回路設計及び実装の分野において適用される。
本発明は特定の実施形態に関して示され記述されてきたが、このようなものに限定されるものではない。多数の改変、変形及び拡張が読者にとって明らかであろう。

Claims (28)

  1. 同期式回路設計を非同期式データフロー設計へと変換するための方法であって、
    複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定するステップであり、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、ステップと、
    前記同期式回路設計の複数の機能的な特性を決定するステップと、
    前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供するステップと、
    前記同期式回路設計において、前記複数の回線を複数のトラックに変換するステップであって、各トラックは、前記複数の非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートするステップと、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換するステップと、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換するステップとを含む、
    ことを特徴とする方法。
  2. 前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
    ことを特徴とする請求項1に記載の方法。
  3. ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
    ことを特徴とする請求項2に記載の方法。
  4. 双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
    ことを特徴とする請求項2に記載の方法。
  5. 前記トラックは、3回線トラック、2回線トラック及び単一回線/マルチ電圧トラックを含む群から選択される、
    ことを特徴とする請求項1に記載の方法。
  6. 前記プログラマブルスイッチはそれぞれ、ロジックブロック素子を回線へと選択的に接続するためのプログラマブルスイッチを含む、
    ことを特徴とする請求項1に記載の方法。
  7. 前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチは、更に完了検出回路を含む、
    ことを特徴とする請求項6に記載の方法。
  8. 前記複数のプログラマブルスイッチポイントはそれぞれ、各回線接続のための一組のプログラマブルスイッチを含み、それによってプログラマブルスイッチポイントにおける任意の回線が、前記プログラマブルスイッチポイントにおける任意の他の回線へと選択的に接続されうる、
    ことを特徴とする請求項1に記載の方法。
  9. 前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチポイントは更に、完了検出回路を含む、
    ことを特徴とする請求項8に記載の方法。
  10. 前記ロジックブロックの前記複数の機能的特性が双方向性を含む場合、前記プログラマブルスイッチポイントは、回線接続において前記一組のプログラマブルスイッチ間に配置されるバッファを含む、
    ことを特徴とする請求項9に記載の方法。
  11. 前記変換された非同期式回路設計が接続される、同期式ロジックの領域を提供するステップを更に含む、
    ことを特徴とする請求項1に記載の方法。
  12. 前記非同期式データフロー設計は、FPGAにおける複数の回路において実装され、前記複数の回路は、複数の非同期式動作回路及び複数の同期式動作回路を含む群から選択される、
    ことを特徴とする請求項1に記載の方法。
  13. 前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
    前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
    前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
    ことを特徴とする請求項1に記載の方法。
  14. 前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号の単純な複数のロジック機能である、
    ことを特徴とする請求項13に記載の方法。
  15. 同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
    複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計を同定する手段であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、手段と、
    前記同期式回路設計の複数の機能的な特性を決定する手段と、
    前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへと変換する手段であって、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する手段と、
    前記同期式回路設計において、前記複数の回線を複数のトラックに変換する手段であって、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、手段と、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する手段と、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する手段とを含む、
    ことを特徴とするシステム。
  16. 前記同期式回路設計の前記複数の機能的特性はファンアウト及び方向性を含む群から選択される、
    ことを特徴とする請求項15に記載の方法。
  17. ファンアウトを含む変換された同期式回路設計は、前記ファンアウトの実行を非同期式に検出するために配置される完了検出回路を含む、
    ことを特徴とする請求項16に記載の方法。
  18. 双方向性を含む変換された同期式回路設計は、方向性のある信号をサポートするために配置されるバッファを含む、
    ことを特徴とする請求項16に記載の方法。
  19. 前記トラックは、3回線トラック、2回線トラック及び単一回線/マルチ電圧トラックを含む群から選択される、
    ことを特徴とする請求項15に記載の方法。
  20. 前記複数のプログラマブルスイッチはそれぞれ、ロジックブロック素子を回線へと選択的に接続するためのプログラマブルスイッチを含む、
    ことを特徴とする請求項15に記載の方法。
  21. 前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチは、更に完了検出回路を含む、
    ことを特徴とする請求項20に記載の方法。
  22. 前記複数のプログラマブルスイッチポイントはそれぞれ、各回線接続のための一組のプログラマブルスイッチを含み、それによってプログラマブルスイッチポイントにおける任意の回線が、前記プログラマブルスイッチポイントにおける任意の他の回線へと選択的に接続されうる、
    ことを特徴とする請求項15に記載の方法。
  23. 前記ロジックブロックの前記複数の機能的特性がファンアウトを含む場合、前記プログラマブルスイッチポイントは更に、完了検出回路を含む、
    ことを特徴とする請求項22に記載の方法。
  24. 前記ロジックブロックの前記複数の機能的特性が双方向性を含む場合、前記プログラマブルスイッチポイントは、回線接続において前記一組のプログラマブルスイッチ間に配置されるバッファを含む、
    ことを特徴とする請求項23に記載の方法。
  25. 前記非同期式データフロー設計は、FPGAにおける複数の回路において実装され、前記複数の回路は、複数の非同期式動作回路及び複数の同期式動作回路を含む群から選択される、
    ことを特徴とする請求項15に記載の方法。
  26. 前記複数の同期式ロジックブロックは、複数の設定信号を使用してプログラムされる複数のプログラマブル同期式ロジックブロックを含み、
    前記複数の非同期式データフローロジックブロックは、複数の設定信号を使用してプログラムされ、前記複数の同期式ロジックブロックに対応する、複数のプログラマブル非同期式データフローロジックブロックを含み、
    前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号と同一である、
    ことを特徴とする請求項15に記載の方法。
  27. 前記複数のプログラマブル同期式ロジックブロックをプログラムするために使用される前記複数の設定信号の少なくとも幾つかは、前記複数のプログラマブル非同期式データフローロジックブロックをプログラムするために使用される前記複数の設定信号の単純な複数のロジック機能である、
    ことを特徴とする請求項26に記載の方法。
  28. 同期式回路設計を非同期式データフロー設計へと変換するためのシステムであって、
    プロセッサと、
    前記プロセッサへと接続されたメモリであって、前記プロセッサの動作を制御するための複数の命令を記憶する、メモリとを含み、
    前記プロセッサの前記動作は、
    複数の信号伝送回線、複数の同期式ロジックブロック、複数の接続ボックス、及び複数のスイッチボックスを含む同期式回路設計であって、前記複数の接続ボックスは、前記複数の回線を前記複数の同期式ロジックブロックへと接続する複数の同期式接続スイッチを含み、前記複数のスイッチボックスは、複数の回線を他の複数の回線へと接続する複数のスイッチボックススイッチを含む、同期式回路設計を同定する動作と、
    前記同期式回路設計の複数の機能的な特性を決定する動作と、
    前記同期式設計から、少なくともいくつかの前記複数の同期式ロジックブロックを、対応する複数の非同期式データフローロジックブロックへ変換し、複数のプロトコル信号を、対応する複数の非同期式データフローロジック機能に提供する、動作と、
    前記同期式回路設計において、前記複数の回線を複数のトラックへ変換し、各トラックは、複数の前記非同期式ロジックブロック間でデータ及び複数のプロトコル信号を通信するために複数の回線をサポートする、動作と、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式スイッチボックススイッチを複数のプログラマブルスイッチポイントへと変換する動作と、
    前記同期式回路設計において、前記同期式回路設計の前記複数の機能特性に依存して、前記複数の同期式接続スイッチを複数のプログラマブルスイッチへと変換する動作とを行う、
    ことを特徴とするシステム。
JP2009544906A 2007-01-05 2007-12-31 同期式から非同期式データフロー回路へのファブリック変換 Active JP5055378B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/650,238 2007-01-05
US11/650,238 US7614029B2 (en) 2007-01-05 2007-01-05 Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
PCT/US2007/089197 WO2008085792A2 (en) 2007-01-05 2007-12-31 Conversion of a synchronous fpga design into an asynchronous fpga design

Publications (2)

Publication Number Publication Date
JP2010515972A true JP2010515972A (ja) 2010-05-13
JP5055378B2 JP5055378B2 (ja) 2012-10-24

Family

ID=39493121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009544906A Active JP5055378B2 (ja) 2007-01-05 2007-12-31 同期式から非同期式データフロー回路へのファブリック変換

Country Status (5)

Country Link
US (2) US7614029B2 (ja)
EP (1) EP2100242B1 (ja)
JP (1) JP5055378B2 (ja)
KR (1) KR101552181B1 (ja)
WO (1) WO2008085792A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102700A (ja) * 2008-09-26 2010-05-06 Semiconductor Energy Lab Co Ltd 機能回路の設計システム及び機能回路の設計方法

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359186B2 (en) * 2006-01-26 2013-01-22 Subbu Ganesan Method for delay immune and accelerated evaluation of digital circuits by compiling asynchronous completion handshaking means
US7614029B2 (en) * 2007-01-05 2009-11-03 Achronix Semiconductor Corporation Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
US7739628B2 (en) * 2008-02-15 2010-06-15 Achronix Semiconductor Corporation Synchronous to asynchronous logic conversion
WO2009147789A1 (ja) * 2008-06-06 2009-12-10 日本電気株式会社 回路設計システムおよび回路設計方法
US7759974B1 (en) 2008-07-17 2010-07-20 Xilinx, Inc. Pipelined unidirectional programmable interconnect in an integrated circuit
US7746113B1 (en) 2008-07-17 2010-06-29 Xilinx, Inc. Circuit structures utilizing multiple voltage level inputs
US7635989B1 (en) 2008-07-17 2009-12-22 Xilinx, Inc. Integrated circuits with bus-based programmable interconnect structures
US7605604B1 (en) 2008-07-17 2009-10-20 Xilinx, Inc. Integrated circuits with novel handshake logic
US7743175B1 (en) 2008-07-17 2010-06-22 Xilinx, Inc. Methods of initializing routing structures in integrated circuits
US7746101B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Cascading input structure for logic blocks in integrated circuits
US7746106B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for enabling feedback paths in a self-timed integrated circuit
US7746105B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Merging data streams in a self-timed programmable integrated circuit
US9411554B1 (en) 2009-04-02 2016-08-09 Xilinx, Inc. Signed multiplier circuit utilizing a uniform array of logic blocks
US7746102B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Bus-based logic blocks for self-timed integrated circuits
US7746108B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Compute-centric architecture for integrated circuits
US7746112B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Output structure with cascaded control signals for logic blocks in integrated circuits, and methods of using the same
US7746109B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for sharing self-timed logic
US7746110B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for fanning out data in a programmable self-timed integrated circuit
US7746103B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Multi-mode circuit in a self-timed integrated circuit
US7746111B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Gating logic circuits in a self-timed integrated circuit
US7948265B1 (en) 2009-04-02 2011-05-24 Xilinx, Inc. Circuits for replicating self-timed logic
US9002915B1 (en) 2009-04-02 2015-04-07 Xilinx, Inc. Circuits for shifting bussed data
US7733123B1 (en) 2009-04-02 2010-06-08 Xilinx, Inc. Implementing conditional statements in self-timed logic circuits
US7746104B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Dynamically controlled output multiplexer circuits in a programmable integrated circuit
US7982496B1 (en) 2009-04-02 2011-07-19 Xilinx, Inc. Bus-based logic blocks with optional constant input
US8527572B1 (en) 2009-04-02 2013-09-03 Xilinx, Inc. Multiplier architecture utilizing a uniform array of logic blocks, and methods of using the same
US8706793B1 (en) 2009-04-02 2014-04-22 Xilinx, Inc. Multiplier circuits with optional shift function
US8964795B2 (en) * 2009-06-01 2015-02-24 Achronix Semiconductor Corporation Asynchronous pipelined interconnect architecture with fanout support
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US7932746B1 (en) * 2010-06-04 2011-04-26 Achronix Semiconductor Corporation One phase logic
US8913601B1 (en) 2010-10-01 2014-12-16 Xilinx, Inc. Programmable integrated circuit and method of asynchronously routing data in a circuit block of an integrated circuit
US8294490B1 (en) 2010-10-01 2012-10-23 Xilinx, Inc. Integrated circuit and method of asynchronously routing data in an integrated circuit
US8358148B1 (en) 2010-10-01 2013-01-22 Xilinx, Inc. Programmable integrated circuit and method of asynchronously routing data in an integrated circuit
US8402164B1 (en) 2010-10-27 2013-03-19 Xilinx, Inc. Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
US8856792B2 (en) 2010-12-17 2014-10-07 Microsoft Corporation Cancelable and faultable dataflow nodes
US9633157B2 (en) 2011-08-03 2017-04-25 Cornell University Energy-efficient pipeline circuit templates for high-performance asynchronous circuits
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US10038651B2 (en) * 2015-09-05 2018-07-31 Nevion Europe As Asynchronous switching system and method
US11451230B2 (en) 2020-04-23 2022-09-20 Xilinx, Inc. Compute dataflow architecture

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202262A (ja) * 2005-01-19 2006-08-03 Seiko Epson Corp 非同期回路設計ツール及びコンピュータプログラム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067091A (en) * 1988-01-21 1991-11-19 Kabushiki Kaisha Toshiba Circuit design conversion apparatus
US5958077A (en) * 1995-12-27 1999-09-28 Nec Usa, Inc. Method for testing asynchronous circuits
AU8495098A (en) * 1997-07-16 1999-02-10 California Institute Of Technology Improved devices and methods for asynchronous processing
US6301655B1 (en) * 1997-09-15 2001-10-09 California Institute Of Technology Exception processing in asynchronous processor
US9195784B2 (en) * 1998-08-31 2015-11-24 Cadence Design Systems, Inc. Common shared memory in a verification system
AU6792000A (en) * 1999-08-19 2001-03-13 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
US6625797B1 (en) * 2000-02-10 2003-09-23 Xilinx, Inc. Means and method for compiling high level software languages into algorithmically equivalent hardware representations
US6690203B2 (en) * 2000-12-29 2004-02-10 California Institute Of Technology Method and apparatus for a failure-free synchronizer
US7157934B2 (en) * 2003-08-19 2007-01-02 Cornell Research Foundation, Inc. Programmable asynchronous pipeline arrays
US7260798B2 (en) * 2003-12-29 2007-08-21 Mentor Graphics Corporation Compilation of remote procedure calls between a timed HDL model on a reconfigurable hardware platform and an untimed model on a sequential computing platform
US7464361B2 (en) * 2004-01-20 2008-12-09 Texas Instruments Incorporated System and method for asynchronous logic synthesis from high-level synchronous descriptions
US7788332B2 (en) * 2004-05-06 2010-08-31 Cornell Research Foundation, Inc. Sensor-network processors using event-driven architecture
US7584449B2 (en) * 2004-11-22 2009-09-01 Fulcrum Microsystems, Inc. Logic synthesis of multi-level domino asynchronous pipelines
US7647567B1 (en) * 2005-01-31 2010-01-12 Bluespec, Inc. System and method for scheduling TRS rules
US7478222B2 (en) * 2005-03-29 2009-01-13 Karl M. Fant Programmable pipeline array
US7411436B2 (en) * 2006-02-28 2008-08-12 Cornell Research Foundation, Inc. Self-timed thermally-aware circuits and methods of use thereof
US7610567B2 (en) 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
US7505304B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US7504851B2 (en) * 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US7594211B1 (en) * 2006-11-17 2009-09-22 Synopsys, Inc. Methods and apparatuses for reset conditioning in integrated circuits
US7614029B2 (en) 2007-01-05 2009-11-03 Achronix Semiconductor Corporation Methods and systems for converting a synchronous circuit fabric into an asynchronous dataflow circuit fabric
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US8572539B2 (en) * 2007-11-06 2013-10-29 Esilicon Corporation Variability-aware scheme for high-performance asynchronous circuit voltage regulation
US8972915B2 (en) * 2008-02-12 2015-03-03 University Of Southern California Static timing analysis of template-based asynchronous circuits
US8104004B2 (en) * 2008-02-13 2012-01-24 Achronix Semiconductor Corporation Logic performance in cyclic structures
US7739628B2 (en) * 2008-02-15 2010-06-15 Achronix Semiconductor Corporation Synchronous to asynchronous logic conversion
WO2009126880A2 (en) * 2008-04-10 2009-10-15 University Of Southern California Power aware asynchronous circuits
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006202262A (ja) * 2005-01-19 2006-08-03 Seiko Epson Corp 非同期回路設計ツール及びコンピュータプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010102700A (ja) * 2008-09-26 2010-05-06 Semiconductor Energy Lab Co Ltd 機能回路の設計システム及び機能回路の設計方法

Also Published As

Publication number Publication date
EP2100242B1 (en) 2017-11-22
US20080168407A1 (en) 2008-07-10
KR101552181B1 (ko) 2015-09-10
US7614029B2 (en) 2009-11-03
KR20090099083A (ko) 2009-09-21
WO2008085792A3 (en) 2008-09-04
EP2100242A2 (en) 2009-09-16
US20100005431A1 (en) 2010-01-07
JP5055378B2 (ja) 2012-10-24
US8375339B2 (en) 2013-02-12
WO2008085792A2 (en) 2008-07-17

Similar Documents

Publication Publication Date Title
JP5055378B2 (ja) 同期式から非同期式データフロー回路へのファブリック変換
KR101061864B1 (ko) 동기 회로 설계 표현과 비동기 회로 설계 표현간의 자동 변환을 수행하기 위한 시스템 및 방법
Peeters et al. Click elements: An implementation style for data-driven compilation
US8286025B1 (en) Selection of port adapters for clock crossing boundaries
KR20060063800A (ko) 집적 회로 개발 시스템
US9685957B2 (en) System reset controller replacing individual asynchronous resets
US8332788B1 (en) Generating a module interface for partial reconfiguration design flows
Josephs et al. Modeling and design of asynchronous circuits
Manohar Reconfigurable asynchronous logic
GB2319099A (en) Latch optimisation in logic emulation systems
US8234607B2 (en) Token enhanced asynchronous conversion of synchonous circuits
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
CN110728098B (zh) Fpga重配置分区优化方法及系统
Poole Self-timed logic circuits
US20090132747A1 (en) Structure for universal peripheral processor system for soc environments on an integrated circuit
McMillan et al. VirtexDS: a Virtex device simulator
Coates et al. A FIFO data switch design experiment
Quinton et al. Programmable logic core based post-silicon debug for SoCs
Aydin et al. Implementation of a programmable phased logic cell [FPGA]
Jeitler et al. Speeding up fault injection for asynchronous logic by fpga-based emulation
US7949790B1 (en) Machines for inserting or removing fixed length data at a fixed location in a serial data stream
CN118131854A (zh) 时钟插入延迟系统和方法
Wan Petri net-based modeling and VHDL implementation of digital systems
Tomko et al. Design Techniques to Implement Reconfigurable Hardware Watch-Points for Hardware/Software Co-Debugging
Lloyd et al. A 2-Phase Asynchronous Event Driven Bu er with Completition Detection Signalling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120417

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120703

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120730

R150 Certificate of patent or registration of utility model

Ref document number: 5055378

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150803

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250