(57)【要約】【課題】数式の入力によって所定の演算回路を自動的に形成することが可能なプログラマブル集積回路装置を提供すること。【解決手段】加減乗除等に関する例えば基本演算回路素子３５〜３８等を予め設置してあるプログラマブル集積回路装置２０であって、入力された数式をコード情報化するコンパイル機能と、コード化された演算式を基礎とした適宜再構築可能な論理回路設計及びその構築を自動的に行わせる論理回路設計機能を開発プログラム７２がユーザに提供するによって、プログラマブル集積回路に目的とする演算回路の配置配線を可能とした。【選択図】　図１
2004023761.tif 000002
【特許請求の範囲】
【請求項１】
複数の基本演算回路機能を記述した回路情報に基づいて演算回路の再構成が可能なプログラマブル集積回路装置であって、
前記複数の基本演算機能に対応する演算回路素子を組み合わせて構成された演算ブロックを複数備え、
数式を入力する入力手段と、
前記入力手段から入力された数式に基づいて、前記複数の演算ブロックの組み合せを変更する変更手段と、
前記演算ブロックの組み合せにより前記入力された数式の解を出力する出力手段とを備えることを特徴とするプログラマブル集積回路装置。
【請求項２】
前記入力された数式を、演算式化及び前記演算ブロックの組み合せの変更に必要なコード情報に変換する数式変換手段と、
前記変更手段は、前記数式変換手段により変換されたコード情報に基づいて、前記入力された数式に対応するように前記複数の演算ブロックの組み合せを変更することを特徴とする請求項１記載のプログラマブル集積回路装置。
【請求項３】
前記変更手段は、前記数式に含まれる複数の中間式の構成に基づいて、前記複数の演算ブロックの組み合せを変更するとともに、
その各演算ブロックの中間演算結果が前記数式に対応して演算されるように前記各演算ブロックの出力段と前記出力手段との接続を変更することを特徴とする請求項１記載のプログラマブル集積回路装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラマブル集積回路装置に関する。
【０００２】
【従来の技術】
近年、ＩＣ（集積回路）設計技術及び製造技術の急速な発達により、回路設計をプログラム可能なＦＰＧＡ（Ｆｉｅｌｄ　Ｐｒｏｇｒａｍｍａｂｌｅ　Ｇａｔｅ　Ａｒｒａｙ）などに代表されるＰＬＤ（Ｐｒｏｇｒａｍｍａｂｌｅ　Ｌｏｇｉｃ　Ｄｅｖｉｃｅ：プログラマブル論理回路）が開発されている。このようなプログラマブル論理回路では、論理回路を記述した回路情報を読み込ませることにより、内部の論理回路間の配線を自由に構成できるとともに、一度作成した回路を必要に応じて何度でも再構成することが可能である。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のプログラマブル集積回路の設計手法では、目的とする処理の実施可能な機能を設計する手順として、ＨＤＬ（Ｈａｒｄｗａｒｅ　Ｄｅｓｃｒｉｐｔｉｏｎ　Ｌａｎｇｕａｇｅ）等の回路言語若しくは回路情報を基に何らかの開発ツールを用いて配置配線を行った後にタイミング検証を行うというような多段の検証工数を要した。
【０００４】
更に、ＨＤＬ等の回路言語の知識がない者にとっては開発環境への当該開発言語の導入と習得が必要であった。
【０００５】
本発明の課題は、プログラマブル集積回路においてあらかじめ配置配線された複数の演算ブロックを用いて、数式のみの入力によって所望の回路をプログラマブル集積回路上に構成する方法を提供することである。
【０００６】
【課題を解決するための手段】
前記課題を解決するため、請求項１記載の発明では、
複数の基本演算回路機能を記述した回路情報に基づいて演算回路の再構成が可能なプログラマブル集積回路装置であって、
前記複数の基本演算機能に対応する演算回路素子を組み合わせて構成された演算ブロックを複数備え、
数式を入力する入力手段と、
前記入力手段から入力された数式に基づいて、前記複数の演算ブロックの組み合せを変更する変更手段と、
前記演算ブロックの組み合せにより前記入力された数式の解を出力する出力手段とを備えることを特徴としている。
【０００７】
請求項２の発明では、
前記入力された数式を、演算式化及び前記演算ブロックの組み合せの変更に必要なコード情報に変換する数式変換手段と、
変換手段は、前記数式変換手段により変換されたコード情報に基づいて、前記入力された数式に対応するように前記複数の演算ブロックの組み合せを変更する変更手段とを備えることを特徴としている。
【０００８】
請求項３記載の発明では、
前記変更手段は、前記数式に含まれる複数の中間式の構成に基づいて、前記複数の演算ブロックの組み合せを変更するとともに、
その各演算ブロックの中間演算結果が前記数式に対応して演算されるように前記各演算ブロックの出力段と前記出力手段との接続を変更することを特徴としている。
【０００９】
【発明の実施の形態】
以下、本明細書全文において「数式」とは入力に用いる数学一般で用いられる書式形態のものを指し、「演算式」とはコンピュータシステムが使用するために論理化されたものを指すと定義し、以下に図を参照して本発明の実施の形態を説明する。
まず、構成を説明する。
【００１０】
図１は、本発明を適用したプログラマブル集積回路装置２０の回路構成図である。
【００１１】
図１において、プログラマブル集積回路装置２０は、加減乗除等に関する例えば基本演算回路素子３５〜３８等を予め設置しておき、これら基本演算回路素子３５〜３８に入力Ａ１１を介して入力される情報によって適宜使用回路が選択され、例えば加算を行った後にその加算結果を２乗するというような演算を行わせ、基本演算回路素子３５〜３８は演算ブロック３０としてまとまった動作を行わせるように構成されている。
【００１２】
また、入力される演算式が複数系統必要な場合においては、必要な入力数に対応できるだけの基本演算回路素子３５〜３８及びそれらをまとめた演算ブロック３０を予め用意し、複雑な演算にも対応できるように構成した。
【００１３】
そして、図１において、入力Ａ１１の演算は演算ブロック３０が実施し、入力Ｂ１２の演算は演算ブロック３０’が実施し、入力ｎ１３の演算は演算ブロック３０’’が実施することが図示されているが、この演算工程は並列的に実行することも可能である。
【００１４】
各演算ブロックの演算結果の出力先は、出力セレクタ（ＳＥＬ）５０及び入力セレクタ（ＳＥＬ）５０’により演算式に基づいて選択される。
【００１５】
また、入力Ａ１１、入力Ｂ１２、入力ｎ１３の各入力に対応する演算結果をもって更に異なる演算を要する場合には、演算ブロック３０、３０’、３０’’に対して直列的に配置した演算ブロック３１によって演算させるように構成した。
【００１６】
図２は、システムとして本発明のプログラマブル集積回路装置２０を動作させるために必要なシステムの要部構成図である。
【００１７】
プログラマブル集積回路装置２０はシステムバス９０に接続され（外部インターフェースを介して接続する場合には一般にダウンロードケーブルを用いる）、同時にシステムバス９０には入力部１０、表示部８０、制御部を構成するＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）７０、ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）７５、開発プログラム７２に接続されることによって構成されている。
【００１８】
また、ＲＡＭ７５内に記憶されている回路データＡ７６〜回路データＮ７８は、ユーザが入力部１０から入力した数式を開発プログラム７２により解釈した結果を回路データとして蓄積したものである。
【００１９】
なお、ＲＡＭ７５に蓄積された回路データＡ７６〜Ｎ７８は、プログラマブル集積回路装置２０に転送され、回路データＡ７６〜Ｎ７８に基づいて演算ブロック３０、３０’、３０’’間の接続が変更される。
【００２０】
次に本発明のプログラマブル集積回路装置２０を実行制御するために用いられる開発プログラム７２の構成要件を説明する。
【００２１】
図３は、図２で示した開発プログラム７２のアプリケーションソフトウェアの機能構成図である。
【００２２】
開発プログラム７２は図３に示す機能によって構成されている。
【００２３】
機能１として、プラットホームのＯＳに由来するＧＵＩ（Ｇｒａｐｈｉｃａｌ　Ｕｓｅｒ　Ｉｎｔｅｒｆａｃｅ）を利用したインターフェースの機能である。
【００２４】
前記のインターフェースは大きく２つの系に係るインターフェースに分類される。
【００２５】
一つは、ユーザが所望する数式を入力するためのＧＵＩであり、一般数学で使用される記号等を予め示しておき目的の記号等をクリックするなど等の操作とキーボードによる入力などを併用して入力する環境をユーザに提供する。
【００２６】
もう一方は、本発明のプログラマブル集積回路装置２０へのデータ転送等を含む動作制御に関するＧＵＩをユーザに提供する。
【００２７】
機能２として、機能１によって入力された数式をコード情報化するコンパイル機能とコード化された演算式を基礎として、実際に構築可能な論理回路設計を前記機能１の動作制御に関するＧＵＩの命令を受けて自動的に実行する機能を提供する。
【００２８】
機能３として、機能２によって設計された論理回路設計情報をプログラマブル集積回路装置にアップロードするデータ転送機能を提供する。
【００２９】
機能４として、機能２と同様に前記機能１の動作制御に関するＧＵＩの命令を受けて、実際の演算処理等を行うプログラマブル集積回路装置の実行制御機能を提供する。
【００３０】
図４は、図３で示した開発プログラム７２のコンパイラ機能が担うロジックの概念図である。
また、以下の説明では図６に示すフローチャートを適宜引用して説明する。
【００３１】
図６は、開発プログラム７２のコンパイラ機能部によって実行される、数式の入力から回路情報を本発明のプログラマブル集積回路装置２０にアップロードするに至るまでのフローチャート図である。
【００３２】
例えば図４の（１式）に示すような数式を、開発プログラム７２が表示部８０の画面上提供する入力インターフェースに従って、入力部１０（例えばキーボードやマウスなどの入力デバイス）を用いることによって入力する（図６における数式入力開始ステップＳ７０１参照）。
【００３３】
入力された図４の（１式）は開発プログラム７２に予め用意された”実行”に類するインターフェースをユーザが選択実行することによって、前記（１式）は、制御部に転送され図４の（２式）の形式にコード情報化される（図６における数式の論理コンパイルステップＳ７０２参照）。
【００３４】
例えば図４の（１式）の解Ｆを求めようとするときプログラマブル集積回路装置２０では、図４に示したようにＡ、Ｂ、Ｎの計算をそれぞれ並列的に実行した後にそれぞれの中間解を利用し、Ｎ＋１の計算を行うことによって解Ｆを求めることを示している（図６における数式の論理コンパイルステップＳ７０２参照）。
【００３５】
一般に前記のコンパイル段階は多段階であり、図４の（１式）を例とした場合には、図４の（３式）に示す形式まで分解され、（２式）及び（３式）を基礎として開発プログラム７２はＲＡＭ７５内に所望する回路データＡ７６などの回路データを記憶する（図６における演算式を基に論理回路設計情報を生成ステップＳ７０３参照）。
【００３６】
図５は、図４で示した入力数式である（１式）に基づいて開発プログラム７２を生成する所望の回路イメージをＲＴＬ（Ｒｅｇｉｓｔｅｒ　Ｔｒａｎｓｆｅｒ　Ｌｅｖｅｌ）記述によって書き出した論理回路構成図である。
【００３７】
図５において開発プログラム７２は例えば図４で示した入力数式である（１式）を（２式）及び（３式）のように演算式化したＲＡＭ７５内に記憶される回路データＡ７６などを用いて、図５に示すような論理回路を構成する。
【００３８】
図６において数式の論理コンパイルステップＳ７０１のロジックは、図４におの説明と同様である。
【００３９】
例えば、従来の手法による数式の入力から回路情報をプログラマブル集積回路装置にアップロードするに至るまでの手順を示すと、図７に示すようなフローチャート図となる。
【００４０】
図７は、図６で示した本発明の開発プログラム７２との差異を明確化するために示すものである。
【００４１】
尚、従来技術である図７における５段階におよぶＨＤＬ作成開始ステップＳ７５１〜回路情報生成ステップＳ７５５までのステップに、前述の図３及び図６で説明した開発プログラム７２のコンパイラ機能部（図６における　数式の論理コンパイルステップＳ７０２）を適用することが可能である。
【００４２】
【実施例】
次に本発明におけるプログラマブル集積回路装置を適用した事例について具体的に図を用いて説明する。
【００４３】
（実施例１）
図４に示した（１式）の数式を処理する実施例について述べる。
【００４４】
まず、図４に示した（１式）は開発プログラム７２によって（２式）及び（３式）のように演算式として論理解釈される。
【００４５】
前述の論理解釈された演算式は、前記開発プログラム７２によって、図５で示す論理回路設計情報として解釈される。
【００４６】
以上の事前処理を基にした演算処理の流れを図８に示し、詳細に説明する。
【００４７】
図８は図４に示した数式（１式）を実際に演算させるために構成したプログラマブル集積回路装置２１の回路構成図である。
【００４８】
まず、図４の（２式）における”中間式Ａ”の箇所に係る演算回路を演算ブロックＡ３１内に割り当てる。
【００４９】
”中間式Ａ”の箇所においては、加算と減算を行っているので加算回路３５と減算回路３６が選択される。
【００５０】
前述の演算ブロックＡ３１に入力Ａ１１の処理に対応する回路が構成された後に、入力Ａ１１によって具体的数値等が入力され、中間式Ａの中間解４１として演算結果が導かれる。
【００５１】
次に、図４の（２式）における”中間式Ｂ”の箇所に係る演算回路を演算ブロックＢ３２内に割り当てる。
【００５２】
”中間式Ｂ”の箇所においては、加算を行っているので加算回路が選択される。
【００５３】
前述の演算ブロックＢ３２に入力Ｂ１２の処理に対応する回路が構成された後に、入力Ｂ１２によって具体的数値等が入力され、中間式Ｂの中間解４２として演算結果が導かれる。
【００５４】
次に、図４の（２式）における”因数Ｎ”の箇所に係る演算回路を演算ブロックＮ３３内に割り当てる。
【００５５】
”因数Ｎ”の箇所においては、演算回路を使用していないため、使用する回路を選択しないという選択がなされる。
【００５６】
前述の演算ブロックＮ３３に入力Ｎ１３の処理に対応する回路が構成された後に、入力Ｎ１３によって具体的数値等が入力され、因数Ｎの中間解４３として演算結果が導かれる。
【００５７】
最後に全体の演算として図４の（３式）における”全体式Ｎ＋１”の箇所に係る演算回路を演算ブロックＮ＋１３５内に割り当てる。
【００５８】
”全体式Ｎ＋１”の箇所においては、乗算と除算を行っているので乗算回路と除算回路が選択される。
【００５９】
前述の演算ブロックＮ＋１３５の入力には、各中間解４１、４２、４３が用いられ、全体式Ｎ＋１の処理に対応する回路が構成された後に、各一次演算ブロックの直後に配線配置されたセレクタＳＥＬ５０によって各中間解４１、４２、４３が入力され、最終結果として図４おける”Ｆ”の解として出力Ｆ６０に出力される。
【００６０】
【発明の効果】
本発明のプログラマブル集積回路装置によって、一般に高級なプログラム言語と称されるプログラム言語に類する知識がないユーザにも使用可能なプログラマブル集積回路装置の開発環境を提供することができる。
【００６１】
また、既に従来技術の手法によってプログラマブル集積回路装置の開発を実施している環境に、本発明のプログラマブル集積回路装置を取り入れることによって、プログラミング工数及び各種チェック工数を削除でき、従来に比較して効率的なプログラミングを行う事ができる。
【図面の簡単な説明】
【図１】
本発明を適用したプログラマブル集積回路装置２０の回路構成図である。
【図２】システムとして本発明のプログラマブル集積回路装置２０を動作させるために必要なシステムの要部構成図である。
【図３】図２で示した開発プログラム７２のアプリケーションソフトウェアの機能構成図である。
【図４】図３で示した開発プログラム７２のコンパイラ機能が担うロジックの概念図である。
【図５】図４で示した入力数式である（１式）に基づいて開発プログラム７２生成する所望の回路イメージをＲＴＬ記述によって書き出した論理回路構成図である。
【図６】開発プログラム７２のコンパイラ機能部によって実行される、数式の入力から回路情報を本発明のプログラマブル集積回路装置２０にアップロードに至るまでのフローチャート図である。
【図７】従来の手法による数式の入力から回路情報をプログラマブル集積回路装置にアップロードするに至るまでのフローチャート図である。
【図８】図８は図４に示した数式（１式）を実際に演算させるために構成したプログラマブル集積回路装置２１の回路構成図である。
【符号の説明】
１０　　入力部
１１　　入力Ａ
１２　　入力Ｂ
１３　　入力Ｎ
２０　　プログラマブル集積回路装置
３０　　演算ブロック
３５　　基本演算回路素子（例：加算）
３６　　基本演算回路素子（例：減算）
３７　　基本演算回路素子（例：乗算）
３８　　基本演算回路素子（例：除算）
５０　　出力セレクタ
５０’　入力セレクタ
６０　　出力Ｆ
７０　　ＣＰＵ
７２　　開発プログラム
８０　　表示部
９０　　システムバス
【図１】
2004023761.tif 000003
【図２】
2004023761.tif 000004
【図３】
2004023761.tif 000005
【図４】
2004023761.tif 000006
【図５】
2004023761.tif 000007
【図６】
2004023761.tif 000008
【図７】
2004023761.tif 000009
【図８】
2004023761.tif 000010