JP5045961B2 - 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法 - Google Patents

同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法 Download PDF

Info

Publication number
JP5045961B2
JP5045961B2 JP2009507982A JP2009507982A JP5045961B2 JP 5045961 B2 JP5045961 B2 JP 5045961B2 JP 2009507982 A JP2009507982 A JP 2009507982A JP 2009507982 A JP2009507982 A JP 2009507982A JP 5045961 B2 JP5045961 B2 JP 5045961B2
Authority
JP
Japan
Prior art keywords
asynchronous
design
synchronous
clock
netlist
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.)
Active
Application number
JP2009507982A
Other languages
English (en)
Other versions
JP2009535718A (ja
JP2009535718A5 (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 JP2009535718A publication Critical patent/JP2009535718A/ja
Publication of JP2009535718A5 publication Critical patent/JP2009535718A5/ja
Application granted granted Critical
Publication of JP5045961B2 publication Critical patent/JP5045961B2/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般的には、電子回路設計に関し、より詳細には、同期回路設計と非同期回路設計との間の変換を実行するための方法およびシステムに関する。
従来の同期回路設計は、様々なハードウェア記述言語、高級記述言語、ネットリスト、および、回路図を用いて、表現される。これらの同期表現のすべては、クロック信号の存在下で、あるいは、動作を同期させるのに使用されるマスタータイミング信号によって、回路の機能を定義する。同一同期回路を実装するため非同期アーキテクチャーを利用するためには、その同期表現は、非同期表現に変換されなければならない。この目的を達成するために、以下の2つの基本的なアプローチが存在することが一般的に知られている。
1)非同期表現を用いて回路を設計し直す。
2)既存の同期表現を非同期表現に変換する。
上述したアプローチ(1)は、時間のかかるものであり、かつ、非同期アーキテクチャーとして実行するために、設計全体を実装し直す必要がある。これは、設計者には一般的には受け入れることのできないアプローチである。これは、時間の観点からコストのかかるものであり、かつ、設計者が回路設計を非同期アーキテクチャー形式で表現するためのまったく新しい方法を学習することを必要とする。非同期設計の分野は、かなり古い技術を含む時代遅れの分野である。
既存の同期表現を非同期表現に変換するアプローチ(2)は、設計者が非同期回路を熟知していることをそのようなアプローチが必要としなければ、回路設計者には有益なものでありかつ回路設計者によって推奨されるものであると本発明人が確信するアプローチである。
同期回路設計を非同期表現に自動変換することが、論議されてきたが、本発明人が知る限りでは、効果的にかつ商業的に実行可能なソリューションとして実施されていない。既存の技術は、複数クロック領域、ラッチおよびフリップフロップ(立ち下がりエッジトリガーおよび立ち上がりエッジトリガーされる)、および、クロックゲーティング(clock gating)の存在下で同期回路設計を変換することに関する問題に取り組んでいない。同期設計から非同期条件付きブロック設計を生成することのできる既存の技術は、本発明人が知る限りでは、存在しない。また、一次入力および一次出力において同期がとられているという錯覚を維持しながら同期システムを非同期設計に変換するための本発明人が知る過去の研究は、存在しない。
本発明は、設計者またはユーザが対話することなく、あるいは、同期回路を再設計することなく、同期表現から非同期表現への回路設計の変換を自動化するための方法およびシステムを含むが、典型的には、ソフトウェアの形で必ずしも実施されるとは限らない。
本発明の一実施形態においては、非同期回路設計と同期回路設計との間の変換を実行するための方法およびシステムが提供され、一方法は、
同期設計を識別するステップと、
同期設計の同期ネットリストを生成するステップと、
同期ネットリストを非同期設計に変換するステップと、
を備える。
同期回路設計の表現から非同期回路設計の表現への、および、非同期回路設計の表現から同期回路設計の表現への最適化され、自動化され、そして、非対話型である変換を提供することによって、本発明は、従来の電子設計自動化(EDA)ツールが非同期設計を処理および操作するのを可能にし、それと同時に、非同期ハードウェアソリューションを用いて、同期設計を実装するのを可能にする。また、本発明は、技術者による設計処理の最適化および反復のために、同期表現における同期設計ツールへのフィードバックを助ける。また、本発明による方法は、変換される回路の一次入力および一次出力において同期がとられているという錯覚を維持することができる。
同期設計表現から非同期設計表現へ変換されたとき、その非同期設計表現は、例えば、フィールドプログラマブルゲートアレイ(FPGA)の形で、一般的な技術を用いてハードウェア回路内へ直接に組み立てられてもよいことが理解できるはずである。
本発明は、同期設計を同じ機能を備えた非同期設計に変換するための方法である。この方法は、それぞれのクロック領域の周波数が予め既知でありさえすれば任意の数のクロック領域を備えた回路をこの方法が変換できるという点において、汎用的なものである。また、この方法は、クロックゲーティング、立ち上がりエッジトリガーフリップフロップおよび立ち下がりエッジトリガーフリップフロップを組み合わせたもの、さらには、ラッチのような共通機能を取り扱うことができる。さらに、この方法は、非同期信号を完全に同期したものとして動作させることを提供することを含む。このことは、回路のコア実装の非同期性を隠すために、回路の一次入力および一次出力に適用されてもよく、あるいは、設計の同期スキャンテストまたは同期デバッグを可能にするために、何らかの中間信号に適用されてもよい。
アルゴリズムへ入力されるものは、合成に通常必要とされる付加的補助情報を備えた同期ネットリストの記述である。この情報は、いくつかのクロックおよびそれらの周波数のセット(1つのクロック信号の場合、周波数は必要とされない)、マルチサイクルパス(必要であれば)のセット、および、適切なクロックに関する入力信号および出力信号に対する制約を含む。さらにまた、同期した状態に維持されなければならない信号が、指示される。デフォルト設定によって、アルゴリズムは、すべての一次入力および一次出力は同期した状態にあると仮定する。具体的に説明するために、同期ネットリストが、Synplicity社のSynplify ProTMまたはMentor Graphics社のPrecision SynthesisTMソフトウェアパッケージのような既存の合成ツールによって生成される場合について論議する。
この分野においてよく知られているように、Synplify ProTM、および、Precision SynthesisTMは、それぞれ、典型的なフィールドプログラマブルゲートアレイ合成ツールを備え、この合成ツールの機能は、レジスタ転送レベル回路動作をFPGA設計実装に変換することである。そのようなツールによって生成されたネットリストは、電子回路の実際の接続性を記述するのに使用される。
同期ネットリストは、組み合わせ論理であるゲートのセット、および、状態を保持しているゲートのさらなるセットを含む。4つの種類の状態保持ゲート、すなわち、立ち上がりエッジトリガーフリップフロップ(PFLOP)、立ち下がりエッジトリガーフリップフロップ(NFLOP)、それらのクロック入力がHレベルであるときに透過であるラッチ(PLATCH)、および、それらのクロック入力がLレベルであるときに透過であるラッチ(NLATCH)を考える。合成ツールは、生成されたクロックを除去し、そして
、それらのクロックをクロックの組み合わせおよびクロックイネーブルに置き換えてもよいので、単純化のために、状態保持エレメントによって使用されるすべてのクロック信号は回路への一次クロック入力であると仮定する。この実装は、同期ネットリストを表現するための言語としてEDIF200規格を使用するが、その他の何らかの言語、例えば、VerilogTMが、同じように使用されてもよい。
この分野においてよく知られているように、EDIFは、電子設計相互変換フォーマットを表現しており、電子ネットリストおよび回路図を記憶するための中立フォーマットとして圧倒的に使用されてきた。EDIFフォーマットは、メーカー独自のフォーマットを中立フォーマットに標準化する。EDIF200は、初期にリリースされたフォーマットを表現し、その後に、EDIF300およびEDIF400によって補完されてきた。
本発明の変換方法の上位フローが、図1に示される。ここで、図1(ブロック図を示す)および図7(処理700を示す)を参照すると、ツールフロー全体への入力が、VerilogTM112、VHDLTM114、C−Like入力116、MATLAB/LABVIEW118、または、同期合成ツール(702)によってサポートされる何らかのその他の言語のような既存のハードウェア記述言語(HDL)110として記述される。既存のツール100は、高級記述をシミュレーションし、さらには、その高級記述を、EDIF200を含む様々なフォーマットとして、同期ネットリスト内に合成するのに使用されてもよい。
説明される本発明の実施形態においては、EDIFを入力とするツール102、さらには、EDIF内の“ブラックボックス”モジュール(例えば、EDIFセル名“AND2”は2入力ANDゲートであるという事実、など)、および、それぞれの合成ツールごとに変化するEDIFフォーマットに関するいくつかの細部を指示するテーブルが、実装される。EDIFフォーマットから標準化されたネットリストフォーマットへの変換(ステップ704)は、上述した合成ツール100Aの中の1つを用いて、標準的な処理102Aにおいて実行される。EDIF読み出し器102の最終的な出力は、標準化された同期ネットリスト101である。同期ネットリスト101は、上で簡単に説明された必要なすべての情報を含む。また、クロック、クロックイネーブル、PFLOP、NFLOP、PLATCH、および、NLATCHを含めて、設計の異なる部分を識別することは、きわめて容易なことである。なぜなら、既存の合成ツール100によって生成されたEDIFは、明確に標識されたこれらのエンティティーを有するからである。
この分野において知られているように、ツール102内に存在する.confファイルは、合成ツールの出力フォーマットを指示する環境設定ファイルであり、.xlファイルは、合成ツールによって使用されるライブラリーエレメントの記述を含むライブラリーファイルである。.anfファイルは、結果として得られた同期ネットリストを含む。この情報を指示するためには、どのようなファイルフォーマットが使用されてもよく、あるいは、必要な情報は、変換ツール102A自身に組み込まれてもよい。
継続して図1を参照すると、同期ネットリスト101は、その後、同期非同期変換メソッド103を用いて、非同期フォーマット104に変換され、その非同期フォーマットは、例えば、データフローグラフの形態を有する(ステップ706)。この非同期実装は、実行される計算の点から見れば、同期実装に等価である。説明される変換メソッドは、以下で説明されるように、元々の同期表現の要件と比較してデータフローグラフのタイミング設計を検証する(ステップ710)ためのアノテーション生成器105を用いて(ステップ708)、非同期実装の動作特性を同期領域に逆変換するアノテーションを生成するためのメソッドを含む。これは、例えば、入力および出力の同期図を生成するために非同期データフローグラフの境界を画定することによって、実行されてもよい。したがって、本発明は、同期ネットリストを非同期実装に変換することを可能にし、さらには、アノテーション生成器が非同期領域から同期領域内へ動作特性をマッピングするのを可能にする。例えば、同期ネットリストがその中に変換されてもよいデータフローグラフとは異なるその他のフォーマットは、例えば、VerilogまたはVHDL、あるいは、それどころか、SystemC、Handel C、または、メッセージ転送動作(message−passing operation)によって補強されたCのようなその他の高級言語を使用するデータフローグラフの実装の詳細な記述を含む。当然ながら、当業者には明らかなように、言語の細部は制限されることはない。
ターゲット非同期ネットリストは、細粒度化非同期パイプラインまたは同期データフローパイプラインとして効率的に実装されてもよい回路を表現する。ターゲットネットリストは、データフローグラフとして表現される。データフローグラフ内に存在するノードは、トークンと呼ばれるデータ値に基づいて動作する。トークンは、パイプラインを流れることのできるデータアイテムである。トークンは、1ビット値または複数ビット値であってもよい。データフローグラフ内に存在する演算子は、それらの入力においてトークンを受信し、それらの出力においてトークンを生成する。トークンの値の変化は、結果を計算するのに使用される。演算子間の接続性は、トークンが送信および受信されてもよい通信チャンネルに対応する矢印によって指示される。通信チャンネルは、バッファリングすることはなく、ランデブー同期に対応するチャンネルにおいてトークンを送信および受信する。
この分野において知られているように、細粒度化非同期パイプラインは、非同期チャンネルを介して通信する論理回路の小さなセルを備え、束データ方式パイプラインと比較すれば、ロバストネスおよび高いスループットという利点を提供する。
データフローグラフの基本的なビルディングブロックが、図2に示され、かつ、ここで、図2を参照して説明される。計算するための基本ユニットは、関数ブロック201であり、これは、任意の数の入力と1つの出力とを有する。関数ブロックは、それのすべての入力からトークンを受信し、指示された関数を計算し、そして、関数の結果をそれの出力における出力トークンとして生成する。それらの関数ブロックが有する入力の数およびそれらの関数ブロックが実行する演算が様々に異なる、多くの異なる種類の関数ブロックが、存在してもよい。ソース204は、それの出力においてトークンの無限のストリームを生成する演算子であり、そのトークンは、常に、同じ値を有する。シンク205は、入力トークンをただ単に消費する演算子である。コピー206は、それの入力において受信されたトークンをそれのすべての出力に複製するブロックである。イニシャルブロック207は、トークンをそれの出力に送信することによって開始し、その後に、入力トークンをそれの出力にコピーする。これらのブロック201、204、205、206、および、207は、繰り返して、それらの入力(もしあれば)のそれぞれにおいて1つのトークンを受信し、そして、1つのトークンをそれらの出力(もしあれば)のそれぞれに送信する。
マージブロック202は、2つの種類の入力、すなわち、データ入力(他のすべてのブロックと同じような)と特別な制御入力208とを有する。制御入力の値は、トークンが受信されるデータ入力を指示する。そして、このトークンは、マージの出力に送信される。スプリットブロック203は、2つの関数を有する。スプリットブロック203は、それの制御入力209において制御値を受信し、また、それのデータ入力においてデータ値を受信する。これは、制御入力の値によって指示される出力チャンネルにそのデータ値を送信する。
この分野において知られているように、データフローグラフは、情報システム、ここで
は非同期回路またはゲートアレイを流れるデータフロー、のグラフ表現である。上述したように、図2に示される様々なエレメントは、データフローグラフを組み立てるための基本的なビルディングブロックであり、それらのいくつかは、以下で詳細に説明される。
図3Aは、xの値が(x+ab)に置換され、かつこの更新された値が出力に提供される算術演算に対応する例としてのデータフローグラフを示す。入力トークンが、入力aおよびbに到達し、そして、それらは、MULTによってお互いに乗算され、そして、関数ADDを用いて、xの現在値に加算される。この更新された値は、出力に提供され、さらには、加算器ADDの入力にフィードバックされる。さらなる入力cを入力とするこの演算の変更されたバージョンが、図3Bに示される。図3Bにおいて、スプリットおよびマージが、値cを出力に転送するかどうかの選択肢を提供するための制御信号と組み合わせて使用される。cが、ゼロであれば、xの現在値は、0に置換され、そうではなく、cが、1であれば、データフローグラフは、図3(a)に示されるものと同じように動作する。
同期非同期変換アルゴリズムは、同期ネットリストを、同じ計算を実行するデータフローグラフ内にマッピングする。それぞれの信号は、データフローグラフのエッジ(edge)(図3に示される標識されたエッジのような)にマッピングされ、同期ネットリストとは異なるゲートは、データフロー演算子に変換される。
・ 複数クロック領域またはクロックゲーティングの存在しない変換
ここで、図8を参照すると、基本的な変換処理(図8に符号800として示され、同期HDL設計を非同期ネットリストに変換するための上述した処理を拡張したものである)が、1クロック領域に存在し、かつ状態保持エレメントのどれもがクロックゲーティングされない同期回路にどのように作用するかがわかるはずである。アルゴリズムは、同期回路によって実行される計算を決定することによって、その後に、データフローグラフを用いて、同じ計算を実装することによって、作用する。まず最初に、同期論理関数を識別する(802)。SPF、SNF、SPL、および、SNLは、それぞれ、すべてのPFLOP、NFLOP、PLATCH、および、NLATCHであるとする。それぞれのゲートgごとに、入力信号in(g)および出力信号out(g)を有する。基本的なアルゴリズムは、1クロック領域およびクロックゲーティングが存在しないことに対応しているので(804)、クロックおよびクロックイネーブル入力を無視し、したがって、使用されるクロックイネーブル入力は、存在しない。out(SPF)におけるそれぞれの信号は、クロックの立ち上がりエッジによって更新され、out(SNF)におけるそれぞれの信号は、クロックの立ち下がりエッジによって更新される。out(SPL)におけるあらゆる信号は、クロックがHレベルにあるときに更新され、その安定状態は、クロックがHレベルからLレベルへトランジションするときにラッチされる。out(SNL)におけるあらゆる信号は、クロックがLレベルにあるときに更新され、その安定状態は、クロックがLレベルからHレベルへトランジションするときにラッチされる。以下で説明される変換方法は、理想的な状態保持エレメントの動作を仮定する。
ラッチとフリップフロップとを混合することは、結果がタイミングに依存するかもしれないことから、誤りを発生しやすいので、組み合わせ論理は、例えば、きわめて高速であると仮定するポリシーを採用し、これは、たとえPLATCHの出力が組み合わせ論理を介して別のPLATCHに接続されていても、この基本変換方法は、組み合わせ論理による遅延はレーススルー(race−through)が発生するほど十分に小さいと仮定すること(806)を意味し、すなわち、信号値は、考察される同期論理関数の種類に依存して、1クロックサイクルまたは1/2クロックサイクル以内に論理エレメントを介して伝搬すると仮定することを意味する。“理想的”な組み合わせ論理遅延(すなわち、ほぼゼロ)を仮定するこのモデルは、良く知られており、同期回路の関数動作をシミュレー
ションするときに一般的に使用される。レーススルーが発生しない場合も網羅するようにアルゴリズムを拡張することはきわめて簡単なことであり、そのことも論議するつもりである。さらに、レーススルーサイクルは存在しないと仮定する。言い換えれば、あらゆるサイクルは、フリップフロップか、またはPLATCHおよびNLATCHの両方のうちいずれかを含むと仮定する。
組み合わせ論理の接続されたゲートを、実行される演算に対応する関数のグループに分ける(808)。状態保持エレメントへの入力信号sごとに、関数fs(x)を有し、ここで、xは、sを決定する信号であり、fsは、sを生成する組み合わせ論理に対応する関数である(fsは恒等関数であってもよいことに注意されたい)。変数xは、状態保持エレメントの出力である。組み合わせ論理は、常に、演算“s:=fs(x)”を実行しており、以下においては、この種の組み合わせ論理代入は変数をxに代入した直後に実行されると仮定する。この実行は、論理の発火(ファイヤリング;firing)である。次に、計算がすべての状態保持エレメントの入力および出力を更新するときのその計算について説明する(810)。
クロックがLレベルであるサイクルの開始時点において、クロックによってなされた最後のアクションは、HレベルからLレベルへのトランジションであった。したがって、最初に発生することは、NFLOPのすべての出力が入力の現在値によって更新されることである。言い換えれば、それぞれのNFLOPごとに代入“y:=yin”を実行し、ここで、yinは、フロップへの入力であり、yは、フロップからの出力である。すべての従属する組み合わせ論理が、発火する。最後に、代入“y:=yin”が、すべてのNLATCHに対して実行される。なぜなら、ラッチはオープンの状態にあるからである。再度、すべての従属する論理が、発火する。もう一方の1/2サイクルは、対称であり、PFLOPおよびPLATCHを検査する。この一連の演算は、同期回路の演算を忠実に模倣するものである。
すべての状態保持エレメントの初期値は、同期回路のグローバルリセット信号がアサートされたときのその同期回路の状態によって指示される。初期値が、不特定なものであれば、任意の値を選択してもよい。念のために、あらゆる状態保持エレメントの出力に初期値を代入することによって計算を開始する。
上述した形態で書かれた計算の仕様が得られると、これを非同期データフローグラフに変換すること(ステップ812)は簡単なことであり、その非同期データフローグラフから、非同期回路ネットリストが、生成される(ステップ814)。例としての変換アルゴリズムは、静的トークン形式表現を使用し、そして、上述した計算からデータフローグラフを生成することである。これらのアルゴリズムは、この変換を実行するために開発された公開されている方法である。例えば、“Static Tokens: Using Dataflow to Automate Concurrent Pipeline
Synthesis,Teifel,John and Manohar,Rajit,Computer Systems Laboratory,Cornell University,Ithaca,NY 14853”を参照されたい。
必要であれば、非同期データフローグラフは、その後、例えば、“Automated
Synthesis for Asynchronous FPGAs、Peng,Song,Fang,David,Teifel,John,and Manohar,Rajit,Computer Systems Laboratory,Cornell
University,Ithaca NY 14853”に簡単に説明される方法を用いて、FPGAネットリストに変換されてもよい。
設計が、立ち上がりエッジトリガーフリップフロップおよび組み合わせ論理を含む特別な場合においては、この変換の結果は、以下のように簡単に説明することができる。(i)あらゆる組み合わせ論理ゲートをデータフロー関数ブロックに置換し、ここで、その関数は論理ゲートの真理値表を実施する。(ii)あらゆるフリップフロップを、フリップフロップの初期値に対応する初期トークンに置換する。結果として得られる非同期データフローグラフは、同期回路の妥当な実装であり、これまでに簡単に説明された詳細な記述は、このグラフを提供する。
・ 複数クロック領域変換
複数クロック領域の存在は、問題をそれほど複雑にするものではない。異なるクロック領域からの2つの状態保持エレメント間の接続点において問題が発生するだけである。クロックサイクルタイムはお互いの有理倍数(rational multiples)であると仮定する。実際にそうであれば、計算内に存在するすべてのサイクルタイムの最小公倍数に対応する反復周期を見つけ出すために、計算を静的に展開することができる。この時、状態保持エレメントをそれぞれのクロック領域から分離した状態に維持しなければならないことを除けば、上で簡単に説明したアルゴリズムと同じものを使用してもよい。計算におけるそれぞれの“ステップ”は、次のクロック信号における変化に対応する。しかるべきラッチ変数およびフロップ変数は、これまでに述べたように更新されるが、変化したクロック領域に対してだけである。
・ クロックゲーティングおよび暗黙のゲーティング
ゲーテッドクロック(gated clock)を備えた状態保持エレメントは、2つのやり方で変換されてもよい。すなわち、(i)MUX変換(PFLOPのための例が図4に示される)を使用し、それによって、ゲーテッドクロックを完全に除去することにより、ゲーティングを除去することによる方法。(ii)PFLOPの出力を条件付き信号にするために、ゲーティング情報を使用することによる方法。第1の選択肢は、その結果として、上述した方法を用いて変換されることの可能な回路を提供する。第2の選択肢は、次により詳細に説明される別法である。選択肢2において検査している合成が簡単なクロックゲーティングよりも汎用的であることを示すために、MUX変換された回路によって開始する。
図4は、PFLOPのためのMUX変換を示す。元々のPFLOPが、図4Aに示され、そのデータ入力401およびクロックイネーブル403を備える。クロックイネーブルを備えない同一機能を実装するために、MUX405が、提供される。PFLOPの元々の出力Qは、MUXの“0”入力に供給され、元々の入力402は、MUXの“1”入力に接続される。最後に、元々のクロックイネーブル信号CEは、MUXの制御入力404に接続される。これは、元々のクロックゲーテッドフリップフロップと同じ計算を実装する。
MUX405は、次の状況の特別な場合である。組み合わせ論理がいくつかの入力信号の値に依存しない場合が存在する。MUX405の場合においては、CE信号404が、Lレベルであるとき、MUXの出力は、信号402に依存することはなく、同様に、CEが、Hレベルであるとき、出力は、信号Qに依存しない。信号404は、制御述語(control predicate)と言われる。
制御述語は、以下のように条件付きブロックを生成するのに使用されてもよい。関数f(c;x)によって記述される組み合わせ論理ブロックを考え、ここで、信号cは、制御述語であり、xは、組み合わせ論理の出力を計算するのに必要な信号の残りに対応するベクトルである。fに対するシャノン展開は、cf(1;x)+(〜c)f(0;x)と書くことができ、ここで、〜cは、cの補集合であり、+は、ORを意味し、乗算は、AN
Dを意味する。組み合わせ論理の出力が、信号yであれば、基本変換方法は、“y:=f(c;x)”の形式の代入を含む。これらは、以下の条件付き代入に置換することができる。

