(57)【特許請求の範囲】
【請求項１】
回路の動作記述をもとに論理合成する合成装置において、
回路の動作記述をもとに２のべき乗のみを前段から渡してくるか判定する手段と、
上記手段によって前段から２のべき乗のみを渡してくると判定されたときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
を備えたことを特徴とする論理回路の合成装置。
【請求項２】
回路の動作記述をもとに論理合成する合成装置において、
回路の動作記述をシミュレーションしたときに２のべき乗のみを前段から渡してくるか判定するモニタ手段と、
上記モニタ手段によって前段から２のべき乗のみを渡してくると判定されたときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
を備えたことを特徴とする論理回路の合成装置。
【請求項３】
回路の動作記述をもとに論理合成する合成装置において、
回路の動作記述に２のべき乗のみを前段から渡してくるという記述を見つける手段と、
上記手段によって前段から２のべき乗のみを渡してくる記述が見つかったときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
を備えたことを特徴とする論理回路の合成装置。
【請求項４】
コンピュータを、
回路の動作記述をもとに２のべき乗のみを前段から渡してくるか判定する手段と、
上記手段によって前段から２のべき乗のみを渡してくると判定されたときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
して機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項５】
コンピュータを、
回路の動作記述をシミュレーションしたときに２のべき乗のみを前段から渡してくるか判定するモニタ手段と、
上記モニタ手段によって前段から２のべき乗のみを渡してくると判定されたときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
して機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項６】
コンピュータを、
回路の動作記述に２のべき乗のみを前段から渡してくるという記述を見つける手段と、
上記手段によって前段から２のべき乗のみを渡してくる記述が見つかったときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成する手段と、
上記シフタに合成した個所に対応する動作記述の個所にシフタ合成した旨のメッセージを挿入する手段と、
再合成時に、動作記述中の上記メッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは除算器に再合成し直す手段と
して機能させるためのプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、回路の動作記述をもとに論理合成する合成装置および記録媒体に関するものである。
【０００２】
【従来の技術】
従来、ハードウェア記述言語などを用いた論理回路の動作記述からネットリストを合成する場合、乗算の記述があると無条件に乗算器を合成するか、あるいは回路の合成に際して制限を課して、２つのべき乗の乗算のみからなるシフタを合成する方法を採用していた。
【０００３】
【発明が解決しようとする課題】
このため、回路全体の観点からは無駄な乗算器が合成されたり、あるいは回路の合成に際しての制限を記述したりなどの設計者に対して大きな負担となってしまうという問題があった。即ち、動作記述の意味上では乗算を行っているにも関わらず、シフタを合成させるためのシフト演算を記述したり、論理合成装置の制限に従い複雑な記述を行う必要があった。
【０００４】
本発明は、これらの問題を解決するため、回路の動作記述上で前段から出力される信号の変化が２のべき乗のときに後段の乗算あるいは除算をシフタとして自動合成し、回路構成を簡易にすることを目的としている。
【０００５】
【課題を解決するための手段】
図１を参照して課題を解決するための手段を説明する。
図１において、動作記述１は、論理回路の動作を記述したものである。
【０００６】
論理シミュレータ２は、動作記述をもとに論理的に動作シュミレーションを行い、モニタ情報（ここでは、２のべき乗を前段から渡されるかの情報）３を採取するものである。
【０００７】
論理合成装置４は、動作記述１をもとに合成するものであって、ここでは、論理シュミレータ２で収集されたモニタ情報３などをもとに乗算器あるいは除算器をシフタにして合成したりなどするものである。
【０００８】
次に、動作を説明する。
論理合成装置４が２のべき乗のみを渡してくると判明したときに、動作記述中の後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成するようにしている。
【０００９】
また、論理シュミレータ２が動作記述１をもとに論理的にシュミレーションを行い、２のべき乗のみを前段から渡してくるかのモニタ情報３を採取し、論理合成装置４がモニタ情報３を渡されたときに後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成するようにしている。
【００１０】
また、論理合成装置４が動作記述中に前段から２のべき乗のみを渡してくる記述を見つけたときに、後段の乗算記述あるいは除算記述をシフタにして合成し、一方、それ以外のときに乗算あるいは除算のままで合成するようにしている。
【００１１】
これらの際に、シフタを合成した個所に対応する動作記述１の個所にシフタ合成した旨のメッセージを挿入しておき、再合成時に、動作記述１中のメッセージの個所で２のべき乗のみを渡してくると判明したときはシフタのまま、そうでないときはシフタを乗算器あるいは乗算器に再合成し直すようにしている。
【００１２】
従って、回路の動作記述１上で前段から出力される信号の変化が２のべき乗のときに後段の乗算あるいは除算をシフタとして自動合成することにより、回路構成を簡易にすることが可能となる。
【００１３】
【実施例】
次に、図１から図６を用いて本発明の実施の形態および動作を順次詳細に説明する。
【００１４】
図１は、本発明のシステム構成図を示す。
図１において、動作記述１は、論理回路の動作を記述したものであって、例えば後述する図２の（Ｂ），（Ｃ）に記述したものである。
【００１５】
論理シミュレータ２は、動作記述をもとに論理的に動作のシュミレーションを行うものであって、ここでは、２のべき乗を前段から渡されるかのモニタ情報３を採取するものである。
【００１６】
モニタ情報３は、シュミレーション時に前段から２のべき乗の信号を渡される旨の情報である。
論理合成装置４は、動作記述１をもとに回路を合成するものであって、ここでは、論理シュミレータ２で収集されたモニタ情報（２のべき乗を前段から渡される情報）をもとに乗算器あるいは除算器をシフタにして合成したりなどするものである。
【００１７】
ネットリスト５は、合成されたネットリストであって、後述する図３の（Ｂ），（Ｃ）に示すような回路図に対応するものである。
図２は、本発明の説明図（その１）を示す。
【００１８】
図２の（Ａ）は、前段の論理と、合成対象のモジュールとの関係図を示す。
図２の（Ａ）において、前段の論理（Ａ−１）は、出力される複数の信号線の信号がここでは２のべき乗で変化し、合成対象のモジュール（Ａ−２）に入力するものである。
【００１９】
合成対象のモジュール（Ａ−２）は、合成対象の乗算器あるいは除算器を持つものである。
図２の（Ｂ）は、前段の論理の出力（合成対象のモジュールの入力ｉ１）が２のべき乗になっている場合のＨＤＬ（論理記述）の記述例を示す。ここでは、図示の下記の記述である。
【００２０】
0003986700.tif 000002
この図２の（Ａ）の前段の論理（Ａ−１）の論理記述は、出力の信号線が３本あり、その値ｑは、１００、０１０、００１，０００の４通りのいずれかであり、２のべき乗の信号を出力して合成対象のモジュールに入力していると判明するため、（Ａ−２）の論理記述をシフタで合成する。
【００２１】
図２の（Ｃ）は、合成対象のモジュールのＨＤＬの記述例を示す。ここでは、図示の下記の記述である。
0003986700.tif 000003
この図２の（Ａ）の合成対象のモジュール（Ａ−２）の論理記述は、入力がｉ１とｉ２の２つがあり、ｉ１とｉ２とを乗算した結果を出力するという回路である。この際、図２の（Ｂ）の記述より（あるいは図３で後述する論理シュミレーション結果のモニタ情報より）、ｉ１への入力が２のべき乗であるので、ｉ１とｉ２の乗算を、シフタとし、後述する図３の（Ｂ）に示すように乗算器でなくシフタで合成する。
【００２２】
以上のように、動作記述中で前段から２のべき乗の信号が渡されると判明したときに、渡された先の乗算器あるいは除算器をシフタにして合成することが可能となる。
【００２３】
図３は、本発明の説明図（その２）を示す。
図３の（Ａ）は、動作フローチャートを示す。
図３の（Ａ）において、Ｓ１は、シュミレーション時に入力をモニタするモジュールの選択を行う。これは、論理シュミレータ２を用いシュミレーション開始するときに、２のべき乗の入力があるか否かをモニタする、合成対象のモジュールの選択を行う。
【００２４】
Ｓ２は、モニタしたモジュールの入力変化を保存する。これは、動作記述をもとに論理シュミレータ２が論理的に動作のシュミレーションを行うときに、選択されたモジュールの入力の信号の変化が２のべき乗であるか否かの情報（モニタ情報）を収集して保存する。
【００２５】
Ｓ３は、２のべき乗のみの変化か、判別する。ＹＥＳの場合には、Ｓ１で選択して指定したモジュールの入力の変化が２のべき乗のみの変化と判明したので、Ｓ４でシフタ論理を合成する（乗算器あるいは除算器の代わりにシフタ論理を合成する、図３の（Ｂ））。一方、ＮＯの場合には、Ｓ１で選択して指定したモジュールの入力の変化が２のべき乗のみの変化でないと判明したので、Ｓ５で乗算器論理を合成する（シフタで合成できないと判明したので、動作記述のままの乗算器あるいは除算器で論理合成する，図３の（Ｃ））。
【００２６】
図３の（Ｂ）は、合成結果（シフタ）の例を示す。この場合には、図３の（Ａ）のＳ３のＹＥＳとなり、２のべき乗の信号を渡されると判明したので、動作記述中の乗算をシフタで合成した例である。
【００２７】
図３の（Ｃ）は、合成結果（乗算器）の例を示す。この場合には、図３の（Ａ）のＳ３のＮＯとなり、２のべき乗の信号を渡されないと判明したので、動作記述中の乗算をそのまま乗算器で合成した例である。
【００２８】
以上のように、動作記述を論理シミュレータ２によって論理的に動作のシュミレーションを行い、そのときに指定されたモジュールへの入力が２のべき乗のみが入力されるかをモニタしてモニタ情報として採取し、モニタ情報が２のべき乗のみの信号が入力されると判明した合成対象のモジュールの乗算あるいは除算をシフタで合成することが可能となり、回路構成を自動的に簡易にすることができる。
【００２９】
図４は、本発明の説明図（その３）を示す。
図４の（Ａ）は、論理シミュレータ２からの付加情報により、シフタ論理を合成した場合のＨＤＬ記述の例を示す。ここでは、図示の下記▲１▼のようにチェック用の命令が付加出力される。
【００３０】
0003986700.tif 000004
図４の（Ｂ）は、動作フローチャートを示す。これは、図４の（Ａ）のように、論理シュミレータ２から図４の（Ａ）の▲１▼の付加情報をもとに論理合成するときの手順を示す。
【００３１】
図４の（Ｂ）において、Ｓ１１は、前段の論理や周辺回路部分の論理変更を行う。
Ｓ１２は、再シュミレーションによる論理検証を行う。
【００３２】
Ｓ１３は、チェックメッセージが有るか判別する。これは、図４の（Ａ）の▲１▼のチェックメッセージがあるか判別する。ＹＥＳの場合には、以前に乗算あるいは除算をシフタ論理で合成しているので、今回の変更により、２のべき乗が入力されているとは限らないので、Ｓ１４で乗算器論理を使用し、再論理合成する（この際、２のべき乗の信号が入力されていると判明すれば、シフタ論理合成し、そうでなければ乗算器あるいは除算器で論理合成する）。一方、ＮＯの場合には、Ｓ１５でシフタ論理をそのまま使用して論理合成を行う。
【００３３】
以上によって、シフタ論理合成した場合にはチェックメッセージを挿入しておき、変更などして再シュミレーション時にチェックメッセージがあり、今回でも２のべき乗が入力されていると判明すればシフタ論理合成し、それ以外は乗算器あるいは除算器で論理合成することが可能となる。
【００３４】
図５は、本発明の他のシステム構成図を示す。
図５において、動作記述（論理記述）１は、公知のプラグラマ記述によるシフタ合成指示のある動作記述であって、例えば後述する図６の（Ｂ）に示すような記述である。
【００３５】
論理合成装置４は、プラグマ記述をもとに論理合成するものであって、ここでは、後述する図６の（Ａ）のフローチャートに従い、合成するものである。
ネットリスト５は、合成されたネットリストである。
【００３６】
次に、図６の（Ａ）のフローチャートの順番に従い、図５の構成の動作を詳細に説明する。
図６の（Ａ）は、設計者の指定によりＨＤＬの乗算記述よりシフタを合成する際の手順例を示す。
【００３７】
図６の（Ａ）において、Ｓ２１は、論理記述（ＨＤＬ）の読み込みを行う。これは、例えば図６の（Ｂ）の記述を読み込む。
Ｓ２２は、乗算記述にシフタ合成のプラグマ記述があるか判別する。ＹＥＳの場合には、Ｓ２３でシフタの合成を行う。例えば図６の（Ｂ）の記述を読み込み、当該記述中には▲１▼の部分にプラグマ記述が見つかるので、モジュール１の入力ｉ１（２のべき乗のみの信号である）とｉ２との乗算をシフタで行うように合成し、既述した図３の（Ｂ）のように合成する。一方、Ｓ２２のＮＯの場合には、Ｓ２４で乗算器の合成、即ち既述した図３の（Ｃ）のように合成する。
【００３８】
以上のように、論理記述（動作記述）中に▲１▼のプラグマ記述で指定されていた場合には乗算器をシフタで合成し、回路構成を簡単にすることが可能となる。
図６の（Ｂ）は、シフタ合成を指示するＨＤＬのプラグマ記述の例を示す。ここでは、図示の下記のように記述する。
【００３９】
0003986700.tif 000005
ここで、▲１▼は、プラグマ記述の例であって、入力ｉ１が２のべき乗であるので乗算器をシフタで合成する指示を行っているので、当該▲１▼の指示に従い、乗算器をシフタで合成し、既述した図３の（Ｂ）のように合成する。
【００４０】
【発明の効果】
以上説明したように、本発明によれば、回路の動作記述１上で前段から出力される信号の変化が２のべき乗のときに後段の乗算あるいは除算をシフタとして自動合成する構成を採用しているため、効率の良い回路構成を簡易に合成することができる。これにより、
（１）  従来の動作記述上では乗算器や除算器の記述を、シフタに合成させるためにシフト演算に記述変更する面倒な作業をなくすことが可能となる。
【００４１】
（２）  また、動作記述上では乗算器や除算器の記述を、論理合成装置の制限に従い複雑な記述を行いシフタ合成させるという、複雑な作業を無くすことが可能となる。
【図面の簡単な説明】
【図１】本発明のシステム構成図である。
【図２】本発明の説明図（その１）である。
【図３】本発明の説明図（その２）である。
【図４】本発明の説明図（その３）である。
【図５】本発明の他のシステム構成図である。
【図６】本発明の他の説明図である。
【符号の説明】
１：動作記述（論理記述）
２：論理シュミレータ
３：モニタ情報
４：論理合成装置
５：ネットリスト
【図１】
0003986700.tif 000006
【図２】
0003986700.tif 000007
【図３】
0003986700.tif 000008
【図４】
0003986700.tif 000009
【図５】
0003986700.tif 000010
【図６】
0003986700.tif 000011