JP4363598B2 - 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス - Google Patents
論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス Download PDFInfo
- Publication number
- JP4363598B2 JP4363598B2 JP2004076192A JP2004076192A JP4363598B2 JP 4363598 B2 JP4363598 B2 JP 4363598B2 JP 2004076192 A JP2004076192 A JP 2004076192A JP 2004076192 A JP2004076192 A JP 2004076192A JP 4363598 B2 JP4363598 B2 JP 4363598B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- unit
- instructions
- programmable logic
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Microcomputers (AREA)
- Logic Circuits (AREA)
Description
また、プログラマブルロジック部に不必要な命令のための電子回路が存在することでプログラマブルロジック部に形成する電子回路の配線配置が非効率となり、プロセッサ部が実行する処理の処理速度が低下するという問題がある。
また、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができるという効果が得られる。
図2において、1はプログラマブルロジックデバイスとしてのFPGA(Field Programmable Gate Array)である。
2はFPGA1のプログラマブルロジック部であり、複数の基本素子(セルという。)が格子状に配置された素子であって、格子状に配置されたセルを接続することによって特定の機能を有する電子回路が形成可能に構成されている。
4は必要命令セットであり、プロセッサ部3に配置され、プロセッサ部3が処理を実行するために一般的に用意されている四則演算や分岐、比較等の基本的な命令の全てで構成される命令セット(フル命令セットという。)からプロセッサ部3が実行する実行プログラムには不必要な命令を削除して必要な命令のみにより構成される命令セットである。
6はFPGA1に付属するコンフィグレーションROM(Read Only Memory)であり、不揮発性のメモリであって、FPGA1の機能を形成するためのプログラマブルロジック部2のセル接続データが書込まれて格納される。
11は、論理合成サーバ10の主制御部であり、論理合成サーバ10の各部を制御する他、アプリケーションソフトウェアによりそのアプリケーションの機能を備えたハードウェアを構成する機能を有している。
12はプログラムメモリであり、主制御部11に直結するキャッシュメモリ等に確保された記憶エリアであって、各種のアプリケーションソフトウェアが読込まれる。
16は表示部であり、CRTやLCD等の表示画面を備えており、主制御部11が生成したデータの確認画面や操作手順等を表示する。
18は入力部であり、キーボードやマウスを備えており、担当者が数字入力や文字入力、選択入力等を行うために使用する。
21はプログラムコンパイル部であり、FPGA1のプロセッサ部3が処理すべきソースプログラムと同一の高級言語で記述されたベースプログラムを解読してプロセッサ部3が実行可能なプログラムを編集し、これを機械語であるバイナリコードに変換してその変換結果をインテル形式のバイナリファイルとして出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
22はカスタマイズ部であり、プログラムコンパイル部21から出力されたバイナリファイルを解読してそこに用いられている命令を抽出し、サーバ記憶部13に保存されているフル命令名リスト15からベースプログラムの実行に用いられている命令の命令名を除いて不必要な命令名のリスト(不要命令名リストという。)を生成し、この不要命令名リストに基づいてサーバ記憶部13に格納されているデバイス基本データ14のフル命令セットの命令から不要な命令を削除した必要命令セット4を組込んだFPGA1の基本機能データ生成し、これをハードウェア記述言語としてのHDL(Hardware Description Language)言語で記述して出力する機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
上述した構成の作用について説明する。
このため、プログラマブルロジック部2に形成されるプロセッサ部3が実行する実行プログラムは特定の処理のみを実行するプログラムであって、フル命令セットの全ての命令を用いなくても必要命令セット4を用いれば処理の実行が可能なプログラムである。
本実施例の命令セット削減処理に用いるベースプログラムは、C言語で記述したソースプログラムである。
以下に、図3に示すフローチャートを用い、Sで示すステップに従って本実施例の命令セット削減処理の作動について説明する。
これを検知した論理合成サーバ10の主制御部11は、データ入出力部17により記録媒体に記録されたソースプログラムを読取る。
S2、ソースプログラムを読取った主制御部11は、プログラムコンパイル部21にソースプログラムを引渡してそのバイナリファイルを生成する。
S3、プログラムコンパイル部21がバイナリファイルを保存したことを確認した主制御部11は、サーバ記憶部13のバイナリファイルを読出すと共に、表示部16に実行プログラムを出力する旨の文言を表示する。これを確認した担当者はROM書込部19に実行プログラム用ROMを装着する。
S4、これと平行して主制御部11は、カスタマイズ部22にバイナリファイルの在処を引渡して基本機能データを生成する。
S5、カスタマイズ部22が基本機能データを保存したことを確認した主制御部11は、接続リスト生成部23に基本機能データの在処を引渡してFPGA1のプログラマブルロジック部2の接続リストを生成する。
すなわち、接続リストの在処の引渡しを受けたフィッタ部24は、サーバ記憶部13の接続リストを読出し、その接続リストに基づいて必要命令セット4の命令のその使用頻度等を考慮してプログラマブルロジック部2に形成するプロセッサ部3やその必要命令セット4等の論理回路のための電子回路の配線配置を決定し、この配線配置となるように各電子回路にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記したセル接続データを生成し、これをサーバ記憶部13に保存する。
記録媒体を装填を検知した論理合成サーバ10の主制御部11は、データ入出力部17により読出したセル接続データを記録媒体に書込み、書込が終了した時に上記の命令セット削減処理を終了させる。
この場合に、論理合成サーバ10にROMライタを設け、またはROM書込部19を利用してセル接続データをFPGA1に付属するコンフィグレーションROM6に書込むようにしてもよい。
そして、このFPGA1は、実行プログラム用ROMと共に基板に実装され、その基板に電源が投入されると、コンフィグレーションROM6に格納されているセル接続データがFPGA1に読込まれ、このセル接続データに基づいてプログラマブルロジック部2にプロセッサ部3やその必要命令セット4およびモジュール部5の各モジュール等の電子回路が形成され、形成されたプロセッサ部3が実行プログラム用ROMから実行プログラムを読出して必要命令セット4を用いてその演算等を行うと共に、モジュール部5の各モジュールに指令して実行プログラムに応じた処理を実行する。
また、プロセッサ部に必要命令セットのみを設けるようにしたことによって、プログラマブルロジック部に不必要な命令のための電子回路が存在しなくなり、プログラマブルロジック部の電子回路を効率的な配線配置で形成することができ、プロセッサ部が実行する処理の処理速度を向上させることができる。
なお、上記実施例1と同様の部分は、同一の符号を付してその説明を省略する。
図5において、31は制約条件ファイルであり、プロセッサ部3が処理を実行する際に用いる各命令の処理時間の上限やプログラマブルロジック部2に形成するプロセッサ部3の領域の最大値等のプロセッサ部3の制約条件を記したファイルであって、論理合成サーバ10のサーバ記憶部13に予め格納されている。
34はプログラムコンパイル部であり、実施例1のプログラムコンパイル部21と同様の機能に加えて、実行プログラムを編集する時に、置換命令ライブラリ32を参照して制約条件ファイル31の制約条件を満たすように実行プログラムに用いる命令を置換える機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
36はフィッタ部であり、実施例1のフィッタ部24と同様の機能に加えて、電子回路の配線配置を決定する時に、配線優先順位の高い命令から優先的にセルを割り当て、その割り当てたセルの隣接するセル間の接続点等を記述してその電子回路の長さが最も短くなる配線配置とする機能を有するアプリケーションソフトウェアと主制御部11とで形成されるハードウェアである。
本実施例のサーバ記憶部13には実施例1のデバイス基本データ14、フル命令名リスト15に加えて上記の制約条件ファイル31、置換命令ライブラリ32および配線優先順位ファイル33が予め格納されている。
本実施例の配線優先順位ファイルの優先順位は、高速処理を行う必要がある命令、例えばソースプログラムで多用している命令の優先順位が高くなるように設定されている。
以下に、図6に示すフローチャートを用い、SAで示すステップに従って本実施例の命令セット削減処理の作動について説明する。
SA1、上記実施例1のステップS1と同様にして、論理合成サーバ10の主制御部11はソースプログラムを読取る。
すなわち、ソースプログラムの引渡しを受けたプログラムコンパイル部34は、そのC言語のソースプログラムを解読して用いるべき命令を認識すると共に、サーバ記憶部13の制約条件ファイル31を読出して各命令の処理時間やプロセッサ部3の領域の大きさ等の制約条件を認識し、サーバ記憶部13の置換命令ライブラリ32の各命令の処理時間を参照して処理時間が制約条件の処理時間を超える命令を抽出し、抽出した命令がソースプログラムで用いられている場合は、置換命令ライブラリ32を参照してその命令を制約条件の処理時間以内となる他の命令に置換え、ソースプログラムの実行に用いる命令を全て制約条件の処理時間に合致させる。
例えば、乗算命令と除算命令、加算命令、分岐命令、比較命令が用いられている場合は、乗算命令を加算命令と分岐命令によるループ処理へ置換え、除算命令を加算命令と比較命令の分岐命令によるループ処理へ置換えて5つの命令を加算命令と分岐命令、比較命令の3つの命令のみで処理する等である。
SA3、プログラムコンパイル部34がバイナリファイルを保存したことを確認した主制御部11は、上記実施例1のステップS3と同様にして実行プログラムを実行プログラム用ROMに書込む。
すなわち、バイナリファイルの在処の引渡しを受けたカスタマイズ部35は、上記実施例1のステップS4と同様にして不要命令名リストを生成し、不要命令名リストに基づいてデバイス基本データ14のフル命令セットの命令から不要な命令を削除する。
SA5、カスタマイズ部35が基本機能データを保存したことを確認した主制御部11は、接続リスト生成部23に基本機能データの在処を引渡してFPGA1のプログラマブルロジック部2の接続リストを生成する。
SA6、接続リスト生成部23が接続リストを保存したことを確認した主制御部11は、フィッタ部36に接続リストの在処を引渡してプログラマブルロジック部2のセル接続データを生成する。
その後、作動は上記実施例1と同様であるので、その説明を省略する。
以上説明したように、本実施例では、上記実施例1と同様の効果に加えて、論理合成サーバのサーバ記憶部に制約条件ファイルと置換命令ライブラリとを格納しておき、プログラムコンパイル部がソースプログラムから実行プログラムを編集する時に、制約条件ファイルの制約条件に基づいてソースプログラムに用いられている命令を置換命令ライブラリの他の命令と置換えるようにしたことによって、必要命令セットの命令の種類を減少させることができ、プロセッサ部の領域を更に減少させてモジュール部の領域を更に拡大することができる。
また、サーバ記憶部に配線優先順位ファイルを格納しておき、カスタマイズ部が必要命令セットを組込む時に、配線優先順位ファイルの命令毎の配線優先順位を該当する命令に付与するようにしたことによって、プログラマブルロジック部に形成する優先順位の高い電子回路を更に高速なものとしてプロセッサ部が実行する処理の処理速度を向上させることができる。
また、不要な命令名の抽出には、ニーモニック言語を用いるとして説明したが、アセンブリ言語を用いてもよく、バイナリコードのまま抽出するようにし、抽出した不要な命令名を担当者が確認する必要がある場合にニーモニック言語またはアセンブリ言語に変換して表示部16に表示するようにしてもよい。
更に、高級言語はC言語を用いるとして説明したが、FORTRAN言語等の他の高級言語を用いるようにしてもよい。
更に、ベースプログラムはソースプログラムを用いるとして説明したが、実際に使用されるソースプログラムでなく、ソースプログラムで用いる全ての命令に用いた簡単なプログラムを用いて上記ステップS3、SA3の実行プログラムの書込ステップを省略した命令セット削減処理を実行するようにしてもよい。このことはソースプログラムの開発中にプログラマブルロジックデバイスを作成する場合に有効である。
更に、配線優先順位ファイルは予め作成しておくとして説明したが、カスタマイズ部が必要命令セットを再構成する前に、その必要命令セットの内容を表示部に表示し、担当者が入力部から入力した配線優先順位をサーバ記憶部等に格納するようにしてもよい。
2 プログラマブルロジック部
3 プロセッサ部
4 必要命令セット
5 モジュール部
6 コンフィグレーションROM
10 論理合成サーバ
11 主制御部
12 プログラムメモリ
13 サーバ記憶部
14 デバイス基本データ
15 フル命令名リスト
16 表示部
17 データ入出力部
18 入力部
19 ROM書込部
21、34 プログラムコンパイル部
22、35 カスタマイズ部
23 接続リスト生成部
24、36 フィッタ部
31 制約条件ファイル
32 置換命令ライブラリ
33 配線優先順位ファイル
Claims (3)
- プログラマブルロジックデバイスの全ての機能を記したデバイス基本データと、前記プログラマブルロジックデバイスのプログラマブルロジック部に形成するプロセッサ部が処理に用いるフル命令セットの全ての命令名のフル命令名リストと、前記プロセッサ部の制約条件を記した制約条件ファイルと、前記フル命令セットの命令と置換え可能な他の命令を記した置換命令ライブラリとを格納するサーバ記憶部と、
高級言語により記述されたベースプログラムから前記プロセッサ部が実行する実行プログラムを編集する時に、前記制約条件ファイルの制約条件に基づいて前記ベースプログラムに用いられている命令を前記置換命令ライブラリの他の命令に置換えて、前記実行プログラムを編集して機械語に変換し、該変換結果を前記サーバ記憶部に保存するプログラムコンパイル部と、
前記サーバ記憶部のフル命令名リストの命令名から、前記変換結果に用いられている命令の命令名を除いて前記ベースプログラムの実行に不必要な命令名の不要命令名リストを生成し、該不要命令名リストに基づいて、前記サーバ記憶部のデバイス基本データから不要な命令を削除して必要な命令のみを必要命令セットとして組込んだ基本機能データを生成するカスタマイズ部とを備えることを特徴とする論理合成サーバ。 - 請求項1において、
前記プログラマブルロジックに形成する必要命令セットの命令の命令毎の配線優先順位を記した配線優先順位ファイルを前記サーバ記憶部に格納し、
前記カスタマイズ部が必要命令セットを組込む時に、前記配線優先順位ファイルの命令毎の配線優先順位を該当する命令に付与することを特徴とする論理合成サーバ。 - 請求項1または請求項2に記載の論理合成サーバにより製造されたことを特徴とするプログラマブルロジックデバイス。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004076192A JP4363598B2 (ja) | 2004-03-17 | 2004-03-17 | 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004076192A JP4363598B2 (ja) | 2004-03-17 | 2004-03-17 | 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005269025A JP2005269025A (ja) | 2005-09-29 |
JP4363598B2 true JP4363598B2 (ja) | 2009-11-11 |
Family
ID=35093126
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004076192A Expired - Fee Related JP4363598B2 (ja) | 2004-03-17 | 2004-03-17 | 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4363598B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100072100A (ko) | 2007-11-01 | 2010-06-29 | 실리콘 하이브 비.브이. | 애플리케이션 프로파일 기반의 asip 설계 |
US8271920B2 (en) | 2010-08-25 | 2012-09-18 | International Business Machines Corporation | Converged large block and structured synthesis for high performance microprocessor designs |
CN111487892B (zh) * | 2020-03-31 | 2023-03-21 | 北京中庆现代技术股份有限公司 | 一种多功能可编程集成控制装置 |
-
2004
- 2004-03-17 JP JP2004076192A patent/JP4363598B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2005269025A (ja) | 2005-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8792116B2 (en) | Printing controller, GUI display method, printer driver, and recording medium | |
JP2005536783A (ja) | pdfドキュメントのセクション抽出ツール | |
JP6801460B2 (ja) | 情報処理装置、プログラム、および情報処理方法 | |
JP2007034887A (ja) | ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置 | |
CN101923537B (zh) | 在图形用户界面中显示多个文档的方法和装置 | |
JP2009110391A (ja) | 情報処理装置および制御方法および制御プログラム | |
JP4363598B2 (ja) | 論理合成サーバおよびそれにより製造されたプログラマブルロジックデバイス | |
JP2006301989A (ja) | 計算機言語によるプログラムをブロック図から自動生成する方法と装置とプログラム | |
US8127259B2 (en) | Synthesis constraint creating device, behavioral synthesis device, synthesis constraint creating method and recording medium | |
JP2006059102A (ja) | Cad装置、シンボル作成装置、cadプログラム、およびシンボル作成プログラム | |
JP4988226B2 (ja) | プログラム生成装置およびプログラム生成方法およびプログラムおよび記録媒体 | |
JP2007265011A (ja) | 画面プログラムレイアウト変更方法および情報処理装置およびプログラムおよび記録媒体 | |
JP5399601B2 (ja) | 実装コード開発システム、及び実装コード開発プログラム | |
JP4184155B2 (ja) | データ処理装置、データ処理方法、データ処理プログラム、およびデータ処理プログラムを記録したコンピュータ読取可能な記録媒体 | |
JPH1011271A (ja) | バージョンダウン入力方式 | |
JP3330122B2 (ja) | 機能可変型dspプログラム作成装置、dspプログラム作成方法およびdspプログラム作成用プログラムを記録した記録媒体、並びにdsp装置 | |
JP2010182031A (ja) | ソフトウエア生成支援装置 | |
JP2018206195A (ja) | 演算システム、演算システムの制御方法およびプログラム | |
JP4275639B2 (ja) | レイアウト設計装置、およびレイアウト設計プログラム | |
CN114281324A (zh) | 页面生成方法、装置、计算机设备及存储介质 | |
JP2007164685A (ja) | 情報処理装置およびデータ出力制御方法およびプログラムおよび記憶媒体 | |
JP2007004238A (ja) | 解析支援装置および解析支援方法およびプログラム | |
JP3466869B2 (ja) | フォントデータ管理方法および装置、ならびに記録媒体 | |
JP2006285584A (ja) | プログラムコード生成装置、プログラムコード生成方法、及びコンピュータプログラム | |
JP2000181695A (ja) | ソフトウェア部品のバージョンアップ管理装置及び方法並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070313 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081217 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090512 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090627 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090728 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090815 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120828 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120828 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130828 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |