(57)【特許請求の範囲】
【請求項１】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述から、前記記憶素子のアドレスに関するデータを抽出する抽出部と、
前記抽出部が抽出したデータに基づいて前記記憶素子が割り当てられたアドレスを記憶するビットデータ記憶部と、
前記抽出部が抽出したデータと、前記ビットデータ記憶部の記憶情報に基づき、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出するアドレス競合検出部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項２】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、
前記読み出しグローバルアドレス、あるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが一致し、前記読み出しグローバルアドレスおよび前記書き込みグローバルアドレスがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとで共通に生成する回路生成部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項３】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、
入力されるバスインタフェース記述に基づき、前記読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成する回路生成部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項４】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述に基づき、前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、
前記読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスまたは前記書き込みグローバルアドレスの少なくともいずれかがビット単位で別アドレスである場合に、ビット単位で別アドレスである前記いずれかのグローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成し、さらに、前記グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスのビット毎に生成する回路生成部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項５】
前記セレクト信号のグローバルアドレスに関するデータを抽出するアドレス抽出部と、
前記アドレス抽出部が抽出したデータに基づいて、前記読み出しグローバルアドレスと書き込みグローバルアドレスとをｎ進表現して、上位桁から順に比較判定して、上位桁から連続して一致する上位桁の数を決定するアドレス判定部と、前記アドレス判定部で決定した一致する上位桁の数に対応した前記セレクト信号の共通回路を生成する共通回路生成部と、
を備えたことを特徴とする請求項１ないし請求項４記載のバスインタフェース回路作成装置。
【請求項６】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述から前記記憶素子に対する先頭グローバルアドレスとアドレス範囲を抽出する抽出部と、
前記抽出部が抽出した前記アドレス範囲の任意のアドレスを個別に指定可能な最小のアドレス線の本数ｎを計算する演算部と、
前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェッカー部と、
前記チェッカー部の検出結果が前記記憶素子の先頭アドレスの下位ｎビットがすべて０であった場合に、前記グローバルアドレスの下位ｎビットを前記記憶素子のアドレス入力とし、前記グローバルアドレスの下位ｎビット以外のアドレス値を利用して、セレクト信号を出力する回路を生成する回路生成部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項７】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、
入力されるバスインタフェース記述から前記記憶素子の先頭グローバルアドレスとアドレス範囲を抽出する抽出部と、
前記抽出部が抽出した前記アドレス範囲の任意のアドレスを個別に指定可能な最小のアドレス線の本数ｎを計算する演算部と、
前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェッカー部と、
前記下位ｎビットの中に、１が存在する場合に、警告を行う警告部と、
を備えたことを特徴とするバスインタフェース回路作成装置。
【請求項８】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するためのバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記バスインタフェース回路作成プログラムは、
入力されるバスインタフェース記述から、前記記憶素子のアドレスに関するデータを抽出する抽出ステップと、
前記抽出ステップによって抽出したデータに基づいて前記記憶素子が割り当てられたアドレスを記憶するビットデータ記憶ステップと、
前記抽出ステップによって抽出したデータと、前記ビットデータ記憶ステップによって記憶した情報に基づき、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出するアドレス競合検出ステップと、
をコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする記録媒体。
【請求項９】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路についてのバスインタフェース記述を入力し、所定のハードウェア記述言語を出力するバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記バスインタフェース回路作成プログラムは、
入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対し前記中央処理装置が指示する読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較ステップと、
入力されるバスインタフェース記述に基づき、前記グローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断ステップと、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが一致し、前記読み出しグローバルアドレスおよび前記書き込みグローバルアドレスがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にセレクト信号を生成し、必要に応じて更に該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとで共通に生成する回路生成ステップと、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成する回路生成ステップと、
前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスまたは前記書き込みグローバルアドレスの少なくともいずれかがビット単位で別アドレスである場合に、ビット単位で別アドレスである前記いずれかのグローバルアドレスが指定された際に、アクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成し、さらに、前記グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスのビット毎に生成する回路生成ステップと、
をコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする記録媒体。
【請求項１０】
前記生成されたセレクト信号のグローバルアドレスに関するデータを抽出するアドレス抽出ステップと、
前記アドレス抽出ステップが抽出したデータに基づいて、前記グローバルアドレスが一致するか否かを該グローバルアドレスの上位から順に判定するアドレス判定ステップと、
前記アドレス判定ステップの判定結果が一致する場合に、前記セレクト信号の共通回路を生成する共通回路生成ステップと、
を備えたことを特徴とする請求項９記載のバスインタフェース回路作成プログラムを記録した記録媒体。
【請求項１１】
マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられ、記憶素子を含むバスインタフェース記述を入力し、所定のハードウェア記述言語を出力するバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記バスインタフェース回路作成プログラムは、
入力されるバスインタフェース記述から前記記憶素子に対する先頭グローバルアドレスとアドレス範囲を抽出する抽出ステップと、
前記抽出ステップにおいて抽出したアドレス範囲に基づき、前記アドレス範囲を指定可能な最小のアドレス線の本数ｎを計算する演算ステップと、
前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェックステップと、
前記チェックステップの検出結果が前記記憶素子の先頭アドレスの下位ｎビットがすべて０であった場合に、前記グローバルアドレスの下位ｎビットを前記記憶素子のアドレス入力とし、前記グローバルアドレスの下位ｎビット以外のアドレス値を利用して、セレクト信号を出力する回路を生成する回路生成ステップと、
前記チェックステップの検出結果が前記メモリの先頭アドレスの下位ｎビット中に、１が存在する場合に、警告を行う警告ステップと、
をコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マスターとなる中央処理装置と該中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、バスインタフェース回路を作成するバスインタフェース回路作成装置に関するものである。
【０００２】
【従来の技術】
従来、図２５に示すようなマスターとなる中央処理装置（以下、ＣＰＵと称する）４００とスレーブとなるハードウェア（以下、ＨＷと称する）１または、ＨＷ２との間のバスインタフェース回路を設計する際には、ＣＰＵからレジスタやメモリに対し読み書きを行うアドレス（以下、グローバルアドレスと称する）を、図２６に示すテキスト形式４１０や表形式４１１で整理していた。そして、このテキスト形式４１０や表形式４１１に基づき、設計者がバスインタフェース回路をハードウェア記述言語等で記述していた。なお、バスインタフェース回路は、マスターとなるＣＰＵとスレーブとなるハードウェアとの間に設けるメモリやレジスタ等の記憶素子に対応して設けられたアドレスデコーダ全体から成っており、アドレスデコーダは、各記憶素子に対応して設けられるＥｎａｂｌｅ信号生成回路とアドレス変換回路とから成っている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来は、アドレスをテキスト形式や表形式で整理していたために、新たにレジスタやメモリ等を追加する場合や、記述したレジスタのアドレスの変更、メモリの先頭アドレスやメモリサイズすなわちアドレス範囲の変更が発生した場合には、その度にアドレスもしくはアドレス範囲を全て見直し、レジスタ、メモリ等に重複する部分があるか否かを確認し、修正しなければならなかった。
【０００４】
このようなアドレス等の変更は、ＣＰＵに搭載するソフトウェアの設計者の判断によって、何度も行われる場合があり、その度にアドレスの重複をチェックすることは煩雑でミスの発生する可能性もあり、ハードウェア設計者にとって負担となっていた。
【０００５】
さらに、ＣＰＵから読み書きされるレジスタやメモリは、読み出しアドレスと書き込みアドレスが異なる場合や、データを、ビット単位で別のアドレスに割り当てる場合などもあった。このような複雑なアドレス指定がなされている場合においては特に、記述ミスが起こりやすく、また、記述作業もより煩雑となってしまう場合があった。
従って、バスインタフェース回路のレジスタやメモリのアドレスの重複を防止でき、また、複雑なアドレスの指定を取り扱うことが可能であり、アドレスマップ図等から自動的にバスインタフェース回路記述を生成するツールが必要であった。
【０００６】
本発明はこのような事情に鑑みてなされたもので、その目的は、バスインタフェース回路のレジスタやメモリのアドレスの重複を防止し、ディスプレイ等の画面上で、視覚的にアドレスの配置状況を容易に把握できるバスインタフェース回路作成装置を提供することにある。
また、本発明の他の目的は、複雑なアドレス指定がなされている場合においても、簡略化したバスインタフェース回路を自動的に生成できるバスインタフェース回路作成装置を提供することにある。
また、本発明の他の目的は、アドレスの重複や、面積的に好ましくないハードウェアが生成されることをユーザへ警告できるバスインタフェース回路作成装置を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するために、本発明のうち請求項１に記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子（例えば、実施の形態におけるレジスタまたはメモリまたはフリップフロップ）を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述（例えば、実施の形態におけるハードウェア記述１０）から、前記記憶素子のアドレスに関するデータ（例えば、実施の形態における先頭アドレス、メモリのサイズ、記憶素子の名称等）を抽出する抽出部と、前記抽出部が抽出したデータに基づいて前記記憶素子が割り当てられたアドレスを記憶するビットデータ記憶部と、前記抽出部が抽出したデータと、前記ビットデータ記憶部の記憶情報に基づき、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出するアドレス競合検出部と、を備えたことを特徴とする。
【０００８】
請求項２に記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、前記読み出しグローバルアドレス、あるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが一致し、前記読み出しグローバルアドレスおよび前記書き込みグローバルアドレスがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号（例えば、実施の形態におけるＥｎａｂｌｅ信号生成回路とＲ／Ｗバー信号によってＣＳ端子、ＯＥ端子、ＷＥ端子を選択する信号）を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路（例えば、実施の形態におけるアドレス変換回路Ａ１）とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとで共通に生成する回路生成部と、を備えたことを特徴とする。
【０００９】
請求項３記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、入力されるバスインタフェース記述に基づき、前記読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成する回路生成部と、を備えたことを特徴とする。
【００１０】
請求項４記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述に基づき、前記記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部と、前記読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部と、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスまたは前記書き込みグローバルアドレスの少なくともいずれかがビット単位で別アドレスである場合に、ビット単位で別アドレスである前記いずれかのグローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成し、さらに、前記グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスのビット毎に生成する回路生成部と、を備えたことを特徴とする。
【００１１】
請求項５記載の発明は、請求項１ないし請求項４記載のバスインタフェース回路作成装置において、前記セレクト信号のグローバルアドレスに関するデータを抽出するアドレス抽出部と、前記アドレス抽出部が抽出したデータに基づいて、前記読み出しグローバルアドレスと書き込みグローバルアドレスとをｎ進表現して、上位桁から順に比較判定して、上位桁から連続して一致する上位桁の数を決定するアドレス判定部と、前記アドレス判定部で決定した一致する上位桁の数に対応した前記セレクト信号の共通回路（例えば、実施の形態におけるＥｎａｂｌｅ信号生成回路Ｈ１１）を生成する共通回路生成部とを備えたことを特徴とする。
【００１２】
請求項６記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述から前記記憶素子に対する先頭グローバルアドレスとアドレス範囲を抽出する抽出部と、前記抽出部が抽出した前記アドレス範囲の任意のアドレスを個別に指定可能な最小のアドレス線の本数ｎを計算する演算部と、前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェッカー部と、前記チェッカー部の検出結果が前記記憶素子の先頭アドレスの下位ｎビットがすべて０であった場合に、前記グローバルアドレスの下位ｎビットを前記記憶素子のアドレス入力とし、前記グローバルアドレスの下位ｎビット以外のアドレス値を利用して、セレクト信号を出力する回路を生成する回路生成部と、を備えたことを特徴とする。
【００１３】
請求項７記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するバスインタフェース回路作成装置において、入力されるバスインタフェース記述から前記記憶素子の先頭グローバルアドレスとアドレス範囲を抽出する抽出部と、前記抽出部が抽出した前記アドレス範囲の任意のアドレスを個別に指定可能な最小のアドレス線の本数ｎを計算する演算部と、前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェッカー部と、前記下位ｎビットの中に、１が存在する場合に、警告を行う警告部と、を備えたことを特徴とする。
【００１４】
請求項８記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路について、中央処理装置側のバスインタフェースからみた記憶素子の記述であるバスインタフェース記述を入力し、前記バスインタフェース回路を表現するハードウェア記述言語を出力するためのバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記バスインタフェース回路作成プログラムは、入力されるバスインタフェース記述から、前記記憶素子のアドレスに関するデータを抽出する抽出ステップと、前記抽出ステップによって抽出したデータに基づいて前記記憶素子が割り当てられたアドレスを記憶するビットデータ記憶ステップと、前記抽出ステップによって抽出したデータと、前記ビットデータ記憶ステップによって記憶した情報に基づき、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出するアドレス競合検出ステップと、をコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする。
【００１５】
請求項９記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられる、記憶素子を含むバスインタフェース回路についてのバスインタフェース記述を入力し、所定のハードウェア記述言語を出力するバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記バスインタフェース回路作成プログラムは、入力されるバスインタフェース記述に基づき、同一の前記記憶素子に対し前記中央処理装置が指示する読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較ステップと、入力されるバスインタフェース記述に基づき、前記グローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断ステップと、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが一致し、前記読み出しグローバルアドレスおよび前記書き込みグローバルアドレスがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にセレクト信号を生成し、必要に応じて更に該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとで共通に生成する回路生成ステップと、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスとがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成する回路生成ステップと、前記読み出しグローバルアドレスと前記書き込みグローバルアドレスが別アドレスであり、前記読み出しグローバルアドレスまたは前記書き込みグローバルアドレスの少なくともいずれかがビット単位で別アドレスである場合に、ビット単位で別アドレスである前記いずれかのグローバルアドレスが指定された際に、アクティブとなるセレクト信号を出力するセレクト信号生成回路と、該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路とを前記読み出しグローバルアドレスと前記書き込みグローバルアドレス毎に生成し、さらに、前記グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を前記読み出しグローバルアドレスと前記書き込みグローバルアドレスのビット毎に生成する回路生成ステップと、をコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする。
【００１６】
請求項１０記載の発明は、請求項９記載のバスインタフェース回路作成プログラムを記録した記録媒体において、前記生成されたセレクト信号のグローバルアドレスに関するデータを抽出するアドレス抽出ステップと、前記アドレス抽出ステップが抽出したデータに基づいて、前記グローバルアドレスが一致するか否かを該グローバルアドレスの上位から順に判定するアドレス判定ステップと、前記アドレス判定ステップの判定結果が一致する場合に、前記セレクト信号の共通回路を生成する共通回路生成ステップとを備えたことを特徴とする。
【００１７】
請求項１１記載の発明は、マスターとなる中央処理装置と前記中央処理装置に対しスレーブとなるハードウェアとの間に設けられ、記憶素子を含むバスインタフェース記述を入力し、所定のハードウェア記述言語を出力するバスインタフェース回路作成プログラムを記録したコンピュータ読み取り可能な記録媒体において、前記バスインタフェース回路作成プログラムは、入力されるバスインタフェース記述から前記記憶素子に対する先頭グローバルアドレスとアドレス範囲を抽出する抽出ステップと、前記抽出ステップにおいて抽出したアドレス範囲に基づき、前記アドレス範囲を指定可能な最小のアドレス線の本数ｎを計算する演算ステップと、前記記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェックステップと、前記チェックステップの検出結果が前記記憶素子の先頭アドレスの下位ｎビットがすべて０であった場合に、前記グローバルアドレスの下位ｎビットを前記記憶素子のアドレス入力とし、前記グローバルアドレスの下位ｎビット以外のアドレス値を利用して、セレクト信号を出力する回路を生成する回路生成ステップと、前記チェックステップの検出結果が前記メモリの先頭アドレスの下位ｎビット中に、１が存在する場合に、警告を行う警告ステップとをコンピュータに実行させるバスインタフェース回路作成プログラムであることを特徴とする。
【００１８】
【発明の実施の形態】
以下、本発明の一実施形態によるバスインターフェース回路作成装置について図面を参照して説明する。図１は、本発明によるバスインタフェース回路作成装置１００を適用したシステムの概略ブロック図である。
本実施例では、記憶素子として、メモリおよびレジスタを用いて説明する。このレジスタとして、特にフリップフロップ（以下、ＦＦと称する）を用いて説明する。
【００１９】
１０１は、外部から入力されるバスインタフェース記述およびスレーブハードウェア記述１０から、記憶素子のアドレスに関する情報の抽出を行う抽出部である。ここで、バスインタフェース記述とは、ＣＰＵ側のバスインタフェースからみた記憶素子の記述であり、また、スレーブハードウェア記述とは、スレーブ側のハードウェアからみた記憶素子の記述である。この抽出部１０１は、バスインタフェース記述およびスレーブハードウェア記述１０のデータから、記憶素子の種別、名称、先頭アドレス、アドレスバスビット幅、データバスビット幅、メモリのサイズ、ＦＦのアドレス値を抽出し、アドレス競合検出部１０３への出力するとともに、この抽出したデータに基づいて、ディスプレイ等の画面上に出力する。
【００２０】
次に、バスインターフェースに関するデータであるバスインタフェース記述およびスレーブハードウェア記述１０の一例として、スレーブハードウェア記述のみが記述されている場合について、図２を用いて説明する。この図において、宣言文の第１行目（図２（１））では、ビット幅が８ビットであり、１０２４バイトの大きさであり、ｍｅｍｏｒｙ１という名称で、種別がメモリである記憶素子が定義されている。宣言文の第２行目（図２（２））では、ビット幅が８であり、２０４８バイトの大きさであり、ｍｅｍｏｒｙ２という名称で、種別がメモリである記憶素子が定義されている。また、宣言文の第３行目（図２（３））では、ビット幅が８であり、ＦＦ１という名称で、種別がレジスタである記憶素子が定義されている。このようなスレーブハードウェア記述において、抽出部１０１により、画面に表示された場合の一例を図３に示す。この場合、ｍｅｍｏｒｙ１、ｍｅｍｏｒｙ２、ＦＦ１の各先頭アドレスが指定されていないので０ｘ００００番地に配置され、表示される。
【００２１】
つぎに、バスインタフェース記述およびスレーブハードウェア記述１０中に、バスインタフェース記述のみが記述されている場合について図４および図５を用いて説明する。図４の宣言文の第１行目（図４（４））では、ビット幅が８で、先頭アドレスが０ｘ１０００番地で、１０２４バイトの大きさでｍｅｍｏｒｙ１という名称で、種別がメモリである記憶素子を定義している。また第２行目（図４（５））においても同様に、ビット幅が８で先頭アドレスが０ｘ１５００番地で、２０４８バイトの大きさで、ｍｅｍｏｒｙ２という名称で、種別がメモリである記憶素子を定義している。そして、第３行目（図４（６））では、ビット幅が８で、ＦＦ１という名称で、アドレスが０ｘ１４１０番地で、種別がレジスタである記憶素子を定義している。このようなハードウェア記述の宣言がされた場合における抽出部１０１が出力する画面表示の一例を図５に示す。この図では、ｍｅｍｏｒｙ１、ｍｅｍｏｒｙ２、ＦＦ１が、それぞれ宣言された先頭アドレスに配置され、各アドレスが割り当てられている状態が視覚的に容易に確認できる。
【００２２】
また、マウス操作などによって、図５のような画面表示上に、追加のデータ入力を行ってもよい。たとえば、名称がｍｅｍｏｒｙ３であり、ビット幅が８で、大きさが１０２４バイトで、種別がメモリである記憶素子を作成し、このｍｅｍｏｒｙ３をマウス操作によって先頭アドレスが０ｘ１８００番地へ移動させた場合は、図６のように表示される。このように追加された記憶素子のデータも、抽出部１０１に保持される。
【００２３】
ビットデータ記憶部１０２は、図７に示すように、メモリ領域の各アドレスに対しメモリ、ＦＦ等の記憶素子が割り当てられていない場合は０を記憶し、記憶素子が割り当てられている場合は１を記憶する。また、ビットデータ記憶部１０２は、アドレス上に割り当てられた記憶素子の名称を記憶するものとしてもよい。なお、ビットデータ記憶部１０２における記憶方法としては、アドレスの使用状況を記憶できるデータ構造であればよく、例えば、使用中のアドレス範囲を二分木で表現してもよい。
【００２４】
アドレス競合検出部１０３は、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出する。すなわち、新たに配置される記憶素子のアドレスに対応するビットデータ記憶部１０２のアドレス上に１が記憶されているか否かを検出する。そして、ビットデータ記憶部１０２のアドレス上に０が記憶されている場合に、記憶素子の割り当てを行い、ビットデータ記憶部１０２の対応するアドレス上のデータ０を１へ更新し、新たに配置された記憶素子および抽出部１０１から受け取った記憶素子の種別、名称、先頭アドレス、アドレスビット幅、データバスビット幅、メモリサイズのデータを出力部１０４へ出力する。一方、ビットデータ記憶部１０２に１が記憶されている場合には、アドレス競合検出部１０３は、他の記憶素子のアドレスと重複していることを検出し、ユーザへ警告を行う。ユーザへの警告方法としては、新たに割り当てられた記憶素子のアドレス範囲の表示色を変えてもよいし、表示位置をずらしてもよい。また、そのときに同時に警告音を鳴らしてもよい。なお、ユーザへの警告だけで出力部１０４へのデータ出力を行わなくてもよいし、行ってもよい。また、このデータ出力を行うかどうかをユーザに選択させてもよい。
【００２５】
出力部１０４は、アドレス競合検出部１０３から出力された記憶素子のアドレス等のデータをバスインタフェース回路のハードウェア記述言語もしくは回路図もしくはシンボル接続図に変換し、出力する。
【００２６】
次に、上述の構成によるバスインタフェース回路作成装置の動作について図８のフローチャートを用いて説明する。ここでは、バスインタフェース記述及びスレーブハードウェア記述１０のデータが図４に示す宣言文である場合について説明する。また、ビットデータ記憶部の初期値はすべて０である。
まず、バスインタフェース記述データ（４）が抽出部１０１へ入力されると、抽出部１０１は、データ（４）から、記憶素子がメモリかＦＦであるかを抽出する（ステップＳ１００）。この場合、種別がメモリと定義されているので、抽出部１０１は、先頭アドレスを読み込み（ステップＳ１０１）、次いで、メモリのサイズを読み込み（ステップＳ１０２）、そして、読み込んだデータをアドレス競合検出部１０３へ出力する。
【００２７】
アドレス競合検出部１０３は、抽出部１０１から出力されたデータに基づいて、アドレスが競合しているか否かを検出する。すなわち、抽出部１０１から出力されたアドレスおよびメモリのサイズに対し、ビットデータ記憶部１０２に格納されているアドレス情報において、１が記憶されているか否かを検出する（ステップＳ１０３）。この場合、ビットデータ記憶部１０２のアドレス０ｘ１０００番地からアドレス０ｘ１３ｆｆ番地までの１０２４バイト分は、全て０であるため、このアドレス０ｘ１０００番地からアドレス０ｘ１３ｆｆ番地の記憶を１へ更新する（ステップＳ１０４）。そして、アドレス競合検出部１０３は、この記憶素子の名称と、アドレスに関するデータを出力部１０４へ出力する。
【００２８】
そして、出力部１０４は、アドレス競合検出部１０３から出力された記憶素子のアドレス等のデータをバスインタフェース回路のハードウェア記述言語もしくは回路図もしくはシンボル接続図に変換し、出力する（ステップＳ１０５）。
【００２９】
次に、データ（５）が抽出部１０１へ入力されると、抽出部１０１は、データ（５）から、記憶素子がメモリかＦＦであるかを抽出する（ステップＳ１００）。この場合、種別がメモリと定義されているので、抽出部１０１は、先頭アドレスを読み込み（ステップＳ１０１）、次いで、メモリのサイズを読み込み（ステップＳ１０２）、そして、読み込んだデータをアドレス競合検出部１０３へ出力する。
【００３０】
アドレス競合検出部１０３は、抽出部１０１から出力されたデータに基づいて、アドレスが競合しているか否かを検出する。すなわち、抽出部１０１から出力されたアドレスおよびメモリのサイズに対し、ビットデータ記憶部１０２に格納されているアドレス情報において１が記憶されているか否かを検出する（ステップＳ１０３）。この場合、ビットデータ記憶部１０２のアドレス０ｘ１５００番地からアドレス０ｘ１ｃｆｆ番地までの２０４８バイト分は、全て０であるため、アドレス競合検出部１０３は、このアドレス０ｘ１５００番地からアドレス０ｘ１ｃｆｆ番地の記憶を１へ更新する（ステップＳ１０４）。そして、アドレス競合検出部１０３は、この記憶素子の名称と、アドレスに関するデータを出力部１０４へ出力する。
【００３１】
そして、出力部１０４は、アドレス競合検出部１０３から出力された記憶素子のアドレス等のデータをバスインタフェース回路のハードウェア記述言語もしくは回路図もしくはシンボル接続図に変換し、出力する（ステップＳ１０５）。
【００３２】
次に、データ（６）が抽出部１０１へ入力されると、抽出部１０１は、データ（６）から、記憶素子がメモリかレジスタであるかを抽出する（ステップＳ１００）。この場合、種別がレジスタと定義されているので、抽出部１０１は、アドレスを読み込み（ステップＳ１０６）、読み込んだデータをアドレス競合検出部１０３へ出力する。
【００３３】
アドレス競合検出部１０３は、抽出部１０１から出力されたデータに基づいて、アドレスが競合しているか否かを検出する。すなわち、抽出部１０１から出力されたアドレスに対し、ビットデータ記憶部１０２に格納されているアドレス情報において１が記憶されているか否かを検出する（ステップＳ１０７）。この場合、ビットデータ記憶部１０２のアドレス０ｘ１４１０番地は０であるため、アドレス競合検出部１０３は、このアドレス０ｘ１４１０番地の記憶を１へ更新する（ステップＳ１０４）。そして、アドレス競合検出部１０３は、この記憶素子の名称と、アドレスに関するデータを出力部１０４へ出力する。
【００３４】
そして、出力部１０４は、アドレス競合検出部１０３から出力された記憶素子のアドレス等のデータをバスインタフェース回路のハードウェア記述言語もしくは回路図もしくはシンボル接続図に変換し、出力する（ステップＳ１０５）。
なお、上述の動作は、ハードウェア記述１０に記述されている各データ毎に繰り返し行ってもよいし、データをまとめて読み込んで順次処理した後に、まとめて出力してもよい。
【００３５】
上述の動作によって出力される回路図は、例えば図９のようなものである。バス１１０は、マスターとなるＣＰＵに対し接続されており、ｍｅｍｏｒｙ１、ｍｅｍｏｒｙ２およびＦＦ１の下側に配置されている端子はスレーブハードウェアに接続されている。そして、ｍｅｍｏｒｙ１（図中では符号（Ａ）、以下符号（Ａ）と称す）、ｍｅｍｏｒｙ２（符号（Ｂ））、ＦＦ１（符号（Ｃ））が、それぞれ上述の動作によって出力されたバスインタフェース回路を介してバス１１０へ接続されている。以下、接続関係をより詳細に説明する。
【００３６】
まず、ｍｅｍｏｒｙ１（符号（Ａ））のＡ（アドレス）端子は、バス１１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１０００番地〜０ｘ１３ｆｆ番地を、０ｘ０００〜０ｘ３ｆｆへ変換するアドレス変換回路Ａ１の出力端子に接続される。また、ｍｅｍｏｒｙ１（符号（Ａ））のＣＳ（チップセレクト）端子は、バス１１０から出力されるアドレスが０ｘ１０００番地〜０ｘ１３ｆｆ番地の場合にアクティブ信号“１“を出力するＥｎａｂｌｅ信号生成回路Ａ２の出力端子に接続される。そして、バス１１０のＲ／Ｗバー端子とｄａｔａ（データ）端子は、それぞれｍｅｍｏｒｙ１（符号（Ａ））のＲ／Ｗバー端子と、Ｄ（データ）端子に接続される。ここで、Ｗバーとはライト信号Ｗの反転信号を示すものであり、図中ではＷの上に線を引いたもので示している。
【００３７】
次に、ｍｅｍｏｒｙ２（符号（Ｂ））のアドレス端子は、バス１１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１５００番地〜０ｘ１ｃｆｆ番地を０ｘ０００〜０ｘ７ｆｆへ変換するアドレス変換回路Ｂ１の出力端子に接続される。また、ｍｅｍｏｒｙ２（符号（Ｂ））のＣＳ（チップセレクト）端子は、バス１１０から出力されるアドレスが０ｘ１５００番地〜０ｘ１ｃｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｂ２の出力端子に接続される。そして、バス１１０のＲ／Ｗバー端子とｄａｔａ（データ）端子は、それぞれｍｅｍｏｒｙ２（符号（Ｂ））のＲ／Ｗバー端子と、Ｄ（データ）端子に接続される。
【００３８】
また、ＦＦ１（符号（Ｃ））のＣＳ（チップセレクト）端子は、バス１１０のａｄｄｒ（アドレス）端子から出力されるアドレスが０ｘ１４１０番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｃ１の出力端子に接続される。そして、バス１１０のＲ／Ｗバー端子とｄａｔａ（データ）端子は、それぞれＦＦ１（符号（Ｃ））のＲ／Ｗバー端子と、Ｄ（データ）端子に接続される。
【００３９】
次に、ｍｅｍｏｒｙ１、ｍｅｍｏｒｙ２、ＦＦ１がＯＥ（アウトプットイネーブル）端子とＷＥ（ライトイネーブル）端子を有する記憶素子の場合に、出力部１０４によって出力されるシンボル接続図を図１０に示す。
この図において、バス１１０は、マスターとなるＣＰＵに対し接続されている。そして、ｍｅｍｏｒｙ１（符号（Ｄ））、ｍｅｍｏｒｙ２（符号（Ｅ））、ＦＦ１（符号（Ｆ））が、バスインタフェース回路を介してバス１１０へ接続されている。
【００４０】
まず、ｍｅｍｏｒｙ１（符号（Ｄ））のＡ（アドレス）端子は、バス１１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１０００番地〜０ｘ１３ｆｆ番地を、０ｘ０００〜０ｘ３ｆｆへ変換するアドレス変換回路Ｄ１の出力端子に接続される。また、バス１１０のａｄｄｒ（アドレス）端子には、バス１１０から出力されるアドレスが０ｘ１０００番地〜０ｘ１３ｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｄ２へ接続される。そして、前述のＥｎａｂｌｅ信号生成回路の出力信号は、バス１１０から出力されるＲ／Ｗバー信号が、“１”すなわち読み出しの場合には、ｍｅｍｏｒｙ１（符号（Ｄ））のＯＥ（アウトプットイネーブル）端子に入力され、Ｒ／Ｗバー信号が“０”すなわち書き込みの場合には、ｍｅｍｏｒｙ１（符号（Ｄ））のＷＥ（ライトイネーブル）端子に入力される。さらに、バス１１０のｄａｔａ（データ）端子は、ｍｅｍｏｒｙ１（符号（Ｄ））のＤ（データ）端子に接続される。
【００４１】
次に、ｍｅｍｏｒｙ２（符号（Ｅ））のＡ（アドレス）端子は、バス１１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１５００番地〜０ｘ１ｃｆｆ番地を、０ｘ０００〜０ｘ７ｆｆへ変換するアドレス変換回路Ｅ１の出力端子に接続される。また、バス１１０のａｄｄｒ（アドレス）端子には、バス１１０から出力されるアドレスが０ｘ１５００番地〜０ｘ１ｃｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｅ２へ接続される。そして、前述のＥｎａｂｌｅ信号生成回路の出力信号は、バス１１０から出力されるＲ／Ｗバー信号が、“１”すなわち読み出しの場合には、ｍｅｍｏｒｙ２（符号（Ｅ））のＯＥ（アウトプットイネーブル）端子に入力され、Ｒ／Ｗバー信号が“０”すなわち書き込みの場合には、、ｍｅｍｏｒｙ２（符号（Ｅ））のＷＥ（ライトイネーブル）端子に入力される。さらに、バス１１０のｄａｔａ（データ）端子は、ｍｅｍｏｒｙ２（符号（Ｅ））のＤ（データ）端子に接続される。
【００４２】
次に、ＦＦ１（符号（Ｆ））について説明する。バス１１０のａｄｄｒ（アドレス）端子には、バス１１０から出力されるアドレスが０ｘ１４１０番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｆ１へ接続される。そして、前述のＥｎａｂｌｅ信号生成回路の出力信号は、バス１１０から出力されるＲ／Ｗバー信号が“１”すなわち読み出しの場合には、ＦＦ１（符号（Ｆ））のＯＥ（アウトプットイネーブル）端子に入力され、Ｒ／Ｗバー信号が“０”、すなわち書き込みの場合には、ＦＦ１（符号（Ｆ））のＷＥ（ライトイネーブル）端子に入力される。さらに、バス１１０のｄａｔａ（データ）端子は、ＦＦ１（符号（Ｆ））のＤ（データ）端子に接続される。
以上のように、スレーブハードウェア記述として入力されたデータに応じて、バスインタフェース回路が生成される。
【００４３】
次に、バスインタフェース記述およびスレーブハードウェア記述１０が、マウス操作等によって、図５のような画面表示上にデータ入力された場合について説明する。名称がｍｅｍｏｒｙ３であり、種別がメモリであり、先頭アドレスが０ｘ２８００番地であり、大きさが１０２４バイトの記憶素子が作成されるとする。そして、このｍｅｍｏｒｙ３がマウス操作によって、先頭アドレスが０ｘ１８００番地へ移動されると、ｍｅｍｏｒｙ３の表示に必要なデータが、抽出部１０１に保持され、画面上は図６のように表示される。ここで、ビットデータ記憶部１０２のアドレス０ｘ２８００番地から０ｘ２ｂｆｆ番地のメモリ領域は０へ更新される。そして、マウス操作によって移動された後のアドレス等のデータが抽出部１０１へ入力されると、抽出部１０１は、記憶素子がメモリかレジスタであるかを抽出する（ステップＳ１００）。この場合、名称がｍｅｍｏｒｙ３という記憶素子は、種別がメモリであるので、抽出部１０１は、先頭アドレスを読み込み（ステップＳ１０１）、次いで、メモリサイズを読み込み（ステップＳ１０２）、そして、読み込んだデータをアドレス競合検出部１０３へ出力する。
【００４４】
アドレス競合検出部１０３は、抽出部１０１から出力されたデータに基づいて、アドレスが競合しているか否かを検出する。すなわち、抽出部１０１から出力されたアドレスおよびメモリのサイズに対し、ビットデータ記憶部１０２に格納されているアドレス情報において１が記憶されているか否かを検出する（ステップＳ１０３）。この場合、ビットデータ記憶部１０２のアドレス０ｘ１８００番地からアドレス０ｘ１ｂｆｆ番地は、全て１であり、既にｍｅｍｏｒｙ２へ割り当てられていることが記憶されている。これにより、アドレス競合検出部１０３は、アドレスが重複すると判断し、ユーザへ警告する（ステップＳ１０８）。なお、ｍｅｍｏｒｙ３のアドレス変更は、マウス操作でなく、キーボード入力によって行う場合も同様に処理される。また、もともとアドレスが重複するようなバスインタフェース記述を入力した場合も同様の処理により警告を行うことができる。
【００４５】
図１１は、この発明の第二の実施形態によるバスインタフェース回路作成装置２００を適用したシステムの概略ブロック図である。
このバスインタフェース回路作成装置２００へ入力されるバスインタフェース記述２０の一例を図１２に示す。この図において、ｍｅｍｏｒｙ１、ｍｅｍｏｒｙ２、ＦＦ１，ＦＦ２に対する読み出しグローバルアドレスと書き込みグローバルアドレスが表記されており、さらに、読み出しグローバルアドレスと書き込みグローバルアドレスは、ビット単位で分割されている。
なお、この図において、アドレスの表記部が斜線の箇所については、使用されないことを表わす。
【００４６】
２０１は、ＣＰＵが記憶素子に対し指示する読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを比較するＲＷアドレス比較部である。２０２は、グローバルアドレスがビット単位で別アドレスになっているか否かを判断する判断部である。２０３は、ＲＷアドレス比較部２０１の比較結果と判断部２０２の判断結果に基づいて、Ｅｎａｂｌｅ信号生成回路と、アドレス変換回路を生成し、バスインタフェース回路２１を出力する回路生成部である（詳細は後述する）。
【００４７】
次に、上述の構成による装置の動作について、図１３のフローチャートを用いて説明する。
まず、図１２におけるｍｅｍｏｒｙ１のバスインタフェース記述が入力されると（ステップＳ２０１）、ＲＷアドレス比較部２０１は、読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを検出する（ステップＳ２０２）。読み出しグローバルアドレスと書き込みグローバルアドレスが一致している場合、判断部２０２は、読み出しグローバルアドレスと書き込みグローバルアドレスがそれぞれビット単位で別アドレスになっているか否かを判断する（ステップＳ２０３）。このｍｅｍｏｒｙ１は、読み出しグローバルアドレスと書き込みグローバルアドレスが一致しており、さらに、読み出しグローバルアドレスと書き込みグローバルアドレスはビット単位においてもアドレスが一致している。従って、この判断結果に基づき、回路生成部２０３は、ＣＰＵからの読み出し時と書き込み時とで共通のアドレスデコーダを作成する（ステップＳ２０４）。
【００４８】
次に、ｍｅｍｏｒｙ２のバスインタフェース記述が入力されると（ステップＳ２０１）、ＲＷアドレス比較部２０１は、読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを検出する（ステップＳ２０２）。読み出しグローバルアドレスと書き込みグローバルアドレスが一致していない場合、判断部２０２は、読み出しグローバルアドレスと書き込みグローバルアドレスがそれぞれビット単位で別アドレスになっているか否かを判断する（ステップＳ２０６）。このｍｅｍｏｒｙ２の場合、読み出しグローバルアドレスと書き込みグローバルアドレスが異なっており、読み出しグローバルアドレスと書き込みグローバルアドレスはどのビットにおいても、アドレスが一致している。従って、この判断結果に基づき、回路生成部２０３は、読み出しグローバルアドレスと書き込みグローバルアドレスについて別々にアドレスデコーダを作成する（ステップＳ２０７）。
【００４９】
次に、ＦＦ１のバスインタフェース記述が入力されると（ステップＳ２０１）、ＲＷアドレス比較部２０１は、読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを検出する（ステップＳ２０２）。読み出しグローバルアドレスと書き込みグローバルアドレスが一致していない場合、判断部２０２は、読み出しグローバルアドレスあるいは書き込みグローバルアドレスにおいてビット単位で別アドレスになっているか否かを判断する（ステップＳ２０６）。このＦＦ１の場合、読み出しグローバルアドレスと書き込みグローバルアドレスが異なっており、さらに、読み出しグローバルアドレスと書き込みグローバルアドレスとのいずれにおいてもビット単位で、別アドレスになっている。従って、この判断結果に基づき、回路生成部２０３は、読み出しグローバルアドレスと書き込みグローバルアドレスとについて別々にアドレスデコーダを作成し、さらに、読み出しグローバルアドレスと書き込みグローバルアドレスとのビット単位で別々にアドレスデコーダを作成する（ステップＳ２０８）。
【００５０】
次に、ＦＦ２のバスインタフェース記述が入力されると（ステップＳ２０１）、ＲＷアドレス比較部２０１は、読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かを検出する（ステップＳ２０２）。読み出しグローバルアドレスと書き込みグローバルアドレスが一致していない場合、判断部２０２は、読み出しグローバルアドレスと書き込みグローバルアドレスとにおいてビット単位で別アドレスになっているか否かを判断する（ステップＳ２０６）。このＦＦ２の場合、読み出しグローバルアドレスしかなく、さらに、読み出しグローバルアドレスは特定のビットにおいてのみ、アドレスが定義されている。従って、この判断結果に基づき、回路生成部２０３は、読み出しグローバルアドレスについてアドレスデコーダを作成する（ステップＳ２０８）。
【００５１】
次に、回路生成部２０３から出力されるバスインタフェース回路を図１４および図１５に示す。
図１４は、ｍｅｍｏｒｙ１とｍｅｍｏｒｙ２のバスインタフェース回路を示すブロック図である。バス２１０は、マスターとなるＣＰＵに対し接続されている。そして、ｍｅｍｏｒｙ１（符号（Ｇ））、ｍｅｍｏｒｙ２（符号（Ｈ））が、それぞれ上述の動作によって出力されたバスインタフェース回路を介してバス２１０へ接続されている。
ｍｅｍｏｒｙ１（符号（Ｇ））のＡ（アドレス）端子は、バス２１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１０００番地〜０ｘ１３ｆｆ番地を、０ｘ０００〜０ｘ３ｆｆへ変換するアドレス変換回路Ｇ１の出力端子に接続される。また、バス２１０のａｄｄｒ（アドレス）端子は、バス２１０から出力されるアドレスが０ｘ１０００番地〜０ｘ１３ｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｇ２と前記アドレス変換回路Ｇ１とに接続される。そして、バス２１０から出力されるＲ／Ｗバー信号が“１”すなわち、読み出しの場合には、前述のＥｎａｂｌｅ信号生成回路の出力信号は、ｍｅｍｏｒｙ１（符号（Ｇ））のＯＥ（アウトプットイネーブル）端子に入力され、Ｒ／Ｗバー信号が“０”、すなわち書き込みの場合には、ｍｅｍｏｒｙ１（符号（Ｇ））のＷＥ（ライトイネーブル）端子に入力される。さらに、バス２１０のｄａｔａ（データ）端子は、ｍｅｍｏｒｙ１（符号（Ｇ））のＤ（データ）端子に接続される。
【００５２】
次に、ｍｅｍｏｒｙ２（符号（Ｈ））について説明する。バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスが０ｘ１５００番地〜０ｘ１ｃｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｈ１と、バス２１０から出力されるアドレスが０ｘ１４００番地〜０ｘ１ｂｆｆ番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｈ２が接続される。そして、前述のＥｎａｂｌｅ信号生成回路の出力信号は、バス２１０から出力されるＲ／Ｗバー信号が“１”、すなわち読み出しの場合には、ｍｅｍｏｒｙ２（符号（Ｈ））のＯＥ（アウトプットイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｈ１の出力信号が入力される。Ｒ／Ｗバー信号が“０”すなわち書き込みの場合は、ｍｅｍｏｒｙ２（符号（Ｈ））のＷＥ（ライトイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｈ２の出力信号が入力される。
【００５３】
また、バス２１０のａｄｄｒ（アドレス）端子には、バス２１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１５００番地〜０ｘ１ｃｆｆ番地を、０ｘ０００〜０ｘ７ｆｆへ変換するアドレス変換回路Ｈ３と、バス２１０のａｄｄｒ（アドレス）端子から出力されるアドレス０ｘ１４００番地〜０ｘ１ｂｆｆ番地を、０ｘ０００〜０ｘ７ｆｆへ変換するアドレス変換回路Ｈ４が接続されている。アドレス変換回路Ｈ３とアドレス変換回路Ｈ４の出力端子は、それぞれ多ビットセレクタＨ５の入力端子へ接続されている。また、バス２１０から出力されるＲ／Ｗバー信号が、多ビットセレクタＨ５のセレクト端子へ入力されることによって、読み出しの場合、アドレス変換回路Ｈ３の出力信号が多ビットセレクタＨ５によって選択され、ｍｅｍｏｒｙ２（符号（Ｈ））のＡ（アドレス）端子へ入力される。また、書き込みの場合、アドレス変換回路Ｈ４の出力信号が多ビットセレクタＨ５によって選択され、ｍｅｍｏｒｙ２（符号（Ｈ））のＡ（アドレス）端子へ入力される。さらに、バス２１０のｄａｔａ（データ）端子は、ｍｅｍｏｒｙ２（符号（Ｈ））のＤ（データ）端子に接続される。
【００５４】
図１５は、ＦＦ１とＦＦ２のバスインタフェース回路を示すブロック図である。バス２１０に対し、ＦＦ１（ｂｉｔ０〜３）（符号（Ｉ））、ＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））、ＦＦ２（符号（Ｋ））が、それぞれ上述の動作によって出力されたバスインタフェース回路を介してバス２１０へ接続されている。
ＦＦ１（ｂｉｔ０〜３）（符号（Ｉ））のＤ（データ）端子は、バス２１０のｄａｔａ端子へ接続され、第０〜第３ビットに対応するデータが入出力される。また、バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスが０ｘ１４１０番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｉ１と、バス２１０から出力されるアドレスが０ｘ１４１２番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｉ２が接続される。そして、バス２１０から出力されるＲ／Ｗバー信号が“１”すなわち読み出しの場合、ＦＦ１（ｂｉｔ０〜３）（符号（Ｉ））のＯＥ（アウトプットイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｉ１の出力信号が入力される。Ｒ／Ｗバー信号が“０”すなわち書き込みの場合、ＦＦ１（ｂｉｔ０〜３）（符号（Ｉ））のＷＥ（ライトイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｉ２の出力信号が入力される。
【００５５】
ＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））のＤ（データ）端子は、バス２１０のｄａｔａ端子へ接続され、第５〜第７ビットに対応するデータが入出力される。また、バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスが０ｘ１４１１番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｊ１と、バス１０から出力されるアドレスが０ｘ１４１２番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｊ２が接続される。そして、バス２１０から出力されるＲ／Ｗバー信号が“１”すなわち読み出しの場合、ＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））のＯＥ（アウトプットイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｊ１の出力信号が入力される。Ｒ／Ｗバー信号が“０”すなわち書き込みの場合、ＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））のＷＥ（ライトイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｊ２の出力信号が入力される。
【００５６】
ＦＦ２（ｂｉｔ４）（符号（Ｋ））のＤ（データ）端子は、バス２１０のｄａｔａ端子へ接続され、第４ビットに対応するデータが入出力される。また、バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスが０ｘ１４１１番地の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｋ１が接続される。そして、バス２１０から出力されるＲ／Ｗバー信号が“１”すなわち読み出しの場合、ＦＦ２（ｂｉｔ４）（符号（Ｋ））のＯＥ（アウトプットイネーブル）端子が選択され、Ｅｎａｂｌｅ信号生成回路Ｋ１の出力信号が入力される。ＦＦ２（ｂｉｔ４）（符号（Ｋ））のＷＥ（ライトイネーブル）端子は、グランド端子へ接続される。
【００５７】
次に、本発明の第三の実施形態によるＥｎａｂｌｅ信号生成回路の面積最適化について図面を参照して説明する。図１６は、本発明によるＥｎａｂｌｅ信号生成回路の面積最適化を説明するための概略ブロック図であり、生成されたバスインタフェース回路を修正するために、図１の出力部や図１１の回路生成部に図１６に示すアドレス抽出部、アドレス判定部、および共通回路生成部からなるブロックが備えられる。
この図において、２８０は、共通化を行うＥｎａｂｌｅ信号生成回路の各先頭アドレス、または各先頭アドレスと最終アドレスを抽出するアドレス抽出部である。２８１は、アドレス抽出部が抽出したアドレスについて上位桁から順にアドレスが一致するか否かを比較判定して、上位桁から連続して一致する上位桁数を決定するアドレス判定部である。２８２は、アドレス判定部が比較判定した結果に基づいてＥｎａｂｌｅ信号生成回路の共通回路を生成する共通回路生成部である。
【００５８】
上記の構成における動作について図１７のフローチャートを用いて説明する。面積最適化の一例として、図１４のｍｅｍｏｒｙ２（符号（Ｈ））のＥｎａｂｌｅ信号生成回路Ｈ１とＥｎａｂｌｅ信号生成回路Ｈ２を最適化する場合について説明する。
まず、アドレス抽出部２８０は、Ｅｎａｂｌｅ信号生成回路Ｈ１とＥｎａｂｌｅ信号生成回路Ｈ２の４つのアドレスの値を抽出する（ステップＳ２５０）。ここで、アドレス抽出部２８０は、Ｅｎａｂｌｅ信号生成回路Ｈ１のアドレス範囲が０ｘ１５００番地から０ｘ１ｃｆｆ番地であるので、１５００と１ｃｆｆの値を抽出する。また、アドレス抽出部２８０は、Ｅｎａｂｌｅ信号生成回路Ｈ２のアドレス範囲が０ｘ１４００番地から０ｘ１ｂｆｆ番地であるので、１４００と１ｂｆｆの値を抽出する。
【００５９】
次に、アドレス判定部２８１は、アドレス抽出部が抽出したアドレスに基づいて、４つの値の上位から順に値が一致するか否かを判定する（ステップＳ２５１）。この場合、抽出された４つの値のうち、上位１桁目がすべて１であり、一致している。次に、上位２桁目は、それぞれ５、ｃ、４、ｂであり異なるので、上位１桁目について共通回路を生成する（ステップＳ２５２）。そして、共通回路生成部２８２が生成し、出力する回路を図１８（ｂ）に示す。バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスの下位３桁が０ｘ５００から０ｘｃｆｆの場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｈ１０と、バス２１０から出力されるアドレスの上位１桁が０ｘ１の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｈ１１と、バス２１０から出力されるアドレスの下位３桁が０ｘ４００から０ｘｂｆｆの場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｈ１２が接続されている。
【００６０】
そして、Ｅｎａｂｌｅ信号生成回路Ｈ１０の出力とＥｎａｂｌｅ信号生成回路Ｈ１１の出力がＡＮＤ回路２２０へ入力され、このＡＮＤ回路２２０の出力端子がｍｅｍｏｒｙ２（符号（Ｈ））のＯＥ（アウトプットイネーブル）端子へ接続される。また、Ｅｎａｂｌｅ信号生成回路Ｈ１１の出力とＥｎａｂｌｅ信号生成回路Ｈ１２の出力がＡＮＤ回路２２１へ入力され、このＡＮＤ回路２２１の出力端子がｍｅｍｏｒｙ２（符号（Ｈ））のＷＥ（ライトイネーブル）端子へ接続される。この結果得られる図１８（ｂ）のアドレスデコーダ部は、共通化する前の図１８（ａ）に比べて簡略化され、その回路が占める面積も削減できる。
【００６１】
次に、図１５の回路を共通化した場合の回路図を図１９に示す。これは、図１５におけるＥｎａｂｌｅ信号生成回路Ｉ２とＥｎａｂｌｅ信号生成回路Ｊ２が、ともに０ｘ１４１２番地のアドレスが入力された場合にアクティブ信号“１”を出力することに基づいて共通化されている。また、図１５におけるＥｎａｂｌｅ信号生成回路Ｊ１とＥｎａｂｌｅ信号生成回路Ｋ１が、ともに０ｘ１４１１番地のアドレスが入力された場合にアクティブ信号“１”を出力することに基づいて共通化されている。
【００６２】
この図１９のＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））に接続されるＥｎａｂｌｅ信号生成回路Ｊ１とＥｎａｂｌｅ信号生成回路Ｊ２について、さらに上述の手順と同様にＥｎａｂｌｅ信号生成回路の面積最適化を行った場合の回路図を図２０の（ｂ）に示す。
【００６３】
この図２０（ｂ）において、バス２１０のａｄｄｒ（アドレス）端子には、バス２１０から出力されるアドレスの下位１桁が０ｘ１の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｊ１０と、バス２１０から出力されるアドレスの上位３桁が０ｘ１４１の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｊ１１と、バス２１０から出力されるアドレスの下位１桁が０ｘ２の場合にアクティブ信号“１”を出力するＥｎａｂｌｅ信号生成回路Ｊ１２が接続されている。
【００６４】
そして、Ｅｎａｂｌｅ信号生成回路Ｊ１０の出力とＥｎａｂｌｅ信号生成回路Ｊ１１の出力がＡＮＤ回路２３０へ入力され、このＡＮＤ回路２３０の出力端子がＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））のＯＥ（アウトプットイネーブル）端子へ接続される。また、Ｅｎａｂｌｅ信号生成回路Ｊ１１の出力とＥｎａｂｌｅ信号生成回路Ｊ１２の出力がＡＮＤ回路２３１へ入力され、このＡＮＤ回路２３１の出力端子がＦＦ１（ｂｉｔ５〜７）（符号（Ｊ））のＷＥ（ライトイネーブル）端子へ接続される。
【００６５】
なお、上述の説明では、各アドレスを１６進単位に着目し、Ｅｎａｂｌｅ信号生成回路の面積最適化を行ったが、１６進単位ではなく、２進単位で行ってもよい。
【００６６】
図２１は、この発明の第四の実施形態によるバスインタフェース回路作成装置３００を適用したシステムの概略ブロック図である。
３０１は、入力されるバスインタフェース記述から記憶素子に対する先頭グローバルアドレスとアドレス範囲やバスのアドレス幅を抽出する抽出部である。３０２は、抽出部３０１が抽出したアドレス範囲を指定可能な最小のアドレス線の本数ｎを計算する演算部である。３０３は、メモリの先頭アドレスの下位ｎビットがすべて０であるか否かを検出するチェッカー部である。３０４は、下位ｎビットの中に、１が存在する場合に、ユーザへ警告を行う警告部である。
【００６７】
３０５は、チェッカー部の検出結果においてメモリの先頭アドレスの下位ｎビットがすべて０であった場合に、前記グローバルアドレスの下位ｎビットを前記記憶素子のアドレス入力とし、前記グローバルアドレスの下位ｎビット以外のアドレス値を利用して、Ｅｎａｂｌｅ信号回路を生成し、バスインタフェース回路３１を出力する回路生成部である。
【００６８】
次に、上述の構成による装置の動作について図２２のフローチャートを用いて説明する。ここで、バス側のアドレス信号線は、１６ビットあるものとする。まず、名称がｍｅｍｏｒｙ１であり、先頭グローバルアドレスが０ｘ１４００番地であり、アドレス範囲が０ｘ１４００番地から０ｘ１７ｆｆ番地である記憶素子についてバスインタフェース記述３０が入力された場合について説明する。
【００６９】
まず、バスインタフェース記述３０が入力されると（ステップＳ３０１）、抽出部３０１は、入力されたバスインタフェース記述３０から、記憶素子の先頭アドレスと、メモリサイズを抽出し（ステップＳ３０２）、演算部３０２へ出力する。次に、演算部３０２は、抽出部３０１が抽出したメモリのサイズから最小のアドレス線本数ｎを求める（ステップＳ３０３）。この場合、メモリのサイズは１０２４バイトであり、先頭アドレスは０ｘｌ４００番地である。次に、演算部３０２は、１０２４バイトというメモリサイズから、最小のアドレス線の本数を求める。メモリのサイズが１０２４バイトであるので、２のｎ乗＝１０２４の式に基づいて、ｎ＝１０（本）が算出される。
演算部３０２によって算出された最小のアドレス線ｎの値１０に基づき、チェッカー部は、先頭アドレス０ｘ１４００番地の下位１０ビットがすべて０であるか否かを検出する（ステップＳ３０４）。
【００７０】
先頭アドレス０ｘ１４００番地を２進数で表わすと、
０００１  ０１００  ００００  ００００  …（符号（７））
である。従って、チェッカー部は、２進数（符号（７））の下位１０ビットが全て０であると検出し（ステップＳ３０５）、検出結果を回路生成部３０５へ出力する。
【００７１】
次に、回路生成部３０５は、チェッカー部から検出結果が入力されると、図２３に示す回路を生成する。まず、バス３１０の１６ビットのアドレス信号線のうち、下位１０ビットがｍｅｍｏｒｙｌ（符号（ａ））のアドレス入力端子に接続される。そして、バス３１０のアドレス信号線のうち残りの上位６ビットのアドレスと記憶素子の先頭アドレスの上位６ビットとを比較して一致した場合に“１”を出力するＥｎａｂｌｅ信号生成回路を生成する。この場合、上位６ビットは
０００１  ０１
であるので、上位６ビットと記憶素子の先頭アドレスの上位６ビットである０ｘ０５を比較し、一致した場合にＥｎａｂｌｅ信号を出力する回路が生成される。バス３１０から出力されるＲ／Ｗバー信号が“１”すなわち読み出しの場合にｍｅｍｏｒｙ１（符号（ａ））のＯＥ（アウトプットイネーブル）端子が選択され、Ｒ／Ｗバー信号が“０”すなわち書き込みの場合にｍｅｍｏｒｙ１（符号（ａ））のＷＥ（ライトイネーブル）端子が選択され、前述のＥｎａｂｌｅ信号生成回路の出力信号が入力される。
【００７２】
このように、回路生成部３０５が、チェッカー部での判定結果に応じて、バスからのアドレス信号の上位６ビットからＥｎａｂｌｅ信号生成回路を作成するため、Ｅｎａｂｌｅ信号生成回路は、図２３に示すように、比較器１つで構成することができる。さらに、アドレス変換回路は生成しないため、より面積の小さなバスインタフェース回路を生成できる。
【００７３】
次に、名称がｍｅｍｏｒｙ２であり、先頭グローバルアドレスが０ｘ１４０１番地であり、アドレス範囲が０ｘ１４０１番地から０ｘ１８００番地である記憶素子についてバスインタフェース記述３０が入力された場合について図２１と図２２を参照して説明する。
【００７４】
まず、バスインタフェース記述３０が入力されると（ステップＳ３０１）、抽出部３０１は、入力されたバスインタフェース記述３０から、記憶素子の先頭アドレスと、メモリサイズを抽出し（ステップＳ３０２）、演算部３０２へ出力する。
次に、演算部３０２は、抽出部３０１が抽出したメモリのサイズから最小のアドレス本数ｎを求める（ステップＳ３０３）。この場合、メモリのサイズは、１０２４バイトであり、先頭アドレスは０ｘｌ４０１番地である。次に、演算部３０２は、１０２４バイトというメモリサイズから、最小のアドレス線の本数を求める。メモリのサイズが１０２４バイトであるので、２のｎ乗＝１０２４という式に基づき、ｎ＝１０（本）が算出される。
演算部３０２によって算出された最小のアドレス線の本数ｎの値１０に基づき、チェッカー部は、先頭アドレス０ｘ１４０１番地の下位１０ビットがすべて０であるか否かを検出する（ステップＳ３０４）。
先頭アドレス０ｘ１４０１番地を２進数で表わすと、
０００１  ０１００  ００００  ０００１  …（符号（８））
である。従って、チェッカー部は、２進数（符号（８））の下位１０ビットに１が存在する事を検出し（ステップＳ３０５）、ユーザヘ警告を発する（ステップＳ３０７）。
【００７５】
図２３に示すバスインタフェース回路と対比するため、ｍｅｍｏｒｙ２について作成されるバスインタフェース回路を図２４に示す。この図では、Ｅｎａｂｌｅ信号生成回路では、グローバルアドレスと０ｘ１４０１を比較する比較器ｂと、グローバルアドレスと０ｘ１８００を比較する比較器ｃの２つの比較器が必要となる。さらに、アドレス変換のために、減算器ｄが必要になる。従って、図２３に比べ、非常に大きな回路構成となる。この発明により、図２４に示す大きな回路構成となる場合には警告を発することができるため、バスインタフェース回路の面積が不用意に大きくなることを防ぐことが可能である。
【００７６】
また、以上説明したバスインタフェース回路作成装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより施工管理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００７７】
また、「コンピュータ読み取り可能な記録媒体」とは、フロッピーディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インタネット等のネットワークや電話回線等の通信回線を介してプログラムを送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、このプログラムを記憶装置などに格納したコンピュータシステムから伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線などの通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。
【００７８】
また、上述のプログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。また、ＣＰＵは、ダイレクトメモリアクセスコントローラのようにスレーブのハードウェアを能率的に制御できる機能を有するハードウェアであればよい。
【００７９】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【００８０】
【発明の効果】
以上説明したように、この発明によれば、入力されるバスインタフェース記述から、記憶素子のアドレスに関するデータを抽出部によって抽出し、抽出部が抽出したデータに基づいて前記記憶素子が割り当てられたアドレスをビットデータ記憶部へ記憶し、抽出部が抽出したデータとビットデータ記憶部の記憶情報に基づき、新たに割り当てられる記憶素子のアドレスが、既に割り当てられている記憶素子のアドレスと重複しているか否かを検出するようにしたので、中央処理装置から読み書きされる記憶素子のアドレスの競合を来すことなく、バスインタフェースの設計を行うことができる。また、操作ミスなどによってアドレス競合が発生した場合は、ユーザへ警告することによって競合を防止することができる。これらは、新規設計時、ベースアドレス変更時、メモリサイズ変更時等においても、同様に効果が得られる。さらに、この発明によれば、抽出部が抽出したアドレスに基づき、ＧＵＩ（Ｇｒａｐｈｉｃａｌ Ｕｓｅｒ Ｉｎｔｅｒｆａｃｅ）を用いてディスプレイ等の画面上ですることにより、ディスプレイ等で、視覚的にアドレスの配置状況を容易に把握することができる。
【００８１】
請求項２記載の発明によれば、入力されるバスインタフェース記述に基づき、記憶素子に対し中央処理装置が指示する読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かをＲＷアドレス比較部によって比較し、入力されるバスインタフェース記述に基づき、読み出しグローバルアドレス、あるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断部によって判断し、読み出しグローバルアドレスと書き込みグローバルアドレスが一致し、読み出しグローバルアドレスおよび前記書き込みグローバルアドレスがいずれのビットにおいてもアドレスが一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を生成し、更に該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を回路生成部によって読み出しグローバルアドレスと書き込みグローバルアドレスとで共通に生成するようにしたので、中央処理装置から読み出しグローバルアドレスと書き込みグローバルアドレスとで共通のアドレスを配置できる。
【００８２】
請求項３記載の発明によれば、入力されるバスインタフェース記述に基づき、記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かをＲＷアドレス比較部によって比較し、入力されるバスインタフェース記述に基づき、読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断部によって判断し、読み出しグローバルアドレスと書き込みグローバルアドレスが別アドレスであり、読み出しグローバルアドレスと書き込みグローバルアドレスがいずれのビットにおいてもアドレス一致している場合に、該グローバルアドレスが指定された際にアクティブとなるセレクト信号を生成し、更にグローバルアドレスを記憶素子のローカルアドレスに変換する回路を読み出しグローバルアドレスと書き込みグローバルアドレス毎に回路生成部によって生成したので、中央処理装置から読み出しを行う場合と、書き込みを行う場合とで異なるアドレスを配置することができる効果が得られる。
【００８３】
請求項４記載の発明によれば、入力されるバスインタフェース記述に基づき、記憶素子に対して割り当てられた読み出しグローバルアドレスと書き込みグローバルアドレスが一致しているか否かをＲＷアドレス比較部によって比較し、入力されるバスインタフェース記述に基づき、読み出しグローバルアドレスあるいは書き込みグローバルアドレスがビット単位で別アドレスになっているか否かを判断部によって判断し、読み出しグローバルアドレスと書き込みグローバルアドレスが別アドレスであり、読み出しグローバルアドレスまたは書き込みグローバルアドレスの少なくともいずれかがビット単位で別アドレスである場合に、ビット単位で別アドレスであるいずれかのグローバルアドレスが指定された際にアクティブとなるセレクト信号を生成し、更に該グローバルアドレスを該記憶素子のローカルアドレスに変換する回路を読み出しグローバルアドレスと書き込みグローバルアドレス毎に生成し、さらに、グローバルアドレスを記憶素子のローカルアドレスに変換する回路を読み出しグローバルアドレスと書き込みグローバルアドレスのビット毎に回路生成部によって回路を生成したので、中央処理装置から読み出しと書き込みで別アドレスに配置し、さらに、読み出し時において、ビット単位で別のアドレスに配置し、書き込み時において、ビット単位で別のアドレスに配置することができる。これにより、バスインタフェース回路が複雑になる場合においても正確にバスインタフェース回路を作成することができる効果が得られる。
【００８４】
請求項５記載の発明によれば、請求項２ないし請求項４記載の発明においてさらに、生成されたセレクト信号のグローバルアドレスに関するデータをアドレス抽出部によって抽出し、アドレス抽出部が抽出したデータに基づいて、アドレス判定部によって読み出しグローバルアドレスと書き込みグローバルアドレスとをｎ進表現して、上位桁から順に比較判定して、上位桁から連続して一致する上位桁の数を決定し、アドレス判定部で決定した一致する上位桁の数に対応したセレクト信号の共通回路を生成するようにしたので、バスインタフェース回路の面積を最適化することができる。これにより、バスインタフェース回路を構成するハードウェアの面積を小さくすることができる効果が得られる。
【００８５】
請求項６記載の発明によれば、入力されるバスインタフェース記述から前記記憶素子に対する先頭グローバルアドレスとアドレス範囲を抽出部によって抽出し、抽出部が抽出したアドレス範囲の任意のアドレスを個別に指定可能な最小のアドレス線の本数ｎを演算部によって計算し、記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かをチェッカー部によって検出し、チェッカー部の検出結果が記憶素子の先頭アドレスの下位ｎビットがすべて０であった場合に、グローバルアドレスの下位ｎビットを記憶素子のアドレス入力とし、グローバルアドレスの下位ｎビット以外のアドレス値を利用して、回路生成部によってセレクト信号を出力する回路を生成するようにしたので、バスインタフェース回路を構成するハードウェアの面積を小さくすることができるという効果が得られる。
【００８６】
請求項７記載の発明によれば、入力されるバスインタフェース記述から記憶素子の先頭グローバルアドレスとアドレス範囲を抽出部によって抽出し、抽出部が抽出したアドレス範囲に基づき、アドレス範囲の任意にのアドレスを個別に指定可能な最小のアドレス線の本数ｎを演算部によって計算し、記憶素子の先頭アドレスの下位ｎビットがすべて０であるか否かをチェッカー部によって検出し、下位ｎビットの中に、１が存在する場合に、警告部によって警告を行うようにしたので、バスインタフェース回路の面積が不用意に大きくなる場合に、ユーザへ警告することができる。また、ユーザがマウス操作のミス等により、誤って目標以外のアドレスに記憶素子を配置し、バスインタフェース回路の面積が不用意に大きくなる場合においても、ユーザへ警告することができる効果がある。
さらに、この発明によれば、アドレスマップ図等からバスインタフェース回路記述を自動的に生成した場合、ユーザは、バスインタフェース回路を設計することがなくなるため、指定されたアドレス値に従って設計するとどのようなハードウェアになるかを推定せずに、機械的にアドレス値が入力されることになるが、このような場合でも面積的にあまり好ましくないハードウェアが生成されることを防止できる効果が得られる。
【図面の簡単な説明】
【図１】本発明によるバスインタフェース回路作成装置１００を適用したシステムの概略ブロック図である。
【図２】抽出部１０１へ入力されるハードウェア記述の一例であり、スレーブハードウェアから見た記憶素子についての記述である。
【図３】図２におけるハードウェア記述を画面上に表示した場合の図である。
【図４】抽出部１０１へ入力されるバスインタフェース記述の一例であり、ＣＰＵ側のバスインタフェースから見た記憶素子についての記述である。
【図５】図４におけるハードウェア記述を画面上に表示した場合の図である。
【図６】マウス操作によって記憶素子を追加した場合の図である。
【図７】ビットデータ記憶部１０２の各アドレスに対する記憶状態を表わした図である。
【図８】図１におけるバスインタフェース回路作成装置１００を適用したシステムの動作を説明するフローチャートである。
【図９】バスインタフェース回路作成装置１００によって出力されるバスインタフェース回路の一例である。
【図１０】バスインタフェース回路作成装置１００によって出力されるバスインタフェース回路の一例である。
【図１１】本発明によるバスインタフェース回路作成装置２００を適用したシステムの概略ブロック図である。
【図１２】バスインタフェース回路作成装置２００へ入力されるバスインタフェース記述２０の一例である。
【図１３】図１１におけるバスインタフェース回路作成装置２００を適用したシステムの動作を説明するフローチャートである。
【図１４】バスインタフェース回路作成装置２００によって出力されるバスインタフェース回路の一例である。
【図１５】バスインタフェース回路作成装置２００によって出力されるバスインタフェース回路の一例である。
【図１６】Ｅｎａｂｌｅ信号生成回路の面積の最適化を説明するための概略ブロック図である。
【図１７】Ｅｎａｂｌｅ信号生成回路の面積の最適化の手順について説明するためのフローチャートである。
【図１８】Ｅｎａｂｌｅ信号生成回路の面積の最適化を行ったバスインタフェース回路を示す図である。
【図１９】図１５のバスインタフェース回路の共通化を行った図である。
【図２０】図１９のバスインタフェース回路に対し、面積の最適化を行った図である。
【図２１】本発明によるバスインタフェース回路作成装置３００を適用したシステムの概略ブロック図である。
【図２２】図２１におけるバスインタフェース回路作成装置３００を適用したシステムの動作を説明するフローチャートである。
【図２３】バスインタフェース回路作成装置３００によって出力されるバスインタフェース回路の一例である。
【図２４】図２３のバスインタフェース回路と対比するためのバスインタフェース回路である。
【図２５】従来技術を説明するための概略ブロック図である。
【図２６】従来技術を説明するための概略ブロック図である。
【符号の説明】
１００  バスインタフェース回路作成装置
１０１  抽出部
１０２  ビットデータ記憶部
１０３  アドレス競合検出部
１０４  出力部
２００  バスインタフェース回路作成装置
２０１  ＲＷアドレス比較部
２０２  判断部
２０３  回路生成部
３００  バスインタフェース回路作成装置
３０１  抽出部
３０２  演算部
３０３  チェッカー部
３０４  警告部
３０５  回路生成部
【図１】
0003604977.tif 000002
【図２】
0003604977.tif 000003
【図３】
0003604977.tif 000004
【図４】
0003604977.tif 000005
【図５】
0003604977.tif 000006
【図６】
0003604977.tif 000007
【図７】
0003604977.tif 000008
【図８】
0003604977.tif 000009
【図９】
0003604977.tif 000010
【図１０】
0003604977.tif 000011
【図１１】
0003604977.tif 000012
【図１２】
0003604977.tif 000013
【図１３】
0003604977.tif 000014
【図１４】
0003604977.tif 000015
【図１５】
0003604977.tif 000016
【図１６】
0003604977.tif 000017
【図１７】
0003604977.tif 000018
【図１８】
0003604977.tif 000019
【図１９】
0003604977.tif 000020
【図２０】
0003604977.tif 000021
【図２１】
0003604977.tif 000022
【図２２】
0003604977.tif 000023
【図２３】
0003604977.tif 000024
【図２４】
0003604977.tif 000025
【図２５】
0003604977.tif 000026
【図２６】
0003604977.tif 000027