(57)【要約】    【課題】      高い面積効率を有し、大規模な論理回路を高速に実現可能とすること。    【解決手段】  プロセッサエレメント１０１は、第１の設定情報に基づいて機能の変更が可能であって入力信号に所定の論理演算処理を行ってデータを生成するロジックセル３００と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成するクロスコネクトスイッチ３０１と、分岐用設定情報に基づいてメモリ装置１０２の前記第１及び第２の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御部２０１と、を有している。複数の単位論理回路の各々は、メモリ装置１０２から順次に読み出す前記第１及び第２の設定情報に基づいてロジックセル３００とクロスコネクトスイッチ３０１の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う。  【選択図】      図１
2005229275.tif 000002
【特許請求の範囲】
【請求項１】
並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第１及び第２の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うプログラマブル論理回路。
【請求項２】
並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うプログラマブル論理回路。
【請求項３】
前記論理演算手段は、前記第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行って前記データを生成するロジックセルを具備する請求項１又は請求項２に記載のプログラマブル論理回路。
【請求項４】
前記データ処理手段は、前記第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクトスイッチを具備する請求項１から請求項３のいずれかに記載のプログラマブル論理回路。
【請求項５】
前記データ処理手段は、前記クロスコネクトスイッチからの前記データを保持し前記出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項４に記載のプログラマブル論理回路。
【請求項６】
並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第１及び第２の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うプログラマブル論理回路。
【請求項７】
並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うプログラマブル論理回路。
【請求項８】
前記論理演算手段は、前記第１の設定情報に基づいて機能の変更が可能であって前記入力信号又は隣接の前記他の単位論理回路からの前記データに所定の論理演算処理を行って前記データを生成するロジックセルを具備する請求項７に記載のプログラマブル論理回路。
【請求項９】
前記データ処理手段は、前記第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクトスイッチを具備する請求項６から請求項８のいずれかに記載のプログラマブル論理回路。
【請求項１０】
前記データ処理手段は、前記クロスコネクトスイッチからの前記データを保持し前記出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項９に記載のプログラマブル論理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムすることにより所定の論理演算の機能を実現できるプログラマブル論理回路に関するものであり、特に、動的に内部構成を変化させながら処理を行うダイナミックプログラマブル論理回路に関するものである。
【背景技術】
【０００２】
従来のプログラマブル論理回路として、特許文献１に記載のものがある。この従来のプログラマブル論理回路は、動的相互接続アレーとラッチ回路とダイナミックロジックコアを用いて、具現化すべき回路を段階的に実行する動的再構成可能なフィールドプログラマブルロジックデバイスである。前記従来のプログラマブル論理回路においては、大規模な論理回路を実現する場合に、複数の前記プログラマブル論理回路を直列に接続して、各レベルの論理処理を順番に実行するようにしている。
【０００３】
この場合に、前記従来のプログラマブル論理回路においては、回路レベルを示す回路レベルカウンタと内部レベルを示す内部カウンタを用いて、第１のチップの内部レベルが規定のレベルまで達すると、次のチップを動作させるように制御している。すなわち、前記従来のプログラマブル論理回路においては、チップ単位に回路レベルを分割して具現化している。
【特許文献１】特表平８−５１０８８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のプログラマブル論理回路においては、より大規模な論理回路を実現しようとすると、処理並列度を１チップに収まる程度に抑える必要があるため、処理時間が増加するという問題がある。また、従来のプログラマブル論理回路においては、処理時間を短縮するため、単一のチップに含まれるダイナミックロジックモジュールの個数を増加させることで処理並列度を高めると、これに比例して動的相互接続アレーの接続点が増加し必要となる設定情報が増大するため、実装回路面積が増大してしまうという問題がある。
【０００５】
本発明は、かかる点に鑑みてなされたものであり、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第１及び第２の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
【０００７】
この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することができる。また、この構成によれば、複数の単位論理回路の各々が分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第１及び第２の設定情報のいずれかを読み出して論理演算手段とデータ処理手段とに与えて制御するため、より汎用性があるプログラマブル論理回路を提供することができる。
【０００８】
請求項２に記載の発明は、並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
【０００９】
この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することができる。また、この構成によれば、停止用設定情報を受けて当該停止用設定情報に基づいて論理演算手段とデータ処理手段との停止を制御するため、より汎用性があるプログラマブル論理回路を提供することができる。
【００１０】
請求項３に記載の発明は、請求項１又は請求項２に記載の発明において、前記論理演算手段が、前記第１の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理を行って前記データを生成するロジックセルを具備する構成を採る。
【００１１】
この構成によれば、請求項１又は請求項２に記載の発明の効果を有する。
【００１２】
請求項４に記載の発明は、請求項１から請求項３のいずれかに記載の発明において、前記データ処理手段が、前記第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクトスイッチを具備する構成を採る。
【００１３】
この構成によれば、請求項１から請求項３のいずれかに記載の発明の効果を有する。
【００１４】
請求項５に記載の発明は、請求項４に記載の発明において、前記データ処理手段が、前記クロスコネクトスイッチからの前記データを保持し前記出力信号として前記出力信号制御手段に与えるフリップフロップを具備する構成を採る。
【００１５】
この構成によれば、請求項４に記載の発明の効果を有する。
【００１６】
請求項６に記載の発明は、並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第１及び第２の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
【００１７】
この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することができる。また、この構成によれば、入力信号及び隣接の他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成し、また、複数の単位論理回路の各々が分岐用設定情報を受けて当該分岐用設定情報に基づいて記憶手段の第１及び第２の設定情報のいずれかを読み出して論理演算手段とデータ処理手段とに与えて制御するため、より汎用性があるプログラマブル論理回路を提供することができる。
【００１８】
請求項７に記載の発明は、並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理回路の各々は、第１の設定情報に基づいて機能の変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記第１及び第２の設定情報を記憶する記憶手段と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読み出す前記第１及び第２の設定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
【００１９】
この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することができる。また、この構成によれば、入力信号及び隣接の他の単位論理回路からのデータのいずれかに所定の論理演算処理を行ってデータを生成し、また、停止用設定情報を受けて当該停止用設定情報に基づいて論理演算手段とデータ処理手段との停止を制御するため、より汎用性があるプログラマブル論理回路を提供することができる。
【００２０】
請求項８に記載の発明は、請求項７に記載の発明において、前記論理演算手段が、前記第１の設定情報に基づいて機能の変更が可能であって前記入力信号又は隣接の前記他の単位論理回路からの前記データに所定の論理演算処理を行って前記データを生成するロジックセルを具備する構成を採る。
【００２１】
この構成によれば、請求項７に記載の発明の効果を有する。
【００２２】
請求項９に記載の発明は、請求項６から請求項８のいずれかに記載の発明において、前記データ処理手段が、前記第２の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクトスイッチを具備する構成を採る。
【００２３】
この構成によれば、請求項６から請求項８のいずれかに記載の発明の効果を有する。
【００２４】
請求項１０に記載の発明は、請求項９に記載の発明において、前記データ処理手段が、前記クロスコネクトスイッチからの前記データを保持し前記出力信号として前記出力信号制御手段に与えるフリップフロップを具備する構成を採る。
【００２５】
この構成によれば、請求項９に記載の発明の効果を有する。
【発明の効果】
【００２６】
以上説明したように、本発明によれば、高い面積効率を有し、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供することができる。
【発明を実施するための最良の形態】
【００２７】
本発明の骨子の第１のものは、メモリ制御手段が分岐用設定情報に基づいて記憶手段の第１及び第２の設定情報のいずれかを読み出して論理演算手段とデータ処理手段とに与えて制御し、複数の単位論理回路の各々が、記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うことである。
【００２８】
また、本発明の骨子の第２のものは、メモリ制御手段が停止用設定情報に基づいて論理演算手段とデータ処理手段との停止を制御し、複数の単位論理回路の各々が、記憶手段から順次に読み出す第１及び第２の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うことである。
【００２９】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。
【００３０】
（実施の形態１）
図１は、本発明の実施の形態１に係るプログラマブル論理回路の構成を示すブロック図である。
【００３１】
図１に示すように、本発明の実施の形態１に係るプログラマブル論理回路１００は、複数のプロセッサエレメント１０１、複数のメモリ装置１０２、入出力制御部１０３、制御バス１０４、入力バス１０５及び出力バス１０６を具備している。プログラマブル論理回路１００には、クロック生成回路１０７及びユーザー回路１０８が接続されている。
【００３２】
複数のプロセッサエレメント１０１と複数のメモリ装置１０２とは、１対１で接続されている。１対１で接続されているプロセッサエレメント１０１とメモリ装置１０２とは、単位論理回路を構成している。複数の単位論理回路は、並列に接続されている。
【００３３】
複数のプロセッサエレメント１０１の各々は、１次元的に１列状に配置されており、物理配置上で隣接する２つの他のプロセッサエレメント１０１と接続線１０１ａで接続されている。すなわち、複数の単位論理回路は、１次元的に１列状に配置されており、複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣接する他の前記単位論理回路とは、接続線１０１ａで接続されている。
【００３４】
プロセッサエレメント１０１は、接続線を用いて隣接する２つの他のプロセッサエレメント１０１との間でデータの受け渡しを行う。
【００３５】
入出力制御部１０３は、外部とのインターフェース回路となっており、ユーザー回路１０８と接続されている。制御バス１０４は、入出力制御部１０３及びプロセッサエレメント１０１と接続されている。制御バス１０４は、初期化及び起動等の制御信号を入出力制御部１０３から受け取り、各プロセッサエレメント１０１に転送する。入力バス１０５は、入出力制御部１０３及びプロセッサエレメント１０１と接続されている。入力バス１０５は、論理演算に用いるデータを入出力制御部１０３から受け取り、各プロセッサエレメント１０１に転送する。
【００３６】
出力バス１０６は、入出力制御部１０３及びプロセッサエレメント１０１と接続されている。出力バス１０６は、演算結果のデータをプロセッサエレメント１０１から受け取り、入出力制御部１０３に転送する。クロック生成回路１０７は、内部クロック信号１０９及びユーザークロック信号１１０を生成する。ユーザークロック信号１１０は、ユーザー回路１０８及び入出力制御部１０３で使用される。内部クロック信号１０９は、ユーザークロック信号１１０の逓倍の周波数となっており、プログラマブル論理回路１００の内部で使用される。
【００３７】
次に、本プログラマブル論理回路１００の機能に関して、図面を参照して説明する。
【００３８】
図１において、プログラマブル論理回路１００が行う論理演算処理の内容は、メモリ装置１０２に設定情報として保持されている。各プロセッサエレメント１０１は、メモリ装置１０２の設定情報を順次に読み出して、対応する論理演算処理を行う。プログラマブル論理回路１００は、ユーザー回路１０８からユーザークロック信号１１０に同期して起動信号及び論理演算に用いるデータを受ける。これから一定時間経過後に、プログラマブル論理回路１００は、論理演算処理後のデータをユーザー回路１０８にユーザークロック信号１１０に同期して与える。
【００３９】
次に、プログラマブル論理回路１００の内部ブロックの機能に関して、図面を参照して説明する。
【００４０】
図１において、各メモリ装置１０２には、隣接のプロセッサエレメント１０１の設定情報が格納されている。メモリ装置１０２は、プロセッサエレメント１０１から制御信号とメモリアドレスが入力されると、アドレスで指定された設定情報をプロセッサエレメント１０１に与える。プロセッサエレメント１０１は、この設定情報に基づいて、実行する処理内容を決定する。
【００４１】
プロセッサエレメント１０１は、制御バス１０４から初期化信号が入力されると、メモリ装置１０２の特定のアドレスを読み出し、入力される読み出しデータから設定情報の格納位置アドレスを抽出して保持する。この格納位置アドレスは、設定情報の先頭位置を示すアドレスである。
【００４２】
また、プロセッサエレメント１０１は、制御バス１０４から起動信号が入力されると、メモリ装置１０２の前記保持した格納位置アドレスから順次に設定情報を読み出す。さらに、プロセッサエレメント１０１は、入力バス１０５及び隣接のプロセッサエレメント１０１から論理処理用のデータを受け取り、設定情報に基づいてデータの論理処理を行った後にデータの整列、複製及び反転処理を行い、かつ、処理後のデータの保持を行う。また、プロセッサエレメント１０１は、保持した処理後のデータを出力バス１０６及び隣接のプロセッサエレメント１０１に出力する。
【００４３】
このようにして、複数のプロセッサエレメント１０１は、データの受け渡しを行う。入出力制御部１０３は、ユーザー回路１０８からユーザークロック信号１１０に同期した起動信号及び論理処理用データを受け取り、このデータを内部クロック信号１０９に同期させて入力バス１０５に与える。また、入出力制御部１０３は、ユーザー回路１０８からユーザークロック信号１１０に同期した初期化信号を受け取り、このデータを内部クロック信号１０９に同期させて入力バス１０５に出力する。また、入出力制御部１０３は、出力バス１０６から内部クロック信号１０９に同期した論理処理後のデータを受け取り、このデータをユーザークロック信号１１０に同期させてユーザー回路１０８に出力する。このようにして、入出力制御部１０３は、ユーザー回路１０８との制御信号、論理処理用及び処理結果のデータの受け渡しを行う。
【００４４】
次に、プログラマブル論理回路１００の内部のプロセッサエレメント１０１の構成について、図面を参照して説明する。
【００４５】
図２は、プロセッサエレメント１０１の構成を示している。図２に示すように、プロセッサエレメント１０１は、ロジックエレメント２００及びメモリ制御部２０１を具備している。プロセッサエレメント１０１は、メモリ装置１０２、制御バス１０４、入力バス１０５及び出力バス１０６と接続されている。メモリ制御部２０１は、メモリ装置１０２、ロジックエレメント２００、制御バス１０４及びデータバス１１１と接続されている。ロジックエレメント２００は、隣接のプロセッサセレメント１０１のロジックエレメント２００及びメモリ制御部２０１、入力バス１０５、出力バス１０６並びにデータバス１１１と接続されている。
【００４６】
次に、プロセッサエレメント１０１の機能について、図面を参照して説明する。図２において、メモリ制御部２０１は、制御バス１０４から初期化信号を受けると、前述した格納位置アドレスの抽出及び保持の処理を行う。メモリ制御部２０１は、制御バス１０４から起動信号が入力されると、メモリ装置１０２の前記保持した格納位置アドレスから順次に設定情報を読み出し、ロジックエレメント２００に転送する。
【００４７】
ロジックエレメント２００は、入力バス１０５及び隣接のプロセッサエレメント１０１からデータを受け取り、メモリ制御部２０１から転送される設定情報に基づいてデータの論理処理を行った後にデータの整列、複製及び反転処理を行い、かつ、処理後のデータの保持を行う。また、ロジックエレメント２００は、メモリ制御部２０１から転送される設定情報に基づいて、出力バス１０６及び隣接のプロセッサエレメント１０１に処理後のデータを出力する。
【００４８】
次に、プロセッサエレメント１０１の内部のロジックエレメント２００の構成及び設定情報の構成について、図面を参照して説明する。
【００４９】
図３には、ロジックエレメント２００の構成が示されている。図４には、設定情報とメモリ装置１０２の構成が示されている。
【００５０】
図３において、ロジックエレメント２００は、ロジックセル３００、クロスコネクトスイッチ３０１及びフリップフロップ３０２を具備している。ロジックエレメント２００は、メモリ制御部２０１、入力バス１０５及び出力バス１０６と接続されている。ロジックセル３００は、メモリ制御部２０１、フリップフロップ３０２及びクロスコネクトスイッチ３０１と接続されている。クロスコネクトスイッチ３０１は、メモリ制御部２０１、ロジックセル３００、フリップフロップ３０２、入力バス１０５及び隣接のロジックエレメント２００の内部のロジックセル３００と接続されている。フリップフロップ３０２は、ロジックセル３００、クロスコネクトスイッチ３０１、出力バス１０６及びメモリ制御部２０１と接続されている。
【００５１】
なお、ロジックセル３００は、論理演算回路を構成している。また、クロスコネクトスイッチ３０１は、データ処理装置を構成している。また、クロスコネクトスイッチ３０１及びフリップフロップ３０２は、データ処理装置を構成している。
【００５２】
図４は、メモリ装置の構成を示している。図４において、メモリ装置１０２の内部の先頭部分には、設定情報の格納アドレス情報が格納されている。メモリ装置１０２の内部における先頭部分以外の特定領域には、設定情報が格納されている。
【００５３】
図４において、ビット２５〜２６はロジックセル３００の設定情報であり、ビット０〜２４はクロスコネクトスイッチ３０１の設定情報である。ビット０〜２４は、５ビット単位にクロスコネクトスイッチ３０１の５つの出力に対応する４ビットの接続情報及び１ビットの反転制御情報から構成されている。
【００５４】
次に、ロジックエレメント２００の機能について、図面を参照して説明する。図３において、ロジックセル３００は、フリップフロップ３０２から入力されるデータに対し、メモリ制御部２０１から転送される設定情報によって指定される特定の論理処理を行い、クロスコネクトスイッチ３０１、隣接のプロセッサエレメント１０１のロジックエレメント２００へ処理後のデータを出力する。クロスコネクトスイッチ３０１は、ロジックセル３００、入力バス１０５、隣接のプロセッサエレメント１０１のロジックエレメント２００から入力されるデータに対し、メモリ制御部２０１から転送される設定情報によって指定される特定のデータの整列、複製及び反転処理を行い、フリップフロップ３０２へ処理後のデータを出力する。フリップフロップ３０２は、クロスコネクトスイッチ３０１から入力されるデータを、内部クロック信号１０９のタイミングで保持する。フリップフロップ３０２は、保持したデータをロジックセル３００及び出力バス１０６に出力する。
【００５５】
次に、ロジックセル３００の機能及び動作について、具体例を用いて説明する。
【００５６】
図５において、ロジックセル３００に対し設定情報の２ビット及び入力データの２ビットが入力され、ロジックセル３００は出力データの１ビットを出力している。図６は、この場合のロジックセル３００の機能及び動作の例を示している。図６において、設定情報が００である時には、ロジックセル３００は入力データの論理和（ＯＲ）を出力する。設定情報が０１である時には、ロジックセル３００は入力データの論理積（ＡＮＤ）を出力する。設定情報が１０である時には、ロジックセル３００は入力データの排他的論理和（ＸＯＲ）を出力する。設定情報が１１である時には、ロジックセル３００は入力データの論理和の反転データ（ＮＯＲ）を出力する。このように、ロジックセル３００は、設定情報に基づいて、異なる複数の論理機能を実現可能な回路である。
【００５７】
次に、クロスコネクトスイッチ３０１の機能について、具体例を用いて説明する。
【００５８】
図７には、クロスコネクトスイッチ３０１の内部ブロック及び機能の例が示されている。図７において、クロスコネクトスイッチ３０１の内部の相互接続部７００に対し設定情報の４ビット並びに入力データＡ、Ｂ、Ｃの３ビット及びロウレベルが入力され、相互接続部７００から出力データＯＵＴ１、ＯＵＴ２の２ビットが出力されている。さらに、相互接続部７００の各出力データは、設定情報の１ビットと排他的論理和（ＸＯＲ）がとられ、外部に出力される。このＸＯＲは、クロスコネクトスイッチ３０１からの出力データを設定情報に基づいてビット単位に反転するためのものである。この場合、出力数は２であるのでＸＯＲ部分に２ビットの設定情報が使用されるため、クロスコネクトスイッチ３０１の全体で使用する設定情報は合計６ビットとなる。
【００５９】
図８は、この場合の相互接続部７００の機能例を示している。図８において、相互接続部７００は、設定情報のＭＳＢの２ビットがＯＵＴ１に出力されるデータを選択し、ＬＳＢの２ビットがＯＵＴ２に出力されるデータを選択している。相互接続部７００は、設定情報が００である時には入力データＡを出力し、設定情報が０１である時には入力データＢを出力する。相互接続部７００は、設定情報が１０である時には入力データＣを出力し、設定情報が１１である時にはロウレベルを出力する。
【００６０】
このように、クロスコネクトスイッチ３０１は、設定情報に基づいて複数の入力データの整列、複製及び反転処理が可能であり、また、設定情報に設定された固定値を出力することも可能な回路である。
【００６１】
次に、プログラマブル論理回路１００の動作について、図面を参照して説明する。図９及び図１０には、プログラマブル論理回路１００の動作タイミングの例が示されている。図９には、外部からの初期化の動作が表されている。図１０には、外部からの起動及び実際の論理処理の動作が表されている。
【００６２】
まず、Ｔ１期間において、入出力制御部１０３は、ユーザー回路１０８からユーザークロック信号１１０に同期した初期化信号９００を受けて内部初期化信号９０１として保持する。Ｔ２期間において、入出力制御部１０３は、保持した内部初期化信号９０１を内部クロック信号１０９に同期させて制御バス１０４に出力する。制御バス１０４の内部初期化信号９０２は、すべてのプロセッサエレメント１０１のメモリ制御部２０１に入力される。
【００６３】
Ｔ３期間において、プロセッサエレメント１０１のメモリ制御部２０１は、入力された内部初期化信号９０２をトリガにして、メモリ装置１０２の特定のアドレス９０４に対し、読み出し信号９０３を出力する。その後、メモリ制御部２０１は、入力される読み出しデータ９０５を保持データ９０６として一度保持し、この保持データ９０６から設定情報の格納位置アドレス９０７を抽出して保持する。Ｔ１〜Ｔ３の動作により、設定情報の格納位置アドレス９０７が各プロセッサエレメント１０１に記憶され、いつでも処理を実行できる状態となる。
【００６４】
Ｔ４期間において、プログラマブル論理回路１００は、起動待ち状態である。Ｔ５期間において、入出力制御部１０３は、ユーザー回路１０８からユーザークロック信号１１０に同期した起動信号１０００及び処理用データ１００１を受け取って内部起動信号１００２及び処理用データ１００３として保持する。Ｔ６期間において、入出力制御部１０３は、保持した内部起動信号１００２を内部クロック信号１０９に同期させて制御バス１０４に出力する。また、入出力制御部１０３は、保持した内部処理用データ１００３を内部クロック信号１０９に同期させて入力バス１０５に出力する。
【００６５】
制御バス１０４の内部起動信号１００４は、すべてのプロセッサエレメント１０１のメモリ制御部２０１に入力される。入力バス１０５の論理処理用データ１００５は、すべてのプロセッサエレメント１０１のロジックエレメント２００に入力される。Ｔ７期間において、各プロセッサエレメント１０１のメモリ制御部２０１は、入力された内部起動信号１００４をトリガにして、メモリ装置１０２のＴ３期間において保持した格納位置アドレス９０７に対し読み出し信号９０３を出力する。Ｔ８期間において、各メモリ制御部２０１は、メモリ装置１０２から出力される読み出しデータ９０５を保持データ９０６として保持する。同時に、メモリ制御部２０１は、メモリ装置１０２の次のアドレスに対し、読み出し信号６０３を出力する。
【００６６】
Ｔ９期間において、各メモリ制御部２０１は、保持データ９０６をロジックエレメント２００に出力する。また、各メモリ制御部２０１は、メモリ装置１０２から出力される読み出しデータ９０５を保持する。同時に、各メモリ制御部２０１は、メモリ装置１０２の次のアドレスに対し、読み出し信号を出力する。各ロジックエレメント２００は、入力される保持データ（設定情報）９０６に基づいて、入力バス１０５からの論理処理用データ１００５の整列、複製及び反転処理を行い、処理後のデータを内部のフリップフロップ３０２に保持する。
【００６７】
Ｔ１０期間において、各メモリ制御部２０１は、保持データ９０６をロジックエレメント２００に出力する。また、各メモリ制御部２０１は、メモリ装置１０２から出力される読み出しデータ９０５を内部に保持する。同時に、各メモリ制御部２０１は、メモリ装置１０２の次のアドレスに対して読み出し信号を出力する。
【００６８】
各ロジックエレメント２００は、フリップフロップ３０２、入力バス１０５及び隣接のプロセッサエレメント１０１からの論理処理用データ１００５を、入力される保持データ（設定情報）９０６に基づいて論理処理を行って、処理後のデータをフリップフロップ３０２に保持する。以下、Ｔ１０期間の処理を繰り返すことにより、一つの論理処理を実現する。
【００６９】
すべての期間において、フリップフロップ３０２のデータは、出力バス１０６に出力されており、入出力制御部１０３は、このデータを常に内部クロック信号１０９に同期して保持している。入出力制御部１０３は、保持データをユーザークロック信号１１０に同期してユーザー回路１０８に出力する。ユーザー回路１０８は、入力されるデータのフラグを参照し、出力データ（論理処理後のデータ）を保持する、又は、決められた期間後のデータを保持する。
【００７０】
次に、特定の論理処理機能をプログラマブル論理回路１００にマッピングした例を、図面を参照して説明する。説明を簡潔に行うため、動作例で示したＴ９、Ｔ１０期間のロジックエレメント２００の動作のみを説明する。
【００７１】
図１１は、２入力２出力のロジックセル３００の機能を示している。図１２は、ロジックセル３００を持つプログラマブル論理回路１００に対して、４ビットの比較回路をマッピングした場合の例を示している。図１２において、縦方向には物理的に異なる４つのプロセッサエレメント１０１が示されており、横方向には同一のプロセッサエレメント１０１が各サイクルでどのような処理を行うかが示されている。
【００７２】
図１３は、４ビットの比較回路を示している。図１３に示すように、入力データとして、ＩＮ０〜７の８ビットデータがあり、ＩＮ０〜３とＩＮ４〜７の比較結果が１ビットのデータとして出力される。
【００７３】
図１２において、ロジックセル（ＬＣ）３００の入力及び出力は、上側がＬＳＢであり、下側がＭＳＢである。また、ロジックセル（ＬＣ）３００の下部に記載されているデータは、ロジックセル（ＬＣ）３００に対する設定情報である。複数のロジックセル（ＬＣ）３００は、図１３に示すように動作する。まず、サイクル１及び２において、複数のロジックセル（ＬＣ）３００は入力データをビット単位に整列する。サイクル３において、複数のロジックセル（ＬＣ）３００は各ビットに対してＸＮＯＲの処理を行う。サイクル４において、複数のロジックセル（ＬＣ）３００はサイクル３の結果に対してＡＮＤ処理を行う。サイクル５において、複数のロジックセル（ＬＣ）３００はサイクル４の結果に対してＡＮＤ処理を行う。サイクル６において、複数のロジックセル（ＬＣ）３００は比較結果を出力する。結果として、内部クロック信号１０９の６サイクルで出力が確定される。内部クロック信号１０９のクロック数がユーザークロック信号１１０のクロック数の６倍である時に、ユーザー回路１０８からは、１クロックで比較処理が完了したように見える。
【００７４】
次に、本発明の実施の形態１に係るプログラマブル論理回路１００のメモリ制御部２０１の動作を主とした動作について、図面を参照して詳細に説明する。
【００７５】
図３に示すように、メモリ制御部２０１は、メモリ装置１０２、制御バス１０４及びデータバス１１１と接続されている。また、メモリ制御部２０１の入力端子は、ロジックエレメント２００のフリップフロップ３０２の出力端子に接続されている。また、メモリ制御部２０１の出力端子は、ロジックエレメント２００のロジックセル３００及びクロスコネクトスイッチ３０１に接続されている。
【００７６】
メモリ制御部２０１は、制御バス１０４からの制御信号に基づいてメモリ装置１０２と情報の送受をし、かつ、データバス１１１からのデータバスデータ１１１１を受ける。また、メモリ制御部２０１は、フリップフロップ３０２からのフリップフロップデータ３０２１を受ける。
【００７７】
次に、プログラマブル論理回路１００による分岐制御について、詳細に説明する。
【００７８】
図１４は、プログラマブル論理回路１００による分岐制御に用いられる分岐用設定情報の構成を説明するための図である。分岐用設定情報１４００は、分岐を示すコード１４０１、分岐判定用データの選択コード（ＲＥＦ）１４０２、分岐先アドレス（ＪＭＰＢ）１４０３及び分岐先アドレス（ＪＭＰＡ）１４０４を有している。
【００７９】
分岐を示すコード１４０１は、ビット２４〜２１からなり、「１１１１」である場合には分岐を示し、「１１１１」でない場合には分岐以外の通常の処理を示している。分岐判定用データの選択コード１４０２は、ビット１９〜１６からなり、分岐判定に用いるデータを選択するための情報である。本例では、分岐判定用データの選択コード１４０２は、データバスデータ１１１１及びフリップフロップデータ３０２１から特定の１ビットを選択するための情報として使用される。分岐先アドレス１４０３は、ビット１５〜８からなり、判定用ビット＝１の時に飛ぶ分岐先アドレスを示している。分岐先アドレス１４０４は、ビット７〜０からなり、判定用ビット＝０の時に飛ぶ分岐先アドレスを示している。
【００８０】
図３において、メモリ制御部２０１は、一連のメモリ装置１０２からの読み出し動作において、読み出しデータのビット２４〜２１を参照し、データ値が「１１１１」以外である時には読み出しデータが通常の設定情報であると判断し、ロジックエレメント２００にデータをそのまま転送し、通常の処理を継続する。また、メモリ制御部２０１は、ビット２４〜２１が「１１１１」である時には読み出しデータが分岐制御用情報であると判断し、ロジックエレメント２００に動作を一時停止する擬似設定情報、例えば、すべて「０」のデータを転送し、図１４におけるＲＥＦビット、すなわち、ビット１９〜１６を参照する。
【００８１】
次に、メモリ制御部２０１は、ＲＥＦビットに従って、データバスデータ１１１１及びフリップフロップデータ３０２１から特定の１ビットを選択し、選択した前記ビットが「１」である時にはメモリ装置１０２に出力する読み出しアドレスにＪＭＰＢで指定されたアドレスをセットする。
【００８２】
メモリ制御部２０１は、選択した前記ビットが「０」である時にはメモリ装置１０２に出力する読み出しアドレスにＪＭＰＡで指定されたアドレスをセットする。これ以降において、メモリ制御部２０１は、セットされたアドレスより順番にメモリ装置１０２の設定情報を読み出しロジックエレメント２００に転送する。
【００８３】
次に、プログラマブル論理回路１００の分岐制御による処理について、図１乃至図３と共に図１５乃至図１７を参照して詳細に説明する。
【００８４】
図１５は、プログラマブル論理回路を実装した処理回路を示すブロック図である。図１５において、処理回路１５００は、回路Ｃの処理結果に従って回路Ａ及び回路Ｂの処理結果のいずれかの値をセレクタ１５０１が外部に出力するよう動作する。簡単のため、各回路Ａ、Ｂ、Ｃは、それぞれ１つのプロセッサエレメントを用いて実現可能とする。また、処理回路（ＬＳＩ）１５００に搭載されたプロセッサエレメントの数は３とする。
【００８５】
まず、図１６に、プログラマブル論理回路の分岐制御を用いない場合の処理サイクルを示す。図１６は、左から右方向へのクロックサイクル進行における、それぞれの回路の処理レイテンシを示している。例えば、回路Ａの処理レイテンシは５サイクルである。回路Ｂ及び回路Ｃの処理レイテンシはそれぞれ５サイクル及び６サイクルである。これらのレイテンシの差を吸収するため、回路Ａ、Ｂは、回路Ｃの処理完了までのサイクルにデータ保持のみを行っている。サイクル７において、１つのプロセッサエレメントは、回路Ａ、Ｂの結果をうけて、図１５におけるセレクタ１５０１の処理を実行して外部に処理回路１５００の処理結果データを出力する。
【００８６】
図１６に示すように、結果的に全体として７サイクルの処理時間及び３つのプロセッサエレメントが必要となっている。これは、１つのプロセッサエレメントを１サイクル使用する処理を１プロセッサエレメント時間とすると、３×７＝２１のプロセッサエレメント時間を使用していることになる。
【００８７】
一方、図１７には、プログラマブル論理回路１００の分岐制御を用いた場合の処理サイクルを示す。図１７に示す例では、図１６におけるサイクル６までの期間に回路Ｃのみの処理を行い、サイクル７において、回路Ｃの結果データを用いて分岐判定を実行している。分岐判定結果としてメモリ制御部２０１は、回路Ｂの処理に対応するアドレスをメモリ装置１００に対し出力し、次のサイクルより回路Ｂを実行している。結果的に全体処理時間は、１４サイクルに増加しているが、プロセッサエレメントの必要数は１に削減できるため、全体で１×１４＝１４のプロセッサエレメント時間で処理が完了していることになる。
【００８８】
このように、本発明の実施の形態１においては、分岐制御を実施することにより、同時に並列的に実行される処理のうち、結果的に無駄になる処理部分を削減することができる。特に、出力までの要求時間が長い処理にこの分岐制御を用いることにより、空き状態となるプロセッサエレメント１０１に他の処理を割り当てることができるため、全体の処理性能を高めることが可能となる。また、本発明の実施の形態１においては、プロセッサエレメントの数が実装すべき回路に対して十分でない場合にも特に有効に全体の処理性能を高めることが可能となる。
【００８９】
（実施の形態２）
次に、本発明の実施の形態２について、図面を参照して詳細に説明する。本発明の実施の形態２に係るプログラマブル論理回路の構成は、本発明の実施の形態１に係るプログラマブル論理回路１００と同じである。
【００９０】
本発明の実施の形態２に係るプログラマブル論理回路は、分岐制御の処理によりメモリ使用効率を向上させるものである。
【００９１】
図１８は、プログラマブル論理回路を実装する処理回路を示すブロック図である。図１８において、処理回路１８００は、回路Ａ、回路Ｂ、回路Ｃ、回路Ａ及び回路Ｄの順に処理を行う回路である。最初の回路Ａと３番目の回路Ａは入力に対して同一の処理を行うものとする。
【００９２】
また、図１９は、プログラマブル論理回路１００の分岐制御を用いない場合におけるメモリ装置１０２の内部の設定情報の格納状態を説明するための図である。図１９において、回路Ａは４０ワードのメモリ領域を使用し、回路Ｂ、Ｃ、Ｄはそれぞれ２０ワードのメモリ領域を使用する。
【００９３】
図１８における処理回路１８００は、メモリ装置１０２のアドレス１０から１５０まで順に実行され、合計１４０ワードの領域を使用することになる。
【００９４】
一方、図２０は、プログラマブル論理回路１００の分岐制御を用いた場合におけるメモリ装置１０２の内部の設定情報の格納状態を説明するための図である。図２０において、回路Ａの処理後には回路Ｂ又は回路Ｄの先頭アドレスに飛ぶ分岐制御用情報が挿入されている。また、回路Ｃの処理後に、回路Ａ又は回路Ｄの先頭アドレスに飛ぶ分岐制御用情報が挿入されている。本例において処理順序は、先ず、アドレス１０から読み出しを行って回路Ａの処理完了後に、分岐によりアドレス５１に飛んで回路Ｂの処理を行う。その後に、回路Ｃの処理を行い、処理完了後、分岐によりアドレス１０に飛び再度回路Ａを処理する。
【００９５】
回路Ａの処理完了後に、分岐によりアドレス９２に飛び、回路Ｄの処理を行う。結果的に回路Ａの１つ分の領域が削減されている。分岐の方法としては、回路Ｃの処理完了時にフラグビットを生成し、このフラグビットを用いる方法がある。
【００９６】
このように、本発明の実施の形態２においては、分岐制御を実施することにより、複数回使用される回路のメモリ領域を削減することができるため、回路全体の機能実装効率が高まる。また、本発明の実施の形態２においては、外部からの入力データを監視する処理や特定の値までカウントアップするような処理においては、同一の処理が繰り返し実行される場合が多い回路、例えば、１００までカウントアップ後に特定の処理を行うような回路においては、＋１の処理を行う回路の後に分岐制御用情報を挿入し、分岐判定条件として、カウンタ値と固定値１００の比較結果を用いることにより、大きく面積を削減することができる。
【００９７】
なお、本発明の実施の形態２において、分岐するアドレスは、２通りに限定する必要はなく、参照するビット数を増やして、多くの分岐先アドレスを設定してもよい。
【００９８】
（実施の形態３）
次に、本発明の実施の形態３について、図面を参照して詳細に説明する。本発明の実施の形態３に係るプログラマブル論理回路の構成は、本発明の実施の形態１に係るプログラマブル論理回路１００と同じである。本発明の実施の形態３に係るプログラマブル論理回路は、停止制御により実装効率を向上させるものである。
【００９９】
図２１は、本発明の実施の形態３に係るプログラマブル論理回路１００による停止制御に用いられる停止用設定情報を説明するための図である。停止用設定情報２１００は、分岐を示すコード２１０１、停止を示すコード（ＲＥＦ）２１０２及び停止サイクル数２１０３を有している。
【０１００】
分岐を示すコード２１０１は、ビット２４〜２１からなり、「１１１１」である場合には分岐を示し、「１１１１」でない場合には分岐以外の通常の処理を示している。停止を示すコード２１０２は、ビット１９〜１６からなり、停止か否かを示す情報である。停止サイクル数２１０３は、停止を示すコード２１０２が停止を示している時における停止サイクル数（停止期間）の情報である。
【０１０１】
図３において、メモリ制御部２０１は、メモリ装置１０２からの情報の読み出し動作において、読み出した情報のビット２４〜２１を参照し、データ値が「１１１１」以外である時に、読み出した情報が通常の設定情報であると判断し、ロジックエレメント２００に情報をそのまま転送し、通常の処理を継続する。メモリ制御部２０１は、読み出した情報のビット２４〜２１が「１１１１」であり、ＲＥＦビットが「１１１１」以外である時に、読み出した情報が分岐コードであると判断し、前述した分岐の動作を行う。
【０１０２】
また、メモリ制御部２０１は、読み出した情報のビット２４〜２１が「１１１１」であり、かつ、ＲＥＦビットが「１１１１」である時に、読み出した情報が停止コードであると判断し、ビット０〜７を内部にラッチし、内部カウンタのカウントアップを開始する。カウンタ値が前記ラッチデータの値に達するまでカウントアップは継続し、同時にロジックエレメント２００に動作を停止する擬似設定情報、例えば、すべて０のデータを転送し続ける。この間、メモリ制御部２０１は、メモリ装置１０２の情報の読み出しは行わない。その後に、カウンタ値が前記ラッチデータの値に達した時点で、メモリ制御部２０１は、再びメモリ装置１０２の情報の読み出しを開始して通常動作を再開する。
【０１０３】
このような制御により、連帯動作する他のプロセッサエレメント１０１の処理完了待ち状態にあるプロセッサエレメント１０１、又は、自身の処理完了により動作の必要のなくなったプロセッサエレメント１０１の消費電力を抑えることができ、かつ、メモリ装置１０２における無駄な領域を削減できる。
【０１０４】
例えば、図１５において、回路Ａ及び回路Ｂの処理が２サイクルで完了するような場合に、回路Ｃの処理完了まで前記擬似停止コードをサイクルごとに読み出した場合に、４×２＝８サイクル分のメモリ領域が停止コードのみで使用されてしまうことになる。停止コードを回路Ａ及び回路Ｂの領域の直後に挿入することにより、６サイクル分の無駄なコードを削減できることになる。同時にこの期間のメモリアクセスが停止するため、その分の消費電力を抑えることができる。また、停止サイクル数の領域に停止期間がｘ無限となる値を設定することにより、最初から使用しないプロセッサエレメント１０１の消費電力を抑えることも可能である。
【０１０５】
以上説明したように、本発明の実施の形態１、２、３に係るプログラマブル論理回路１００は、複数のプロセッサエレメント１０１が独立に動作することも連帯動作することも可能であり、複数種類の論理処理を同時に並列的に行うことが可能であり、かつ、一つの論理処理を連帯して行うことも可能となっている。
【０１０６】
また、本発明の実施の形態１、２、３に係るプログラマブル論理回路１００は、同一のエレメントが１次元的に１列状に配列されているため、実装規模に応じて柔軟に対応可能であり、拡張性が高い。また、本発明の実施の形態１、２、３に係るプログラマブル論理回路１００は、データの送受を隣接のプロセッサエレメント１０１の間に限定することにより、設定情報を大幅に削減することが可能となり、回路面積を削減でき、かつ、実装するＬＳＩのコスト及び消費電力を削減できる。
【０１０７】
また、本発明の実施の形態１、２、３に係るプログラマブル論理回路１００は、実装エレメント数に関係なく、任意のプロセッサエレメント１０１のフリップフロップから隣接する他のプロセッサエレメント１０１のフリップフロップまでの配線距離が最小限かつ一定であるため、動作周波数を限界にまで引き上げることが可能となり、従来のプログラマブルロジックに比して、高速動作が可能となっている。
【０１０８】
また、本発明の実施の形態１、２、３に係るプログラマブル論理回路１００は、同一の回路上で、繰り返し機能を変更しながら処理を行うため、回路面積を削減でき、かつ、実装するＬＳＩのコスト及び消費電力を削減できる。
【０１０９】
なお、本発明の実施の形態１において、内部クロック信号１０９は、必ずしもユーザークロック信号１１０の逓倍である必要がなく、例えば、入出力制御部１０３に適切なクロック乗せ換え回路を用いることで、ユーザークロック信号１１０に同期しないクロック信号を内部クロック信号として用いてもよい。
【０１１０】
また、本発明の実施の形態１、２，３において、メモリ装置１０２は、プログラマブル論理回路１００の内部に存在する必要がなく、プログラマブル論理回路１０１の外部に存在する構成でもよい。また、本発明の実施の形態１、２、３において、クロック生成回路１０７は、プログラマブル論理回路１００の内部に配設してもよい。
【０１１１】
また、本発明の実施の形態１、２、３において、メモリ装置１０２とプロセッサエレメント１０１との間にマルチプレクサなどの選択回路を挿入して、設定によりメモリ装置１０２と各プロセッサエレメント１０１との接続を変更可能にしてもよい。ただし、この場合にはデータの処理の遅延量が増加するため、周波数を維持するためには、パイプライン等を用いて高速化を図る必要がある。
【０１１２】
また、本発明の実施の形態１、２、３において、図３に示すロジックエレメント２００の内部の各ブロック、ロジックセル３００、クロスコネクトスイッチ３０１及びフリップフロップ３０２の間の接続及び前記各ブロックと入力バス１０５、出力バス１０６及び隣接のロジックエレメント２００との接続は、図３のものに限定されるものではなく、例えば、ロジックセル３００とクロスコネクトスイッチ３０１の間にフリップフロップを設けて、さらに動作周波数を高めてもよい。また、本発明の実施の形態１において、入力バス１０５からのデータはクロスコネクトスイッチ３０１ではなく、ロジックセル３００又はフリップフロップ３０２に入力してもよい。
【０１１３】
また、本発明の実施の形態１において、複数のプロセッサエレメント１０１の各々は、他のプロセッサエレメント１０１に接続されていなくてもよい。
【産業上の利用可能性】
【０１１４】
本発明は、電子装置を制御する制御装置などに適用することができる。
【図面の簡単な説明】
【０１１５】
【図１】本発明の実施の形態１に係るプログラマブル論理回路の構成を示すブロック図
【図２】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントの構成を示すブロック図
【図３】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのロジックエレメントの構成を示すブロック図
【図４】本発明の実施の形態１に係るプログラマブル論理回路の設定情報とメモリ装置の構成を説明するための図
【図５】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのロジックエレメントにおけるロジックセルの機能を説明するためのブロック図
【図６】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのロジックエレメントにおけるロジックセルの動作を説明するための図
【図７】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのクロスコネクトスイッチの構成を示すブロック図
【図８】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのクロスコネクトスイッチの動作を説明するための図
【図９】本発明の実施の形態１に係るプログラマブル論理回路の初期化時の動作を説明するためのタイミング図
【図１０】本発明の実施の形態１に係るプログラマブル論理回路の起動時及びデータ処理時の動作を説明するためのタイミング図
【図１１】本発明の実施の形態１に係るプログラマブル論理回路のプロセッサエレメントのロジックエレメントにおけるロジックセルの動作を説明するための図
【図１２】本発明の実施の形態１に係るプログラマブル論理回路で４ビットの比較回路をマッピングした場合のプロセッサエレメントの動作を時間軸方向に展開した図
【図１３】本発明の実施の形態１に係るプログラマブル論理回路で４ビットの比較回路をマッピングした場合のプロセッサエレメントで形成する４ビットの比較回路を示す回路図
【図１４】本発明の実施の形態１に係るプログラマブル論理回路に用いる分岐用設定情報を説明するための図
【図１５】プログラマブル論理回路を実装した処理回路を示すブロック図
【図１６】本発明の実施の形態１に係るプログラマブル論理回路の分岐制御を用いない場合の処理サイクルを説明するための図
【図１７】本発明の実施の形態１に係るプログラマブル論理回路の分岐制御を用いた場合の処理サイクルを説明するための図
【図１８】プログラマブル論理回路を実装する処理回路を示すブロック図
【図１９】本発明の実施の形態２に係るプログラマブル論理回路の分岐制御を用いない場合におけるメモリ装置の内部の設定情報の格納状態を説明するための図
【図２０】本発明の実施の形態２に係るプログラマブル論理回路の分岐制御を用いた場合におけるメモリ装置の内部の設定情報の格納状態を説明するための図
【図２１】本発明の実施の形態３に係るプログラマブル論理回路による停止制御に用いられる停止用設定情報を説明するための図
【符号の説明】
【０１１６】
１００  プログラマブル論理回路
１０１  プロセッサエレメント
１０１ａ  接続線
１０２  メモリ装置
１０３  入出力制御部
１０４  制御バス
１０５  入力バス
１０６  出力バス
２００  ロジックエレメント
２０１  メモリ制御部
３００  ロジックセル
３０１  クロスコネクトスイッチ
３０２  フリップフロップ
１４００  分岐用設定情報
２１００  停止用設定情報
【図１】
2005229275.tif 000003
【図２】
2005229275.tif 000004
【図３】
2005229275.tif 000005
【図４】
2005229275.tif 000006
【図５】
2005229275.tif 000007
【図６】
2005229275.tif 000008
【図７】
2005229275.tif 000009
【図８】
2005229275.tif 000010
【図９】
2005229275.tif 000011
【図１０】
2005229275.tif 000012
【図１１】
2005229275.tif 000013
【図１２】
2005229275.tif 000014
【図１３】
2005229275.tif 000015
【図１４】
2005229275.tif 000016
【図１５】
2005229275.tif 000017
【図１６】
2005229275.tif 000018
【図１７】
2005229275.tif 000019
【図１８】
2005229275.tif 000020
【図１９】
2005229275.tif 000021
【図２０】
2005229275.tif 000022
【図２１】
2005229275.tif 000023