(57)【要約】【課題】プログラマブルロジックデバイスのプログラマブルロジック部のモジュール部の領域を拡大する手段を提供する。【解決手段】プログラマブルロジック部に形成する電子回路の配線配置を設定する論理合成サーバが、その全ての機能を記したデバイス基本データとプロセッサ部が処理に用いるフル命令セットのフル命令名リストとを格納するサーバ記憶部と、高級言語により記述されたベースプログラムからプロセッサ部が実行する実行プログラムを編集して機械語に変換するプログラムコンパイル部と、サーバ記憶部のフル命令名リストの命令名から実行プログラムに用いられている命令の命令名を除いて生成した不要命令名リストに基づいて、デバイス基本データから不要な命令を削除して必要な命令のみを必要命令セットとして組込んだ基本機能データを生成するカスタマイズ部とを備える。【選択図】        図１
2005269025.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルロジックデバイスの全ての機能を記したデバイス基本データと、前記プログラマブルロジックデバイスのプログラマブルロジック部に形成するプロセッサ部が処理に用いるフル命令セットの全ての命令名のフル命令名リストとを格納するサーバ記憶部と、
高級言語により記述されたベースプログラムから前記プロセッサ部が実行する実行プログラムを編集して機械語に変換し、該変換結果を前記サーバ記憶部に保存するプログラムコンパイル部と、
前記サーバ記憶部のフル命令名リストの命令名から、前記変換結果に用いられている命令の命令名を除いて前記ベースプログラムの実行に不必要な命令名の不要命令名リストを生成し、該不要命令名リストに基づいて、前記サーバ記憶部のデバイス基本データから不要な命令を削除して必要な命令のみを必要命令セットとして組込んだ基本機能データを生成するカスタマイズ部とを備えることを特徴とする論理合成サーバ。
【請求項２】
請求項１において、
前記プロセッサ部の制約条件を記した制約条件ファイルを前記サーバ記憶部に格納すると共に、前記フル命令セットの命令と置換え可能な他の命令を置換命令ライブラリとして前記サーバ記憶部に格納し、
前記プログラムコンパイル部が実行プログラムを編集する時に、前記制約条件ファイルの制約条件に基づいて前記ベースプログラムに用いられている命令を前記置換命令ライブラリの他の命令に置換えることを特徴とする論理合成サーバ。
【請求項３】
請求項１または請求項２において、
前記プログラマブルロジックに形成する必要命令セットの命令の命令毎の配線優先順位を記した配線優先順位ファイルを前記サーバ記憶部に格納し、
前記カスタマイズ部が必要命令セットを組込む時に、前記配線優先順位ファイルの命令毎の配線優先順位を該当する命令に付与することを特徴とする論理合成サーバ。
【請求項４】
請求項１、請求項２または請求項３に記載の論理合成サーバにより製造されたことを特徴とするプログラマブルロジックデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルロジックデバイスのプログラマブルロジック部に形成する電子回路の配線配置を設定する論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイスに関する。
【背景技術】
【０００２】
従来のプログラマブルロジック部を備えたプログラマブルロジックデバイスは、仮想コンピュータオペレーティングシステムを用いてプロセッサ部が実行するソースプログラムをシミュレートし、プロセッサ部が処理に用いるフル命令セットに多数の命令セットを付加すると共に、ソースプログラムが実行する機能をソフトウェアまたはハードウェアに配分してプログラマブルロジックデバイスによるグラフィックスアプリケーション等の処理を実行している。（例えば、特許文献１参照。）。
【特許文献１】特表２００２−５３０７８０号公報（第８頁段落０００４−第１０頁段落００１３、第４図）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来の技術においては、プロセッサ部が処理に用いるフル命令セットに多数の命令セットを付加してプログラマブルロジックデバイスによる処理を実行しているため、フル命令セットの命令の中には実行プログラムには用いられていない命令が存在し、その電子回路がプログラマブルロジック部のプロセッサ部に形成され、これに伴ってユーザＩ／Ｏ等のプログラマブルロジックデバイスが必要とする各種のモジュールの電子回路を形成するためのプログラマブルロジック部のモジュール部の領域が狭くなるという問題がある。
【０００４】
このため、実行プログラムの処理の実行にはプログラマブルロジック部の容量が大きいプログラマブルロジックデバイスを用いる必要が生じる。
また、プログラマブルロジック部に不必要な命令のための電子回路が存在することでプログラマブルロジック部に形成する電子回路の配線配置が非効率となり、プロセッサ部が実行する処理の処理速度が低下するという問題がある。
【０００５】
本発明は、上記の問題点を解決するためになされたもので、プログラマブルロジックデバイスのプログラマブルロジック部のモジュール部の領域を拡大する手段を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記課題を解決するために、論理合成サーバが、プログラマブルロジックデバイスの全ての機能を記したデバイス基本データと、前記プログラマブルロジックデバイスのプロセッサ部が処理に用いるフル命令セットの全ての命令名のフル命令名リストとを格納するサーバ記憶部と、高級言語により記述されたベースプログラムから前記プロセッサ部が実行する実行プログラムを編集して機械語に変換し、該変換結果を前記サーバ記憶部に保存するプログラムコンパイル部と、前記サーバ記憶部のフル命令名リストの命令名から、前記変換結果に用いられている命令の命令名を除いて前記ベースプログラムの実行に不必要な命令名の不要命令名リスト生成し、該不要命令名リストに基づいて、前記サーバ記憶部のデバイス基本データから不要な命令を削除して必要な命令のみを必要命令セットとして組込んだ基本機能データを生成するカスタマイズ部とを備えることを特徴とする。
【発明の効果】
【０００７】
これにより、本発明は、一般的にプログラマブルロジック部に形成されるプロセッサ部のフル命令セットの領域が必要命令セットのみの領域に減少することに伴ってプロセッサ部の領域が減少し、モジュール部の領域を拡大することができ、同一の実行プログラムの処理を実行するＦＰＧＡの小型化を図ることができるという効果が得られる。
また、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができるという効果が得られる。
【発明を実施するための最良の形態】
【０００８】
以下に、図面を参照して本発明による論理合成サーバの実施例について説明する。
【実施例１】
【０００９】
図１は実施例１の論理合成サーバを示すブロック図、図２は実施例１のプログラマブルロジックデバイスを示すブロック図である。
図２において、１はプログラマブルロジックデバイスとしてのＦＰＧＡ（Ｆｉｅｌｄ Ｐｒｏｇｒａｍｍａｂｌｅ Ｇａｔｅ Ａｒｒａｙ）である。
２はＦＰＧＡ１のプログラマブルロジック部であり、複数の基本素子（セルという。）が格子状に配置された素子であって、格子状に配置されたセルを接続することによって特定の機能を有する電子回路が形成可能に構成されている。
【００１０】
３はプロセッサ部であり、プログラマブルロジック部２に形成されたＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であって、高級言語としてのＣ言語で記述されたソースプログラムから生成された実行プログラムを実行する機能を有する他、レジスタやキャッシュメモリ等を備えている。
４は必要命令セットであり、プロセッサ部３に配置され、プロセッサ部３が処理を実行するために一般的に用意されている四則演算や分岐、比較等の基本的な命令の全てで構成される命令セット（フル命令セットという。）からプロセッサ部３が実行する実行プログラムには不必要な命令を削除して必要な命令のみにより構成される命令セットである。
【００１１】
５はモジュール部であり、ユーザＩ／Ｏや外部インターフェース等のプログラマブルロジックデバイスを構成する各種モジュールの電子回路が形成される領域である。
６はＦＰＧＡ１に付属するコンフィグレーションＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）であり、不揮発性のメモリであって、ＦＰＧＡ１の機能を形成するためのプログラマブルロジック部２のセル接続データが書込まれて格納される。
【００１２】
図１において、１０は論理合成サーバである。
１１は、論理合成サーバ１０の主制御部であり、論理合成サーバ１０の各部を制御する他、アプリケーションソフトウェアによりそのアプリケーションの機能を備えたハードウェア構成する機能を有している。
１２はプログラムメモリであり、主制御部１１に直結するキャッシュメモリ等に確保された記憶エリアであって、各種のアプリケーションソフトウェアが読込まれる。
【００１３】
１３はハードディスク等のサーバ記憶部であり、プロセッサ部３やそのフル命令セット４よびモジュール部５に形成するモジュール等のＦＰＧＡ１が備えるべき全ての機能を記したデバイス基本データ１４と、プロセッサ部３が処理に用いるフル命令セットの全ての命令名のリストであるフル命令名リスト１５を格納している。
１６は表示部であり、ＣＲＴやＬＣＤ等の表示画面を備えており、主制御部１１が生成したデータの確認画面や操作手順等を表示する。
【００１４】
１７はデータ入出力部であり、フレキシブルディスク等の磁気ディスクやコンパクトディスク等の光ディスク等の記録媒体に記録されたデータを読取る機能および記録媒体にデータを書込む機能を有している。
１８は入力部であり、キーボードやマウスを備えており、担当者が数字入力や文字入力、選択入力等を行うために使用する。
【００１５】
１９はＲＯＭ書込部であり、機械語で記述された実行プログラムを実行プログラム用ＲＯＭに書込む機能を有している。
２１はプログラムコンパイル部であり、ＦＰＧＡ１のプロセッサ部３が処理すべきソースプログラムと同一の高級言語で記述されたベースプログラムを解読してプロセッサ部３が実行可能なプログラムを編集し、これを機械語であるバイナリコードに変換してその変換結果をインテル形式のバイナリファイルとして出力する機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００１６】
本実施例では、ベースプログラムとしてＣ言語で記述されたソースプログラムが用いられ、プログラムコンパイル部２１はプロセッサ部３がその処理を実行するための実行プログラムを編集する。
２２はカスタマイズ部であり、プログラムコンパイル部２１から出力されたバイナリファイルを解読してそこに用いられている命令を抽出し、サーバ記憶部１３に保存されているフル命令名リスト１５からベースプログラムの実行に用いられている命令の命令名を除いて不必要な命令名のリスト（不要命令名リストという。）を生成し、この不要命令名リストに基づいてサーバ記憶部１３に格納されているデバイス基本データ１４のフル命令セットの命令から不要な命令を削除した必要命令セット４を組込んだＦＰＧＡ１の基本機能データ生成し、これをハードウェア記述言語としてのＨＤＬ（Ｈａｒｄｗａｒｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）言語で記述して出力する機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００１７】
２３は接続リスト生成部であり、カスタマイズ部２２で生成されたＨＤＬ言語の基本機能データを解読してプログラマブルロジック部２に形成するプロセッサ部３やその必要命令セット４およびモジュール部５の各モジュールの論理回路を編集し、この論理回路を構成するセルの接続方法等を記したリスト（接続リストという。）を生成して出力する機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００１８】
２４はフィッタ部であり、接続リスト生成部２３で生成された接続リストに基づいてプログラマブルロジック部２に前記論理回路を形成するための電子回路の配線配置を決定し、この配線配置となるように各電子回路にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記述したセル接続データを出力する機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００１９】
上記のプログラムコンパイル部２１やカスタマイズ部２２等を形成するアプリケーションソフトウェアは通常はサーバ記憶部１３に格納されており、論理合成サーバ１０が処理を実行する時にプログラムメモリ１２に読込まれて主制御部１１と共に上記した各部を形成する。
上述した構成の作用について説明する。
【００２０】
本実施例のＦＰＧＡ１は、パーソナルコンピュータ等の汎用性を有するコンピュータの基板に実装されるものではなく、アドインボードや特定の処理を行う装置の基板、例えばプリンタや磁気カードリーダの基板に実装されるものである。
このため、プログラマブルロジック部２に形成されるプロセッサ部３が実行する実行プログラムは特定の処理のみを実行するプログラムであって、フル命令セットの全ての命令を用いなくても必要命令セット４を用いれば処理の実行が可能なプログラムである。
【００２１】
しかしながら、実行プログラムは特定の処理のみを実行するプログラムといえども、その処理は実装される基板によって異なり、必要命令セット４を画一的に構成することが不可能であるので、以下に示す命令セット削減処理により必要命令セット４をその実行プログラムに対応させて構成する必要がある。
本実施例の命令セット削減処理に用いるベースプログラムは、Ｃ言語で記述したソースプログラムである。
【００２２】
また、論理合成サーバ１０のサーバ記憶部１３には、予め前記のＦＰＧＡ１のデバイス基本データ１４と、そのプロセッサ部３が一般に備えるフル命令セットのニーモニック言語の命令名のフル命令名リスト１５が格納されている。
以下に、図３に示すフローチャートを用い、Ｓで示すステップに従って本実施例の命令セット削減処理の作動について説明する。
【００２３】
Ｓ１、担当者は、予め作成したＣ言語で記述されたソースプログラムを記録した記録媒体をデータ入出力部１７に装填する。
これを検知した論理合成サーバ１０の主制御部１１は、データ入出力部１７により記録媒体に記録されたソースプログラムを読取る。
Ｓ２、ソースプログラムを読取った主制御部１１は、プログラムコンパイル部２１にソースプログラムを引渡してそのバイナリファイルを生成する。
【００２４】
すなわち、ソースプログラムの引渡しを受けたプログラムコンパイル部２１は、そのＣ言語のソースプログラムを解読し、実行の順序やレジスタの割付等を設定してプロセッサ部３が実行する実行プログラムを編集し、これをバイナリコードに変換してその変換結果をバイナリファイルとしてサーバ記憶部１３に保存する。
Ｓ３、プログラムコンパイル部２１がバイナリファイルを保存したことを確認した主制御部１１は、サーバ記憶部１３のバイナリファイルを読出すと共に、表示部１６に実行プログラムを出力する旨の文言を表示する。これを確認した担当者はＲＯＭ書込部１９に実行プログラム用ＲＯＭを装着する。
【００２５】
実行プログラム用ＲＯＭを装着を検知した主制御部１１は、読出したバイナリファイルにバイナリコードで記述されている実行プログラムをＲＯＭ書込部１９により実行プログラム用ＲＯＭに書込む。
Ｓ４、これと平行して主制御部１１は、カスタマイズ部２２にバイナリファイルの在処を引渡して基本機能データを生成する。
【００２６】
すなわち、バイナリファイルの在処の引渡しを受けたカスタマイズ部２２は、サーバ記憶部１３の実行プログラムのバイナリファイルを読出してこれを解読し、そこに用いられている命令を抽出してニーモニック言語に変換すると共にサーバ記憶部１３に格納されているフル命令名リスト１５を読出し、このフル命令名リスト１５のニーモニック言語の命令名から実行プログラムに用いられている命令名を消去して実行プログラムに不必要な不要命令名リストを生成し、サーバ記憶部１３に格納されているデバイス基本データ１４を読出して生成した不要命令名リストに基づいてデバイス基本データ１４のフル命令セットの命令から不要な命令を削除する。
【００２７】
そして、削除後に残った命令、つまり必要な命令を必要命令セット４として再構成し、これをデバイス基本データ１４の命令セットとして組込んでＨＤＬ言語で記述した基本機能データを生成し、これをサーバ記憶部１３に保存する。
Ｓ５、カスタマイズ部２２が基本機能データを保存したことを確認した主制御部１１は、接続リスト生成部２３に基本機能データの在処を引渡してＦＰＧＡ１のプログラマブルロジック部２の接続リストを生成する。
【００２８】
すなわち、基本機能データの在処の引渡しを受けた接続リスト生成部２３は、サーバ記憶部１３のＨＤＬ言語の基本機能データを読出してこれを解読し、ＦＰＧＡ１のプログラマブルロジック部２に形成するプロセッサ部３やその必要命令セット４およびモジュール部５の各モジュールの論理回路を編集してこの論理回路を構成するセルの接続方法等を記した接続リストを生成し、これをサーバ記憶部１３に保存する。
【００２９】
Ｓ６、接続リスト生成部２３が接続リストを保存したことを確認した主制御部１１は、フィッタ部２４に接続リストの在処を引渡してプログラマブルロジック部２のセル接続データを生成する。
すなわち、接続リストの在処の引渡しを受けたフィッタ部２４は、サーバ記憶部１３の接続リストを読出し、その接続リストに基づいて必要命令セット４の命令のその使用頻度等を考慮してプログラマブルロジック部２に形成するプロセッサ部３やその必要命令セット４等の論理回路のための電子回路の配線配置を決定し、この配線配置となるように各電子回路にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記したセル接続データを生成し、これをサーバ記憶部１３に保存する。
【００３０】
Ｓ７、フィッタ部２４がセル接続データを保存したことを確認した主制御部１１は、サーバ記憶部１３のセル接続データを読出すと共に、表示部１６にセル接続データを出力する旨の文言を表示する。これを確認した担当者は、データ入出力部１７に記録媒体を装填する。
記録媒体を装填を検知した論理合成サーバ１０の主制御部１１は、データ入出力部１７により読出したセル接続データを記録媒体に書込み、書込が終了した時に上記の命令セット削減処理を終了させる。
【００３１】
その後、担当者はセル接続データが書込まれた記録媒体を用いて図示しないＲＯＭライタ等によりセル接続データをＦＰＧＡ１に付属するコンフィグレーションＲＯＭ６に書込んで格納する。
この場合に、論理合成サーバ１０にＲＯＭライタを設け、またはＲＯＭ書込部１９を利用してセル接続データをＦＰＧＡ１に付属するコンフィグレーションＲＯＭ６に書込むようにしてもよい。
【００３２】
これにより、ステップＳ３で実行プログラム用ＲＯＭに書込まれた実行プログラムの処理の実行に必要な命令のみを必要命令セット４として組込んだ基本機能データの機能を発揮するＦＰＧＡ１が製造される。
そして、このＦＰＧＡ１は、実行プログラム用ＲＯＭと共に基板に実装され、その基板に電源が投入されると、コンフィグレーションＲＯＭ６に格納されているセル接続データがＦＰＧＡ１に読込まれ、このセル接続データに基づいてプログラマブルロジック部２にプロセッサ部３やその必要命令セット４およびモジュール部５の各モジュール等の電子回路が形成され、形成されたプロセッサ部３が実行プログラム用ＲＯＭから実行プログラムを読出して必要命令セット４を用いてその演算等を行うと共に、モジュール部５の各モジュールに指令して実行プログラムに応じた処理を実行する。
【００３３】
以上説明したように、本実施例では、論理合成サーバのサーバ記憶部にデバイス基本データとフル命令名リストとを格納しておき、プログラムコンパイル部がソースプログラムから実行プルグラムを編集して機械語に変換したバイナリファイルをカスタマイズ部が解読してフル命令名リストから実行プログラムが用いている命令の命令を除いた不要命令名リストを生成し、不要命令名リストに基づいてデバイス基本データのフル命令セットから不要な命令を削除し、必要命令セットを組込んだ基本機能データを生成するようにしたことによって、図４（ａ）に示す一般的にプログラマブルロジック部に形成されるプロセッサ部のフル命令セットの領域が図４（ｂ）に示す必要命令セットのみの領域に減少することに伴ってプロセッサ部の領域が減少し、モジュール部の領域を図４（ａ）に示す領域から図４（ｂ）に示す領域に拡大することができる。
【００３４】
これにより、同一の実行プログラムの処理を実行するＦＰＧＡの小型化を図ることができる。
また、プロセッサ部に必要命令セットのみを設けるようにしたことによって、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができる。
【実施例２】
【００３５】
図５は実施例２の論理合成サーバを示すブロック図である。
なお、上記実施例１と同様の部分は、同一の符号を付してその説明を省略する。
図５において、３１は制約条件ファイルであり、プロセッサ部３が処理を実行する際に用いる各命令の処理時間の上限やプログラマブルロジック部２に形成するプロセッサ部３の領域の最大値等のプロセッサ部３の制約条件を記したファイルであって、論理合成サーバ１０のサーバ記憶部１３に予め格納されている。
【００３６】
３２は置換命令ライブラリであり、フル命令セットの各命令の処理時間およびその機能と同一の機能を発揮する置換え可能な他の命令（他の複数の命令の組合せを含む。例えば動作の遅い乗算命令の機能を動作の速い加算命令と分岐命令によるループ処理とする組合せとして同一の機能を発揮させる等）を記したライブラリであって、サーバ記憶部１３に予め格納されている。
【００３７】
３３は配線優先順位ファイルであり、プログラマブルロジック２に形成する必要命令セット４の命令（優先順位を高める必要のある命令のみの場合を含む。）の電子回路の配線配置を決定する際の命令毎の配線優先順位を記したファイルであって、サーバ記憶部１３に予め格納されている。
３４はプログラムコンパイル部であり、実施例１のプログラムコンパイル部２１と同様の機能に加えて、実行プログラムを編集する時に、置換命令ライブラリ３２を参照して制約条件ファイル３１の制約条件を満たすように実行プログラムに用いる命令を置換える機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００３８】
３５はカスタマイズ部であり、実施例１のカスタマイズ部２２と同様の機能に加えて、基準機能データに必要命令セット４を組込む時に、配線優先順位ファイル３３に記された命令毎の配線優先順位を該当する命令に付与して組込む機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
３６はフィッタ部であり、実施例１のフィッタ部２４と同様の機能に加えて、電子回路の配線配置を決定する時に、配線優先順位の高い命令から優先的にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記述してその電子回路の長さが最も短くなる配線配置とする機能を有するアプリケーションソフトウェアと主制御部１１とで形成されるハードウェアである。
【００３９】
上記の構成の作用について説明する。
本実施例のサーバ記憶部１３には実施例１のデバイス基本データ１４、フル命令名リスト１５に加えて上記の制約条件ファイル３１、置換命令ライブラリ３２および配線優先順位ファイル３３が予め格納されている。
本実施例の配線優先順位ファイルの優先順位は、高速処理を行う必要がある命令、例えばソースプログラムで多用している命令の優先順位が高くなるように設定されている。
【００４０】
また、本実施例のベースファイルは、実施例１と同様のソースプログラムである。
以下に、図６に示すフローチャートを用い、ＳＡで示すステップに従って本実施例の命令セット削減処理の作動について説明する。
ＳＡ１、上記実施例１のステップＳ１と同様にして、論理合成サーバ１０の主制御部１１はソースプログラムを読取る。
【００４１】
ＳＡ２、ソースプログラムを読取った主制御部１１は、プログラムコンパイル部３４にソースプログラムを引渡してそのバイナリファイルを生成する。
すなわち、ソースプログラムの引渡しを受けたプログラムコンパイル部３４は、そのＣ言語のソースプログラムを解読して用いるべき命令を認識すると共に、サーバ記憶部１３の制約条件ファイル３１を読出して各命令の処理時間やプロセッサ部３の領域の大きさ等の制約条件を認識し、サーバ記憶部１３の置換命令ライブラリ３２の各命令の処理時間を参照して処理時間が制約条件の処理時間を超える命令を抽出し、抽出した命令がソースプログラムで用いられている場合は、置換命令ライブラリ３２を参照してその命令を制約条件の処理時間以内となる他の命令に置換え、ソースプログラムの実行に用いる命令を全て制約条件の処理時間に合致させる。
【００４２】
そして、制約条件の処理時間に合致させた各命令を必要命令セット４とした場合の必要命令セット４の領域を想定し、プロセッサ部３の領域が制約条件の領域を越える場合は、更に置換命令ライブラリ３２を参照して処理時間を合致させた各命令の種類を減少させる置換を行う。
例えば、乗算命令と除算命令、加算命令、分岐命令、比較命令が用いられている場合は、乗算命令を加算命令と分岐命令によるループ処理へ置換え、除算命令を加算命令と比較命令の分岐命令によるループ処理へ置換えて５つの命令を加算命令と分岐命令、比較命令の３つの命令のみで処理する等である。
【００４３】
このようにして、プログラムコンパイル部３４はソースプログラムに用いられている命令の種類を減少させ、実施例１と同様にして実行プログラムを編集し、これをバイナリコードに変換した結果をバイナリファイルとしてサーバ記憶部１３に保存する。
ＳＡ３、プログラムコンパイル部３４がバイナリファイルを保存したことを確認した主制御部１１は、上記実施例１のステップＳ３と同様にして実行プログラムを実行プログラム用ＲＯＭに書込む。
【００４４】
ＳＡ４、これと平行して主制御部１１は、カスタマイズ部３５にバイナリファイルの在処を引渡して基本機能データを生成する。
すなわち、バイナリファイルの在処の引渡しを受けたカスタマイズ部３５は、上記実施例１のステップＳ４と同様にして不要命令名リストを生成し、不要命令名リストに基づいてデバイス基本データ１４のフル命令セットの命令から不要な命令を削除する。
【００４５】
そして、サーバ記憶部１３の配線優先順位ファイル３３を読出し、その命令毎の配線優先順位を該当する削除後に残った必要な命令に付与して必要命令セット４として再構成し、実施例１のステップＳ４と同様にして基本機能データをサーバ記憶部１３に保存する。
ＳＡ５、カスタマイズ部３５が基本機能データを保存したことを確認した主制御部１１は、接続リスト生成部２３に基本機能データの在処を引渡してＦＰＧＡ１のプログラマブルロジック部２の接続リストを生成する。
【００４６】
すなわち、基本機能データの在処の引渡しを受けた接続リスト生成部２３は、上記実施例１のステップＳ５と同様にして接続リストをサーバ記憶部１３に保存する。
ＳＡ６、接続リスト生成部２３が接続リストを保存したことを確認した主制御部１１は、フィッタ部３６に接続リストの在処を引渡してプログラマブルロジック部２のセル接続データを生成する。
【００４７】
すなわち、接続リストの在処の引渡しを受けたフィッタ部３６は、サーバ記憶部１３の接続リストを読出し、その接続リストの必要命令セット４の命令に付与されている配線優先順位に従ってプログラマブルロジック部２に形成するプロセッサ部３やその必要命令セット４等の論理回路のための電子回路に割り当てるセルを配線優先順位の高い命令から優先的に割り当て、その割り当てたセルの隣接するセル間の接続点等を記してその電子回路の長さが最も短くなる配線配置を決定し、決定した配線配置のセルの割り当てとその接続点等を記したセル接続データを生成し、これをサーバ記憶部１３に保存する。
【００４８】
ＳＡ７、フィッタ部３６がセル接続データを保存したことを確認した主制御部１１は、上記実施例１のステップＳ７と同様にしてセル接続データを記録媒体に書込み、書込が終了した時に上記の命令セット削減処理を終了させる。
その後、作動は上記実施例１と同様であるので、その説明を省略する。
以上説明したように、本実施例では、上記実施例１と同様の効果に加えて、論理合成サーバのサーバ記憶部に制約条件ファイルと置換命令ライブラリとを格納しておき、プログラムコンパイル部がソースプログラムから実行プルグラムを編集する時に、制約条件ファイルの制約条件に基づいてソースプログラムに用いられている命令を置換命令ライブラリの他の命令置換えるようにしたことによって、必要命令セットの命令の種類を減少させることができ、プロセッサ部の領域を更に減少させてモジュール部の領域を更に拡大することができる。
【００４９】
これにより、同一の実行プログラムの処理を実行するＦＰＧＡの小型化を更に図ることができる。
また、サーバ記憶部に配線優先順位ファイルを格納しておき、カスタマイズ部が必要命令セットを組込む時に、配線優先順位ファイルの命令毎の配線優先順位を該当する命令に付与するようにしたことによって、プログラマブルロジック部に形成する優先順位の高い電子回路を更に高速なものとしてプロセッサ部が実行する処理の処理速度を向上させることができる。
【００５０】
なお、上記各実施例においては、プログラマブルロジックデバイスはＦＰＧＡとして説明したが、プログラマブルロジックデバイス前記に限らず、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）等のプログラム可能なデバイスであればどのようなものでもよい。
また、不要な命令名の抽出には、ニーモニック言語を用いるとして説明したが、アセンブリ言語を用いてもよく、バイナリコードのまま抽出するようにし、抽出した不要な命令名を担当者が確認する必要がある場合にニーモニック言語またはアセンブリ言語に変換して表示部１６に表示するようにしてもよい。
【００５１】
更に、バイナリファイルの記述はインテル形式を用いるとして説明したが、モトローラ形式で記述するようにしてもよい。
更に、高級言語はＣ言語を用いるとして説明したが、ＦＯＲＴＲＡＮ言語等の他の高級言語を用いるようにしてもよい。
更に、ベースプログラムはソースプログラムを用いるとして説明したが、実際に使用されるソースプログラムでなく、ソースプログラムで用いる全ての命令に用いた簡単なプログラムを用いて上記ステップＳ３、ＳＡ３の実行プログラムの書込ステップを省略した命令セット削減処理を実行するようにしてもよい。このことはソースプログラムの開発中にプログラマブルロジックデバイスを作成する場合に有効である。
【００５２】
更に、サーバ記憶部はハードディスクであるとして説明したが、キャッシュメモリ等に確保したデータメモリの記憶エリアを用いるようにしてもよく、これらを適宜に組合せて用いるようにしてもよい。
更に、配線優先順位ファイルは予め作成しておくとして説明したが、カスタマイズ部が必要命令セットを再構成する前に、その必要命令セットの内容を表示部に表示し、担当者が入力部から入力した配線優先順位をサーバ記憶部等に格納するようにしてもよい。
【００５３】
更に、配線優先順位はカスタマイズ部が必要命令セット組込む時に該当する命令に付与するとして説明したが、フィッタ部が命令の使用頻度等を考慮して配線配置を決定した時にその内容を表示部に表示し、担当者が入力部から必要に応じて配線優先順位を変更するようにしてもよい。
【図面の簡単な説明】
【００５４】
【図１】実施例１の論理合成サーバを示すブロック図
【図２】実施例１のＦＰＧＡを示すブロック図
【図３】実施例１の命令セット削減処理を示すフローチャート
【図４】実施例１のモジュール部の領域拡大を示す説明図
【図５】実施例２の論理合成サーバを示すブロック図
【図６】実施例２の命令セット削減処理を示すフローチャート
【符号の説明】
【００５５】
１    ＦＰＧＡ
２    プログラマブルロジック部
３    プロセッサ部
４    必要命令セット
５    モジュール部
６    コンフィグレーションＲＯＭ
１０  論理合成サーバ
１１  主制御部
１２  プログラムメモリ
１３  サーバ記憶部
１４  デバイス基本データ
１５  フル命令名リスト
１６  表示部
１７  データ入出力部
１８  入力部
１９  ＲＯＭ書込部
２１、３４  プログラムコンパイル部
２２、３５  カスタマイズ部
２３  接続リスト生成部
２４、３６  フィッタ部
３１  制約条件ファイル
３２  置換命令ライブラリ
３３  配線優先順位ファイル
【図１】
2005269025.tif 000003
【図２】
2005269025.tif 000004
【図３】
2005269025.tif 000005
【図４】
2005269025.tif 000006
【図５】
2005269025.tif 000007
【図６】
2005269025.tif 000008