(57)【要約】【課題】デバイスを基板実装後、通常動作モード時に個々の論理構成で必要に応じて実施する事を可能とする。【解決手段】プログラマブルデバイスあるいは動的にデータ処理の論理構成を変更するデバイスにおいて、論理構成に従って変更されるプロセサエレメント間の接続に対応可能な経路遅延テストをデバイスにあらかじめ実装しておく。この経路遅延テストのうち論理構成の情報をもとに実効的に有効な経路に対して経路遅延テストを実施する。前記、プロセサエレメント間の接続に対応したターゲット周波数に対する経路遅延テストの結果をもとに、論理構成の入れ替え、あるいは、動作周波数の最適化を行う。【選択図】  図１
2006337163.tif 000002
【特許請求の範囲】
【請求項１】
論理構成の切り替えが可能なプログラマブル回路において、
機能を実現する処理単位である複数のプロセサエレメントと、
前記プロセサエレメントを組み合わせることにより機能を実現するための前記プロセサエレメント間の相互接続を指定する論理構成指示部と、
前記論理構成指示部に応じて変更される有効な前記プロセサエレメント間の接続経路のうち、任意の接続経路に対して遅延テストを実施する経路遅延テスト実施部と、
前記経路遅延テスト実施部には、論理構成情報により形成された個別経路に対する経路遅延テストのパターンを生成するテストパターン生成部と、
前記テストパターン生成部で作成された経路遅延テストのパターンを経路遅延テストの対象経路へと送信するための選択回路と、
前記経路遅延テストの対象経路を経由して受信されたテストパターンと期待値とを比較することにより、個別経路の経路遅延テスト結果を判定する経路遅延テストの結果判定部と、
前記経路遅延テストの前記結果判定部に入力する期待値を生成する期待値生成部と
を備えることを特徴とするプログラマブル回路。
【請求項２】
論理構成情報毎に任意の動作条件で前記プロセサエレメント間の経路遅延テストを実施するプログラマブル回路であり、
前記経路遅延テストの結果判定部より送出される個々の経路遅延テストの判定結果を、プログラマブル回路全体の結果として集計する経路遅延テストの結果集計部と、
前記結果集計部の集計結果に基づきタイミング調整を指示するタイミング制御部と、
前記タイミング制御部からの指示をもとにクロックサイクルを調整するクロック制御部と
を備えることを特徴とする請求項１に記載のプログラマブル回路。
【請求項３】
論理構成情報毎に任意の動作条件で前記プロセサエレメント間の経路遅延テストを実施するプログラマブル回路であり、
前記論理構成情報をもとに任意の経路への経路遅延テストの適用、非適用の指示、あるいは任意の経路遅延テスト対象経路に対する経路遅延テスト結果のマスクにより、経路を選択して経路遅延テストを実施する経路遅延テスト部を備えることを特徴とする請求項１又は２に記載のプログラマブル回路。
【請求項４】
論理構成情報毎に任意の動作条件に対応するプロセサエレメント間の経路遅延テストを実施するプログラマブル回路において、処理単位として実装される前記プロセサエレメントであって、
通信経路上流よりデータを受信する第１のフリップフロップと、
通信経路上流の経路遅延テストに対する期待値を生成する期待値生成部と、
前記第１のフリップフロップの出力と前記期待値生成部で生成された期待値とを比較する経路遅延テストの結果判定部と、
通信経路下流の経路遅延テストパターンを生成するテストパターン生成部と、
通信経路下流へとデータを送信するための第２のフリップフロップと、
前記テストパターンで生成したテストパターンあるいは通常動作時にプロセサエレメント内での処理結果のいずれかを前記第２のフリップフロップへ選択的に設定するセレクタと
を備えることを特徴とするプロセサエレメント。
【請求項５】
前記テストパターン生成部と、前記期待値生成部との両方の役割を持つパターン生成部を備えることを特徴とする請求項４に記載のプロセサエレメント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、構成を動的に変更するプログラマブル回路の構成変更に伴う経路遅延変化の最適化に関する。
【背景技術】
【０００２】
半導体集積回路の一つに、論理構成情報を変更することで要求する様々な機能を実現するプログラマブル回路がある。プログラマブル回路は内部に最小処理単位であるプロセサエレメントを複数個内蔵しており、これら相互のプロセサエレメントの接続関係を所望の機能を実現するように使用時に回路構成をプログラムすることができ、固定された機能の回路と比較して論理構成に柔軟に対応できるといった特徴がある。しかしながらプログラマブル回路は、論理構成毎にプロセサエレメントの接続が変化するので、論理構成情報毎に遅延時間の違いが出てしまうという面もある。従って、異なる機能を実現することと遅延時間変化のトレードオフが存在するが、従来では遅延時間変化を考慮することに起因する煩雑さを避けて、論理構成の自由度に敢えて制限を設け、特定のタイミングを守るように論理構成情報を作成するアプローチがとられてきた。このような制限の下、考案されたプログラマブル回路、及び、遅延時間変化を検知するための経路遅延テストに関する従来技術としては以下のようなものがある。
【０００３】
まず、論理構成を変更する事ができるプログラマブル回路に関連する特許文献として、アレイ型プロセサ（例えば、特許文献１参照。）、命令長拡張によるデータパス切り替え型プロセサ（例えば、特許文献２参照。）等があるが、これらはいずれも論理構成情報を作成の際にプロセサエレメント間の接続に制限を設けており、論理構成情報を変更した場合にプロセサエレメント間遅延時間の最悪値の変化を自動で検知したり補正したりする機能はない。
【０００４】
また、遅延時間に対する合否の判定を行う経路遅延テストに関連する特許文献として、テスタを用いない経路遅延テスト（例えば、特許文献３）、スキャンテストの仕組みを用いた経路遅延テストを利用し動作周波数を制御する方法（特許文献４参照。）、不活性パスを認識するテストパターン生成方法、（例えば、特許文献５参照。）、などがあるが、プロセサエレメント間の接続を変更する回路に適した通常動作中の経路遅延テストに関する技術はない。
【０００５】
【特許文献１】特開２００１−３１２４８１号公報（第１頁、第２頁、図４、図５）
【特許文献２】特開２００３−２２８５１８号公報（第１頁、第２頁、図５、図１２）
【特許文献３】特開平１１−１７４１２５号公報（第１頁、第２頁、図１）
【特許文献４】特開２００４−１５７０９０号公報（第１頁、第２頁、図１、図３）
【特許文献５】特開平９−１２７２１２号公報（第４頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術では、プログラマブルデバイスや動的にデータ処理の論理構成を変更するデバイスを利用する場合、論理構成情報毎に実際に利用される有効な経路が変わる。実際の有効な経路が変わることに伴い実質的なクリティカルパスの場所も変わるので、自動で、あるいは、半自動で実質的なクリティカルパスに対応する周波数などの動作条件を探査、設定することが困難であった。この原因として、以下の３点の問題点があった。
【０００７】
１つ目の問題点は、論理構成情報が指示するプログラマブルな経路スイッチの接続状況に応じて信号伝送路の遅延時間が変化すること、２つ目の問題点は、論理構成情報が指示する経路スイッチの接続状況を最適な条件で動作させる条件を探す必要があること、３つ目の問題点は、実装上経路スイッチを多用する構成であるのでプロセサエレメント間接続に多くの配線を使用することである。
【０００８】
まず、経路スイッチの接続状況に応じて信号伝送路の遅延時間が変化する問題点に対応するための課題としては、厳しい経路遅延の個所を随時変更される論理構成情報に対応した形で認識する必要があるということである。ここで、厳しい経路遅延の個所を認識する方法の一つとして、経路遅延テストが挙げられる。経路遅延テストは、通常、製造時のデバイス自体の仕様に対する性能保証の目的で実施される。従来、このようなプログラマブルなデバイスを利用する際には、経路スイッチの接続状況である論理構成情報が、選択したデバイスの仕様性能に則って作成されることが多い。すなわち、選択したデバイスによりあらかじめ定められた周波数や処理性能の目標に応じて機能を満たすためのマッピングに領域制限などを加えて設計するのが一般的であり、論理構成情報に応じて低消費電力化や動作率の低減を含めた性能最適化の目的で使用するテスト機構は通常用意されてない。このため通常動作の最中に経路遅延テストを実施して遅延エラーを探査する場合は、事前に論理構成情報と物理的なマッピング情報との両方を照らし合わせることにより、遅延時間が厳しいプロセサエレメント間接続を特定し、この論理構成情報に基づく論理構成の最悪遅延個所に対して更に経路遅延テスト用のテスト回路を追加するか、あるいは、スキャンなどのテスト動作を一時的に動作させて期待値比較する処理に頼らなければならない。このため、プロセサエレメント間の接続で遅延変化を伴う場合、動作中の周波数によるサイクルタイム制約によりプロセサエレメント間の構成方法が制限されてしまう。
【０００９】
次に、経路スイッチの接続状況に応じて最適な動作条件を探す問題点に対応する課題は、プログラマブルデバイスに展開した論理構成情報に対応する遅延性能の限界を通常動作中に容易に探査する仕組みを実装する必要があるということである。一般的にデバイスの経路遅延テストはテスタを用いて実施されることが多く、このテストではスキャン動作を伴う事が多い。スキャン動作を伴う経路遅延テストは、クロックの制御やシフト動作を伴う方法がとられ、スキャンチェーンに連なるフリップフロップ内のデータを破壊してしまうので、デバイスが基板に実装された後や通常動作モード時に実施する経路遅延テストとしては不向きである。また、従来、プログラマブルなデバイスは論理構成情報をターゲットとする周波数にあわせて論理を最適化マッピングすることが一般的な使われ方であり、論理構成情報に対応した遅延テストを実施する事はない。仮に数通りの入れ替え可能な論理構成情報に対し論理構成情報をもとにクリティカルパスを把握ができたとして、通常動作モードで経路遅延テストを実施しようとすると、クリティカルパスに遅延性能の限界点を探査するような経路遅延テストの機構を論理構成情報に追加し、その上で論理構成情報がターゲットとする周波数をスイープするなどの対策が必要となる。しかし、経路遅延テストのための論理構成情報の追加はマッピング時に困難を伴ったり、論理構成毎に異なるテストの手続きを用意したりする事になるので、通常の動作中に切り替え実施の可能性がある任意の論理構成情報に対し動作周波数探査を実施する目的では利用しにくい。また、論理構成情報とデバイスの個体バラツキなどのデバイスに関わる問題が複合的要因となる場合には基板に搭載した後も遅延探査する機構があることが望ましい。
【００１０】
プロセサエレメント間接続に多数の配線を使用する問題点に対応する課題としては、プロセサエレメント間の配線を増やすことなく経路遅延テストなどのテスト機構の追加する必要があるということである。元来、プログラマブルデバイスでは様々な論理構成情報に対応できるよう未使用経路の配線がプロセサエレメント間の接続として既に多数存在しており、この配線に加えて多方面と接続する回路追加はデバイスの面積増加の直接的な原因となる。例えば、処理を行うプロセサエレメントへのデータ転送をテストする際に送信側のデータの伝播を前提として期待値生成させると、データ送信側からの配線を2重に用意することになるので、この配線増加による面積増加となって現れる。また、スキャン動作による経路遅延テストを通常動作モードでも使用可能なように高速化するためにはスキャンパスの並列化が有効であるが、並列化に伴い配線数が増加することになる。
【００１１】
本発明は、上記の課題に鑑みてなされたものであり、実際に使用している論理構成に応じてプロセサエレメント間の経路遅延の性能調査にテスタを用いたり、スキャンモードなどの特殊な動作モードを用いたりするではなく、デバイスを基板実装後、通常動作モード時に個々の論理構成で必要に応じて実施する事を可能とするプログラマブル回路及びプロセサエレメントを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明のプログラマブル回路は、論理構成の切り替えが可能なプログラマブル回路において、機能を実現する処理単位である複数のプロセサエレメントと、前記プロセサエレメントを組み合わせることにより機能を実現するための前記プロセサエレメント間の相互接続を指定する論理構成指示部と、前記論理構成指示部に応じて変更される有効な前記プロセサエレメント間の接続経路のうち、任意の接続経路に対して遅延テストを実施する経路遅延テスト実施部と、前記経路遅延テスト実施部には、論理構成情報により形成された個別経路に対する経路遅延テストのパターンを生成するテストパターン生成部と、前記テストパターン生成部で作成された経路遅延テストのパターンを経路遅延テストの対象経路へと送信するための選択回路と、前記経路遅延テストの対象経路を経由して受信されたテストパターンと期待値とを比較することにより、個別経路の経路遅延テスト結果を判定する経路遅延テストの結果判定部と、前記経路遅延テストの前記結果判定部に入力する期待値を生成する期待値生成部とを備える。
【００１３】
本発明のプロセサエレメントは、通信経路上流よりデータを受信する第１のフリップフロップと、通信経路上流の経路遅延テストに対する期待値を生成する期待値生成部と、前記第１のフリップフロップの出力と前記期待値生成部で生成された期待値とを比較する経路遅延テストの結果判定部と、通信経路下流の経路遅延テストパターンを生成するテストパターン生成部と、通信経路下流へとデータを送信するための第２のフリップフロップと、前記テストパターンで生成したテストパターンあるいは通常動作時にプロセサエレメント内での処理結果のいずれかを前記第２のフリップフロップへ選択的に設定するセレクタとを備える。
【発明の効果】
【００１４】
請求項1に記載の論理構成情報に応じてプロセサエレメント間の経路遅延テストを実施するプログラマブル回路では、実際に使用している論理構成に応じてプロセサエレメント間の経路遅延の性能調査にテスタを用いたり、スキャンモードなどの特殊な動作モードを用いたりするではなく、デバイスを基板実装後、通常動作モード時に個々の論理構成で必要に応じて実施する事ができる。
【００１５】
また、論理構成に利用されている以外の空きプロセサエレメントに対して、プロセサエレメント間で事前に類似の最悪遅延構成を構成し経路遅延テストを実施する事により、論理構成を変更する前に、次の論理構成での最大遅延に対するプロセサエレメント間通信の実現可能性を試す事が出来る。
【００１６】
また、製造時のデバイステストの際にテスタを用いる場合にも、最大遅延のテストを特定することが出来るのでデバイス自体の性能に関するテストが実施し易い。更に、デバイスを基板に搭載した後も、実際のプログラマブル回路への論理構成情報マッピングに対応した遅延性能がテスト可能なので、デバイスの個体差と論理構成の両方を考慮した動作確認を行う事も可能になる。
【００１７】
請求項２に記載の論理構成情報に応じてプロセサエレメント間の経路遅延テストを実施するプログラマブル回路では、経路遅延テストでの合否の結果をもとにクロックタイミングを設定する事により、論理構成情報で指示した論理構成が動作可能な周波数を自動的に探査する事が可能になる。
【００１８】
また、更にソフトウェアあるいは専用ハードウェアなどにより制御する動作周波数の設定手法を併用することにより、消費電力や動作効率の点で最適な動作周波数設定の合理化、簡略化が可能になる。
【００１９】
更に、本発明によれば、エラー情報が応答性良く即座に得る事ができるので、タイミング制御情報に応じた論理構成選択を自動的に実施することが可能になる。
【００２０】
請求項３に記載の論理構成情報に応じてプロセサエレメント間の経路遅延テストを実施するプログラマブル回路では、論理構成情報により実効的に利用される経路の一部を選択して経路遅延テストを実施する事が可能になる。また、逆に、論理構成情報により論理構成として使用されないプロセサエレメントや明らかに最悪遅延とはならない個所に対して経路遅延テストが不要な場合は、論理構成情報をもとに経路遅延テスト結果をマスクしたり、経路遅延テスト回路の動作を停止させたりする制御が可能になる。
【００２１】
請求項４に記載のプロセサエレメントを使用することにより、プロセサエレメント群の各プロセサエレメントに同一機能の経路遅延テストパターン生成器を設けることで、プログラマブル回路のプロセサエレメント群全体を通じてプロセサエレメント間接続の経路遅延テストで利用するテストパターンに共通のパターンを使用することなる。この結果、テストパターン生成部と期待値生成部を分離して配置することが可能になるので、スキャンパスや期待値転送パスなど余分な配線を必要としないテスト回路の構成が可能となる。また、スキャンに頼らずに経路遅延テストの実施が可能なので、実装時に余分な配線経路を実装する必要が無くなる上、値セットのための手続きと時間を要しない経路遅延テストが可能になる。
【００２２】
また、プロセサエレメントのデータ入力と、データ出力を通常のデータ処理と分離する事が出来るので、テスタを用いた試験の際に動作率に関するベクタが存在しなくても、プロセサエレメントのデータ出力をテストベクタ側の選択状態に固定したままプロセサエレメント内で擬似的にデータ処理を動作させて、動作率の影響を模倣した形で動作周波数依存性の事前調査を実施する事も可能となる。
【００２３】
請求項５に記載のプロセサエレメントを使用することにより、テストパターン生成部と期待値生成部を兼用する事が可能になり、回路量の削減と経路遅延テストの簡略化が期待できる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明の実施形態を説明する。
ここで、本発明のプロセサは、データ転送経路にフリップフロップを含むプログラマブルスイッチもプロセサエレメントの一種として扱うことを前提とする。この理由は図１２以降で説明するが、プログラマブルスイッチがフリップフロップを含む場合は、経路遅延テスト回路の挿入個所をプロセサエレメントと同様に扱う事が出来、また、プログラマブルスイッチがフリップフロップを含まない場合は、本発明が主張する第一の請求項に示す回路の派生形と考えることができるという理由による。
【００２５】
本発明の実施形態を図１に示す。
図１では、論理構成情報をもとに決定される経路に対して経路遅延テストを行う仕組みとしてデータの送信側として経路遅延テストのパターンを生成する系と、データの受信側にデータ転送の誤りを期待値比較により判定する系とを独立に備える例を示している。
すなわち、論理構成情報をもとに全プロセサエレメントの経路の組み合わせを制御するプロセサエレメント全体の制御を行う論理構成指示部（１００）により、ある論理構成情報を実現するプログラマブル回路の制御に対応するプロセサエレメントの制御情報（１２５）を各々のプロセサエレメントへ伝える。ある論理構成情報を実現する前記プロセサエレメントの制御情報（１２５）に従い、プロセサエレメントの接続経路が決定され送信側のプロセサエレメント０（１０１）から受信側のプロセサエレメント８（１０９）までの経路遅延テストの対象経路（１２６）が一時的に確立されるものとする。
【００２６】
データの送信側で経路遅延テストのパターンを生成する系において、プロセサエレメント０内の送信側フリップフロップ（１１２）の内容としては、通常論理動作を行っているときはプロセサエレメント０内のデータ処理部（１１０）により処理された結果をプロセサエレメント０内の出力データセレクタ（１１１）にて選択するが、経路遅延テスト動作を実施する場合はプロセサエレメント０近傍に配置されたテストパターン生成部（１１３）にて発生した経路遅延テストパターンデータをプロセサエレメント０内の出力データセレクタ（１１１）にて選択する。
【００２７】
次に、データの受信側に周波数などの動作条件に応じてデータ転送の誤りを期待値比較により判定する系としては、プロセサエレメントで論理動作を開始する際に確立された経路遅延テストの対象経路（１２６）に対応して期待値比較がなされるものとする。すなわち、経路遅延テストの対象経路（１２６）が選択されるプロセサエレメントの制御情報（１２５）をもとに、経路遅延テスト対象となるプロセサエレメント８内の入力データセレクタ（１１７）により、入力データを選択し、プロセサエレメント８内の受信側フリップフロップ（１１８）でデータを受けとる。次に前記フリップフロップ（１１８）の出力値と経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）の出力値とを、経路遅延テスト対象となる経路遅延テスト結果判定部（１２２）で比較する事により、プロセサエレメント０内の送信側フリップフロップ（１１２）のデータが経路遅延テストの対象経路（１２６）に対して誤りなく転送されたか否かをテストすることが可能になる。
【００２８】
経路遅延テストのトリガ情報も論理構成指示部（１００）により生成され、プログラマブル回路全体に分散配置した経路遅延テスト部（１２４）への制御信号の一つとして分配され、テストパターン生成部（１１３）とデータ受信側プロセサエレメント８の経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）及び経路遅延テスト対象となる経路遅延テスト結果判定部（１２２）の同期関係を保証する。
【００２９】
ここで、本発明では前記経路遅延テスト部（１２４）は基本的にプロセサエレメントの配置状態に応じて分散して配置されるが、経路遅延テスト機構としては回路量の増加を避けるため、複数のプロセサエレメントで前記経路遅延テスト部（１２４）を共有する構成をとることも可能である。
【００３０】
また、テスト実施の方式としては、テストパターンそのものを期待値として活用するために別経路を設けて伝播させるのではなく、テスト動作中のテストパターン生成部（１１３）と経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）の1対1の相関性により期待値比較を行う方法をとる。前記経路遅延テスト部（１２４）はスキャン動作を前提としておらず、テストモードへの動作モード変更を必ずしも必要としないので経路遅延テストの結果を即座に得る事が出来る。この方法によると、通常動作時に使用されていない経路について経路遅延テストを並列実行できるという利点がある。
【００３１】
具体的なテストパターン生成器や期待値生成器としては、共通のトグル情報を発生するだけの単純な回路を利用することも可能であるし、共通の擬似乱数発生器等を利用することにより、複雑なパターンのテストを実施することも可能である。また、これらパターン発生の専用回路の代用として、演算回路やカウンタなどプロセサエレメント内の回路を一時的に利用しても構わない。
【００３２】
また、ある論理構成情報を実現するプロセサエレメントの制御情報（１２５）により、使用されないことが明らかな経路に関しては経路遅延テストを実施しない制御も可能である。すなわち、前記プロセサエレメントの制御情報（１２５）により送信側のプロセサエレメント０（１０１）から、送信経路が確立されないプロセサエレメント１（１０２）までの経路（１２７）は、前記プロセサエレメントの制御情報（１２５）をもとに経路遅延テストの対象外とする。すなわち、送信経路が確立されない経路遅延テスト対象外のプロセサエレメント１内の受信側フリップフロップ（１１５）の経路遅延テストを実施する系は実際の経路として使われておらず、データ転送の誤りを期待値比較により判定する必要のない系である。プロセサエレメント１の経路遅延テスト対象外となる経路遅延テスト結果判定部（１２０）、経路遅延テスト対象外となる経路遅延テスト期待値生成部（１２１）による経路遅延テストの結果は全体の経路遅延テストの結果には反映されない。
経路遅延テスト実施のタイミングとしては、実際の演算処理の投入前に、論理構成情報を事前に解析し論理構成情報上、タイミングの厳しそうな接続か、あるいは未使用エレメントを利用して擬似的に作成した接続に対して、経路遅延テストを先行的に実行し演算処理の開始前、あるいは開始後に論理構成情報に対応する動作周波数へと調節を行う事が可能な実行形態を考える事が出来る。
【００３３】
本発明の他の実施形態を図２に示す。図２は、プログラマブルな論理構成情報をもとに有効な経路を選択し、有効な結果を集計し動作タイミングの最適化を実施する例を示している。
【００３４】
すなわち、プロセサエレメント間の経路の組み合わせを制御する論理構成指示部（１００）により、送信側のプロセサエレメント０（１０１）と受信側のプロセサエレメント８（１０９）との間に経路遅延テストの対象経路（１２６）が決定されるものとする。
【００３５】
ここで、通常論理動作時には、送信側のプロセサエレメント０（１０１）内のデータ処理部（１１０）がプロセサエレメント０のデータ処理部の制御情報（２０３）に従って動作し、プロセサエレメント０内のデータ処理部（１１０）により処理されたデータは、プロセサエレメント０内の出力データセレクタ（１１１）、プロセサエレメント０内の送信側フリップフロップ（１１２）を経て、プロセサエレメント８内の入力データセレクタ（１１７）からプロセサエレメント８内の受信側フリップフロップ（１１８）により受信される。受信後のデータは、次サイクル以降でプロセサエレメント８内のデータ処理部（１１９）で処理される。このとき、送信側におけるプロセサエレメント０のデータ処理部の制御情報（２０３）、プロセサエレメント０の出力データセレクタの制御情報（２０４）と、受信側におけるプロセサエレメント８の入力データセレクタの制御情報（２０５）、および、プロセサエレメント８のデータ処理部の制御情報（２０６）は通常論理動作の通信経路を選択し、経路遅延テスト部の制御情報（２０７）は図1に記載の前記経路遅延テスト部（１２４）の経路遅延テストの対象経路（１２６）における経路遅延テスト動作を抑止する。
【００３６】
次に、経路遅延テスト動作時にはプロセサエレメント０の出力データセレクタの制御情報（２０４）を経路遅延テストパターンの選択状態にし、受信側のプロセサエレメント８内の入力データセレクタ（１１７）の選択状態を論理構成情報に合わせて固定する。図1に記載の前記経路遅延テスト部（１２４）はプロセサエレメントの配置状態に応じて分散して配置されており、経路遅延テスト部の制御情報（２０７）は、対象とするプロセサエレメント０（１０１）と、プロセサエレメント８（１０９）間の経路遅延テストの動作を指定し、テストパターン生成部（１１３）、プロセサエレメント８の経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）、経路遅延テスト対象となる経路遅延テスト結果判定部（１２２）を制御する。経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）で生成した経路遅延テスト期待値情報（２１２）をもとに経路遅延テスト対象となる経路遅延テスト結果判定部（１２２）で得られた経路遅延テスト結果情報（２１１）は経路遅延テストの結果集計部（２００）で集計の上、経路遅延テスト集計結果情報（２０９）とされ、遅延デバイス全体の制御情報の一つとして用いられる。
【００３７】
経路遅延テスト集計結果情報（２０９）をもとにタイミングの調整を実施する場合は、タイミング制御部（２０１）により、タイミング制御情報（２０８）に変換される。タイミング制御情報（２０８）はクロック制御部（２０２）へ転送されタイミング制御情報（２０８）の指定する条件に応じたタイミング制御を行い、クロック信号（２１０）として各部位に分配する。例えば、経路遅延テスト結果がエラーしている場合、経路遅延テスト結果がエラーしなくなるまでPLLの分周比を変更するなどの方法により動作周波数を下げて、経路遅延に必要なタイミングを長く取るような制御を行う。また、経路遅延テスト結果がエラーしていない場合は、処理を高速化のために動作周波数を上げて、経路遅延に必要なタイミングを短くする制御を行う。
【００３８】
また、経路遅延テスト集計結果情報（２０９）をトリガとして、別の論理構成情報での回路構成に変更したい場合は、論理構成指示部へのフィードバック制御を実施する。例えば、動作条件として特定の周波数領域にクロックサイクルが固定されていた場合、経路遅延テスト集計結果情報（２０９）のエラー状況の検出したら、処理性能は劣るがタイミングの面では動作が容易な論理構成情報を再度選択し直して、回路構成を再構成し、その後に処理を実行させるといった制御方法をとる事が出来る。
【００３９】
本発明の請求項３に記載の望ましい実施形態を図３に示す。
図３は、デバイス上に存在はするがプログラマブルな論理構成情報に基づき使用されなかった経路に対応する経路遅延テスト結果を除外し、有効な経路に対する経路遅延テストのみを動作周波数の最適化に利用するための抑止制御を示している。
【００４０】
すなわち、図３の例に拠ると、ある論理構成情報により論理構成指示部からプロセサエレメント１（１０２）の入力情報として、プロセサエレメント０（１０１）の出力が選択されていなかった場合、これらプロセサエレメント０（１０１）と、プロセサエレメント１（１０２）間の経路が使用されておらず、経路遅延テスト対象外の接続経路（１２７）として認識されるので、この接続間の経路遅延情報はタイミングを考慮する必要がない。このような論理構成情報を用いる場合、論理構成指示部は経路遅延テストの適用経路の選択状況や経路遅延テスト結果のマスク状況を制御する。例えば、経路遅延テスト対象外の接続経路（１２７）に対して、送信側におけるプロセサエレメント０のデータ処理部の制御情報（２０３）、プロセサエレメント０の出力データセレクタの制御情報（２０４）と、受信側におけるプロセサエレメント１の入力データセレクタの制御情報（３０１）、プロセサエレメント１のデータ処理部の制御情報（３０２）により、経路選択が不活性の状態に制御がなされる。図1に記載の前記経路遅延テスト部（１２４）のうちの該当経路に関連するテストパターン生成部（１１３）、経路遅延テスト対象外となる経路遅延テスト結果判定部（１２０）、経路遅延テスト対象外となる経路遅延テスト期待値生成部（１２１）、および、図３の経路遅延テストの結果集計部（２００）にて経路遅延テストを実施しないか、あるいは、経路遅延テスト結果をマスクしたりするなどの方法で、論理構成指示部（１００）やタイミング制御部（２０１）に必要な経路遅延テスト結果のみを伝える。論理構成指示部（１００）、クロック制御部（２０２）への制御情報のフィードバックは図２と同様に実施される。
【００４１】
図４は、図３の制御を実現する論理構成情報の利用法の一つを説明しており、図３におけるプロセサエレメント１の経路遅延テスト対象外となる経路遅延テスト結果判定部（１２０）の構成例を示している。
【００４２】
すなわち、経路遅延テスト対象外となるプロセサエレメント１内の受信側フリップフロップ（１１５）により受信データ（４０２）と経路遅延テスト期待値情報（３０４）とにより期待値比較部（４００）にて期待値比較を行うが、このとき、経路遅延テストイネーブル制御情報（４０３）により期待値比較部（４００）の動作と停止の制御を実施する。また、経路遅延テストイネーブル制御情報（４０３）により期待値比較部（４００）の出力を抑止するテスト結果のマスク機構（４０１）を用い、経路遅延テストの実施状況に応じてテスト結果の合否を示す。実施状況に応じた経路遅延テスト結果情報（３０３）が経路遅延テストの結果集計部（２００）に集められる。
【００４３】
図５は、図３の制御を実現する論理構成情報のもう一つの利用法を説明しており、図３における経路遅延テストの結果集計部（２００）の構成例を示している。図４の経路遅延テスト結果の抑止制御を経路遅延テストの結果集計部（２００）の側で実施したものである。
【００４４】
すなわち、各経路に対するテスト結果のマスク処理を行うために、各プロセサエレメントにおける経路遅延テスト結果判定部に対応するマスク機構として、プロセサエレメント０の経路遅延テスト結果マスク回路（５０１）、プロセサエレメント１の経路遅延テスト結果マスク回路（５０２）、プロセサエレメントｎの経路遅延テスト結果マスク回路（５０３）を備える。プロセサエレメント０の経路遅延テスト結果（５０５）、プロセサエレメント１の経路遅延テスト結果（５０７）、プロセサエレメントｎの経路遅延テスト結果（５０９）はそれぞれ、プロセサエレメント０の経路遅延テストイネーブル情報（５０４）、プロセサエレメント１の経路遅延テストイネーブル情報（５０６）、プロセサエレメントｎの経路遅延テストイネーブル情報（５０８）によってマスク制御され、有効な経路遅延テスト結果についてのみ、結果集計処理部（５００）で経路遅延テスト結果の集計を行う事が出来るものとする。有効な経路遅延テスト集計結果情報（２０９）が論理構成指示部（１００）あるいはタイミング制御部（２０１）へと伝えられる。
【００４５】
本発明の他の実施形態を図６に示す。
図６は、本発明のプログラマブルデバイスの実効的な経路遅延テストを容易にするプロセサエレメントの構成の一例を示している。
【００４６】
すなわち、再構成可能なプログラマブルデバイスを構成するプロセサエレメント（６００）内に通信経路上流側からの経路に対する経路遅延テストの結果判定部（６０７）と期待値生成部（６０７）の系を備え、同時に自エレメント（６００）以降の通信経路下流側への経路に対するテストパターン生成部（６０８）の系を独立に備える。また、図６ではプロセサエレメント（６００）には、経路遅延テストを制御するためのローカルなプロセサエレメント内制御部（６０１）をプロセサエレメント内部に持つ例を示している。
通信経路上流側から送られるデータは入力データセレクタ（６０２）でプロセサエレメント間の接続経路を特定し、受信側フリップフロップ（６０３）に格納される。経路遅延テストの結果判定部（６０７）と期待値生成部（６０８）により、経路遅延テストの結果の合否を判定する。
【００４７】
通信経路下流側へ送られるテストパターンは、出力データセレクタ（６０５）で通常論理動作時に選択するデータ処理部（６０４）からのデータではなく、経路遅延テストのテストパターン生成部（６０９）で生成したデータを選択し、送信側フリップフロップ（６０６）に格納して経路遅延テストのパターンとする。
【００４８】
本発明の請求項４に記載のもう一つの望ましい実施形態を図７に示す。
図７では、本発明の経路遅延テストを容易にするプロセサエレメントの構成の一例を示している。図６に記載のデータ処理部（６０４）に対応する部分が、データ処理部Ａ（７０３）、データ処理部B（７０５）に分かれている場合の制御に関する例を示している。すなわち、再構成可能なプログラマブルデバイスを構成するプロセサエレメント（７００）内の通信経路上流側から送られるデータに対して、経路遅延テストを行う際に受信側フリップフロップ（７０４）に格納されるデータの変化を伝播させるため、図１に記載の論理構成指示部（１００）ではなく、更に個別の構成要素毎に経路遅延テストを制御するためのローカルなプロセサエレメント内制御部（７０１）によりデータ処理部Ａ（７０３）を制御して経路固定を指示する。また、データ処理部Ａ（７０３）伝播中になされる処理は、期待値生成部（７０９）あるいは経路遅延テスト結果判定部（７０８）にて相関性を解決し、通信経路上流側からテストパターンを伝播させることなく期待値比較を可能にする。例えば、データ処理部Ａ（７０３）を経路固定した場合、期待値の論理反転が起こる場合は、期待値生成部（７０９）にて生成したパターンをもとに期待値生成部（７０９）あるいは経路遅延テストの結果判定部（７０８）にてパターン反転を行うなど、受信側フリップフロップ（７０４）までの経路で実行される論理動作を補うことで期待値の論理補完を行う。
テストパターン生成部（７１０）は、図６に記載のテストパターン生成部（６０９）に対応する。
【００４９】
本発明の他の実施形態を図８に示す。
図８は、本発明の経路遅延テストを容易にするプロセサエレメントの構成の一例を示しており、図６、図７と比較して、経路遅延テストのテストパターンセットのポイントとデータキャプチャのポイントがプロセサエレメント（８００）内の最終段の受信送信併用フリップフロップ（８０５）で重なっていることが特徴である。この場合、テストパターンセットとデータのキャプチャが同時に行えないので、テストパターンセットとデータのキャプチャは排他的に制御されることになる。すなわち、テストパターンセット時には出力データセレクタ（８０４）をテストパターン生成部（８０６）側のデータを選択させてテストデータを受信送信併用フリップフロップ（８０５）にセットする。データキャプチャの時は入力データセレクタ（８０２）、データ処理部（８０３）を実行に関わる特定の経路に固定したうえ、出力データセレクタ（８０４）を入力データ側の選択にする。次のサイクル以降で受信送信併用フリップフロップ（８０５）の出力を期待値生成部（８０８）で生成されたとの値と比較することにより、経路遅延テストの結果判定部（８０７）で経路遅延テストの結果を得る。
【００５０】
本発明の他の実施形態を図９に示す。
図９は、本発明の経路遅延テストを容易にするプロセサエレメントの構成の一例を示しており、図６、図７、図８と比較して、経路遅延テストのテストパターンセットのポイントとデータキャプチャのポイントがプロセサエレメント（９００）内の最初の受信送信併用フリップフロップ（９０４）で重なっていることが特徴である。この場合、図８と同様、テストパターンセットとデータのキャプチャが同時に行えないので、テストパターンセットとデータのキャプチャは排他的に制御されることになる。すなわち、テストパターンセット時には出力データセレクタ（９０３）をテストパターン生成部（９０６）側のデータを選択させてテストデータを受信送信併用フリップフロップ（９０４）にセットする。また、次のサイクル以降で経路遅延テストを実施するときは、データ処理部（９０５）を実行に関わる特定の経路に固定し、データキャプチャの時は入力データセレクタ（９０２）を実行に関わる特定の経路に固定して、出力データセレクタ（９０３）を入力データ側の選択にする。次のサイクル以降で受信送信併用フリップフロップ（９０５）の出力を期待値生成部（９０８）で生成されたとの値と比較することにより、経路遅延テストの結果判定部（９０７）で経路遅延テストの結果を得る。
【００５１】
本発明の他の実施形態を用いて、請求項１に記載の望ましい実施形態を適用した例を図１０に示す。
図１０では、プロセサエレメントの構成の一例として、図６に記載のプロセサエレメントの構成をもとにデータ処理部（６０４）として、２つデータ入力を持つ演算器を用いた例を示している。
【００５２】
すなわち、全プロセサエレメントの経路の組み合わせを制御するプロセサエレメントの制御部（１００）から、プロセサエレメントの制御情報（１２５）がプロセサエレメント群（１０００）に伝えられ、プロセサエレメント相互の接続が決定される。ここで、プロセサエレメントとして（１００１〜１００９）の接続状況が図１０に示す通りであった場合を考える。有効経路中の最長経路（１０１０）に対しては、テストパターン生成部（１１３）から有効経路（１０１０）を経て、経路遅延テスト対象となる経路遅延テスト期待値生成部（１２３）及び経路遅延テスト対象となる経路遅延テスト結果判定部（１２２）までの系を用いて経路遅延テストが実施される。
【００５３】
最大遅延が経路（１０１０）であると分かっている場合や、他の有効経路（例えば１０１１）の経路遅延テストを無視させても支障がない場合は、最大遅延経路（１０１０）の経路遅延テスト結果のみに焦点を絞り経路遅延テストを行う事が出来るような制御が、全プロセサエレメントの経路の組み合わせを制御するプロセサエレメントの制御部（１００）により可能となる。
【００５４】
本発明の他の実施形態を図１１に示す。
図１１では、本発明の経路遅延テストを容易にするプロセサエレメントの構成の一例を示している。プロセサエレメント（１１００）の構成は、図６に示した例と比較して、テストパターン生成部（６０８）と期待値生成部（６０７）に対応する部分を、テストデータ発生部と期待値生成部を共有したテストパターン生成部（１１０１）として共通化している。等価なプロセサエレメントからなるプログラマブルデバイスでは、処理単位が等価な論理構造が繰り返し用いられる事が多い。このため、請求項４に記載のプロセサエレメントと同時に実装される経路遅延テスト論理では、テストパターンと期待値の相関性が元々保たれている場合が多く、この相関性をもとにテストパターン生成部と期待値生成部とを同一部品として実装することが可能になる。プロセサエレメント（１１００）のこの実装形態は回路量縮小に寄与する。
【００５５】
なお、プログラマブルデバイスや動的に論理構成を変更するデバイスでは、プロセサエレメント間の接続を切り替えるためのプログラマブルスイッチを独立な配置単位とした図１２に示すような構造をもつものがある。図１２では例として、９個のプロセサエレメントと４個のプログラマブルスイッチによる構成を示している。
【００５６】
内部にフリップフロップを含むプログラマブルスイッチは、経路遅延テスト回路の位置の回路構成上、図６、図７、図８、図９で述べるプロセサエレメントのうちのいずれかに分類することができる。例えば、図１３に記載のフリップフロップを含むプログラマブルスイッチ（１３００）は、図１２のプログラマブルスイッチ（１２１０）に相当するものとする。ここで、前記プログラマブルスイッチ（１３００）は、３つの送信側のプロセサエレメント０（１２０１）、プロセサエレメント１（１２０２）、プロセサエレメント２（１２０３）と、３つの受信側のプロセサエレメント３（１２０４）、プロセサエレメント４（１２０５）、プロセサエレメント５（１２０６）との接続を切り替えるスイッチとして動作するので、接続状況が変わる入力部では図８の構成を適用でき、また、接続状況が変わる出力部に関しては図９の構成を適用することができる。
【００５７】
また、内部にフリップフロップを含まないプログラマブルスイッチ図１４は、図２におけるデータ送信側プロセサエレメント０（１０１）とデータ受信側プロセサエレメント８（１０９）の経路遅延テストの対象経路（１２６）にマルチプレクサとデマルチプレクサを含む図２の特別な例として扱う事が出来る。すなわち、図１４に示すとおり、図１２のプログラマブルスイッチ（１２１０）に相当する部位がフリップフロップを含まない構成のプログラマブルスイッチ（１４００）であった場合、プログラマブルスイッチ部に経路遅延テストの回路を挿入する必要はない。論理構成情報に従い経路固定を行い、プロセサエレメント間の有効な接続に対する経路遅延テストを実施すればよい。
【００５８】
更に、上記で述べたフリップフロップ有り無しの２通りのプログラマブルスイッチが多段に接続されている場合は、上記の前提のもとに多段のプロセサエレメントと同等な接続か、あるいはその派生形として扱うことができる。
【図面の簡単な説明】
【００５９】
【図１】プロセサエレメント間の有効経路遅延テストのための構成を示す図である。
【図２】プロセサエレメント間の有効経路遅延テストをもとにしたタイミング制御を示す図である。
【図３】無効経路に対する経路遅延テストとタイミング制御の抑止を示す図である。
【図４】無効経路の経路遅延テスト個所に対する期待値比較抑止およびマスク制御を示す図である。
【図５】タイミング制御部に対する無効経路に対するテスト結果のマスク制御を示す図である。
【図６】有効経路に対する経路遅延テストを実施するプロセサエレメントの構成を示す図である。
【図７】有効経路に対する経路遅延テストを実施するプロセサエレメントの構成を示す図である。
【図８】有効経路に対する経路遅延テストを実施するプロセサエレメントの構成を示す図である。
【図９】有効経路に対する経路遅延テストを実施するプロセサエレメントの構成を示す図である。
【図１０】前記図６のプロセサエレメントを使い経路遅延テストを実施する場合の例を示す図である。
【図１１】上流からのデータの期待値生成と下流へのテストパターンの回路を共有させたパターン生成器を示す図である。
【図１２】プログラマブルスイッチ部を構成要素とするプログラマブルデバイスを示す図である。
【図１３】フリップフロップを含むプログラマブルスイッチ部とプロセサエレメント部を示す図である。
【図１４】フリップフロップを含まないプログラマブルスイッチ部とプロセサエレメント部を示す図である。
【符号の説明】
【００６０】
１００：論理構成指示部
１０１：プロセサエレメント０
１０２：プロセサエレメント１
１０３：プロセサエレメント２
１０４：プロセサエレメント３
１０５：プロセサエレメント４
１０６：プロセサエレメント５
１０７：プロセサエレメント６
１０８：プロセサエレメント７
１０９：プロセサエレメント８
１１０：プロセサエレメント０内のデータ処理部
１１１：プロセサエレメント０内の出力データセレクタ
１１２：プロセサエレメント０内の送信側フリップフロップ
１１３：テストパターン生成部
１１４：プロセサエレメント１内の入力データセレクタ
１１５：プロセサエレメント１内の受信側フリップフロップ
１１６：プロセサエレメント１内のデータ処理部
１１７：プロセサエレメント８内の入力データセレクタ
１１８：プロセサエレメント８内の受信側フリップフロップ
１１９：プロセサエレメント８内のデータ処理部
１２０：経路遅延テスト対象外となる経路遅延テスト結果判定部
１２１：経路遅延テスト対象外となる経路遅延テスト期待値生成部
１２２：経路遅延テスト対象となる経路遅延テスト結果判定部
１２３：経路遅延テスト対象となる経路遅延テスト期待値生成部
１２４：プログラマブル回路全体に分散配置した経路遅延テスト部
１２５：プロセサエレメントの制御情報
１２６：経路遅延テストの対象経路
１２７：経路遅延テストの非対象経路
２００：経路遅延テストの結果集計部
２０１：タイミング制御部
２０２：クロック制御部
２０３：プロセサエレメント０のデータ処理部の制御情報
２０４：プロセサエレメント０の出力データセレクタの制御情報
２０５：プロセサエレメント８の入力データセレクタの制御情報
２０６：プロセサエレメント８のデータ処理部の制御情報
２０７：経路遅延テスト部の制御情報
２０８：タイミング制御情報
２０９：経路遅延テスト集計結果情報
２１０：クロック信号
２１１：経路遅延テスト結果情報
２１２：経路遅延テスト期待値情報
３０１：プロセサエレメント１の入力データセレクタの制御情報
３０２：プロセサエレメント１のデータ処理部の制御情報
３０３：経路遅延テスト結果情報
３０４：経路遅延テスト期待値情報
４００：期待値比較部
４０１：テスト結果のマスク機構
４０２：受信データ
４０３：経路遅延テストイネーブル制御情報
５００：結果集計処理部
５０１：プロセサエレメント0の経路遅延テスト結果マスク回路
５０２：プロセサエレメント１の経路遅延テスト結果マスク回路
５０３：プロセサエレメントｎの経路遅延テスト結果マスク回路
５０４：プロセサエレメント0の経路遅延テストイネーブル情報
５０５：プロセサエレメント0の経路遅延テスト結果
５０６：プロセサエレメント１の経路遅延テストイネーブル情報
５０７：プロセサエレメント１の経路遅延テスト結果
５０８：プロセサエレメントｎの経路遅延テストイネーブル情報
５０９：プロセサエレメントｎの経路遅延テスト結果
６００：プロセサエレメント
６０１：プロセサエレメント内制御部
６０２：入力データセレクタ
６０３：受信側フリップフロップ
６０４：データ処理部
６０５：出力データセレクタ
６０６：送信側フリップフロップ
６０７：結果判定部
６０８：期待値生成部
６０９：テストパターン生成部
７００：プロセサエレメント
７０１：プロセサエレメント内制御部
７０２：入力データセレクタ
７０３：データ処理部A
７０４：受信側フリップフロップ
７０５：データ処理部B
７０６：出力データセレクタ
７０７：送信側フリップフロップ
７０８：結果判定部
７０９：期待値生成部
７１０：テストパターン生成部
８００：プロセサエレメント
８０１：プロセサエレメント内制御部
８０２：入力データセレクタ
８０３：データ処理部
８０４：出力データセレクタ
８０５：受信送信併用フリップフロップ
８０６：結果判定部
８０７：期待値生成部
８０８：テストパターン生成部
９００：プロセサエレメント
９０１：プロセサエレメント内制御部
９０２：入力データセレクタ
９０３：出力データセレクタ
９０４：受信送信併用フリップフロップ
９０５：データ処理部
９０６：結果判定部
９０７：期待値生成部
９０８：テストパターン生成部
１０００：プロセサエレメント群
１００１：プロセサエレメント０
１００２：プロセサエレメント１
１００３：プロセサエレメント２
１００４：プロセサエレメント３
１００５：プロセサエレメント４
１００６：プロセサエレメント５
１００７：プロセサエレメント６
１００８：プロセサエレメント７
１００９：プロセサエレメント８
１０１０：有効経路中の最長経路
１０１１：有効経路
１０１２：経路遅延テスト対象のテスト結果情報
１１００：プロセサエレメント
１１０１：テストデータ発生部と期待値生成部を共有したテストパターン生成部
１２００：プロセサエレメントとプログラマブルスイッチからなるプロセサエレメント群
１２０１：プロセサエレメント０
１２０２：プロセサエレメント１
１２０３：プロセサエレメント２
１２０４：プロセサエレメント３
１２０５：プロセサエレメント４
１２０６：プロセサエレメント５
１２０７：プロセサエレメント６
１２０８：プロセサエレメント７
１２０９：プロセサエレメント８
１２１０：プログラマブルスイッチ０
１２１１：プログラマブルスイッチ１
１２１２：プログラマブルスイッチ２
１２１３：プログラマブルスイッチ３
１３００：フリップフロップを含むプログラマブルスイッチ
１４００：フリップフロップを含まないプログラマブルスイッチ
【図１】
2006337163.tif 000003
【図２】
2006337163.tif 000004
【図３】
2006337163.tif 000005
【図４】
2006337163.tif 000006
【図５】
2006337163.tif 000007
【図６】
2006337163.tif 000008
【図７】
2006337163.tif 000009
【図８】
2006337163.tif 000010
【図９】
2006337163.tif 000011
【図１０】
2006337163.tif 000012
【図１１】
2006337163.tif 000013
【図１２】
2006337163.tif 000014
【図１３】
2006337163.tif 000015
【図１４】
2006337163.tif 000016