IF c THEN y:=f(1;x)
ELSE y:=f(0;x) ENDIF

cは、制御述語であるので、この文の中に存在するfの2つのバージョンは、両方とも、ベクトルxとして指示されるすべての入力を必要とするわけではないことに注意されたい。そのような文は、上で簡単に説明された静的トークン形式アルゴリズムを用いて変換される場合、結果として、データフロー変換中に生成された条件付きブロックを提供する。ベクトルの一部は、条件付きであるかもしれないが、信号cは、条件付きではないことに注意されたい。
この分野においてよく知られているように、シャノン展開は、恒等式、

F=x*F+x’*Fx’

によってブール関数を減少させることができるという概念を発展させたものである。
この処理は、さらに、ネスティングされてもよいが、常に、無条件の初期制御述語が、存在し、それに続いて、ネスティングされた一連の条件付き制御述語が、存在する。ネスティングされた制御述語の無条件バージョンは、最も外側のIF文の外側に存在する条件付き述語のレプリカをただ単に生成することによって、容易に生成することができる。
上述した条件を備えた計算を与え、さらに、最適化が適用されてもよい。これらの最適化は、コンパイラー業界において、とりわけ、述語コンパイルするときおよびプログラムを逆IF変換するときに実行される作業において、知られている。元々の代入“y:=f(c;x)”とIF文を備えたバージョンのどちらかを実装することを選択する。両方を実装することは、妥当なことであり、また、どちらか一方を選択してもよい。
上述したすべての場合において、変換は、同期ネットリストからデータフローグラフへの直接変換(一対一のマッピング)を提供するので、変換は、可逆的なものであることに注意されたい。
・ 同期信号への変換および同期信号からの変換
同期設計からデータフローへおよびデータフローから同期設計へ変換する方法およびシステムが、これまでに説明された。ここで、図9を参照して、データフローと同期設計との間の変換を実行するためのより詳細な処理について説明する。データフローグラフは、マークグラフ(marked graph)およびイベントルールシステムを含めた様々な技術を用いて、タイミング解析を容易に施すことができる。両方の技術は、その結果として、計算のサイクル周期に対する解析表現を提供する。この周期は、計算が進行してもよい(および、計算が進行するはずである)最小サイクルタイムを決定する。データフロー設計から同期領域への信号の逆変換は、同期結果がデータフロー計算の速度よりも低い周波数で必要とされる場合にのみ発生することができる。
この分野において知られているように、マークグラフは、ペトリネット(Petri net)の特別な状態であり、あらゆるプレース(place)は、1つの入力アーク(arc)および1つの出力アークを有し、そのために、競合は存在することはないが、同時並列性が存在することがある。ペトリネット自身は、プレース、トランジション、および、プレースとトランジションとの間に存在する有向アークからなるネットである。マークグラフが、計算時間を決定するために、非同期論理回路および/またはデータフローグラフを表現するのに使用されてもよい。イベントルールシステムは、イベントタイミングすなわち非同期回路タイミングを決定するために、ペトリネット解析に基づいた類似する確率論的技術を使用する。例えば、“Stochastic Cycle Period Analysis in Timed Circuits,Mercer,Eric G and Myers,Chris J., Electrical Engineering Department,University of Utah”を参照されたい。
データフロー値を同期値に変換するために、2つのアイテムが、必要とされる。すなわち、(i)トークンが生成されるときの条件(条件トークンと呼ばれる)を指示するデータフロー述語。(ii)トークンが生成されるデータフローチャンネル(データトークン)(ステップ902)。これらのアイテムの両方は、上述した変換方法を介して保存される。同期出力を生成するのにこれらの2つのトークンを使用してもよい多くの方法が、存在する。
この分野において知られているように、条件トークンは、データ値がデータ入力によって生成されようとしているかどうかを指示するブール値を有するデータトークンである。同様に、データトークンは、計算によって生成された値であるが、条件付きでしか生成されない。そのために、例えば、条件トークン値が、0であれば、データトークンは、計算からは期待できない。しかしながら、条件トークン値が、1であれば、正しいデータ値を保持する計算から妥当なデータトークンを期待することができる。
条件トークンは、データが同期させられるクロック信号を超える平均周波数で生成されることがわかるはずである。しかしながら、パイプラインダイナミクスのために、条件トークンのタイミングにおける短期間変動が、存在するかもしれない。これらの変動を考慮に入れるために、条件トークンを保持するk−プレースFIFO(k−place FIFO)を含み、かつ、データトークンを保持する別のFIFOを含む(904)。kの値は、データフローグラフのダイナミクスの解析によって決定される。FIFOを使用することは、周波数における変動を除去する。
条件付きデータを無条件データに変換するために(1クロックエッジあたり1データアイテムに対応する)、データの初期値を知らなければならない。この値は、計算の初期状態によって容易に決定される(ステップ906)。最後に、あらゆるクロックエッジにおける出力信号の値に一致する無条件データトークンを生成するために、非対称MERGEエレメントを使用する(ステップ908)。図5は、同期設計を記述する無条件データトークンを生成するために、非同期設計からの変換を実行するのに必要な回路を説明する図である。
図5を参照すると、データFIFOの出力は、非同期データフローデータ信号501であり、このデータ信号501は、非対称MUX504の“1”で標識された入力に接続される。条件FIFOの出力は、データフロー信号502である。データの初期値は、初期トークン503に記憶される。非対称MUX504の出力は、逆戻りして、それの非対称入力505に接続される。非対称MUXは、以下のように動作する。すなわち、非対称MUXは、常に、条件入力502および非対称データ入力505においてトークンを受信する。条件トークンが、“1”であれば、MUXは、データ入力501において別のトークンを受信し、そして、その値をMUXの出力に提供し、条件トークンが、“1”でなければ、MUXは、自身がその非対称入力505において受信した値をその出力に送信する。これは、条件付きデータトークンストリームを無条件トークンストリームに変換し、その
無条件トークンストリームは、CLK−WAITブロック506に送信される。クロック507の立ち上がりエッジまたは立ち下がりエッジの直後に出力が生成されるかどうかに依存して、CLK−WAITブロックは、しかるべきクロックエッジが到達するのを待ち、そして、CLK−WAITブロックの入力において受信されたデータフロートークン値と同じ値を有する単一データ信号出力508を提供する。これは、データフロートークンをクロックエッジに効果的に整列させる。クロック入力の主たる機能は、ただ単に、出力信号の生成を遅延させ、同期出力領域において、1クロックサイクルあたりの複数信号変化を防止することである。最初のトークンがCLK−WAITブロックへの入力に到達していることを保証するために、クロック507を所定の数のサイクルだけ遅延させなくてはならないかもしれないこと(初期化に関して)に注意されたい。遅延量の上限は、決定論的なものであり、データフローグラフから決定されてもよい。最後に、出力信号が、特定のクロックエッジから所定のオフセットだけずれて生成されなければならない場合、遅延ロックループ(または、何らかのその他の遅延メカニズム)が、しかるべく遅延したバージョンのクロックを生成するのに使用されてもよく、そのクロックは、507に接続されるべきクロックの遅延したバージョンである。
非対称MUX504の設計における異なるいくつかの変形が、存在する。例えば、フィードバックを備えてはいないが局所的状態保持エレメントを備えている同じブロックを実装してもよく、その局所的状態保持エレメントは、出力に提供された最後の値を保持する。このレジスタは、データ信号の初期値によって初期化される。制御入力が、“0”であれば、レジスタの値は、出力に提供され、制御入力が、“1”であれば、レジスタの値は、入力501において受信されたデータによって上書きされ、この新しい値が、出力に送信される。
回路への一次入力が、同期して提供される場合、逆処理が必要とされる。さらに、図6を参照すると、データ信号とそのクロックとが、ともに、データトークン出力を提供するのに使用される。このトークンは、上の説明と同じようにして、指示されたクロックから所定のオフセットだけずれて(再度)生成される(すなわち、遅延ロックループまたはその他の技術を用いて、遅延したバージョンのクロックエッジを提供することによる)。回路は、一次入力からトークンを受信するデータフローグラフがその出力におけるトークンが決して阻止されることがないほど十分に高速に動作すると仮定する。このことは、入力が非同期データフロー計算の周波数よりも低い速度で到達する場合にも言えるものとする。この構造は、1クロックエッジあたり1データトークンをデータフローグラフに送り込む。
クロックからトークンへの変換603、非対称MUX504、および、CLK−WAITブロック506のための具体的な回路実装は、データフロートークンの表現の特定の細部に依存する。
読者は、これまでに説明された変換の原理を実現するのに使用することのできる多くの技術が存在することを理解できるはずである。これらの技術は、同期計算をデータフロー実装に変換するのに使用されてもよいプログラム変換および/または書き換えシステム、および、グラフ型表現のプログラムを使用し、また最適化およびグラフ再構成のためにコンパイラー解析を使用するコンパイラーアプローチを含むが、これらに限定されない。
データフローグラフは、この分野においてよく知られている様々な技術を用いて実装されてもよい。これらの技術の例には、それぞれのデータアイテムに取り付けられたフロー制御のための有効なビットによって高度にパイプライン化(deeply pipelined)された、非同期論理および同期回路が含まれる。また、回路およびデータトークン表現の細部は、変更されてもよく、それによって、面積、性能、および、消費電力間に
おける様々なトレードオフが提供されてもよい。また、回路技術の混合が使用されてもよく、グラフの様々な部分は、インタフェースをとるための表現変換器を提供することによって、異なる回路技術によって実装される。そのような技術もまた、この分野においてよく知られている。
本発明は、同期回路表現を非同期回路表現に変換するための新しい改善された方法およびシステムを提供した。同期回路設計の表現から非同期回路設計の表現への、および、非同期回路設計の表現から同期回路設計の表現への、最適化され、自動化され、そして、非対話型である変換を提供することによって、本発明は、従来の電子設計自動化(EDA)ツールが非同期設計を処理および操作するのを可能にし、それと同時に、非同期ハードウェアソリューションを用いて、同期設計を実装するのを可能にする。また、本発明は、技術者による設計処理の最適化および反復のために、同期表現における同期設計ツールへのフィードバックを助け、技術者が、基礎をなすハードウェア実装の基礎をなす非同期アーキテクチャーを意識する必要性を除去する。
本発明が、特定の実施形態に関して、図示および説明されたが、図示および説明されたものに限定されない。ここで、読者は、本発明の範囲内において、多くの変形、変更、および、改良を考えることができるはずである。
本発明のこれらのおよびその他の目的、特徴、および、利点が、添付の図面を参照して以下の発明の詳細な説明を考察することによって明らかとなるはずである。
本発明による処理を説明するフローチャートである。 回路エレメントを示す図であり、そのエレメントの機能は、以下で説明される。 回路を示す図であり、これらの回路の機能は、以下で説明される。 回路を示す図であり、これらの回路の機能は、以下で説明される。 回路エレメントを示す図であり、その回路エレメントの機能は、以下で説明される。 回路内に組み込まれた図4Aに示される回路エレメントを示す図であり、その回路エレメントの機能は、以下で説明される。 回路を示す図であり、その回路の機能は、以下で説明される。 回路ブロック図であり、その回路の機能は、以下で説明される。 同期回路設計の表現と非同期回路設計の表現との間の変換を実行するための処理の概要を示すフローチャートである。 非同期ネットリストを非同期データフローグラフに変換するための処理のフローチャートである。 非同期設計表現を同期設計表現へ変換するための処理のフローチャートである。

