JP4052684B2 - Computer system using programmable logic circuit - Google Patents
Computer system using programmable logic circuit Download PDFInfo
- Publication number
- JP4052684B2 JP4052684B2 JP13187695A JP13187695A JP4052684B2 JP 4052684 B2 JP4052684 B2 JP 4052684B2 JP 13187695 A JP13187695 A JP 13187695A JP 13187695 A JP13187695 A JP 13187695A JP 4052684 B2 JP4052684 B2 JP 4052684B2
- Authority
- JP
- Japan
- Prior art keywords
- programmable logic
- logic circuit
- input
- computer system
- terminal
- 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
Images
Landscapes
- Stored Programmes (AREA)
- Programmable Controllers (AREA)
- Calculators And Similar Devices (AREA)
- Debugging And Monitoring (AREA)
Description
【0001】
【産業上の利用分野】
本発明はプログラマブル論理回路を使用したコンピュータ・システムに関し、さらに詳細には、コンピュータ・システム自身が、プログラマブル論理回路のプログラムをコンパイルする手段、配線配置手段、または、プログラマブル論理回路へのコンフィグレーション・データのロード手段を持ち、ユーザによってハードウェアの動作を変更することができるコンピュータ・システムに関するものである。
【0002】
【従来の技術】
ユーザによってプログラム可能なプログラマブル論理回路として、FPGA(Field Programmable Gate Array )、FPLA(Field Programmable Logic Array)、FPLD(Field Programmable Logic Dvice)、CPLD(Complex Programmable Logic Dvice)等が知られている。
【0003】
上記したプログラマブル論理回路のプログラミングは、通常図6に示す手順で行われる。
すなわち、まず、ユーザがプログラマブル論理回路に目的とする動作を行わせるためのソースプログラム11を作成し、該ソースプログラム11を論理合成手段(コンパイル手段)により論理合成し、目的とする回路の接続関係を示すネットリスト12を得る。
【0004】
次いで、上記ネットリスト12を配置配線手段により配置配線しプログラマブル論理回路上における接続関係を示すコンフィグレーション・データ13を作成する。
そして、上記コンフィグレーション・データ13をプログラマブル論理回路にロードし、目的とする動作を行うプログラマブル論理回路を得る。
【0005】
近年、上記したプログラマブル論理回路をコンピュータ・システム中に設け、従来ソフトウェアで行っていた処理をハードウェアで処理させることにより高速な処理を実現したコンピュータ・システムが利用されるようになってきた。
図7は上記したプログラマブル論理回路を組み込んだ従来のコンピュータ・システムの概略構成を示す図である。
【0006】
同図において、20はコンピュータ・システム、21はMPU、22はROM、23はRAM、24は外部記憶装置、25は入出力装置/その他、26はプログラマブル論理回路である。
上記したコンピュータ・システム20において、プログラマブル論理回路26へのプログラミングは、図8に示すように行われている。
【0007】
すなわち、ワークステーションのような高速のコンピュータ・システム31でプログラマブル論理回路26の論理合成/配置/配線を行ってファイル32またはROM33にコンフィグレーション・データを書き込み、ターゲットとなるコンピュータ・システム20にデータ転送し、プログラマブル論理回路26にデータをロードする。
【0008】
【発明が解決しようとする課題】
近年、MPUの高速化とメモリ/外部論理回路の大容量化により、ワークステーション等を使用することなく、プログラマブル論理回路を設けたコンピュータ・システム自身でプログラマブル論理回路の論理合成/配置/配線/データのロードが可能になってきた。すなわち、図9に示すように、プログラマブル論理回路の論理合成/配置/配線を行う機能、データのロード機能を、コンピュータ・システムに付加し、ユーザが自コンピュータ・システムを使用して、内蔵するプログラマブル論理回路のプログラミングを可能としたものである。
【0009】
ところで、プログラマブル論理回路は内部論理が変更できると同時に、プログラマブル論理回路の外部端子の入出力状態も変更することができる。このことは、もし、プログラマブル論理回路のプログラミングに誤りがあると、プログラマブル論理回路の外部端子でバスファイト(バスの衝突)が発生する可能性があることを意味する。
【0010】
このため、図9に示すように、自コンピュータ・システムでプログラマブル論理回路の論理合成/配置/配線/データのロードを行うに際し、ユーザのプログラミングに誤りがあるとバスファイトによりハードウェアを破損させる恐れがある。
また、上記プログラミングは通常プログラマブル論理回路の物理的な端子名を使用して行われるので、ユーザは上記物理的な端子を意識してプログラミングしなければならず、プログラミングの誤りが生じやすい。
【0011】
さらに、コンピュータ・システム内にプログラマブル論理回路を設けた場合、プログラマブル論理回路の端子の一部はMPUバス(アドレス/データ/コントロールバス等)に接続されることが多く、これらMPUインタフェースにかかわるプログラマブル論理回路の端子の属性/制御方法も通常決まっているが、従来においては、これらMPUインタフェースにかかわる部分についてもユーザがプログラミングする必要があり、プログラムの作成が煩雑でプログラムミスが発生しやすかった。
【0012】
本発明は上記した従来技術の問題点を考慮してなされたものであって、本発明の第1の目的は、バスファイトによるハードウェアの破壊を事前にチェックすることができるプログラマブル論理回路を使用したコンピュータ・システムを提供することである。
本発明の第2の目的は、プログラミングが容易でミスの発生する可能性を減少させることができ、プログラミングを効率的に行うことができるプログラマブル論理回路を使用したコンピュータ・システムを提供することである。
【0013】
【課題を解決するための手段】
図1は本発明の原理図である。同図において、1はプログラマブル論理回路3をプログラミングするためにユーザが作成するソースプログラム、2はプログラマブル論理回路3を有するコンピュータ・システム、4はソースプログラムを論理合成しネットリストを生成する論理合成手段、5はネットリストを配置配線し、コンフィグレーション・データを生成する配置/配線手段、6はコンフィグレーション・データをプログラマブル論理回路6にロードするロード手段、7はプログラマブル論理回路の物理番号とそれに対応した端子名称(ニックネーム)を記憶した記憶手段、8は機能マクロ/サブルーチンを記憶した記憶手段、9はプログラマブル論理回路の端子番号と、その属性/条件を記憶した記憶手段である。
【0015】
本発明の請求項1の発明は、プログラマブル論理回路と、少なくともプログラマブル論理回路のソースプログラムを論理合成する論理合成手段とを備えたコンピュータ・システムにおいて、上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、また、上記論理合成手段に、ソースプログラム中の入出力端子情報をチェックする端子チェック手段を設け、上記端子チェック手段は、上記論理合成手段によりソースプログラムを論理合成する際、上記記憶手段に記憶された情報と、ソースプログラム中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてソースプログラムの動作を解析し、条件が一致しているか否かをチェックするように構成したものである。
【0017】
本発明の請求項2の発明は、プログラマブル論理回路と、少なくともネットリストを配置/配線しコンフィグレーションデータを生成する配置/配線手段とを備えたコンピュータ・システムにおいて、上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、また、上記配置/配線手段にネットリスト中の入出力端子情報をチェックする端子チェック手段を設け、上記端子チェック手段は、配置/配線手段によりネットリストを生成する際、上記記憶手段に記憶された情報と、ネットリスト中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてネットリストの動作を解析し、条件が一致しているか否かをチェックするように構成したものである。
【0019】
本発明の請求項3の発明は、プログラマブル論理回路と、少なくともコンフィグレーションデータをプログラム論理回路にロードするロード手段とを備えたコンピュータ・システムにおいて、上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、また、上記ロード手段に、コンフィグレーションデータ中の入出力端子情報をチェックする端子チェック手段を設け、上記端子チェック手段は、上記ロード手段によりコンフィグレーションデータをプログラマブル論理回路にロードする際、上記記憶手段に記憶された情報と、コンフィグレーションデータ中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてコンフィグレーションデータの動作を解析し、条件が一致しているか否かをチェックするように構成したものである。
【0020】
本発明の請求項4の発明は、請求項1の発明において、プログラマブル論理回路の物理的端子番号と、そのニックネームを記憶した記憶手段を設け、また、上記論理合成手段に、ソースプログラム中に記述された入出力端子のニックネームを物理的端子番号に置き換える端子名称置き換え手段を設け、端子名称置き換え手段は、上記論理合成手段によりソースプログラムを論理合成する際、ソースプログラム中に上記ニックネームが記述されているとき、上記記憶手段から、上記ニックネームに対応した物理的端子番号を読み出し、上記ニックネームを物理的端子番号に置換するように構成したものである。
【0021】
本発明の請求項5の発明は、請求項4の発明において、プログラマブル論理回路の端子の内、外部に接続される端子のみにニックネームを付け、上記外部に接続される端子以外の端子はソースプログラムに制約を付けユーザが制御できないようにした構成したものである。
本発明の請求項6の発明は、請求項1の発明おいて、上記コンピュータ・システムに、該コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御方法を定義する機能マクロ/サブルーチンを記憶させた記憶手段を設け、また、上記論合成手段に機能マクロ割り付け手段を設け、上記機能マクロ割り付け手段は、上記論理合成手段によりソースプログラムを論理合成する際、ソースプログラム中に機能マクロ/サブルーチン名が記述されているとき、上記記憶手段から該機能マクロ/サブルーチンを呼び出し、機能マクロ/サブルーチンをネットリスト中に割り付けるように構成したものである。
【0022】
本発明の請求項7の発明は、請求項2の発明において、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御方法を定義する機能マクロ/サブルーチンを記憶させた記憶手段を設け、また、上記配置/配線手段に機能マクロ割り付け手段を設け、上記機能マクロ割り付け手段は、上記配置/配線手段により、ネットリストからコンフィグレーションデータを生成する際、ネットリスト中に機能マクロ/サブルーチン名が記述されているとき、上記機能設定マクロデータベースから該機能マクロ/サブルーチンを呼び出し、コンフィグレーションデータ中に機能マクロ/サブルーチンを割り付けるように構成したものである。
【0023】
【作用】
図1において、本発明は次のようにして前記課題を解決する。
(1) コンピュータ・システム2に設けられた論理合成手段4はユーザが作成したソースプログラムを論理合成してネットリストを生成する。その際、論理合成手段4に設けられた端子チェック手段は、ソースプログラム1中の端子情報と記憶手段9に記憶された入出力情報とを比較し、下記のようにしてソースプログラム1中の端子情報をチェックする。
▲1▼ 記憶手段9にプログラマブル論理回路の端子の内、使用可能な入出力端子情報を記憶させ、ソースプログラム中に記述された出力端子が出力不可能な端子に配置されていなかをチェックする。
▲2▼ 記憶手段9にプログラマブル論理回路の端子の属性(入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報)を記憶させ、ソースプログラム中に記述された端子情報との一致を検出する。
▲3▼ 記憶手段9にプログラマブル論理回路の端子の属性(条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報)を記憶させ、ソースプログラム中に記述された端子情報との一致を検出するとともに、条件付きで入力出力が可能な端子についてソースプログラム、ネットリスト、もしくは、コンフィグレーションデータの動作を解析し、条件が一致しているか否かをチェックする。
【0024】
また、上記端子チェック手段を、図1に示すように、配置/配線手段5もしくはコンフィグレーションデータのロード手段6に設け、ネットリスト/コンフィグレーションデータ中の入出力端子情報と記憶手段9に記憶された入出力端子情報とを比較し、両者の一致を検出することもできる。
本発明の請求項1〜請求項3の発明においては、上記のように、記憶手段9にプログラマブル論理回路3の入出力端子情報を記憶させ、ソースプログラム、ネットリスト、および/またはコンフィグレーションデータ中の端子情報と比較しているので、バスファイトによるハードウェアの破壊を事前にチェックすることができる。
(2) 記憶手段7にプログラマブル論理回路3の物理的な端子番号と端子名称(例えば、Port1,Port2,…等のニックネーム)を記憶させ、また、論理合成手段4に端子名称置き換え手段を設ける。
【0025】
ユーザが、上記ニックネームを用いてソースプログラムを作成し、論理合成手段4でソースプログラムを論理合成すると、上記端子名称置き換え手段は、記憶手段7を参照して、ソースプログラム中で使用されるニックネームをプログラマブル論理回路3の物理的な端子名に置き換える。
本発明の請求項4、請求項5の発明においては、上記のように、ニックネームを用いてソースプログラムを作成することができ、ユーザはプログラマブル論理回路の物理的な端子番号を意識せずにプログラミングすることができ、プログラミングを容易化し、プログラムミスを減少させることができる。
【0026】
また、請求項5の発明のように、ニックネームが付された外部に接続される端子以外の端子はソースプログラムに制約を付けユーザが制御できないようにすることにより、一層プログラムミスを減少させることができ、また、バスファイトによるハードウェアの破壊を防止することが可能となる。
(3) 記憶手段8に、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御方法を定義する機能マクロ/サブルーチンを記憶させ、また、上記論合成手段に機能マクロ割り付け手段を設ける。そして、ユーザがソースプログラムを作成する際、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路3の端子の属性、その制御については、上記機能マクロを使用してプログラミングする。
【0027】
論理合成手段4において上記ソースプログラムを論理合成する際、機能設定マクロ割り付け手段は、ソースプログラム中に機能マクロ/サブルーチン名が記述されているとき、記憶手段8に記憶された機能マクロ/サブルーチンを呼び出し、ネットリスト中に割り付ける。
また、上記チェック手段を配置/配線手段5に設け、記憶手段8に記憶された機能マクロ/サブルーチンをコンフィグレーションデータ中に割り付けることもできる。
【0028】
本発明の請求項6、請求項7の発明においては、上記のように、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御については、機能マクロを用いてプログラミングを行うことができ、プログラミングを容易化し操作性を向上させることができ、プログラムミスを減少させることができる。
【0029】
【実施例】
本発明は前記図7に示したプログラマブル論理回路を内蔵したハードウェア構成のコンピュータ・システムを前提とし、該コンピュータ・システムに、前記図9に示したようにプログラマブル論理回路のプログラムを論理合成する手段、ネットリストを配置/配線する手段、および/または、コンフィグレーションデータをロードする手段を付加したコンピュータ・システムを対象としたものであり、以下、プログラマブル論理回路としてFPGAを用いた場合について本発明の実施例を説明する。
【0030】
図2は本発明の実施例を示す図であり、同図はFPGA(Field Programmable Gate Array 、以下FPGAと略記する)を使用したコンピュータ・システムににおいて、FPGAをプログラミングするために設けられたプログラムおよびFPGAをプログラミングする際参照されるデータベースを示している。
以下、同図を参照しながら本発明の実施例について説明する。
(1)第1の実施例:プログラマブル論理回路をプログラミングするソースプログラム中の端子情報のチェック
図2に示すように、FPGAをプログラミングするには、ユーザが作成したソースプログラム11を論理合成プログラムにより論理合成してネットリスト12を生成し、ネットリスト12からFPGA配置/配線プログラムによりコンフィグレーションデータを得る。そして、コンフィグレーションデータ13をコンフィグレーションデータ・ロードプログラム(以下ロードプログラムと略記する)によりFPGA26にロードする。
【0031】
上記のようなプログラマブル論理回路のプログラミングにおいて、本実施例では、図2に示すように、論理合成プログラム、FPGA配置/配線プログラム、および/または、ロードプログラム中に「端子チェックプログラム」を設けるとともに、FPGAの物理的な端子番号とその属性(属性と条件)を記述した入出力端子情報データベース33を設ける。
【0032】
図3は上記入出力端子情報データベース33に記述されたデータの一例を示す図であり、同図(a)はデータベース33に端子の物理的な番号とその属性を記述した場合を示し、(b)は端子の物理的な番号とその属性に加え、該端子がそれぞれ、該属性を持つための条件を記述した場合を示している。なお、図3はデータベースの内容の一例を示しており、端子の物理的な番号、属性、条件等の記述方法は任意であり様々なフォーマットとすることができる。
【0033】
図4は上記端子チェックプログラムの動作を説明する図であり、端子チェックプログラムは、入出力端子情報データベース33の記述内容が図3(a)(b)の場合において、次のようにしてソースプログラム/ネットリスト/コンフィグレーションデータにおける端子の割り付けをチェックする。
▲1▼入出力端子情報データベースの記述内容が図3(a)の場合
論理合成プログラム中に設けられた端子チェックプログラムは、図4に示すように、ソースプログラムを論理合成する際、入出力端子情報データベース33の記述内容とソースプログラム中の端子情報41を比較し、ソースプログラム中に記述された端子の属性が上記データベース33に記述された属性と一致しているかをチェックし、不一致の場合にはユーザに通知する。
【0034】
例えば、ソースプログラム中に記述された端子2がOUTの属性を示しているのに対し、上記データベース33に記述された上記端子2の属性がINの場合には、プログラミング・ミスであると考えられるので、例えば、不一致の端子番号等をリストとして表示する。
また、FPGA配置/配線プログラム中に設けられた端子チェックプログラムは、ネットリストからコンフィグレーションデータを生成する際、上記と同様に、ネットリストに記述された端子の属性41と、入出力端子情報データベース33中に記述された端子の属性を比較し、不一致をチェックする。
【0035】
同様に、ロードプログラム中に設けられた端子チェックプログラムも、コンフィグレーションデータをFPGAにロードする際、コンフィグレーションデータの端子の属性と、入出力端子情報データベース33中に記述された端子の属性を比較し、不一致をチェックする。
▲2▼入出力端子情報データベースの記述内容が図3(b)の場合
この場合には、上記▲1▼のようにソースプログラム、ネットリスト、コンフィグレーションデータ中の端子情報と入出力端子情報データベース33の記述内容を単に比較するだけでなく、ソースプログラム、ネットリスト、コンフィグレーションデータ中の動作記述部を解析する必要がある。
【0036】
そこで、図4に示すように、論理合成プログラム中に設けられた端子チェックプログラムは、ソースプログラムを論理合成する際、ソースプログラム中の端子情報41を調べるとともに動作記述部42を解析し、端子の属性とその条件を調べる。そして、ソースプログラム中に記述された端子の属性および条件が上記データベース33に記述された属性および条件と一致しているかをチェックし、不一致の場合には、例えば、端子番号/条件をユーザに通知する。
【0037】
例えば、ソースプログラム中に記述された端子4が端子2番が0のときOUT端子であるのに対し、上記データベース33に記述された端子4が端子2,3番が共に0のときOUT端子である場合には、プログラミング・ミスであると考えられるので、不一致な端子番号/条件等をリストとして表示する。
また、FPGA配置/配線プログラム、ロードプログラム中に設けられた端子チェックプログラムも同様に、ネットリスト、コンフィグレーションデータの端子の属性/条件と、入出力端子情報データベース33中に記述された端子の属性/条件を比較し不一致をチェックする。
【0038】
上記のように、動作記述部を解析することにより、上記▲1▼と比べチェックプログラムは比較的複雑になるが、チェック完全なものとすることができる。特に、データバスや割り込みアクノレッジ信号のように、出力端子または入力端子に出力条件がある場合には、動作記述部を解析することによりチェックをより完全なものとすることができる。
【0039】
以上のように、本実施例においては、プログラマブル論理回路を使用したコンピュータ・システムに入出力端子情報データベースを設けるとともに、、論理合成プログラム、FPGA配置/配線プログラム、および/またはロードプログラムに端子チェックプログラムを設け、ソースプログラム、ネットリスト、および/またはコンフィグレーションデータの端子情報をチェックしているので、プログラムミス等により生ずるバスファイトによるハードウェアの破壊を事前にチェックすることができる。
【0040】
なお、図2では、端子チェックプログラムを、論理合成プログラム、FPGA配置/配線プログラム、ロードプログラムのそれぞれに設けた場合を説明したが、端子チェックは上記プログラム中のどれかで行えばよい。
また、上記実施例では、入出力端子情報データベースに物理的な端子番号とその属性/条件を記述する場合について説明したが、例えば、上記データベースに、FPGAの端子の内、出力端子として使用不可能な端子番号を記述しておき、端子チェックプログラムにより、出力不可能な端子に出力端子が配置されているかを調べても、バスファイトによるハードウェアの損傷を事前にチェックすることができる。
【0041】
さらに、上記実施例においては、コンピュータ・システムに論理合成手段、配置/配線手段、および、コンフィグレーションデータをロードする手段を共に設けた場合について説明したが、本発明は上記実施例に限定されるものではなく、例えば、配置/配線手段と、コンフィグレーションデータのロード手段を設けたコンピュータ・システム、あるいは、コンフィグレーションデータのロード手段のみを設けたコンピュータ・システムにも適用することができる。
(2)第2の実施例:プログラマブル論理回路の端子への端子名(ニックネーム)の付与
前記したように、プログラマブル論理回路へのプログラミングは物理的な端子番号を用いて記述しなければならない。
【0042】
例えば、図5(a)に示すように、FPGA43の端子1−16をアドレス端子に、端子17−32をデータ端子に、端子35−39をコントロール用の端子に、さらに端子50−mを外部接続用の端子に割り付ける場合、ソースプログラム中の端子番号は上記物理的な番号を用いる必要がある。このため、ユーザがFPGAへのプログラミングする際、端子の入出力の条件を誤るとバスファイトを起こす可能性がある。
【0043】
そこで、本実施例においては、FPGA43の端子に端子名(以下ニックネームという)を付け、上記ニックネームでフログラミングできるようにする。
例えば、図5(b)に示すようにFPGA43の端子1−16にアドレス端子を割り付ける場合にはA0−15の端子名を付け、同様に、端子17−32をデータ端子を割り付ける場合にはD0−15の端子名を付け、端子35−39をコントロール用の端子に割り付ける場合には、その機能に応じてRD/WR/INT等の端子名を付け、さらに端子50−mを外部接続用の端子に割り付ける場合にはPort1〜Portnのニックネームを付け、このニックネームでFPGAのプログラミングができるようにする。
【0044】
このため、本実施例においては、前記した図2に示すように、論理合成プログラム中に「端子名称置き換えプログラム」を設けるとともに、物理的な端子番号と上記ニックネームを対応付けるための端子名データベース31を設ける。
そして、ユーザが上記端子名データベース31に格納されたニックネームを用いてソースプログラム11を作成すると、論理合成プログラム中の端子名称置き換えプログラムは、端子名データベース31を参照してソースプログラム中のニックネームをFPGAの物理的な端子番号に置き換える。
【0045】
これにより、ユーザは物理的な端子番号を用いずにプログラムミングを行うことができ、プログラミングの容易性、操作性を向上させることができ、これにともないプログラムミスを減少させることができる。
なお、プログラマブル論理回路の端子へのニックネームを付与する場合、ニックネームはコンピュータ・システム外部に接続されるFPGAの端子のみに付与し、外部に接続される端子以外の端子はユーザが制御できないようにソースプログラムに制約を設ければ、一層、プログラグミスを減少させ、バスファイト等によるハードウェアの破損を防止することができる。
【0046】
また、上記実施例では、論理合成プログラム中に「端子名称置き換えプログラム」を設けた場合を説明したが、同様に、「端子名称置き換えプログラム」をFPGA配置/配線プログラム中に設け、ソースプログラム中に記述されたニックネームを用いて生成されたネットリストからコンフィグレーションデータを作成する際、前記端子名データベース31を参照してネットリスト上のニックネームをFPGAの物理的な端子番号に置き換えてもよい。
(3)第3の実施例:予め決まっている端子の属性/制御方法のマクロ化
プログラマブル論理回路を使用した場合、前記した図5に示したように、FPGAの端子の一部は、MPUバス(アドレス/データ/コントロールバス等)に接続されることが多く、また、この場合におけるFPGAの端子の属性、MPUからの制御方法も決まっていることが多い。
【0047】
そこで、本実施例においては、予め、「データバス」、「アドレスバス」、DMA制御」「割り込み制御」等のMPUバスに接続される端子の機能仕様を決めてコンパイル済みのデータを作成しておき、サブルーチン/機能マクロ等の形でデータベースに格納しておく。そして、プログラミング時に上記サブルーチン/機能マクロを呼び出し、制御方法が決まっている部分については、上記サブルーチン/機能マクロによりFPGAのプログラミングを行う。
【0048】
このため、本実施例においては、上記したサブルーチン/機能マクロのコンパイル済みデータを、図2に示す機能設定マクロデータベース32に格納しておくとともに、論理合成プログラムおよび/またはFPGA配置/配線プログラム中に「機能設定マクロ割り付けプログラム」を設ける。
そして、例えば、「データバス」、「DMAコントローラ」、「インターバルタイマ」等、予め機能設定マクロデータベース32に用意されている機能あるいは端子属性を用いてFPGAをプログラムする場合、ユーザはソースプログラムを作成する際、ソースプログラム中に該当するサブルーチン/機能マクロ名を記述しておく。
【0049】
論理合成プログラムにおいて上記ソースプログラムをコンパイルする際、機能設定マクロ割り付けプログラムは、ソースプログラム中に記述されたサブルーチン/機能マクロを機能設定マクロデータベース32から呼び出してコンパイラ中に組み込み、上記機能、端子属性を割り付ける。
これによりユーザは、機能設定マクロデータベース32に用意されている機能/端子属性については、サブルーチン/機能マクロ名を記述するだけでプログラミングを行うことができ、プログラミングを容易化し、操作性を向上させることができる。また、これにともないプログラミングミスを減少させることが可能となる。
【0050】
上記説明では、機能設定マクロ割り付けプログラムを論理合成プログラム中に設けた場合について説明したが、図2に示すように、機能設定割り付けプログラムをFPGA配置/配線プログラム中に設けてもよい。
この場合、論理合成プログラムは、ソースプログラム中にサブルーチン/機能マクロ名が記述されているとき、その部分についてコンパイルを行わず、サブルーチン/機能マクロ名を付したブラックボックスとしてネットリストを生成する。そして、FPGA配置/配線プログラムにおいて配置/配線を行う際、機能設定割り付けプログラムは、機能設定マクロデータベース32からソースプログラム中に記述されたサブルーチン/機能マクロを呼び出してコンフィグレーションデータ中に割り付け、該当する機能を達成するコンフィグレーションデータを生成する。
【0051】
なお、上記第3の実施例においては、コンピュータ・システムに、論理合成手段、配置/配線手段、および、コンフィグレーションデータをロードする手段を設けた場合について説明したが、本発明は上記実施例に限定されるものではなく、例えば、配置/配線手段と、コンフィグレーションデータのロード手段のみを設けたコンピュータ・システムにも適用することができる。
【0052】
【発明の効果】
以上説明したように本発明においては以下の効果を得ることができる。
(1)記憶手段にプログラマブル論理回路の入出力端子情報を記憶させ、ソースプログラム、ネットリスト、および/またはコンフィグレーションデータ中の端子情報と比較することにより端子情報をチェックしているので、プログラムミス等により生ずるバスファイトによるハードウェアの破壊を事前にチェックすることができる。
(2) 記憶手段にプログラマブル論理回路の物理的な端子番号とニックネームを記憶させ、また、論理合成手段に端子名称置き換え手段を設けているので、プログラマブル論理回路の物理的な端子番号を意識せずにプログラミングすることができ、プログラミングを容易化し、プログラムミスを減少させることができる。このため、プログラミングを効率化することができ、生産性を向上させることが可能となる。
【0053】
また、外部に接続される端子以外の端子はソースプログラムに制約を付けユーザが制御できないようにすることにより、一層プログラムミスを減少させることができる。
(3) 記憶手段に、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御方法を定義する機能マクロ/サブルーチンを記憶させ、また、論合成手段もしくは配置/配線手段に機能マクロ割り付け手段を設けているので、コンピュータ・システムの内部バスに接続されるプログラマブル論理回路の端子の属性および/または該端子の制御について、機能マクロを用いてプログラミングを行うことができ、プログラミングを容易化し操作性を向上させることができる。このため、プログラミングを効率化することができ、生産性を向上させることが可能となる。
【図面の簡単な説明】
【図1】本発明の原理図である。
【図2】本発明の実施例を示す図である。
【図3】入出力端子情報データベースに記述されるデータの一例を示す図である。
【図4】端子チェックプログラムの動作を説明する図である。
【図5】ニックネームを基にプログラミング可能とした実施例を説明する図である。
【図6】プログラマブル論理回路のプログラミングの手順を示す図である。
【図7】プログラマブル論理回路を用いたシステムの概略構成を示す図である。
【図8】従来のデータ作成/ロード方法(1)を示す図である。
【図9】従来のデータ作成/ロード方法(2)を示す図である。
【符号の説明】
1,11 ソースプログラム
2 コンピュータ・システム
3 プログラマブル論理回路
4 論理合成手段
5 配置/配線手段
6 ロード手段
7,8,9 記憶手段
12 ネットリスト
13 コンフィグレーションデータ
21,51 MPU
22 ROM
23 RAM
24 外部記憶装置
25 I/Oその他
26,53 FPGA
31 端子名称データベース
32 機能設定マクロ・データベース
33 入出力端子情報データベース
41 端子情報
42 動作記述部
52 メモリ[0001]
[Industrial application fields]
The present invention relates to a computer system using a programmable logic circuit. More specifically, the computer system itself compiles a program for a programmable logic circuit, wiring arrangement means, or configuration data for a programmable logic circuit. The present invention relates to a computer system having a loading means for changing hardware operations by a user.
[0002]
[Prior art]
As programmable logic circuits that can be programmed by the user, there are known FPGA (Field Programmable Gate Array), FPLA (Field Programmable Logic Array), FPLD (Field Programmable Logic Dvice), CPLD (Complex Programmable Logic Dvice) and the like.
[0003]
The programming of the above-described programmable logic circuit is normally performed according to the procedure shown in FIG.
That is, first, a user creates a source program 11 for causing a programmable logic circuit to perform a desired operation, logically synthesizes the source program 11 by logic synthesis means (compilation means), and connection relationships of target circuits Is obtained.
[0004]
Next, the
Then, the
[0005]
2. Description of the Related Art In recent years, computer systems that provide high-speed processing by providing the above-described programmable logic circuit in a computer system and processing the processing conventionally performed by software by hardware have come to be used.
FIG. 7 is a diagram showing a schematic configuration of a conventional computer system incorporating the above-described programmable logic circuit.
[0006]
In the figure, 20 is a computer system, 21 is an MPU, 22 is a ROM, 23 is a RAM, 24 is an external storage device, 25 is an input / output device / others, and 26 is a programmable logic circuit.
In the
[0007]
That is, logic synthesis / placement / wiring of the
[0008]
[Problems to be solved by the invention]
In recent years, with the increase in MPU speed and memory / external logic circuit capacity, the computer system itself provided with the programmable logic circuit without using a workstation or the like, the logic synthesis / placement / wiring / data of the programmable logic circuit itself Can be loaded. That is, as shown in FIG. 9, a function for performing logic synthesis / placement / wiring of a programmable logic circuit and a data loading function are added to a computer system, and the user can use the own computer system to incorporate it. The logic circuit can be programmed.
[0009]
By the way, the programmable logic circuit can change the internal logic, and can also change the input / output state of the external terminal of the programmable logic circuit. This means that if there is an error in programming of the programmable logic circuit, a bus fight (bus collision) may occur at the external terminal of the programmable logic circuit.
[0010]
For this reason, as shown in FIG. 9, when logic synthesis / placement / wiring / data loading of a programmable logic circuit is performed in its own computer system, hardware may be damaged by bus fight if there is an error in user programming. There is.
In addition, since the programming is usually performed using the physical terminal names of the programmable logic circuit, the user must be aware of the physical terminals, and programming errors are likely to occur.
[0011]
Further, when a programmable logic circuit is provided in a computer system, a part of the terminals of the programmable logic circuit is often connected to an MPU bus (address / data / control bus etc.), and the programmable logic related to these MPU interfaces. The attribute / control method of the terminal of the circuit is usually determined. Conventionally, however, it is necessary for the user to program the part related to the MPU interface, and the program creation is complicated and a program error is likely to occur.
[0012]
The present invention has been made in consideration of the above-mentioned problems of the prior art, and a first object of the present invention is to use a programmable logic circuit capable of checking in advance hardware destruction due to bus fight. To provide a computer system.
A second object of the present invention is to provide a computer system using a programmable logic circuit that is easy to program, can reduce the possibility of mistakes, and can perform programming efficiently. .
[0013]
[Means for Solving the Problems]
FIG. 1 shows the principle of the present invention. In the figure, 1 is a source program created by a user to program the
[0015]
Claims of the invention 1 A computer system comprising a programmable logic circuit and logic synthesis means for synthesizing at least a source program of the programmable logic circuit, the memory storing input / output terminal information of the programmable logic circuit in the computer system In this storage means, as input / output terminal information of the programmable logic circuit, a terminal capable of input / output with a condition, a terminal capable of input / output without a condition, an input-only terminal, or an output-only terminal are identified. Information is stored, and the logic synthesis means is provided with a terminal check means for checking input / output terminal information in the source program, and the terminal check means performs the logic synthesis of the source program by the logic synthesis means. Information stored in the storage means and input in the source program It is configured to check the inconsistency between the two by comparing the input terminal information, analyze the operation of the source program for the terminals that can be input and output with conditions, and check whether the conditions match. is there.
[0017]
Claims of the
[0019]
Claims of the invention 3 A computer system comprising a programmable logic circuit and load means for loading at least configuration data into a program logic circuit, wherein the storage means stores input / output terminal information of the programmable logic circuit in the computer system. In this storage means, as information on the input / output terminals of the programmable logic circuit, information for identifying terminals that can be input / output with conditions, terminals that can be input / output without conditions, input-only terminals, or output-only terminals The load means is provided with a terminal check means for checking input / output terminal information in the configuration data. The terminal check means loads the configuration data into the programmable logic circuit by the load means. , In the storage means Compare the stored information with the input / output terminal information in the configuration data to check for inconsistencies between them, and analyze the operation of the configuration data for the terminals that can be input / output conditionally. It is configured to check whether or not.
[0020]
Claims of the
[0021]
Claims of the
Claims of the invention 6 The invention of In the invention of
[0022]
Claims of the
[0023]
[Action]
In FIG. 1, the present invention solves the above-described problem as follows.
(1) The logic synthesis means 4 provided in the
{Circle around (1)} Usable input / output terminal information is stored in the storage means 9 among the terminals of the programmable logic circuit, and it is checked whether the output terminal described in the source program is arranged at a terminal that cannot be output.
(2) The attribute of the programmable logic circuit terminal (information that can be input / output, input-only terminal, or output-only terminal) is stored in the storage means 9 and the terminal information described in the source program is stored. Find a match.
(3) Stores the attributes of programmable logic circuit terminals (terminals that can be input / output with conditions, terminals that can be input / output without conditions, input-only terminals, or output-only terminals) in the storage means 9 And detect the match with the pin information described in the source program, and analyze the operation of the source program, netlist, or configuration data for the pins that can be input and output with conditions, and the conditions match. Check if it is.
[0024]
Further, as shown in FIG. 1, the terminal check means is provided in the arrangement / wiring means 5 or the configuration data load means 6 and is stored in the input / output terminal information in the netlist / configuration data and the storage means 9. It is also possible to compare the input / output terminal information and detect the coincidence of both.
(2) The storage means 7 stores the physical terminal numbers and terminal names (for example, nicknames such as Port1, Port2,...) Of the
[0025]
When the user creates a source program using the nickname and logically synthesizes the source program by the
Claims of the
[0026]
(3) The storage means 8 stores function macros / subroutines that define the attributes and / or control methods of the terminals of the programmable logic circuit connected to the internal bus of the computer system. Is provided with function macro allocation means. When the user creates the source program, the terminal macro of the
[0027]
When the logic synthesis means 4 logically synthesizes the source program, the function setting macro allocation means calls the function macro / subroutine stored in the storage means 8 when the function macro / subroutine name is described in the source program. Assign in the netlist.
Further, the checking means can be provided in the arrangement / wiring means 5 and the function macro / subroutine stored in the storage means 8 can be assigned in the configuration data.
[0028]
Claims of the invention 6.
[0029]
【Example】
The present invention presupposes a computer system having a hardware configuration incorporating the programmable logic circuit shown in FIG. 7, and means for synthesizing the program of the programmable logic circuit in the computer system as shown in FIG. The present invention is intended for a computer system to which means for arranging / wiring a netlist and / or means for loading configuration data is added. Hereinafter, the case where an FPGA is used as a programmable logic circuit is described. Examples will be described.
[0030]
FIG. 2 is a diagram showing an embodiment of the present invention, which shows a program provided for programming an FPGA in a computer system using an FPGA (Field Programmable Gate Array, hereinafter abbreviated as FPGA), and Fig. 3 shows a database referenced when programming an FPGA.
Hereinafter, embodiments of the present invention will be described with reference to FIG.
(1) First embodiment: Checking terminal information in a source program for programming a programmable logic circuit
As shown in FIG. 2, in order to program an FPGA, a source program 11 created by a user is logically synthesized by a logic synthesis program to generate a
[0031]
In the programming of the programmable logic circuit as described above, in this embodiment, as shown in FIG. 2, a “terminal check program” is provided in the logic synthesis program, the FPGA placement / wiring program, and / or the load program, An input / output
[0032]
FIG. 3 is a diagram showing an example of data described in the input / output
[0033]
FIG. 4 is a diagram for explaining the operation of the terminal check program. The terminal check program is a source program in the following manner when the contents of the input / output
(1) When the description content of the input / output terminal information database is as shown in FIG.
As shown in FIG. 4, the terminal check program provided in the logic synthesis program compares the description contents of the input / output
[0034]
For example, when the
Further, the terminal check program provided in the FPGA placement / wiring program, when generating the configuration data from the net list, similarly to the above, the terminal attribute 41 described in the net list and the input / output terminal information database The terminal attributes described in 33 are compared, and a mismatch is checked.
[0035]
Similarly, the terminal check program provided in the load program also compares the terminal attributes of the configuration data with the terminal attributes described in the input / output
(2) When the description content of the input / output terminal information database is as shown in FIG.
In this case, as described in (1) above, the terminal information in the source program, netlist, and configuration data is not simply compared with the description content of the input / output
[0036]
Therefore, as shown in FIG. 4, the terminal check program provided in the logic synthesis program examines the terminal information 41 in the source program and analyzes the
[0037]
For example, terminal 4 described in the source program is an OUT terminal when terminal 2 is 0, whereas
Similarly, the terminal check program provided in the FPGA placement / wiring program and the load program also has the terminal attributes / conditions of the netlist and configuration data, and the terminal attributes described in the input / output
[0038]
As described above, by analyzing the behavior description part, the check program becomes relatively complicated as compared with the above (1), but the check program can be made complete. In particular, when there is an output condition at the output terminal or the input terminal, such as a data bus or an interrupt acknowledge signal, the check can be made more complete by analyzing the operation description part.
[0039]
As described above, in this embodiment, an input / output terminal information database is provided in a computer system using a programmable logic circuit, and a terminal check program is included in a logic synthesis program, FPGA placement / wiring program, and / or load program. Since the terminal information of the source program, netlist, and / or configuration data is checked, it is possible to check in advance whether the hardware is destroyed due to a bus fight caused by a program mistake or the like.
[0040]
In FIG. 2, the case where the terminal check program is provided in each of the logic synthesis program, the FPGA placement / wiring program, and the load program has been described. However, the terminal check may be performed in any of the above programs.
In the above-described embodiment, the case has been described in which the physical terminal numbers and their attributes / conditions are described in the input / output terminal information database. However, for example, the database cannot be used as an output terminal among the FPGA terminals. Even if a terminal number is described and whether or not an output terminal is arranged at a terminal that cannot be output is checked by a terminal check program, hardware damage due to bus fight can be checked in advance.
[0041]
Further, in the above-described embodiment, the case where the logic synthesis unit, the placement / wiring unit, and the unit for loading the configuration data are provided in the computer system has been described. However, the present invention is limited to the above-described embodiment. For example, the present invention can be applied to a computer system provided with arrangement / wiring means and configuration data loading means, or a computer system provided with only configuration data loading means.
(2) Second embodiment: Assigning a terminal name (nickname) to a terminal of a programmable logic circuit
As described above, programming to the programmable logic circuit must be described using physical terminal numbers.
[0042]
For example, as shown in FIG. 5A, terminal 1-16 of FPGA 43 is an address terminal, terminal 17-32 is a data terminal, terminal 35-39 is a control terminal, and terminal 50-m is external. When allocating to a connection terminal, the physical number must be used as the terminal number in the source program. For this reason, when the user performs programming to the FPGA, a bus fight may occur if the input / output conditions of the terminals are incorrect.
[0043]
Therefore, in the present embodiment, a terminal name (hereinafter referred to as a nickname) is assigned to the terminal of the FPGA 43 so that programming can be performed using the nickname.
For example, as shown in FIG. 5B, when an address terminal is assigned to the terminal 1-16 of the FPGA 43, the terminal name A0-15 is assigned. Similarly, when the terminal 17-32 is assigned a data terminal, D0 is assigned. When assigning a terminal name of -15 and assigning terminals 35-39 to control terminals, a terminal name such as RD / WR / INT is assigned according to the function, and terminal 50-m is used for external connection. When allocating to terminals, nicknames of Port1 to Portn are assigned so that the FPGA can be programmed with these nicknames.
[0044]
For this reason, in this embodiment, as shown in FIG. 2 described above, a “terminal name replacement program” is provided in the logic synthesis program, and a
When the user creates the source program 11 using the nickname stored in the
[0045]
As a result, the user can perform programming without using a physical terminal number, improve the ease of programming and operability, and reduce programming errors accordingly.
When assigning a nickname to a terminal of a programmable logic circuit, the nickname is assigned only to an FPGA terminal connected to the outside of the computer system, and the terminals other than the terminals connected to the outside are not controlled by the user. If the program is constrained, programming mistakes can be further reduced and hardware damage due to bus fights can be prevented.
[0046]
In the above embodiment, the case where the “terminal name replacement program” is provided in the logic synthesis program has been described. Similarly, the “terminal name replacement program” is provided in the FPGA placement / wiring program, and the source program is provided. When creating configuration data from a netlist generated using the described nickname, the nickname on the netlist may be replaced with the physical terminal number of the FPGA with reference to the
(3) Third embodiment: Macro conversion of predetermined terminal attribute / control method
When a programmable logic circuit is used, as shown in FIG. 5, a part of the FPGA terminal is often connected to the MPU bus (address / data / control bus, etc.). The terminal attributes of the FPGA and the control method from the MPU are often determined.
[0047]
Therefore, in this embodiment, the compiled data is created by determining the functional specifications of the terminals connected to the MPU bus such as “data bus”, “address bus”, DMA control, and “interrupt control” in advance. Each of them is stored in the database in the form of a subroutine / function macro or the like. Then, the subroutine / function macro is called at the time of programming, and the FPGA is programmed by the subroutine / function macro for the portion where the control method is determined.
[0048]
For this reason, in the present embodiment, the compiled data of the subroutine / function macro described above is stored in the function setting
For example, when programming the FPGA using functions or terminal attributes prepared in advance in the function setting
[0049]
When compiling the source program in the logic synthesis program, the function setting macro allocating program calls a subroutine / function macro described in the source program from the function setting
As a result, the user can program the function / terminal attributes prepared in the function setting
[0050]
In the above description, the case where the function setting macro assignment program is provided in the logic synthesis program has been described. However, as shown in FIG. 2, the function setting assignment program may be provided in the FPGA placement / wiring program.
In this case, when a subroutine / function macro name is described in the source program, the logic synthesis program does not compile the part but generates a netlist as a black box with the subroutine / function macro name. Then, when performing placement / wiring in the FPGA placement / wiring program, the function setting assignment program calls the subroutine / function macro described in the source program from the function setting
[0051]
In the third embodiment, a case has been described in which a computer system is provided with logic synthesis means, arrangement / wiring means, and means for loading configuration data. However, the present invention is not limited to the above embodiment. For example, the present invention can be applied to a computer system provided with only arrangement / wiring means and configuration data loading means.
[0052]
【The invention's effect】
As described above, the following effects can be obtained in the present invention.
(1) Since the input / output terminal information of the programmable logic circuit is stored in the storage means and the terminal information is checked by comparing with the terminal information in the source program, netlist, and / or configuration data, a program error It is possible to check in advance whether the hardware has been destroyed due to a bus fight caused by the above.
(2) The physical terminal number and nickname of the programmable logic circuit are stored in the storage means, and the terminal name replacement means is provided in the logic synthesis means so that the physical terminal number of the programmable logic circuit is not conscious. Programming can be facilitated, and programming errors can be reduced. For this reason, programming can be made more efficient and productivity can be improved.
[0053]
Moreover, programming errors can be further reduced by restricting the source program to terminals other than those connected to the outside so that the user cannot control them.
(3) The storage means stores function macros / subroutines that define the attributes and / or control methods of the terminals of the programmable logic circuit connected to the internal bus of the computer system. Since the function macro allocating means is provided in the wiring means, it is possible to program the function of the terminal of the programmable logic circuit connected to the internal bus of the computer system and / or control of the terminal using the function macro. In addition, programming can be facilitated and operability can be improved. For this reason, programming can be made more efficient and productivity can be improved.
[Brief description of the drawings]
FIG. 1 is a principle diagram of the present invention.
FIG. 2 is a diagram showing an embodiment of the present invention.
FIG. 3 is a diagram illustrating an example of data described in an input / output terminal information database.
FIG. 4 is a diagram illustrating an operation of a terminal check program.
FIG. 5 is a diagram illustrating an embodiment in which programming is possible based on a nickname.
FIG. 6 is a diagram illustrating a programming procedure of a programmable logic circuit.
FIG. 7 is a diagram showing a schematic configuration of a system using a programmable logic circuit.
FIG. 8 is a diagram showing a conventional data creation / loading method (1).
FIG. 9 is a diagram showing a conventional data creation / loading method (2).
[Explanation of symbols]
1,11 Source program
2 Computer system
3 Programmable logic circuit
4 logic synthesis means
5 Placement / wiring means
6 Loading means
7, 8, 9 Storage means
12 Netlist
13 Configuration data
21, 51 MPU
22 ROM
23 RAM
24 External storage
25 I / O other
26,53 FPGA
31 Terminal name database
32 Function setting macro database
33 I / O terminal information database
41 Terminal information
42 Behavior description part
52 memory
Claims (7)
上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、
また、上記論理合成手段に、ソースプログラム中の入出力端子情報をチェックする端子チェック手段を設け、
上記端子チェック手段は、上記論理合成手段によりソースプログラムを論理合成する際、上記記憶手段に記憶された情報と、ソースプログラム中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてソースプログラムの動作を解析し、条件が一致しているか否かをチェックする
ことを特徴とするプログラマブル論理回路を使用したコンピュータ・システム。In a computer system comprising a programmable logic circuit and logic synthesis means for synthesizing at least a source program of the programmable logic circuit,
The above computer system is provided with storage means for storing the input / output terminal information of the programmable logic circuit, and this storage means can be used as input / output terminal information for the programmable logic circuit, without condition, without condition. Store information that identifies terminals that are capable of input output, input-only terminals, or output-only terminals,
The logic synthesis means is provided with terminal check means for checking input / output terminal information in the source program,
The terminal checking means, when logically synthesizing the source program by the logic synthesizing means, checks the mismatch between the information stored in the storage means and the input / output terminal information in the source program, and A computer system using a programmable logic circuit, wherein the operation of a source program is analyzed for terminals that can be input and output, and whether or not the conditions match is checked.
上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、
また、上記配置/配線手段にネットリスト中の入出力端子情報をチェックする端子チェック手段を設け、
上記端子チェック手段は、配置/配線手段によりネットリストを生成する際、上記記憶手段に記憶された情報と、ネットリスト中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてネットリストの動作を解析し、条件が一致しているか否かをチェックする
ことを特徴とするプログラマブル論理回路を使用したコンピュータ・システム。In a computer system comprising a programmable logic circuit and at least a placement / wiring means for placing / wiring a netlist and generating configuration data,
The above computer system is provided with storage means for storing the input / output terminal information of the programmable logic circuit, and this storage means can be used as input / output terminal information for the programmable logic circuit, without condition, without condition. Store information that identifies terminals that are capable of input output, input-only terminals, or output-only terminals,
The placement / wiring means is provided with a terminal check means for checking input / output terminal information in the netlist,
When the terminal check means generates a net list by the placement / wiring means, the information stored in the storage means and the input / output terminal information in the net list are compared to check for inconsistency between them, and there is a condition A computer system using a programmable logic circuit, wherein the operation of the netlist is analyzed for terminals that can be input and output, and whether or not the conditions are matched is checked.
上記コンピュータ・システムに、プログラマブル論理回路の入出力端子情報を記憶した記憶手段を設け、この記憶手段に、プログラマブル論理回路の入出力端子情報として、条件付きで入力出力が可能な端子、条件なしで入力出力が可能な端子、入力専用端子、もしくは出力専用端子を識別する情報を記憶させ、
また、上記ロード手段に、コンフィグレーションデータ中の入出力端子情報をチェックする端子チェック手段を設け、
上記端子チェック手段は、上記ロード手段によりコンフィグレーションデータをプログラマブル論理回路にロードする際、上記記憶手段に記憶された情報と、コンフィグレーションデータ中の入出力端子情報を比較して両者の不一致をチェックするとともに、条件付きで入力出力が可能な端子についてコンフィグレーションデータの動作を解析し、条件が一致しているか否かをチェックする
ことを特徴とするプログラマブル論理回路を使用したコンピュータ・システム。In a computer system comprising a programmable logic circuit and loading means for loading at least configuration data into a program logic circuit,
The above computer system is provided with storage means for storing the input / output terminal information of the programmable logic circuit, and this storage means can be used as input / output terminal information for the programmable logic circuit, without condition, without condition. Store information that identifies terminals that are capable of input output, input-only terminals, or output-only terminals,
Further, the loading means is provided with a terminal check means for checking input / output terminal information in the configuration data,
When loading the configuration data into the programmable logic circuit by the loading unit, the terminal checking unit compares the information stored in the storage unit with the input / output terminal information in the configuration data to check for inconsistencies between the two. In addition, a computer system using a programmable logic circuit is characterized in that the operation of configuration data is analyzed for terminals that can be input and output under conditions, and whether or not the conditions are met is checked.
端子名称置き換え手段は、上記論理合成手段によりソースプログラムを論理合成する際、ソースプログラム中に上記ニックネームが記述されているとき、上記記憶手段から、上記ニックネームに対応した物理的端子番号を読み出し、上記ニックネームを物理的端子番号に置換する
ことを特徴とするプログラマブル論理回路を使用した請求項1記載のコンピュータ・システム。The computer system is provided with a storage means for storing the physical terminal number of the programmable logic circuit and its nickname, and the nickname of the input / output terminal described in the source program is provided as a physical terminal in the logic synthesis means. Provide terminal name replacement means to replace with numbers,
The terminal name replacement means reads the physical terminal number corresponding to the nickname from the storage means when the nickname is described in the source program when the logic synthesizer synthesizes the source program. 2. The computer system according to claim 1, wherein a programmable logic circuit is used, wherein the nickname is replaced with a physical terminal number.
ことを特徴とする請求項4記載のプログラマブル論理回路を使用したコンピュータ・システム。Of the programmable logic circuit terminals, only the externally connected terminals were given nicknames, and the terminals other than the externally connected terminals with nicknames were restricted so that the user could not control them. A computer system using the programmable logic circuit according to claim 4 .
上記機能マクロ割り付け手段は、上記論理合成手段によりソースプログラムを論理合成する際、ソースプログラム中に機能マクロ/サブルーチン名が記述されているとき、上記記憶手段から該機能マクロ/サブルーチンを呼び出し、機能マクロ/サブルーチンをネットリスト中に割り付ける
ことを特徴とする請求項1記載のプログラマブル論理回路を使用したコンピュータ・システム。The computer system is provided with storage means for storing function macros / subroutines that define attributes and / or control methods of the terminals of programmable logic circuits connected to the internal bus of the computer system, and A function macro allocation means is provided in the above logic synthesis means,
The function macro allocating means calls the function macro / subroutine from the storage means when a function macro / subroutine name is described in the source program when the source program is logically synthesized by the logic synthesis means. 2. A computer system using a programmable logic circuit according to claim 1, wherein the / subroutine is allocated in the net list.
上記機能マクロ割り付け手段は、上記配置/配線手段により、ネットリストからコンフィグレーションデータを生成する際、ネットリスト中に機能マクロ/サブルーチン名が記述されているとき、上記機能設定マクロデータベースから該機能マクロ/サブルーチンを呼び出し、コンフィグレーションデータ中に機能マクロ/サブルーチンを割り付ける
ことを特徴とする請求項2記載のプログラマブル論理回路を使用したコンピュータ・システム。The computer system is provided with storage means for storing function macros / subroutines that define attributes and / or control methods of the terminals of programmable logic circuits connected to the internal bus of the computer system, and A function macro allocation unit is provided in the arrangement / wiring unit,
The function macro allocating means generates the configuration data from the function setting macro database when a function macro / subroutine name is described in the net list when the configuration / wiring means generates configuration data from the net list. 3. A computer system using a programmable logic circuit according to claim 2 , wherein a function macro / subroutine is allocated in configuration data by calling / subroutine.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13187695A JP4052684B2 (en) | 1995-05-30 | 1995-05-30 | Computer system using programmable logic circuit |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP13187695A JP4052684B2 (en) | 1995-05-30 | 1995-05-30 | Computer system using programmable logic circuit |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH08329018A JPH08329018A (en) | 1996-12-13 |
| JP4052684B2 true JP4052684B2 (en) | 2008-02-27 |
Family
ID=15068213
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP13187695A Expired - Fee Related JP4052684B2 (en) | 1995-05-30 | 1995-05-30 | Computer system using programmable logic circuit |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP4052684B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP5391962B2 (en) * | 2009-09-24 | 2014-01-15 | 富士通モバイルコミュニケーションズ株式会社 | Software error detection tool |
-
1995
- 1995-05-30 JP JP13187695A patent/JP4052684B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH08329018A (en) | 1996-12-13 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7992141B2 (en) | Method and apparatus for building executable computer programs using compiled program libraries | |
| Weyuker et al. | Automatically generating test data from a Boolean specification | |
| EP0665496B1 (en) | Method and apparatus for run-time error checking using dynamic patching | |
| EP0707264A2 (en) | System and method for determining whether a software package conforms to packaging rules and requirements | |
| US6240545B1 (en) | Setting instance breakpoints in object oriented computer programs | |
| CA2059577A1 (en) | Object based system for software maintenance | |
| EP0492973A2 (en) | Dump analysis in data processing systems | |
| EP0669024A1 (en) | Automated testing system | |
| US8745593B2 (en) | Process for verifying computer codes and corresponding verification system | |
| WO2003001373A1 (en) | Java rule engine framework | |
| US6526567B1 (en) | System and method for optimizing a device driver by incorporating debugging and tracing | |
| US6453450B1 (en) | Timing diagram compiler and runtime environment for interactive generation of executable test programs for logic verification | |
| US6226786B1 (en) | Minimizing debug information for global types in compiled languages | |
| US6735774B1 (en) | Method and apparatus for system call management | |
| US5564049A (en) | Industrial controller programming method using external connection database | |
| JP4052684B2 (en) | Computer system using programmable logic circuit | |
| AU2011344503A1 (en) | Definition of objects in object-oriented programming environments | |
| JP2746174B2 (en) | Concurrent design system | |
| US6539436B2 (en) | Management of interruptions in a computer platform | |
| US20050261858A1 (en) | System and method for linking and loading compiled pattern data | |
| US8516504B1 (en) | Method for adding device information by extending an application programming interface | |
| McDonald et al. | Testing inheritance hierarchies in the ClassBench framework | |
| JP2001005645A (en) | Method and system for automatically checking address allocation | |
| Wasserman | The design of PLAIN: support for systematic programming | |
| JP2004192604A (en) | Embedded software development device and embedded software development method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20041109 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041228 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050308 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071031 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20071204 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101214 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: 20111214 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111214 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121214 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131214 Year of fee payment: 6 |
|
| LAPS | Cancellation because of no payment of annual fees |