(57)【要約】【目的】複数の装置をコンピュータバスに適合させるためのアダプター手段を含むコンピュータ用バスインタフェースを提供する。【構成】前記アダプター手段は、前記複数の装置の夫々に適合し、データを格納するためバッファ手段と、前記バッファ手段と前記コンピュータバス間のデータ転送を制御するための、前記バッファ手段の夫々のためのデータマネージャと、前記バッファ手段と夫々の前記装置間のデータ転送を制御するための、前記バッファ手段の夫々のための制御手段と、を含み、前記アダプター手段は、前記バッファ手段の夫々と前記コンピュータバス間のデータ転送及び前記バッファ手段の夫々と前記複数の装置間のデータ転送を制御するために使用される制御装置の何れかにデータを転送する。【選択図】図５
2006236395.tif 000002
【特許請求の範囲】
【請求項１】
複数の装置をコンピュータバスに適合させるためのアダプター手段を含むコンピュータ用バスインタフェースであって、
前記アダプター手段は、
前記複数の装置の夫々に適合し、データを格納するためバッファ手段と、
前記バッファ手段と前記コンピュータバス間のデータ転送を制御するための、前記バッファ手段の夫々のためのデータマネージャと、
前記バッファ手段と夫々の前記装置間のデータ転送を制御するための、前記バッファ手段の夫々のための制御手段と、を含み、
前記アダプター手段は、前記バッファ手段の夫々と前記コンピュータバス間のデータ転送及び前記バッファ手段の夫々と前記複数の装置間のデータ転送を制御するために使用される制御装置の何れかにデータを転送することを特徴とするコンピュータ用バスインタフェース。
【請求項２】
複数の装置をコンピュータバスに接続するための装置であって、
前記バスとは異なる特性を有するバックエンド・インタフェースと、
前記バックエンド・インタフェースを前記コンピュータバスへ接続するためのインタフェース論理回路と、を有し、
前記インタフェース論理回路は、前記バックエンド・インタフェースを前記コンピュータバスへ結合する前記複数の装置に適合する複数の装置用サブアダプターを含み、
前記複数の装置用サブアダプターの夫々は、
（ａ）前記複数のサブアダプターの夫々のための１又は複数のバッファと、
（ｂ）前記コンピュータバスと前記バッファ間のデータ転送を制御するものの、前記バックエンド・インタフェースと前記バッファ間のデータ転送を制御しない個別のデータマネージャと、
（ｃ）前記バックエンド・インタフェースと前記バッファ間のデータ転送を制御するものの、前記コンピュータバスと前記バッファ間のデータ転送を制御しない個別の制御装置と、を有することを特徴とする装置。
【請求項３】
バスを有するコンピュータにおいて使用されるための複数の装置用サブアダプターを有する電子カードであって、
前記複数の装置用サブアダプターの夫々は、
個々の前記装置用サブアダプのためのバッファと、
前記バスから前記バッファへのデータ転送を行うものの、前記バックエンド・インタフェースと前記バッファ間のデータ転送を制御しない個別のデータマネージャと、
前記バックエンド・インタフェースと前記バッファ間のデータ転送を制御するものの、前記コンピュータバスと前記バッファ間のデータ転送を制御しない個別の制御装置と、
所定の時刻において、単一のデータマネージャだけが前記バスと通信できるようにする調停回路と、
を含むことを特徴とする電子カード。
【請求項４】
前記調停回路は、状態マシンであることを特徴とする請求項３に記載の電子カード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる種類の装置をデータ処理システムのバスに接続するための装置用アダプターであるコンピュータ用バスインタフェース（以下、適宜「装置用アダプター」という）に関する。
【０００２】
本明細書では第１に、高度に簡略化したデータバスについて説明し、次にこの簡略化したバスが異なる種類のデータバス各種に発展した経緯を説明する。
【０００３】
一般に異なる種類の装置は異なる種類の装置用アダプターでバスに接続することができる。しかし、装置用アダプターは後述するように特定の装置に対して必ずしも最適化されるとは限らない。
【０００４】
図１はバス上での非常に簡略化したデータ転送の例を示す。転送シーケンスは図面の左上から始まり、次のようなものである。
【０００５】
１．送信側がデータ線（Data line ）にデータを送り出す。
【０００６】
２．送信側がレディ線（Ready line）を高電位にし、これによって受信側にデータが利用できることを示す。
【０００７】
３．これに応答して受信側がデータを回収する。
【０００８】
４．受信側はアクノリッジ線（Acknowledge
line）を高電位にし、これによって送信側に受信側でデータを取り出したことを示し、データ線上に別のデータを配置できることを示す。
【０００９】
５．送信側がアクノリッジ線上の信号を検出しレディ線を低電位にする。
【００１０】
６．受信側はアクノリッジ線上の信号を排除することでこれに応答する。
【００１１】
この時点で、全ての線は各々の本来の状態になっている。送信側は第２のデータのかたまりをデータ線上に送出することでこの処理を繰り返すことができる。前述のトランザクションの例は非常に簡略化した例である。バスを改良し複雑化する方法を想定するのは簡単である。その幾つかの例を以下に示す。
【００１２】
１．受信側がデータ内のエラーを検出し、所定のデータのかたまりを再転送するように要求を出すことができる。これに対応するには、さらにリピート線（Repeat line）を設け、これを介して受信側が繰り返し転送を要求できるようにする。
【００１３】
つまり、送信側がリピート線上で信号を受信すると、送信側は転送を繰り返す。逆に、送信側がこのような信号を受信せず、その代わりにアクノリッジ信号を受信している場合には、送信側は次のデータのかたまりを送信する。
【００１４】
２．送信側がデータ線上にデータのかたまりを送出し、レディ線を高電位にしたと仮定する。アクノリッジ信号をどれくらいの時間だけ待ち続けるべきだろうか？割り当てられた時間内にアクノリッジ信号を受信できなかった場合には、送信側はどうすべきだろうか？この問題に対する一般的な解決方法の１つには次のようなものがある。送信側が所定の時間内にアクノリッジ信号を受信していない場合、送信側はデータ送信を放棄する。
【００１５】
しかし、送信側がデータを送信しようとしているときに受信側は別のタスクの実行中でビジー状態だが、受信側はタスクが終了した時点でデータを受信したいと仮定すると、別の解決方法が考えられる。送信側はウエイト信号（Wait signal）を発見すると、データ送信を中止せずにウエイト信号が消滅するのを待ち続ける。
【００１６】
３．受信側以外の別の装置がデータバスに接続されていると仮定する。しかし送信側は特定の装置にデータを送信しようとしており、他の装置にはデータを無視してほしいとする。この場合選択線（Selection line）を追加し、特定の装置をデータに注目させるよう指示することができる。
【００１７】
４．上述の例３の場合と同様に、複数の装置がデータバスに接続されているとする。しかし上述の例とは対照的に、今度は装置が通信を開始しようとしているとする。装置はここでは送信側になる。しかし装置がそのようにできるとすると混乱が生じることになる。
【００１８】
解決方法は割り込み線（Interrupt
line）を追加することである。各々の装置は、データ送信前に割り込み線を使用して許可を求める。
【００１９】
追加機能を提供するためにバスに追加可能なさらなる種類の線について更に多数の例が存在する。そのため、多数の種類のデバイス・インタフェースが存在し、その各々が独自に線とデータ転送シーケンスの特定の組み合わせを有していても、驚くにはあたらない。
【００２０】
さらに、バスへのデバイス・インタフェースは孤立して作動することはない。装置とバスがこれらの間で最大速度に達する場合、この速度は他の何らかの部材または装置を犠牲にして得られるものである。
【００２１】
例えば、バスがプロセッサと印刷装置を結合する場合を考えてみる。プロセッサが印刷装置に最大限に集中しており例えばディスク駆動装置などバス上のその他の装置を全て無視している場合には非常に高速なデータ転送を行うことができると簡単に分かる。しかしこの場合には、プロセッサが印刷装置に関与している間他のタスクには利用できなくなる。つまり、印刷データのスループットは非常に高くなるが、他のタスクは一時停止したことになる。
【００２２】
この例で別の見方をすれば、プロセッサは印刷装置がデータを印刷するよりもはるかに速い速度でデータを送信することができる。つまり、実際に印刷に全面的に注目している間、プロセッサは印刷装置が印刷する時にアイドル時間を消費する。プロセッサはこのアイドル時間の間に他のタスクを実行することができる。
【００２３】
この種の問題に対する１つの解決策としてバッファの使用がある。簡単な例を以下で説明する。
【００２４】
送信側のデータバスが図２に示すように３２ビット幅だとする。受信側のデータバスはこれより小さく８ビット幅だとする。非常に原始的な装置用アダプターはステップ１からステップ４に示すように動作する。アダプター（Adapter）は８ビット刻みにデータを転送する。しかし、この方法における問題はすでに明らかである。受信側ができるだけ高速にデータを受信している間、送信側（Sender）は受信側（Receiver）の活動中バスに拘束される。送信側は他に何もできない。この方法は送信側から見れば非効率的である。
【００２５】
図３に図示するように、アダプターは送信側からの３２ビット幅のワード全部を取り出し、データをバッファ（Buffer）に取り込むことができる。ここで、バッファはアダプターが８ビット刻みで受信側にデータを送信しているときにこのデータを保持する。送信側は受信側がデータを受信するのを待つ必要がなくなったことになる。
【００２６】
受信側から送信側にデータを送信するような逆方向にデータを送信する場合、アダプターは逆のシーケンスを実行する。アダプターは受信側から８ビットきざみのデータを収集する。バッファ内に３２ビットを蓄積した時点でアダプターはこの３２ビットを送信側に送出する。
【００２７】
バッファを行う方法はバッファを行わない方法に対して改善を示すが、バッファを行う方法それ自体は、条件にあわせてバッファの適正な大きさならびにその他のパラメータを選択することにより改善することができる。
【００２８】
多数の設計上の制約が存在しまたデバイスをバスに接続する場合に交換条件が成立することは明らかであろう。このような接続を行うことのできるアダプター、本明細書では以下装置用アダプターと称するアダプターを設計する場合には、このような設計上の制約及び交換条件のため特定の種類またはクラスの装置についての設計努力は時間がかかる。次の種類またはクラスの装置をこのバスに接続しようとする場合、この新しい装置に対応する装置用アダプターを作成するには同様に大変な設計努力が必要になる。例えば特定の種類またはクラスの装置についてのバッファ仕様などのパラメータを一般的な設計マクロの目的から識別でき、利用者の指定した条件に適合するように装置用アダプターの設計を自動的に生成できるようなシステムが必要とされている。この装置用アダプターの設計はバスに接続しようとする所定の装置に対して最適化されるものである。
【発明の開示】
【発明が解決しようとする課題】
【００２９】
本発明は、装置用アダプターであるコンピュータ用バスインタフェースを提供することを目的とする。
【００３０】
本発明のさらなる目的は所定の環境に合わせて最適化または微調整できるコンピュータ用バスインタフェースを提供することである。
【００３１】
本発明の更に別の目的は、利用者の指定したパラメータを介して接続する特定の装置に合わせてカスタマイズすることのできるような汎用装置用コンピュータ用バスインタフェースを提供することである。
【課題を解決するための手段】
【００３２】
このため、本発明は、その１つの態様において、複数の装置をコンピュータバスに適合させるためのアダプター手段を含むコンピュータ用バスインタフェースであって、前記アダプター手段は、前記複数の装置の夫々に適合し、データを格納するためバッファ手段と、前記バッファ手段と前記コンピュータバス間のデータ転送を制御するための、前記バッファ手段の夫々のためのデータマネージャと、前記バッファ手段と夫々の前記装置間のデータ転送を制御するための、前記バッファ手段の夫々のための制御手段と、を含み、前記アダプター手段は、前記バッファ手段の夫々と前記コンピュータバス間のデータ転送及び前記バッファ手段の夫々と前記複数の装置間のデータ転送を制御するために使用される制御装置の何れかにデータを転送することを特徴とするコンピュータ用バスインタフェースを提供するものである。本発明は特定の種類またはクラスの装置について、バスに該装置を接続する回路を提供するものである。各々の装置に対する個々の回路はいくつかのパラメータ限度内で最適化または「微調整」することが可能である。汎用マクロを特定の装置について利用者の指定するパラメータと組み合わせて用いることで、利用者（ユーザ）の指定した該パラメータに基づいてカスタマイズされた、または微調整された装置用アダプターの設計を生成することができる。従って、他の方法では利用者が用手的に提供する必要のあるような特定の設計情報の大半を汎用マクロの仕様により自動的に生成することができるようになる。該マクロは広範な装置の支持条件に適合するような高度な設定を実施するものである。利用者は特定のシステム性能の条件に適合するように微調整するような方法で該マクロを設定することができる。
【発明の効果】
【００３３】
このように、本発明は、装置をコンピュータ内のシステムバスなどのバスへ接続するためのコンピュータ用バスインタフェースであって、装置を前記バスへインタフェースする装置用アダプターを設定するため利用者の指定したパラメータを受け取り、この後利用者の指定した該パラメータに基づいてカスタマイズされた装置用アダプターを生成する。プログラム自在な共通の設計マクロを使用することにより、利用者は複数の異なる装置をバスに接続するためのカスタム・装置用アダプターを簡単に特定し生成することができる。得られたアダプターの構造においては複数の異なる装置が単一の装置用アダプター集積回路またはカードによりコンピュータバスとインタフェースできるようになる。
【００３４】
微調整自在な構造は、規約または設計ルールに基づいたインタフェースを有する基本構造の枠組みを提供する。規約に準拠したインタフェースを用いることで特定ブロックの内部構造はインタフェース設計のルールを変更することなく設定することができる。この概念により、設定自在な基本的マクロの概念を変更することなく、複数の様式ならびに下位ブロック構造を実現できる。
【発明を実施するための最良の形態】
【００３５】
［概要］
本発明は装置を共通のバスに相互接続するための装置用アダプターであるコンピュータ用バスインタフェースを動的に設定するための方法を含む。図４及び図５はこのような接続で得られた装置の図面である。ここから幾つかの特徴が明らかになっている。
【００３６】
１．バス１２が図示してある。一般に、バスはマイクロコンピュータにおいてシステムバスである。装置１４はバスとは直接通信しない。その代わり、装置１４は装置用アダプター１６と通信する。本発明は所定の装置（Device）１４とバス１２が相互に通信できるようにする装置用アダプター１６を作成するための方法ならびにその装置を提供する。設定自在なマクロは全てが同じ種類またはクラスに属する複数の装置を支持するまたは異なる種類の複数装置を支持する装置用アダプターを作成する柔軟性を有している。これ以外にも、また本発明の柔軟性のさらなる説明として、該マクロは各々の（同様なまたは異なる）相互接続装置のために独立した装置用アダプターを提供するように設定することができる。
【００３７】
２．これらの装置１４は通常の周辺装置、例えばディスク駆動装置及び印刷装置など、コンピュータに通常接続されるかまたは内蔵される装置を含むことができる。さらに、これらの装置は以下のようなその他の装置を含むことができる：
−−ビデオ・アダプター
−−キーボードと指示装置
−−マルチメディア・アダプター
−−メモリー制御装置
−−メモリーとＩ／Ｏキャッシュ
−−通信インタフェース
−−その他のバスへのインタフェース
原理的に、図４の装置１４として作動できる装置の種類には基本的に制約がない。
【００３８】
３．１つの実施例において、生成された装置用アダプターはバスに対する単一の負荷を表わす。単一負荷の概念の１つの成果は、バスが装置用アダプターを一般に単一の装置として取り扱うことである。１つの例外はアドレシングである：図示した４台の装置のうちの１台を選択するには、プロセッサ（図示していないがこれもバスに接続してある）は装置用アダプターにアドレスを供給する必要があり、これに従って装置用アダプターが対応する装置を選択する。装置用アダプターがあらゆる態様においてプロセッサから見て単一の装置であれば、その装置用アダプターは単一のアドレスのみを有することになる。
【００３９】
単一の負荷であることから、装置用アダプターは他の方法ではバスが負担することになるある種の負荷を簡略化する。
【００４０】
４．作成された装置用アダプターは「微調整自在」である。さらに、微調整は各々の種類またはクラスの装置に対して行われる。好適実施例では、装置用アダプター内部に、図５で図示したように各々の装置に割り当てたバッファ（ＢＵＦ）がある。一般に各々の装置は異なるバッファ要求を有するので、設計中に装置用アダプターは各々の装置に対して最高の、または少なくとも良好なバッファ設計に対して最適化される。
【００４１】
さらに、後述するような装置用アダプターの特定の特性のため、バッファのある種の特徴は装置用アダプター内のその他の回路を変更する必要無しに変化させることができる。
【００４２】
５．データと制御はマクロ内部で分離されている。インタフェース制御の機構はマクロ内のデータパスから独立して指定される。データパスを独立して指定することにより、機能ブロック間の制御信号インタフェースは特別な制御構造なしに各種のデータ交換について動作できる。一例として、インタフェースとの間のデータ転送はデータ転送の長さとは無関係に同様な方法で制御できる。規約に準拠して動作する制御インタフェースはデータ内容とは無関係にデータ交換を開始し、終了し、監視する機構を提供する。
【００４３】
［発明のさらに詳細な説明］
本出願に関連して、設定自在な装置用アダプターを生成し作成するために使用されるソフトウェアをマクロと称する。このマクロはＶＨＤＬコンパイラを必要とする。ＶＨＤＬコンパイラは商業的に入手可能である。ＶＨＤＬは、ＶＨＳＩＣハードウェア記述言語（VHSIC Hardware Description Language）を表わす略語である。またＶＨＳＩＣは超高速集積回路（Very High Speed Integrated Circuit）を表わす略語である。
【００４４】
出願人はオレゴン州ビーバートンにあるモデルテクノロジー社（Model Technology, Beaverton, Oregon）から入手可能な、Ｖ−システムＶＨＤＬシミュレータおよびコンパイラプラットホーム２．５版（V-system VHDL Simulator and Compiler Platform Revision 2.5）として周知の商業的に入手可能なＶＨＤＬコンパイラを使用した。
【００４５】
カスタマイズした装置用アダプターを設計するため、マクロを２種類の異なる方法で使用する。即ち、（１）ゲートレベルの論理図を同期させるためと、（２）回路のシミュレーションを行うためである。
【００４６】
［合成（Ｓｙｎｔｈｅｓｉｓ）］
合成を実行するには、利用者は次のことを行う。
【００４７】
１．利用者が以下のパラメータを指定する：
−−デバイス・インタフェースの幅（例えば８、１６、３２ビットなど）
−−デバイス・インタフェースのアドレスの大きさ（即ちビット数）
−−装置用アダプター内に含まれるバッファの深さ（ビット数）。バッファについての詳細は後述する。
【００４８】
−−バッファのパッキング
これらのパラメータはマクロモジュールにおけるPCIMACRO＿USER＿PARAMS.VHDとラベルをつけたファイル内に挿入することで指定する。
【００４９】
２．利用者は商業的に利用可能な合成エンジン（Synthesis
Engine）、例えばカリフォルニア州マウンテンビューにあるシノプシス社（Synopsis Incorporated, Mountain View, California）から入手可能なデザイン・アナライザー３．０ｃ版（Design Analyzer 3.0c）などを用いて設計をコンパイルする。コンパイルにおいて、利用者は次の順番でマクロファイルをロードすること：
pcimacro＿user＿params.vhd,
macro ＿pkg.vhd,configurable＿bit ＿reg.vhd, configurable ＿dword ＿reg.vhd,clktree.vhd,
signaltree.vhd, burst＿size＿cntr.vhd,next＿addr＿cmpr.vhd, new ＿transfer＿counter.vhd, control＿reg.vhd,dm＿bk＿sm.vhd, dm＿fe＿sm.vhd, data＿manager.vhd,address ＿counter.vhd, devsel ＿timer.vhd, master ＿latency ＿timer.vhd,parity36.vhd, target＿latency ＿timer.vhd,
master ＿state ＿machine.vhd,slave ＿state ＿machine.vhd, pci＿fsm.vhd,
cycler.vhd, cc ＿bk＿sm.vhd,cc＿bypass＿sm.vhd, cc ＿fe＿sm.vhd, cycle＿controller.vhd,dpr
＿gen.vhd, pipeline ＿block.vhd, valid＿data＿counter.vhd,address ＿pointer.vhd, buffer ＿element.vhd, memory ＿element.vhd,output＿latch.vhd, new＿fifo.vhd,
fifo.vhd,byte＿sterring＿logic.vhd, bist ＿reg.vhd, class＿code＿reg.vhd,command
＿reg.vhd, device ＿id＿reg.vhd, header ＿reg.vhd,interrupt
＿line＿reg.vhd, interruput ＿pin ＿reg.vhd, max＿lat ＿reg.vhd,min ＿gnt ＿reg.vhd, revision
＿id＿reg.vhd, status ＿reg.vhd,vendor＿id＿reg.vhd, high ＿bit ＿reg.vhd, base ＿address ＿reg.vhd,rom ＿base＿address ＿reg.vhd, miscelaneous ＿configuration ＿regs.vhd,config.vhd, bk＿end.vhd, pci＿macro.vhd,
nan2.vhd, dffpq.vhd,dffrpq.vhd, or2.vhd, hbuf.vhd, sbuf.vhd, inbuf.vhd,
inpd.vhd,inv.vhd, iobuf.vhd, iobufpci.vhd, iopd16.vhd, iopd12sl.vhd,iobuf ＿iopd12sl.vhd, opd16.vhd, otpd16.vhd, bus＿hbuf.vhd,bus ＿inbuf.vhd, iopdpci.vhd, bus ＿inv.vhd, bus＿opd16.vhd,iobuf
＿iopd16.vhd, configured＿pci ＿macro.vhd
合成の積はゲートレベル図またはネットリストである。ネットリストはゲートセルがどのように相互に接続されているかの記述である。ネットリストの例は次のようなものである：
AND1 2 4 10
OR1 10 12 14
このリストはＡＮＤゲート１が２つの入力を有することを表わしている。一方はノード２に接続され、もう一方はノード４に接続される。出力はノード１０に接続される。このリストはＯＲゲート１が２つの入力を有することを表わしている。一方はノード１０に接続されており（これはＡＮＤゲートの出力である）、他方はノード１２に接続される。出力はノード１４に接続される。
【００５０】
従って、合成エンジンは、マクロ及び指定したパラメータと合わせて、ゲートレベル図を合成する。合成にはセル・ライブラリが必要で、これはゲートレベル回路の構築ブロックを提供する。選択したセル・ライブラリを所定の技術（例えばＣＭＯＳ、バイポーラなど）に使用する。セル・ライブラリは商業的に入手可能であり、従来技術で周知である。好適なセル・ライブラリはオハイオ州デイトンにあるＡＴ＆Ｔグローバル・インフォメーション・ソリューションズ社（AT&T Global Information Solutions company, Dayton Ohio）から入手可能なＮＣＲＶＳ５０標準セルライブラリである。
【００５１】
ゲートレベル図は、最終的に装置用アダプターを実装する１つまたはそれ以上の集積回路および／またはカードに組み込まれる。
【００５２】
［シミュレーション］
集積回路の製造の前に、２種類のシミュレーションを実行する。機能的シミュレーションは合成の前に実行し、ゲートレベル・シミュレーションは合成の後で実行する。機能的シミュレーションを実行するには、利用者が前述の合成段階と同様に指定し、オレゴン州ビーバートンにあるモデルテクノロジー社（Model Technology, Beaverton, Oregon ）から入手可能な、Ｖ−システムＶＨＤＬシミュレータおよびコンパイラプラットホーム２．５版（V-system VHDL Simulator and Compiler Platform Revision 2.5）などのコンパイラ／シミュレータを使用してマクロをコンパイルしシミュレートする。ゲートレベルのシミュレーションは合成の後で実行して、製造後に回路を試験する際に使用する試験ベクトルを生成する。ゲートレベル・シミュレーションを実行するには、ゲートレベル図またはネストリスト（合成段階で生成される）をカリフォルニア州サンノゼにある（本社はマサチューセッツ州ローウェルに所在する）カデンス・デザインシステムズ社（Cadence Design Systems Inc., San Jose, California ）から入手可能なベリログ・シミュレータ（Verilog Simulator ）などの物理設計シミュレータに入力する。
【００５３】
［ルーティング（Ｒｏｕｔｉｎｇ）］
合成とシミュレーションの後、合成の段階で生成したネットリストはカデンス・デザインシステムズ社からこれも入手可能なタンセル２．４．０版（Tancel version 2.4.0）などのルーティング・プログラムで処理する。ルーティング・プログラムは製造しようとする集積回路の各層の機械語表現を生成する。実際には、ルーティングの段階では各々が製造しようとする集積回路のトポロジーの異なるレベルを記述する複数のレイアウト図を生成する。
【００５４】
ルーティング段階の積／出力はデータベースである。このデータベースは従来技術で一般に周知の技術を用いて集積回路の製造に使用するマスクを作成するために使用する。
【００５５】
マスクを生成した後、従来技術で一般に周知の技術を用いて１つまたはそれ以上の集積回路を製造する。全体的な処理の流れを図１２に図示した。アダプターカードも同様な物理レイアウト設計ツールと従来技術で一般に周知の技術を用いて製造できることに注意すべきである。
【００５６】
［微調整構造の概略］
図５は得られたゲートレベルの略図でタスクまたは機能に従ってゲートのグループ化の概略を示す。つまり、各々の装置のサブアダプターについて、−−１つのゲートのグループはデータマネージャ（DATA MGR）として動作する；
−−１つのゲートのグループはバッファ（BUFFER）として動作する；
−−１つのゲートのグループはサイクル制御論理回路（CYCLE CONTROL ）として動作する；
−−１つのゲートのグループは（任意で）ユーザー論理回路（USER LOGIC）として動作する。
【００５７】
図５に図示したように、各々の装置サブアダプター１８はそれ自体のデータマネージャ２０と、バッファ２２と、サイクル制御装置２４を有し、これら全ては合成段階で生成されたものである。任意のユーザ論理回路２６は利用者が定義するもので、マクロとは独立しており、所定の装置１４を装置サブアダプター１８のバックエンド・インタフェース２８に適合させるものである。ユーザ論理回路は単純なゲートや装置特有の論理回路、その他の何らかの特殊な条件例えば（特定の装置に必要であれば）バックエンド・インタフェースに提示するまたはここから受信した全ての信号を同期させるなどの事柄を含む。さらに、マクロは特定の装置用アダプター集積回路またはカード１６についての全てのデータマネージャを取り扱う単一の有限状態マシン（ＦＳＭ）３０を生成する。
【００５８】
図５のブロックは一般に次のように作動する（幾つかの例外については後述する）。
【００５９】
データマネージャ２０はバス１２とバッファ２２の間のデータ転送を制御する。つまり、バス１２は（有限状態マシンを経由して）データマネージャを操作する。データマネージャはバスインタフェース１３経由でバスに接続された３本の制御線、要求（Request）、確認（Acknowledge）、割り込み（Interrupt）（図では、（それぞれ端子名：ＲＥＱ、ＡＣＫ、ＩＮＴＥＲＲＵＰＴ）と有限状態マシン３０に結合した内部バス１５を有する。
【００６０】
バッファ２２は一時的にデータを保持する。バッファは先入れ先出し型（ＦＩＦＯ）が望ましい。
【００６１】
サイクル制御論理回路２４はバックエンド装置１４とバッファの間のデータ転送を制御する。つまり、装置は（おそらくユーザ論理回路を介して）サイクル制御論理回路を操作する。ある意味で、データマネージャとサイクル制御論理回路は協動してデータ転送を実行する：前者はバスを操作し、後者はバックエンド装置を操作する。
【００６２】
単一の有限状態マシン３０は所定のＩＣまたはカード１６の全てのデータマネージャ（Data MGR）２０を制御する。有限状態マシンの主要な機能は装置１４間の衝突を調停する（アービトレーション）ことである。つまり、２つの装置１４が同時にバス１２と通信しようとした場合、有限状態マシンはその一方を待機させる必要がある。
【００６３】
［マクロ内の機能ブロック］
マクロは一組の機能ブロック（例えば有限状態マネージャ、データマネージャ、バッファ、サイクル制御装置など）からなりこれら自体が拡張自在である。これらの機能ブロックの間のインタフェースは規約またはルールに従うインタフェースであり、可変タイミングおよびワード幅仕様を有する。例えば、バッファブロックは、インタフェースの規約／ルールを変更せずに深さ１バイトのＦＩＦＯまたは深さ４ＫバイトのＦＩＦＯのどちらかを有するように設定することができる。従ってサイクル制御装置インタフェース規約を変更せずにバッファの可変幅データパスを設定することが可能である。この方法では、サイクル制御装置はデータと無関係な方法で機能を実行している。
【００６４】
データと制御はマクロ内で分離されている。インタフェース制御機構はマクロ内のデータパスとは独立して指定される。データパスを独立して指定することにより、機能ブロック間の制御信号インタフェースは特殊な制御構造無しに各種のデータ交換について動作することが可能である。一例として、インタフェースとの間のデータ転送はデータ転送の長さとは無関係に同様な方法で制御できる。規約に準拠して動作する制御インタフェースはデータ内容とは無関係にデータ交換を開始し、終了し、監視する機構を提供する。これは、言うなればデータ列には制御動作が全く含まれていないということである。協動する機能ブロックに関係する全ての制御動作は制御インタフェース内に含まれる。
【００６５】
データパス２５と制御パス２７を分離した内部バスを図６に図示する。内部バス３２は有限状態マシン３０、データマネージャ２０、バッファ２２、およびサイクル制御装置２４の機能ブロックとの内部インタフェース（Ｉ／Ｆ）へ結合する。外部バスインタフェース１３もＦＳＭ３０とバス１２の間の細線（制御）と太線（データ）で示したように独立したデータと制御を有する。エクスポートＩ／Ｆ２９は図５のバックエンド・インタフェース全部の複合体に対応する。図６は各種の機能ブロック（前述のように所定の装置用アダプターあたり１つだけしか存在しないＦＳＭは除く）についての複数の実例を示す。機能ブロックの各々の例は特定の機能ブロックを内部装置アダプターバスへ結合するインタフェース（Ｉ／Ｆ）も有している。
【００６６】
図５の各々の機能ブロックについての詳細な説明は後述する。
【００６７】
［バスインタフェース／有限状態マシン］
マクロは所定の装置用アダプターについて単一のバスインタフェースを生成する。このバスインタフェースはバス１２と装置用アダプターＩＣまたはカード１６との間の電気的インタフェースを提供する。バスインタフェースはバスと（１つまたはそれ以上の）データマネージャの間のデータの流れを管理する有限状態マシンへバスを結合させる。バスインタフェース機能の重要な部材はPCI ＿FSM と呼ばれるモジュール（またはフロントエンド・バス有限状態マシン）に含まれる。バスインタフェースの動作に責任を負う有限状態マシン内部に２つの独立した状態マシンがあり、一方はスレーブ動作、もう一方はマスター動作を行う。マスター／スレーブ状態マシンの各々はバスインタフェース機能を実行する。
【００６８】
スレーブ状態マシンの一例として、バス１２がアドレス相にある場合、設定論理回路（後に記載する表１及び表２に示してあるconfig.vhdマクロファイルが生成する）はバックエンド装置がアクセスされていることを示す。アクセスがマクロへのバックエンド装置インタフェースの一方に属すると決定されるとすぐ、バス上のアドレスは有限状態マシン内部の内部アドレスレジスタに読み込まれる。バスサイクルは図６の内部バス３２のための内部制御信号に翻訳される。
【００６９】
これに続くデータ相各々について、設定論理はさらに内部アドレスを有効にする必要がある。
【００７０】
バックエンド装置１４がバスを要求しこれが許可されると、マスター状態マシンはバスデータピンに内部アドレスを出力し、適切なバス信号を発行してバス転送を開始させる。有限状態マシンが有効なバスサイクルを検出すると、有限状態マシンはバス１２へデータ相の発行を開始する。
【００７１】
複数のデータマネージャとサイクル制御装置インタフェースの間で共有している唯一のマクロ資源は有限状態マシン３０である。これは１台だけのバックエンド資源が適当な時刻にバスへのアクセスを許容されることを保障するものである。バス資源がビジー状態の場合バックエンド装置への後戻りが発行される。
【００７２】
［データマネージャ／サイクル制御装置の対］
装置サブアダプター１８は構造化されており、サイクル制御及びデータ管理装置が対になって動作する。そのため、所定の装置サブアダプター１８について実現される各々のバックエンド・インタフェース２８はデータマネージャ２０とサイクル制御装置２４のブロックの対のパラメータ化と組み込みを（バッファブロックと併せて）必要とする。バッファとフロントエンド及びバックエンドのバスを設定した装置サブアダプターとの間のデータ転送は、規約インタフェースを介してデータマネージャとサイクル制御装置により組織化される。
【００７３】
マクロ内に設定された各々のバッファは独立したデータマネージャを必要とする。READ/WRITEバッファを分離し独立させるような設定が所望の場合には、READ指示用にひとつとWRITE指示用にひとつの２つのデータマネージャが必要になる。サイクル制御装置は他の協動する機能ブロックまたはエクスポート・インタフェースとの規約インタフェースを介して内部バッファ及びバックエンド・インタフェースとの間の全てのデータ転送を制御する。この方法で、データパスは制御パスとは独立して指定できるので、データパスは制御インタフェースを変更せずに複数の幅の装置を支持するように幅の設定を行うことができる。同様に、これらのデータパスのためのバッファも制御インタフェースを変更せずに設定することができる。
【００７４】
［バッファ］
マクロ構造が設定され拡張自在であることから、マクロのバッファ管理装置をパラメータ化して幾つかのバッファの選択肢を提供することが可能である。一般に、内部バッファの深さは所定のシステムの制約と、バスのレテンシー、割り込みサービスのオーバヘッド、キャッシュ線の大きさ、装置のコンプリメント、およびシステム全体の性能目標で決定する必要がある。従ってマクロはシステムの目標に適合するようにバッファを微調整する機構を実装することになる。バッファはＦＩＦＯ構造であり直接アドレスすることはできない。ほぼ満杯（Almost Full）およびほぼ空（Almost
Empty）フラグはプログラム自在である。バッファは２重ポートになっている。次のような規則がバッファの大きさを決める際に適用される：
１）バッファは幅が８、１６、３２ビットに拡張自在である。パッキングが所望の場合にはバッファの幅を３２ビットとする。
【００７５】
２）スプリット送受信データパス（即ち単方向バッファ）が所望される場合には、各々のパス内のバッファの個数を等しくする（即ち読み取りバッファと書き込みバッファの個数を同じにする）。
【００７６】
３）個々のバッファ各々の深さは２の倍数として各々の単方向経路の全てのバッファは同じ大きさとする。
【００７７】
４）バッファの深さはデータマネージャ内にプログラムしてあるバス転送の大きさより大きいかまたは等しくする。
【００７８】
５）ほぼ満杯およびほぼ空のフラグは同じにして各々の単方向バッファについて等しく評価されるようにし、バス転送の大きさ（即ち一例としてキャッシュ線の大きさ）の整数倍の大きさとする。バッファの幅は８、１６、３２ビットに拡張自在である。バックエンド装置への直接アクセスはバックエンド装置のデータ幅と比例すること。
【００７９】
独立した読み取り及び書き込みバッファが所望の場合には、バックエンド・インタフェースからの読み込みと書き込みのアドレス（通常バックエンド装置から発行される）はこれらの同一サイクルでのデータと並行してバッファされる必要がある。これによりデータマネージャは他のマスターまたはターゲット装置からバス上に発行された再試行及び中断から復旧することができる。
【００８０】
データマネージャはデータ幅とは無関係にバッファとの間のＰＣＩバスとの間のデータの動きを制御する。バス幅とバックエンドとの間の大きさの不適合はバッファ・パッキングの場合を除き更新されない。バイト・イネーブル（Byte Enable）も制御用バッファ内に保存される。
【００８１】
バッファ・パッキングは３２ビットバスの利点を生かすためバイト単位で行われる。パッキングは次のように行われる。
【００８２】
１６ビットのデータフィールドあたり２バイト、３２ビットＰＣＩ
ワードあたり２〜１６ビットのデータフィールド
３２ビットバス幅ダブルワードあたり４バイト
これ以外のバイト・パッキング選択肢は支持されない。バッファ・パッキングはバッファ詰め込みより先に行われ、バッファ内のデータはバスへ転送するためのパッキングされた順番となるか、またはバックエンド・インタフェースへアンパックするためと制御するためにバッファ内に存在する。バックエンド・インタフェースでのデータのパッキングは支持されない。
【００８３】
複数バッファ構成はＦＩＦＯで支持され、次のように設定できる：１）図７に示すように、バッファは単方向読み込み／書き込み用に設定できる（即ち単一バッファ）
２）図８に示すように、バッファは独立した読み込みバッファと書き込みバッファに設定できる（即ち２個の独立したバッファ）
３）図９に示すように、複数バッファ（バッファ０番〜ｎ番）はピンポンバッファまたは循環バッファとして設定できる（即ち読み込み用に２つまたはそれ以上のバッファ、また書き込み用に２つまたはそれ以上のバッファ）。
【００８４】
［バックエンド・インタフェース］
各バックエンド・インタフェースは汎用アドレス及びデータインタフェースである。「汎用」アドレス及びデータインタフェースの概念は装置へのバックエンド・インタフェースを実行するのに必要な一組の信号で定義される。設定可能な汎用インタフェースは数種類存在する。これには要求／許可プロトコルを使用するマスタリング・インタフェース、保持と保持アクノリッジのプロトコルを使用するマスタリング・インタフェース、スレーブ動作用要求／許可プロトコルを使用するＤＭＡスレーブ・インタフェース、直接アクセス・プロトコルを使用する単純スレーブ・インタフェースが含まれる。各バックエンド・インタフェースは前述の「汎用」インタフェース機構の形式のどれかで設定することができる。さらに、装置のデータ特有の特性も、例えばデータ幅、アドレス幅、バイト・イネーブル幅など設定することができる。これはPCIMACRO＿USER＿PARAMSファイル内で利用者が指定するパラメータの適切な設定により行う。
【００８５】
エクスポートするバックエンド・インタフェースは前述のように汎用アドレス及びデータバスである。別個の入力及び出力のアドレス及びデータバスが用いられる。これらのバスは好適実施例においては分割され完全同期かつ連続駆動である。非同期インタフェースはマクロ外部の利用者インタフェース論理回路ブロック内で対応させる必要がある。３状態バスはマクロからエクスポートされない。これは信号状態が既知の論理値に連続駆動される（＝１または＝０のいずれかに）ことを表わしている。
【００８６】
分割バスはデータ・イン接続とデータ・アウト接続が別個の信号経路の組を必要とすることを意味する。これは３状態の変形であるバスとは対照的である。３状態バスでは、入る方向または出る方向どちらかの単一のデータパス接続のみが存在する。分割バスはアドレスパス接続とバイト・イネーブルパス接続にも適用される。
【００８７】
サイクル制御装置は全てのバックエンド・インタフェース操作の管理を行う。サイクル制御装置で支持されるサイクルの種類は以下に述べるとおりで、スレーブ・バックエンド、スレーブＤＭＡ（単一サイクル）、スレーブＤＭＡ（複数サイクル）、マスター・バックエンド・インタフェース、ＤＭＡ（単一サイクル）、ＤＭＡ（複数サイクル）が含まれる。
【００８８】
スレーブサイクルは８、１６、３２ビットインタフェースでマクロにより支持される。スレーブサイクルはバス上の代替マスターから発行することを意図している。ピア・ツー・ピアのスレーブサイクルはバスを宛先とするもの以外は支持されない。バックエンド・ピア・ツー・ピア・スレーブサイクルは支持されない。ＤＭＡで管理されていてもいなくても読み取りと書き込みのサイクルはバックエンド・インタフェースにおいて支持される。直接スレーブサイクルは所望なら内部ＦＩＦＯをバイパスするように設定される。この場合マクロは内部バッファへ転送されるデータを除きデータの一貫性管理を仮定せず、バックエンド・インタフェースへの順列外転送を支持しないので実装は注意を要する。
【００８９】
バックエンド単一サイクルＤＭＡスレーブアクセスはサイクル制御装置により支持される。サイクル制御装置はデータを特定のＦＩＦＯ構造へ転送する際にバックエンドバスの方向転換とＤＭＡスレーブサイクルの終了を監視する。ＤＭＡの指令する読み取りと書き出しはどちらも支持される。
【００９０】
複数サイクルスレーブが指令するＤＭＡはバックエンド・インタフェースでサイクル制御装置により支持される。複数サイクルＤＭＡはバックエンド・インタフェースが転送継続中にバスの所有を維持する必要がある。バックエンド・インタフェース制御が終了するときは、現在のＤＭＡサイクルが完了したものと仮定される。複数サイクルＤＭＡを次に再開するにはバスの再調停が必要で、おそらくはデータマネージャＤＭＡレジスタの再プログラミングも必要になる。
【００９１】
マスター装置はバックエンド・インタフェースとして支持される。マスターは完全なバッファ支持または最小限の支持またはバッファなしに設定できる。統合ＤＭＡ能力を含む高度なマスターは障害にならないようにバッファ・バイパスモードで実行する単純なデータマネージャを使用しようとする。データマネージャとサイクル制御装置の対はまだ必要とされるが、マスターＤＭＡ単一サイクルが各々のバックエンド・インタフェースＤＭＡ単一サイクルでＰＣＩ調停を発生させる。これは読み取りと書き込み両方のＤＭＡサイクルに適用される。
【００９２】
複数サイクルＤＭＡバックエンドサイクルは内部バッファに格納されるアドレスとデータの両方で支持される。
【００９３】
バックエンド・インタフェースは８、１６、３２ビットデータパスを有する装置を支持するように幅を設定自在なデータパスを有する。内部データパスはバッファ・パッキングが有効になっているところを除いて全ての場合にバックエンド装置データ幅を反映する。
【００９４】
データパスがバッファすることを含むように設定することも可能である。これは利用者が所望のバッファ数と各々のバッファの深さをPCIMACRO＿USER＿PARAMSファイルで指定することで行う。
【００９５】
バックエンド・アドレスバスも装置とインタフェースするように幅を設定する。アドレス＿イン・バスとアドレス＿アウト・バスの両方が提供される。
【００９６】
マスター及びスレーブ両方のバースト転送は次のように支持される：マスターバースト転送では、バックエンド・マスターからバスへの書き込みが２種類の方法で行われる：１）シーケンシャルではないアドレス（内部バッファに格納されたアドレスとデータの双方）では、各々の書き込みは単一サイクルとして行われる。
【００９７】
２）シーケンシャルなアドレスでは、書き込みはバースト転送においてバスを横断するバーストである。
【００９８】
スレーブ・バースト転送では、バックエンド・インタフェースへの転送にはバックエンドがアドレス要求も有している場合以外データをバッファすることだけが必要とされる。直接アクセスは内部バッファをバイパスする。直接アクセスはバッファしたアクセスに対して優先権を有する。
【００９９】
［動作例］
以下の例は本発明の重要な原理を示したものである。装置が軸の回転位置を表わす８ビットのワードを生成する回転位置エンコーダであると仮定する。バスを含むマイクロコンピュータは異なる時刻に８ビットの数を確定したいものとする。
【０１００】
前述のようなマクロを用いて装置用アダプターを製造し装置する。８ビット数を得るには、マイクロコンピュータが装置（即ち回転位置エンコーダ）のアドレスをバスに配置する。装置用アダプター内の有限状態マシンはその装置に対応するデータマネージャとサイクル制御装置の対を選択する。
【０１０１】
サイクル制御装置はユーザ論理回路に対して位置エンコーダ内の８ビットワードを読み取るように指令する（このイベントで必要とされる特定の信号シーケンスは使用する特定のエンコーダによって変化する）。ユーザ論理回路はこれに応答して位置エンコーダを読み取り、８ビットワードをバッファ内に読み込む。データマネージャはバッファ内の８ビットワードを探し、他の装置がバスで競合していないか問い合せる。競合が存在していなければ、データマネージャは８ビットワードをバス上に配置する。マイクロコンピュータのプロセッサはここで回転位置にアクセスできるようになる。マイクロコンピュータが回転位置情報の更新を希望する場合はこのシーケンスを反復する。
【０１０２】
［さらなる考察］
１．図５の破線の囲み１６内部に図示してある装置用アダプターは図１０に図示したような拡張カード上に構成することができる。この拡張カードを図１１に図示したようにマイクロコンピュータ内部の拡張スロットへ挿入することができる。従来技術で周知のように、拡張スロットは実際にはコンピュータのシステムバスに接続するエッジコネクタである。拡張カードは図１０に示すように、接続しようとする各々の装置に１つずつの、複数のＣコネクタ３４を含む。図５のユーザ論理回路が拡張カード自体に位置している場合、拡張カードは各々の装置に対して異なるインタフェースを提供する。各々のインタフェースは図１０に示したＣコネクタの１つで表現されている。
【０１０３】
これ以外では、図５の装置用アダプター１６は図１１に示したようにコンピュータのシステム基板上に装置することもできる。装置用アダプターはシステムバス（即ち図５のバス１２）に直接接続する。装置は例えばリボンケーブルなどの従来の相互接続技術を使用してシステム基板へ接続する。
【０１０４】
図５の破線の囲み１６内部に図示した装置用アダプターは、接続する装置の個数が比較的少数に制限されている場合、単一の集積回路（ＩＣ）または複数チップモジュール（ＭＣＭ）に構成して、こうしたＩＣまたはＭＣＭの利用可能なＩ／Ｏピンが過剰とならないようにすることができる。このＩＣまたはＭＣＭは前述のように装置することができる（即ちシステム基板上または拡張基板上に装置する）。
【０１０５】
２．図５はバックエンド・インタフェースを有する所定の装置を接続するために使用するユーザ論理回路を示す。既存の装置はマクロと次のようにインタフェースさせることができる：
Ａ．バスの既存の仕様をバックエンド・インタフェースの仕様と置き換える
Ｂ．バックエンド・インタフェースの既存の仕様を装置インタフェースの仕様と置き換える
ファイルcycle＿controller.vhdとbk＿end.vhd の変更により（これらのファイルは後に示す表１及び表２に一覧してある）これらの置き換えを行った後、バックエンド・インタフェースは装置の特性に適合するようになる。
【０１０６】
３．装置用アダプターは図５の装置とはバスでインタフェースしている。バスは異なる時刻に各々のバッファと（バッファの各々のデータマネージャを経由して）通信する。
【０１０７】
４．マクロの特定の特性が重要である。マクロはバックエンド・インタフェースと互換性がとれるようにデータマネージャ、バッファ、サイクル制御論理回路の設計を作成する。バッファのパラメータが変化しマクロを２回目に実行して、第２の機能ブロック論理回路を作成した場合でも互換性は維持される。第２の回路はバックエンド・インタフェース及びそれまでのサイクル制御論理回路と互換性を維持している。
【０１０８】
５．マクロは以下のような種類のデータマネージャの仕様を許容する：
０  バッファなし（ほとんどデータマネージャの機能がない）バックエンド・スレーブ装置
１  双方向スレーブＤＭＡエンジン（ピア・ツー・ピアを含む）
２  バス１２へ書き込むためのスレーブＤＭＡエンジン
３  バス１２から読み込むためのスレーブＤＭＡエンジン
４  バッファなしマスター、読み込みと書き出し（単純なデータマネージャ機能）
５  バッファ付き読みとりマスター、ランダムアクセス
６  バッファ付き読みとりマスター、順次アクセス
７  バッファ付き書き込みマスター、ランダムアクセス
８  バッファ付き書き込みマスター、順次アクセス
９  バッファ付き双方向マスター、順次アクセス
６．好適実施例において、バス１２はＰＣＩバスであって、本明細書において背景資料として参照に含めている、ＰＣＩ仕様書２．０版−１９９３年４月３０日付、およびＰＣＩ
ＩＤＥ追補０．６版（ＰＣＩ ＳＩＧ委員会監修）−１９９４年１月１２日付（Peripheral Component Interconnect Specification Rev.2.0 - April 30,
1993 and PCI IDE Addendum Rev. 0.6 (in review by PCI SIG Committee) - January
12, 1994 ）（両方ともオレゴン州ヒルスボロー、エラム・ヤング・パークウェイ北東５２００、ＰＣＩ専門グループ（PCI Special Interest Group, 5200 N.E. Elam Young Parkway, Hillsboro,
Oregon 97124）から入手可能）に更に詳細に述べられているように、以下の信号を伝送する。
【０１０９】
ＣＬＫ：ＰＣＩシステムクロック入力
ＲＳＴ＃：ＰＣＩリセット。全てのＰＣＩ装置出力信号は非同期的に３状態へ駆動される
ＡＤ（３１：０）：多重化されたＰＣＩのアドレスとデータ
Ｃ＿ＢＥ（３：０）：多重化されたＰＣＩのバス・コマンドとバイト・イネーブル
ＰＡＲ：ＰＣＩパリティ
ＦＲＡＭＥ＃：サイクル・フレーム。これは現在のバスマスターにより駆動されバス・アクセスの開始と持続を指定する。
【０１１０】
ＩＲＤＹ＃：
イニシエータ・レディ。開始したバスマスターの現在のトランザクションデータ相を完了し得る機能を表わす。データ相を完了させるには、ＩＲＤＹ＃とＴＲＤＹ＃の両方がクロック端で活動状態になる必要がある。
【０１１１】
ＴＲＤＹ＃：ターゲット・レディ。ターゲット・エージェントがトランザクションデータ相を完了し得る能力を表す。データ相を完了させるには、ＩＲＤＹ＃とＴＲＤＹ＃双方が有効クロック上で活動状態になる必要がある。読み込みについては、ＴＲＤＹ＃はＡＤ（３１：０）上の有効データを表わす。書き込みについては、ＴＲＤＹ＃はターゲットがデータを受け入れできることを表わす。
【０１１２】
ＳＴＯＰ＃：
停止。現在のトランザクションのイニシエータにトランザクション中止を要求する。
【０１１３】
ＩＤＳＥＬ：
選択装置の初期化。設定トランザクションのためのチップ選択として用いる。
【０１１４】
ＤＥＶＳＥＬ＃：
装置選択。ターゲット装置がアドレスを復号しており現在のトランザクションのターゲットであることを表わす。
【０１１５】
ＰＥＲＲ＃：
パリティ・エラー。ＤＡＴＡパリティエラーのみを報告するために用いる。ＰＥＲＲ＃はエージェントがＤＥＶＳＥＬを発行してトランザクションを宣言した後でのみ駆動し得る。
【０１１６】
ＳＥＲＲ＃：
システム・エラー。ＡＤＤＲＥＳＳパリティエラーを報告するために用いる。特別サイクルはマクロが支持していないので、データパリティはこの信号を用いる特別サイクルで報告されない。
【０１１７】
７．ＰＣＩ＿ＦＳＭ（有限状態マシン）モジュールとの信号インタフェースは以下に示すとおりである：
PCI＿CLK  システムクロック（The System Clock）
（PCI Bus
appears synchronous）
PCI＿RST  フロントエンドバスからのシステムリセット
（The System
Reset from front end bus）
PCI＿AD＿IN  アドレスライン（Address
Lines）
PCI＿AD＿OUT      〃
PCI＿AD＿OEb      〃
PCI＿CNTL＿BEb＿IN  コントロールライン（Control Lines）
PCI＿CNTL＿BEb＿OUT      〃
PCI＿CNTL＿BE＿OEb      〃
PCI＿FRAMEb＿IN  バリッドサイクル（Valid
Cycle）
PCI＿FRAMEb＿OUT      〃
PCI＿FRAMEb＿OEb    〃
PCI＿TRDYb＿IN  ターゲットレディ（Target
Ready）
PCI＿TRDYb＿OUT      〃
PCI＿TRDYb＿OEb      〃
PCI＿IRDYb＿IN  イニシエーターレディ（Initiator
Ready）
PCI＿IRDYb＿OUT      〃
PCI＿IRDYb＿OEb      〃
PCI＿STOP＿IN  ターゲットターミネート（Target
Terminates）
PCI＿STOP＿OUT      〃
PCI＿STOP＿OEb      〃
PCI＿DEVSELb＿IN  デバイスセレクト（Device
Select）
PCI＿DEVSELb＿OUT      〃
PCI＿DEVSELb＿OEb      〃
PCI＿IDSELb  ＩＤセレクト（ID Select）
PCI＿LOCKb  排他的アクセスロック（Exclusive Access Lock）
PCI＿PERRb＿IN  リティエラー（Parity
Error）
PCI＿PERRb＿OUT      〃
PCI＿PERRb＿OEb      〃
PCI＿SERRb＿IN  システムエラー（System
Error）
PCI＿SERRb＿OUT      〃
PCI＿SERRb＿OEb      〃
PCI＿PAR＿IN  パリティ（Parity）
PCI＿PAR＿OUT      〃
PCI＿PAR＿OEb      〃
８．バックエンド・インタフェースは以下の信号を伝送する：
BK＿ADDR＿IN  アドレスライン（Address
Lines）
BK＿ADDR＿OUT      〃
BK＿ADDR＿OUT＿EN      〃
BK＿DATA＿IN  データライン（Data
Lines）
BK＿DATA＿OUT      〃
BK＿DATA＿OUT ＿EN      〃
BK＿BEb ＿IN  バイトイネーブルライン（Byte
Enable Lines）
BK＿BEb ＿OUT      〃
BK＿BYTE＿OUT ＿EN  イネーブル・フォア・バイトライン （Enable for Byte
Lines）
BK＿AS＿IN  アドレスストローブ（Address
Strobe）
BK＿AS＿OUT      〃
BK＿DS＿IN  データストローブ（Data
Strobe）
BK＿DS＿OUT      〃
BK＿RD＿WRb＿IN  リードライトディレクション（Read/Write Direction）
BK＿RD＿WRb＿OUT      〃
BK＿MEM ＿IOb ＿IN  メモリーＩ／Ｏ（Memory I/O）
BK＿MEM ＿IOb ＿OUT      〃
BK＿C ＿Db＿IN  コマンド／データ（Command/Data）
BK＿C ＿Db＿OUT      〃
BK＿SLAVE＿CS  スレーブチップセレクト（Slave
Chip Select）
BK＿DRQ  データリクエスト（Data Request）
BK＿TC  トランスファーカウント・コンプリート
（Transfer Count Complete）
BK＿REQ  リクエストバス（Request Bus）
BK＿GNT  グラントバス（Grant Bus）
BK＿RDY＿IN  レディ（Ready）
BK＿RDY＿OUT      〃
BK＿HOLD  ホールド（Hold）
BK＿HLDA  ホールドアクノレッジ（Hold Acknowledge）
BK＿MASTER＿REQ  マスターリクエスト（Master
Request）
BK＿MASTER＿GNT  マスターグラント（Master
Grant）
BK＿RESTART  リスタートデバイス（Restart Device）
BK＿IRQ＿HOLD＿OFF  インターラプトホールドオフ（Interrupt Hold Off）
９．以下の表１はマクロファイルのファイル階層を示したものである：
−表１−（マクロモジュールの階層）
ユーザーパラメーター選択ファイル（User
parameter selection files）:
pcimacro＿user＿params.vhd
macro＿pkg.vhd
マクロ階層ファイル記述（Macro
Hierarchy file description）:
configured＿pci＿macro.vhd - トッフ゜レヘ゛ルテ゛サ゛インファイル (TOP level design file)
pci＿macro.vhd - フ゜ライマリーPCIマクロインターフェースレヘ゛ル
(primary PCI Macro interface level)
pci＿fsm.vhd - PCIハ゛スフィニートステートマシーンレヘ゛ル (PCI Bus finite state machine level)
address＿counter.vhd - 32ヒ゛ットアト゛レスカウンター (32 bit address counter)
devsel＿timer.vhd - テ゛ハ゛イスセレクトタイマー (Device Select Timer)
parity36.vhd - ハ゜リティーシ゛ェネレータ(Parity Generator)
target＿latency ＿timer.vhd - ターケ゛ットラテンシータイマー
(Target Latency Timer)
master＿state＿machine.vhd - フロントエント゛マスターステートマシーン (Frontend Master State Machine)
slave ＿state＿machine.vhd - フロントエント゛スレーフ゛ステートマシーン(Front End Slave State Machine)
config.vhd - コンフィキ゛ュレーションフ゛ロックレヘ゛ル -PCIスヘ゜シフィックレシ゛スタ (configuration block level - PCI
Specific registers)
bist＿reg.vhd
class＿code＿reg.vhd
command＿reg.vhd
device＿id＿reg.vhd
header＿reg.vhd
interrupt ＿line＿reg.vhd
max＿lat＿reg.vhd
min＿gnat＿reg.vhd
revision＿id＿reg.vhd
status＿reg.vhd
vendor＿id＿reg.vhd
high＿bit＿reg.vhd
base＿address＿reg.vhd
rom＿base＿address＿reg.vhd
control＿reg.vhd
master＿latency＿timer.vhd
bk＿end.vhd - ハ゛ックエント゛インターフェースレヘ゛ル(backend interface level)
data＿manager.vhd - テ゛ータマネシ゛ャーフ゛ロック(data manager block)
burst＿size＿cntr.vhd - ハ゛ーストトランスファーカウンター (Burst Transfer counter)
next＿addr＿cmpr.vhd - ネクストアト゛レスコンハ゜レーター (Next address comparator)
new＿transfer＿counter.vhd - トランスファーカウンター
(Transfer counter)
dm＿bk＿sm.vhd - テ゛ータマネシ゛ャー・フ゛ロックエント゛・ステートマシン (data manager backend state machine)
dm＿fe＿sm.vhd -テ゛ータマネシ゛ャー・フロントエント゛・ステートマシン (data manager frontend state machine)
fifo.vhd - FIFOフ゛ロックレヘ゛ル(FIFO block level)
dpr＿gen.vhd - テ゛ュアルホ゜ートRAMシ゛ェネレータ (Dual
Port RAM generator)
pipeline＿block.vhd - テ゛ュアルホ゜ートRAMハ゜イフ゜ラインレシ゛
(Dual Port RAM pipeline regs)
valid ＿data＿counter.vhd - ハ゛リット゛テ゛ータカウンタ
(Valid data counter)
address＿pointer.vhd - テ゛ュアルホ゜ートRAMアト゛レスホ゜インタ (Dual
Port RAM address pointer)
buffer＿element.vhd - ハ゛ッファ定義
memory＿element.vhd - メモリ定義
output＿latch.vhd - テ゛ュアルホ゜ートRAMからのテ゛ータハ゜スにおけるアウト フ゜ットラッチ
new＿fifo.vhd - FIFOインターフェース(FIFO interface)
cycle ＿controller.vhd - サイクルコントローラレヘ゛ル (cycle controller level)
cycler.vhd - サイクルコントローラー・ステートマシーンインターフェース (cycle controller
state machine interface)
cc＿bk＿sm.vhd - サイクルコントローラー・ハ゛ックエント゛ステートマシーン (cycle controller backend state machine)
cc＿bypass＿sm.vhd - サイクルコントローラ・ハ゛イハ゜スコントローラ (cycle controller bypass controller)
cc＿fe＿sm.vhd - サイクルコントローラー・フロントエント゛ステートマシーン (cycle controller front end state machine byte＿steering＿logic.vhd - ハ゛イトステアリンク゛ロシ゛ック(Byte
Steering logic)
ジェネラルコンフギュアードレジスタファイル（General
Configured register files）:
configurable＿bit＿reg.vhd
configurable＿dword＿reg.vhd
ミスク．Ｉ／Ｏ、ゲートレベル・ライブラリーファイルとクロックツリー・ファイル(Misc. I/O, gate level library files and clock tree files):
clktree.vhd  クロックツリーシ゛ェネレータインターフェース(Clock tree generator interface)
signaltree.vhd  シク゛ナルツリーシ゛ェネレータインターフェース(Signal tree generator
interface)
nan2.vhd  ナント゛ケ゛ート(NAND gate)
dffpq.vhd  フリッフ゜フ゜ロッフ゜(flip-flop)
dffrpq.vhd  フリッフ゜フロッフ゜(flip-flop)
dff＿iobuf＿iopd16  フリッフ゜フロッフ゜I/Oハ゛ッファセル(flip-flop I/O buffer cell)
or2.vhd  オアケ゛ート(OR gate)
hbuf.vhd  HBUFケ゛ート(HBUF gate)
sbuf.vhd  SBUFケ゛ート(SBUF gate)
inbuf.vhd  インフ゜ットハ゛ッファーケ゛ート(Input buffer gate)
inpd.vhd  インフ゜ットハ゜ット゛(Input pad)
inv.vhd  インハ゛ータケ゛ート(Inverter gate)
iobuf.vhd  I/Oハ゛ッファーケ゛ート(I/O
buffer gate)
iobufpci.vhd  特殊・PCI・ハ゜ット゛ハ゛ッファー(special
PCI pad buffer)
iopd16.vhd  IOPD16 I/O セル(cell)
iopd12sl.vhd  IOPD12SL I/O セル(cell)
iobuf＿iopd12sl.vhd  IOBUF +
IOPD12SLセル(cell)
iobuf＿iopd16.vhd  IOBUF + IOPD16セル(cell)
opd16.vhd  OPD16セル(cell)
otpd16.vhd  TPD16セル(cell)
bus＿hbuf.vhd  ハ゛ス型HBUFセル(bused HBUF cell)
bus＿inbuf.vhd  ハ゛ス型インフ゜ットハ゛ッファーセル(bused input buffer cells)
bus＿inpd.vhd  ハ゛ス型インフ゜ットハ゜ット゛セル(bused input pad cells)
bus＿inv.vhd  ハ゛ス型インハ゛ータセル(bused
inverter cells)
bus＿opd16.vhd  ハ゛ス型OPD16セル(bused OPD16 cells)
iopdpci.vhd  特殊PCI・I/Oセル(Special PCI I/O cell)
１０．以下の表２はマクロモジュールにおけるファイルの動作の簡単な説明である。
【０１１８】
−表２−（マクロモジュールの説明）
address＿counter.vhd
３２ビットカウンタ。３２ビット初期アドレスを読み込むことができる。 これが有効な場合、アドレスを１つずつインクリメントする。読み込みとインクリメントはクロック刻時の時点でのみ発生する。
【０１１９】
address＿pointer.vhd
ＦＩＦＯメモリー素子のためのアドレス論理回路を生成する。
【０１２０】
base＿address＿reg.vhd
ＰＣＩ特有のｂａｓｅ＿ｒｅｇ用レジスタ
bist＿reg.vhd
ＰＣＩ特有のｂｉｓｔ用レジスタ
bk＿end.vhd
バックエンドインタフェースの記述。これらの信号全てが同期である。
buffer＿element.vhd
ＦＩＦＯブロックに付随させる何らかの論理を生成する。幾つかのデータ項目を保持するための空間と読み込みと書き込みのための幾つかのaddress＿pointerを生成する。
【０１２１】
burst＿size＿cntr.vhd
この８ビットカウンタは逆戻りまたは再試行されるバースト転送の長さを制御するために用いて、完了できる場合には正しいカウントで継続できるようにする。
【０１２２】
bus＿hbuf.vhd
ＨＢＵＦセル用のセルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１２３】
bus＿inbuf.vhdＩＮＢＵＦセル用のセルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１２４】
bus＿inpd.vhdＩＮＰＤセル用のセルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１２５】
bus＿inv.vhd
ＩＮＶセル用のセルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１２６】
bus＿opd16.vhd
ＯＰＤ１６セル用のセルライブラリファイルで、シミュレーションと合成のために用いる。
【０１２７】
byte＿steering＿logic.vhd
バイトステアリング用のデータパスである。データバスの全てのバイトのステアリングを取り扱う。
【０１２８】
cc＿bk＿sm.vhd
バックエンド・インタフェース用サイクル制御装置状態マシンである。これの幾つかの部分はどのデータマネージャを選択するかによって脱落する。
【０１２９】
cc＿bypass＿sm.vhd
サイクル制御装置バイパスモード状態マシンである。どのデータマネージャを選択するかによってこれの幾つかの部分が脱落する。
【０１３０】
cc＿fe＿sm.vhd
サイクル制御装置フロントエンド状態マシンである。これの幾つかの部分はどのデータマネージャを選択するかによって脱落する。
【０１３１】
class ＿code＿reg.vhd
ＰＣＩ特有のclass＿code用レジスタである。
【０１３２】
clktree.vhd
クロックツリー合成モジュールの基準である。
【０１３３】
command＿reg.vhd
ＰＣＩ特有のコマンド用レジスタである。
【０１３４】
config.vhd
ＰＣＩ特有のバックエンド・インタフェース用設定ブロックである。各々の装置に対して１つ存在する。付属装置が現在のバストランザクションのターゲットかどうかバスが決定できるようにするための情報を含む。
装置とそのデータマネージャ、各種ＩＤレジスタ、転送バースト長、レ テンシー・タイマーの値、などのアドレス範囲についての情報を含む。
configurable＿bit＿reg.vhd
設定自在な幅を有する汎用レジスタである。リセット時に０ビットまたは１ビットどちらで埋められるかも設定自在である。
【０１３５】
configurable＿dword＿reg
設定自在な倍ワード長の汎用レジスタである。
【０１３６】
configured＿pci＿macro.vhd
ＰＣＩマクロの下位部分の下位ブロックを生成する。
【０１３７】
control.reg.vhd
ＰＣＩ特有レジスタ。
【０１３８】
cycle＿controller.vhd
サイクル制御装置ブロックである。バッファブロックからバックエンド・インタフェースへの転送を制御する。
【０１３９】
cycler.vhd
バイト・ステアリング・サイクラー状態マシンである。１つのバスから別のバスまたは異なる大きさを有するインタフェースへのデータのステアリングを制御する。
【０１４０】
data＿manager.vhd
データマネージャ・ブロックである。バッファブロックからフロントエンド・バスへの転送を制御する。
【０１４１】
device＿id＿reg.vhd
ＰＣＩ特有の１６ビット読み出し専用レジスタでこの装置のＩＤを含む。
【０１４２】
devsel＿timer.vhd
ＰＣＩ特有のカウンタである。
【０１４３】
dff＿iobuf＿iopd16.vhd
フリップフロップＩ／Ｏバッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１４４】
dffpq.vhd
フリップフロップセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１４５】
dffrpq.vhdフリップフロップセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１４６】
dm＿bk＿sm.vhd
データマネージャ・バックエンド状態マシンである。どの種類のデータマネージャを選択したかによって別の状態マシンを構築できる。
【０１４７】
dm＿fe＿sm.vhd
データマネージャ・フロントエンド状態マシンである。どの種類のデータマネージャを選択したかによって別の状態マシンを構築できる。
【０１４８】
dpr＿gen.vhd
２重ポートＲＡＭ（デュアルポートＲＡＭという）である。２つのことを一度にアクセスできる所定の大きさのＲＡＭを生成する。
【０１４９】
fifo.vhd
単一または複数ＦＩＦＯバッファ構成のための制御論理全てを含むＦＩＦＯブロックの全体である。
【０１５０】
hbuf.vhd
バッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１５１】
header＿reg.vhd
ＰＣＩ特有のデバイス・ヘッダ・レジスタである。
【０１５２】
high＿bit＿reg.vhd
７から幾つかのビットへ下降するビット数が定義され、残りビット数が０となるような８ビットレジスタを生成する。
【０１５３】
inbuf.vhd
入力バッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１５４】
inpd.vhd
入力パッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１５５】
interrupt＿line＿reg.vhd
ＰＣＩ特有の割り込み線レジスタである。
【０１５６】
interrupt＿pin＿reg.vhd
ＰＣＩ特有の割り込みピンレジスタである。
【０１５７】
inv.vhd
インバータセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１５８】
iobuf.vhd
Ｉ／Ｏバッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１５９】
iobuf＿iopd12sl.vhd
バッファＩ／Ｏパッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６０】
iobuf＿iopd16.vhd
バッファＩ／Ｏパッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６１】
iobufpci.vhd
ＰＣＩＩ／Ｏバッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６２】
iopd12sl.vhd
Ｉ／Ｏパッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６３】
iopd16.vhd
Ｉ／Ｏパッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６４】
iopdpci.vhd
ＰＣＩＩ／Ｏパッドセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１６５】
macro＿pkg.vhd
可能なパラメータのアレイと関数とのアレイと、これらに対応する定数名を含む。各種パラメータ用の多数の初期設定値を含む。また残りのモジュール全てで使用する論理関数、算術関数、増分関数、変換関数も含む。
【０１６６】
master＿latency＿timer.vhd
ＰＣＩ特有のカウンタで、リセットされた場合または無効になった後で有効になったときに０から計数を始める。このタイマーの利用者が提供する８ビット値からなるMSTR＿LAT＿TIME（マスター・レテンシー時刻）
に達するまで計数を続ける。この数値に達するとTIME＿OUT 信号が有効 になり計数が停止する。
【０１６７】
master＿state＿machine.vhd
有限状態マシンのフロントエンド・マスター部分で、バスと通信する。
max＿lat＿reg.vhd
ＰＣＩ特有のｍａｘ＿ｌａｔ用レジスタである。
【０１６８】
memory＿element.vhd
メモリーのチャンクを生成し、十分小さい場合にはフリップフロップからまたはそれ以外の場合にはデュアルートＲＡＭからのどちらかからこれを構築する。
【０１６９】
min＿gnt＿reg.vhd
ＰＣＩ特有のｍｉｎ＿ｇｎｔ用レジスタである。
【０１７０】
miscelaneous＿configuration＿regs.vhd
装置が使用する余分なＰＣＩ特有設定レジスタの生成を可能にする。何も指定されていなければ何も生成しない。
【０１７１】
nan2.vhd
ＮＡＮＤゲートセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１７２】
new＿fifo.vhd
ＦＩＦＯインタフェース。
【０１７３】
new＿transfer＿counter.vhd
データ転送の基礎とするためにデータマネージャで使用するカウンタ。
next＿addr＿cmpr.vhd
入力バスからの次のアドレスを予測された次のアドレスと比較するための構造を含む。またバックエンド装置のための次のバス転送の現在のアドレスも含む。
【０１７４】
opd16.vhd
ＯＰＤ１６セル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１７５】
or2.vhd
ＯＲゲートセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１７６】
otpd16.vhd
ＯＴＰＤ１６セル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１７７】
output＿latch.vhd
ＦＩＦＯ２重ポートＲＡＭ出力からデータを受け取る出力ラッチである。
【０１７８】
parity36.vhd
３２ビットデータ入力及び４ビットの命令入力を受け取りこれらから単一のパリティビットを生成する。このビットはデータと命令入力内の１のビットの総数が奇数の場合には１となり、偶数の場合には０となる。
pci＿fsm.vhd
ＰＣＩバス有限状態マシンモジュールで、マスター、スレーブ、パリティ、およびaddress＿counterを内包してＰＣＩバスへのインタフェースを形成する。
【０１７９】
pci＿macro.vhd
内部信号は本明細書に記述してある。この１次モジュールは他の全ての下位部分（ＦＩＦＯ、サイクル制御装置、データマネージャ、バックエンド・インタフェース、バイト・ステアリング、有限状態マシン）を呼び出す。
【０１８０】
pcimacro＿user＿params.vhd
各種下位部分のための利用者が選択自在なパラメータの定義を含み、これに従ってバックエンド・インタフェースの種類を選択する。
【０１８１】
pipeline＿block.vhd
ＦＩＦＯの一部でデュアルポートＲＡＭのパイプラインレジスタを含む。
【０１８２】
revision＿id＿reg.vhd
ＰＣＩ特有の８ビット読み出し専用レジスタで、この版の幾つかの識別子を含む。
【０１８３】
rom＿base＿address＿reg.vhd
ＲＯＭのベースアドレス用のＰＣＩ特有の３２ビットレジスタである。
sbuf.vhd
バッファセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１８４】
scan＿pci＿macro.vhd
configured＿pci＿macro.vhd  ァイルと同じだが、走査試験用に設定される。このファイルは走査試験回路を含めることが所望される場合にscan＿pci＿macroの代わりに使用する。
【０１８５】
signaltree.vhd
シグナルツリーセル用セルライブラリ・ファイルで、シミュレーションと合成のために用いる。
【０１８６】
slave＿state＿machine.vhd
有限状態マシンのスレーブ部分で、バスと通信する。
【０１８７】
status＿reg.vhd
この１６ビットレジスタは装置から発行されたかまたはバックエンド・スレーブ装置から受信した中断バスサイクルを反映する。またバックエンド・マスター装置のマスターが中断したバスサイクルも反映する。このレジスタを読み出すことでビットの値が得られる。書き込みの場合、１が書き込まれたこのレジスタのどのビットも０にリセットされる。
【０１８８】
target＿latency＿timer.vhd
このＰＣＩ特有のカウンタはリセットされた場合または無効にされた後で有効になった場合に８にリセットされる。これが０に到達すると、TIME＿OUT 信号が有効になる。
【０１８９】
valid＿data＿counter.vhd
ＦＩＦＯブロックの一部である。これの機能はバッファ内の次の空のセルがどこにあるかの決定に関係する。
【０１９０】
vendor＿id＿reg.vhd
このＰＣＩ特有の１６ビット読み出し専用レジスタはこの部分の特定のベンダーのＩＤ（例えば装置用アダプター・チップまたはカード）を含む。
【０１９１】
本発明の趣旨と範囲から逸脱することなく多数の置換と変更を行うことができる。添付の請求の範囲に定めたとおりの本発明が特許請求により保護されることが望ましい。
【図面の簡単な説明】
【０１９２】
【図１】データ転送における簡略化したバスを示す。
【図２】３２ビット幅のバスから８ビットのデータインタフェースを有する受信装置へデータを転送する簡単な方法を示す。
【図３】図２の方法をバッファの使用でどのように改善できるかを示す。
【図４】本発明の１つの態様の概略を示す。
【図５】本発明の１つの態様の更に詳細な概略を示す。
【図６】データと制御を分離した内部インタフェースを示す。
【図７】一方向の読み書きに設定したバッファを示す。
【図８】読み取り用と書き込み用のバッファを分離設定したバッファを示す。
【図９】ピンポン方式または循環バッファとして設定した複数のバッファを示す。
【図１０】図５に示した装置用アダプター装置を含むコンピュータ用システム基板を示す。
【図１１】図５に図示した装置用アダプター装置を含むコンピュータ用拡張基板を示す。
【図１２】微調整自在なマクロを用いる集積回路の設計製造の処理の流れ図である。
【符号の説明】
【０１９３】
１２  バス
１３  外部バスインタフェース
１４  装置
１５  内部バス
１６  装置用アダプター（コンピュータ用バスインタフェース）
１８  サブアダプター
２０  データマネージャ
２２  バッファ
２４  サイクル制御装置
２５  データパス
２６  ユーザ論理回路
２７  制御パス
２８  バックエンド・インタフェース
２９  エクスポートＩ／Ｆ
３０  有限状態マシン
３２  内部バス
３４  Ｃコネクタ
【図１】
2006236395.tif 000003
【図２】
2006236395.tif 000004
【図３】
2006236395.tif 000005
【図４】
2006236395.tif 000006
【図５】
2006236395.tif 000007
【図６】
2006236395.tif 000008
【図７】
2006236395.tif 000009
【図８】
2006236395.tif 000010
【図９】
2006236395.tif 000011
【図１０】
2006236395.tif 000012
【図１１】
2006236395.tif 000013
【図１２】
2006236395.tif 000014