Claims (23)

  1. 非同期回路設計と同期回路設計との間の変換をコンピュータが実行する方法であって、
    複数クロック領域を備えた同期設計を識別するステップと、
    前記同期設計の同期ネットリストを生成するステップと、
    前記同期ネットリストを非同期設計に変換するステップと、
    を備え、
    前記変換するステップは、すべてのサイクルクロックタイムの最小公倍数に対応する反復周期を決定することを含む方法。
  2. 前記同期ネットリストは、発生源の電子設計インタフェースフォーマットからのモジュールを含む標準化された同期ネットリストを備える請求項1に記載の方法。
  3. 前記非同期設計の非同期設計表現は、データフローグラフ、データフローグラフの実装の詳細な記述、または、高級言語を含むグループの中から選択される請求項1に記載の方法。
  4. 前記変換するステップは、前記非同期設計のタイミング特性を検証するように前記非同期設計の動作特性を同期領域へ逆変換するアノテーションを生成することを含む請求項1に記載の方法。
  5. 前記非同期設計は、トークンとして表現されたデータを含むデータフローグラフを備える請求項1に記載の方法。
  6. 前記同期ネットリストは、同期クロック、同期クロック周波数、マルチサイクルパス、入力制約、または、出力制約からなるグループの中の少なくとも1つを含む請求項に記載の方法。
  7. 前記同期ネットリストは、組み合わせ論理ゲートおよび状態保持論理ゲートを含む請求項に記載の方法。
  8. 前記データフローグラフは、関数ブロック、ソースブロック、シンクブロック、コピーブロック、マージブロック、または、イニシャルブロックを含むグループの中の少なくとも1つを含む請求項に記載の方法。
  9. 前記同期設計は、単一クロック領域を備え、
    前記変換するステップは、
    クロックおよびクロックイネーブル入力を無視するステップと、
    組み合わせ論理を演算ごとのグループに分けるステップと、
    前記組み合わせ論理の論理計算を指示するステップと、
    を含む請求項に記載の方法。
  10. 理想的な論理遅延および理想的な状態保持エレメントを仮定するステップをさらに含む請求項に記載の方法。
  11. 態保持エレメントをそれぞれの前記クロック領域から分離した状態に維持するステップをさらに含む、
    請求項1に記載の方法。
  12. 前記同期設計は、ゲーテッドクロックを備えた状態保持エレメントを含み、
    前記変換するステップは、MUX変換の置換によってゲーティングを除去するステップ、または前記状態保持エレメントの出力を条件付き信号にするためのゲーティング情報を使用するステップを含むグループの中の少なくとも1つを含む請求項に記載の方法。
  13. 非同期設計における選択された非同期組み合わせ論理関数のために、
    前記選択された非同期組み合わせ論理関数のための条件トークンおよびデータトークンを識別するステップと、
    前記条件トークンおよび前記データトークンをバッファリングするステップと、
    前記非同期組み合わせ論理関数を同期組み合わせ論理関数に逆変換するように、前記選択された非同期組み合わせ論理関数のクロック信号ごとに、前記選択された非同期組み合わせ論理関数の出力の値に一致する無条件データトークンを生成するステップと、
    をさらに含む、
    請求項に記載の方法。
  14. 前記非同期設計の非同期設計表現は、同期入力信号および同期出力信号を含む請求項1に記載の方法。
  15. 非同期ネットリストを前記非同期設計に基づいて生成するステップをさらに含み、
    前記非同期ネットリストは、フィールドプログラマブルゲートアレイ上に前記非同期設計を実装するために用いられるものである請求項1に記載の方法。
  16. 前記データフローグラフは、同期論理を用いて実装される請求項に記載の方法。
  17. 非同期回路設計と同期回路設計との間の変換を実行するためのシステムであって、
    複数クロック領域を備えた同期設計ファイルと、
    前記同期設計ファイルを受信し、かつ前記同期設計の同期ネットリストを生成するように接続された合成ツールと、
    前記同期ネットリストを受信し、かつ前記同期ネットリストを前記非同期設計に変換するように接続された変換器と、
    を備え、
    前記変換器は、すべてのサイクルクロックタイムの最小公倍数に対応する反復周期を決定するように構成されたシステム。
  18. 前記同期ネットリストは、発生源の電子設計インタフェースフォーマットからのモジュールを含む標準化された同期ネットリストを備える請求項17に記載のシステム。
  19. 前記非同期設計の非同期設計表現は、データフローグラフ、データフローグラフの実装の詳細な記述、または、高級言語を含むグループの中から選択される請求項17に記載のシステム。
  20. 前記非同期設計を受信し、かつ前記非同期設計のタイミング特性を検証するように前記非同期設計の動作特性を同期領域に逆変換するアノテーションを生成するように接続されたアノテーション生成器をさらに含む請求項17に記載のシステム。
  21. 前記非同期設計は、トークンとして表現されたデータを含むデータフローグラフである請求項17に記載のシステム。
  22. 非同期回路設計と同期回路設計との間の変換を実行するためのシステムであって、
    複数クロック領域を備えた同期設計を識別するための手段と、
    前記同期設計の同期ネットリストを生成するための手段と、
    前記同期ネットリストを非同期設計に変換するための手段と、
    を備え、
    前記変換するための手段は、すべてのサイクルクロックタイムの最小公倍数に対応する反復周期を決定するための手段を含むシステム。
  23. 非同期回路設計と同期回路設計との間の変換を実行するためのコンピュータを、
    複数クロック領域を備えた同期設計を識別する手段
    前記同期設計の同期ネットリストを生成する手段
    前記同期ネットリストを非同期設計に変換する手段
    として機能させるためのプログラムであって
    前記変換する手段は、すべてのサイクルクロックタイムの最小公倍数に対応する反復周期を決定する手段を含むプログラム。
