(57)【要約】【課題】  ＩＰ設計者が容易にＲＯＭ内蔵ＭＰＵ(Micro Processor Unit)ソフトＩＰを設計し、ＭＰＵコアＩＰ使用者もプログラムされた大きさと同一のＲＯＭプログラムデータ(ROM program data)を入れることを可能とすること。【解決手段】  ＲＯＭソフトＩＰの初期情報を記述し、ＲＯＭアドレスと命令語を記述する構文を指定するヘッダファイル、終了情報を記述したテイルファイル、及びＲＯＭソフトＩＰの動作を記述する空ファイルを作成し、ＭＰＵプログラムメモリ用ヘキサファイルを選定する段階と、空ファイル内部に、前記ヘッダファイルをコピーし、前記プログラムメモリ用ヘキサファイルでＡＳＣＩＩ文字から構成されたアドレスと命令語によって開始番地と命令語の電子回路設計言語に変換し、テイルファイルをコピーしてＲＯＭコード変換プログラムを生成する段階と、ＲＯＭコード変換プログラムを実行させてＲＯＭソフトＩＰ用ファイルを生成する段階とを備える。        【選択図】  図１
2004192609.tif 000002
【特許請求の範囲】
【請求項１】
（ａ）ＲＯＭソフトＩＰの初期情報を記述し、ＲＯＭアドレスと命令語とを記述する構文を指定するヘッダファイル、終了情報を記述するテイルファイル及びＲＯＭソフトＩＰの動作を記述する空ファイルを作成し、ＭＰＵプログラムメモリ用ヘキサファイルを選定する段階と、
（ｂ）前記空ファイルの内部に、前記ヘッダファイルをコピーし、前記プログラムメモリ用ヘキサファイルでＡＳＣＩＩ文字から構成されたアドレスと命令語とによって開始番地と命令語の電子回路設計言語とに変換し、前記テイルファイルをコピーしてＲＯＭコード変換プログラムを生成する段階と、
（ｃ）前記ＲＯＭコード変換プログラムを実行させてＲＯＭソフトＩＰ用ファイルを生成する段階と
を備えたことを特徴とするＲＯＭソフトＩＰの生成方法。
【請求項２】
前記プログラムメモリ用ヘキサファイルでＡＳＣＩＩ文字から構成されたアドレスと命令語とによって開始番地と命令語の電子回路設計言語とに変換することは、
前記アドレスと命令語とを分析してそれぞれ２進数に変換した後、開始番地と命令語の電子回路設計言語とに変換することを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項３】
前記ＲＯＭソフトＩＰは、ＶＨＤＬ、Ｖｅｒｉｌｏｇを含む電子回路設計言語のいずれかで記述されたことを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項４】
前記ＲＯＭソフトＩＰは、マスクＲＯＭを代替してＭＰＵに内蔵することができることを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項５】
前記ヘッダファイルは、ＩＰに適用するライブラリ、ＩＰの名称及び入出力信号を含む初期情報、ＲＯＭアドレス及び該アドレスにある命令語を記述する構文を指定するが、電子回路設計言語で作成され、
前記テイルファイルは、ＲＯＭの最後のデータを書き込んで終了情報を記述するが、電子回路設計言語で作成されることを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項６】
前記命令語を電子回路設計言語に変換することは、ＡＳＣＩＩ文字から構成されたヘキサファイルの命令語個数を算出し、文字を整数に変換する関数を用いて１０進数で算出することを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項７】
電子回路設計言語で記述された前記ＲＯＭソフトＩＰは、ＭＰＵコアＩＰと併合して部品として内蔵することを特徴とする請求項１記載のＲＯＭソフトＩＰの生成方法。
【請求項８】
前記生成されたＲＯＭソフトＩＰと前記ＭＰＵコアＩＰを併合してＣＡＤツールで回路合成及び検証を行う段階をさらに備えたことを特徴とする請求項７記載のＲＯＭソフトＩＰの生成方法。
【請求項９】
請求項１ないし請求項８のいずれかによるＲＯＭソフトＩＰの生成方法を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロコントローラソフトＩＰに内蔵することが可能なＲＯＭソフトＩＰ(ROM Soft IP)を生成する方法に関し、より詳しくは、ＭＰＵコアＩＰ(MPU core IP)への内蔵が可能なようにＲＯＭソフトＩＰを生成することにより、ＩＰ設計者が容易にＲＯＭ内蔵ＭＰＵ(Micro Processor Unit)ソフトＩＰを設計することが可能で、ＭＰＵコアＩＰ使用者もプログラムされた大きさと同一のＲＯＭプログラムデータ(ROM program data)を入れることが可能なＲＯＭソフトＩＰを生成する方法に関する。
【背景技術】
【０００２】
本明細書で言及される用語について定義すると、次の通りである。
「マイクロコントローラ」はMicro Processor Unitを意味し、以下「ＭＰＵ」と表記し、「ＩＰ」はIntellectual Propertyの略称であって、半導体設計資産を意味し、以下「ＩＰ」と表記する。また、「ＭＰＵコアＩＰ」はＲＯＭを内蔵していないＭＰＵ ＩＰ、「ＭＰＵソフトＩＰ」はＲＯＭを内蔵したＭＰＵ ＩＰをそれぞれ意味し、半導体製造工程のデザインルールに関係なくチップに実現できるように電子回路設計言語で記述する仮想部品(Virtual Component)であって、マイクロプロセッサ機能の半導体設計資産(Semiconductor IP)を意味する。
【０００３】
一方、「ソフトＩＰ」は電子回路の実現ができるようにＶＨＤＬ(Very High speed Description Language)やＶｅｒｉｌｏｇなどの電子回路設計言語で表現された半導体設計資産を意味し、「ＩＰ設計者」は半導体設計資産を創出する者を意味し、「ＩＰ使用者」はＩＰを活用してあるシステムを創出する者を意味する。また、「プログラムデータ」はＲＯＭの内部にプログラムされているＭＰＵ駆動用ヘキサコードなどを意味する。「ハードＩＰ」は電子回路の連結情報からなり、特定のチップ製造会社でのみチップ製造が可能なＩＰを意味する。
【０００４】
以下、従来の技術によってＭＰＵ ＩＰを設計する方法及びこれによる欠点を説明する。
【０００５】
一般に、任意のＭＰＵチップを駆動させるためには、ヘキサコードの形になっている該当ＭＰＵ用命令語集合(Instruction Set)としてのオペレーションコード(Operation code)を活用して該当ＭＰＵの機能が発揮できるようにプログラムして、該当ＭＰＵの内部または外部の読取専用記憶素子（以下、「記憶素子」という。また、「Ｍａｓｋ ＲＯＭ」と「プログラムメモリブロック及び記憶素子ブロック」も同一のブロックを指称するものとする）に書き込まなければならない。従って、ＲＯＭ内蔵ＭＰＵチップは、製造後にも使用者が外部からプログラミングを行えるように、ＥＰＲＯＭ(Erasable Programmable Read Only Memory)またはＥＥＰＲＯＭ(Electrically Erasable Programmable Read Only Memory)などのプログラムが可能な読取専用の不揮発性記憶素子をＭＰＵチップ内部に内蔵して設計しなければならない。
【０００６】
従来の技術によるＭＰＵ ＩＰ実現方法をより詳細に説明するために、下記の表１には従来の技術１〜５のＭＰＵ ＩＰ実現方法をそれぞれのＭＣＵ部分、記憶素子部分、ＩＰ形態、並びに設計体系及び主体に分けて概略的に述べた。
【０００７】
【表１】
2004192609.tif 000003
【０００８】
しかし、表１に示したような従来の技術はそれぞれ次の問題点をもっている。
【０００９】
まず、従来の技術１によるＥＥＰＲＯＭ内蔵ＭＰＵをハードＩＰで設計する方法は、ＭＰＵコア部分はＩＰ設計者が設計し、ＥＥＰＲＯＭ部分はチップ製作者が完成する。従って、チップ製作工程会社が変わると、工程条件を修正して再び設計しなければならないという欠点がある。
【００１０】
従来の技術２のＥＥＰＲＯＭ内蔵ＭＰＵをソフトＩＰで設計する方法は、チップ製造工程が非常に複雑で工程技術に変数が多いため、チップに製造することがほぼ不可能である。従って、ＥＥＰＲＯＭ内蔵ＭＰＵをソフトＩＰで設計する場合には、ＲＯＭを内蔵せず、ＭＰＵコア部分のみ設計しなければならないという欠点がある。
【００１１】
従来の技術３の如く、ＭＰＵチップの使用者から予めプログラミングデータを受領してＲＯＭパターンに変えた後、このパターンに該当するマスクを用いて製作するマスクＲＯＭ内蔵ＭＰＵハードＩＰで設計する方法は、コア部分は設計者が設計し、マスクＲＯＭ部分の設計はＩＰ使用者から予めプログラミングデータを受領し、チップ製作者から工程情報を受けてＣＡＤ(Computer Added Design)ツールに依存して完成する。従って、チップ製作工程会社或いはツールが変わると、工程条件及び設計方法を異ならせて再び設計しなければならないという欠点があり、ＭＰＵハードＩＰの使用者がＩＰ状態ではプログラミングデータを修正することができないという欠点がある。
【００１２】
従来の技術４によるマスクＲＯＭ内蔵ＭＰＵをソフトＩＰで設計する方法は、ＩＰ使用者から予めプログラミングデータを受領し、ＩＰ設計者が特定のＣＡＤツールを用いてマスクＲＯＭコードをパターンに変換して、４Ｋバイトなどと特定されたメモリ区域にデータを刻印する方法でＲＯＭブロックの電子回路を設計し、ＭＰＵコア部分の電子回路を設計した後、別のＣＡＤツールを用いて結合させる方式でＭＰＵソフトＩＰを設計する。従って、ＣＡＤツールが変わると、設計方法を異ならせて再び設計しなければならないという欠点があり、剰余の記憶素子が生成され、ＭＰＵソフトＩＰの使用者がＩＰ状態ではプログラミングデータ（マスクＲＯＭのデータを意味する）を修正することができないという欠点もある。
【００１３】
従来の技術５のマスクＲＯＭ内蔵ＭＰＵをソフトＩＰで設計する方法は、ＩＰ設計者が電子回路設計言語でＭＰＵコアのみ設計し、ＩＰ使用者が常用のＭＰＵプログラミングツールでプログラムしておいた駆動用ヘキサコード（マスクＲＯＭのデータを意味する）を、ＩＰ設計者が手作業によってメモリ用ＶＨＤＬファイルに変換し、既に作成したＭＰＵコアＩＰ用ソースファイルでプログラムメモリの大きさを決定し、アドレスバスと関わりのあるソースファイル部分を修正しなければならない。従って、ＩＰ設計者は、ＣＡＤツールを用いて修正されたＩＰの信頼性を検証するために、それぞれ抽出されたブロックを結合して合成及びシミュレーションなどの検証作業を再び経なければならない煩わしさがあり、多くの手作業によって設計時間が長くかかり、その方法が非常に複雑であるという欠点がある。また、ＭＰＵソフトＩＰの使用者がＩＰ状態ではプログラミングデータを修正することができないという欠点もある。
【００１４】
従って、上述した従来の技術による方法をまとめると、ＥＥＰＲＯＭを内蔵するハードＩＰでは、チップ製作工程会社が変わると、工程条件を修正して再び設計しなければならないという問題点があり、マスクＲＯＭを内蔵するハードＩＰでは、チップ製作工程会社或いはＣＡＤツールが変わると、工程条件及び設計方法を異ならせて再び設計しなければならないという問題点があり、ＭＰＵハードＩＰの使用者がＩＰ状態ではプログラミングデータを修正することができないという問題点がある。
【００１５】
また、ＥＥＰＲＯＭを内蔵するソフトＩＰは、チップ製造工程が非常に複雑で工程技術に変数が多いため、コア部分のみ設計する問題点があり、マスクＲＯＭをパターン形式で内蔵するソフトＩＰは、ＣＡＤツールが変わると、設計方法を異ならせて再び設計しなければならないという問題点があり、剰余の記憶素子が生成され、ＭＰＵソフトＩＰの使用者がＩＰ状態ではプログラミングデータを修正することができないという問題点がある。また、マスクＲＯＭを電子回路設計言語で内蔵するソフトＩＰは、多くの手作業により設計時間が長くかかり、その方法が非常に複雑であり、ＭＰＵソフトＩＰの使用者がＩＰ状態ではプログラミングデータを修正することができないという問題点がある。
【００１６】
半導体集積回路に関し、1個のウェハ上に全てのチップに関するＲＯＭパターンを描画できる技術が記載されている(特許文献１を参照)。
【００１７】
不揮発性メモリが内蔵されたマイクロコンピュータに関し、フラッシュメモリにどのようなプログラムも保存されなかったとき、初期プログラムを伝送プログラムに合わせてフラッシュメモリへ伝送した後、ブートＲＯＭをメモリ空間から除去する技術が知られている(特許文献２を参照)。
【００１８】
命令語解釈機に関し、多様な命令語を扱うためのエミュレーションコード順次機とエミュレーションコードＲＯＭを含むように構成する技術が知られている(特許文献３を参照)。
【００１９】
【特許文献１】韓国公開特許第２００１−１０７５８１号公報
【特許文献２】韓国公開特許第２００１−６９４７号公報
【特許文献３】米国特許第５,９２０,７１３号明細書
【発明の開示】
【発明が解決しようとする課題】
【００２０】
従って、本発明は、かかる問題点を解決するために創出されたもので、その目的は、ＭＰＵに内蔵するマスクＲＯＭのデータをソフトＩＰの形態となるように生成するため、ＭＰＵ駆動用プログラムＲＯＭコード（マスクＲＯＭのデータを意味する）をＶＨＤＬなどの電子回路設計言語ファイルに自動変換するが、ＲＯＭコンポーネントファイルの形態に生成することにより、ＭＰＵソフトＩＰの回路合成過程の簡略化に有用に適用することができ、プログラムされているデータの大きさだけを変換することにより、特定のサイズを有しているマスクＲＯＭよりチップのサイズを最小化するのに有用に適用することが可能なＲＯＭソフトＩＰの生成方法を提供することにある。
【００２１】
本発明の他の目的は、ＭＰＵプログラミングデータ（マスクＲＯＭのデータを意味する）をＭＰＵソフトＩＰの使用者も容易に変換することができ、ＭＰＵの最上位アドレスまで収容することにより外付ＲＯＭの容量まで最大限符号化(coding)することが可能な、独立ファイル形のＲＯＭソフトＩＰを生成する方法を提供することにある。
【００２２】
また、本発明のさらに他の目的は、ＭＰＵソフトＩＰの設計者はＭＰＵコアＩＰにＲＯＭを内蔵したＭＰＵソフトＩＰを容易に最大ＲＯＭ容量まで収容するように設計することができ、ＭＰＵソフトＩＰの使用者はＭＰＵプログラミングデータを独自的に変更、修正、或いはＭＰＵコアＩＰのみ活用できるように削除することを可能にすることにある。
【００２３】
本発明のさらに他の目的は、半導体チップ製造会社のＲＯＭ製造工程技術保有有無に関わりのないように電子回路設計言語で記述することにより、いずれの半導体チップ製造会社でもチップに実現することが可能なＲＯＭソフトＩＰの製造方法を提供することにある。
【課題を解決するための手段】
【００２４】
上記目的を達成するための本発明の一側面は、（ａ）ＲＯＭソフトＩＰの初期情報を記述し、ＲＯＭアドレスと命令語を記述する構文を指定するヘッダファイル、終了情報を記述したテイルファイル、及びＲＯＭソフトＩＰの動作を記述する空ファイルを作成し、ＭＰＵプログラムメモリ用ヘキサファイルを選定する段階と、（ｂ）空ファイル内部に、前記ヘッダファイルをコピーし、前記プログラムメモリ用ヘキサファイルでＡＳＣＩＩ文字から構成されたアドレスと命令語によって開始番地と命令語を電子回路設計言語に変換し、テイルファイルをコピーしてＲＯＭコード変換プログラムを案出する段階と、（ｃ）ＲＯＭコード変換プログラムを実行させてＲＯＭソフトＩＰ用ファイルを生成する段階とを含んでなるＲＯＭソフトＩＰの生成方法を提供する。
【００２５】
一方、プログラムメモリ用ヘキサファイルでＡＳＣＩＩ文字から構成されたアドレスと命令語によって開始番地と命令語を電子回路設計言語に変換する過程では、アドレスと命令語を分析してそれぞれ２進数に変換した後、開始番地と命令語を電子回路設計言語で書き込むことができる。また、ＲＯＭソフトＩＰはＶＨＤＬ、Ｖｅｒｉｌｏｇを含む電子回路設計言語のいずれかで記述することができ、ＲＯＭソフトＩＰはマスクＲＯＭを代替してＭＰＵに内蔵することができる。
【００２６】
また、ヘッダファイルにはＩＰに適用するライブラリ、ＩＰの名称及び入出力信号を含む初期情報、ＲＯＭアドレスとこのアドレスにある命令語を記述する構文を指定するが、電子回路設計言語で作成し、テイルファイルにはＲＯＭの最終データを書き込み、終了文を指定するが、電子回路設計言語で作成することができる。
【００２７】
また、上述した命令語を電子回路設計言語に変換する過程は、ＡＳＣＩＩ文字から構成されたヘキサファイルの命令語個数を算出するが、文字を整数に変換する関数を用いて１０進数を算出することが好ましい。
【００２８】
電子回路設計言語で記述した前記ＲＯＭソフトＩＰは、ＭＰＵコアＩＰと併合して部品のように内蔵することも可能であり、前記ＲＯＭソフトＩＰ生成方法は生成されたＲＯＭソフトＩＰと前記ＭＰＵコアＩＰを併合してＣＡＤツールで回路合成及び検証を行う段階をさらに含むことが可能である。
【００２９】
本発明の他の側面は、上述したようなＲＯＭソフトＩＰの生成方法を実行させるためのプログラムを記録したコンピュータ読取可能な記録媒体を提供する。
【発明の効果】
【００３０】
上述した本発明によれば、生成しようとするＲＯＭソフトＩＰの初期情報を記述したヘッダファイルと終了情報を記述したテイルファイルを作成して具備し、ＲＯＭソフトＩＰの行為を記述する空ファイルを具備し、プログラムメモリ用ヘキサファイルを読み込み、ＲＯＭコード変換プログラムを実行させることにより、マスクＲＯＭを代替してＭＰＵに内蔵することが可能なＲＯＭソフトＩＰの設計時に有用に適用することができ、内蔵ＲＯＭを含む各種のシステムチップ（ＳｏＣ）の設計時にも広く利用することができる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の属する技術分野で通常の知識を有する者が本発明の技術的思想を容易に実施し得る程度に詳細に説明するため、本発明の最も好適な実施例を添付図に基づいて説明する。
【００３２】
本発明は、ＲＯＭソフトＩＰ生成アルゴリズムと命名されるＲＯＭのデータを電子回路設計言語ファイルに変換して新規のＲＯＭソフトＩＰを生成することが可能なアルゴリズムを提案する。「ＲＯＭソフトＩＰ生成アルゴリズム」とは、ＭＰＵソフトＩＰに内蔵或いは外付しなければならない特定の用途と大きさを持っているマスクＲＯＭのデータを、Ｖｉｓｕａｌ Ｃなどのプログラミングソフトウェアで製作することが可能なＲＯＭコード変換プログラムを案出しこれを実行させることにより、電子回路設計言語ファイルに変換してＭＰＵソフトＩＰと併合あるいは挿入しうるように、独立したＲＯＭソフトＩＰを生成するアルゴリズムである。
【００３３】
前記ＲＯＭソフトＩＰ生成アルゴリズムは、特に、ＭＰＵの用途に合わせてそれぞれ異なるようにプログラムされたマスクＲＯＭコード入りのヘキサファイルを読み込み、ＶＨＤＬなどの電子回路設計言語ファイルに変換する方法によってマスクＲＯＭデータの大きさと同一のＲＯＭコンポーネントファイルを生成することにより、チップサイズの最小化に有利であり、ＭＰＵの最上位アドレスも収容可能であり、外付ＲＯＭ部分も内蔵することが可能な各種サイズのＲＯＭソフトＩＰを生成することができ、ＭＰＵコアＩＰの設計者だけでなく使用者もＲＯＭを容易に内蔵することができ、また電子回路設計言語で記述することにより、半導体チップ製造会社のＲＯＭ製造工程技術保有有無に関係なくチップに実現することができ、マスクＲＯＭ形態のメモリブロックが必要な各種のＳｏＣ(System on a Chip)を設計する際にも、ＩＰ使用者が容易に活用することができるという特徴を有したＲＯＭソフトＩＰ生成アルゴリズムである。
【００３４】
以下、添付図を参照して本発明の好適な実施例によるＲＯＭソフトＩＰを生成する方法、及びＭＰＵコアＩＰと合わせてＲＯＭ内蔵ＭＰＵソフトＩＰに適用する方法について具体的に説明する。
【００３５】
まず、ＭＰＵソフトＩＰの概略的な構造及びＩＰ間の連結体系を図２に基づいて説明する。図２はＭＰＵソフトＩＰの概略的な構造及びＩＰ間の連結関係を説明するための概念図である。但し、ＲＯＭ内蔵ＭＰＵソフトＩＰ１０に適用する体系とファイル名は本発明についての説明の便宜を提供するための一例である。
【００３６】
図２を参照すると、Ｉｎｐｒｏｍ.ｖｈｄと命名したＲＯＭソフトＩＰ２０に１６ビットアドレスバス（ａｄｄｒ）が入力されると、８ビット命令語バス（ｄａｔａｏｕｔ）の出力信号を出力するように構成されており、０〜６４ＫＢサイズのＭＰＵ駆動用プログラムを符号化することが可能なＲＯＭソフトＩＰ２０が生成される。ＲＯＭソフトＩＰ２０は、ＥＴ８０３１.ｖｈｄと命名したＭＰＵコアＩＰ３０と併合してＣＡＤツールで回路合成及び検証過程を行った後、ＲＯＭ内蔵ＭＰＵソフトＩＰ２０と併合してＭＰＵソフトＩＰ、ＣＡＤツールで回路合成及び検証過程を行い、ＥＴ８０５１.ｖｈｄと命名したＲＯＭ内蔵ＭＰＵソフトＩＰ１０に適用される。
【００３７】
次に、図１の流れ図を詳細に説明する。
（Ｓ１段階）
ＲＯＭソフトＩＰ２０は、ワークステーションまたはＰＣ環境で使用する電子回路設計言語であって、ＲＯＭソフトＩＰの初期情報を記述したヘッダファイルと終了情報を記述したテイルファイルを作成して具備し、新規のＲＯＭソフトＩＰを記述し始める空ファイルを備え、ＲＯＭソフトＩＰに変換させる対象、すなわちＡＳＣＩＩ文字から構成されたＭＰＵのプログラムメモリ用ヘキサファイルを準備する（Ｓ１）。
【００３８】
ＲＯＭソフトＩＰをより具体的に説明する。図３はヘッダファイル（ｈｅａｄ.ｖｈｄ）の構造を示す図である。ヘッダファイルの内部には、ＩＰに適用するライブラリＡとＩＰの名称、入出力信号Ｂなどに関するＲＯＭソフトＩＰ２０の初期情報を指定し、ＲＯＭアドレスとこのアドレスに入っている命令語を記述する構文Ｃを指定するが、電子回路設計言語で作成して具備する。一方、ヘッダファイルはＶＨＤＬファイル作成形式の国際標準の中からヘッダファイル部分のみを分離したものである。
【００３９】
また、テイルファイルはｔａｉｌ.ｖｈｄと命名して図４に例示した。図４において、テイルファイルの内部にはＲＯＭのデータを書き込み（Ｄ）、終了文（Ｅ）を指定するが、電子回路設計言語で作成して具備する。また、新規のＲＯＭソフトＩＰはｉｎｐｒｏｍ.ｖｈｄと命名し、電子回路設計言語で作成する空ファイルを準備する。一方、テイルファイル（ｔａｉｌ.ｖｈｄ）はＶＨＤＬファイル作成形式のＩＥＥＥ国際標準の中からヘッダファイル部分のみを分離したものである。
【００４０】
また、ＡＳＣＩＩ文字から構成されたＭＰＵのプログラムメモリ用ヘキサファイルを準備する。本例ではｗａｔｃｈ.ｈｅｘという名称の時計機能を駆動させるファイルを準備し、図５に例示した。図５におけるヘキサファイル（ｗａｔｃｈ.ｈｅｘ）はＭＰＵの使用者がプログラムし、ファイルの内部には特定の規則と意味がある。これをより詳細に説明する。ヘキサファイル（ｗａｔｃｈ.ｈｅｘ）の第１行の第１文字（：，ａ）は行の開始を意味する。また、第２〜３文字（０３，ｂ）はこの行に含まれたＯＰコードの数を１６進数で表現したもので、本例の場合はＯＰコードが３つあることを意味する。第４〜７文字（００００，ｃ）はこの行の開始番地を表現したもので、本例では１６進数で００００番地であることを示す。第８〜９文字（００，ｄ）は最後のライン表示であって、最後の場合にのみ０１で表示する。第１０〜１１文字（０２，ｅ）、第１２〜１３文字（１Ｅ，ｆ）、第１４〜１５文字（ＤＤ，ｈ）はこの行に含まれた３つのＯＰコードを意味する。また、第１４〜１５文字（ＤＤ，ｈ）はチェックサムであって、行の最後に表示されている。ヘキサファイルは使用者がどの用途でＭＰＵを使用するかによって符号化(coding)が異なり、長さも異なる。
【００４１】
（Ｓ２段階）
ＲＯＭソフトＩＰ２０は、ＰＣ環境においてＶｉｓｕａｌ ＣなどのプログラミングソフトウェアでＲｏｍＣｏｎｖ.ｅｘｅと命名したＲＯＭコード変換プログラムを案出するが、前記で準備した新規の空のＲＯＭソフトＩＰファイルの内部に前記ヘッダファイル（ｈｅａｄ.ｖｈｄ）をコピーし、プログラムメモリ用ヘキサファイル（ｗａｔｃｈ.ｈｅｘ）を読み込んで、プログラミングソフトウェアの関数を用いてＲＯＭアドレスとデータをＶＨＤＬコードに変換してヘッダファイルのコピーされたＲＯＭソフトＩＰファイルに書き込む（Ｓ２）。
【００４２】
このようなＲＯＭコード変換プログラムは、一般的な設計知識を有している者がプログラミングソフトウェアを用いてスクリプトファイルまたはバッチファイルなどを適切に混合して行わせるように作成することにより実現可能である。次いで、図６を参照して細部アルゴリズムの実現方法を流れ図の一例によって説明する。
【００４３】
ＲＯＭコード変換プログラムをプログラムするためには、まずＭＰＵのプログラムメモリ用原始ファイルをコンパイルして抽出された、ＡＳＣＩＩ文字から構成されたＲＯＭコード用ＨＥＸファイル（Ｆ１）（Ｗａｔｃｈ.ｈｅｘ）の内容を全部読み取って変数（ＦＢｕｆ）に格納する段階をプログラムする（Ｓ２０１）。その後、新しい空のＲＯＭソフトＩＰファイル（Ｆ３）（Ｉｎｐｒｏｍ.ｖｈｄ）の上部に、予め作成されたヘッダファイル（Ｆ２）（ｈｅａｄ.ｖｈｄ）をコピーして書き込むようにプログラムし（Ｓ２０２）、プログラムメモリの大きさだけアドレスが増加したかを確認する変数をＭａｘＡｄｄｒとして「０」に設定するようにプログラムする（Ｓ２０３）。次に、ＦＢｕｆに格納されたプログラムメモリ用ヘキサファイルの第１行を読み取った後、ＬＢｕｆと命名した変数に格納するようにプログラムする（Ｓ２０４）。その後、ＬＢｕｆの第２〜３文字（ｂ）を読み取って変数ｔｅｍｐＳｔｒに格納し、変数ｔｅｍｐＳｔｒと文字一つを整数に変換する関数ａｓｃ２Ｎｕｍを用いて次の数式１で命令語個数の変数Ｎを準備する。
Ｎ＝ａｓｃ２Ｎｕｍ（ｔｅｍｐＳｔｒ（０）（第２文字、０であり、アスキーコード値は４８である））＊１６＋ａｓｃ２Ｎｕｍ（ｔｅｍｐＳｔｒ（１）（第３文字、３であり、アスキーコード値は５１である））・・・式（１）
【００４４】
従って、式（１）で第２〜３文字（ｂ）の０３をアスキー値の３に変換するようにプログラムすることにより、Ｎの数字を準備し（Ｓ２０５）、開始番地を分析してＳｔＡｄｄｒ変数に格納し（Ｓ２０６）、開始番地「ＳｔＡｄｄｒ」がプログラムメモリ増加変数「ＭａｘＡｄｄｒ」より大きいか否かを判断して（Ｓ２０７）、大きい場合には「ＳｔＡｄｄｒ」と「Ｎ」を合算して「ＭａｘＡｄｄｒ」を増加させ（Ｓ２０８）、大きくない場合には「ＳｔＡｄｄｒ」をアドレス（Ａｄｄｒ）と見なし、増加変数「Ｃｎｔ」を「０」とする（Ｓ２０９）。
【００４５】
次に、１つの命令語を分析してＯＰコードを準備し（Ｓ２１０）、このＯＰコードを２進数に変換し（Ｓ２１１）、アドレスと２進数に変換したＯＰコードをＶＨＤＬファイルにＲＯＭソフトＩＰ（ｉｎｐｒｏｍ.ｄ）のヘッダコード及びＲＯＭデータコード（Ｆ４）で書き込む（Ｓ２１２）。その後、アドレスと増加変数「Ｃｎｔ」を各１個ずつ増加させ（Ｓ２１３）、前記命令語個数Ｎが命令語増加変数「Ｃｎｔ」と同一か否かを判断して（Ｓ２１４）、Ｎが最後の命令語増加変数ではなければ、その次の命令語を分析するようにＳ２１０段階に帰還し、最後の命令語係数であれば、ファイルの終わりかを判断して（Ｓ２１５）、終わりでなければ、次の行を読むようにＳ２０４段階に帰還し、終わりであれば、プログラムメモリの大きさを分析し（Ｓ２１６）、テイルファイル（ｔａｉｌ.ｖｈｄ）Ｆ５を用いてＶＨＤＬファイルとしてヘッダファイル、ＲＯＭデータファイル及びテイルファイルを有するｉｎｐｒｏｍ.ｖｈｄ（Ｆ６）に終了コードを書き込み（Ｓ２１７）、終了するようにプログラムする（Ｓ２１８）。
【００４６】
一方、上述したＲＯＭコード用ＨＥＸファイル（ｗａｔｃｈ.ｈｅｘ）は、必ずＭＰＵのプログラムメモリ用原始ファイルをコンパイルして抽出されたものである必要はない。命令語をデータのみで表現したＲＯＭコード用ＨＥＸファイルにも変換することができ、この場合には具体的実施例で開始アドレスを自動に増加させる方法を取ればよい。
【００４７】
（Ｓ３段階）
図２に基づいてＳ２段階以後の過程を説明すると、ＲＯＭソフトＩＰ２０は前記で案出したＲｏｍＣｏｎｖ.ｅｘｅと命名したＲＯＭコード変換プログラムをワークステーションまたはＰＣ環境で実行させることにより、図６ａ及び図６ｂに示すように、Ｉｎｐｒｏｍ.ｖｈｄと命名したＲＯＭソフトＩＰファイル（図６ｂのＦ７）を生成する。一方、このような要領でＲＯＭコード変換プログラムを一度だけ作成すると、前記ＲＯＭコード用ＨＥＸファイル（ｗａｔｃｈ.ｈｅｘ）のみ交替して実行させることにより、同種のＭＰＵに適用することが可能な新規のＲＯＭソフトＩＰ（Ｉｎｐｒｏｍ.ｖｈｄ）用ファイルを生成することができ、前記ヘッダファイル、テイルファイル及びＲＯＭコード用ＨＥＸファイルを変換すると、他の種のＭＰＵにも適用して新規のＲＯＭソフトＩＰ用ファイルを生成することができる。上述したような方法で生成したＲＯＭソフトＩＰファイルの一例を図７に示した。生成されたＲＯＭソフトＩＰファイルは、ヘッダコードのコピーされた部分（Ａ、Ｂ及びＣ）、生成されたＲＯＭデータコード（Ｆ４）部分及びテイルコード（Ｄ及びＥ）部分を含む。但し、図７ではこのようなコードのうちヘッダコードのコピーされた部分（Ａ、Ｂ及びＣ）、生成されたＲＯＭデータコード（Ｆ４）部分を示している。
【００４８】
（Ｓ４段階以後）
上述した方式で生成されたＲＯＭソフトＩＰ（Ｉｎｐｒｏｍ.ｖｈｄ）は、電子回路設計言語で記述したファイルなので、図１に示したＭＰＵコアＩＰ３０と併合して部品のように内蔵することができる。また、一般的なＣＡＤツールで合成及び検証手続きを経る（Ｓ４）と、ＲＯＭ内蔵ＭＰＵソフトＩＰを容易に活用することができる。
【００４９】
本発明の技術的思想は、前記好適な実施例によって具体的に記述されたが、これらの実施例は本発明を説明するためのもので、制限するものではない。本発明の範囲内でいろいろの実施が可能であることを当業者なら理解するであろう。
【００５０】
以上、本発明をＲＯＭソフトＩＰの生成方法を主として説明したが、本発明のメカニズムが様々な類型の命令語を含んでプログラム化することができ、このようなプログラムを記録したコンピュータ記録媒体の形態で配布することができることを当業者なら理解するであろう。コンピュータ読取可能な記録媒体の例としてはハードディスク、フロピーディスク、ハードディスクドライブ及びＣＤ ＲＯＭのような記録型媒体を含むことができる。
【図面の簡単な説明】
【００５１】
【図１】本発明の好適な実施例によるＲＯＭソフトＩＰを生成する方法、及びＭＰＵコアＩＰと合わせてＲＯＭ内蔵ＭＰＵソフトＩＰに適用する方法のフローチャートを示す図である。
【図２】ＭＰＵソフトＩＰの概略的な構造及びＩＰ間の連結関係を説明するための概念図である。
【図３】図１のＲＯＭソフトＩＰを生成する方法のヘッダファイル(head.vhd)の一例を示す図である。
【図４】図１のＲＯＭソフトＩＰを生成する方法のテイルファイル(tail.vhd)の一例を示す図である。
【図５】図１のＲＯＭソフトＩＰを生成する方法のヘキサファイル(watch.hex)の一例を示す図である。
【図６ａ】図１のＲＯＭソフトＩＰ生成アルゴリズムの細部実現段階のフローチャートの前半部を示す図である。
【図６ｂ】図１のＲＯＭソフトＩＰ生成アルゴリズムの細部実現段階のフローチャートの後半部を示す図である。
【図７】図１のＲＯＭソフトＩＰ生成アルゴリズムを行って生成したＲＯＭソフトＩＰファイルの一例である。
【図１】
2004192609.tif 000004
【図２】
2004192609.tif 000005
【図３】
2004192609.tif 000006
【図４】
2004192609.tif 000007
【図５】
2004192609.tif 000008
【図６ａ】
2004192609.tif 000009
【図６ｂ】
2004192609.tif 000010
【図７】
2004192609.tif 000011