(57)【要約】【課題】プログラマブル・ロジック集積回路上のＨＩＰブロックでデータ伝送インターフェースのチャネル・アライメントを実装する技法を提供する。【解決手段】ＨＩＰブロック・チャネル・アライメント・ロジックは、減らされた数の並列データ・パスを使用して動作し、実質的に少ないロジック・リソースが消費される。また、ＨＩＰブロック・チャネル・アライメント・ロジック回路は、より高いＨＩＰコア・クロック・レートで直列に処理して、ロック待ち時間を減らす。プログラマブル・ロジック回路で送られるデータに関するエラーを処理する。プログラマブル・ロジック回路は、すべての応用例に合わせて調整されたエラー生成機能とエラー監視機能を実装する。集積回路上のデータ信号とクロック信号の間の位相スキューは、各回路ブロックにデータ信号と共にクロック信号をルーティングすることによって減らされる。【選択図】図１
2006174460.tif 000002
【特許請求の範囲】
【請求項１】
並列データ・チャネルに沿ってデータを送るように設計されたハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロックを含むプログラマブル・ロジック集積回路であって、前記ハード・インテレクチャル・プロパティ・ブロックが、
クロック信号と並列データ・チャネルの第１組のデータとの間のクロック・スキューを減らすオーバーサンプラと、
前記オーバーサンプラに結合され、並列データ・チャネルの第１組から、前記第１組より少数の並列データ・チャネルを有する並列データ・チャネルの第２組へ前記データを送るダウン・コンバータと、
前記ダウン・コンバータに結合され、並列データ・チャネルの前記第２組の対応するデータ・ビットをアラインするチャネル・アライメント・ブロックと
を含むプログラマブル・ロジック集積回路。
【請求項２】
前記チャネル・アライメント・ブロックが、前記データ・チャネルをバイト・アラインするために、前記データ・チャネル間のデータ・バイトを特定のパターンと比較する請求項１に記載のプログラマブル・ロジック集積回路。
【請求項３】
前記ダウン・コンバータが、並列データ・チャネルの前記第１組のデータの第２クロック周波数より高速の前記ＨＩＰブロックの第１クロック周波数で並列データ・チャネルの前記第２組にデータを送る請求項１に記載のプログラマブル・ロジック集積回路。
【請求項４】
前記ＨＩＰブロックが、さらに、
オフチップからデータを受け取り、並列データ・チャネルの前記第１組を生成する入出力インターフェース・ブロック
を含む請求項１に記載のプログラマブル・ロジック集積回路。
【請求項５】
前記入出力インターフェース・ブロックが、並列データ・チャネルの前記第１組を生成する第１デシリアライザを含む請求項４に記載のプログラマブル・ロジック集積回路。
【請求項６】
前記ＨＩＰブロックが、さらに、データのパケットをＳＰＩ４−２互換データ・プロトコルに符号化する、前記チャネル・アライメント・ブロックに結合されたトランスミッタと、ＳＰＩ４−２互換データからデータ・パケットを抽出するレシーバとを含む請求項４に記載のプログラマブル・ロジック集積回路。
【請求項７】
前記ＨＩＰブロックが、さらに、
レート適合のためにデータを実行するために前記トランスミッタの入力に結合された第１ＦＩＦＯバッファと、
データ・レート適合を実行するために前記レシーバの出力に結合された第２ＦＩＦＯバッファと
を含む請求項６に記載のプログラマブル・ロジック集積回路。
【請求項８】
前記第１ＦＩＦＯバッファにエラーを送るエラー・ジェネレータ・ブロックとして構成されたプログラマブル・ロジック回路の組と、
前記ＨＩＰブロック内の前記第１ＦＩＦＯバッファと前記エラー・ジェネレータ・ブロックとの間に結合されたデータ・インターフェースと
をさらに含む請求項７に記載のプログラマブル・ロジック集積回路。
【請求項９】
前記第２ＦＩＦＯバッファからのデータ出力を監視するエラー・モニタとして構成されたプログラマブル・ロジック回路の組と、
前記ＨＩＰブロック内の前記第２ＦＩＦＯバッファと前記エラー・モニタ・ブロックとの間に結合されたデータ・インターフェースと
をさらに含む請求項７に記載のプログラマブル・ロジック集積回路。
【請求項１０】
プログラマブル・ロジック集積回路のハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロックでチャネル・アライメントを実行する方法であって、前記ＨＩＰブロックは、並列データ・チャネルに沿ってデータを送るように設計され、
クロック信号と並列データ・チャネルの第１組で受け取られるデータとの間のクロック・スキューを減らすために前記クロック信号をオーバーサンプリングすることと、
並列データ・チャネルの前記第１組の前記データを、前記第１組より少数の並列データ・チャネルを有する並列データ・チャネルの第２組へ送ることと、
前記ＨＩＰブロック内のチャネル・アライメント回路を使用して、並列データ・チャネルの前記第２組の対応するデータ・ビットをアラインすることと
を含む方法。
【請求項１１】
並列データ・チャネルの前記第１組を生成するために直列データをデシリアライズすることをさらに含む請求項１０に記載の方法。
【請求項１２】
前記集積回路の外に送るために前記データのパケットをＳＰＩ４−２互換データ・プロトコルに符号化することをさらに含む請求項１０に記載の方法。
【請求項１３】
前記データを前記ＳＰＩ４．２互換データ・プロトコルに符号化する前に、前記プログラマブル・ロジック集積回路上のロジックから受け取ったデータをＦＩＦＯに保管することをさらに含む請求項１２に記載の方法。
【請求項１４】
前記チャネル・アライメント回路から受け取ったＳＰＩ４−２互換データからデータ・パケットを抽出することをさらに含む請求項１０に記載の方法。
【請求項１５】
前記データ・パケットをＦＩＦＯバッファに保管することと、
前記データ・パケットを前記プログラマブル・ロジック集積回路上のロジックに送ることと
をさらに含む請求項１３に記載の方法。
【請求項１６】
プログラマブル・ロジック回路を含むプログラマブル・ロジック部分と、
データのパケットをデータ・プロトコルに符号化するトランスミッタと、前記データ・プロトコルに符号化されたデータ・ストリームからデータ・パケットを抽出するレシーバとを含むハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロックと
を含み、前記プログラマブル・ロジック回路が、前記トランスミッタと前記レシーバによって処理されるデータのエラー処理機能を実装するように構成可能である
プログラマブル・ロジック集積回路。
【請求項１７】
前記ＨＩＰブロックが、前記トランスミッタの入力に結合された第１ＦＩＦＯバッファと、前記レシーバの出力に結合された第２ＦＩＦＯバッファとを含む請求項１６に記載のプログラマブル・ロジック集積回路。
【請求項１８】
前記プログラマブル・ロジック回路の第１組が、前記第１ＦＩＦＯバッファにエラーを送るエラー・ジェネレータとして機能するように構成可能であり、前記プログラマブル・ロジック回路の第２組が、前記第２ＦＩＦＯバッファからデータ・パケットを受け取るエラー・モニタとして機能するように構成可能である請求項１７に記載のプログラマブル・ロジック集積回路。
【請求項１９】
前記ＨＩＰブロックが、さらに、前記トランスミッタの入力に結合された第１チャネル・アライメント・ブロックと、前記レシーバの入力に結合された第２チャネル・アライメント・ブロックとを含む請求項１８に記載のプログラマブル・ロジック集積回路。
【請求項２０】
前記ＨＩＰブロックが、さらに、前記第１チャネル・アライメント・ブロックの入力に結合された第１ダウン・コンバータと、前記第２チャネル・アライメント・ブロックの入力に結合された第２ダウン・コンバータとを含む請求項１９に記載のプログラマブル・ロジック集積回路。
【請求項２１】
オフチップからデータを受け取り、前記ＨＩＰブロックに送られる２組の並列データ・チャネルを生成する入出力インターフェースをさらに含む請求項１６に記載のプログラマブル・ロジック集積回路。
【請求項２２】
前記入出力インターフェースが、シリアライザとデシリアライザとして動作する請求項２１に記載のプログラマブル・ロジック集積回路。
【請求項２３】
前記トランスミッタが、データのパケットをＳＰＩ４−２データ・プロトコルに符号化し、前記レシーバが、ＳＰＩ４−２データ・プロトコルに符号化されたデータ・ストリームからデータ・パケットを抽出する請求項１６に記載のプログラマブル・ロジック集積回路。
【請求項２４】
前記第１ＦＩＦＯバッファと前記エラー・ジェネレータとの間に結合された第１データ・インターフェースと、前記第２ＦＩＦＯバッファと前記エラー・モニタとの間に結合された第２データ・インターフェースとをさらに含む請求項１８に記載のプログラマブル・ロジック集積回路。
【請求項２５】
前記プログラマブル・ロジック集積回路が、処理ユニットを含むシステムの一部である請求項１６に記載のプログラマブル・ロジック集積回路。
【請求項２６】
トランスミッタを使用して、チップの外に送るためにデータのパケットをデータ・プロトコルに符号化することと、
レシーバを使用して、データ・ストリームからデータ・パケットを抽出することであって、前記データ・ストリームは、前記データ・プロトコルに符号化されている、抽出することと、
プログラマブル・ロジック回路を使用して、前記トランスミッタと前記レシーバによって処理されるデータのエラー処理機能を実装することと
を含む、プログラマブル・ロジック集積回路上のハード・インテレクチャル・プロパティ・ブロック内でエラーを処理する方法。
【請求項２７】
前記トランスミッタが、データの前記パケットをＳＰＩ４−２データ・プロトコルに符号化し、前記レシーバが、前記ＳＰＩ４−２データ・プロトコルに符号化された前記データ・ストリームから前記データ・パケットを抽出する請求項２６に記載の方法。
【請求項２８】
前記エラー処理機能を実装することが、さらに、第１ＦＩＦＯバッファに送られるエラーを生成することと、第２ＦＩＦＯバッファから受け取られるデータ・パケット内のエラーを監視することとを含む請求項２６に記載の方法。
【請求項２９】
プログラマブル集積回路上でクロック信号をルーティングする方法であって、
前記集積回路上のＨＩＰブロックに第１データ信号と第１クロック信号を送ることと、
前記ＨＩＰブロックから前記プログラマブル集積回路上のロジック要素のアレイに第２データ信号と前記第１クロック信号を送ることと、
ロジック要素の前記アレイで前記第２データ信号と前記第１クロック信号を受け取ることと
を含む方法。
【請求項３０】
第２クロック信号を前記ＨＩＰブロックに送ることと、
前記ＨＩＰブロックからロジック要素の前記アレイに前記第２クロック信号を送ることと
をさらに含む請求項２９に記載の方法。
【請求項３１】
プログラマブル・ロジック回路を含むプログラマブル・ロジック部分と、
データのパケットをデータ・プロトコルに符号化するトランスミッタと、前記データ・プロトコルに符号化されたデータ・ストリームからデータ・パケットを抽出するレシーバとを含むハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロックと
を含み、前記プログラマブル・ロジック回路の第１組が、ＦＩＦＯバッファと前記ＨＩＰブロックとの間で送られるデータを保管する前記ＦＩＦＯバッファを実装するように構成可能である
プログラマブル・ロジック集積回路。
【請求項３２】
前記プログラマブル・ロジック回路の第２組が、前記ＦＩＦＯバッファと前記ＨＩＰブロックとの間に結合されたｅｒｒｏｒ  ｍａｒｋｉｎｇ  ｌｏｇｉｃブロックとして機能するように構成可能である請求項３１に記載のプログラマブル・ロジック集積回路。
【請求項３３】
プログラマブル・ロジック回路の前記第１組が、それぞれがデータの１つのチャネルだけのデータを保管するＮ個のＦＩＦＯバッファとして機能するように構成される請求項３１に記載のプログラマブル・ロジック集積回路。
【請求項３４】
プログラマブル・ロジック回路の前記第１組が、データの複数のチャネルのデータを保管する単一のＦＩＦＯバッファとして機能するように構成される請求項３１に記載のプログラマブル・ロジック集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ伝送に使用されるハード・インテレクチャル・プロパティ・ブロックの設計を最適化する技法に関し、具体的には、データ伝送ブロックのさまざまな部分をハード・インテレクチャル・プロパティ・ブロック内またはプログラマブル・ロジック内に配置して設計を最適化する技法に関する。
【背景技術】
【０００２】
ＬＡＮ、ＷＡＮ、ＭＡＮ、ＳＡＮのセグメントに使用されるシステムの集中は、新しいインターオペラブル通信テクノロジを必要としている。モジュラ機器は、ＬＡＮ用のＥｔｈｅｒｎｅｔ（登録商標）、ＭＡＮ／ＷＡＮ用のＳＯＮＥＴ／ＳＤＨ、ＳＡＮ用のＦｉｂｅｒ  Ｃｈａｎｎｅｌを含む複数のプロトコルをサポートできる柔軟なアーキテクチャを有しなければならない。
【０００３】
Ｓｙｓｔｅｍ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ  Ｌｅｖｅｌ  ４，Ｐｈａｓｅ  ２（ＳＰＩ４−２）は、複雑な通信システム用の電気インターフェース仕様である。ＳＰＩ４−２は、通信システムが、Ｐａｃｋｅｔ  ｏｖｅｒ  ＳＯＮＥＴ／ＳＤＨ（ＰＯＳ）、ＯＣ−１９２、Ｅｔｈｅｒｎｅｔ、Ｆａｓｔ  Ｅｔｈｅｒｎｅｔ、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ、１０  ＧｂＥ、１０Ｇ  ＳＡＮを含む１０ギガビット毎秒（Ｇｂｐｓ）までの可変高速データ・レートを使用する複数の通信プロトコルを伝送することを可能にする。ＳＰＩ４−２は、開発者が、基板の間でハードウェアおよびソフトウェアのインターフェース解決策を再利用することを可能にし、通信プロトコルごとに独自の特定用途向け集積回路（ＡＳＩＣ）を作成する必要をなくす。
【０００４】
ＳＰＩ４−２インターフェース仕様は、１６ビット幅のトランスミッタ・データ・パスとレシーバ・データ・パスを規定している。ＳＰＩ４−２インターフェース仕様は、対応するデータ・パスと別々に送信され受信される２ビット幅ＦＩＦＯ状況情報も規定している。状況情報は、ＳＰＩ４．２データ・レートの１／８またはＳＰＩ４．２データ・レート（「フル・レート」と称する）のいずれかで送信／受信することができる。
【０００５】
プログラマブル・ロジック・デバイス（ＰＬＤ）は、プログラマブル・ロジック集積回路の１タイプである。プログラマブル・ロジック集積回路は、さまざまな論理ユーザ機能を実行するように構成させることができる。プログラマブル・ロジック集積回路には、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・ロジック・アレイ、構成可能ロジック・アレイなども含まれる。現在のＦＰＧＡの多くが、オンチップ非プログラマブル特定用途向け集積回路（ＡＳＩＣ）ブロックを有し、これらを、ハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロックとも称する。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＳＰＩ４−２インターフェース回路は、１７個のチャネル（１６個のデータ・チャネル、１個の制御チャネル）で受信されたデータをアラインする。ＳＰＩ４−２インターフェース回路は、ＦＰＧＡ上のプログラマブル・ロジック回路で実装することができる。ＳＰＩ４−２チャネル・アライメント機能は、通常、ＦＰＧＡ上の数百個の標準プログラマブル・ロジック要素を消費し、チャネル・アライメントは、通常、１２８ビット幅または６４ビット幅のデータ・パス上でプログラマブル・ロジックで実行され、これは、多数のロジック要素を必要とする。したがって、ＳＰＩ４−２チャネル・アライメントを実装するのに使用される回路の量を減らすことが望ましい。
【０００７】
さらに、ほとんどのロジック要素を意識した設計では、一時に１チャネルずつ、チャネル・アライメントを直列に実行する。直列チャネル・アライメント方法は、チャネルがアラインされる前の待ち時間の増加を追加し、ＳＰＩ４−２レシーバは、同期を宣言することができる。したがって、ＳＰＩ４−２インターフェースのチャネル・アライメントを実行するのに必要な待ち時間を減らすことが望ましい。
【０００８】
ＦＰＧＡ設計者が直面しているもう１つの問題が、クロック・スキューである。過去には、回路基板設計者は、通常、基板上の複数の集積回路に送られるクロック信号を同期化して、クロック・スキューを減らした。
【０００９】
もう１つの問題は、ＦＰＧＡ顧客が、その特定の応用例のシステム要件に応じて、異なる形でエラー状態を処理することである。したがって、ＦＰＧＡ上でエラー検出とエラー処理を実装する柔軟な技法を提供することも望ましい。
【００１０】
単一の集積回路内で、クロック信号は、通常、クロック・ネットワークを介して集積回路上の回路ブロックにルーティングされる。クロック・ネットワークの各ノードは、通常、異なる長さの相互接続ワイヤと駆動バッファによって駆動され、これらが、異なるノードでのクロック信号の間のスキューを導入する。したがって、プログラマブル集積回路上でクロック・スキューを減らす必要がある。
【課題を解決するための手段】
【００１１】
本発明は、データ伝送に使用されるハード・インテレクチャル・プロパティ・ブロックの設計を最適化する技法に関する。この最適化技法は、チャネル・アライメント、エラー処理、クロック・ルーティングに関する。
【００１２】
本発明の第１の実施態様によれば、ＰＬＤ上のＨＩＰブロック内のロジックが、データ伝送インターフェースのチャネル・アライメントを実行する。ＨＩＰブロック内のチャネル・アライメント・ロジックは、ＰＬＤ内のプログラマブル・ロジックで実施される標準的な解決策と比較してＲＸロック時間待ち時間を実質的に減らす。ＨＩＰブロック・チャネル・アライメント・ロジックは、ＰＬＤ内のプログラマブル・ロジックで実施される標準的な解決策と比較して、チャネル・アライメントを実装するのに必要なロジック回路の量も減らす。
【００１３】
本発明の第２の実施態様によれば、送信されたデータのエラー処理が、プログラマブル・ロジック回路で実装される。ＰＬＤ上のプログラマブル・ロジック要素は、すべての応用例に合わせて調整されるエラー検出機能とエラー監視機能を実装するように構成することができる。その代わりに、エラー処理を必要としない応用例のために他の機能を実行するようにロジック要素を構成することができる。
【００１４】
本発明の第３の態様によれば、集積回路上のデータ信号とクロック信号の間の位相スキューが、データ信号と共にクロック信号を回路ブロックまたは回路要素のそれぞれにルーティングすることによって減らされる。
【００１５】
本発明のもう１つの態様によれば、データ伝送インターフェースＨＩＰブロックとインターフェースするＦＩＦＯバッファが、プログラマブル・ロジックで実装される。ＦＩＦＯを実装するプログラマブル・ロジックは、ＡＳＩＣチップでは達成できない柔軟性をもたらす。
【発明を実施するための最良の形態】
【００１６】
本発明の他の目的、特徴、利益は、次の詳細な説明と添付図面を検討する時に明白になり、添付図面では、同一の符号が、複数の図面を通じて同一の特徴を表す。
【００１７】
図１に、ハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロック１１０とチップ入出力インターフェース１２５を含むプログラマブル・ロジック・デバイス（ＰＬＤ）１００のブロック図を示す。外部ソースからの入力データは、ＰＬＤ１００の入出力インターフェース１２５に送られる。ＨＩＰブロック１１０は、データを入出力するＳＰＩ４−２準拠インターフェースである。本発明によれば、着信データのチャネル・アライメントは、ＨＩＰブロック１１０内のハードワイヤド特定用途向け回路で実行される。ＨＩＰブロック１１０に、オーバーサンプラ・ブロック１０１、１１１と、ダウン・コンバータ１０８、１１８と、ＤＰＡチャネル・アライメント・ブロック１０２、１１２と、トランスミッタ・プロセッサ１０３と、レシーバ・プロセッサ１１３と、先入れ先出し（ＦＩＦＯ）バッファ１０４、１１４が含まれている。
【００１８】
入出力インターフェース１２５に、シリアライザまたはデシリアライザとして動作することができる回路１４６、１４７が含まれる。デシリアライザとして動作する時に、回路１４６、１４７は、着信直列データ・ストリームをオーバーサンプラ・ブロック１０１、１１１に送るため並列データ・ストリームに変換し、オーバーサンプラ・ブロック１０１は、フル・レート状況チャネル・トラフィックを処理し、ブロック１１１は、ＳＰＩ４．２データ・トラフィックを処理する。回路１４６、１４７は、シリアライザとして働くこともできる。シリアライザとして働く時に、回路１４６、１４７は、ＳＰＩ４．２トランスミッタ・ブロックやＳＰＩ４．２レシーバ・ブロック（それぞれ１０３、１１３）からの並列データ・ストリームを、入出力インターフェース１２５を介してチップから送信できる直列データ・ストリームに変換する。
【００１９】
回路１４６、１４７は、４：１デシリアライゼーション・モードまたは８：１デシリアライゼーション・モードで動作するように構成されている。たとえば、８：１モードで、１６個の並列チャネル・データ・パスと１つの制御パスが、５００ＭＨｚダブル・データ・レートでインターフェース１２５に入力される場合に、インターフェース１２５は、１２５ＭＨｚシングル・データ・レートで並列１３６ビット幅データ・パスでデータを出力（デシリアライズ）することができる。もう１つの例として、インターフェース回路１４６、１４７は、１３６ビット幅入力データ・バスを１つの１６ビット幅データ・パスと１つの制御パスにシリアライズすることができる。
【００２０】
オーバーサンプラ・ブロック１０１、１１１は、ブロック１２５から受け取ったクロック信号のエッジと、回路１４６、１４７から受け取った入力データのエッジとの間のクロック・スキューを除去する。ブロック１２５からのクロックは、このブロックからのデータと異なってルーティングされる可能性があり、オーバーサンプラ・ブロックの必要が生じる。ＨＩＰブロック１１０には、ダウン・コンバータ・ブロック１０８、１１８も含まれる。オーバーサンプラ・ブロック１０１、１１１からのデータ出力パスは、ダウン・コンバータ１０８、１１８の入力に結合される。
【００２１】
ＦＰＧＡ上のＨＩＰブロックは、通常、プログラマブル・ロジックより高いクロック周波数で動作する。プログラマブル・ルーティング・リソースが、ＨＩＰブロック内の接続ワイヤより長いルーティング遅延を有するからである。ＨＩＰブロック１１０は、ブロック１２５から受け取られるクロック信号の周波数（たとえば、１２５ＭＨｚ）より高いクロック周波数（たとえば、５００ＭＨｚ）を有するクロック信号を使用する。インターフェース・ブロック１２５は、より低いクロック周波数でデータを出力する。ダウン・コンバータ１０８、１１８は、より少数の並列データ・パスで、ＨＩＰブロック１１０のより高いクロック周波数で入力データを再クロッキングする。
【００２２】
たとえば、ダウン・コンバータ・ブロック１１８は、１２８ビット幅並列入力データ・バスを３２ビット幅並列データ・バスに変換する。他方のダウン・コンバータ・ブロック（１０８）は、フル・レート状況チャネル実施形態で使用され、これは、１６ビット幅並列入力状況データ・バスを４ビット幅並列状況データ・バスに変換する。この例では、ダウン・コンバータ・ブロック１０８、１１８が、並列データ・パスの数を４分の１に減らす。ダウン・コンバータ１０８、１１８の出力データ・バスは、それぞれＤＰＡチャネル・アライメント・ブロック１０２、１１２の入力に結合される。
【００２３】
チャネル・アライメント・ブロック１０２、１１２には、各並列データ・パスまたはフル・レート状況データ・パス・チャネルのバイト・アライメントとチャネル・アライメントを実行するロジック回路が含まれる。チャネル・アライメントは、ＳＰＩ４−２インターフェース・プロトコル仕様に従うのに必要な機能である。
【００２４】
チャネル・アライメント・ブロック１０２、１１２は、ダウン・コンバータ１０８、１１８によって生成された、数を減らされた並列データ・パスを処理する。その結果、チャネル・アライメント・ブロック１０２／１１２は、チャネル・アライメント機能の実行に、プログラマブル・ロジック内の６４ビット幅または１２８ビット幅のデータ・パスでの匹敵する解決策より少ないロジック・リソースを使用する。たとえば、チャネル・アライメント・ブロックは、３２ビット幅のデータ・パスと２ビットの制御パスを受け取ることができ、標準的なプログラマブル・ロジック回路で実装された１２８ビット・データ・パスと８ビット制御パスの解決策より多くとも１／４のロジック・リソースを消費する。
【００２５】
一般に、ＨＩＰ／ＡＳＩＣブロックは、プログラマブル・ロジック回路より効率的に、より少ないロジック回路リソースを使用してロジック機能を実施することができる。チャネル・アライメント・ブロック１０２、１１２は、ＨＩＰブロック１１０内でハードワイヤされるので、チャネル・アライメント・ブロックをプログラマブル・ロジック要素で実装する必要はない。ＨＩＰブロック内でチャネル・アライメントを実装する技法は、通常チャネル・アライメント機能の実装に必要になるＩＣ上のかなりの量のプログラマブル・ロジック回路も解放する。この余分のプログラマブル・ロジック・リソースを、他のユーザ機能に使用することができる。
【００２６】
チャネル・アライメント・ブロック１０２、１１２は、それぞれダウン・コンバータ１０８、１１８からの入力データ・ストリームを分析して、トレーニング・パターンと称する特定のデータ・バイト・パターンを突き止める。一般に、トレーニング・パターンは、遷移が発生し（論理１から０へまたは０から１へ）、その結果、システムに推移しないデータが含まれる時にＰＬＬがロックを失わないことを保証するのに使用される。トレーニング・パターンは、バイト・アライメントまたはワード・アライメントについてデータ・バスのスキュー除去にも使用される。トレーニング・パターンは、入力データ・ストリーム内のデータ・フレームの始めを示すこともできる。チャネル・アライメント・ブロック１０２、１１２は、周知のビット・スリッピング(bit slipping)技法を使用して、異なる入力データ・チャネルの間で対応するデータ・ビットをアラインさせる。
【００２７】
基板レイアウト・トレース長の差、温度変動、雑音、または他の現象に起因して、並列データ入力チャネルの対応するビットが、異なる時に受け取られる場合がある。たとえば、チャネル１のビットが、チャネル２の対応するビットの１ビット前に受け取られる場合がある。チャネル・アライメント・ブロック１０２、１１２は、データ・チャネルの対応するビットが同一のビット位置であるかどうかを判定する。
【００２８】
対応するビットが、同一のビット位置にない場合に、チャネル・アライメント・ブロック１０２、１１２は、回路１４６、１４７からのＤＰＡマクロを使用するビット・スリッピング技法を実行して、これらのデータ・ビットを同一のビット位置にアラインする。ブロック１０２／１１２は、並列チャネルの対応するビットのすべてが同一のビット位置で発生するようになるまで、１つまたは複数のチャネルで受け取られたデータ・ビットをシフトすることができる。チャネル・アライメント・ブロック１０２、１１２は、それぞれプロセッサ１０３、１１３に、アラインされたデータを並列データ・チャネル上で送る。
【００２９】
本発明の技法は、並列データ伝送パスでのチャネル・アライメント実装に必要なロジック回路の量を実質的に減らす。ＨＩＰブロック・チャネル・アライメント・ロジック回路は、ＨＩＰブロックのより高いクロック周波数で動作でき、各チャネルを並列に処理し、ロック待ち時間を減らす。ＨＩＰブロック・チャネル・アライメント・ブロックは、より狭いデータ・パス幅を利用して、並列アルゴリズムを使用してチャネルをアラインする。これは、静的タイミング結果に起因してより広いデータ・パス幅が必要なのでより多くのロジック・リソースを必要とするプログラマブル・ロジックで実装される解決策と対照的である。プログラマブル・ロジック解決策は、一時に１つずつ直列にチャネルをアラインする解決策を必要とする場合もあり、アライメント・ロック時間が増える。
【００３０】
本発明の技法は、ＳＰＩ４−２インターフェースＨＩＰブロックに制限されない。本発明は、データ伝送インターフェース・ブロックとして動作するように設計されたすべてのＨＩＰブロック内でのチャネル・アライメントの実行にも適用される。
【００３１】
図２に、集積回路（ＩＣ）１００のさらなる詳細を示すブロック図を示す。具体的にいうと、ＩＣ  １００に、エラー・ジェネレータ１０６と、エラー・モニタ１１６と、Ａｔｌａｎｔｉｃインターフェース１０５、１１５が含まれる。
【００３２】
トランスミッタ・プロセッサ１０３は、ＦＩＦＯバッファ１０４からＡｔｌａｎｔｉｃインターフェースを介してデータ・パケットを受け取る。Ａｔｌａｎｔｉｃインターフェースは、任意の長さのパケット指向データ用の柔軟なインターフェース・プロトコルである。Ａｔｌａｎｔｉｃインターフェースは、ＳＯＰＣ(System On a Programmable chip)内の簡単な統合のためのインテレクチャル・プロパティ（ＩＰ）コア間の一貫したインターフェースを提供する。Ａｔｌａｎｔｉｃインターフェースは、同期式ポイントツーポイント接続と柔軟な制御を有する高スループットを提供する。Ａｔｌａｎｔｉｃインターフェースは、スケーラブルなクロック周波数とスケーラブルなデータ・パス幅も提供する。
【００３３】
Ａｔｌａｎｔｉｃインターフェースは、本発明の技法に従ってＨＩＰブロックとエラー処理ブロックの間でデータを送るのに使用できるインターフェースの１つのタイプにすぎない。他のタイプのインターフェースを、ＨＩＰブロックとエラー処理ブロックが互いに通信できるようにするのに使用することもできる。
【００３４】
トランスミッタ１０３は、ＦＩＦＯ  １０４から受け取ったデータのパケットをＳＰＩ４−２互換データ・プロトコルに符号化し、符号化されたデータを、オフチップ伝送のために並列データ・チャネルに送る。
【００３５】
レシーバ・プロセッサ１１３は、チャネル・アライメント・ブロック１１２から並列データ・チャネル上でＳＰＩ４−２互換データ・パケットを受け取る。レシーバ１１３は、そのデータ・ストリームからデータ・パケットを抽出し、抽出されたデータをＡｔｌａｎｔｉｃインターフェースを介してＦＩＦＯバッファ１１４に送る。
【００３６】
特定の一実施形態によれば、ＦＩＦＯ  １１４は、プロセッサ１１３からのデータ出力をデシリアライズして、より低い周波数でクロッキングされるより多数の並列データ出力ストリームを供給する。たとえば、ＦＩＦＯ  １１４は、プロセッサ１１３によって出力される、５００ＭＨｚでクロッキングされた３２個の並列データ・ストリームを、より低い周波数（たとえば、１２５ＭＨｚ）でユーザ・ロジックによって読み出すことができる１２８個の並列データ・ストリームに変換することができる。ＦＩＦＯ  １０４は、インターフェース１０５から受け取ったデータ・ストリームをシリアライズすることができる。たとえば、ＦＩＦＯ  １０４は、１２５ＭＨｚでクロッキングされた１２８個の並列データ・ストリームを、５００ＭＨｚでクロッキングされ、プロセッサ１０３に供給される３２個の並列データ・ストリームに変換することができる。したがって、ＦＩＦＯブロック１０４、１１４は、それぞれ、プロセッサ１０３、１１３とインターフェース１０５、１１５の間で送られるデータ・バイトを一時的に保管する。ＦＩＦＯブロック１０４、１１４は、バス幅適合に、およびＨＩＰブロック１１０とＡｔｌａｎｔｉｃインターフェース１０５、１１５に結合されたユーザ・ロジックとの間のクロック・ドメインを超えるのに使用することができる。というのは、通常、ユーザ・ロジックは、内部ＨＩＰ  Ａｔｌａｎｔｉｃデータ・バスの幅と周波数で動作することが非現実的であるからである。
【００３７】
図２に、Ａｔｌａｎｔｉｃインターフェース（１０５、１１５の）を介してＨＩＰブロック１１０に接続された、エラー・ジェネレータ・ブロック１０６とエラー・モニタ・ブロック１１６も示されている。Ａｔｌａｎｔｉｃインターフェース１０５、１１５には、ＨＩＰブロック１１０とエラー処理ブロック１０６、１１６の間をインターフェースする回路が含まれる。Ａｔｌａｎｔｉｃインターフェースは、ＦＩＦＯ  １０４とプロセッサ１０３の間だけでなく、ＦＩＦＯ  １１４とプロセッサ１１３の間にも存在する。
【００３８】
エラー・モニタ・ブロック１１６は、ＨＩＰブロック１１０との間で伝送されるデータ・バイトに関するさまざまなエラー処理機能を実行する。エラー・モニタ・ブロック１１６は、エラー検出方式を使用して、インターフェース１１５から出力されたデータ・バイト内のエラーを検出する。エラー・モニタ・ブロック１１６は、エラーに応答してデータに対して訂正を実行することもできる。エラー・モニタ・ブロック１１６は、ユーザ・モードで、およびＩＣテスト・モード中にエラーを検出するために動作している。ユーザ・モードは、ＩＣ  １００が、ユーザ構成設計に従って動作している時に発生する。通常、エラー・ジェネレータ・ブロックは、ＩＣテスト・モードにのみ存在するが、エラー・モニタ・ブロックは、すべてのモードに存在する。
【００３９】
エラー・ジェネレータ・ブロック１０６は、テストとデバッグのためにエラー・バイト（たとえば、極性エラー）を生成する。トランスミッタ１０３は、ブロック１０６によって生成されたエラー・バイトをＳＰＩ４−２出力データ・ストリームに挿入する。データ・ストリームに挿入されたエラー・バイトは、その後、さまざまな異なるテストとデバッグのために（たとえば、さまざまな回路の機能をテストするために）抽出し、分析することができる。一般に、ブロック１０６によって生成されたエラー・バイトは、ＩＣテスト・モード中にのみ、出力データ・ストリームに故意に挿入される。
【００４０】
エラー・ジェネレータ・ブロック１０６とエラー・モニタ・ブロック１１６は、集積回路１００上のＦＰＧＡファブリックのプログラマブル・ゲート・アレイ内のプログラマブル・ロジック回路で実装される。したがって、汎用プログラマブル・ロジック回路が、エラー・ジェネレータ・ブロック１０６とエラー・モニタ・ブロック１１６の機能を実行するように構成される。エラー・ジェネレータ・ブロック１０６とエラー・モニタ・ブロック１１６は、メモリを利用して、ポートごとのコンテキストを保管することができる。
【００４１】
エラー・ジェネレータ１０６とエラー・モニタ１１６をプログラマブル・ロジック回路で実装することによって、ＩＣ  １００のユーザは、ユーザが望むエラー処理機能またはエラー生成機能を実装するためにＩＣ  １００を自由に構成することができる。ＩＣ  １００の異なるユーザは、しばしば、ＨＩＰブロック１１０などのＳＰＩ４−２インターフェースとの間で伝送されるデータのエラーの処理に関する異なる要件を有する。たとえば、ＩＣ  １００のある応用例は、データ・ストリーム内のエラーをＩＣ  １００上の回路で訂正することを必要としない。もう１つの例として、異なる応用例では、異なるエラー訂正方法を使用して異なるタイプのエラーを訂正する。もう１つの例を使用すると、異なるユーザは、ＭＥＯＰ(Missing End of Packet)エラーやＭＳＯＰ(Missing Start of Packet)エラーの処理について異なる要件を有する。
【００４２】
したがって、エラー・ジェネレータ１０６よエラー・モニタ１１６をＨＩＰブロック１１０などのハードワイヤドＡＳＩＣ回路ブロックにプログラムすることは、ロジック回路の浪費になる。図２の技法は、ＩＣ  １００のユーザに高い柔軟性を与える。ブロック１０６、１１６がＨＩＰブロック１１０の一部であるならば、これらは、ＩＣ  １００の特定のユーザ設計で使用されない可能性がある特定のエラー処理機能を実行するように設計されなければならない。
【００４３】
本発明の技法は、ＳＰＩ４−２インターフェースでない、他のタイプのハード・インテレクチャル・プロパティ（ＨＩＰ）ブロックにも適用することができる。エラー処理機能を、ＡＳＩＣブロックの回路にハードワイヤするのではなく、プログラマブル・ロジックで実装することができる。この技法は、ユーザに、エラー生成とエラー監視などのエラー処理機能に関する高い柔軟性を与える。本発明には、プログラマブル・ロジック内でエラー訂正機能を実装する技法も含まれる。
【００４４】
本発明のもう１つの実施形態は、集積回路上でルーティングされるクロック信号とデータ信号の間の位相スキューを減らす。本発明のこの実施形態は、すべてのタイプの集積回路（たとえば、ＰＬＤ、ＦＰＧＡ、またはＡＳＩＣ）に適用される。
【００４５】
クロック信号は、通常、位相ロック・ループ（ＰＬＬ）から生成され、クロック・ネットワークを介して集積回路上の回路要素にルーティングされる。図３Ａに、従来技術のクロック・ネットワークとＰＬＬ  ３０３を示す。マクロ３０１、３０２が、クロック・ネットワークの異なるノードでクロック信号を受け取る。クロック・ネットワークの各ノードは、異なる長さの相互接続ワイヤと駆動バッファによって駆動され、これによって、クロック・ネットワークの異なるノードで受け取られるクロック信号の間にスキューが導入される。
【００４６】
図３Ｂに、本発明の実施形態を示す。マクロ３１１〜３１４は、回路ブロックの例である。マクロ３１１は、そのＱ出力でマクロ３１２のＤ入力へのデータ出力信号を送る。マクロ３１２は、そのデータ出力をマクロ３１３に送り、マクロ３１３は、そのデータ出力をマクロ３１４に送る。
【００４７】
ＰＬＬ  ３１５は、クロック信号を生成し、このクロック信号を、第１クロック・ネットワークを介してマクロ３１１、３１２のクロック入力に送る。マクロ３１２は、第１クロック・ネットワークからの入力クロック信号をマクロ３１３のクロック入力に送る出力バッファを含む。マクロ３１３は、そのクロック出力から第２クロック・ネットワークに入力クロック信号を送るバッファも含まれる。マクロ３１４のクロック入力は、第２クロック・ネットワーク上のクロック信号を受け取るように結合される。
【００４８】
図３Ｂの実施形態は、クロック信号がマクロ３１２からマクロ３１３へのデータ信号と共に送られるので、データ信号とクロック信号の間の位相スキューを減らす。データ信号とクロック信号が、同一の長さまたは類似する長さのパスを移動するので、データ信号とクロック信号の間のスキューが、実質的に減る。
【００４９】
もう１つの実施形態によれば、クロック信号が、標準セルまたはゲート・アレイ・アーキテクチャのいずれかで実装されたＨＩＰブロックなどのマクロから、ＦＰＧＡ内のロジック要素のアレイへ、データ信号と共に転送される。転送されたクロックは、クロック・ネットワークにリンクされて、ＨＩＰマクロからロジック要素アレイにデータを転送する時のスキューが最小になる。もう１つの実施形態によれば、２つ、３つ、４つ、５つ、または任意の個数のクロック信号を、データ信号と共にマクロの間で送られ、スキューを減らすことができる。
【００５０】
クロック信号が、ＨＩＰブロックから送られるので、データ信号を、最小化されたシリコン面積を用いてシームレスに転送することができる。デューティ・サイクルひずみとジッタを補償するためにデータ信号を引き延ばすという作業が減る。ＨＩＰブロックからクロック・ネットワークにクロックを送る能力は、位相差に伴ういくつかの問題を解決する。
【００５１】
ＨＩＰブロックからの共通するデバッグ／状況情報について、クロックを、導出されたクロックの半分の速度でＨＩＰブロックから送ることができ、ＨＩＰブロックは、ＰＬＤよりはるかに高い周波数でそのロジックを動作させることを活用する。ＨＩＰとＰＬＤの間の通信は、ＰＬＤが簡単にサポートできる周波数でなければならない。通常、ＨＩＰブロックは、ＨＩＰロジック機能をより小さいセル・ジオメトリを用いてより短い遅延に最適化できるので、ＰＬＤのクロック周波数の２倍で動作する。この実施形態では、ＨＩＰブロック設計の位相補償ＦＩＦＯの必要と余分の待ち時間も除くことができる。
【００５２】
図４Ａに、本発明のもう１つの実施形態を示す。ＦＰＧＡ  ４００に、ＬＶＤＳ(low voltage differential signaling)と互換であり、ＤＰＡ(dynamic phase alignment)を有する入出力インターフェース４１０が含まれる。ＦＰＧＡ  ４００に、ＨＩＰブロック４０１、ＥＭＬ(error marking logic)ブロック４０２とＦＩＦＯバッファ４０３も含まれる。ＨＩＰブロック４０１は、ＳＰＩ４．２データ・インターフェースである。
【００５３】
ＥＭＬ  ４０２は、エラー監視やエラー生成などのエラー処理機能を実行する。ＥＭＬ  ４０２は、ポートごとの基礎でエラーをマークすることもできる。ＥＭＬ  ４０２は、図２に関して上で述べたように、プログラマブル・ロジック回路（ソフト・ロジック）によって実装される。
【００５４】
ＦＩＦＯバッファ４０３は、ＨＩＰブロック４０１とプログラマブル・ロジック・コア４０４の間で伝送されるデータを保管する。ＦＩＦＯバッファ４０３も、プログラマブル・ロジック回路（ソフト・ロジック）によって実装される。ＦＩＦＯバッファ４０３は、ソフト・ロジックで実装されるので、顧客が、ＦＰＧＡ  ４００の動作中にＦＩＦＯのサイズを動的に変更することができる。これは、非ＦＰＧＡ実装では行うことが困難である。
【００５５】
図４Ｂに、本発明のもう１つの実施形態を示す。ＦＰＧＡ  ４５０に、ＳＰＩ４．２  ＨＩＰブロック４５１、４５６と、バッファ・マネージャ４５５と、ＦＩＦＯバッファ４５２が含まれる。ＦＰＧＡ  ４５０に、データを送受するための２組のＬＶＤＳ入出力ポートが含まれる。ＨＩＰブロック４５１、４５６は、入出力ポートとインターフェースして、外部デバイスとの間でデータを伝送する。
【００５６】
ブロック４５２のＦＩＦＯバッファは、１つまたは複数のチャネルに沿って送られたデータをサポートできる独立のＦＩＦＯバッファである。ブロック４５２の各ＦＩＦＯバッファは、データ・チャネルのうちの１つだけのデータを保管する。ブロック４５２内のＮ個のＦＩＦＯバッファの第１組は、Ｎ個のチャネルでＨＩＰブロック４５１から送られる入力データを保管する。ブロック４５２内のＮ個のＦＩＦＯバッファの第２組は、Ｎ個のチャネルでマルチプレクサを介してＨＩＰブロック４５１に送られる前に出力データを保管する。
【００５７】
その一方で、バッファ・マネージャ４５５には、ＨＩＰブロック４５６との間で送られるデータの複数のチャネルのデータを保管するのに十分なストレージ・スペースを含む単一のＦＩＦＯバッファが含まれる。たとえば、バッファ・マネージャ４５５は、このＦＩＦＯ内に２５６個の別々のチャネルのデータを保管することができる。バッファ・マネージャ４５５には、ＦＩＦＯバッファとの間のデータの読み書きを制御する制御ブロックも含まれる。制御ブロックは、データ・チャネルがＦＩＦＯに保管され、ＦＩＦＯから読み取られる時に、データ・チャネルが別々のままになることを保証する。
【００５８】
図４ＢのＦＩＦＯバッファは、プログラマブル・ロジックで実装されるので、ＦＰＧＡユーザは、ブロック４５２に示されているように、バッファ・マネージャ４５５に示されているように、または多数の他の形で実装されるようにＦＩＦＯバッファを構成することができる。本発明は、ユーザに、ＦＩＦＯバッファを実装する形に関する高い柔軟性を与える。そのような柔軟性は、ＡＳＩＣチップでは簡単に提供することができない。
【００５９】
図５は、本発明の態様を含めることができるＰＬＤ  ５００の一例の単純化されたブロック図である。本発明を、主にＰＬＤとＦＰＧＡの文脈で述べるが、本発明を多数のタイプのプログラマブル集積回路に適用できることを理解されたい。ＰＬＤ  ５００は、本発明の技法を実装することができるプログラマブル集積回路の例である。ＰＬＤ  ５００に、変化する長さと速度の行および列の相互接続のネットワークによって相互接続されたプログラマブル・ロジック・アレイ・ブロック（またはＬＡＢ）５０２の２次元アレイが含まれる。ＬＡＢ  ５０２に、複数（たとえば１０個）のロジック要素（またはＬＥ）が含まれる。
【００６０】
ＬＥは、ユーザ定義のロジック機能の効率的な実装を実現するプログラマブル・ロジック・ブロックである。ＰＬＤは、さまざまな組合せ機能とシーケンシャル機能を実装するために構成できる多数のロジック要素を有する。ロジック要素は、プログラマブル相互接続構造へのアクセスを有する。プログラマブル相互接続構造は、ほぼすべての望みの構成でロジック要素を相互接続するようにプログラムすることができる。
【００６１】
ＰＬＤ  ５００には、アレイ全体に設けられた可変サイズのＲＡＭブロックを含む分散メモリ構造も含まれる。ＲＡＭブロックに、たとえば、５１２ビット・ブロック５０４、４Ｋブロック５０６、５１２ＫビットのＲＡＭであるブロック５０８が含まれる。これらのメモリ・ブロックに、シフト・レジスタやＦＩＦＯバッファも含めることができる。
【００６２】
ＰＬＤ  ５００に、さらに、たとえば、加算機能または減算機能を有する乗算器を実装できるディジタル信号処理（ＤＳＰ）ブロック５１０も含まれる。この例ではデバイスの周辺に配置された入出力要素（ＩＯＥ）５１２が、多数のシングルエンドや差動の入出力標準規格をサポートする。ＰＬＤ  ５００が、本明細書で例示だけのために説明され、本発明を、多数の異なるタイプのＰＬＤ、ＦＰＧＡ、それらの類似物で実装できることを理解されたい。
【００６３】
図５に示されたタイプのＰＬＤは、システム・レベル解決策を実装するのに必要な多数のリソースを提供するが、本発明は、ＰＬＤが複数のコンポーネントの１つであるシステムのためになることもできる。図６に、本発明を実施できる例示的なディジタル・システム６００のブロック図を示す。システム６００は、プログラムされたディジタル・コンピュータ・システム、ディジタル信号処理システム、特殊化されたディジタル・スイッチング・ネットワーク、または他の処理システムとすることができる。さらに、そのようなシステムを、遠隔通信システム、自動車システム、制御システム、コンシューマ・エレクトロニクス、パーソナル・コンピュータ、インターネット通信、ネットワーキングなど、さまざまな応用例のために設計することができる。さらに、システム６００を、単一の基板上に、複数の基板上に、または複数のエンクロージャ内に設けることができる。
【００６４】
システム６００に、１つまたは複数のバスによって相互接続された、処理ユニット６０２、メモリ・ユニット６０４、入出力ユニット６０６が含まれる。この例示的実施形態によれば、プログラマブル・ロジック・デバイス（ＰＬＤ）６０８が処理ユニット６０２内に埋め込まれる。ＰＬＤ  ６０８は、図６のシステム内で多数の異なる目的のために働くことができる。ＰＬＤ  ６０８は、たとえば、処理ユニット６０２の論理構成ブロックとし、その内部動作や外部動作をサポートすることができる。ＰＬＤ  ６０８は、システム動作でのその特定の役割を担うのに必要な論理機能を実装するようにプログラムされる。ＰＬＤ  ６０８は、接続６１０を介してメモリ６０４に、接続６１２を介して入出力ユニット６０６に、特別に結合することができる。
【００６５】
処理ユニット６０２は、処理または保管のためにデータを適当なシステム構成要素に向け、メモリ６０４に保管されたプログラムを実行し、入出力ユニット６０６を介してデータを送受信し、または他の類似する機能を実行することができる。処理ユニット６０２は、中央処理装置（ＣＰＵ）、マイクロプロセッサ、浮動小数点コプロセッサ、グラフィックス・コプロセッサ、ハードウェア・コントローラ、マイクロコントローラ、コントローラとして使用するためにプログラムされたプログラマブル・ロジック・デバイス、ネットワーク・コントローラ、その他の類似物とすることができる。さらに、多くの実施形態で、しばしばＣＰＵの必要がない。
【００６６】
たとえば、ＣＰＵの代わりに、１つまたは複数のＰＬＤ  ６０８が、システムの論理動作を制御することができる。一実施形態で、ＰＬＤ  ６０８が、特定のコンピューティング・タスクを処理する必要に応じて再プログラムできる再構成可能プロセッサとして働く。代替案では、プログラマブル・ロジック・デバイス６０８自体に、組込みマイクロプロセッサを含めることができる。メモリ・ユニット６０４は、ランダム・アクセス・メモリ（ＲＡＭ）、読取専用メモリ（ＲＯＭ）、固定ディスク媒体もしくはフレキシブル・ディスク媒体、ＰＣカード・フラッシュ・ディスク・メモリ、テープ、または他の記憶手段、あるいはこれらの記憶手段の組み合わせとすることができる。
【００６７】
本発明を、その特定の実施形態に関して本明細書で説明したが、ある範囲の修正、さまざまな変更、置換が、本発明で意図されている。いくつかの場合に、本発明の特徴を、示された本発明の範囲から外れずに、他の特徴の対応する使用なしで使用することができる。したがって、本発明の本質的な範囲と趣旨から外れずに、開示された特定の構成または方法を適合させるために多数の修正を行うことができる。本発明が、開示された特定の実施形態に制限されず、本発明が、請求項の範囲に含まれるすべての実施形態および同等物を含むことが意図されている。
【図面の簡単な説明】
【００６８】
【図１】本発明の実施形態による、チャネル・アライメント・ブロックを含むプログラマブル・ロジック・デバイス内のＨＩＰブロックとしてのＳＰＩ４−２インターフェースを示すブロック図である。
【図２】本発明の実施形態による、エラー処理特徴を実装するＳＰＩ４−２インターフェースＨＩＰブロックおよびプログラマブル・ロジック回路を有するプログラマブル・ロジック集積回路を示すブロック図である。
【図３Ａ】従来技術のクロック・ネットワークを示す図である。
【図３Ｂ】本発明のもう１つの実施形態による、集積回路上のデータ信号とクロック信号の間のスキューを減らす技法を示す図である。
【図４】プログラマブル・ロジック・インターフェースで実装されたＦＩＦＯバッファがＨＩＰブロックとインターフェースする、本発明のもう１つの実施形態を示す図である。
【図５】本発明の技法と共に使用することができるプログラマブル・ロジック・デバイスを示す単純化されたブロック図である。
【図６】本発明の実施形態を実装できる電子システムを示すブロック図である。
【符号の説明】
【００６９】
１００  プログラマブル・ロジック・デバイス（ＰＬＤ）、１０１  オーバーサンプラ・ブロック、１０２  ＤＰＡチャネル・アライメント・ブロック、１０３  トランスミッタ・プロセッサ、１０４  先入れ先出し（ＦＩＦＯ）バッファ、１０５  Ａｔｌａｎｔｉｃインターフェース、１０６  エラー・ジェネレータ、１０８  ダウン・コンバータ・ブロック、１１０  ハード・インテレクチャル・プロパティ・（ＨＩＰ）ブロック、１１１  オーバーサンプラ・ブロック、１１２  ＤＰＡチャネル・アライメント・ブロック、１１３  レシーバ・プロセッサ、１１４  先入れ先出し（ＦＩＦＯ）バッファ、１１５  Ａｔｌａｎｔｉｃインターフェース、１１６  エラー・モニタ、１１８  ダウン・コンバータ・ブロック、１２５  チップ入出力インターフェース、１４６  回路、１４７  回路
【図１】
2006174460.tif 000003
【図２】
2006174460.tif 000004
【図３Ａ】
2006174460.tif 000005
【図３Ｂ】
2006174460.tif 000006
【図４】
2006174460.tif 000007
【図５】
2006174460.tif 000008
【図６】
2006174460.tif 000009