JP2009507982A 2006-04-27 2007-04-27 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法 Active JP5045961B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US79612606P 2006-04-27 2006-04-27
US60/796,126 2006-04-27
US11/740,184 2007-04-25
US11/740,184 US7610567B2 (en) 2006-04-27 2007-04-25 Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
PCT/US2007/067618 WO2007127914A2 (en) 2006-04-27 2007-04-27 Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs

Publications (3)

Publication Number Publication Date
JP2009535718A JP2009535718A (ja) 2009-10-01
JP2009535718A5 JP2009535718A5 (ja) 2010-07-01
JP5045961B2 true JP5045961B2 (ja) 2012-10-10

Family

ID=38649745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009507982A Active JP5045961B2 (ja) 2006-04-27 2007-04-27 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法

Country Status (5)

Country Link
US (2) US7610567B2 (ja)
EP (1) EP2024884B1 (ja)
JP (1) JP5045961B2 (ja)
KR (1) KR101061864B1 (ja)
WO (1) WO2007127914A2 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
US8234630B2 (en) * 2006-05-03 2012-07-31 The Mathworks, Inc. Calling an entity of a graphical model with a non-graphical entity and calling a non-graphical entity of a graphical model with a graphical entity
US20080005357A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Synchronizing dataflow computations, particularly in multi-processor setting
EP2098969A4 (en) * 2006-12-26 2013-01-02 Nec Corp LOGIC CIRCUIT DESIGN DEVICE FOR ASYNCHRONOUS LOGIC CIRCUITS, LOGIC CIRCUIT DESIGN METHOD, AND LOGIC CIRCUIT DESIGN PROGRAM
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
US8086975B2 (en) 2008-04-10 2011-12-27 University Of Southern California Power aware asynchronous circuits
US8448105B2 (en) * 2008-04-24 2013-05-21 University Of Southern California Clustering and fanout optimizations of asynchronous circuits
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
US7743175B1 (en) 2008-07-17 2010-06-22 Xilinx, Inc. Methods of initializing routing structures in integrated circuits
US7605604B1 (en) 2008-07-17 2009-10-20 Xilinx, Inc. Integrated circuits with novel handshake logic
US7759974B1 (en) 2008-07-17 2010-07-20 Xilinx, Inc. Pipelined unidirectional programmable interconnect in an integrated circuit
JP5409231B2 (ja) * 2008-09-26 2014-02-05 株式会社半導体エネルギー研究所 設計システム
US8296693B2 (en) * 2009-02-25 2012-10-23 Ati Technologies Ulc Method and apparatus for hardware design verification
US7746102B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Bus-based logic blocks for self-timed integrated circuits
US7746105B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Merging data streams in a self-timed programmable integrated circuit
US7746108B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Compute-centric architecture for integrated circuits
US7746109B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for sharing self-timed logic
US7746106B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for enabling feedback paths in a self-timed integrated circuit
US7746104B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Dynamically controlled output multiplexer circuits in a programmable integrated circuit
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
US7733123B1 (en) 2009-04-02 2010-06-08 Xilinx, Inc. Implementing conditional statements in self-timed logic circuits
US9411554B1 (en) 2009-04-02 2016-08-09 Xilinx, Inc. Signed multiplier circuit utilizing a uniform array of logic blocks
US7746110B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for fanning out data in a programmable self-timed integrated circuit
US7948265B1 (en) 2009-04-02 2011-05-24 Xilinx, Inc. Circuits for replicating self-timed logic
US7982496B1 (en) 2009-04-02 2011-07-19 Xilinx, Inc. Bus-based logic blocks with optional constant input
US9002915B1 (en) 2009-04-02 2015-04-07 Xilinx, Inc. Circuits for shifting bussed data
US8706793B1 (en) 2009-04-02 2014-04-22 Xilinx, Inc. Multiplier circuits with optional shift function
US7746111B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Gating logic circuits in a self-timed integrated circuit
US7746101B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Cascading input structure for logic blocks in integrated circuits
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
US7746103B1 (en) 2009-04-02 2010-06-29 Xilinx, Inc. Multi-mode circuit in a self-timed integrated circuit
US8423977B2 (en) * 2009-04-27 2013-04-16 National Instruments Corporation Implementing a class oriented data flow program on a programmable hardware element
US8191019B2 (en) * 2009-07-17 2012-05-29 Achronix Semiconductor Corporation Non-predicated to predicated conversion of asynchronous representations
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US8301933B2 (en) * 2009-09-14 2012-10-30 Achronix Semiconductor Corporation Multi-clock asynchronous logic circuits
US8661378B2 (en) * 2009-09-30 2014-02-25 Achronix Semiconductor Corporation Asychronous system analysis
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
US10157060B2 (en) 2011-12-29 2018-12-18 Intel Corporation Method, device and system for control signaling in a data path module of a data stream processing engine
FR2990283A1 (fr) * 2012-05-04 2013-11-08 Commissariat Energie Atomique Bibliotheque de cellules et procede de conception d'un circuit integre asynchrone
US8656326B1 (en) * 2013-02-13 2014-02-18 Atrenta, Inc. Sequential clock gating using net activity and XOR technique on semiconductor designs including already gated pipeline design
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9548736B2 (en) 2015-06-15 2017-01-17 The University Of Utah Research Foundation Relative timed clock gating cell
US9753486B2 (en) 2015-06-15 2017-09-05 University Of Utah Research Foundation Clock gating with an asynchronous wrapper cell
JP6663801B2 (ja) * 2016-06-15 2020-03-13 株式会社日立製作所 半導体lsi設計装置および設計方法
US11086816B2 (en) 2017-09-28 2021-08-10 Intel Corporation Processors, methods, and systems for debugging a configurable spatial accelerator
US11307873B2 (en) 2018-04-03 2022-04-19 Intel Corporation Apparatus, methods, and systems for unstructured data flow in a configurable spatial accelerator with predicate propagation and merging
US10891240B2 (en) 2018-06-30 2021-01-12 Intel Corporation Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
US11200186B2 (en) 2018-06-30 2021-12-14 Intel Corporation Apparatuses, methods, and systems for operations in a configurable spatial accelerator
US11037050B2 (en) 2019-06-29 2021-06-15 Intel Corporation Apparatuses, methods, and systems for memory interface circuit arbitration in a configurable spatial accelerator
US11451230B2 (en) 2020-04-23 2022-09-20 Xilinx, Inc. Compute dataflow architecture
US12086080B2 (en) 2020-09-26 2024-09-10 Intel Corporation Apparatuses, methods, and systems for a configurable accelerator having dataflow execution circuits
CN115061534A (zh) * 2022-05-09 2022-09-16 厉雷刚 无时钟异步电路、数据同步输出的方法、设备及介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272529A (en) * 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
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
EP1212706B1 (en) * 1999-08-19 2007-02-21 Massachusetts Institute Of Technology Synchronous circuit synthesis using an asynchronous specification
US6735709B1 (en) * 2000-11-09 2004-05-11 Micron Technology, Inc. Method of timing calibration using slower data rate pattern
US6690203B2 (en) 2000-12-29 2004-02-10 California Institute Of Technology Method and apparatus for a failure-free synchronizer
KR100399337B1 (ko) * 2001-02-07 2003-09-26 드림바이오젠 주식회사 단백질의 무세포 번역후수식법
US6950959B2 (en) * 2002-02-12 2005-09-27 Fulcrum Microystems Inc. Techniques for facilitating conversion between asynchronous and synchronous domains
US7296174B2 (en) * 2002-10-11 2007-11-13 Broadcom Corporation Apparatus and method to interface two different clock domains
US7039887B2 (en) 2002-10-15 2006-05-02 Cadence Design Systems, Inc. Method and apparatus for enhancing the performance of event driven dynamic simulation of digital circuits based on netlist partitioning techniques
US7149992B2 (en) 2002-10-23 2006-12-12 Via Technologies, Inc. Method for faster timing closure and better quality of results in IC physical design
TWI254579B (en) * 2003-01-02 2006-05-01 Mediatek Inc Signal processing method to selectively record image signal
US7134062B2 (en) 2003-08-12 2006-11-07 Via Telecom, Inc. Static timing analysis approach for multi-clock domain designs
US7157934B2 (en) 2003-08-19 2007-01-02 Cornell Research Foundation, Inc. Programmable asynchronous pipeline arrays
US7661101B2 (en) 2004-01-15 2010-02-09 Parametric Technology Corporation Synchronous and asynchronous collaboration between heterogeneous applications
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
US7617470B1 (en) 2005-10-11 2009-11-10 California Institute Of Technology Reconfigurable integrated circuit and method for increasing performance of a reconfigurable integrated circuit
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
US7504851B2 (en) 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US7505304B2 (en) 2006-04-27 2009-03-17 Achronix Semiconductor Corporation Fault tolerant asynchronous circuits
US8035748B2 (en) * 2006-07-12 2011-10-11 Broadcom Corporation Method and system for reducing composite video cross-chroma artifacts in movie material for a deinterlacer
US7594211B1 (en) * 2006-11-17 2009-09-22 Synopsys, Inc. Methods and apparatuses for reset conditioning in integrated circuits
US8065647B2 (en) * 2007-10-19 2011-11-22 The University Of Utah Research Foundation Method and system for asynchronous chip design
US20090119631A1 (en) * 2007-11-06 2009-05-07 Jordi Cortadella Variability-Aware Asynchronous Scheme for High-Performance Delay Matching
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
US8086975B2 (en) * 2008-04-10 2011-12-27 University Of Southern California Power aware asynchronous circuits
US8161435B2 (en) * 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US8301933B2 (en) * 2009-09-14 2012-10-30 Achronix Semiconductor Corporation Multi-clock asynchronous logic circuits
US8661378B2 (en) * 2009-09-30 2014-02-25 Achronix Semiconductor Corporation Asychronous system analysis

