(57)【特許請求の範囲】
【請求項１】
キャリ・ルック・アヘッド回路の自動生成装置であって、
処理データのビット長が異なる複数種類の回路モジュールの回路情報と該回路モジュール相互の接続情報が記憶されている回路モジュール記憶手段と、
入力された処理データのビット長と回路モジュールの最大ビット長との演算結果に基づいて、異なるビット長の回路モジュールを組み合わせて前記入力された処理データのビット長になるように、前記回路モジュール記憶手段に記憶されている複数種類の回路モジュールより、適切な回路モジュールを順次選択する前記回路モジュール記憶手段に記憶されている複数種類の回路モジュールを順次選択する回路モジュール選択手段と、
前記回路モジュール選択手段により選択された回路モジュールを該回路モジュールの前記接続情報に基づいて順次接続する回路接続手段と、
前記回路接続手段により接続された回路を表す情報を出力する出力手段と
を有し、
前記回路モジュール記憶手段には、２つの１ビット入力と下位からの桁上げ入力に基づいて上位への桁上げを出力する１ビットキャリ・ルック・アヘッド回路である第１の回路モジュールと、前記第１の回路モジュールにさらに出力バッファを付加した第２の回路モジュールとの前記各情報が記憶され、
前記回路モジュール選択手段は、入力された処理データのビット長より１少ない数の前記第１の回路モジュールを連続して選択し、さらに１つの前記第２の回路モジュールを選択する
回路自動生成装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、たとえばＬＳＩ開発などで用いる回路の設計装置として用いて好ましい、回路自動生成装置に関する。
【０００２】
【従来の技術】
ＣＡＤ装置を利用した回路設計が急速に普及している。特に、ゲートアレイなどの特定用途向けＩＣ（ＡＳＩＣ）としてのＬＳＩの論理回路の回路設計・回路入力は、設計した回路情報がネットリストやレイアウトデータに直接変換可能で、シミュレーションやレイアウトが効率よく行えるため、通常、ＣＡＤ装置を用いて行われている。
ＣＡＤ装置による回路設計において設計者は、まず、予め用意されたライブラリより所望の演算素子を読み出し、画面に表示された回路図の任意の位置に順次配置する。そして、それらの演算素子の入出力端子間を、マウスなどを用いて順次結線することにより回路入力を行う。前記ライブラリには、インバータ・ＡＮＤ・ＯＲ・ＮＡＮＤ・ＮＯＲなどの基本演算素子や、加算器・カウンタ・コンパレータ・マルチプレクサなどの機能演算素子などが格納されている。また、設計者が基本演算素子を組み合わせて構成するより高速または低消費電力で構成可能な演算回路なども、各々１つのモジュールとして格納されている。
【０００３】
また、そのような設計される回路において、通常の基板上に構成される回路で扱われる処理データのビット長は８ビット、１６ビット、３２ビットなどの２のべき乗の値をとる場合が多い。しかし、ＬＳＩ内部の回路においては、ゲート数、消費電力などの制約により、取り扱うデータに必要かつ十分なビット長で設計されることが多い。たとえば、桁上がりを考慮した９ビット、１７ビットと言ったデータや、最大値の制限により１５ビット、３１ビットというビット長での処理も頻繁に行われる。
また、そのビット長の決定に際しては、実際にビット長を変更した回路を入力し、シュミレーションを行い、回路の特性を評価して最終的にビット長を決定する方法で行われる場合も多い。
そのため、特にＬＳＩ内部の回路の設計を行う場合に、処理データのビット長を増減する変更は頻繁に行われる。
【０００４】
【発明が解決しようとする課題】
しかしこのように、ＣＡＤ装置を利用して回路設計を行っても、実際の入力作業は手作業の繰り返しなので、非常に時間がかかるという問題があった。特に、ＬＳＩ内部の回路の設計に際して頻繁に行われる、前述したような処理するデータのビット長の変更は、手間がかかり時間を浪費する場合が多く、回路設計の効率の向上の妨げになっていた。
また、複数のビット長のデータについて処理を行うモジュールを用いて回路を構成していた場合に、たとえば１ビットのデータのビット長の変更が、その１ビットに相当する回路の修正にとどまらず、その処理部全体の見直しを余儀なくされる場合も多い。そのような場合は、大幅な回路の修正をしなければならず、回路設計の効率が非常に低下していた。
【０００５】
したがって本発明の目的は、所望のビット長のデータを処理対象とする回路を自動的に生成でき、したがって、ビット長の変更に伴う回路の再設計が容易に可能な、回路自動生成装置を提供することにある。また、ビット長の変更に伴う回路の再設計が容易に可能とすることにより、設計時間を大幅に短縮可能なＣＡＤ装置を提供することにある。
【０００６】
【課題を解決するための手段】
処理データのビット長の変更は、本来は単純で規則的な変更である。したがって、たとえば１ビット分の処理回路を相互に接続可能なように記憶しておけば、ある程度規則的に直列あるいは並列に接続されている回路は規則的に生成可能なはずである。
そこで、そのような回路モジュールのデータを記憶し、外部よりビット長を入力することにより、任意のビット長のデータを処理可能な回路を自動生成する回路自動生成装置を発明した。また、ビット位置に基づく回路の違いや、規則的な違いは、複数のモジュールを記憶し適宜選択して接続することにより、対応可能にした。さらに、２ビットあるいは４ビットといった複数ビットのデータを処理対象とするモジュールを用い、それらを組み合わせて所望のビット長のデータを処理対象する回路を生成できるようにした。
【０００７】
本発明の回路自動生成装置は、キャリ・ルック・アヘッド回路の自動生成装置であって、処理データのビット長が異なる複数種類の回路モジュールの回路情報と該回路モジュール相互の接続情報が記憶されている回路モジュール記憶手段と、入力された処理データのビット長と回路モジュールの最大ビット長との演算結果に基づいて、異なるビット長の回路モジュールを組み合わせて前記入力された処理データのビット長になるように、前記回路モジュール記憶手段に記憶されている複数種類の回路モジュールより、適切な回路モジュールを順次選択する前記回路モジュール記憶手段に記憶されている複数種類の回路モジュールを順次選択する回路モジュール選択手段と、前記回路モジュール選択手段により選択された回路モジュールを該回路モジュールの前記接続情報に基づいて順次接続する回路接続手段と、前記回路接続手段により接続された回路を表す情報を出力する出力手段とを有し、前記回路モジュール記憶手段には、２つの１ビット入力と下位からの桁上げ入力に基づいて上位への桁上げを出力する１ビットキャリ・ルック・アヘッド回路である第１の回路モジュールと、前記第１の回路モジュールにさらに出力バッファを付加した第２の回路モジュールとの前記各情報が記憶され、前記回路モジュール選択手段は、入力された処理データのビット長より１少ない数の前記第１の回路モジュールを連続して選択し、さらに１つの前記第２の回路モジュールを選択する。
【００１４】
【実施例】
第１実施例
本発明の第１実施例の回路自動生成装置について、図１〜図４を参照して説明する。
まず，第１実施例の回路自動生成装置の構成について図１を参照して説明する。
図１は第１実施例の回路自動生成装置の構成を示すブロック図である。
回路自動生成装置１０は、入力部１１、ビット長記憶部１２、モジュール選択部１３、基本モジュールａ生成部１４、基本モジュールｂ生成部１５、生成回路記憶部１６、減算部１７、および、出力部１８より構成される。
本実施例の回路自動生成装置１０は、論理回路などを設計する場合に用いるＣＡＤ装置に組み込まれているものである。
【００１５】
以下、各部の動作について説明する。
入力部１１は、キーボードなどの入力機器であって、この入力部１１より作業者により回路のデータ幅であるビット長Ｂが入力される。入力されたビット長Ｂはビット長記憶部１２に、モジュールを選択するためのパラメータＮとして記憶される。なお、このビット長Ｂは、データのビット幅であるから、通常２以上の整数が入力される。
ビット長記憶部１２は、メモリで構成されるデータ記憶回路であり、入力部１１より入力されたビット長Ｂ、および、後述する減算部１７により更新されたパラメータＮnew を、モジュールを選択するためのパラメータＮとして記憶する。ビット長記憶部１２に記憶されたパラメータＮは、モジュール選択部１３および減算部１７より読み出し可能である。
【００１６】
モジュール選択部１３は、ビット長記憶部１２に記憶されているパラメータＮに基づいて基本モジュールを選択する選択部である。モジュール選択部１３は、パラメータＮが２以上の場合には、所定の選択線を介してその旨を示す選択信号Ｓ１を、基本モジュールａ生成部１４、および、減算部１７に印加する。また、パラメータＮが１の場合には、所定の選択線を介してその旨を示す選択信号Ｓ２を、基本モジュールｂ生成部１５、および、出力部１８に印加する。
【００１７】
基本モジュールａ生成部１４は、モジュール選択部１３より選択信号Ｓ１が印加されると、基本モジュールａ生成部１４内に記憶している基本モジュールａを実回路情報として生成し、生成回路記憶部１６に出力する。基本モジュールａ生成部１４には、基本モジュールａを構成する演算素子とそれらの結線情報、他素子との接続情報、および、素子の遅延などの回路の特性情報が記憶されている。したがって、基本モジュール生成部１４は、それらの情報を読み出し、信号名などの識別情報を付加することにより、他の素子と接続可能で回路図面などに配置可能な実回路情報として生成する。
基本モジュールｂ生成部１５は、モジュール選択部１３より選択信号Ｓ２が印加されると、基本モジュールｂ生成部１５内に記憶している基本モジュールｂを実回路情報として生成し、生成回路記憶部１６に出力する。その記憶されている情報、および、実回路情報の生成については、前述した基本モジュールａ生成部１４と同じである。
【００１８】
生成回路記憶部１６は、基本モジュールａ生成部１４および基本モジュールｂ生成部１５により順次生成される基本モジュールを、入力される順序で順次接続させて記憶する記憶部である。この接続の仕方の情報は、予め基本モジュールａ生成部１４および基本モジュールｂ生成部１５に記憶されている、それぞれの基本モジュールの情報内に記述されている。
減算部１７は、モジュール選択部１３より選択信号Ｓ１が印加されると、ビット長記憶部１２に記憶されているビット長のパラメータＮより１を減じ、この減算結果の新たなパラメータＮnew をビット長記憶部１２に入力する。すなわち、モジュール選択部１３より生成モジュールとして基本モジュールａが選択されるごとに、ビット長記憶部１２に記憶されているビット長のパラメータＮより１を減じて順次更新する。
【００１９】
出力部１８は、モジュール選択部１３より選択信号Ｓ２が印加されると、それまで基本モジュールａ生成部１４および基本モジュールｂ生成部１５により生成され、生成回路記憶部１６により順次接続され記憶されていた回路情報を読み出し出力する。この出力された情報は、回路図面の指定された位置に配置され、また、ディスプレイなどの出力機器上に、作業者より目視可能な状態に表示される。
【００２０】
次に、この回路生成装置１０による回路自動生成の動作について、図２および図３を参照して具体的に説明する。
本実施例において、回路自動生成装置１０は、加算器などに頻繁に用いられるキャリ・ルック・アヘッド回路（桁上げ先見信号、以後ＣＬＡ回路と言う）について、所望のビット数のＣＬＡ回路を生成する回路自動生成装置である。
図２は、基本モジュールａ生成部１４および基本モジュールｂ生成部１５に記憶されている基本モジュールを示す図であり、（Ａ）はＣＬＡ回路の１ビット分の論理回路に相当する基本モジュールａを示す図、（Ｂ）はＣＬＡ回路の１ビット分の論理回路に出力用のバッファが付加された構成の基本モジュールｂを示す図である。
【００２１】
図３は、回路自動生成装置１０により生成された回路を示す図であり、４ビットのＣＬＡ回路である。図３に示すように、４ビットのＣＬＡ回路は、４ビットの桁上がりチェック用の回路が直列に接続されており、さらに最終回路の出力部には出力用のバッファが付加された構成である。したがって、図２に示した基本モジュールで示せば、図２（Ａ）に示した基本モジュールａを３つと、図２（Ｂ）に示した基本モジュールｂを１つが、順次接続された状態である。
【００２２】
以下、４ビットのＣＬＡ回路を生成する場合の、回路自動生成装置１０の動作について説明する。
まず、入力部１１よりビット長の入力値として４が入力され、ビット長記憶部１２にパラメータＮとして記憶される。モジュール選択部１３においては、そのパラメータＮを参照し、Ｎ≠１なので選択信号Ｓ１が選択される。その結果、基本モジュールａが選択され、基本モジュールａ生成部１４により生成された図２（Ａ）に示す回路が、生成回路記憶部１６に記憶される。一方、選択信号Ｓ１が印加された減算部１７において、ビット長記憶部１２に記憶されているパラメータＮより１が減じられ、新たなパラメータＮnew としてビット長記憶部１２にセットされる。
【００２３】
以降、その更新されたパラメータに基づいて回路生成の処理が繰り返される。２回目の基本モジュールの選択時には、パラメータＮは３でＮ≠１なので、前述した１回目の場合と同様に、再び基本モジュールａが生成される。さらに、３回目の回路生成時も、Ｎ＝２なので、同様に基本モジュールａが生成される。生成された３つの基本モジュールａは、生成回路記憶部１６において、順次接続されて記憶される。
【００２４】
３つの基本モジュールａを生成した後、ビット長記憶部１２に記憶されているパラメータＮは１となっている。そのため４回目の回路生成時は、パラメータＮ＝１なので、モジュール選択部１３において選択信号Ｓ２が選択される。その結果、基本モジュールｂが選択され、基本モジュールｂ生成部１５により生成された図２（Ｂ）に示す回路が、生成回路記憶部１６に入力され、それまでの回路と接続されて記憶される。その結果、生成回路記憶部１６には図３に示すような４ビットＣＬＡ回路が生成される。そして、選択信号Ｓ２は同時に出力部１８に印加され、出力部１８はこのＣＬＡ回路を生成回路記憶部１６より読み出し出力する。
【００２５】
なお、この回路自動生成装置１０は、ワークステーションなどに搭載されたＣＡＤツールなどにおいても実現可能である。第１実施例の回路自動生成装置１０を、そのようなコンピュータ装置に適用した場合の処理について図４を参照して説明する。
図４は、回路自動生成装置１０をコンピュータ装置により実現した場合の、フローチャートを示す図である。
【００２６】
まず、ステップ１１で入力装置より入力されたビット長を変数Ｎにセットする。次に、ステップ１２でＮ＝１か否かを調べ、Ｎ≠１の場合にはステップ１３においてメモリに記憶されている基本モジュールａの回路を生成する。そして、ステップ１４でＮより１を減じて、再びステップ１２より処理を繰り返す。ステップ１２においてＮ＝１となったら、ステップ１５において基本モジュールｂの回路を生成する。そして、ステップ１６においてそれまで生成され記憶された基本モジュールを順次接続し出力する。
【００２７】
このように、第１実施例の回路自動生成装置によれば、入力されたビット長のＣＬＡ回路を生成することができる。また、生成する順序に従って、回路モジュールを選択することができるので、たとえば、最終段の出力のみ出力バッファが付加されているような、ビット位置により回路構成が多少異なるような場合においても、適切に回路が生成できる。
【００２８】
第２実施例
本発明の第２実施例の回路自動生成装置について、図５〜図８を参照して説明する。
まず，第２実施例の回路自動生成装置の構成について図５を参照して説明する。
図５は第２実施例の回路自動生成装置の構成を示すブロック図である。
回路自動生成装置２０は、入力部２１、ビット長記憶部２２、剰余算出部２３、モジュール選択部２４、４ビットモジュール生成部２５、３ビットモジュール生成部２６、２ビットモジュール生成部２７、生成回路記憶部２８、減算値決定部２９、減算部３０、判定部３１、および、出力部３２より構成される。
本実施例の回路自動生成装置２０も第１実施例の回路自動生成装置１０と同様に、論理回路などを設計する場合に用いられるＣＡＤ装置に組み込まれているものである。
【００２９】
以下、各部の動作について説明する。
入力部２１は、キーボードなどの入力機器であって、この入力部２１より作業者により回路のデータ幅であるビット長Ｂが入力される。入力されたビット長Ｂはビット長記憶部２２に記憶される。なお、このビット長Ｂはデータのビット幅であるから、通常２以上の整数が入力される。
ビット長記憶部２２は、メモリで構成されるデータ記憶部であり、入力部２１よりデータを入力され、後述する判定部３１によりそのデータを逐次更新される。このビット長記憶部２２に記憶されているデータが回路生成をするビット長を表すパラメータＮである。ビット長記憶部２２に記憶されたパラメータＮは、剰余算出部２３および減算部３０より読み出し可能である。
【００３０】
剰余演算部２３は、ビット長記憶部２２に記憶されているパラメータＮを所定数で除し、その余りを求め、モジュールを選択するためのパラメータＭとしてモジュール選択部２４、減算値決定部２９に出力する。前記所定の除数は、後述するモジュール生成部で生成される基本モジュールの最大ビット長により決定される数値であって、本実施例においては４である。したがって、その余りであるパラメータＭは０〜３の値をとる。
【００３１】
モジュール選択部２４は、剰余算出部２３より入力されたパラメータＭに基づいて基本モジュールを選択する選択部である。モジュール選択部２４は、パラメータＭをデコードし、そのパラメータＭの値に応じた選択信号を生成し、その信号を対応するモジュール生成部に印加する。本実施例においては、パラメータＭは０〜３の４値をとるため、モジュール選択部２４は４つの選択信号Ｓ０〜Ｓ３のいずれかを生成し、各選択信号に対応する４本の出力信号線を介して各モジュール生成部に信号を印加する。具体的には、パラメータＭが０の場合は、４ビットモジュール生成部２５に選択信号Ｓ０が印加され、パラメータＭが１の場合には、３ビットモジュール生成部２６と２ビットモジュール生成部２７に選択信号Ｓ１が印加され、パラメータＭが２の場合には、２ビットモジュール生成部２７に選択信号Ｓ２が印加され、パラメータＭが３の場合には、３ビットモジュール生成部２６に選択信号Ｓ３が印加される。
【００３２】
４ビットモジュール生成部２５は、モジュール選択部２４より選択信号Ｓ０が印加されると、４ビットモジュール生成部２５内に記憶している４ビットモジュールを実回路情報として生成し、生成回路記憶部２８に出力する。その記憶されている情報、および、実回路情報の生成については、前述した第１実施例と同じである。
３ビットモジュール生成部２６は、モジュール選択部２４より印加される選択信号Ｓ２および選択信号Ｓ３に基づいて、４ビットモジュール生成部２５と同様に３ビットモジュールを生成する。
２ビットモジュール生成部２７は、モジュール選択部２４より印加される選択信号Ｓ１および選択信号Ｓ２に基づいて、２ビットモジュールを生成する。
【００３３】
生成回路記憶部２８は、４ビットモジュール生成部２５、３ビットモジュール生成部２６、および、２ビットモジュール生成部２７により順次生成される基本モジュールを、入力される順序で順次接続させて記憶する記憶部である。この接続の仕方の情報は、予め前記各モジュール生成部に記憶されている、それぞれの基本モジュールの情報内に記述されている。
【００３４】
減算値決定部２９は、剰余算出部２３により算出されたパラメータＭに基づいて、モジュール選択部２４により選択された回路モジュールの、ビット長を求め、減算値Ｐとして減算部３０に出力する。前記ビット長は、各回路モジュールの記憶時に、各回路モジュールに対応して予め減算値決定部２９内に記憶されているテーブルを参照して求める。本実施例においては、パラメータＭ＝０の場合は減算値Ｐ＝４、パラメータＭ＝１の場合は減算値Ｐ＝５，パラメータＭ＝２の場合は減算値Ｐ＝２、パラメータＭ＝３の場合は減算値Ｐ＝３が求められ出力される。
なお、本実施例の減算値決定部２９においては、この減算値Ｐは剰余算出部２３より算出されたパラメータＭに基づいて求めたが、同じくこのマラメータＭに基づいて生成されたモジュール選択部２４から出力される選択信号Ｓ０〜Ｓ３を用いて求めるようにしてもよい。
【００３５】
減算部３０は、ビット長記憶部２２に記憶されているビット長のパラメータＮより、減算値決定部２９により選択された減算値Ｐを減じ、減算結果Ｎnew を算出し、判定部３１に出力する。すなわち、回路モジュールが順次選択されるごとに、選択された回路モジュールのビット長に相当する値をビット長のパラメータＮより減じ、回路生成待ちのビット長Ｎnew を求める。
【００３６】
判定部３１は、減算部３０より入力された減算結果Ｎnew に基づいて、再びモジュール生成の処理を繰り返すか、処理を終了して生成された回路を出力するかを判定する。減算結果Ｎnew は、これから生成されるべき回路のビット長を示す値なので、判定部３１においては、この減算結果Ｎnew が０以下の場合には処理を終了し、０より大きい場合は引き続き回路生成の処理を行う。したがって、減算結果Ｎnew が０以下の場合には出力部３２にこれまでに生成し記憶されている回路データを出力するような信号を出力する。また、減算結果Ｎnew が０より大きい場合には、ビット長記憶部２２に減算結果Ｎnew を入力し、ビット長記憶部２２に記憶されているパラメータをこの減算結果Ｎnew で更新する。
【００３７】
出力部３２は、判定部３１より出力信号が印加されると、それまで４ビットモジュール生成部２５、３ビットモジュール生成部２６、および、２ビットモジュール生成部２７により生成され、生成回路記憶部２８で順次接続され記憶されていた回路情報を読み出し出力する。この出力された情報は、回路図面の指定された位置に配置され、また、ディスプレイなどの出力機器上に、作業者より目視可能な状態に表示される。
【００３８】
次に、この回路自動生成装置２０による回路自動生成の動作について、図６および図７を参照して具体的に説明する。
本実施例において、回路自動生成装置２０は、第１実施例同様に、ＣＬＡ回路について、所望のビット数のＣＬＡ回路を生成する回路自動生成装置である。なお、第２実施例においては、４ビット、３ビット、および、２ビットそれぞれについて最適な構成のＣＬＡ回路が予めライブラリとして用意されており、これらを基本回路モジュールとして用いて、任意のビット長のＣＬＡ回路を生成する路自動生成装置である。
図６は、４ビットモジュール生成部２５、３ビットモジュール生成部２６、および、２ビットモジュール生成部２７に記憶されている回路モジュールを示す図であり、（Ａ）は４ビットＣＬＡ回路のモジュールを示す図、（Ｂ）は３ビットＣＬＡ回路のモジュールを示す図、（Ｃ）は２ビットＣＬＡ回路のモジュールを示す図である。
【００３９】
図７は、回路自動生成装置２０により生成された回路を示す図であり、９ビットのＣＬＡ回路である。図７に示すように、９ビットのＣＬＡ回路は、２ビットのＣＬＡ回路、３ビットのＣＬＡ回路、４ビットのＣＬＡ回路が直列に接続された構成である。
以下、９ビットのＣＬＡ回路を生成する場合の、回路自動生成装置２０の動作について説明する。
【００４０】
まず、入力部２１よりビット長の入力値として９が入力され、ビット長記憶部２２にパラメータＮとして記憶される。剰余算出部２３においては、前記パラメータＮを４で除して余り１が算出される。その計算結果の値１はパラメータＭとしてモジュール選択部２４に入力され、選択信号Ｓ２が選択される。その結果、図６（Ａ）に示す２ビットモジュールと、図６（Ｂ）に示す３ビットモジュールが生成され、生成回路記憶部２８に記憶される。一方、パラメータＭ＝１に基づいて減算値決定部２９で減算値Ｐ＝５が求められ、減算部３０おいてパラメータＮ＝９との減算が行われ、結果４が得られる。判定部３１は前記減算の結果が４なので、この減算結果を新たなビット長のパラメータとしてビット長記憶部２２に入力する。
【００４１】
こののように更新されたパラメータＮに基づいて、再びモジュールの生成が行われる。今度はパラメータＮ＝４なので、剰余であるパラメータＭ＝０となり、図６（Ｃ）に示す４ビットモジュールが生成され、生成回路記憶部２８に入力され、それまでの回路と接続されて記憶される。また、減算値決定部２９により減算値Ｐとして４が求められ、その結果、減算部３０における減算結果Ｎnew は０となる。したがって、判定部３１より出力部３２に出力信号が印加され、生成回路記憶部２８に記憶されている図７に示す９ビットＣＬＡ回路の回路図が出力される。
【００４２】
なお、この回路自動生成装置２０も、第１実施例と同様にワークステーションなどに搭載されたＣＡＤツールで実現可能である。第２実施例の回路自動生成装置２０をそのようなコンピュータ装置に適用した場合の処理について図８を参照して説明する。
図８は、回路自動生成装置２０をコンピュータ装置により実現した場合の、フローチャートを示す図である。
【００４３】
まず、ステップ２１で入力装置より入力されたビット長を変数Ｎにセットする。次に、ステップ２２でＮを４で除した余りが算出され変数Ｍにセットされる。そして、この変数Ｍに基づいて、ステップ２３においてＭ＝０か否かが判定され、Ｍ＝０の場合はステップ２４で４ビットモジュールを生成し、ステップ２５で変数Ｐに４をセットする。
またステップ２３においてＭ≠０の場合はステップ２６でＭ＝１、２のいずれかであるか否を調べる。Ｍ＝１またはＭ＝２の場合は、ステップ２７で２ビットモジュールを生成する。そしてステップ２８でＭ＝１かＭ＝２かを判定し、Ｍ＝１の場合はステップ２９で変数Ｐに２を、Ｍ＝２の場合はステップ３０で変数Ｐに５を各々セットする。
【００４４】
一方、ステップ２６においてＭは１でも２でもないと判定された場合、すなわちＭ＝３の場合は、ステップ３１において回路生成より先に変数Ｐに３をセットする。そして、ステップ２６〜ステップ３０において、すでに２ビットモジュールが生成されたＭ＝１の場合とともに、ステップ３２において３ビットモジュールが生成される。
このように、ステップ２３〜ステップ３２において、モジュールの生成と変数Ｐへの減算値のセットが終了すると、ステップ３３において、Ｎ−Ｐの減算を行い、変数Ｎをこの減算結果で更新する。そして、ステップ３４においてこの変数Ｎの値が調べられ、変数Ｎが０より大きい場合は再びステップ２２より処理を繰り返す。ステップ３４において、変数Ｎが０以下の場合は、ステップ３５で、それまで生成され記憶された回路モジュールを順次接続し出力する。
【００４５】
このように、第２実施例の回路自動生成装置２０によれば、第１実施例同様に入力されたビット長のＣＬＡ回路を生成することができる。特に、記憶されている回路モジュールが複数ビットのデータを処理対象とするような回路であっても、それらを適切に組み合わせて、所望のビット長のＣＬＡ回路を生成できる。
【００４６】
第３実施例
本発明の第３実施例の回路自動生成装置について、図９を参照して説明する。
第３実施例の回路自動生成装置は、第１実施例または第２実施例の回路自動生成装置を複数有し、動作の異なる複数種類の回路モジュールを合成し、より複雑な構成の回路を生成することが可能にした回路自動生成装置である。
第３実施例の回路自動生成装置５０は、入力部５１、第１〜第４の回路自動生成装置５２〜５５、合成部５６より構成される。
【００４７】
入力部５１においては、処理データのビット長とともに、回路を構成するモジュールの種類を選択する信号が入力され、選択された信号に対応する回路モジュールの生成装置にビット長および回路生成を指示する信号を送出する。この回路を構成するモジュールとして、複数種類のモジュールを選択してよい。なお、選択する順番は、合成部５６による合成のルールに従った順番で選択するものとする。
【００４８】
第１〜第４の回路自動生成部５２〜５５は、各々所定の動作の任意のビット長のデータに対して各々所定の動作をする回路モジュールを自動生成する生成手段である。これらの回路自動生成部は、たとえば、ＣＬＡ回路、加算回路、選択回路、シフトレジスタ回路などの生成部である。各回路自動生成部は、たとえば、第１実施例、第２実施例に示した回路自動生成装置により構成されるが、各回路自動生成部の回路モジュール記憶手段に記憶されている接続情報としては、各回路自動生成部内の複数の回路モジュール間での接続情報の他に、さらに、これらの第１〜第４の回路自動生成部間５２〜５５で生成される回路間での接続情報も記憶されている。なお、生成する回路の処理データのビット長は入力部５７より入力される。
【００４９】
合成部５６は、第１〜第４の回路自動生成部５２〜５５より生成された回路モジュールを、さらに合成して１つの回路を生成し出力する。合成部５６は、各回路自動生成部より出力された回路結線情報と、その回路の各端子の接続情報に基づいて各回路を合成する。この合成は、たとえば、入力部５１で選択された順序で、生成された回路モジュールの出力端子を次に選択された回路の入力端子に接続するなどの予め定めたルールに基づいて行う。
【００５０】
このような構成の第３実施例の回路自動生成装置によれば、任意のビット長のデータを処理対象とする回路を自動生成する上に、さらに、基本的な回路モジュールを組み合わせた、多少複雑な回路の自動生成が可能となり、回路設計のより一層の効率の向上が可能となる。
【００５１】
なお、本発明は、前述した第１実施例および第２実施例に限られるものではなく種々の改変が可能である。
たとえば、本実施例は、ＣＬＡ回路を生成する回路自動生成装置として具体的に説明したがこれに限られるものではない。任意のビットのデータに対する複数の基本回路を、直列または並列に順次規則的に接続して構成可能な回路であれば、任意の回路に適用可能である。たとえば、シフトレジスタ、マルチプレクサ、アダーなどにも適用可能である。
【００５２】
また、本実施例の回路モジュール生成部の構成は、各回路モジュール生成部が、印加された信号に基づいて所定の回路モジュールを生成し出力するものであった。しかし、たとえば１つの制御部が、記憶手段に記憶されている回路モジュールより、選択信号に基づいて適宜回路モジュールを選択し出力するような、制御部と記憶部よりなる構成でもよい。
また、回路モジュールおよび生成された回路の記述方法に関しては、本発明は何ら制限をするものではない。たとえば、基本素子と接続状態を用いてネットリストの形式で記述された回路、ハードウェア記述言語（ＨＤＬ）を用いて記述された回路、また、動作を機能記述・論理記述された回路など、任意の記述・形式の回路が適用可能である。
【００５３】
【発明の効果】
本発明の回路自動生成装置によれば、入力されたビット数に基づいて、任意の数だけ所定の回路モジュールを接続させることができ、所望のビット長のデータを処理対象とする回路を自動的に生成できた。また、ビット位置により多少構成が異なるような回路も適切に生成できた。さらに、複数ビットに対応した基本回路モジュールを組み合わせて所望のビット長のデータを処理対象とする回路を生成することもできた。したがって、ビット長の変更に伴う回路の再設計が容易に行える回路自動生成装置を提供できた。
また、それにより、設計時間を大幅に短縮でき、効率良く回路の設計が行えるＣＡＤ装置を提供できた。
【図面の簡単な説明】
【図１】本発明の第１実施例の回路自動生成装置の構成を示すブロック図である。
【図２】図１に示した回路自動生成装置の基本モジュール生成部で生成される回路モジュールを示す図であり、（Ａ）は基本モジュールａを示す図、（Ｂ）は基本モジュールｂを示す図である。
【図３】図１に示した回路自動生成装置で生成される回路を示す図である。
【図４】図１に示した回路自動生成装置をコンピュータ装置により実現した場合の、フローチャートを示す図である。
【図５】本発明の第２実施例の回路自動生成装置の構成を示すブロック図である。
【図６】図５に示した回路自動生成装置のモジュール生成部で生成される回路モジュールを示す図であり、（Ａ）は２ビットモジュールを示す図、（Ｂ）は３ビットモジュールを示す図、（Ｃ）は４ビットモジュールを示す図である。
【図７】図５に示した回路自動生成装置で生成される回路を示す図である。
【図８】図５に示した回路自動生成装置をコンピュータ装置により実現した場合の、フローチャートを示す図である。
【図９】本発明の第３実施例の回路自動生成装置の構成を示すブロック図である。
【符号の説明】
１０…回路自動生成装置
１１…入力部                    １２…ビット長記憶部
１３…モジュール選択部          １４…基本モジュールａ生成部
１５…基本モジュールｂ生成部    １６…生成回路記憶部
１７…減算部                    １８…出力部
２０…回路自動生成装置
２２…ビット長記憶部            ２３…剰余算出部
２４…モジュール選択部          ２５…４ビットモジュール生成部
２６…３ビットモジュール生成部  ２７…２ビットモジュール生成部
２８…生成回路記憶部            ２９…減算値決定部
３０…減算部                    ３１…判定部
３２…出力部
５０…回路自動生成装置
５１…入力部                    ５２…第１の回路自動生成部
５３…第２の回路自動生成部      ５４…第３の回路自動生成部
５５…第４の回路自動生成部      ５６…合成部
【図１】
0003702475.tif 000002
【図２】
0003702475.tif 000003
【図３】
0003702475.tif 000004
【図４】
0003702475.tif 000005
【図５】
0003702475.tif 000006
【図６】
0003702475.tif 000007
【図７】
0003702475.tif 000008
【図８】
0003702475.tif 000009
【図９】
0003702475.tif 000010