(57)【要約】【課題】オーダに応じた機能ブロックの開発期間を短縮できるようにする。【解決手段】所定のデータ記憶容量のメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・とメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・以外の固定ブロック１００との論理設計を行い、論理設計に従ってブロック別設計データを作成する。作成されたブロック別設計データに関し、メモリブロックの搭載可能範囲内で、ＣＰＵマクロ１００を作成するための制約条件が常に満たされることを検証する。そして、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリブロックを固定ブロック１１０に接続したＣＰＵマクロ１００機能ブロックの設計データを生成する。【選択図】　　　　図１
2004086682.tif 000002
【特許請求の範囲】
【請求項１】
メモリを含む機能ブロックを設計するための機能ブロック設計方法において、
所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、
作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、
検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【請求項２】
前記制約条件は、信号の遅延に関する条件であることを特徴とする請求項１記載の機能ブロック設計方法。
【請求項３】
前記ブロック別設計データを作成する際には、前記メモリブロックと前記固定ブロックとの形状を、所定の接続規則に従って搭載可能範囲内で任意の数の前記メモリブロックを接続したときの前記機能ブロックの縦横比が常に所定の範囲内となる形状とし、
前記機能ブロックの前記設計データを生成する際には、前記所定の接続規則に従って前記メモリブロックを前記固定ブロックに接続することを特徴とする請求項１記載の機能ブロック設計方法。
【請求項４】
前記所定の接続規則では、前記固定ブロックに隣接する位置から前記メモリブロックを連鎖的に接続することが決められていることを特徴とする請求項３記載の機能ブロック設計方法。
【請求項５】
前記固定ブロックの形状を決定する際には、前記固定ブロックと前記メモリブロックとを接続する辺の長さを決定することを特徴とする請求項３記載の機能ブロック設計方法。
【請求項６】
前記機能ブロックの前記設計データを生成する際には、終端の前記メモリブロックの入出力端子へ所定のレベルの信号を供給するクリップモジュールブロックを、前記終端の前記メモリブロックに接続することを特徴とする請求項３記載の機能ブロック設計方法。
【請求項７】
前記ブロック別設計データを作成する際には、前記メモリブロックの対向する２つの辺それぞれに設けられる入出力端子を、前記２つの辺に隣接する他の一辺から同じ距離の位置に設けること特徴とする請求項１記載の機能ブロック設計方法。
【請求項８】
前記メモリブロックのブロック別設計データは、メモリ種別毎に複数生成することを特徴とする請求項１記載の機能ブロック設計方法。
【請求項９】
読み取り専用メモリのブロック別設計データには、書き込み用の信号を通過させるための配線を含めることを特徴とする請求項８記載の機能ブロック設計方法。
【請求項１０】
メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、
メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、
を有することを特徴とする機能ブロック設計装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はメモリを含む機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関し、特にオーダに応じた任意の容量のメモリを実装した機能ブロックを設計するための機能ブロック設計方法およびその方法の処理を実行する機能ブロック設計装置に関する。
【０００２】
【従来の技術】
現在、様々な電子機器が、ＬＳＩ（Ｌａｒｇｅ　Ｓｃａｌｅ　Ｉｎｔｅｇｒａｔｉｏｎ）化された制御装置（システムＬＳＩ）によって制御されている。近年、このような電子機器の開発期間の短縮による迅速な市場投入の要求が高まっている。そこで、電子機器に実装するシステムＬＳＩについても、高機能で最適なものを短期間で開発するよう求められてきている。
【０００３】
システムＬＳＩを短期間で開発する手法として、システムＬＳＩの機能毎に回路設計および動作実証を行う方法がある。機能毎の回路ブロック（機能ブロック）をマクロと呼び、電子機器の制御に必要なマクロを組み合わせることで、その電子機器に必要なシステムＬＳＩを開発する。
【０００４】
システムＬＳＩを構成するマクロのうち、ＣＰＵ（Ｃｅｎｔｒａｌ　Ｐｒｏｃｅｓｓｉｎｇ　Ｕｎｉｔ）のコア回路を含むマクロをＣＰＵマクロと呼ぶ。なお、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）を含むマクロについても、ＣＰＵマクロの概念に含まれるものとする。
【０００５】
ＣＰＵマクロには、ＣＰＵコア回路以外に周辺回路やメモリ回路などが含まれる。ＣＰＵマクロにメモリ回路を内蔵しておくことで、ＣＰＵコア回路で実行させる基本的な処理（たとえば、処理の高速化が求められる処理）の動作検証をＣＰＵコア回路内で行うことができる。
【０００６】
ところで、ＣＰＵマクロは、最終製品である電子機器に合わせてメモリ構成（たとえば、ＲＯＭ（Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）とＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）とのそれぞれの容量）が決定される。したがって、システムＬＳＩが実装される製品毎に、ＣＰＵマクロのフロアプランを決定する必要がある。システムＬＳＩの開発期間の短期化を促進させるためにも、ＣＰＵマクロのフロアプランの設計期間の短期化が望まれている。
【０００７】
図８は、従来のＣＰＵマクロのフロアプランを示す図である。図８（Ａ）は、フロアプランの第１の例を示しており、図８（Ｂ）は、フロアプランの第２の例を示しており、図８（Ｃ）は、フロアプランの第３の例を示している。
【０００８】
図８に示すようにＣＰＵマクロ開発においては、製品毎に要求メモリサイズ／メモリ構成が異なる。そのため、製品毎に、ＣＰＵコア、周辺回路、メモリ回路の配置が決定される。フロアプランでは、ＣＰＵマクロ全体のアスペクト比（縦横比）が所定の範囲内になるように設計される。アスペクト比が正方形に近いほど、ＬＳＩチップ全体を開発する際に、チップの設計が容易となるからである。
【０００９】
たとえば、図８（Ａ）のフロアプランでは、ＣＰＵマクロ９１０内に、ＣＰＵコア回路９１１、周辺回路９１２、複数のメモリ回路９１３が設けられている。ＣＰＵマクロ９１０は長方形をしており、横の辺の長さがＸ１、縦の辺の長さがＹ１である。アスペクト比（縦横比）は、Ｙ１／Ｘ１である。このＣＰＵマクロ９１０は、他のフロアプランの例に比べてメモリ容量が少ない。
【００１０】
図８（Ｂ）のフロアプランでは、ＣＰＵマクロ９２０内に、ＣＰＵコア回路９２１、周辺回路９２２、複数のメモリ回路９２３が設けられている。ＣＰＵマクロ９２０の大きさは、横の辺の長さがＸ２、縦の辺の長さがＹ２である。アスペクト比は、Ｙ２／Ｘ２である。このＣＰＵマクロ９２０は、第１の例に示すフロアプランよりはメモリ容量が多いが、第３の例に示すフロアプランよりはメモリ容量が少ない。
【００１１】
図８（Ｃ）のフロアプランでは、ＣＰＵマクロ９３０内に、ＣＰＵコア回路９３１、周辺回路９３２、複数のメモリ回路９３３が設けられている。ＣＰＵマクロ９３０の大きさは、横の辺の長さがＸ３、縦の辺の長さがＹ３である。アスペクト比は、Ｙ３／Ｘ３である。このＣＰＵマクロ９３０は、他のフロアプランよりメモリ容量が多い。
【００１２】
このように、オーダ毎のＣＰＵマクロでは、ＣＰＵコア回路、周辺回路の論理構造が変わらない場合でも、メモリ構成／メモリ容量は異なる。そのため、アスペクト比が一定範囲内に収まるよう各回路の配置を決定し、ＣＰＵマクロ毎にフロアプランを行っていた。すなわち、過去に設計したＣＰＵマクロの構成に対してメモリ容量を変更するだけであっても、ＣＰＵコア回路、周辺回路、複数のメモリ回路それぞれを配置し直す必要があった。
【００１３】
新規にフロアプランが行われた場合、一定の動作周波数を保証するための工程を実行しなければならない。
図９は、ＣＰＵマクロの設計作業の手順を示す図である。まず、顧客仕様が決定する（ステップＳ９１）と、その顧客仕様に基づいて論理設計を行う（ステップＳ９２）。論理設計終了後、フロアプランのレイアウトを決定する（ステップＳ９３）。すなわち、アスペクト比が所定範囲内になるように、ＣＰＵコア回路、周辺回路、複数のメモリ回路を配置する。
【００１４】
フロアプランレイアウトが終わると、タイミング検証手順（ステップＳ９４〜Ｓ９８）と、物理検証手順（ステップＳ９９〜Ｓ１０１）とに作業が分かれる。タイミング検証手順（ステップＳ９４〜Ｓ９８）では、まずＲＣ抽出処理が行われる（ステップＳ９４）。これは、回路内の複数の区間における抵抗（Ｒ）と静電容量（Ｃ）とに基づく遅延計算を行う。その後、抽出したＲＣに基づいてタイミング検証が行われる（ステップＳ９５）。すなわち、論理設計通りに信号が正しいタイミングで伝わるか否かが検証される。そして検証結果が判定される（ステップＳ９６）。
【００１５】
検証結果がＮＧの場合、論理設計（ステップＳ９２）、またはフロアプランレイアウト（ステップＳ９３）まで戻って、作業をやり直す。一般には、初期の段階のＮＧの判定の場合、フロアプランやレイアウト（ステップＳ９３）をやり直す。フロアプランやレイアウト（ステップＳ９３）を何度修正してもタイミング検証がＮＧになってしまう場合、論理設計（ステップＳ９２）からやり直すことになる。
【００１６】
検証結果がＯＫであれば、タイミングライブラリが作成される（ステップＳ９７）。タイミングライブラリには、構成要素（たとえば、フリップ・フロップ）間の信号の伝搬（信号の遅延等）に関する情報が登録されている。
【００１７】
物理検証手順では、まず物理検証が行われる（ステップＳ９９）。物理検証は、たとえば、配線間隔等の物理的な配置が、所定のルールで示される条件を満たしているか否かが検証される。そして検証結果が判定される（ステップＳ１００）。
【００１８】
物理検証の結果がＮＧであれば、ステップＳ９３のレイアウト決定処理をやり直す。
物理検証の結果がＯＫであれば、フロアプランデータやマスクパターンデータが作成される（ステップＳ１０１）。フロアプランデータは、ＣＰＵマクロを他の回路に接続するために設けられる端子の位置などのデータである。マスクパターンデータは、ＣＰＵマクロのマスクパターンを示すデータである。そして、生成されたタイミングライブラリ、フロアプランデータ、マスクパターンデータが顧客に渡される。
【００１９】
このようにして、一定の動作周波数による動作が保証されたＣＰＵマクロの構造が決定される。
【００２０】
【発明が解決しようとする課題】
しかし、新規にフロアプランを行うと動作周波数を保証するために、タイミング検証や物理検証が行われ、これらの検証にパスするまで、フロアプランやレイアウトプランなどの作成作業が繰り返し発生してしまう。フロアプランやレイアウトプランが変更されれば、タイミング検証や物理検証もやり直しとなる。その結果、ＣＰＵマクロ開発に時間がかかっていた。
【００２１】
本発明はこのような点に鑑みてなされたものであり、オーダに応じた機能ブロックの開発期間を短縮することができる機能ブロック設計方法および機能ブロック設計装置を提供することを目的とする。
【００２２】
【課題を解決するための手段】
本発明では上記課題を解決するために、メモリを含む機能ブロックを設計するための機能ブロック設計方法において、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、ことを特徴とする機能ブロック設計方法が提供される。
【００２３】
このような機能ブロック設計方法によれば、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されるため、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続することで生成された機能ブロックの設計データは、常に制約条件を満たす。
【００２４】
また、本発明では上記課題を解決するために、メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、を有することを特徴とする機能ブロック設計装置が提供される。
【００２５】
このような機能ブロック設計装置によれば、メモリ容量の指定入力が行われると、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、指定入力されたメモリ容量の機能ブロックの設計データが生成される。
【００２６】
【発明の実施の形態】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。なお、以下の実施の形態では、メモリを含む機能ブロックとして、ＣＰＵマクロのフロアプランを設計する場合の例である。また、以下の例では、メモリブロックをメモリフロアプランブロックと呼ぶ。
【００２７】
図１は、実施の形態に適用される発明の概念図である。なお、図１では、横方向をＸ軸、縦方向をＹ軸とする。
第１の工程として、ＣＰＵマクロ１００のフロアプランにおいて、変更の必要がない固定ブロック１１０を配置する領域と、顧客毎に異なる構成のメモリが配置されるメモリフロアプラン領域１２０，１３０（メモリ容量可変）とに分ける。固定ブロック１１０には、ＣＰＵコア回路と周辺回路とが含まれる。一方のメモリフロアプラン領域１２０は固定ブロック１１０の上に設けられ、他方のメモリフロアプラン領域１３０は固定ブロック１１０の下に設けられている。
【００２８】
なお、図１の例では、固定ブロック１１０の上下にメモリフロアプラン領域１２０，１３０が配置されているが、固定ブロック１１０の左右にメモリフロアプラン領域１２０，１３０を配置することも可能である。その場合、以下の説明における縦方向（Ｙ軸方向）と横方向（Ｘ軸方向）とが逆になる。
【００２９】
第２の工程として、所定の接続規則に従って搭載可能範囲内で任意の数のメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・を接続したときのＣＰＵマクロ１００のアスペクト比（縦横比）が常に所定の範囲内となるように、各ブロックの形状を決定する。
【００３０】
なお、図１の例における所定の接続規則では、固定ブロック１１０とメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３との隣接する辺（長さＸＦの辺）に交わる方向（たとえば、ＸＦの辺に垂直な縦方向）に沿って、メモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・を上下に連鎖的に配置して行くことが決められている。
【００３１】
また、図１の例では、固定ブロック１１０とメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・とは、長方形である。従って、各ブロックの縦と横の辺の長さを決めれば、各ブロックの形状が決定する。
【００３２】
そこで、ＣＰＵマクロ１００のアスペクト比（縦横比）であるＹＳ／ＸＳが、ＣＰＵマクロ１００の仕様で定められた最大・最小メモリ面積において所定の範囲内となるように、固定領域のＹＦとＸＦとを決定する。ここで、ＹＳはＣＰＵマクロ１００の縦方向の長さであり、ＸＳはＣＰＵマクロ１００の横方向の長さである。また、ＹＦは固定ブロック１１０の縦方向の長さであり、ＸＦは固定ブロック１１０の横方向の長さである。なお、ＸＦは、ＣＰＵマクロ１００の縁に設けられる冗長スペースの分だけＸＳより小さい値である。
【００３３】
具体的には、以下の２つの条件を満たすＹＦ／ＸＦが求められる。第１の条件は、最小メモリ構成の場合（ＹＳが最小になる）に、ＹＳ／ＸＳがアスペクト比の最小値以上であることである。第２の条件は、最大メモリ構成の場合（ＹＳが最大になる）に、ＹＳ／ＸＳがアスペクト比の最大値以下であることである。
【００３４】
なお、メモリフロアプラン領域１２０，１３０の面積は、最大メモリ容量に基づいて決定される。すなわち、メモリフロアプラン領域１２０，１３０は、ＣＰＵマクロ１００内に実装する最大メモリ容量に応じた数のメモリフロアプランブロックを内包できるだけの面積を有している。なお、最大メモリ容量は、ＣＰＵコア回路からアクセス可能なメモリ空間のサイズとすることができる。
【００３５】
また、メモリ種別によって、メモリフロアプランブロックのサイズが異なる。たとえば、ＲＯＭよりもＲＡＭの方が専有面積が広くなる。この場合、ＲＡＭを可能な限り実装したときに、メモリフロアプラン領域１２０，１３０の面積が最大となる。なお、メモリ空間のサイズ以下であれば、オーダ受け付け可能な最大メモリ容量を任意に決定してもよい。
【００３６】
第３の工程として、第２の工程で決定したＸＦと、ＸＢがほぼ等しくなるように各メモリフロアプランブロックの一辺の長さを決める。そして、所定の論理設計に従って、所定のデータ記憶容量のメモリブロックとメモリブロック以外の固定ブロックとのそれぞれに関する設計データ（ブロック別設計データ）を作成する。
【００３７】
第４の工程として、作成されたブロック別設計データに関し、メモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・の搭載可能範囲内で、ＣＰＵマクロ１００を作成するための制約条件が常に満たされることを検証する。このとき、制約条件を満たすのが最も厳しくなるメモリ構成について制約条件が満たされることが確認できれば、制約条件が常に満たされるものとみなすことができる。制約条件とは、たとえば、信号の遅延を規定値以内にするというタイミング保証である。タイミング保証を行うことで、予定された動作周波数に同期させて正しく信号が伝わることが検証できる。
【００３８】
具体的には、固定ブロック１１０の上下に配置したメモリフロアプランブロックのデータ出力端子からＣＰＵマクロ１００のデータ出力端子までのパスで、遅延値が最大及び最小となるメモリ構成に対してタイミング保証を行う。遅延値が最大となるメモリ構成とは、メモリフロアプラン領域１２０，１３０に、最大限のメモリフロアプランブロックを実装したときの構成である。また、遅延値が最小となるメモリ構成とは、メモリフロアプラン領域１２０，１３０に、最小限のメモリフロアプランブロックを実装したときの構成である。なお、ＣＰＵコア回路の設計上、遅延値が小さいときには問題が生じないことが分かっている場合、遅延値が最小となるメモリ構成に対するタイミング保証作業を省くことも可能である。
【００３９】
第５の工程として、検証されたブロック別設計データを用い、任意のメモリ容量に応じた数のメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・を固定ブロック１１０に接続したＣＰＵマクロ１００の設計データを生成する。
【００４０】
具体的には、顧客からオーダされたメモリ構成に応じた数のメモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・を、メモリフロアプラン領域１２０，１３０内に配置する。メモリフロアプランブロック１２１，１２２，・・・，１３１，１３２，１３３，・・・の配置は、固定ブロック１１０に隣接する位置から順番に行う。たとえば、メモリフロアプランブロック１２１→メモリフロアプランブロック１３１→メモリフロアプランブロック１２２→メモリフロアプランブロック１３２→・・・の順で、上下のメモリフロアプラン領域１２０，１３０に交互に配置する。
【００４１】
このようにメモリフロアプランブロックを、顧客からのオーダに応じた数だけ配置することで、オーダされたメモリ容量のＣＰＵマクロの設計データを作成することができる。
【００４２】
以下、オーダに応じたＣＰＵマクロのフロアプラン作成処理について、具体的に説明する。
図２は、設計データの構造例を示している。図２の例では、固定ブロック１１０の上側のメモリフロアプラン領域１２０の更に上に、クリップモジュールブロック１４１が設けられている。同様に、固定ブロック１１０の下側のメモリフロアプラン領域１３０の更に下に、クリップモジュールブロック１４２が設けられている。クリップモジュールブロック１４１，１４２は、メモリフロアプラン領域１２０，１３０内のメモリフロアプランブロック１３１，１３２，・・・における入出力端子のうち、所定の端子へ固定の信号を入力するためのフロアプランブロックである。
【００４３】
各フロアプランブロックは、入出力端子１１〜１５，２１〜２５，３１〜３５，４１〜４５，５１〜５５，６１〜６５によって互いに接続されている。入出力端子１１〜１５は、固定ブロック１１０とメモリフロアプラン領域１２０内のメモリフロアプランブロック（図示せず）との間を接続している。入出力端子２１〜２５は、固定ブロック１１０とメモリフロアプラン領域１３０内のメモリフロアプランブロック１３１との間を接続している。入出力端子３１〜３５は、メモリフロアプランブロック１３１とメモリフロアプランブロック１３２との間を接続している。入出力端子４１〜４５は、メモリフロアプランブロック１３１とメモリフロアプラン領域１３０内の他のメモリフロアプランブロック（図示せず）との間を接続している。入出力端子５１〜５５は、メモリフロアプラン領域１２０内のメモリフロアプランブロック（図示せず）とクリップモジュールブロック１４１との間を接続している。入出力端子６１〜６５は、メモリフロアプラン領域１３０内のメモリフロアプランブロック（図示せず）とクリップモジュールブロック１４２との間を接続している。
【００４４】
固定ブロック１１０は内部にＣＰＵコア回路と周辺回路とを有しており、５種類の信号が入出力される。ｎ１ビットのメモリ出力制御信号は、入出力端子１１，２１，３１，４１，５１，６１を介して、各フロアプランブロック間で受け渡される。ｎ２ビットのメモリ出力データは、入出力端子１２，２２，３２，４２，５２，６２を介して、各フロアプランブロック間で受け渡される。ｎ３ビットのメモリアドレスは、入出力端子１３，２３，３３，４３，５３，６３を介して、各フロアプランブロック間で受け渡される。ｎ４ビットのメモリ入力クロックは、入出力端子１４，２４，３４，４４，５４，６４を介して、各フロアプランブロック間で受け渡される。ｎ５ビットのメモリライトデータは、入出力端子１５，２５，３５，４５，５５，６５を介して、各フロアプランブロック間で受け渡される。なお、ｎ１、ｎ２、ｎ３、ｎ４、ｎ５は、１以上の整数である。
【００４５】
図２の例では、メモリフロアプランブロック１３１はＲＯＭのフロアプランブロックであり、メモリフロアプランブロック１３２はＲＡＭのフロアプランブロックである。
【００４６】
ＲＯＭのメモリフロアプランブロック１３１は、ＲＯＭ回路１３１ａ〜１３１ｃ、ＡＮＤ（論理積）回路１３１ｄ〜１３１ｆおよびＯＲ（論理和）回路１３１ｇ〜１３１ｉで構成されている。ＲＯＭ回路１３１ａ〜１３１ｃには、予めデータを記憶させておくことができ、そのデータを読み出すことができる。
【００４７】
ＲＯＭ回路１３１ａ〜１３１ｃには、入出力端子２３，２４を介してメモリアドレスとメモリ入力クロックとが入力される。ＲＯＭ回路１３１ａの出力は、ＡＮＤ回路１３１ｄに入力される。ＲＯＭ回路１３１ｂの出力は、ＡＮＤ回路１３１ｅに入力される。ＲＯＭ回路１３１ｃの出力は、ＡＮＤ回路１３１ｆに入力される。さらに、ＡＮＤ回路１３１ｄ〜１３１ｆには、入出力端子２１を介してメモリ出力制御信号が入力される。
【００４８】
ＡＮＤ回路１３１ｄの出力は、ＯＲ回路１３１ｇに入力される。ＡＮＤ回路１３１ｅとＡＮＤ回路１３１ｆとの出力は、ＯＲ回路１３１ｉに入力される。ＯＲ回路１３１ｉの出力は、ＯＲ回路１３１ｇに入力される。ＯＲ回路１３１ｇの出力は、ＯＲ回路１３１ｈに入力される。さらに、ＯＲ回路１３１ｈには、入出力端子３２を介してメモリ出力データが入力される。ＯＲ回路１３１ｈの出力は、入出力端子２２を介して、メモリ出力データとして固定ブロック１１０に供給される。入出力端子２５から入力されたメモリライトデータは、入出力端子３５を介してＲＡＭのメモリフロアプランブロック１３２に対して出力される。
【００４９】
ＲＡＭのメモリフロアプランブロック１３２は、ＲＡＭ回路１３２ａ，１３２ｂ，ＡＮＤ回路１３２ｃ，１３２ｄ、およびＯＲ回路１３２ｅで構成されている。ＲＡＭ回路１３２ａ，１３２ｂには、データを随時書き込むことが出来ると共に、書き込んだデータを読み出すことができる。
【００５０】
ＲＡＭ回路１３２ａ，１３２ｂには、入出力端子３３，３４，３５を介してメモリアドレス、メモリ入力クロックおよびメモリライトデータが入力される。ＲＡＭ回路１３２ａの出力は、ＡＮＤ回路１３２ｃに入力される。ＲＡＭ回路１３２ｂの出力は、ＡＮＤ回路１３２ｄに入力される。さらに、ＡＮＤ回路１３２ｃ，１３２ｄには、入出力端子３１を介してメモリ出力制御信号が入力される。
【００５１】
ＡＮＤ回路１３２ｃとＡＮＤ回路１３２ｄとの出力は、ＯＲ回路１３２ｅに入力される。さらに、ＯＲ回路１３２ｅには、入出力端子４２を介してメモリ出力データが入力される。ＯＲ回路１３２ｅの出力は、入出力端子３２を介して、メモリ出力データとしてメモリフロアプランブロック１３１に供給される。
【００５２】
なお、メモリフロアプラン領域１２０内に設けられるメモリフロアプランブロックの構成は、メモリフロアプラン領域１３０内のメモリフロアプランブロック１３１，１３２を１８０度回転させた構成となる。
【００５３】
クリップモジュールブロック１４１では、グランドレベル（ローレベル）の信号が、バッファ回路１４１ａを介して入出力端子５２に供給されている。他の入出力端子５１，５３，５４，５５からクリップモジュールブロック１４１に供給される信号は、開放された状態である。
【００５４】
クリップモジュールブロック１４２では、グランドレベルの信号が、バッファ回路１４２ａを介して入出力端子６２に供給されている。他の入出力端子６１，６３，６４，６５からクリップモジュールブロック１４２に供給される信号は、開放された状態である。
【００５５】
このような構成のフロアプランブロックであれば、固定ブロック１１０から出力されるメモリ出力制御信号、メモリアドレス、メモリ入力クロック、及びメモリライトデータが各メモリフロアプランブロック１３１，１３２，・・・に供給される。また、各メモリフロアプランブロック１３１，１３２，・・・から出力されたメモリ出力データが固定ブロック１１０に供給される。
【００５６】
たとえば、ＲＯＭ回路１３１ａからデータを読み出す場合、固定ブロック１１０から、ＲＯＭ回路１３１ａに割り当てられたメモリアドレスが出力される。出力されたメモリアドレスは、入出力端子２３を介してメモリフロアプランブロック１３１に入力される。各ＲＯＭ回路１３１ａ，１３１ｂ，１３１ｃは、固定ブロック１１０から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。
【００５７】
すると、ＲＯＭ回路１３１ａが、入力されたメモリアドレスに対応する記憶領域からデータを取りだし、ＡＮＤ回路１３１ｄに出力する。ＡＮＤ回路１３１ｄは、メモリ出力制御信号がアサートされたときに、入力されたデータを出力する。ＡＮＤ回路１３１ｄから出力されたデータは、ＯＲ回路１３１ｇ、ＯＲ回路１３１ｈおよび入出力端子２２を経由して、固定ブロック１１０に渡される。
【００５８】
このようにして、固定ブロック１１０内のＣＰＵコア回路から、メモリフロアプランブロック内のデータを読み取ることができる。
また、ＲＡＭ回路１３２ａへデータを書き込む場合、固定ブロック１１０から、ＲＯＭ回路１３２ａに割り当てられたメモリアドレスが出力されるとともに、メモリライトデータが出力される。出力されたメモリアドレスとメモリライトデータとは、それぞれ入出力端子３３と入出力端子３５とを介してメモリフロアプランブロック１３２に入力される。各ＲＡＭ回路１３２ａ，１３２ｂは、固定ブロック１１０から供給されるメモリ入力クロックに同期して、メモリアドレスを取り込む。すると、ＲＡＭ回路１３２ａが、入力されたメモリアドレスに対応する記憶領域へデータを書き込む。
【００５９】
このようにして、固定ブロック１１０内のＣＰＵコア回路から出力されるデータを、メモリフロアプランブロック内に書き込むことができる。
なお、図２に示す設計データでは、クリップモジュールブロック１４１，１４２では、入力信号クリップとして、固定ブロック１１０に対して供給する信号の入力端を、ローレベル（グランドレベル）に固定している。これにより、メモリフロアプランブロックへの入力信号が不定になることが防止される。
【００６０】
しかも、本実施の形態では、メモリフロアプランブロックの上下に入出力端子が設けられ、上側の入出力端子と下側の入出力端子とが１対１で対応付けられている。そして、対応する入出力端子には同じ種類の信号が入出力されるように構成されている。これにより、上下方向にメモリフロアプランブロック同士を接続した場合に、同じ種類の信号用の入出力端子の位置が合致する。その結果、任意の段数のメモリフロアプランブロックを連鎖的に接続することができる。
【００６１】
さらに、ＲＯＭのメモリフロアプランブロックには、ＲＡＭメモリライトデータを通過させるための信号線が設けられている。そのため、ＲＯＭのメモリフロアプランブロックとＲＡＭのメモリフロアプランブロックとを混在させ、任意の配列で接続することができる。
【００６２】
ところで、各フロアプランブロックに関する設計データは、たとえば、フロアプランデータは、ＬＥＦ（Ｌｉｂｒａｒｙ　Ｅｘｃｈａｎｇｅ　Ｆｏｒｍａｔ）やＤＥＦ（Ｄｅｓｉｇｎ　Ｅｘｃｈａｎｇｅ　Ｆｏｒｍａｔ）のデータ形式、マスクパターンデータはＧＤＳのデータ形式で作成することができる。
【００６３】
また、メモリフロアプランブロックは、顧客からのオーダに応じて任意のメモリ容量分だけ設けることができる。１つのメモリフロアプランブロック当りのメモリ容量（ｂｉｔ、ｗｏｒｄ、ｃｏｌｕｍｎ）及び種類（ＲＯＭ、ＲＡＭ等）も任意に設定できる。
【００６４】
次に、オーダに応じたＣＰＵマクロのフロアプラン作成処理の手順を具体的に説明する。オーダに応じたＣＰＵマクロのフロアプラン作成処理は、大別して、顧客のオーダに依存せずに予め実行される設計データ作成処理（前述の第１の工程から第４の工程）と、オーダに応じたフロアプラン作成処理（前述の第５の工程）とに分けることができる。
【００６５】
図３は、設計データ作成処理の作業手順を示す図である。以下、図３に示す処理を、ステップ番号に沿って説明する。
［ステップＳ１］フロアプランブロックの論理設計が行われる。たとえば、設計担当者がコンピュータに実装されたソフトウェアを利用して、フロアプランブロックの論理設計を行い、論理設計の内容をコンピュータ内に記憶させる。
【００６６】
［ステップＳ２］固定ブロックのフロアプランやレイアウトを作成する。具体的には、メモリフロアプラン領域の面積が最大になるとき（メモリ最大）、およびメモリフロアプラン領域の面積が最小になるとき（メモリ最小）のＣＰＵマクロのアスペクト比が所定範囲内になるように、固定ブロックの横幅（Ｘ軸方向の長さ）を決定する。そして、決定された横幅の領域内にＣＰＵコア回路や周辺回路が内包できるように、回路の配線等の設計を行う。このとき、固定ブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【００６７】
［ステップＳ３］メモリフロアプランブロックのフロアプランやレイアウトを作成する。このとき、メモリフロアプランブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。なお、メモリフロアプランブロックは、記憶容量や種別毎に複数作成しておくことができる。
【００６８】
［ステップＳ４］クリップモジュールブロックのフロアプランやレイアウトを作成する。このとき、クリップモジュールブロックのフロアプランやレイアウトにおける物理検証を行い、配線幅等の所定のルールを満足したフロアプランやレイアウトを作成する。
【００６９】
［ステップＳ５］メモリ最大時のタイミング検証を行う。
［ステップＳ６］メモリ最大時のタイミング検証の結果を判定し、問題がなければステップＳ９に処理を進める。問題が発生したら、ステップＳ２の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【００７０】
［ステップＳ７］メモリ最小時のタイミング検証を行う。
［ステップＳ８］メモリ最小時のタイミング検証の結果を判定し、問題がなければステップＳ９に処理を進める。問題が発生したら、ステップＳ２の処理に戻り、フロアプラン・レイアウト作成をやり直す。
【００７１】
［ステップＳ９］フロアプランブロック毎の設計データを生成する。
これにより、フロアプランブロック毎の設計データが生成される。
ここで、ステップＳ２で行われる固定ブロックの形状（横幅ＸＦと縦幅ＹＦ）の決定方法について詳しく説明する。
【００７２】
固定ブロックの形状は、最終的に実装可能なメモリ構成のアスペクト比に依存する。すなわち、どのようなメモリ構成となってもアスペクト比が所定範囲に収まるように、固定ブロックの形状が決定される。具体的には、アスペクト比が最大になるメモリ構成と、アスペクト比が最小になるメモリ構成とについて、そのアスペクト比が所定範囲内に収まるようにする。
【００７３】
図４は、固定ブロック形状決定に用いる情報を示す図である。図４では、横方向にＸ軸、縦方向にＹ軸を採っている。ＣＰＵマクロ１００の枠の縦幅Ｙｓと横幅Ｘｓとによりアスペクト比（Ｙｓ／Ｘｓ）が表される。
【００７４】
ＣＰＵマクロ１００の枠には、冗長幅αの分だけ冗長部分が設けられている。従って、ＣＰＵマクロ１００の枠の横幅Ｘｓの値は、固定ブロック１１０の横幅Ｘ　Ｆから冗長幅αの分だけ大きい値である。また、メモリフロアプランブロック１２１，１２２，・・・１２Ｎ，１３１，１３２，・・・１３Ｍ、クリップモジュールブロック１４１，１４２の横幅ＸＢは、固定ブロック１１０の横幅Ｘ　Ｆとほぼ同じである。クリップモジュールブロック１４１，１４２の縦幅はＹＣである。
【００７５】
ＣＰＵマクロ１００の枠の縦幅Ｙｓについては、メモリの搭載量によって決まる。図４の例では、上側のメモリフロアプラン領域１２０にＮ個（Ｎは自然数）のメモリフロアプランブロック１２１，１２２，・・・１２Ｎが搭載されており、下側のメモリフロアプラン領域１３０にＭ個（Ｍは自然数）のメモリフロアプランブロック，１３１，１３２，・・・１３Ｍが搭載されている。
【００７６】
このような場合、以下のようにして、固定ブロック１１０の形状（横幅ＸＦと縦幅ＹＦ）を決定する。
【００７７】
【数１】
ｃ≧（ａＹＡ＋ＹＦ＋２Ｙｃ＋２α）／（ＸＦ＋２α）・・・（１）
【００７８】
【数２】
ｄ≧（ｂＹＢ＋ＹＦ＋２Ｙｃ＋２α）／（ＸＦ＋２α）・・・（２）
ここで、ｃは、アスペクト比の最大値である。ｄは、アスペクト比の最小値である。αは、冗長スペースの幅であり、０以上の任意の値である。ＹＡは、ＣＰＵマクロ１００の仕様においてメモリの容量が最大時の１メモリフロアプランブロックのＹ方向の長さである。ＹＢは、ＣＰＵマクロ１００の仕様においてメモリの容量が最小時の１メモリフロアプランブロックのＹ方向の長さである。ａは、ＣＰＵマクロ１００の仕様において、メモリの容量が最大時のメモリフロアプランブロック数である。ｂは、ＣＰＵマクロ１００の仕様においてメモリの容量が最小時のメモリフロアプランブロック数である。
【００７９】
以上の式（１）、（２）を満たすＸＦ、ＹＦの組み合わせの中から適当な形状が決定される。たとえば、アスペクト比が最も１に近いものを採用する。
なお、図１に示したようなクリップモジュールブロックの無い構成の場合、式（１）、式（２）内の「２ＹＣ」の項は不要である。
【００８０】
固定ブロックの横幅と縦幅が決まれば、他のフロアプランブロックの形状も決まる。そして、その形状内で、各フロアプランブロック内部のフロアプランやレイアウトが作成され、フロアプランブロック毎の設計データとして保存される。
【００８１】
その後、フロアプランブロック毎の設計データに基づいて、顧客からのオーダに応じたメモリ構成のＣＰＵマクロの設計データが生成される。
図５は、顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。以下、図５に示す処理をステップ番号に沿って説明する。
【００８２】
［ステップＳ１１］顧客仕様が決定する。本実施の形態では、顧客からのオーダによってメモリ構成が決定される。
［ステップＳ１２］顧客仕様に基づいてフロアプランのレイアウトを決定する。具体的には、メモリ構成に応じたメモリフロアプランブロックを、固定ブロックの上下に追加する。この際、データ入出力の速度が遅い種類のメモリを、固定ブロックに近い位置に配置する。たとえば、ＲＡＭよりもＲＯＭの方が遅い場合には、まず固定ブロック１１０に隣接する位置にＲＯＭのメモリフロアプランブロックを配置する。その後、ＲＯＭのメモリフロアプランブロックに隣接させて、ＲＡＭのメモリフロアプランブロックが配置される。
【００８３】
［ステップＳ１３］タイミングライブラリが作成される。タイミングライブラリには、構成要素（たとえば、フリップ・フロップ）間の信号の伝搬（信号の遅延等）に関する情報が登録されている。
【００８４】
［ステップＳ１４］作成されたタイミングライブラリが顧客に渡される。
［ステップＳ１５］フロアプランデータやマスクパターンデータが作成され、顧客に渡される。
【００８５】
このようにして、顧客のオーダ毎のＣＰＵマクロの設計データが作成され、顧客に渡される。なお、フロアプランブロック毎の設計データを作成した際に、物理検証を行っていると共に、最も厳しい条件下（信号の遅延が最も発生しやすい条件下）でのタイミング検証を行っているため、顧客からのオーダを受けた際にはタイミング検証を行う必要はない。その結果、フロアプランやレイアウト作成のやり直しが発生せず、顧客のオーダに応じたＣＰＵマクロの設計データを短期間で作成することが可能となる。
【００８６】
ところで、ＣＰＵマクロの設計データの供給方法として、図５に示した処理をコンピュータで実行させ、設計データを自動生成することもできる。ここで、設計データを自動生成する機能を、ＣＰＵマクロジェネレータと呼ぶこととする。
【００８７】
たとえば、フロアプランブロック毎に各設計データ（Ｎｅｔｌｉｓｔ、ＤＥＦ、ＬＥＦ、ＧＤＳ等）を用意し、ストレージデバイスに格納しておく。顧客がＣＰＵマクロジェネレータに対してパラメータ（メモリ構成、テクノロジコード）を入力すると、ＣＰＵマクロジェネレータが自動的に必要なパーツを集めて所望の設計データを出力する。この際、さらに上記のパラメータ入力により、作成されたＣＰＵマクロのスペックを、ＣＰＵマクロジェネレータに計算させることもできる。
【００８８】
図６は、設計データ自動作成例を示す図である。図６に示すように、ストレージデバイス２２０には、固定ブロック２２１、メモリフロアプランブロック２２２、クリップモジュールブロック２２３の設計データが予め格納されている。
【００８９】
そして、ＣＰＵマクロジェネレータ２１０にパラメータが入力される。パラメータは、たとえば、メモリ構成、テクノロジコード等である。なお、入力可能な複数のパラメータを予め用意しておき、その中からユーザにパラメータを選択させることもできる。
【００９０】
すると、ＣＰＵマクロジェネレータ２１０において、フロアプランブロック毎に作成されている設計データ（ＬＥＦ、ＤＥＦ、ＧＤＳ等）から必要なデータを集め、ＣＰＵマクロ全体としての設計データを生成する。たとえば、メモリ規模が少なければ（メモリ規模小）、２つのメモリフロアプランブロック１２１，１３１が含まれるＣＰＵマクロ１００ａの様な構成を示す設計データが生成される。メモリ規模がＣＰＵマクロ１００ａより大きければ（メモリ規模中）、５つのメモリフロアプランブロック１２１，１２２，１３１，１３２，１３３が含まれるＣＰＵマクロ１００ｂの様な構成を示す設計データが生成される。メモリ規模がさらに大きければ（メモリ規模大）、６つのメモリフロアプランブロック１２１ａ，１２２，１２３，１３１ａ，１３２ａ，１３３が含まれるＣＰＵマクロ１００ｃの様な構成を示す設計データが生成される。なお、メモリフロアプランブロック１２１ａ，１３１ａ，１３２ａは、メモリフロアプランブロック１２１，１３１，１３２よりも記憶容量が大きい。
【００９１】
また、ＣＰＵマクロジェネレータ２１０は、ユーザからのパラメータとしてメモリ構成・容量を入力または選択を受け付け、予め準備しているメモリフロアプランブロック単位の設計データ（たとえば、サイズや消費電力）から必要なデータを収集し、ＣＰＵマクロ１００の設計データ（たとえば、ＣＰＵマクロ１００全体のサイズや消費電力等のスペック情報）を出力する。これにより、スペック見積り・データ提供の作業工数が短縮化できる。
【００９２】
図７は、ＣＰＵマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。コンピュータ２００は、ＣＰＵ２０１によって装置全体が制御されている。ＣＰＵ２０１には、バス２０７を介してＲＡＭ２０２、ハードディスクドライブ（ＨＤＤ：Ｈａｒｄ　Ｄｉｓｋ　Ｄｒｉｖｅ）２０３、グラフィック処理装置２０４、入力インタフェース２０５、および通信インタフェース２０６が接続されている。
【００９３】
ＲＡＭ２０２には、ＣＰＵ２０１に実行させるＯＳ（Ｏｐｅｒａｔｉｎｇ　Ｓｙｓｔｅｍ）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ２０２には、ＣＰＵ２０１による処理に必要な各種データが格納される。ＨＤＤ２０３には、ＯＳやアプリケーションプログラムが格納されるとともに、各種フロアプランブロックの設計データが格納される。
【００９４】
グラフィック処理装置２０４には、モニタ３０１が接続されている。グラフィック処理装置２０４は、ＣＰＵ２０１からの命令に従って、画像をモニタ３０１の画面に表示させる。入力インタフェース２０５には、キーボード３０２とマウス３０３とが接続されている。入力インタフェース２０５は、キーボード３０２やマウス３０３から送られてくる信号を、バス２０７を介してＣＰＵ２０１に送信する。
【００９５】
通信インタフェース２０６は、ネットワーク３１０に接続されている。通信インタフェース２０６は、ネットワーク３１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００９６】
以上のようなハードウェア構成によって、本実施の形態のＣＰＵマクロジェネレータを実現することができる。
以上のように、本発明の実施の形態によれば、規則性を持つフロアプランの作成方法を用い、ＣＰＵマクロの仕様において最も動作限界に近いメモリ構成での動作保証を行うことができる。また、本実施の形態に係るフロアプランの作成方法を利用して設計データを供給し、マクロの見積りを行うことにより、ＣＰＵマクロの開発期間を短縮化できる。
【００９７】
なお、上記の実施の形態では、入力信号クリップとしてローレベルの信号に固定しているが、ハイレベルの信号に固定することもできる。
また、上記のＣＰＵマクロジェネレータの処理機能を実現するために、ＣＰＵマクロジェネレータが有すべき機能の処理内容を記述した機能ブロック設計プログラムが提供される。その機能ブロック設計プログラムをコンピュータで実行することにより、ＣＰＵマクロジェネレータの処理機能がコンピュータ上で実現される。処理内容を記述した機能ブロック設計プログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（ＤｉｇｉｔａｌＶｅｒｓａｔｉｌｅ　Ｄｉｓｃ）、ＤＶＤ−ＲＡＭ（Ｒａｎｄｏｍ　Ａｃｃｅｓｓ　Ｍｅｍｏｒｙ）、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ　Ｄｉｓｃ　Ｒｅａｄ　Ｏｎｌｙ　Ｍｅｍｏｒｙ）、ＣＤ−Ｒ（Ｒｅｃｏｒｄａｂｌｅ）／ＲＷ（ＲｅＷｒｉｔａｂｌｅ）などがある。光磁気記録媒体には、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ　ｄｉｓｃ）などがある。
【００９８】
機能ブロック設計プログラムを流通させる場合には、たとえば、その機能ブロック設計プログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、機能ブロック設計プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにその機能ブロック設計プログラムを転送することもできる。
【００９９】
機能ブロック設計プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録された機能ブロック設計プログラムもしくはサーバコンピュータから転送された機能ブロック設計プログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置から機能ブロック設計プログラムを読み取り、機能ブロック設計プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接機能ブロック設計プログラムを読み取り、その機能ブロック設計プログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取った機能ブロック設計プログラムに従った処理を実行することもできる。
【０１００】
（付記１）　メモリを含む機能ブロックを設計するための機能ブロック設計方法において、
所定の論理設計に従って、所定のデータ記憶容量のメモリブロックと前記メモリブロック以外の固定ブロックとのそれぞれに関するブロック別設計データを作成し、
作成された前記ブロック別設計データに関し、前記メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることを検証し、
検証された前記ブロック別設計データを用い、任意のメモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【０１０１】
（付記２）　前記制約条件は、信号の遅延に関する条件であることを特徴とする付記１記載の機能ブロック設計方法。
（付記３）　前記制約条件の検証では、前記制約条件を満たすのが最も厳しくなるメモリ構成について前記制約条件が満たされることが確認できれば、前記制約条件が常に満たされるものとみなすことを特徴とする付記１記載の機能ブロック設計方法。
【０１０２】
（付記４）　前記制約条件の検証では、前記メモリブロックを最大限搭載したときに前記制約条件が満たされるか否かを確認することを特徴とする付記３記載の機能ブロック設計方法。
【０１０３】
（付記５）　前記ブロック別設計データを作成する際には、前記メモリブロックと前記固定ブロックとの形状を、所定の接続規則に従って搭載可能範囲内で任意の数の前記メモリブロックを接続したときの前記機能ブロックの縦横比が常に所定の範囲内となる形状とし、
前記機能ブロックの前記設計データを生成する際には、前記所定の接続規則に従って前記メモリブロックを前記固定ブロックに接続することを特徴とする付記１記載の機能ブロック設計方法。
【０１０４】
（付記６）　前記所定の接続規則では、前記固定ブロックに隣接する位置から前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記５記載の機能ブロック設計方法。
【０１０５】
（付記７）　前記所定の接続規則では、前記固定ブロックの対向する２つの辺それぞれに隣接する位置から、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記６記載の機能ブロック設計方法。
【０１０６】
（付記８）　前記所定の接続規則では、前記固定ブロックと前記メモリブロックとの隣接する辺に交わる方向に沿って、前記メモリブロックを連鎖的に接続することが決められていることを特徴とする付記６記載の機能ブロック設計方法。
【０１０７】
（付記９）　前記固定ブロックの形状を決定する際には、前記固定ブロックと前記メモリブロックとを接続する辺の長さを決定することを特徴とする付記５記載の機能ブロック設計方法。
【０１０８】
（付記１０）　前記機能ブロックの前記設計データを生成する際には、終端の前記メモリブロックの入出力端子へ所定のレベルの信号を供給するクリップモジュールブロックを、前記終端の前記メモリブロックに接続することを特徴とする付記５記載の機能ブロック設計方法。
【０１０９】
（付記１１）　前記ブロック別設計データを作成する際には、前記メモリブロックの対向する２つの辺それぞれに設けられる入出力端子を、前記２つの辺に隣接する他の一辺から同じ距離の位置に設けること特徴とする付記１記載の機能ブロック設計方法。
【０１１０】
（付記１２）　前記メモリブロックに関して、対向する前記２つの辺それぞれに対し、前記隣接する他の一辺から同じ距離に設けられた入出力端子に同種の信号が入出力されることを前提とした内部回路を設計することを特徴とする付記１１記載の機能ブロック設計方法。
【０１１１】
（付記１３）　前記メモリブロックのブロック別設計データは、メモリ種別毎に複数生成することを特徴とする付記１記載の機能ブロック設計方法。
（付記１４）　読み取り専用メモリのブロック別設計データには、書き込み用の信号を通過させるための配線を含めることを特徴とする付記１３記載の機能ブロック設計方法。
【０１１２】
（付記１５）　メモリを含む機能ブロックをコンピュータにより自動設計するための機能ブロック設計方法において、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
ことを特徴とする機能ブロック設計方法。
【０１１３】
（付記１６）　メモリを含む機能ブロックを自動設計する機能ブロック設計装置において、
メモリブロックの搭載可能範囲内で前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データが格納された記憶装置と、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する演算装置と、
を有することを特徴とする機能ブロック設計装置。
【０１１４】
（付記１７）　メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムにおいて、
コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラム。
【０１１５】
（付記１８）　メモリを含む機能ブロックを自動設計するための機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体において、
前記コンピュータに、
メモリブロックの搭載可能範囲内で、前記機能ブロックを作成するための制約条件が常に満たされることが検証された、前記メモリブロックと前記メモリブロック以外の前記固定ブロックとに関するブロック別設計データを予め記憶装置に格納し、
メモリ容量の指定入力が行われると、前記記憶装置に格納された前記ブロック別設計データを用い、指定された前記メモリ容量に応じた数の前記メモリブロックを前記固定ブロックに接続した機能ブロックの設計データを生成する、
処理を実行させることを特徴とする機能ブロック設計プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１１６】
【発明の効果】
以上説明したように本発明では、メモリブロックの搭載可能範囲内で、機能ブロックを作成するための制約条件が常に満たされることが予め検証されたブロック別設計データを用いて、任意のメモリ容量に応じた数のメモリブロックを固定ブロックに接続した機能ブロックの設計データを生成したため、生成された設計データは常に制約条件を満たす。その結果、メモリ容量が異なる機能ブロック毎に制約条件の検証を行う必要が無くなり、機能ブロックの設計期間が短縮される。
【図面の簡単な説明】
【図１】実施の形態に適用される発明の概念図である。
【図２】設計データの構造例を示している。
【図３】設計データ作成処理の作業手順を示す図である。
【図４】固定ブロック形状決定に用いる情報を示す図である。
【図５】顧客からのオーダに応じたフロアプラン作成処理の手順を示す図である。
【図６】設計データ自動作成例を示す図である。
【図７】ＣＰＵマクロジェネレータの機能を実現するためのコンピュータのハードウェア構成例を示す図である。
【図８】従来のＣＰＵマクロのフロアプランを示す図である。図８（Ａ）は、フロアプランの第１の例を示しており、図８（Ｂ）は、フロアプランの第２の例を示しており、図８（Ｃ）は、フロアプランの第３の例を示している。
【図９】ＣＰＵマクロの設計作業の手順を示す図である。
【符号の説明】
１００　ＣＰＵマクロ
１１０　固定ブロック
１２０，１３０　メモリフロアプラン領域
１２１，１２２，１３１，１３２，１３３　メモリフロアプランブロック
【図１】
2004086682.tif 000003
【図２】
2004086682.tif 000004
【図３】
2004086682.tif 000005
【図４】
2004086682.tif 000006
【図５】
2004086682.tif 000007
【図６】
2004086682.tif 000008
【図７】
2004086682.tif 000009
【図８】
2004086682.tif 000010
【図９】
2004086682.tif 000011