(57)【特許請求の範囲】
【請求項１】
コンフィグレーション情報とベースとなるプロセッサのRTL記述を入力とする入力手段と、
前記入力手段からの入力情報に基づいて前記コンフィグレーション情報に対応する機能を備えたRTL記述を生成する生成手段とを備え、
前記生成手段により生成された前記プロセッサのRTL記述は、コンフィグレーション情報を記憶するコンフィグレーション情報記憶手段と、前記コンフィグレーション情報を前記記憶手段から読み出して前記プロセッサの汎用の記憶手段にロードする読み出し手段について記述されていることを特徴とするRTL生成システム。
【請求項２】
前記コンフィグレーション情報は、命令情報又は機能情報であることを特徴とする請求項１記載のRTL生成システム。
【請求項３】
前記プロセッサのRTL記述のうち、前記コンフィグレーション情報記憶手段は、前記コンフィグレーション情報の項目により規定された命令が実装された場合は、前記コンフィグレーション情報記憶手段の予め定められたビットが1にセットされ、実装されていない場合は0にセットされるように記述されていることを特徴とする請求項1又は2記載のRTL生成システム。
【請求項４】
前記プロセッサのRTL記述のうち、前記コンフィグレーション情報記憶手段は、前記コンフィグレーション情報の項目により規定された機能が実装された場合は、前記コンフィグレーション情報記憶手段の予め定められたビットあるいは複数ビットに、その機能を示す情報が格納されるように記述されていることを特徴とする請求項1又は2記載のRTL生成システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システムの要求に合わせて、命令、機能、メモリサイズを構築可能な（コンフィグレーション可能な）プロセッサに係り、特にコンフィグレーション情報を読み出し可能なＲＴＬ生成システム、ＲＴＬ生成方法及びＲＴＬ生成プログラム及び生成されたＲＴＬを用いて設計したＬＳＩ全体の設計情報に基づいて半導体装置を製造する半導体装置の製造方法に関する。
【０００２】
【従来の技術】
近年の半導体技術の進歩により、組込みアプリケーションにおいて、従来ハードウェアで処理したものをプロセッサによってソフトウェアで処理させるようになって来た。この際、個々のアプリケーションによって、必要となる命令、機能、メモリサイズが異なるため、システムに適したプロセッサを短期間で開発することが望まれている。このため、構成（コンフィグレーション）を変更できるプロセッサが開発されて来ている。
【０００３】
【発明が解決しようとする課題】
しかしながら、従来のコンフィグレーション可能なプロセッサでは、変更されたコンフィグレーション情報がハードウェアに埋め込められていなかった。即ち、各プロセッサのレジスタなどにコンフィグレーション情報が保持されていないために、ソフトウェアでコンフィグレーション情報を持つ必要があった。このため、コンパイラ、アセンブラ、シミュレータ、検証プログラムリアルタイムＯＳ、あるいはアプリケーションといった多岐に亙るソフトウェアで、コンフィグレーション情報を個々に管理させる必要があるが、この管理が煩雑であり、特にプロセッサの数が増えると、管理が極めて煩雑になるという問題があった。
【０００４】
これに対して、プロセッサのレジスタなどにメモリサイズ情報を保持して、前記ソフトウェアで管理することを避けた構成も存在するが、メモリサイズだけであるため、コンフィグレーション情報としては足りないという問題があった。
【０００５】
本発明は、上述の如き従来の課題を解決するためになされたもので、その目的は、コンフィグレーション情報をハードウェアで持つことができ、コンフィグレーション情報の管理を極めて容易にして各プロセッサでプログラムの実行部分を最適に選択して実行することができるＲＴＬ生成システム、ＲＴＬ生成方法、ＲＴＬ生成プログラム及び生成されたＲＴＬを用いて設計したＬＳＩ全体の設計情報に基づいて半導体装置を製造する半導体装置の製造方法を提供することである。
【０００６】
【課題を解決するための手段】
上記目的を達成するために、本発明は、コンフィグレーション情報とベースとなるプロセッサのRTL記述を入力とする入力手段と、前記入力手段からの入力情報に基づいて前記コンフィグレーション情報に対応する機能を備えたRTL記述を生成する生成手段とを備え、前記生成手段により生成された前記プロセッサのRTL記述は、コンフィグレーション情報を記憶するコンフィグレーション情報記憶手段と、前記コンフィグレーション情報を前記記憶手段から読み出して前記プロセッサの汎用の記憶手段にロードする読み出し手段について記述されていることを特徴とする。
【００１３】
【発明の実施の形態】
以下、本発明の実施の形態を図面に基づいて説明する。図１は、本発明のシステムの一実施形態の構成を示したブロック図である。本例のプロセッサは、実行制御部１、汎用レジスタ２、ＯＰＴレジスタ３、ＲＧＦＧレジスタ４及びセレクタ５を有し、プロセッサのうちＯＰＴレジスタ３、ＲＣＦＧレジスタ４を読み出す機能を実現する部分の構成を示している。
【００１４】
図２は図１に示したＯＰＴレジスタ３及びＲＧＦＧレジスタ４の構成例を示した模式図である。レジスタ番号１０は、ＯＰＴレジスタ３であり、３２ビット幅で、そのうちビット３１から３までの２９ビットは０となっている。ビット３はＭＵＬビットであり、コンフィグレーションの結果、乗算命令が実装されている場合に１、実装されていない場合に０が固定される。ビット２はＣＯＰビットであり、コンフィグレーションの結果、コプロセッサ命令が実装されている場合に１、実装されていない場合に０に固定される。ビット３はＤＢＧビットであり、コンフィグレーションの結果、デバッグサポートのための機能が実装されている場合に１、実装されていない場合に０に固定される。
【００１５】
レジスタ番号１１は、ＲＣＦＧレジスタ４であり、３２ビット幅で、そのうちビット３１から２３とビット１５から７は０となっている。ビット２２から１６はＩＲＳＺフィールドであり、コンフィグレーションの結果の命令ＲＡＭのサイズを格納している。ビット６から０はＤＲＳＺフィールドであり、コンフィグレーションの結果のデータＲＡＭのサイズを格納している。ＩＲＳＺ，ＤＲＳＺの値と、命令ＲＡＭ、データＲＡＭのサイズの関係は以下の通りである。
【００１６】
ＩＲＳＺ，ＤＲＳＺ  命令ＲＡＭ／データのＲＡＭのサイズ
（２進数表示）
００００００        ０（命令ＲＡＭ／データＲＡＭは実装されない）
０００００１        １ＫＢ
００００１０        ２ＫＢ
０００１００        ４ＫＢ
００１０００        ８ＫＢ
０１００００        １６ＫＢ
１０００００        ３２ＫＢ
次に本実施形態の動作について説明する。図１はプロセッサのうちＯＰＴレジスタ３、ＲＣＦＧレジスタ４を読み出す機能を実現する部分の構成を示している。プロセッサは、ＯＰＴレジスタ３とＲＣＦＧレジスタ４の内容を読み出すために、制御レジスタのロード命令（ｌｄｃ命令）を実行する。ｌｄｃ命令は１６ビットの命令であり、ＯＰコードは以下のように定義される。
【００１７】
０ｌｌｌｎｎｎｎｉｉｉｉｌ０１１
ｎｎｎｎは、プロセッサの汎用レジスタのレジスタ番号を示す。ｉｉｉｉは制御レジスタのレジスタ番号を示す。ＯＰＴレジスタ３の場合（レジスタ番号１０）は、ｉｉｉｉ＝１０１０（２進数）、ＲＣＦＧレジスタ４の場合（レジスタ番号１１）の時は、ｉｉｉｉ＝１０１１となる。ｉｉｉｉにＯＰＴ，ＲＣＦＧレジスタ３、４の番号を指定することによって、ＯＰＴ、ＲＣＦＧレジスタ３、４の値を汎用レジスタ２ヘ読み出すことができる。
【００１８】
ｌｄｃ命令を実行すると、実行制御部１からｎｎｎｎの値が汎用レジスタ選択信号５０へ、ｉｉｉｉの値が制御レジスタ選択信号６０として出力される。同時に実行制御部１は、汎用レジスタ書き込みイネーブル信号７０をアクティブにする。制御レジスタ選択信号６０は、セレクタ５ヘ入力され、セレクタ５は、制御レジスタ選択信号６０の値が１０１０の時はＯＰＴレジスタ３の値を、１０１１の時はＲＣＦＧレジスタ４の値を出力する。
【００１９】
この出力は、汎用レジスタ２ヘ接続され、汎用レジスタ２は、汎用レジスタ書き込みイネーブル信号７０がアクティブなので、実行制御部１から出力される汎用レジスタ選択信号５０で指定される汎用レジスタ２に、セレクタ５から出力された制御レジスタの値を書き込む。汎用レジスタ２ヘ書き込まれたＯＰＴ、ＲＣＦＧレジスタ３、４の保持内容は、プロセッサのその他の命令、例えば、転送命令、算術演算命令、論理演算命令、ストア命令などで処理することができる。
【００２０】
図３に、コンフィグレーションによって、乗算命令、コプロセッサ命令、デバッグ機能が実装された時の、ＯＰＴレジスタ３の構成を示す。ビット３１から３まではＧＮＤに接続され、０が出力される。ＭＵＬビットに対応するビット２、ＣＯＰビットに対応するビット１、ＤＢＧビットに対応するビット０は図示の如くＶＤＤに接続され、１が出力される。
【００２１】
図４に、コンフィグレーションによって、乗算命令、コプロセッサ命令、デバッグ機能が実装されなかった時のＲＣＦＧレジスタ４の構成を示す。ビット３１から３まではＧＮＤに接続され、０が出力される。ＭＵＬビットに対応するビット２、ＣＯＰビットに対応するビット１、ＤＢＧビットに対応するビット０もＧＮＤに接続され０が出力される。図３と図４の例のように、コンフィグレーションによって、ＯＰＴレジスタの構成を変更する必要がある。ＲＣＦＧレジスタ４についても同様に、命令ＲＡＭ、データＲＡＭのサイズによって変更する必要がある。
【００２２】
図５は、本発明のＲＴＬ生成方法及び半導体装置の製造方法の一実施形態を説明する処理手順を示したフローチャートである。プロセッサをコンフィグレーションに合わせて再構成する処理はステップ５０１にて、コンフィグレータ（３０）で行われる。このコンフィグレータ（３０）の入力となるのは、コンフィグレーションの情報２００とコンフィグレーション可能なプロセッサのＲＴＬ記述２０１である。
【００２３】
ここで、コンフィグレーション情報の記述例を以下に示す。
【００２４】
0004125475.tif 000002
この例では、乗算命令（ＭＵＬ）とコプロセッサ命令（ＣＯＰ）が実装され  （ＯＮ）、デバッグ機能（ＤＧＢ）が実装されない（ＯＦＦ）ことを指定している。また、命令ＲＡＭとデータＲＡＭのサイズがともに１６ＫＢであることを示している。
【００２５】
また、コンフィグレーション可能なＲＴＬ記述の例を以下に示す。
【００２６】
0004125475.tif 000003
１行から５行は、乗算命令が実装されているか、実装されていないかを判別する部分である。変数ＭＵＬが定義されている場合、乗算命令が実装されていることとし、ｏｐｔＭＵＬＢｉｔ信号が１になる（行２）。一方、乗算命令が実装されていない場合は、ｏｐｔＭＵＬＢｉｔ信号が０になる（行４）。
【００２７】
６行から１０行は、コプロセッサ命令が実装されているか、実装されていないかを判別する部分である。変数ＣＯＰが定義されている場合、コプロセッサ命令が実装されていることとし、ｏｐｔＣＯＰＢｉｔ信号が１になる（行７）。一方、乗算命令が実装されていない場合は、ｏｐｔＣＯＰＢｉｔ信号が０になる（行９）。
【００２８】
１１行から１５行は、デバッグ機能が実装されているか、実装されていないかを判別する部分である。変数ＤＢＧが定義されている場合、デバッグ機能が実装されていることとし、ｏｐｔＤＢＧＢｉｔ信号が１になる（行１２）。一方、デバッグ機能が実装されていない場合は、ｏｐｔＤＢＧＢｉｔ信号が０になる（行１４）。
【００２９】
行１６では、上位２９ビットの０の信号と、ｏｐｔＭＵＬＢｉｔ信号、ｏｐｔＣＯＰＢｉｔ信号、ｏｐｔＤＢＧ信号を連結して、３２ビットのＯＰＴレジスタ３の値を構成している。
【００３０】
コンフィグレータ（３０）は、コンフィグレーション情報から、ＲＴＬへの定義記述を生成するソフトウェアである。Ｃ言語、Ｃ＋＋言語やｐｅｒｌ言語などで記述される。コンフィグレーション記述から、コンフィグレーション項目の予約語を取り出す。コンフィグレーション項目の予約語としては、本実例では、ＭＵＬ，ＣＯＰ，ＤＢＧ，ＳＩＺＥがある。ＭＵＬ，ＣＯＰ，ＤＢＧについては、実装しているか、実装していないかを示す。実装している場合は、コンフィグレーション記述は“＝ＯＮ”、実装していない場合は、“＝ＯＦＦ”となっている。コンフィグレータ（３０）は、コンフィグレーション記述を読み取り、（予約語）＝ＯＮのケースでは、`define （予約語）という、ＲＴＬ定義記述を生成する。例えば、コンフィグレーション記述
ＭＵＬ＝ＯＮ
の場合、コンフィグレータ（３０）の出力３００は
`define   ＭＵＬ
となる。
【００３１】
コンフィグレーション後のプロセッサを記述したＲＴＬ３００は、ＬＳＩの他モジュール３０１と統合され、ＬＳＩ全体のＲＴＬとなり、その後は、通常のＬＳＩ開発フローと同様に、ステップ５０２で論理合成されてゲートネットリスト４００となる。その後、ゲートネットリスト４００に基づいて設計を完了した後、マスクパターンデータを生成し、このマスクパターンデータに基づいてマスクを作成する。マスク作成後、マスクに基づいてステップ５０４の半導体製造の工程を経てコンフィグレーション情報を読み出し可能な半導体装置６００が完成する。  上記の例では、コンフィグレーションによって実装される命令は、乗算命令とコプロセッサ命令であったが、これに限定されない。例えば、上位から続く０あるいは１のビット数を計算する命令、ビット操作命令、除算命令、飽和演算命令、ＳＩＭＤ命令などがある。
【００３２】
上記の例では、コンフィグレーションによって実装される機能の例として、デバッグ機能を挙げたがこれに限定されない。例えば、メモリ管理ユニットなども、コンフィグレーションによって実装するかしないかを指定する機能として考えられる。
【００３３】
上記の例では、コンフィグレーションによって変更される機能として、命令ＲＡＭ、データムＭのサイズを挙げたが、これに限定されない。例えば、命令ＲＡＭ、データＲＡＭのバンク数、データキャッシュ、命令キャッシュのサイズ、連想度、ラインサイズ、ライト制御方式など、割り込みコントローラのチャネル数、割り込みレベル、例外のベクタアドレスの開始アドレスなどもコンフィグレーションによって変更される機能として考えられる。
【００３４】
本実施形態によれば、変更されたコンフィグレーション情報が、プロセッサのレジスタ３、４に値として保持されているため、ソフトウェアでコンフィグレーション情報を持つ必要がなく。各プロセッサは自己が持っているコンフィグレーション情報に基づいてプログラムの実行部分を最適に選択して実行することができる。また、コンパイラ、アセンブラ、シミュレータ、検証プログラム、リアルタイムＯＳ、あるいはアプリケーションといったソフトウェアで、コンフィグレーション情報を読み出し、対応する処理を実現することを容易に行うことができる。
【００３５】
尚、本発明は上記実施形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。
【００３６】
また、上記したＲＴＬ生成方法は、プログラム化してコンピュータに実行させることにより実施でき、同様の効果を得ることができる。その際、コンピュータプログラムは、フロッピーディスクやハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリなどの各種メモリ、或いは通信ネットワークなどの各種のプログラム記録媒体を通じてコンピュータに供給することができる。
【００３７】
【発明の効果】
以上詳細に説明したように、本発明によれば、コンフィグレーション情報をハードウェアで持つことができ、コンフィグレーション情報の管理を極めて容易にして各プロセッサでプログラムの実行部分を最適に選択して実行することができる。
【図面の簡単な説明】
【図１】本発明のシステムの一実施形態の構成を示したブロック図である。
【図２】図１に示したＯＰＴレジスタ及びＲＧＦＧレジスタの構成例を示した模式図である。
【図３】コンフィグレーションによって、乗算命令、コプロセッサ命令、デバッグ機能が実装された時のＯＰＴレジスタの構成を示す模式図である。
【図４】コンフィグレーションによって、乗算命令、コプロセッサ命令、デバッグ機能が実装されなかった時のＲＧＦＧレジスタの構成を示す模式図である。
【図５】プロセッサをコンフィグレーションに合わせて再構成する処理手順を示したフローチャートである。
【符号の説明】
１  実行制御部
２  汎用レジスタ
３  ＯＰＴレジスタ
４  ＲＣＦＧレジスタ
５  セレクタ
【図１】
0004125475.tif 000004
【図２】
0004125475.tif 000005
【図３】
0004125475.tif 000006
【図４】
0004125475.tif 000007
【図５】
0004125475.tif 000008