(57)【特許請求の範囲】
【請求項１】
集積回路設計で論理メモリの構築を行うメモリ構築装置において、
ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記レジスタを使用しない構成、論理メモリビットの補完に前記レジスタを使用する構成、論理メモリワードの補完に前記レジスタを使用する構成、および前記論理メモリビットと前記論理メモリワードとの補完に前記レジスタを使用する構成のそれぞれの構成につき、前記論理メモリ候補のうち前記物理メモリの総数が１以上であるものの中から、前記物理メモリの総数が少ないほど高優先度とし、前記物理メモリの総数が同じ場合にはワード方向物理メモリ数が少ないほど高優先度とし、前記物理メモリの総数および前記ワード方向物理メモリ数が同じ場合にはレジスタ総数が少ないほど高優先度とする優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、
前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす論理メモリを抽出する構成抽出処理部と、
抽出された前記論理メモリを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、
を有することを特徴とするメモリ構築装置。
【請求項２】
前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、前記論理メモリビットと物理メモリビットとを比較し、前記論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、前記論理メモリビットの方が大きい場合は、前記論理メモリビットを前記物理メモリビットで割って、ビット方向分割数と前記レジスタのビットサイズとを算出することを特徴とする請求項１記載のメモリ構築装置。
【請求項３】
前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、前記論理メモリワードと物理メモリワードとを比較し、前記論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、前記論理メモリワードの方が大きい場合は、前記論理メモリワードを前記物理メモリワードで割って、ワード方向分割数と前記レジスタのワードサイズとを算出することを特徴とする請求項１記載のメモリ構築装置。
【請求項４】
前記論理条件毎に存在し、前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成組み合わせ一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完無の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ候補一覧テーブルと、前記構成抽出処理部により抽出された論理メモリの回路構成情報が書き込まれる回路記述用論理メモリ構成組み合わせ一覧テーブルと、を格納するテーブル格納部をさらに有することを特徴とする請求項１記載のメモリ構築装置。
【請求項５】
前記論理メモリ構成処理部は、ビット補完の有・無、ワード補完の有・無、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成組み合わせ一覧テーブルに対し、前記論理条件毎の前記論理メモリ構成組み合わせ一覧テーブルに、前記論理メモリ候補の回路構成情報を書き込み、前記論理メモリ構成組み合わせ一覧テーブルには、前記論理条件を実現できるすべての前記論理メモリ候補の回路構成情報が含まれることを特徴とする請求項４記載のメモリ構築装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ構築装置に関し、特に集積回路設計で論理メモリの構築を行うメモリ構築装置に関する。
【背景技術】
【０００２】
ＡＳＩＣ（Application Specific Integrated Circuit）は、特定用途の制御などを目的として設計されたカスタムＩＣ（Integrated Circuit：集積回路）の総称であり、汎用チップとは異なり、機器メーカーの希望する仕様に合わせて設計された新たな専用チップである。
【０００３】
機器メーカーが製品を開発するに当たっては、すでに発売されている汎用ＩＣを使って設計するのが一般的だが、特定の機能に特化させたＩＣが欲しい場合などは、いわゆる注文品（カスタム：custom）のＡＳＩＣを採用することになる。
【０００４】
ＡＳＩＣは特定の機能に特化したＩＣであるため、汎用ＩＣを使って回路を構成するよりも、消費電力の少ない製品を作ることができ、また、実装面積の小型化や動作速度の向上が期待できる。
【０００５】
メモリ機能を有するＡＳＩＣを開発する際は、通常、ライブラリとしてあらかじめ用意されている数種の物理ＲＡＭ（Random Access Memory）及びＦＦ（flip flop）といったメモリマクロを使用して（マクロとは、特定機能を持つ１つの回路ブロックのこと）、論理上必要とするメモリ空間（論理メモリ空間）に応じた回路を、ＨＤＬ（Hardware Description Language：集積回路を設計するための論理記述言語）によって記述し、生成する。
【０００６】
従来のＡＳＩＣ開発の技術として、メモリコンパイラを用いてメモリを生成する際に、入力したメモリ仕様から具体的なメモリを生成する技術が提案されている（例えば、特許文献１）。
【特許文献１】特開平９−１７１５２７号公報（段落番号〔０００６〕〜〔００１０〕，第１図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来ＡＳＩＣ開発技術のメモリコンパイラにおいても作成できるメモリの上限があるため、論理として必要なメモリが上限を超えた場合、メモリコンパイラで作成した幾つかの物理ＲＡＭを組み合わせて論理メモリの回路を作成し、回路デバッグ（論理シミュレーション）を行う必要があり、ＴＡＴ（Turn Around Time：一連の処理にかかる所要時間）の長期化を招くといった問題があった。
【０００８】
また、設計当初は物理ＲＡＭがいくつ必要なのかは予想がつきにくいため、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）やＰＬＤ（プログラマブルロジックデバイス）、及びＳｔｒｕｃｔｕｒｅｄ ＡＳＩＣ等、物理ＲＡＭやＦＦの使用個数制限が定められているデバイスにおいては、デバイス選定が難しく、仮に物理ＲＡＭ個数を予想してデバイスを選定したとしても、物理ＲＡＭの組み合わせ次第では、物理ＲＡＭの個数を予想より多く使用することもあり、結果的に使用個数制限を超越してしまい、組み合わせ変更（回路変更）を余儀なくされ、最悪の場合はデバイスの変更にまで至るという事態が発生する場合があった。
【０００９】
本発明はこのような点に鑑みてなされたものであり、所望の論理メモリ空間を自動構築して集積回路設計の効率化を図ったメモリ構築装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、集積回路設計で論理メモリの構築を行うメモリ構築装置が提供される。このメモリ構築装置は、ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記レジスタを使用しない構成、論理メモリビットの補完に前記レジスタを使用する構成、論理メモリワードの補完に前記レジスタを使用する構成、および前記論理メモリビットと前記論理メモリワードとの補完に前記レジスタを使用する構成のそれぞれの構成につき、前記論理メモリ候補のうち前記物理メモリの総数が１以上であるものの中から、前記物理メモリの総数が少ないほど高優先度とし、前記物理メモリの総数が同じ場合にはワード方向物理メモリ数が少ないほど高優先度とし、前記物理メモリの総数および前記ワード方向物理メモリ数が同じ場合にはレジスタ総数が少ないほど高優先度とする優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす論理メモリを抽出する構成抽出処理部と、抽出された前記論理メモリを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、を有する。
【発明の効果】
【００１２】
本発明のメモリ構築装置は、ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす論理メモリを構成するように、物理メモリ及びレジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択し、物理メモリ及びレジスタの使用個数制限を満たすように、最優先候補の中から、論理条件を満たす論理メモリを抽出して回路記述を行う構成とした。これにより、所望の論理メモリ空間を自動構築することができるので、集積回路設計の効率化を図ることが可能になる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して説明する。図１はメモリ構築装置の原理図である。メモリ構築装置１０は、ＥＤＡ（Electronic Design Automation）による電子機器、半導体などの設計作業を自動化して支援するためのソフトウェアが組み込まれたハードウェアであり、集積回路の設計時に論理メモリの自動構築を行う装置である。
【００１４】
なお、以降の説明では、物理メモリを物理ＲＡＭと呼び、レジスタをＦＦと呼ぶ。物理ＲＡＭやＦＦは、ライブラリにすでに登録されているメモリマクロである。また、論理メモリとは、本発明のメモリ自動構築機能によって物理ＲＡＭやＦＦを用いて生成されるメモリのことを指すものとする。
【００１５】
論理メモリ構成処理部１１は、ライブラリとしてあらかじめ用意されている数種の物理ＲＡＭ及びＦＦを読み込み、メモリ空間を定めた論理条件を満たす論理メモリを構成するように、物理ＲＡＭ及びＦＦの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択する。
【００１６】
最適構成抽出処理部１２は、物理ＲＡＭ及びＦＦの使用個数制限を満たすように、最優先候補の中から、論理条件を満たす最適論理メモリを抽出する。回路記述化処理部１３は、抽出された最適論理メモリを構成する物理ＲＡＭ及びＦＦを用いて回路記述を行い、回路記述ファイルを生成する。テーブル格納部１４は、論理メモリを構築する際に必要な各種テーブル情報を格納する。
【００１７】
図２はテーブル格納部１４の構成を示す図である。論理条件一覧テーブルＴ１、物理ＲＡＭ一覧テーブルＴ２、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３、論理メモリ構成組み合わせ一覧テーブルＴ４−１、Ｔ４−２、Ｔ５−１、Ｔ５−２、Ｔ６−１、Ｔ６−２、論理メモリ構成一覧テーブルＴ７ａ、論理メモリ候補一覧テーブルＴ７ｂ、Ｔ７ｂ−１、最適論理メモリ構成組み合わせ一覧テーブル（回路記述用論理メモリ構成組み合わせ一覧テーブル）Ｔ８を格納する。
【００１８】
なお、上記のテーブルのうち、論理メモリ構成組み合わせ一覧テーブルＴ４−１、Ｔ５−１、Ｔ６−１は、論理条件毎に存在し、論理メモリ候補の回路構成情報が書き込まれるテーブルであり、論理メモリ構成組み合わせ一覧テーブルＴ４−２、Ｔ５−２、Ｔ６−２は、優先条件によって論理メモリ構成組み合わせ一覧テーブルＴ４−１、Ｔ５−１、Ｔ６−１の回路構成情報が並び替えられたテーブルである。
【００１９】
論理メモリ構成一覧テーブルＴ７ａは、メモリ空間の空きを補完するＦＦの補完状態であるビット補完無・ワード補完無の状態に対応した論理メモリ候補の回路構成情報が書き込まれるテーブルである。
【００２０】
論理メモリ候補一覧テーブルＴ７ｂは、メモリ空間の空きを補完するＦＦの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した論理メモリ候補の回路構成情報が書き込まれるテーブルである。
【００２１】
論理メモリ候補一覧テーブルＴ７ｂ−１は、優先条件によって論理メモリ候補一覧テーブルＴ７ｂの回路構成情報が並び替えられたテーブルである。最適論理メモリ構成組み合わせ一覧テーブルＴ８は、物理ＲＡＭとＦＦとの組み合わせから構成された場合の最適論理メモリの回路構成情報が書き込まれるテーブルである。各テーブルの詳細については後述する。
【００２２】
次に論理条件一覧テーブルＴ１、物理ＲＡＭ一覧テーブルＴ２、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３について説明する。図３は論理条件一覧テーブルＴ１を示す図である。論理条件一覧テーブルＴ１は、条件番号、ビット数、ワード数の項目から構成されている。論理条件として例えば、条件番号１では、ビット数は４２ビット、ワード数は１０２５ワードとなっている。メモリ構築装置１０は、このテーブルに記載されている論理条件１〜３のメモリ空間を満たすような論理メモリを構築していくものである。
【００２３】
図４は物理ＲＡＭ一覧テーブルＴ２を示す図である。物理ＲＡＭ一覧テーブルＴ２は、物理ＲＡＭ、ビット数、ワード数の項目から構成されている。例えば、物理ＲＡＭとしてマクロ１では、ビット数は４０ビット、ワード数は５１２ワードとなっている。このテーブルは、ライブラリ登録されている各種の物理ＲＡＭ情報を示すものである。
【００２４】
図５は物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３を示す図である。物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３は、物理ＲＡＭ使用個数制限値、ＦＦ使用個数制限値（個別）、ＦＦ使用個数制限値（合計）の項目から構成されている。図では、物理ＲＡＭ使用個数制限値＝１５個、ＦＦ使用個数制限値（個別）＝３０００個、ＦＦ使用個数制限値（合計）＝１００００個となっている。なお、論理条件毎に使用できる制限値を“個別”とし、すべての論理条件を含めて使用できる制限値を“合計”としている。
【００２５】
次に論理メモリ構成処理部１１の動作について、図６に示す動作フローのステップの流れに沿って図７〜図１３を用いて説明する。図６は論理メモリ構成処理部１１の動作を示すフローチャートである。
【００２６】
〔Ｓ１〕論理条件一覧テーブルＴ１から、論理条件１〜３それぞれの論理メモリのビット数とワード数を読み出す。また、物理ＲＡＭ一覧テーブルＴ２から、マクロ１〜４それぞれの物理ＲＡＭのビット数とワード数を読み出す。
【００２７】
〔Ｓ２〕論理条件一覧テーブルＴ１から読み込んだ論理メモリビット数とワード数を満たすように、マクロ１〜４の物理ＲＡＭと、ビット数またはワード数を補完するＦＦとで、目的の論理メモリ候補を生成する。この場合、ビット方向物理ＲＡＭ数、ワード方向物理ＲＡＭ数、ビット補完ＦＦのメモリ容量、ワード補完ＦＦのメモリ容量を求めて論理メモリを構成する。
【００２８】
図７〜図１０は論理メモリ候補の構成状態を示す図である。図中、横方向をビット数、縦方向をワード数とする。論理メモリ構成処理部１１では、論理条件を満たすように、最初に、登録済みの物理ＲＡＭで論理条件が定めるメモリ空間を埋めていくが、この物理ＲＡＭだけでは論理条件のメモリ空間を適切に満たすことができない場合には、空いたメモリ空間（物理ＲＡＭだけで埋められなかった隙間の空間）を補完するために、メモリ空間のビットまたはワードを補完するためのＦＦを自動的に算出し、物理ＲＡＭとＦＦの両方を使用して論理条件が満たされるような論理メモリ候補を生成する。
【００２９】
ビット方向の算出処理としては、論理メモリビットと物理ＲＡＭビットとを比較し、論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、論理メモリビットの方が大きい場合は、論理メモリビットを物理ＲＡＭビットで割って、ビット方向分割数とＦＦのビットサイズとを算出する。
【００３０】
ワード方向の算出処理としては、論理メモリワードと物理ＲＡＭワードとを比較し、論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、論理メモリワードの方が大きい場合は、論理メモリワードを物理ＲＡＭワードで割って、ワード方向分割数とＦＦのワードサイズとを算出する。以下の図７〜図１０に具体例を示す。
【００３１】
図７は論理条件１のメモリ空間を物理ＲＡＭ一覧テーブルＴ２のマクロ１の物理ＲＡＭを基準にして構成した論理メモリ候補である（図中、ＦＦのみで構成したメモリ（パターンａ５）も示している）。
【００３２】
論理条件１は４２ビット×１０２５ワードである。この論理条件１を満たすように、マクロ１（４０ビット×５１２ワード）を使用し、さらにはＦＦを追加して論理メモリを構成した場合、パターンａ１〜ａ４の４パターンが存在する。
【００３３】
パターンａ１において、マクロ１は４０ビット×５１２ワードであり、ワード方向に２個配置する。ワード方向に配置すると、ワード数は１０２４（＝５１２×２）ワードとなる。この状態では、条件の４２ビットに対し、２ビット足りなく、条件の１０２５ワードに対しては、１ワード足りない状態である。
【００３４】
このため、論理メモリ構成処理部１１は、ビット補完として、２ビット×１０２４ワードのビット補完ＦＦを算出し、ワード補完には、４２ビット×１ワードのワード補完ＦＦを算出する。そして、ビット補完ＦＦは、マクロ１の隣に配置して、ビット数を合計４２ビットとし、ワード補完は、マクロ１の下部に配置して、ワード数を合計１０２５とする。
【００３５】
したがって、マクロ１（４０ビット×５１２ワード）を２個、ビット補完ＦＦ（２ビット×１０２４ワード）を１個、ワード補完ＦＦ（４２ビット×１ワード）を１個使用して、図のように配置することにより、論理条件１の４２ビット×１０２５ワードの論理メモリを構築することができる。他もこのような処理によって論理メモリ候補を構築していく。
【００３６】
なお、パターンａ１の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、有）であり、ビット方向物理ＲＡＭ数＝１、ワード方向物理ＲＡＭ数＝２、ビット補完ＦＦ数のメモリ容量＝２ビット×１０２４ワード、ワード補完ＦＦのメモリ容量＝４２ビット×１ワードとなる。
【００３７】
同様にして、パターンａ２の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、有）であり、ビット方向物理ＲＡＭ数＝２、ワード方向物理ＲＡＭ数＝２、ワード補完ＦＦのメモリ容量＝４２ビット×１ワードとなる。パターンａ３の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、無）であり、ビット方向物理ＲＡＭ数＝１、ワード方向物理ＲＡＭ数＝３、ビット補完ＦＦのメモリ容量＝２ビット×１５３６ワードとなる。パターンａ４の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、無）であり、ビット方向物理ＲＡＭ数＝２、ワード方向物理ＲＡＭ数＝３となる。パターンａ５は、ワード補完ＦＦ（４２ビット×１０２５ワード）のみで構成したものである。
【００３８】
図８は論理条件１のメモリ空間を物理ＲＡＭ一覧テーブルＴ２のマクロ２の物理ＲＡＭを基準にして構成した論理メモリ候補である。４２ビット×１０２５ワードの論理条件１を満たすように、マクロ２（２０ビット×１０２４ワード）を使用し、さらにはＦＦを追加して論理メモリを構成した場合、パターンｂ１〜ｂ４の４パターンが存在する。
【００３９】
パターンｂ１の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、有）であり、ビット方向物理ＲＡＭ数＝２、ワード方向物理ＲＡＭ数＝１、ビット補完ＦＦ数のメモリ容量＝２ビット×１０２４ワード、ワード補完ＦＦのメモリ容量＝４２ビット×１ワードとなる。
【００４０】
パターンｂ２の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、有）であり、ビット方向物理ＲＡＭ数＝３、ワード方向物理ＲＡＭ数＝１、ワード補完ＦＦのメモリ容量＝４２ビット×１ワードとなる。パターンｂ３の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、無）であり、ビット方向物理ＲＡＭ数＝２、ワード方向物理ＲＡＭ数＝２、ビット補完ＦＦのメモリ容量＝２ビット×２０４８ワードとなる。パターンｂ４の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、無）であり、ビット方向物理ＲＡＭ数＝３、ワード方向物理ＲＡＭ数＝２となる。
【００４１】
図９は論理条件１のメモリ空間を物理ＲＡＭ一覧テーブルＴ２のマクロ３の物理ＲＡＭを基準にして構成した論理メモリ候補である。４２ビット×１０２５ワードの論理条件１を満たすように、マクロ３（１０ビット×２０４８ワード）を使用し、さらにはＦＦを追加して論理メモリを構成した場合、パターンｃ３、ｃ４の２パターンが存在する（マクロ３は２０４８ワードで、条件の１０２５ワードを超えているので、ワード補完が有のパターンは作成する必要はない）。
【００４２】
パターンｃ３の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、無）であり、ビット方向物理ＲＡＭ数＝４、ワード方向物理ＲＡＭ数＝１、ビット補完ＦＦのメモリ容量＝２ビット×２０４８ワードとなる。パターンｃ４の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、無）であり、ビット方向物理ＲＡＭ数＝５、ワード方向物理ＲＡＭ数＝１となる。
【００４３】
図１０は論理条件１のメモリ空間を物理ＲＡＭ一覧テーブルＴ２のマクロ４の物理ＲＡＭを基準にして構成した論理メモリ候補である。４２ビット×１０２５ワードの論理条件１を満たすように、マクロ４（５ビット×４０９６ワード）を使用し、さらにはＦＦを追加して論理メモリを構成した場合、パターンｄ３、ｄ４の２パターンが存在する（マクロ４は４０９６ワードで、条件の１０２５ワードを超えているので、ワード補完が有のパターンは作成する必要はない）。
【００４４】
パターンｄ３の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、無）であり、ビット方向物理ＲＡＭ数＝８、ワード方向物理ＲＡＭ数＝１、ビット補完ＦＦのメモリ容量＝２ビット×４０９６ワードとなる。パターンｄ４の論理メモリでは、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、無）であり、ビット方向物理ＲＡＭ数＝９、ワード方向物理ＲＡＭ数＝１となる。
【００４５】
このように、論理メモリ構成処理部１１は、論理条件一覧テーブルＴ１に設定された条件を、物理ＲＡＭ一覧テーブルＴ２に登録されている物理ＲＡＭのメモリマクロを使用し、またメモリマクロだけでは条件を満たすビットまたはワードが足らない場合には、ビットまたはワードを補完するＦＦを算出して、この補完ＦＦも使用することで、論理条件を満たす論理メモリの候補を生成する。なお、図７〜図１０では、論理条件１に対しての論理メモリ候補を示したが、論理条件２、３も上記と同様にして生成されるものである（図示は省略する）。次に図６のステップＳ３から動作の続きを説明する。
【００４６】
〔Ｓ３〕各論理条件に対応する論理メモリ候補を生成すると、論理メモリ候補に関する回路構成情報を、論理メモリ構成組み合わせ一覧テーブルＴ４−１、Ｔ５−１、Ｔ６−１に記載し、かつ優先条件にもとづく並び替えを行う。
【００４７】
図１１は論理メモリ構成組み合わせ一覧テーブルＴ４−１、Ｔ４−２を示す図である。論理メモリ構成組み合わせ一覧テーブルＴ４−１は、論理条件１を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルＴ４−２は、後述の優先条件にもとづき項目を並び替えたものである。
【００４８】
論理メモリ構成組み合わせ一覧テーブルＴ４−１は、項番、ビット補完、ワード補完、物理ＲＡＭ、ビット数、ワード数、ビット方向物理ＲＡＭ数、ワード方向物理ＲＡＭ数、物理ＲＡＭ総数、ビット補完ＦＦ数、ワード補完ＦＦ数、ＦＦ総数の各項目から構成される。
【００４９】
４２ビット×１０２５ワードの論理条件１の論理メモリの候補の１つとして、例えば項番１３では、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、有）であり、ビット数＝４０、ワード数＝５１２のマクロ１を用いると、ビット方向物理ＲＡＭ数＝１、ワード方向物理ＲＡＭ数＝２で、物理ＲＡＭ総数＝２であり、ビット補完ＦＦ数＝２ビット×１０２４ワード、ワード補完ＦＦ数＝４２ビット×１ワードでＦＦ総数＝２０９０となる。
【００５０】
なお、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、有）、（有、有）の場合で、論理条件１のワード数１０２５よりも大きなワード数の物理ＲＡＭとなる項番７、８、１５、１６は、ワード補完の必要がないため、物理ＲＡＭ数とＦＦ数は０にしている。
【００５１】
論理メモリ構成組み合わせ一覧テーブルＴ４−２は、（ビット補完ＦＦ、ワード補完ＦＦ）の組毎に、優先条件にもとづき、テーブルＴ４−１の記載内容を並べ替えたものである。
【００５２】
優先条件の並び替えとして具体的には、物理ＲＡＭ総数が少ない順に上位の欄から並べ、物理ＲＡＭが同数のものは、ワード方向物理ＲＡＭ数が少ない順に上位の欄から並べる。また、ワード方向物理ＲＡＭ数が同数のものは、ＦＦ総数が少ない順に上位の欄から並べる。これにより、上位の欄に位置する候補ほど、選択される論理メモリとして最優先候補になる。
【００５３】
すなわち、構築すべき論理メモリの優先度は、物理ＲＡＭ総数ができるだけ少ないものが最も高く（物理ＲＡＭ使用量削減のため）、次にワード方向物理ＲＡＭ数が少ないこと（ワード方向アドレスデコード数削減のため）、ＦＦ総数が少ないこと（ＦＦ使用量削減のため）の順になる（なお、（ビット補完ＦＦ、ワード補完ＦＦ）の組に対しても、（無、無）をテーブルの最上位、（有、有）をテーブルの最下位に配置して、ＦＦ使用量の少ない組がテーブル上位にくるようにしている）。
【００５４】
同様にして、図１２、図１３に論理条件２、３にそれぞれ対応する論理メモリ構成組み合わせ一覧テーブルＴ５−１、Ｔ５−２、Ｔ６−１、Ｔ６−２を示す。図１２の論理メモリ構成組み合わせ一覧テーブルＴ５−１は、論理条件２を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルＴ５−２は、（ビット補完ＦＦ、ワード補完ＦＦ）の組毎に、上記と同じ優先条件にもとづき、テーブルＴ５−１の記載内容を並べ替えたものである。
【００５５】
なお、（ビット補完ＦＦ、ワード補完ＦＦ）＝（無、有）、（有、無）、（有、有）の場合で、論理条件２のワード数２１００よりも大きなワード数の物理ＲＡＭとなる項番８、１２、１６は、ワード補完の必要がないため、物理ＲＡＭ数とＦＦ数は０にしている。
【００５６】
また、図１３の論理メモリ構成組み合わせ一覧テーブルＴ６−１は、論理条件３を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルＴ６−２は、（ビット補完ＦＦ、ワード補完ＦＦ）の組毎に、上記と同じ優先条件にもとづき、テーブルＴ６−１の記載内容を並べ替えたものである。
【００５７】
なお、（ビット補完ＦＦ、ワード補完ＦＦ）＝（有、無）、（有、有）の場合で、論理条件３のビット数３６よりも大きなビット数の物理ＲＡＭとなる項番９、１３は、ビット補完の必要がないため、物理ＲＡＭ数とＦＦ数は０にしている。次に図６のステップＳ４から動作の続きを説明する。
【００５８】
〔Ｓ４〕論理条件１〜３毎の論理メモリ構成組み合わせ一覧テーブルＴ４−２、Ｔ５−２、Ｔ６−２の中から論理メモリの最優先候補を選択し、論理メモリ構成一覧テーブルＴ７ａまたは論理メモリ候補一覧テーブルＴ７ｂへ書き込む（（無、無）のデータを論理メモリ構成一覧テーブルＴ７ａに書き込み、（無、有）、（有、無）、（有、有）のデータを論理メモリ候補一覧テーブルＴ７ｂに書き込む）。
【００５９】
図１４は論理メモリ構成一覧テーブルを示す図である。図１４の論理メモリ構成一覧テーブルＴ７ａは、論理条件１〜３の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、無）に関する論理メモリの最優先候補の情報が記されるテーブルである。
【００６０】
論理条件１に関する論理メモリ構成組み合わせ一覧テーブルＴ４−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、無）の中の最優先候補を選択し（テーブルＴ４−２の項番３に該当）、論理メモリ構成一覧テーブルＴ７ａへ書き込む。
【００６１】
同様にして、論理条件２に関する論理メモリ構成組み合わせ一覧テーブルＴ５−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、無）の中の最優先候補を選択し（テーブルＴ５−２の項番２に該当）、論理メモリ構成一覧テーブルＴ７ａへ書き込み、論理条件３に関する論理メモリ構成組み合わせ一覧テーブルＴ６−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、無）の中の最優先候補を選択し（テーブルＴ６−２の項番１に該当）、論理メモリ構成一覧テーブルＴ７ａへ書き込む。
【００６２】
図１５は論理メモリ候補一覧テーブルＴ７ｂを示す図である。図１５の論理メモリ候補一覧テーブルＴ７ｂは、論理条件１〜３の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、有）、（有、無）、（有、有）に関する論理メモリの最優先候補の情報が記されるテーブルである。
【００６３】
論理メモリ構成処理部１１は、論理条件１に関する論理メモリ構成組み合わせ一覧テーブルＴ４−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、有）の中の最優先候補を選択し（テーブルＴ４−２の項番６に該当）、論理メモリ候補一覧テーブルＴ７ｂの項番１へ書き込む。
【００６４】
また、論理条件１に関する論理メモリ構成組み合わせ一覧テーブルＴ４−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（有、無）の中の最優先候補を選択し（テーブルＴ４−２の項番９に該当）、論理メモリ候補一覧テーブルＴ７ｂの項番２へ書き込み、論理条件１に関する論理メモリ構成組み合わせ一覧テーブルＴ４−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（有、有）の中の最優先候補を選択し（テーブルＴ４−２の項番１４に該当）、論理メモリ候補一覧テーブルＴ７ｂの項番３へ書き込む。更に、ＦＦのみで構成した論理メモリを、論理メモリ候補一覧テーブルＴ７ｂの項番４に書き込む。
【００６５】
同様に、論理メモリ候補一覧テーブルＴ７ｂの項番５〜８には、論理条件２に関する論理メモリ構成組み合わせ一覧テーブルＴ５−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、有）、（有、無）、（有、有）の最優先候補（テーブルＴ５−２の項番７、９、１５に該当）、及びＦＦのみで構成された論理メモリが書き込まれ、論理メモリ候補一覧テーブルＴ７ｂの項番９〜１２には、論理条件３に関する論理メモリ構成組み合わせ一覧テーブルＴ６−２の（ビット補完ＦＦ、ワード補完ＦＦ）=（無、有）、（有、無）、（有、有）の最優先候補（テーブルＴ６−２の項番７、１０、１４に該当）、及びＦＦのみで構成された論理メモリが書き込まれる。
【００６６】
図１６は論理メモリ候補一覧テーブルＴ７ｂ−１を示す図である。図１６の論理メモリ候補一覧テーブルＴ７ｂ−１は、優先条件にもとづき、テーブルＴ７ｂの記載内容を並べ替えたものである。
【００６７】
優先条件の並び替えとして具体的には、ＦＦ総数が少ない順に上位の欄から並べ、ＦＦ総数が同数のものは、物理ＲＡＭ数が多い順に上位の欄から並べる。すなわち、構築すべき論理メモリの優先度は、ＦＦ総数ができるだけ少ないこと（ＦＦ使用量の削減のため）、物理ＲＡＭ数が多いこと（大きな論理ＲＡＭに優先的に割り当てるため）の順になる。
【００６８】
次に最適構成抽出処理部１２の動作について説明する。図１７は最適構成抽出処理部１２の動作を示すフローチャートである。
〔Ｓ１１〕論理メモリ構成一覧テーブルＴ７ａに記載された物理ＲＡＭ総数の合計数（物理ＲＡＭ合計数）と、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３に記載された物理ＲＡＭ使用個数制限値とを比較する。
【００６９】
物理ＲＡＭ合計数≦物理ＲＡＭ使用個数制限値の場合は回路記述化処理部１３の処理へいき、物理ＲＡＭ合計数＞物理ＲＡＭ使用個数制限値の場合はステップＳ１２へいく。
ここで、論理メモリ構成一覧テーブルＴ７ａから物理ＲＡＭ合計数は、物理ＲＡＭ総数の合計値が５＋９＋９＝２３であり、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３から物理ＲＡＭ使用個数制限値＝１５なので、使用個数を超えており、他の論理メモリ候補を探すためのステップＳ１２へいく。
【００７０】
〔Ｓ１２〕論理メモリ候補一覧テーブルＴ７ｂ−１に候補となる論理メモリ構成があるか否かを判断する。候補がないときはステップＳ１８へいき、候補がある場合はステップＳ１３へいく。
【００７１】
〔Ｓ１３〕論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データ（テーブル上位に記載されている回路構成情報）を読み込み、読み込んだデータを論理メモリ候補一覧テーブルＴ７ｂ−１から削除する。すなわち、図１６の論理メモリ候補一覧テーブルＴ７ｂ−１の項番１を先頭データとして読み出した後で一覧から削除する。
【００７２】
〔Ｓ１４〕物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３のＦＦ使用個数制限値（個別）と、ステップＳ１３で読み込んだ先頭データのＦＦ総数とを比較する。ＦＦ使用個数制限値（個別）＜ＦＦ総数の場合は、ステップＳ１８へいき、ＦＦ使用個数制限値（個別）≧ＦＦ総数の場合は、ステップＳ１５へいく。
【００７３】
ここでは、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３からＦＦ使用個数制限値（個別）＝３０００で、ステップＳ１３で読み込んだ先頭データのＦＦ総数＝４２なので、ステップＳ１５へいく。
【００７４】
〔Ｓ１５〕論理メモリ構成一覧テーブルＴ７ａから、ステップＳ１３で読み出した先頭データの論理条件番号が一致する回路構成情報を読み出す。ここでは、図１４の論理メモリ構成一覧テーブルＴ７ａの論理条件１の回路構成情報を読み出す。
【００７５】
〔Ｓ１６〕物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３のＦＦ使用個数制限値（合計）と、ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報をステップＳ１３で読んだ先頭データに置き換えた場合のテーブルＴ７ａ中のＦＦ合計数とを比較する。
【００７６】
ＦＦ使用個数制限値（合計）＜ＦＦ合計の場合はステップＳ１８へいき、ＦＦ使用個数制限値（合計）≧ＦＦ合計の場合はステップＳ１７へいく。
ここで、物理ＲＡＭ・ＦＦ使用個数制限テーブルＴ３からＦＦ使用個数制限値（合計）＝１００００で、置き換え後のＦＦ合計＝４２＋０＋０＝４２なので、ステップＳ１７へいく（なお、４２＋０＋０とは、４２（置き換え後の論理条件１のＦＦ総数）＋０（テーブルＴ７ａの論理条件２のＦＦ総数）＋０（テーブルＴ７ａの論理条件３のＦＦ総数）ということである）。
【００７７】
〔Ｓ１７〕ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報をステップＳ１３で読んだ先頭データに置き換える。ここでは、図１４の論理メモリ構成一覧テーブルＴ７ａの論理条件１の回路構成情報が、図１６の論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データに置き換わることになる。したがって、このときの物理ＲＡＭ総数の合計値を見ると３＋９＋９＝２１となり、置き換え前の合計値から物理ＲＡＭが２個削減されることになる。
【００７８】
〔Ｓ１８〕アラーム通知を行う。
同様に、ステップＳ１１〜Ｓ１７の２回目処理では、図１４の論理メモリ構成一覧テーブルＴ７ａの論理条件３が、図１６の論理メモリ候補一覧テーブルＴ７ｂ−１の項番９に置き換えられ、３回目処理で図１４の論理条件１が図１６の項番３に置き換えられ、４回目処理で図１４の論理条件２が図１５の項番５に置き換えられ、４回目の処理後に、物理ＲＡＭ総数の合計値と物理ＲＡＭ使用個数制限値とが等しくなり、論理メモリ構成一覧テーブルＴ７ａは最終的に最適論理メモリ構成組み合わせ一覧テーブルに置き換えられる。
【００７９】
図１８は最適論理メモリ構成組み合わせ一覧テーブルＴ８を示す図である。最適論理メモリ構成組み合わせ一覧テーブルＴ８は、論理条件１〜３を満たす最適な（ＦＦ使用量が少なく、大きな物理ＲＡＭが用いられている）論理メモリ構成を示すものである。
【００８０】
なお、図１７の動作フローにおける１回目〜５回目までの流れを以下に簡単に示す。また、図１９〜図２１は論理メモリ構成一覧テーブルＴ７ａの回路構成情報が順次置き換えられていく様子を示す図である。
【００８１】
（１回目）
・ステップＳ１１の処理において、
論理メモリ構成一覧テーブルＴ７ａの物理ＲＡＭ総数
５＋９＋９＝２３・・・・・・・・・・・・・・・・・・・・・・（１−１）
物理ＲＡＭ使用個数制限テーブルＴ３の物理ＲＡＭ使用個数制限値
１５・・・・・・・・・・・・・・・・・・・・・・・・・・・・（１−２）
（１−１）＞（１−２）のため、ステップＳ１２へ分岐し、論理メモリ候補は存在するのでステップＳ１３へいく。ステップＳ１３で論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データを読み込み、それをテーブルから削除する。
【００８２】
・ステップＳ１４の処理において、
ステップＳ１３で読み込んだ先頭データのＦＦ総数
４２・・・・・・・・・・・・・・・・・・・・・・・・・・・・（１−３）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（個別）
３０００・・・・・・・・・・・・・・・・・・・・・・・・・・（１−４）
（１−３）＜（１−４）のため、ステップＳ１５へ分岐し、論理メモリ構成一覧テーブルＴ７ａの論理条件番号１の回路構成情報を読み出す。
【００８３】
・ステップＳ１６の処理において、
ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換えた場合のテーブルＴ７ａ中のＦＦ使用個数合計
４２＋０＋０＝４２・・・・・・・・・・・・・・・・・・・・・（１−５）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（合計）
１００００・・・・・・・・・・・・・・・・・・・・・・・・・（１−６）
（１−５）＜（１−６）のため、ステップＳ１７へ分岐し、ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換え、ステップＳ１１へ戻る。
【００８４】
（２回目）
・ステップＳ１１の処理において、
論理メモリ構成一覧テーブルＴ７ａの物理ＲＡＭ総数
３＋９＋９＝２１・・・・・・・・・・・・・・・・・・・・・・（２−１）
物理ＲＡＭ使用個数制限テーブルＴ３の物理ＲＡＭ使用個数制限値
１５・・・・・・・・・・・・・・・・・・・・・・・・・・・・（２−２）
（２−１）＞（２−２）のため、ステップＳ１２へ分岐し、論理メモリ候補は存在するのでステップＳ１３へいく。ステップＳ１３で論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データ（項番９のデータとなる）を読み込み、それをテーブルから削除する。
【００８５】
・ステップＳ１４の処理において、
ステップＳ１３で読み込んだ先頭データのＦＦ総数
１４４・・・・・・・・・・・・・・・・・・・・・・・・・・・（２−３）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（個別）
３０００・・・・・・・・・・・・・・・・・・・・・・・・・・（２−４）
（２−３）＜（２−４）のため、ステップＳ１５へ分岐し、論理メモリ構成一覧テーブルＴ７ａの論理条件番号３の回路構成情報を読み出す。
【００８６】
・ステップＳ１６の処理において、
ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換えた場合のテーブルＴ７ａ中のＦＦ使用個数合計
４２＋０＋１４４＝１８６・・・・・・・・・・・・・・・・・・（２−５）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（合計）
１００００・・・・・・・・・・・・・・・・・・・・・・・・・（２−６）
（２−５）＜（２−６）のため、ステップＳ１７へ分岐し、ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換え、ステップＳ１１へ戻る。
【００８７】
（３回目）
・ステップＳ１１の処理において、
論理メモリ構成一覧テーブルＴ７ａの物理ＲＡＭ総数
３＋９＋８＝２０・・・・・・・・・・・・・・・・・・・・・・（３−１）
物理ＲＡＭ使用個数制限テーブルＴ３の物理ＲＡＭ使用個数制限値
１５・・・・・・・・・・・・・・・・・・・・・・・・・・・・（３−２）
（３−１）＞（３−２）のため、ステップＳ１２へ分岐し、論理メモリ候補は存在するのでステップＳ１３へいく。ステップＳ１３で論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データ（項番３のデータとなる）を読み込み、それをテーブルから削除する。
【００８８】
・ステップＳ１４の処理において、
ステップＳ１３で読み込んだ先頭データのＦＦ総数
２０９０・・・・・・・・・・・・・・・・・・・・・・・・・・（３−３）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（個別）
３０００・・・・・・・・・・・・・・・・・・・・・・・・・・（３−４）
（３−３）＜（３−４）のため、ステップＳ１５へ分岐し、論理メモリ構成一覧テーブルＴ７ａの論理条件番号１の回路構成情報を読み出す。
【００８９】
・ステップＳ１６の処理において、
ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換えた場合のテーブルＴ７ａ中のＦＦ使用個数合計
２０９０＋０＋１４４＝２２３４・・・・・・・・・・・・・・・（３−５）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（合計）
１００００・・・・・・・・・・・・・・・・・・・・・・・・・（３−６）
（３−５）＜（３−６）のため、ステップＳ１７へ分岐し、ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換え、ステップＳ１１へ戻る。
【００９０】
（４回目）
・ステップＳ１１の処理において、
論理メモリ構成一覧テーブルＴ７ａの物理ＲＡＭ総数
２＋９＋８＝１９・・・・・・・・・・・・・・・・・・・・・・（４−１）
物理ＲＡＭ使用個数制限テーブルＴ３の物理ＲＡＭ使用個数制限値
１５・・・・・・・・・・・・・・・・・・・・・・・・・・・・（４−２）
（４−１）＞（４−２）のため、ステップＳ１２へ分岐し、論理メモリ候補は存在するのでステップＳ１３へいく。ステップＳ１３で論理メモリ候補一覧テーブルＴ７ｂ−１の先頭データ（項番５のデータとなる）を読み込み、それをテーブルから削除する。
【００９１】
・ステップＳ１４の処理において、
ステップＳ１３で読み込んだ先頭データのＦＦ総数
２６００・・・・・・・・・・・・・・・・・・・・・・・・・・（４−３）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（個別）
３０００・・・・・・・・・・・・・・・・・・・・・・・・・・（４−４）
（４−３）＜（４−４）のため、ステップＳ１５へ分岐し、論理メモリ構成一覧テーブルＴ７ａの論理条件番号２の回路構成情報を読み出す。
【００９２】
・ステップＳ１６の処理において、
ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換えた場合のテーブルＴ７ａ中のＦＦ使用個数合計
２０９０＋２６００＋１４４＝４８３４・・・・・・・・・・・・（４−５）
物理ＲＡＭ使用個数制限テーブルＴ３のＦＦ使用個数制限値（合計）
１００００・・・・・・・・・・・・・・・・・・・・・・・・・（４−６）
（４−５）＜（４−６）のため、ステップＳ１７へ分岐し、ステップＳ１５で読んだ論理メモリ構成一覧テーブルＴ７ａの回路構成情報を、ステップＳ１３で読んだ先頭データに置き換え、ステップＳ１１へ戻る。
【００９３】
（５回目）
・ステップＳ１１の処理において、
論理メモリ構成一覧テーブルＴ７ａの物理ＲＡＭ総数
２＋５＋８＝１５・・・・・・・・・・・・・・・・・・・・・・（５−１）
物理ＲＡＭ使用個数制限テーブルＴ３の物理ＲＡＭ使用個数制限値
１５・・・・・・・・・・・・・・・・・・・・・・・・・・・・（５−２）
（５−１）＝（５−２）のため、最適構成抽出処理部１２での処理は終了し、論理メモリ構成一覧テーブルＴ７ａは最終的に最適論理メモリ構成組み合わせ一覧テーブルＴ８となる。
【００９４】
次に回路記述化処理部１３の動作について説明する。図２２は回路記述化処理部１３の動作を示すフローチャートである。
〔Ｓ２１〕論理メモリを構築するために必要なパラメータを抽出する。
【００９５】
〔Ｓ２２〕あらかじめデータとして用意されている変数化された回路記述Ｄ１を呼び出し、抽出したパラメータを各変数に代入して回路記述化を行う。
〔Ｓ２３〕論理メモリ空間を実現する回路記述ファイルとして出力し処理を完了する。
【００９６】
図２３は変数化された回路記述Ｄ１により生成される回路構成の一例を示す図である。FFMW1は、ｎ（bit）＊１（word）を持つＦＦで構成された１word FF RAM回路MW1を有し、ｍ個のMW1とアドレスデコード回路（ADW1）及びMW1 FF RAMセレクト回路（MSW1）を組み合わせてｎ（bit）＊ｍ（word）のＦＦで構成されたワード補完するFF RAM回路である。
【００９７】
RFM1は、FFMB1（ビット補完するFF RAM回路）と物理ＲＡＭ（RM1）で構成されたメモリ回路である。FFMB1は、ｉ（bit）＊１（word）を持つＦＦで構成された１word FF RAM回路MB1を有し、ｊ個のMB1とアドレスデコード回路（ADB1）及びMB1 FF RAMセレクト回路（MSB1）を組み合わせてｉ（bit）＊ｊ（word）のＦＦで構成されたビット補完するFF RAM回路である。
【００９８】
RM1は、ライブラリより定められたサイズの物理ＲＡＭなので余分なデータビットが存在する場合がある。よってRFM1は、Data clip変数回路を有している。
MMMは、FFMW1とｋ個のRFM1及びアドレスデコード回路（AD2）、RAMセレクト回路（MS2）を組み合わせ、ｎ（bit）＊｛ｍ＋ｊ＊ｋ｝（word）のメモリ空間を構成した論理メモリ回路である。MMMには、ライブラリより定められたサイズの物理ＲＡＭ（RM1）により余分なアドレス空間がある場合があるので、Address clip変数回路を有している。
【００９９】
ここで、論理メモリ空間を実現する回路記述ファイルを作成する場合は、最適論理メモリ構成組み合わせ一覧テーブルＴ８から順次呼び出す論理メモリの回路構成情報を、パラメータ値として抽出して確定し、変数化された回路記述Ｄ１へ代入することで作成する。
【０１００】
図２４はパラメータの一例を示す図であり、図２５は各パラメータの具体的な値を示す図である。また、図２６はパラメータの設定箇所を示す図である。なお、図２５では最適論理メモリ構成組み合わせ一覧テーブルＴ８の項番３の情報にもとづく各パラメータに該当する値を示している。以下の（ａ）〜（ｏ）にパラメータ名とその内容及び具体的な設定数値を示す。
【０１０１】
（ａ）g＿RealAddress：論理メモリ空間アドレス長を設定する。
項番３は論理条件１であり、論理条件１は４２ビット×１０２５ワードなので、アドレス長１０２５を設定する。
【０１０２】
（ｂ）g＿RealAddressBitParam：g＿RealAddressを２の乗数で表した値を設定する。
２１０＜１０２５＜２１１のため、１１を設定する。
（ｃ）g＿RealDataBitParam：論理メモリ空間データビット長を設定する。
【０１０３】
論理条件１は４２ビット×１０２５ワードなので、データビット長４２を設定する。
（ｄ）g＿FF＿WordParam：ワード補完FF RAMのワード数を設定する。
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のワード補完ＦＦ数のワード数１を設定する。
【０１０４】
（ｅ）g＿RAM＿AddressBitParam：物理ＲＡＭワード数を２の乗数で表した値を設定する。
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のワード数１０２４＝２１０のため、１０を設定する。
【０１０５】
（ｆ）g＿FF＿AddressBitParam：g＿FF＿WordParamを２の乗数で表した値を設定する。
１wordの場合は、１を設定する。図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８ではワード数１のため、１を設定する。
【０１０６】
（ｇ）g＿Gen＿RAM＿LV3：ワード補完物理RAM数。
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のワード方向物理ＲＡＭ数１を設定する。
【０１０７】
（ｈ）g＿Gen＿FFRAM＿LV3：ワード補完FF RAMが存在する場合、１を設定する。
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８にてワード補完ＦＦが存在するため、１を設定する。
【０１０８】
（ｉ）g＿AddressSel：g＿Gen＿RAM＿LV3＋g＿Gen＿FFRAM＿LV3を２の乗数で表した値を設定する。
１＋１＝２＝２１のため、１を設定する。
【０１０９】
（ｊ）g＿RAM＿DataBitParam：物理ＲＡＭのビット数。
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のビット数２０を設定する。
（ｋ）g＿FF＿DataBitParam：ビット補完FF RAMのビット数。
【０１１０】
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のビット補完ＦＦ数のビット数２を設定する。
（ｌ）g＿Gen＿RAM＿LV4：ビット補完物理ＲＡＭ数。
【０１１１】
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８のビット方向物理ＲＡＭ数２を設定する。
（ｍ）g＿Gen＿FFRAM＿LV4：ビット補完ＦＦが存在する場合、１を設定する。
【０１１２】
図１８の最適論理メモリ構成組み合わせ一覧テーブルＴ８にてビット補完ＦＦが存在するため、１を設定する。
（ｎ）g＿AddressClip：（物理ＲＡＭアドレスのビット数）−（論理メモリ空間データビット数）。ただし、０以上の場合に限る。物理ＲＡＭのビット数＝１０、論理メモリ空間データビット数＝１１のため、０を設定する。
【０１１３】
（ｏ）g＿DataClip：（物理RAMビット数）−（論理メモリビット数）ただし、０以上の場合に限る。物理ＲＡＭビット数＝２０、論理メモリビット数＝４２のため、０を設定する。
【０１１４】
次に論理メモリの具体的な構成例について説明する。図２７は物理ＲＡＭの単体構成例を示す図である。データ4Bit、アドレス4096Wordの物理ＲＡＭ単体の構成例を示す。なお、ADD Clipは、余分なアドレスビット‘０’を固定する機能であり、DT Clipは、データを‘0’または‘１’に固定する機能である。
【０１１５】
図２８は物理ＲＡＭの複数構成例を示す図である。データ16Bit、アドレス8192Wordの物理ＲＡＭ（ZAA4B16W12）の複数構成例を示す。なお、DECは、RAMブロックに入力するアドレスをDecodeする。SELは、RAMブロックから出力されたデータをアドレスによってSelectする。
【０１１６】
図２９は物理ＲＡＭ、ビット補完ＦＦ、ワード補完ＦＦの構成例を示す図である。データ26Bit、アドレス2148Wordの物理ＲＡＭ（ZAA4B20W10）、ビット補完FF（ZAA4BFF6X1024）、ワード補完ＦＦ（ZAA3WFF26X100）の構成例を示す。
【０１１７】
図３０は物理ＲＡＭ、ワード補完ＦＦの構成例を示す図である。データ20Bit、アドレス2304Wordの物理ＲＡＭ（ZAA4B20W10）、ワード補完FF（ZAA3WFF20X256）の構成例を示す。
【０１１８】
図３１は物理ＲＡＭ、ビット補完ＦＦの構成例を示す図である。データ25Bit、アドレス4096Wordの物理ＲＡＭ（ZAA4B20W11）、ビット補完FF（ZAA4BFF5X2048）の構成例を示す。
【０１１９】
図３２はワード補完ＦＦのみの構成例を示す図である。データ16Bit、アドレス100Wordのワード補完ＦＦ（ZAA3WFF16X100）のみの構成を示す。
このように、論理メモリの構築時にＦＦを用いる場合は、ＦＦで構成されるメモリ空間の他にアドレスデコード回路やメモリ空間セレクト回路を組み合わせて構成するものとする。
【０１２０】
また、論理メモリの構築時に物理ＲＡＭを用いる場合は、物理ＲＡＭのみで構成するものと、物理ＲＡＭ及び補完ＦＦ（ＦＦで構成されるメモリ空間、アドレスデコード回路、メモリ空間セレクト回路を含む）を組み合わせて構成するものとする。なお、物理ＲＡＭのみで構成するものには、ライブラリより定められたサイズの物理ＲＡＭにより余分なデータビットが存在する場合があるので、余分なデータをクリップするための回路を有する。
【０１２１】
以上説明したように、メモリ構築装置１０によれば、所望の論理メモリ空間を満たすように、ライブラリに用意されている物理ＲＡＭやＦＦを用いて自動的に最適な論理メモリを構築するので、設計者が手作業で物理ＲＡＭとＦＦを組み合わせたり、あらたなマクロを作成したりする作業がなくなり、集積回路設計における利便性が向上し、ＴＡＴの短縮化を図ることが可能になる。
【０１２２】
（付記１）  集積回路設計で論理メモリの構築を行うメモリ構築装置において、
ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、
前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす最適論理メモリを抽出する最適構成抽出処理部と、
抽出された前記最適論理メモリを構成する前記物理メモリ及び前記レジスタを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、
を有することを特徴とするメモリ構築装置。
【０１２３】
（付記２）  前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、論理メモリビットと物理メモリビットとを比較し、前記論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、前記論理メモリビットの方が大きい場合は、前記論理メモリビットを前記物理メモリビットで割って、ビット方向分割数と前記レジスタのビットサイズとを算出することを特徴とする付記１記載のメモリ構築装置。
【０１２４】
（付記３）  前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、論理メモリワードと物理メモリワードとを比較し、前記論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、前記論理メモリワードの方が大きい場合は、前記論理メモリワードを前記物理メモリワードで割って、ワード方向分割数と前記レジスタのワードサイズとを算出することを特徴とする付記１記載のメモリ構築装置。
【０１２５】
（付記４）  前記論理条件毎に存在し、前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成組み合わせ一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完無の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ候補一覧テーブルと、前記物理メモリと前記レジスタとの組み合わせから構成された場合の最適論理メモリの回路構成情報が書き込まれる最適論理メモリ構成組み合わせ一覧テーブルと、を格納するテーブル格納部をさらに有することを特徴とする付記１記載のメモリ構築装置。
【０１２６】
（付記５）  前記論理メモリ構成処理部は、ビット補完の有・無、ワード補完の有・無、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成組み合わせ一覧テーブルに対し、前記論理条件毎の前記論理メモリ構成組み合わせ一覧テーブルに、前記論理メモリ候補の回路構成情報を書き込み、前記論理メモリ構成組み合わせ一覧テーブルには、前記論理条件を実現できるすべての前記論理メモリ候補の回路構成情報が含まれることを特徴とする付記４記載のメモリ構築装置。
【０１２７】
（付記６）  前記論理メモリ構成組み合わせ一覧テーブルは、ビット補完無・ワード補完無、ビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の４つの状態で分類されており、前記論理メモリ構成処理部は、各状態内で、物理メモリ総数が少ない順に回路構成情報をテーブルの上位へ、物理メモリ総数が同数ならば、ワード補完物理メモリが少ない順に回路構成情報をテーブルの上位へ、ワード補完物理メモリが同数ならば、ＦＦ総数が少ない順に回路構成情報をテーブルの上位へ並び替えることを特徴とする付記５記載のメモリ構築装置。
【０１２８】
（付記７）  前記論理メモリ構成処理部は、論理条件番号、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成一覧テーブルに対し、並び替え後の前記論理メモリ構成組み合わせ一覧テーブルから、ビット補完無・ワード補完無に関する回路構成情報を、前記論理条件毎に抜き出して、前記論理メモリ構成一覧テーブルに書き込み、論理条件番号、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ候補一覧テーブルに対し、並び替え後の前記論理メモリ構成組み合わせ一覧テーブルから、ビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有に関する回路構成情報を、前記論理条件毎に抜き出して前記論理メモリ候補一覧テーブルに書き込むことを特徴とする付記６記載のメモリ構築装置。
【０１２９】
（付記８）  前記論理メモリ構成処理部は、前記論理メモリ候補一覧テーブルに対し、前記レジスタの総数が少ない順にテーブル上位へ、前記レジスタの総数が同数ならば、物理メモリ数が多い順にテーブル上位へ並び替えることを特徴とする付記７記載のメモリ構築装置。
【０１３０】
（付記９）  前記最適構成抽出処理部は、前記論理メモリ構成一覧テーブルの論理条件毎の前記論理メモリの総数から、前記論理メモリの使用合計数を求め、前記使用合計数と、ライブラリに用意されている物理メモリ制限数とを比較し、前記使用合計数が小さければ、前記論理メモリ構成一覧テーブルに記載された回路構成情報を前記最適論理メモリの回路構成情報とし、前記回路記述化処理部は、前記最適論理メモリの回路構成情報にもとづき、回路記述を行い、前記使用合計数が大きければ、並び替え後の前記論理メモリ候補一覧テーブルを使用して前記最適論理メモリの回路構成情報の抽出処理を行うことを特徴とする付記８記載のメモリ構築装置。
【０１３１】
（付記１０）  前記最適構成抽出処理部は、並び替え後の前記論理メモリ候補一覧テーブルを使用して前記最適論理メモリの回路構成情報の抽出処理を行う場合、並び替え後の前記論理メモリ候補一覧テーブルの中から、最優先候補内で使用しているレジスタ数が、１つの論理条件を実現するためのレジスタ制限値よりも小さく、かつ前記レジスタ数がすべての論理条件を満たす論理メモリ構成を実現するためのレジスタ制限値よりも小さくなる回路構成情報を抽出し、前記回路記述化処理部は、抽出された回路構成情報にもとづき、回路記述を行うことを特徴とする付記９記載のメモリ構築装置。
【図面の簡単な説明】
【０１３２】
【図１】メモリ構築装置の原理図である。
【図２】テーブル格納部の構成を示す図である。
【図３】論理条件一覧テーブルを示す図である。
【図４】物理ＲＡＭ一覧テーブルを示す図である。
【図５】物理ＲＡＭ・ＦＦ使用個数制限テーブルを示す図である。
【図６】論理メモリ構成処理部の動作を示すフローチャートである。
【図７】論理メモリ候補の構成状態を示す図である。
【図８】論理メモリ候補の構成状態を示す図である。
【図９】論理メモリ候補の構成状態を示す図である。
【図１０】論理メモリ候補の構成状態を示す図である。
【図１１】論理メモリ構成組み合わせ一覧テーブルを示す図である。
【図１２】論理メモリ構成組み合わせ一覧テーブルを示す図である。
【図１３】論理メモリ構成組み合わせ一覧テーブルを示す図である。
【図１４】論理メモリ構成一覧テーブルを示す図である。
【図１５】論理メモリ候補一覧テーブルを示す図である。
【図１６】論理メモリ候補一覧テーブルを示す図である。
【図１７】最適構成抽出処理部の動作を示すフローチャートである。
【図１８】最適論理メモリ構成組み合わせ一覧テーブルを示す図である。
【図１９】論理メモリ構成一覧テーブルの置き換えの様子を示す図である。
【図２０】論理メモリ構成一覧テーブルの置き換えの様子を示す図である。
【図２１】論理メモリ構成一覧テーブルの置き換えの様子を示す図である。
【図２２】回路記述化処理部の動作を示すフローチャートである。
【図２３】変数化された回路記述により生成される回路構成の一例を示す図である。
【図２４】パラメータの一例を示す図である。
【図２５】各パラメータの具体的な値を示す図である。
【図２６】パラメータの設定箇所を示す図である。
【図２７】物理ＲＡＭの単体構成例を示す図である。
【図２８】物理ＲＡＭの複数構成例を示す図である。
【図２９】物理ＲＡＭ、ビット補完ＦＦ、ワード補完ＦＦの構成例を示す図である。
【図３０】物理ＲＡＭ、ワード補完ＦＦの構成例を示す図である。
【図３１】物理ＲＡＭ、ビット補完ＦＦの構成例を示す図である。
【図３２】ワード補完ＦＦのみの構成例を示す図である。
【符号の説明】
【０１３３】
１０  メモリ構築装置
１１  論理メモリ構成処理部
１２  最適構成抽出処理部
１３  回路記述化処理部
１４  テーブル格納部
【図１】
0004606341.tif 000002
【図２】
0004606341.tif 000003
【図３】
0004606341.tif 000004
【図４】
0004606341.tif 000005
【図５】
0004606341.tif 000006
【図６】
0004606341.tif 000007
【図７】
0004606341.tif 000008
【図８】
0004606341.tif 000009
【図９】
0004606341.tif 000010
【図１０】
0004606341.tif 000011
【図１１】
0004606341.tif 000012
【図１２】
0004606341.tif 000013
【図１３】
0004606341.tif 000014
【図１４】
0004606341.tif 000015
【図１５】
0004606341.tif 000016
【図１６】
0004606341.tif 000017
【図１７】
0004606341.tif 000018
【図１８】
0004606341.tif 000019
【図１９】
0004606341.tif 000020
【図２０】
0004606341.tif 000021
【図２１】
0004606341.tif 000022
【図２２】
0004606341.tif 000023
【図２３】
0004606341.tif 000024
【図２４】
0004606341.tif 000025
【図２５】
0004606341.tif 000026
【図２６】
0004606341.tif 000027
【図２７】
0004606341.tif 000028
【図２８】
0004606341.tif 000029
【図２９】
0004606341.tif 000030
【図３０】
0004606341.tif 000031
【図３１】
0004606341.tif 000032
【図３２】
0004606341.tif 000033