Also Published As

Publication number Publication date
KR101061864B1 (ko) 2011-09-02
WO2007127914A3 (en) 2008-05-08
JP2009535718A (ja) 2009-10-01
WO2007127914A2 (en) 2007-11-08
EP2024884B1 (en) 2019-07-24
KR20090009915A (ko) 2009-01-23
US20070256038A1 (en) 2007-11-01
US7610567B2 (en) 2009-10-27
EP2024884A4 (en) 2012-05-30
US8453079B2 (en) 2013-05-28
US20090319962A1 (en) 2009-12-24
EP2024884A2 (en) 2009-02-18

Similar Documents

Publication Publication Date Title
JP5045961B2 (ja) 同期回路設計の表現から非同期回路設計の表現へおよび非同期回路設計の表現から同期回路設計の表現への自動変換を実行するためのシステムおよび方法
US7500205B2 (en) Skew reduction for generated clocks
Mokhov et al. Conditional partial order graphs: Model, synthesis, and application
EP1964266B1 (en) A method for multi-cycle clock gating
KR20060063800A (ko) 집적 회로 개발 시스템
Mardari et al. Design and FPGA-implementation of asynchronous circuits using two-phase handshaking
US8661378B2 (en) Asychronous system analysis
Reese et al. Introduction to logic synthesis using Verilog HDL
US8161435B2 (en) Reset mechanism conversion
Hoover Timing-abstract circuit design in transaction-level Verilog
Dashkin et al. General approach to asynchronous circuits simulation using synchronous fpgas
JPH113367A (ja) デジタルシステムのインプリメント可能な記述を生成する設計環境および方法
Sartori et al. A frontend using traditional EDA tools for the pulsar QDI design flow
US8234607B2 (en) Token enhanced asynchronous conversion of synchonous circuits
US7982502B2 (en) Asynchronous circuit representation of synchronous circuit with asynchronous inputs
Vij Algorithms and methodology to design asynchronous circuits using synchronous CAD tools and flows
Van Leeuwen Implementation and automatic generation of asynchronous scheduled dataflow graph
Cohen Real chip design and verification using verilog and VHDL
Grout Electronic Circuit and System Design using Python and VHDL
Keswani Computational model for re-entrant multiple hardware threads
Necsulescu Automatic Generation of Hardware for Custom Instructions
Jeitler et al. Speeding up fault injection for asynchronous logic by fpga-based emulation
Rodionov Automated Interconnect Synthesis and Optimization for FPGAs
Sykora Composing data-driven circuits using handshake in the clock-synchronous domain
Lloyd et al. Asynchronous microprocessors: From high level model to FPGA implementation

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20091218

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7426

Effective date: 20091218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100426

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100426

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120314

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120314

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: 20120605

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: 20120703

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

Free format text: PAYMENT UNTIL: 20150727

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5045961

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250