(57)【要約】  ロジックデータを擬似同期的に多重化する方法及び装置を説明する。データ項目を設計クロックに対して非同期的に送信するマルチプレクサロジックの表現が生成される。データ項目は、第１の集積回路から第２の集積回路に送信クロックの制御下で送信することができる。データを非同期的に送信するためにマルチプレクサロジックに結合したカウンタロジックの表現を生成することができる。更に、カウンタロジックを繰返しリセットする構成に向けてリセットロジックの表現を生成することができる。データ項目を駆動する設計クロックの設計クロックサイクルに対して同期化信号を生成することができる。同期化信号は、設計クロックとは非同期の送信クロックによって送信することができる。データ項目は、送信クロックのクロックサイクルと設計クロックのクロックサイクルとに基づいて判断される複数の送信スロットを通じて送信することができる。ロジックデータを送信するための送信スロットにおける合計時間は、設計クロックのクロックサイクルよりも短いとすることができる。設計クロックのクロックサイクル内の１つ又はそれよりも多くの送信スロットは、設計クロックに従ってデータ項目を送信する新しいサイクルを示す同期化データを送信するのに使用することができる。【選択図】図１
2012533830.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムによって実行された時に該データ処理システムに電子システムを設計する方法を実行させる実行可能コンピュータプログラム命令を収容するコンピュータ読み取り可能な記録媒体であって、
前記方法が、
データ項目を送信クロックの制御下である一定の数の送信スロット内で設計クロックに対して非同期的に第１の回路から第２の回路に送信するマルチプレクサロジックの表現を生成する段階と、
前記設計クロックの設計サイクル内で非同期的に送信される前記データ項目を選択するために前記マルチプレクサロジックの前記表現に結合されたカウンタロジックの表現を生成する段階と、
前記カウンタロジックを繰返しリセットするように構成されたリセットロジックの表現を生成する段階と、
を含む、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項２】
前記カウンタロジックの繰返しリセットは、前記設計クロックのエッジから導出されることを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項３】
前記方法は、
前記設計クロックの周期内に前記データ項目を送信するための送信スロットの数を判断する段階であって、各送信スロットが、前記送信クロックのエッジから導出された期間に対応する前記判断する段階、
を更に含む、
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項４】
前記マルチプレクサロジックは、前記送信スロットの位置を示す同期化データを前記第２の回路に送信するように構成されることを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項５】
前記同期化データは、前記ロジックデータを送信するための前記数の送信スロットに続いて１つ又はそれよりも多くの送信スロット内で送信されることを特徴とする請求項４に記載のコンピュータ読み取り可能な記録媒体。
【請求項６】
前記方法は、
前記同期化データを生成するように構成された同期化ロジックの表現を生成する段階、
を更に含む、
ことを特徴とする請求項４に記載のコンピュータ読み取り可能な記録媒体。
【請求項７】
前記カウンタロジックは、複数の状態を含み、
前記マルチプレクサロジックは、前記複数の状態のうちの１つに基づいて、送信スロット内で送信される前記データ項目及び同期化データのうちの１つを選択する、
ことを特徴とする請求項４に記載のコンピュータ読み取り可能な記録媒体。
【請求項８】
前記マルチプレクサロジックは、前記カウンタロジックが前記設計クロックによって駆動される状態を変更した時に前記同期化データを送信することを特徴とする請求項７に記載のコンピュータ読み取り可能な記録媒体。
【請求項９】
前記マルチプレクサロジックは、前記設計クロックに対して非同期的に前記データ項目を送信するチャンネルに関連付けられ、
前記方法は、
複数のデータ項目を前記設計クロックに対して非同期的に並列に送信する複数のチャンネルの表現を生成する段階であって、該複数のチャンネルが、前記チャンネルを含み、該複数のデータ項目が、前記データ項目を含む前記生成する段階、
を更に含む、
ことを特徴とする請求項４に記載のコンピュータ読み取り可能な記録媒体。
【請求項１０】
前記チャンネルは、前記カウンタロジック及び前記リセットロジックに関連付けられ、
前記複数のチャンネルは、前記カウンタロジック及び前記リセットロジックを共有する、
ことを特徴とする請求項９に記載のコンピュータ読み取り可能な記録媒体。
【請求項１１】
前記チャンネルは、前記同期化データを送信し、
前記複数のチャンネルのうちの少なくとも１つは、前記チャンネルが前記同期化データを送信する間に同時に前記複数のデータ項目のうちの１つを送信する、
ことを特徴とする請求項１０に記載のコンピュータ読み取り可能な記録媒体。
【請求項１２】
前記第１の回路は、該第１の回路から外部に通信される複数のデータ項目を含み、
前記方法は、
前記複数のデータ項目に対してタイミング分析を実行する段階と、
前記複数のデータ項目を１つ又はそれよりも多くのデータ項目群にグループ分けする段階であって、該データ項目が、該データ項目群のうちの１つに属する前記グループ分けする段階と、
を更に含む、
ことを特徴とする請求項１に記載のコンピュータ読み取り可能な記録媒体。
【請求項１３】
前記タイミング分析は、
前記複数のデータ項目の各々を送信するために前記設計クロック周期内の可能な限り早期の時間スロットを識別すること、
前記データ項目を送信するために前記設計クロック周期内の可能な限り最新の時間スロットを識別すること、及び
前記識別された可能な限り早期かつ最新の送信スロットに基づいて前記複数のデータ項目に対するタイミング要件を生成すること、
を含む、
ことを特徴とする請求項１２に記載のコンピュータ読み取り可能な記録媒体。
【請求項１４】
前記方法は、
前記タイミング要件に従って前記データ項目の各信号を前記数の送信スロットのうちの１つに割り当てる段階、
を更に含む、
ことを特徴とする請求項１３に記載のコンピュータ読み取り可能な記録媒体。
【請求項１５】
前記方法は、
前記同期化データを初期化するために少なくとも１つの設計クロック周期に対して単一の初期値を前記データ項目に割り当てる段階、
を更に含む、
ことを特徴とする請求項１２に記載のコンピュータ読み取り可能な記録媒体。
【請求項１６】
データ処理システムによって実行された時に該データ処理システムに電子システムを設計する方法を実行させる実行可能コンピュータプログラム命令を収容するコンピュータ読み取り可能な記録媒体であって、
前記方法が、
データ項目を送信クロックの制御下である一定の数の送信スロット内で設計クロックに対して非同期的に第１の回路から第２の回路に受信するデマルチプレクサロジックの表現を生成する段階と、
前記設計クロックの設計クロック周期内で非同期的に前記データ項目を受信する前記デマルチプレクサロジックの前記表現に結合されたカウンタロジックの表現を生成する段階と、
前記カウンタを前記送信スロットと同期させるように構成された同期化ロジックの表現を生成する段階と、
を含む、
ことを特徴とするコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記同期化ロジックは、前記第１の回路から受信される同期化データを検出し、かつ
前記同期化ロジックは、前記カウンタの値を前記送信スロットと整合させる、
ことを特徴とする請求項１６に記載のコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記カウンタロジックは、複数の状態を含み、かつ
前記カウンタロジックは、前記データ項目を受信した時に、前記送信クロックによって駆動される前記複数の状態の間で遷移する、
ことを特徴とする請求項１７に記載のコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記複数の状態は、飽和状態とリセット状態を含み、
前記カウンタロジックは、前記データ項目を受信した後に前記送信クロックによって前記飽和状態に遷移し、
前記リセットロジックは、前記カウンタロジックを前記飽和状態から前記リセット状態にリセットする、
ことを特徴とする請求項１８に記載のコンピュータ読み取り可能な記録媒体。
【請求項２０】
デジタル処理システム上で実行された時に該デジタル処理システムをしてロジックデバイスを、
前記ロジックデバイスを駆動する設計クロックの設計クロックサイクルのための同期化信号を生成し、
前記設計クロックとは非同期の送信クロックによって前記同期化信号を送信し、かつ
前記設計クロックサイクル内で前記送信クロックによってクロック制御される多重化方式によって前記ロジックデバイスからデータ信号を送信する、
ように構成させる複数の実行可能命令を収容する機械読み取り可能な記録媒体。
【請求項２１】
通信ポート上で複数のデータ項目を通信するためのチップ上のデジタル回路であって、
設計クロックによってクロック制御される複数のデータ項目を生成する設計ロジックと、
前記設計クロックと送信クロックとによって駆動されて同期化信号を生成する同期化ロジックであって、該設計クロックが、該送信クロックと非同期である前記同期化ロジックと、
前記送信クロックに従って前記通信ポート上で前記同期化信号と前記複数のデータ項目とを送信するために前記設計ロジックと前記同期化ロジックとに結合された多重化ロジックと、
を含むことを特徴とするデジタル回路。
【請求項２２】
前記同期化ロジックは、前記送信クロックによってクロック制御されるカウンタロジックを含むことを特徴とする請求項２１に記載のデジタル回路。
【請求項２３】
前記同期化ロジックは、前記カウンタロジックをリセットするリセット信号を生成するためにユーザクロックによってクロック制御されるリセットロジックを含むことを特徴とする請求項２２に記載のデジタル回路。
【請求項２４】
前記同期化信号は、前記カウンタロジックが飽和した時に生成されることを特徴とする請求項２３に記載のデジタル回路。
【請求項２５】
前記同期化信号は、前記送信クロックのクロックサイクル内で前記リセット信号と整合される遷移パターンを含むことを特徴とする請求項２４に記載のデジタル回路。
【請求項２６】
設計クロックの各サイクル内の複数の送信スロットを通じた送信に向けて複数の信号をクロック制御する設計クロックであって、各信号が、１つの送信スロット内で送信される前記設計クロックと、
各送信スロットが前記設計クロックのクロックエッジからのオフセットを有する前記複数の送信スロットを作成し、該設計クロックとは非同期である送信クロックと、
前記複数の送信スロットをラベル付けするために前記設計クロックと前記送信クロックに結合された同期化ロジックと、
を含み、
前記設計クロックの異なるサイクルの共通ラベルを有する送信スロットに対するオフセットの変動が、限度が定められた不確実性の範囲内に維持される、
ことを特徴とする電子システム。
【請求項２７】
前記送信スロットのラベルに基づいて該送信スロット内で送信される前記信号を選択する選択ロジック、
を更に含むことを特徴とする請求項２６に記載の電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル回路に関し、より具体的には、デジタル信号の「時分割多重化（ＴＤＭ）」を使用するデジタル回路の設計に関する。
【背景技術】
【０００２】
デジタル信号を送信するための時間領域多重化方式の利点の１つは、複数のデジタル信号又はチャンネル信号を単一の送信チャンネルを共有して送信することができることである。例えば、ＴＤＭは、ＡＳＩＣ（特定用途向け集積回路）及びＦＰＧＡ（フィールドプログラマブルゲートアレイ）設計において他のチップへの通信のために使用されるピン数を低減するために一般的に適用される。チップ密度が増大しているので、ピン数は追いつかなくなってきており、ＴＤＭベースの通信をより魅力的なものにしている。ＡＳＩＣでは、ＡＳＩＣ設計のパーティションをＦＰＧＡ上にマップすることによってプロトタイプを構築することができる。ＡＳＩＣモジュールは、単一のチップ上で接続されるように設計されたので、多くの場合にこれらのモジュールは、ＩＣパッケージ内で利用可能なものの５〜１０倍のモジュール間接続を有する。チップ間の接続が設計クロックサイクル毎に多数回共有されている場合には、送信性能がシステムの速度を制限することになる。こうしてＴＤＭ送信速度の改善は高い価値を有する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第７，００７，２５４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一般的に、ＴＤＭは、同期又は非同期のいずれかである。同期ＴＤＭは、送信される信号にクロックサイクル毎に単一の時間スロットを割り当てることができ、利用可能な時間の効率的な使用を可能にするので、高性能のものとすることができる。しかし、複数のＩＣの間で正確なクロック同期化を維持することは高価であると共に困難である可能性があり、チップ間接続に係わる各クロックに関連する高周波数クロックの創出及び配分を必要とする。チップ間で正確な同期化を維持するのに失敗すると、送信速度が制限される。待ち時間が重要ではない場合には、同期化問題を解消するのにＦＩＦＯ（先入れ先出し）においてソース同期送信及びバッファ方式の用法を使用することができる。しかし、ＡＳＩＣプロトタイプ構成のような多くの用途では、待ち時間は厳しい制約条件を有し、ＦＩＦＯを使用することができない。
【０００５】
非同期ＴＤＭは、ユーザクロックに同期化されない高周波数送信クロックを使用する。代わりに、データは、例えば、Ｄｒａｚｅｎ  Ｂｏｒｋｏｖｉｃ及びＫｅｎｎｅｔｈ  Ｓ．ＭｃＥｌｖａｉｎに付与された「時分割多重化を使用するデジタル回路の設計及び分析の方法及び装置（Ｍｅｔｈｏｄｓ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  ｔｈｅ  Ｄｅｓｉｇｎ  ａｎｄ  Ａｎａｌｙｓｉｓ  ｏｆ  Ｄｉｇｉｔａｌ  Ｃｉｒｃｕｉｔｓ  ｗｉｔｈ  Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘｉｎｇ）」という名称の米国特許第７，００７，２５４号明細書に説明されているように設計クロックサイクル毎に複数回サンプリングされて送信される。非同期方式の長所は、単一のＴＤＭクロックを緩い同期化制約条件下で配分することができ、いずれにしても送信スロットが設計クロックに同期化されないので、判断すべき複雑なスロット割り当てが存在しない点である。そのような方式では、所定の設計信号の連続するサンプルの間の時間は、チップ間のリターデーションの一部になる。多くの異なる信号が同じチャンネルを共有する高いＴＤＭ比では、この過サンプリング遅延が非常に大きくなる可能性があり、これはこの方式の主な欠点である。
【０００６】
従って、従来のＴＤＭ方式は、ＡＳＩＣプロトタイプのような重度に相互接続した多デバイスシステムにおいて性能要件及びリソース要件を満たし損ねており、改善の必要がある。
【課題を解決するための手段】
【０００７】
ここで擬似同期時分割多重化を用いてデジタル回路を設計する方法及び装置を説明する。本発明の一部の実施形態をこの節で要約する。
【０００８】
本発明の少なくとも１つの実施形態では、データ項目送信スロットの数を送信クロックの周期と設計クロックの周期とから判断することができる。データ項目は多値符号であり、特殊な場合はブール値である。データ項目に対する送信スロットの数は、データ項目スロットにおける合計時間が設計クロックの周期よりも短いようなスロット数として判断することができる。スロットの殆どは、データ項目値を送信するのに使用することができ、一部のスロットは、同期化情報に向けて使用することができる。
【０００９】
本発明の一態様では、送信スロット数よりも大きい範囲を有するスロットカウンタの表現を生成することができる。カウンタは、送信されるデータを生成する設計クロックのエッジによってリセットすることができる。カウンタ値は、番号が振られた各スロットに関連付けられたデータ項目を選択して送信する入力選択ロジックを制御するのに使用することができる。
【００１０】
本発明の別の態様では、受信チップ内にスロットカウンタの表現が生成される。受信側カウンタの値は、データ値のストリームを分配及び／又は逆多重化するのに使用することができる。
【００１１】
本発明の更に別の態様では、送信カウンタのカウント値が送信スロット数を超えることによって判断することができる全てのデータ項目の送信完了の後に、入力選択ロジックは、「０」値を選択及び／又は送信することができる。カウンタが０にリセットされると、入力選択ロジックは、値「１」を選択し、及び／又はそれをスロット０又はスロット１のような特定の番号が振られたスロット内で送信することができる。受信チップ又は回路内には、受信カウンタに対するリセット生成回路を生成することができる。受信カウンタが、識別された全てのスロット番号を通じてカウントし終わった後に、受信リセット生成回路は、「１」という値を有する送信スロット番号を識別する入力データストリーム内での「０」から「１」への遷移を待つことができ、識別されたスロット番号に適合するようにカウンタをリセットすることができる。この機構は、ＴＤＭクロックが設計クロックよりも十分に速いものである限り、クロック周波数の変化にも関わらず、送信回路と受信回路の間でスロット番号に関する一致を維持することができる。この機構の結果は、設計クロックと送信クロックとを同期させることなく、番号が振られたデータ項目送信スロットの位置を設計クロックエッジに対して大まかに同期させることである。このクロック同期化を伴わないスロット同期化が、本出願人が本方法を擬似同期ＴＤＭと呼ぶ理由である。
【００１２】
本発明の更に別の態様では、複数の並列ＴＤＭチャンネルは、リセット生成回路及びカウンタを含む同期化要素の一部又は全てを共有することができる。この場合、並列チャンネルの群の単一の構成要素しか同期化データを送信する必要がないことになり、データ項目を送信するためにいくつかの更に別の送信スロットが解放される。
【００１３】
本発明の更に別の態様では、設計クロックに対して非同期的にデータ項目を送信するマルチプレクサロジックの表現を生成することができる。データ項目は、第１の集積回路から第２の集積回路に送信クロックの制御下で送信することができる。設計クロックのクロックサイクル内の一連の時間スロット内でデータ項目を送信するために、選択ロジックと結合するカウンタロジックの表現を生成することができる。更に、カウンタロジックを繰返しリセットする構成に向けてリセットロジックの表現を生成することができる。
【００１４】
本発明の更に別の態様では、設計クロックに対して非同期的にデータを受信する逆多重化ロジックの表現を生成することができる。データは、第１の集積回路から第２の集積回路に送信クロックの制御下で受信することができる。データを非同期的に受信するために、抽出ロジックの表現に結合されたカウンタロジックの表現を生成することができる。更に、カウンタロジックを繰返しリセットする構成においてリセットロジックの表現を生成することができる。
【００１５】
本発明の別の態様では、ロジックデバイスを駆動する設計クロックの設計クロックサイクルに対して同期化信号を生成することができる。同期化信号は、設計クロックとは非同期の送信クロックによって送信することができる。その後に、ロジックデバイスからのデータ項目を送信クロックによってクロック制御される多重化方式によって設計クロックのクロックサイクル内で送信することができる。
【００１６】
本発明の更に別の態様では、送信クロックに従ってロジックデバイスの入力ポートから受信される同期化信号を検出することができる。同期化信号の検出に続いて、送信クロックによってクロック制御される入力ポートからの１つ又はそれよりも多くの信号を逆多重化することができる。逆多重化された信号は、送信クロックとは非同期のロジックデバイスを駆動する設計クロックのクロックサイクル内でバッファに入ることができる。
【００１７】
本発明の更に別の態様では、デジタル回路は、複数の信号をチップの通信ポート上で通信するために、設計ロジックと、同期化ロジックと、多重化ロジックとを含むことができる。設計ロジックは、設計クロックによってクロック制御される信号を生成することができる。設計クロックと送信クロックとによって駆動される同期化ロジックは、設計クロックとは非同期の送信クロックに基づいて時間スロットをほぼ整合させる同期化信号を生成することができる。設計ロジック及び同期化ロジックに結合した多重化ロジックは、同期化信号と複数の信号とを通信ポート上で送信クロックに従って送信することができる。
【００１８】
本発明の更に別の態様では、各送信スロットの設計クロックエッジに対して可能な限り早期のサンプリング時間が計算される。この計算は、送信カウンタの可能な限り早期のリセットを考慮することができる。受信設計クロックエッジに対して可能な限り最新の配信時間を同様に計算することができる。この計算は、送信カウンタの可能な限り最新のリセットの時間を考慮することができる。次に、設計信号は、計算されたサンプリング時間と配信時間とによって示唆されるタイミング分析要件を満たすようにスロットに割り当てることができる。
【００１９】
本発明は、方法と、これらの方法を実行するデータ処理システム及びデータ処理システムによって実行された時にシステムにこれらの方法を実行させるコンピュータ可読媒体を含むこれらの方法を実行する装置とを含む。
【００２０】
本発明の他の特徴は、添付図面及び以下に続く詳細説明から明らかであろう。
【００２１】
本発明を類似の参照符号が類似の要素を示す添付図面の図内に限定ではなく一例として例示する。
【図面の簡単な説明】
【００２２】
【図１】本発明の一実施形態による擬似同期ＴＤＭを含む多チップデジタル設計の図である。
【図２】本発明の一実施形態による擬似同期時分割マルチプレクサを含む例示的デジタル回路の図である。
【図３】本発明の一実施形態による時分割多重化における非同期クロック間の擬似同期の一例を示すタイミング図である。
【図４】本発明の一実施形態による同期化信号を送信する擬似同期ＴＤＭマルチプレクサを含む多チップデジタル設計の図である。
【図５】本発明の一実施形態による非同期クロックに基づいて擬似同期的にデータを多重化する制御技術の実施形態を示す流れ図である。
【図６】本発明の一実施形態による非同期クロックに基づいて擬似同期的にデータを逆多重化する制御技術の実施形態を示す流れ図である。
【図７】本発明の一実施形態による擬似同期的に通信される複数チップ間設計を作成する処理を示す流れ図である。
【図８】本発明の一実施形態による設計に関するタイミング分析を実施する処理を示す流れ図である。
【図９】本発明の一実施形態に対して使用することができるデータ処理システムの例を示す図である。
【発明を実施するための形態】
【００２３】
以下の説明及び図面は本発明を示すものであり、本発明を限定するものと解釈すべきではない。本発明の完全な理解をもたらすために、多くの特定の詳細内容を説明する。しかし、ある一定の事例では、本発明の説明を不明瞭にすることを避けるために、公知又は従来の詳細内容に対しては説明しない。
【００２４】
本発明の方法のうちの多くのものは、従来の汎用コンピュータシステムのようなデジタル処理システムを用いて実施することができる。１つの機能のみを実施するように設計又はプログラムされた専用コンピュータも同じく使用することができる。
【００２５】
本明細書における「一実施形態」又は「実施形態」への参照は、この実施形態に関連して説明する特定の特徴、構造、又は特性を本発明の少なくとも１つの実施形態内に含めることができることを意味する。本明細書内の様々な箇所における「一実施形態」という表現の出現は、必ずしも全てが同じ実施形態を指しているわけではない。
【００２６】
以下に続く図に示す処理は、ハードウエア（例えば、回路、専用ロジック等）、ソフトウエア（汎用コンピュータシステム又は専用マシン上などで実行されるもの等）、又はこれらの両方の組合せを含む処理ロジックによって実施される。下記では処理をいくつかの連続する演算に関して説明するが、説明する演算のうちの一部のものは、異なる順序に実施することができることを理解すべきである。更に、一部の演算は、連続ではなく並列に実施することができる。
【００２７】
本発明の少なくとも１つの実施形態は、ソース設計クロックのクロックサイクル（又はユーザクロックサイクル）の範囲にわたって変化するインデックス付き時間スロットの位置を含む擬似同期時分割マルチプレクサシステムによってデジタル信号を送信することを探求するものである。ソース設計クロックのエッジを用いて、時間スロット０（エッジに関連付けられたクロックサイクル内の最初の時間スロット）は、クロックエッジの近くにくるように周期的に位置決めするようにリセットすることができる。ソース設計クロックは、送信中の信号から設計におけるフリップ・フロップまで移動して戻すことによって識別することができる。設計クロックエッジに対する時間スロット０又は他の時間スロットの位置決めは、同期ＴＤＭベースの信号送信等におけるもののようなタイミング分析に基づくことができる。各信号（又はロジックデータ）は、１つの時間スロットしか消費せずに送信することができる。その結果、帯域幅が拡幅し、実質的な遅延は、非同期ＴＤＭ実施と比較して劇的に低下する。
【００２８】
例えば、１ＧＨｚの送信速度において、２０ｎｍがマルチプレクサ及びデマルチプレクサの遅延にチップ間相互接続部の遅延を加えたものを表す場合に、６４対１の多重化比は、非同期ＴＤＭ方式では８４ｎｓ（又は６４ｎｓ＋２０ｎｓ）の実質的な遅延をもたらすことになり、システム周波数を約１０ＭＨｚに制限する。それと比較して、対応する擬似同期ＴＤＭ方式は、約２８ｎｓ（又は８ｎｓ＋２０ｎｓ）の実質的な遅延を有することになり、２５ＭＨｚを超えるシステム速度をもたらす。
【００２９】
図１は、本発明の一実施形態による擬似同期ＴＤＭを含む多チップデジタル設計を示している。マルチプレクサは、１つの送信リソースを共有するように複数の信号を単一の信号ストリーム内に組み合わせることができる。一般的に、デジタル設計は、送信機チップ１０１及び受信機チップ１１５のような複数のチップにわたって配分された設計モジュールを含むことができる。一実施形態では、チップ１０１及び／又は１１５は、デジタル設計のエミュレーションを可能にするＦＰＧＡデバイスのようなプログラマブルロジックデバイスとすることができる。チップ相互接続部１１７は、チップ間の物理的な配線とすることができる。一部の実施形態では、チップ相互接続部１１７は、光学接続又は無線接続に基づくとすることができる。通常、設計モジュール間をチップ、例えば、チップ１０１及び１１５にわたって通過するデータ信号は、同じ物理的接続部を異なる時間スロットを通じたことで共有することができる。
【００３０】
送信機チップ１０１内では、設計モジュールを相互接続部１１１のような相互接続部によって結合された１つ又はそれよりも多くのブロック１０５、１０７に構成することができる。一実施形態では、設計クロック１０９が、送信機チップ１０１内の複数のロジックブロック１０５、１０７を駆動する。設計クロック１０９は、計算を実行する受信機チップ１１５を含む複数のチップを駆動するクロックソースに基づくとすることができる。
【００３１】
一実施形態では、送信機チップ１０１は、ＴＤＭ  ＩＯ１１１のようなＩＯロジックを駆動する送信クロックに従ってロジックデータを１０５及び１０７のようなチップ内の設計ブロックから受信機チップ１１５のような外部チップに送信する。送信クロック１１３は、チップ相互接続部１１７を通じて送信機チップ１０１からロジックデータを受信する受信機チップ１１５の対応するＩＯポートを駆動することができる。一実施形態では、ソースチップ、例えば、送信機チップ１０１とターゲットチップ、例えば、受信機チップ１１５との間のロジックデータに対する送信クロックは同期するか又は単一のクロックソースに基づいている。別の実施形態では、各チップ上の送信クロックは、他のチップ上の送信クロックに対して制御されず、受信機チップ内の受信ロジックは、データと共に送信されるソース同期クロックによってクロック制御される。
【００３２】
ＴＤＭ  ＩＯ１１１は、ロジックデータを送信機チップ１０１から受信機チップ１１５の対応するＴＤＭ  ＩＯ１１９に擬似同期ＴＤＭ方式で送信することができる。ＴＤＭ  ＩＯ１１９は、受信された単一の信号ストリームから複数の信号を抽出する擬似同期ＴＤＭデマルチプレクサを含むことができる。一実施形態では、ＴＤＭ  ＩＯ１１１は、送信クロック１０３と設計クロック１０９の両方と結合され、設計クロック１０９の各クロックサイクルを送信クロック１０３の複数のクロックサイクル又は時間スロットと別々に同期させるＴＤＭ方式に基づいてロジックデータを送信する。一実施形態では、論理演算を駆動する設計クロック１０９とチップ間のデータ送信を駆動する送信クロック１０３とは非同期のものである（例えば、互いの間で既知の位相関係又は特定の周波数関係を持たない）。
【００３３】
図２は、本発明の一実施形態による擬似同期時分割マルチプレクサを含む例示的なデジタル回路を示している。例示的回路２００は、図１の送信機チップ１０１のようなチップ内に実施することができる。図１のＴＤＭ  ＩＯ１１１のようなＩＯロジックは、リセット発生器ロジック２１１、スロットカウンタロジック２１３、及び／又はマルチプレクサ２１５を含むことができる。ロジックデータ２１７は、図１のロジック１０５及び／又はロジック１０７のようなユーザロジック２０９からの出力データとすることができる。一実施形態では、複数のロジックデータ項目２１７は、別々のチップにわたる図１の相互接続部１１７のような相互接続配線２１９を共有する擬似同期ＴＤＭ方式でマルチプレクサ２１５を通じて別のチップに送信される。
【００３４】
例示的回路２００は、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３及びクロックｔｄｍ＿ｃｌｋ２０１のような複数の非同期クロックによって駆動することができる。ユーザロジック２０９は、例えば、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３によってクロック制御される複数のバイナリ値を含むロジックデータ２１７を生成する論理演算又は計算を実行することができる。クロックｄｅｓｉｇｎ＿ｃｌｋ２０３は、例えば、図１の設計クロック１０９に従って生成することができる。シーケンス要素２０５、２０７は、クロック信号をパイプライン処理してユーザロジック２０９を駆動するためのレジスタ、フリップ・フロップ、又はメモリ要素とすることができる。一実施形態では、チップにわたるデジタルデータ送信を駆動するために、例えば、図１の送信クロック１０３に従ってクロックｔｄｍ＿ｃｌｋ２０１を生成することができる。一般的に、クロックｔｄｍ＿ｃｌｋ２０１は、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３よりも高い周波数のものになる。
【００３５】
一実施形態では、スロットカウンタ２１３は、マルチプレクサ２１５が、クロックｔｄｍ＿ｃｌｋ２０１のような送信クロックに従う時間スロットを通じて送信されるロジックデータ２１７を選択するためのカウント値を生成する。スロットカウンタ２１３は、送信に向けてロジックデータ２１７の選択順序を制御することができる。一般的に、マルチプレクサ２１５における時間スロットは、クロックｔｄｍ＿ｃｌｋ２０１のクロックサイクルに対応する。一実施形態では、マルチプレクサ２１５は、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３のクロックサイクル内の各ロジックデータ２１７に対して別々の時間スロットを与える。その結果、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３の各クロックに対してユーザロジック２０９から生成されるロジックデータ２１７の全ての値は、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３の対応するクロックサイクル中に相互接続部２１９にわたって送信される。
【００３６】
クロックｄｅｓｉｇｎ＿ｃｌｋ２０３の各クロックサイクルに対して、非同期のクロックｄｅｓｉｇｎ＿ｃｌｋ２０３とクロックｔｄｍ＿ｃｌｋ２０１とを整合させる同期化信号（又は同期化データ）を生成することができる。一実施形態では、マルチプレクサ２１５は、スロットカウンタ２１３からのある一定のカウント値に従って同期化信号を生成するように構成される。例えば、スロットカウンタ２１３は、マルチプレクサ２１５が信号値を選択して同期化信号を生成するための飽和カウント値と初期カウント値とを含むことができる。
【００３７】
飽和カウント値は、カウンタにおいて構成される最大カウント値とすることができる。カウンタは、関連付けられた駆動クロックからその飽和カウント値（又はカウンタ範囲）までカウントした時に飽和する。飽和したカウンタは、駆動クロックに応じて付加的なカウントを実行することができる。一般的に、カウンタは、リセットされると、その駆動クロックの次のクロックサイクルにおいて初期カウント値、例えば、０に設定される。カウンタは、リセット信号を受信した時にリセットすることができる。
【００３８】
一実施形態では、同期化信号は、スロットカウンタ２１３の初期カウント値とリセットカウント値とに従ってマルチプレクサ２１５が選択する信号値に基づいている。リセット発生器２１１は、スロットカウンタ２１３に対するリセット信号を生成することができる。スロットカウンタ２１３が初期カウント値と飽和カウント値との間でカウントを行う時に、マルチプレクサ２１５は送信に向けてロジックデータ２１７を選択することができる。一実施形態では、スロットカウンタ２１３が飽和すると、マルチプレクサ２１５は、構成された初期同期化信号値、例えば、論理ロウ又は０を出力することができる。
【００３９】
リセット発生器２１１からのリセット信号の受信を受けて、スロットカウンタは、クロックｔｄｍ＿ｃｌｋ２０１の次のクロックサイクルに対するその初期カウント値（リセット）までカウントを行う。一実施形態では、マルチプレクサ２１５は、スロットカウンタ２１３が、クロックｔｄｍ＿ｃｌｋ２０１に従って初期カウント値からカウントを行うのに基づいて構成されたその後の同期化信号値を出力する。例えば、クロックｔｄｍ＿ｃｌｋ２０１によって送信される同期化信号は、単一の論理ハイ、及び／又は明確に認識することができる論理ロウから論理ハイへの遷移を含むことができる。
【００４０】
一実施形態により、リセット発生器２１１は、リセット信号をｄｅｓｉｇｎ＿ｃｌｋ２０３のエッジから導出する。例えば、リセット発生器２１１は、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３の各クロックサイクルのエッジにおいてスロットカウンタ２１３をリセットする信号を生成することができる。使用されるエッジは、送信されるデータを生成するクロックエッジに基づくことができる。一般的に、クロックｄｅｓｉｇｎ＿ｃｌｋ２０３のクロックサイクル内でクロックｔｄｍ＿ｃｌｋ２０１に従う時間スロットの数は、マルチプレクサ２１５を通じてロジックデータ２１７を送信するのに必要とされる時間スロット数よりも多い。余分な時間スロットは、デジタル回路２００が同期化信号を受け入れるために割り当てることができる。
【００４１】
ある一定の実施形態では、複数の相互接続部は、図２のリセット発生器２１１及び／又はスロットカウンタ２１３のようなデータ送信を同期化させるための同じロジックブロックを共有しながらデータを並列送信することができる。各相互接続部は、データを送信するためのチャンネルに関連付けることができる。例えば、設計クロック２０３におけるデータを並列送信するために、相互接続部２１９におけるチャンネルを含む複数のチャンネルは、スロットカウンタ２１３及びリセット発生器２１１のような同期化ロジックブロックを共有することができる。その結果、余分な同期化ロジックブロックの経費負担なしに並列チャンネルを通じて付加的なデータスロットを提供することができる。一部の実施形態では、並列チャンネルは、並列チャンネルのうちの特定の１つを通じて送信される同期化信号を共有する。同期化信号を送信する必要がないチャンネルは、特定のチャンネルが、例えば、同じ送信スロット中に共有同期化信号を送信する間にデータを同時に送信することができる。
【００４２】
図３は、本発明の一実施形態による時分割多重化における非同期クロック間の擬似同期化の一例を示すタイミング図である。例えば、設計クロック３０１は、図２のｄｅｓｉｇｎ＿ｃｌｋ２０３のようなチップ内のユーザロジックを駆動する設計クロックのクロックサイクルを含むことができる。スロットシーケンス３０５、３０７は、設計クロック３０１とは異なって整合された図２のｔｄｍ＿ｃｌｋ２０１のような送信クロックによって駆動される図２のマルチプレクサ２１５のような擬似同期ＴＤＭマルチプレクサによる時間スロットの２つの例示的な割り当てを示すことができる。時間スロット又は送信スロットは、送信クロックのクロックサイクルのエッジ（例えば、立ち上がりエッジ及び／又は立ち下がりエッジ）に対応することができる。時間スロットは、送信クロックの完全なクロックサイクルを含まなくてもよい。
【００４３】
一実施形態では、スロットシーケンス３０７は、ロジックデータ３１５を送信するための８つの時間スロットｓｌｏｔ＿０．．．ｓｌｏｔ＿７及び同期化信号３１３のための２つのスロットであるｓｙｎｃスロット３１７、３１９を含む。時間スロットｓｌｏｔ＿０をラベル「０」で表し、時間スロットｓｌｏｔ＿１をラベル「１」で表すことができ、以降同様に続く。２つの設計クロックサイクル（又は周期）は、共通ラベル付き時間スロット、例えば、「０」と名付けられた時間スロット、「１」と名付けられた時間スロットなどを含むことができる。スロットシーケンス３０７は、８対１マルチプレクサに対応することができる。同期化信号は、論理ロウ、例えば、ｓｙｎｃスロット３１７から論理１、例えば、ｓｙｎｃスロット３１９への遷移のパターンを含むことができる。一実施形態では、同期化信号の受信ポートは、同期化信号を受信するのに続いて、次の時間スロットであるスロット３２１をロジックデータを送信するのに割り当てられた最初のスロットとして識別する（例えば、固有の信号パターンの認識に基づいて）。同期化信号（又はデータ）は、設計クロックのクロックサイクルに位置決めされた時間スロット（又は送信スロット）の位置を示すことができる。従って、同期化信号を生成する同期化ロジックは、どのラベルを各時間スロットに割り当てるかを選択又は判断することができる。時間スロットのタイミングは、送信クロックのクロックサイクル（又は周期）のクロックエッジに対して判断することができる。ある一定の実施形態では、複数のデータを同時に送信するために、例えば、複数の電圧レベル及び／又は異なる周波数の光を用いて複数の時間スロットを時間的に重なるように位置決めすることができる。
【００４４】
ある一定の実施形態では、各ラベル付き時間スロットは、そのラベル付き時間スロットに関連付けられた設計クロックのクロックサイクルのエッジからのオフセット（又は時間差）を伴って位置決めされる。例えば、ｓｌｏｔ＿０  ３１２は、設計クロック３０１のエッジ３０３に対するオフセット３２５に関連付けることができる。共通ラベル付き時間スロットに関連付けられるオフセットは、設計クロックサイクル毎に変化することができる。異なる設計クロックサイクル中の共通ラベル付き時間スロットにおけるオフセットの変動は、所定の限度内、例えば、時間スロットに対応する送信クロックの１つ又は２つの送信クロックサイクル内に維持することができる。
【００４５】
一実施形態では、スロットシーケンス３０７に対応するカウンタ、例えば、図２のスロットカウンタ２１３は値９で飽和する。その結果、カウンタの飽和カウント値に対応する０という同期化信号値（論理ロウ）が、次の時間スロット、例えば、ｓｙｎｃスロット３１７において、関連付けられた擬似同期ＴＤＭマルチプレクサ、例えば、図２のマルチプレクサ２１５から強制される。一実施形態では、時間インスタンス３０３において、設計クロック３０１の立ち上がりエッジが、例えば、図２のリセット発生器２１１を通じてリセット信号をトリガし、カウンタをリセットする。その後に、カウンタを駆動する送信クロック、例えば、図２のｔｄｍ＿ｃｌｋ２０１に従う時間インスタンス３１１において、マルチプレクサは、ｓｙｎｃスロット３１９に対するカウンタの初期カウント値に対応する１とう同期化値（論理ハイ）を生成する。すなわち、設計クロック３０１のクロックサイクルは、同期化信号３１３を通じてスロットシーケンス３０７に対応する送信クロックで較正される。ロジックデータ３１５は、時間スロット３２１で始めて０から７までインデックス付けされたその後の時間スロット内に多重化される。値０を有するｓｙｎｃスロットの数は、設計クロックサイクル毎に異なるとすることができる。
【００４６】
図４は、本発明の一実施形態による同期化信号を送信する擬似同期ＴＤＭマルチプレクサを含む多チップ設計を示している。例えば、例示的デジタル設計４００は、図１の送信機チップ１０１及び／又は受信機チップ１１５内に含めることができる。一実施形態では、クロックｄｅｓｉｇｎ＿ｃｌｋ４０３によって駆動されるソースロジックブロック４１３からのロジックデータ４１９は、クロックｄｅｓｉｇｎ＿ｃｌｋ４０３とは非同期の送信クロックｔｄｍ＿ｃｌｋ４０５によってチップ相互接続部にわたって送信される。相互接続部１１７は、送信クロックｔｄｍ＿ｃｌｋ４０５によって駆動される送信機ロジックに結合することができる。ロジックデータ４１９は、例えば、図３のタイミング図３００に例示しているように、クロックｔｄｍ＿ｃｌｋ４０５と整合された（例えば、擬似同期的に）クロックｄｅｓｉｇｎ＿ｃｌｋ４０３の１つのクロックサイクル内で送信することができる。クロックｄｅｓｉｇｎ＿ｃｌｋ４０３及びクロックｔｄｍ＿ｃｌｋ４０５は、それぞれ図１の設計クロック１０９及び送信クロック１０３に対応する。
【００４７】
一実施形態では、同期化ロジック４１１がマルチプレクサ４１５と結合されて、受信機チップ１１５において同期化信号を生成するための同期化信号値を供給する。同期化ロジック４１１は、例えば、送信側カウンタ４０９からのカウント値に従ってマルチプレクサが選択することができる同期化信号値を用いて構成されるストレージ要素を含むことができる。一実施形態では、クロックｔｄｍ＿ｃｌｋ４０５によってクロック制御される送信側カウンタ４０９は、マルチプレクサ４１５が、クロックｔｄｍ＿ｃｌｋ４０５に従って割り当てられた次の時間スロットにおいてｓｙｎｃロジック４１１からの最初の同期化値を選択するように値Ｎにおいて飽和する。クロックｄｅｓｉｇｎ＿ｃｌｋ４０３のクロックサイクルは、送信側カウンタ４０９をリセット状態に設定するリセット発生器４０７をトリガすることができる。一実施形態では、クロックサイクルの立ち上がりエッジは、送信側カウンタ４０９をリセットするリセット信号を生成するようにリセット発生器４０７をトリガする。その後に、クロックｔｄｍ＿ｃｌｋ４０５の次のクロックサイクルにおいて、送信側カウンタは、マルチプレクサ４１５が、対応する時間スロットにおいてｓｙｎｃロジック４１１からの第２の同期化値を選択するように初期カウント値にリセットされる。受信機チップ１１５に向けてロジックデータ４１９を送信するための時間スロットを整合させるために、第１の同期化値及び第２の同期化値を含む同期化信号を受信機チップ１１５に送信することができる。
【００４８】
一実施形態では、受信機チップ１１５は、送信機チップ１０１から擬似同期方式で送信されたロジックデータ及び同期化信号を受信するデマルチプレクサを含む。受信機チップ１１５は、固定ロジックデバイス又はＦＰＧＡデバイスのようなプログラマブルロジックデバイスとすることができる。クロックｒ＿ｔｄｍ＿ｃｌｋ４２３のような送信クロックに従って一連の時間スロットにわたって収集されたロジックデータ４１９は、ロジックデータ４３３に逆多重化し、ターゲットロジックブロック４３５にラッチ（又はバッファ方式）することができる。一実施形態では、クロックｒ＿ｄｅｓｉｇｎ＿ｃｌｋ４３９は、計算を実行するようにターゲットロジックブロック４３５を駆動する。受信機チップ１１５のクロックｒ＿ｄｅｓｉｇｎ＿ｃｌｋ４３９と送信機チップのクロックｄｅｓｉｇｎ＿ｃｌｋ４０３とは非同期とすることができる。一部の実施形態では、クロックｒ＿ｄｅｓｉｇｎ＿ｃｌｋ４３９とクロックｄｅｓｉｇｎ＿ｃｌｋ４０３とは共通の周波数のものである。
【００４９】
受信機チップ１１５は、デマルチプレクサ４３１に結合した受信側カウンタ４２５及びｓｙｎｃ検出（又は同期化）ロジック４２９を含み、受信ロジックデータにおける時間スロットをターゲットロジックブロック４３５に割り当てるなどで受信側カウンタ４２５のカウンタ値を時間スロット（又は送信スロット）と整合させる。例えば、ｓｙｎｃ検出ロジック４２９は、送信機チップ１０１から送信された同期化信号を認識することができ、ロジックデータ４３３に割り当てられる時間スロットのシーケンスの開始点を示す。相互接続部１１７を通じて受信された多重化ロジックデータは、受信カウンタ４２５によってカウントされたカウント値に従ってデマルチプレクサ４３１によって逆多重化することができる。一実施形態では、受信側カウンタは、送信側カウンタ４０９と共通の飽和カウント値を共有するように構成される。受信側カウンタ４２５が飽和すると、送信機チップ１０１から送信された同期化信号は、デマルチプレクサ４３１を通じてｓｙｎｃ検出ロジック４２９にｓｙｎｃ信号４３７として転送することができる。
【００５０】
ｓｙｎｃ検出ロジック４２９は、デマルチプレクサ４３１を通じて受信された同期化信号の検出を受けて、受信側カウンタをリセットするリセット信号４２７を送信することができる。一実施形態では、受信側カウンタ４２５がリセットされた時点の直後に続く次の時間スロットは、逆多重化ロジックデータのための時間スロットシーケンスを開始する。受信側カウンタは、デマルチプレクサ４３１におけるクロックｒ＿ｔｄｍ＿ｃｌｋ４２３によってカウントすることができる。一実施形態では、クロックｒ＿ｔｄｍ＿ｃｌｋ４２３とクロックｔｄｍ＿ｃｌｋ４０５とは、チップ相互接続部１１７を駆動する送信クロックと同じクロックソースを共有する。ｓｙｎｃ検出ロジック４２９は、論理ロウから論理ハイへの信号レベル変化のような同期化パターンを受信された同期化信号から認識することができる。ｓｙｎｃ検出ロジック４２９と、それに対応するｓｙｎｃロジック４１１とは、共通の同期化パターンで構成することができる。一部の実施形態では、受信側カウンタ４２５と送信側カウンタ４０９とは、送信機チップ１０１から送信されるロジックデータが論理ロウ（０）のような一定の既知の値のものであるトレーニング期間中に整合される。
【００５１】
図５は、本発明の一実施形態による非同期クロックに基づいてデータを擬似同期的に多重化する制御技術の実施形態を示す流れ図である。例えば、制御フロー５００は、図１に示しているデジタル設計１００によって実施することができる。一実施形態では、ブロック５０１において、制御フロー５００のロジックは、ロジックデバイスを駆動する図１の設計クロック１０９のような設計クロックのクロックサイクル毎に同期化信号を生成する。ロジックデバイスからの複数のロジックデータは、図１のチップ１１５のような別のロジックデバイスと結合するための図１の相互接続部１１７のような物理的な接続部を共有することができる。各ロジックデータは、関連付けられた設計クロックのクロックサイクル毎に物理的接続部を通過することができる。
【００５２】
一実施形態では、制御フロー５００のロジックは、カウンタロジックによってカウントされるカウンタに従うなどで状態機械の状態に基づいて同期化信号を生成することができる。制御フロー５００のロジックは、設計クロックのエッジ（立ち上がりエッジ等）に従って同期化信号を生成するための状態を判断することができる。すなわち、同期化信号は、設計クロックの各クロックと整合するように生成される。同期化信号は、例えば、設計クロックのクロック周期（又はサイクル）に対応する周期内で明確に識別することができる所定のパターンを含むことができる。
【００５３】
一実施形態により、ブロック５０３において、制御フロー５００のロジックは、物理的相互接続部を通じて送信クロックに従って同期化信号を送信する。送信クロックと設計クロックは、図３のクロック３０９と３０３のように非同期のものとすることができる（例えば、既知の位相関係又は周波数関係なしに）。設計クロックの各クロックサイクルは、送信クロックの所定数のクロックサイクルを含むのに十分に長いとすることができる（例えば、同期化信号の長さ及び設計クロックの各クロックサイクルにおいて送信されるロジックデータの数に基づいて）。一実施形態では、制御フロー５００のロジックは、送信クロックの各クロックに従ってカウンタをカウントして状態機械の状態を識別し、同期化信号を生成する。
【００５４】
ブロック５０５では、制御フロー５００のロジックは、ロジックデバイスからのロジックデータを多重化して送信クロックに従ってターゲットデバイスにデータ信号を送信することができる。制御フロー５００のロジックは、同期化信号を送信するのに続いて、例えば、同期化信号を送信する送信クロックの次のクロックから開始して、又は他のタイミング関係に基づいてデータ信号の送信を実施することができる。一実施形態では、制御フロー５００のロジックは、状態機械を更新して、設計クロックのクロックサイクル中に全てのデータ値を送信し終わる時点を判断する。制御フロー５００のロジックは、設計クロックのクロックサイクル中に全てのデータ値を送信し終わった時点に続いて同期化信号を開始することができる。
【００５５】
図６は、本発明の一実施形態による非同期クロックに基づいて擬似同期的にデータを逆多重化する制御技術の実施形態を示す流れ図である。例えば、制御フロー６００は、図１に示しているデジタル設計１００によって実施することができる。一実施形態では、ブロック６０１において、制御フロー６００のロジックは、図１の受信機チップ１１５のようなロジックデバイスの入力ポートへの送信クロックによってクロック制御された同期化信号を検出する。同期化ロジックを受信するロジックデバイスは、送信クロックとは非同期の設計クロックによってクロック制御することができる。各ロジックデータは、関連付けられた設計クロックのクロックサイクル毎に物理接続部を通過することができる。
【００５６】
制御フロー６００のロジックは、設計クロックの各クロックサイクル中に同期化信号を検出し始める時点を図４のカウンタロジック４２５によってカウントされるカウンタに従うなどで状態機械の状態に基づいて判断することができる。状態機械は、同期化信号をクロック制御する送信クロックによって駆動することができる。一実施形態では、同期化信号の検出は、カウンタが、設計クロックのクロックサイクル中に所定数のロジックデータを受信し終わったことを示す時点で開始することができる。一実施形態では、制御フロー６００のロジックは、受信された信号の遷移パターンに従って同期化信号を識別する。論理１から論理０へのような特定の遷移は、設計クロックのクロックサイクル中の同期化信号の終端を示すことができる。
【００５７】
一実施形態では、同期化信号の検出に続くブロック６０３において、制御フロー６００のロジックは、受信されたデータ信号を別々のバッファに格納し、設計クロックによってクロック制御されるロジックデバイスの入力ポートを通じて送信されたロジックデータを逆多重化する。制御フロー６００のロジックは、ロジックデータ値の送信を駆動する送信クロックに従って受信されて入力ポートに通過するロジックデータ値の数をカウントすることができる。一実施形態では、制御フロー６００のロジックは、送信クロックに従って受信されたロジックデータ値の数をカウントし始める（例えば、送信クロックのクロックサイクルの数をカウントする）。制御フロー６００のロジックは、所定数のロジックデータ値を受信し終わった後に同期化信号を待つことができる。一実施形態では、制御フロー６００のロジックは、送信クロックとは非同期の設計クロックの各クロックに対して、同期化信号を検出する段階及び所定数のロジックデータを逆多重化する段階を繰り返す。
【００５８】
図７は、本発明の一実施形態による擬似同期的に通信される複数チップ間設計を作成する処理を示す流れ図である。例示的処理７００は、ハードウエア（回路、専用ロジック等）、ソフトウエア（専用マシン上で実行されるもの等）、又はこれらの両方の組合せを含むことができる処理ロジックによって実施することができる。例えば、ソフトウエアツールは、処理７００に従って擬似同期的に通信される複数チップ間設計を自動的に実施するように構成することができる。一実施形態では、ブロック７０１において、処理７００の処理ロジックは、設計を駆動する設計クロックのエッジによって設計のデータ項目（又は信号）をグループ分けする。処理７００の処理ロジックは、送信中のデータ項目からの設計を設計のフリップ・フロップまで移動することによって設計クロックのエッジを識別することができる。設計クロックの各エッジ又はクロックエッジは、設計クロックのクロックサイクルに対応することができる。一実施形態では、設計は、ＨＤＬ（ハードウエア記述言語）記述に基づくとすることができる。ある一定のクロックエッジに対応する同じ群の全てのデータ項目は、そのクロックエッジのクロックサイクル内に到着することができる。一実施形態では、ブロック７０３において、処理７００の処理ロジックは、データ信号／値をチャンネル／スロットに割り当てる上でのタイミング要件を生成するタイミング分析を実施することができる。処理７００の処理ロジックは、同じ群の各信号を送信するための到着時間をこの群に対応するクロックサイクルに対するクロックエッジに対して計算することができる。
【００５９】
一実施形態では、ブロック７０５において、処理７００の処理ロジックは、各設計クロックに対して、このクロックによって擬似同期方式で駆動される信号（又はロジックデータ）を多重化する回路を挿入する。設計クロックのクロックサイクルに対する期間は、図３の設計クロック３０１に対するスロットシーケンス３０５におけるもののような１つ又はそれよりも多くの時間スロット（又はチャンネル）を含むことができる。設計クロックとは非同期である送信クロックは、送信クロックのクロックサイクルに基づいて時間スロットを割り当てることができる。回路は、設計クロックの各クロックサイクル内のスロット数に従ってデータ項目群に対応するロジックデータを多重化することができる。同じ群の各データ項目に対して、ブロック７０７において、処理７００の処理ロジックは、タイミング分析から生成されるタイミング制約条件を満たすことに従ってクロックサイクル内に別々の時間スロットを割り当てることができる。例えば、データ項目又は信号値に対する時間スロット（又は送信スロット）は、データ値の計算された到着時間に基づいて割り当てることができる。一実施形態では、時間スロットの割り当ては、ロジックデータを対応するデータ項目に対してサンプリングすることができた最も早期の時間に基づいている。
【００６０】
ブロック７０９では、処理７００の処理ロジックは、擬似同期時間領域マルチプレクサ回路を含むネットリストを生成するなどで設計の実施を作成することができる。一実施形態では、処理７００の処理ロジックは、設計実施（例えば、メモリに格納されたネットリスト）をＰＬＤ（プログラマブルロジックデバイス）又はＦＰＧＡのような１つ又はそれよりも多くのハードウエアデバイス内にロード（又はインストール）して設計を構成する。処理７００の処理ロジックは、構成されたプログラマブルデバイスに従って複数のチップにわたるロジックデータを擬似同期多重化する段階を含む設計をエミュレート（プロトタイプ作成）することができる。ある一定の実施形態では、処理７００の処理ロジックは、特定用途向け集積回路（ＡＳＩＣ）に基づくとすることができる。
【００６１】
図８は、本発明の一実施形態による設計に関するタイミング分析を実施する処理を示す流れ図である。例示的処理８００は、ハードウエア（回路、専用ロジック等）、ソフトウエア（専用マシン上で実行されるもの等）、又はこれらの両方の組合せを含むことができる処理ロジックによって実施することができる。例えば、例示的処理８００は、図７のブロック７０３に含まれるタイミング分析作動を実施することができる。一実施形態では、ブロック８０１において、処理８００の処理ロジックは、図３の設計クロック３１０のような設計クロックの周期（又はサイクル）内の時間スロット内でデータ値（又は論理信号）を送信するのに最も早期の時間スロット（又は送信スロット）を識別する。処理８００の処理ロジックは、各送信スロットにおいて可能な限り早期のサンプリング時間を設計クロックエッジに対して計算することができる。例えば、処理８００の処理ロジックは、図２のスロットカウンタ２１３のようなデータを送信するための同期化ロジックに関連付けられた送信カウンタの可能な限り早期のリセットを考慮することができる。
【００６２】
ブロック８０３では、処理８００の処理ロジックは、設計クロックの周期内でデータを送信するための可能な限り最新の時間スロットを識別することができる。一実施形態では、処理８００の処理ロジックは、可能な限り最新の配信時間を受信する設計クロックのエッジに対して計算する。処理８００の処理ロジックは、データを送信するための同期化ロジックに関連付けられた送信カウンタの可能な限り最新のリセット時間を考慮することができる。その後のブロック８０５において、処理８００の処理ロジックは、データに対して識別された最も早期の時間スロットと最新の時間スロットとに基づいてタイミング要件を生成することができる。タイミング要件は、データに対する最も早期のサンプリング時間と最新の配信時間とを含むことができる。
【００６３】
図９は、本発明の一実施形態おいて使用することができるデータ処理システムの例を示している。図９は、コンピュータシステムの様々な構成要素を示しているが、そのような詳細内容は本発明に密接な関係を持たないので、構成要素を相互接続するいずれかも特定のアーキテクチャ又は方式を代表するように考えられているものではないことに注意されたい。本発明においてより少ない構成要素又は時により多くの構成要素を有するネットワークコンピュータ及び他のデータ処理システムを使用することができることも認められるであろう。図９のコンピュータシステムは、例えば、「アップルマッキントッシュ」コンピュータとすることができる。
【００６４】
図９に示しているように、データ処理システムの形態にあるコンピュータシステム９０１は、マイクロプロセッサ９０３、ＲＯＭ９０７、揮発性ＲＡＭ９０５、及び不揮発性メモリ９０６に結合されたバス９０２を含む。Ｍｏｔｏｒｏｌａ、Ｉｎｃ．又はＩＢＭからのＧ３又はＧ４のマイクロプロセッサとすることができるマイクロプロセッサ９０３は、図９の例に示しているようにキャッシュメモリ９０４に結合される。バス９０２は、これらの様々な構成要素を互いに相互接続し、これらの構成要素９０３、９０７、９０５、及び９０６を表示コントローラ及び表示デバイス９０８、並びにマウス、キーボード、モデム、ネットワークインタフェース、プリンタ、スキャナ、ビデオカメラ、及び当業技術で公知の他のデバイスとすることができる入力／出力（Ｉ／Ｏ）デバイスのような周辺デバイスにも相互接続する。一般的に、入力／出力デバイス９１０は、入力／出力コントローラ９０９を通じてシステムに結合される。一般的に、揮発性ＲＡＭ９０５は、メモリ内のデータをリフレッシュ又は維持するために絶えず電力を必要とするダイナミックＲＡＭ（ＤＲＡＭ）として具現化される。一般的に、不揮発性メモリ９０６は、システムから電力が取り除かれた後でもデータを維持する磁気ハードドライブ、光磁気ドライブ、光ドライブ、又はＤＶＤ  ＲＡＭ、又は他の種類のメモリシステムである。また、一般的に、不揮発性メモリは、ランダムアクセスメモリであるが、これを必要としない。図１は、不揮発性メモリが、データ処理システム内の残りの構成要素に直接結合されたローカルデバイスであることを示しているが、本発明は、モデム又は「イーサネット（登録商標）」インタフェースのようなネットワークインタフェースを通じてデータ処理システムに結合されたネットワークストレージデバイスのようなシステムからリモートの不揮発性メモリを利用することができることは認められるであろう。バス９０２は、当業技術で公知の様々なブリッジ、コントローラ、及び／又はアダプタを通じて互いに接続した１つ又はそれよりも多くのバスを含むことができる。一実施形態では、Ｉ／Ｏコントローラ９０９は、ＵＳＢ周辺機器を制御するためのＵＳＢ（ユニバーサルシリアルバス）アダプタ及び／又はＩＥＥＥ−１３９４周辺機器を制御するためのＩＥＥＥ−１３９４バスアダプタを含む。
【００６５】
本明細書から本発明の態様を少なくとも部分的にソフトウエアに具現化することができることは明らかであろう。すなわち、本発明の技術は、コンピュータシステム又は他のデータ処理システムにおいて、マイクロプロセッサのようなシステムのプロセッサが、ＲＯＭ９０７、揮発性ＲＡＭ９０５、不揮発性メモリ９０６、又はリモートストレージデバイスのようなメモリ内に含まれる命令シーケンスを実行するのに応答して実施することができる。様々な実施形態では、ハードウエア回路は、本発明を実施するのにソフトウエア命令との組合せで使用することができる。すなわち、本発明の技術は、ハードウエア回路とソフトウエアのいかなる特定の組合せにもデータ処理システムによって実行される命令に対するいかなる特定のソースにも限定されない。更に、説明を簡略化するために、本明細書を通して様々な機能及び作動をソフトウエアコードによって実行されるか又は引き起こされるものとして説明した。しかし、当業者は、そのような表現が意味することは、マイクロプロセッサ９０３のようなプロセッサによるコードの実行からこれらの機能がもたらされるということであると認識するであろう。
【００６６】
データ処理システムによって実行された時にシステムに本発明の様々な方法を実行させるソフトウエア及びデータを格納するのに、機械読み取り可能な記録媒体を使用することができる。この実行可能ソフトウエア及びデータは、例えば、図９に示しているＲＯＭ９０７、揮発性ＲＡＭ９０５、又は不揮発性メモリ９０６を含む様々な位置に格納することができる。これらのソフトウエア及び／又はデータの一部分は、これらのストレージデバイスのうちのいずれかに格納することができる。
【００６７】
すなわち、機械読み取り可能な記録媒体は、マシン（例えば、コンピュータ、ネットワークデバイス、携帯情報端末、製造ツール、１組の１つ又はそれよりも多くのプロセッサを有するいずれかのデバイス等）によってアクセス可能な形式の情報を格納するいずれかの機構を含む。例えば、機械読み取り可能媒体は、記録可能／記録不能媒体（例えば、読取専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスクストレージ媒体、光ストレージ媒体、フラッシュメモリデバイス等）を含む。
【００６８】
以上の明細書では、本発明をその特定の例示的な実施形態を参照して説明した。以下に続く特許請求の範囲に示す本発明の広義の精神及び範囲から逸脱することなく、本発明に様々な修正を加えることができることは明らかであろう。本明細書及び図面は、相応に限定的な意味ではなく例示的な意味で捉えるものとする。
【符号の説明】
【００６９】
１０１  送信機チップ
１０３、１１３  送信クロック
１０５、１０７  構成可能ロジック
１０９  設計クロック
１１５  受信機チップ
【図１】
2012533830.tif 000003
【図２】
2012533830.tif 000004
【図３】
2012533830.tif 000005
【図４】
2012533830.tif 000006
【図５】
2012533830.tif 000007
【図６】
2012533830.tif 000008
【図７】
2012533830.tif 000009
【図８】
2012533830.tif 000010
【図９】
2012533830.tif 000011
【国際調査報告】
2012533830.tif 000012
2012533830.tif 000013