(57)【要約】【課題】  利用可能な拡散及び／又はロジック・アレイから自動的に生成されたメモリ構造の組合せから、集積回路上に正確かつ最適なメモリ・セットを生成するツールを提供すること。【解決手段】  既に拡散され論理的に集積された多数のブロックを有するスライスが与えられた場合に、本発明によるメモリ生成ツール（３３０）は、スライスの利用可能な拡散メモリとゲート・アレイとを考慮して、カスタマのメモリに対する要件に合うように最適化する。メモリ生成ツール（３３０）は、メモリ・マネジャ（３３２）と、メモリ・リソース・データベース（３３４）と、メモリ・リソース・セレクタ（３３６）と、メモリ・コンポーザ（３３８）とを有している。これらの構成要素の機能により、メモリ・リソース・データベース（３３４）の中にある利用可能なメモリから、デザインに合致したメモリを生成する。【選択図】  図３
2004213639.tif 000002
【特許請求の範囲】
【請求項１】
メモリ生成ツールであって、
（ａ）スライスの記述と少なくとも１つのメモリの要求とを入力として有するメモリ・マネジャと、
（ｂ）前記記述の複数の利用可能なメモリ・リソースを含むメモリ・リソース・データベースと、
（ｃ）前記利用可能なメモリ・リソースから候補となるメモリ・リソースを選択して前記要求を満足させることができるメモリ・リソース・セレクタと、
（ｄ）前記候補となるメモリ・リソースから少なくとも１つのメモリ・デザインを生成して前記要求を満足させることができるメモリ・コンポーザと、
を備えていることを特徴とするメモリ生成ツール。
【請求項２】
請求項１記載のメモリ生成ツールにおいて、前記利用可能なメモリ・リソースは拡散メモリを含むことを特徴とするメモリ生成ツール。
【請求項３】
請求項１記載のメモリ生成ツールにおいて、前記利用可能なメモリ・リソースは論理ゲート・アレイを含むことを特徴とするメモリ生成ツール。
【請求項４】
請求項３記載のメモリ生成ツールにおいて、前記メモリ・デザインは、前記論理ゲート・アレイから導かれたＲ−セル・メモリのための合成スクリプトを含み前記要求を満足させることを特徴とするメモリ生成ツール。
【請求項５】
請求項４記載のメモリ生成ツールにおいて、前記メモリ・デザインは、前記論理ゲート・アレイから導かれたフロップ・ベースのメモリのための第２の合成スクリプトを含み前記要求を満足させることを特徴とするメモリ生成ツール。
【請求項６】
請求項１記載のメモリ生成ツールにおいて、前記メモリ・デザインはメモリ・ラッパを含むことを特徴とするメモリ生成ツール。
【請求項７】
請求項１記載のメモリ生成ツールにおいて、前記メモリ・マネジャは更に前記メモリ・リソース・データベースを維持することを特徴とするメモリ生成ツール。
【請求項８】
請求項７記載のメモリ生成ツールにおいて、前記メモリ・マネジャは前記メモリ・リソース・データベースを更新して利用可能なメモリ・リソースが前記要求を満足させるように配分されていることを指示することを特徴とするメモリ生成ツール。
【請求項９】
請求項１記載のメモリ生成ツールにおいて、前記メモリ・リソース・セレクタは２以上の利用可能なメモリ・リソースを選択して前記要求を満足させることを特徴とするメモリ生成ツール。
【請求項１０】
請求項９記載のメモリ生成ツールにおいて、前記メモリ・リソース・セレクタは、互換性のある電源とタイミングとサイズとの中の少なくとも１つを有する前記２以上の利用可能なメモリ・リソースに優先順位を与えることを特徴とするメモリ生成ツール。
【請求項１１】
メモリ生成ツールであって、
（ａ）スライスの記述と少なくとも１つのメモリの要求とを入力として有するメモリ・マネジャと、
（ｂ）前記記述の複数の利用可能なメモリ・リソースを含むメモリ・リソース・データベースであって、前記利用可能なメモリ・リソースは拡散メモリと論理ゲート・アレイとを含み、前記メモリ・マネジャはこのメモリ・リソース・データベースを維持及び更新して利用可能なメモリ・リソースが前記要求を満足させるように配分されていることを指示する、メモリ・リソース・データベースと、
（ｃ）前記利用可能なメモリ・リソースから候補となるメモリ・リソースを選択して前記要求を満足させることができ、候補となるメモリ・リソースを選択するときに、互換性のある電源とタイミングとサイズとの中の少なくとも１つを有する利用可能なメモリ・リソースに優先順位を与える、メモリ・リソース・セレクタと、
（ｄ）複数のシェルを有する少なくとも１つのメモリ・デザインを生成することができるメモリ・コンポーザであって、前記複数のシェルは、少なくとも１つはＲＴＬメモリ・ラッパであり、それ以外は前記候補となるメモリ・リソースからの論理ゲート・アレイから導かれた少なくとも１つのＲ−セル・メモリとフロップ・ベースのメモリとのための合成スクリプトを含み前記要求を満足させ利用可能なメモリ・リソースが前記要求を満足させるように配分されていることを指示する、メモリ・コンポーザと、
を備えていることを特徴とするメモリ生成ツール。
【請求項１２】
請求項１１記載のメモリ生成ツールにおいて、
（ａ）前記集積回路の複数の機能に対して割り当てられ構成された複数のハードマックのデザイン・データベースと、
（ｂ）少なくとも１つのメモリ・デザインを前記集積回路の複数の機能に統合するデザイン・インテグレータと、
（ｃ）前記少なくとも１つのメモリ・デザインが前記集積回路の複数の機能と互換性を有するかどうかを判断するデザイン・クオリファイアと、
を更に備えていることを特徴とするメモリ生成ツール。
【請求項１３】
電子処理装置によって実行可能な機械可読な命令のプログラムを有体物として実現しており電子処理装置を動作させる方法のステップを実行するデータ記憶媒体を備えている製造物であって、前記方法のステップは、
（ａ）拡散及び／又はゲート・アレイ・ロジックの少なくとも１つのメモリを有するスライスの記述を読み出すステップと、
（ｂ）集積回路のための少なくとも１つの要求されているメモリの仕様を読み出すステップと、
（ｃ）前記少なくとも１つの要求されているメモリの仕様が前記スライスの記述から生成されうるかどうかを判断するステップと、
（ｄ）前記スライスの記述の拡散及び／又はゲート・アレイ・ロジックの前記少なくとも１つのメモリの一部を前記少なくとも１つの要求されているメモリに配分するステップと、
（ｅ）前記配分された一部のための論理インフラストラクチャを生成するステップと、
（ｆ）前記配分された一部のメモリ・デザインを作成するステップと、
（ｇ）メモリ・リソース・データベースを更新して、前記配分された一部は前記少なくとも１つの要求されているメモリを超えるどれに対しても利用可能ではないことを指示するステップと、
を含むことを特徴とする製造物。
【請求項１４】
請求項１３記載の製造物において、電子処理装置によって実行可能な機械可読な命令のプログラムにおいて実現される前記方法のステップは、
（ａ）前記少なくとも１つの要求されているメモリの中の別の１つの仕様が前記スライスの記述から生成されうるかどうかを判断するステップと、
（ｂ）前記スライスの記述の拡散及び／又はゲート・アレイ・ロジックの前記少なくとも１つのメモリの別の一部を別のメモリに配分するステップと、
（ｃ）前記別の配分された一部のための論理インフラストラクチャを生成するステップと、
（ｄ）前記別の配分された一部のメモリ・デザインを作成するステップと、
（ｅ）メモリ・リソース・データベースを更新して、前記別の配分された一部は前記少なくとも１つの要求されているメモリを超えるどれに対しても利用可能ではないことを指示するステップと、
を更に含むことを特徴とする製造物。
【請求項１５】
集積回路のためのメモリ・デザインを生成する方法であって、
（ａ）利用可能なメモリ・リソースをメモリ・リソース・データベースに入力するステップと、
（ｂ）少なくとも１つのメモリの要求を入力するステップと、
（ｃ）前記利用可能なメモリ・リソースから可能性のあるメモリ・リソースを選択して前記要求を満足させるステップと、
を含むことを特徴とする方法。
【請求項１６】
請求項１５記載の方法において、前記選択するステップは、前記可能性のあるメモリ・リソースのサイズと電源とタイミング特性とを考慮して前記要求を満足させるステップを更に含むことを特徴とする方法。
【請求項１７】
請求項１６記載の方法において、拡散メモリとＲ−セル・メモリとフロップ・ベースのメモリという可能性のあるメモリ・リソースの中の１又は複数からメモリ・デザインを生成して前記要求を満足させるステップを更に含むことを特徴とする方法。
【請求項１８】
請求項１７記載の方法において、互換性を有するサイズと電源とタイミング特性とを有する２以上の可能性のあるメモリ・リソースを組み合わせて前記要求を満足させることによりメモリ・デザインを生成するステップを更に含むことを特徴とする方法。
【請求項１９】
メモリ生成ツールであって、
（ａ）少なくとも１つの拡散及び／又はゲート・アレイ・ロジックを有するスライス記述を読み出す手段と、
（ｂ）要求されているメモリの仕様を読み出す手段と、
（ｃ）前記要求されているメモリが前記少なくとも１つの拡散及び／又はゲート・アレイ・ロジックから生成されうるかどうかを判断する手段と、
（ｄ）生成されえない場合には、ユーザに告知する手段と、
（ｅ）生成されうる場合には、前記少なくとも１つの拡散及び／又はゲート・アレイ・ロジックの一部を前記要求されているメモリに配分する手段と、
（ｆ）追加的な拡散及び／又はゲート・アレイ・ロジックが利用可能であるかどうかを判断する手段と、
（ｇ）第２の要求されているメモリが存在するかどうかを判断する手段と、
（ｈ）前記追加的な拡散及び／又はゲート・アレイ・ロジックの第２の一部を前記第２の要求されているメモリに配分する手段と、
（ｉ）前記拡散及び／又はゲート・アレイ・ロジックの１又は複数の部分を組み合わせて前記要求されているメモリに配分する手段と、
（ｊ）前記配分された部分のためのメモリ・ラッパを生成する手段と、
（ｋ）前記配分された部分と前記メモリ・ラッパとのメモリ・デザインを生成する手段と、
を備えていることを特徴とするメモリ生成ツール。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、以下の米国特許出願の関連出願であり、以下の米国特許出願はその全体を本出願において援用する。すなわち、すべてが本出願と同時継続中であるが、ＬＳＩロジック社のドケット番号が０２−４４３８であるSystem Flow Control Enhancement;ＬＳＩロジック社のドケット番号が０２−４４３９である A Process for Delivering Slices, Shells, Design and Product;ＬＳＩロジック社のドケット番号が０２−４７７４である A Simplified Process to Design Integrated Circuits; ＬＳＩロジック社のドケット番号が０２−４４４１であるFlexible Instance Structure of Embedded Gate Arrays and Composable Memories;ＬＳＩロジック社のドケット番号が０２−４７３９である A Method for Managing, Directing and Verifying the Efficient Placement and Customization of Fixed Configurable Input/Output Buffer Amplifiers;ＬＳＩロジック社のドケット番号が０２−４７５５である An Automated Method for Documenting, Implementing, and Testing ASIC Registers and Memory;ＬＳＩロジック社のドケット番号が０２−４７７４である RTL Generation Methodology;ＬＳＩロジック社のドケット番号が０２−４６８７である Method for Composing Memory on Programmable Platform Devices to Meet Varied Memory Requirements with a Fixed Set of Resourcesである。
【背景技術】
【０００２】
本発明は、広くは電子回路デザインの分野に関し、より詳しくは、利用可能な拡散及び／又はロジック・アレイから自動的に生成されたメモリ構造の組合せから、デザイン・エンジニアによって特定されるように集積回路上のメモリの正確で最適なセットを開発するコンピュータ化されたツール及びプロセスに関する。
【０００３】
集積回路及びチップは、ますます複雑化しており、１８ヶ月ごとにチップの速度及び容量が２倍になる。このような上昇は、デザイン・ソフトウェア、製造技術、半導体材料及びチップ・デザインにおける進歩の結果として生じている。しかし、１平方センチメートルあたりのトランジスタの密度が上昇し、クロック速度が上昇することによって、実際に特定されたように動作するチップを特定しデザインすることはますます困難になってきている。トランジスタやそれ以外の電子的構造の間の予期しないそして時にはほんの僅かな相互作用により、回路の性能に悪影響が生じることがある。このような困難のために、チップをデザインし製造する費用及びリスクは上昇している。特に、特定の用途向けにカスタム・デザインされるものについてそう言える。複雑なカスタム・デザイン・チップに対する需要は、マイクロプロセッサによって制御されるアプリケーションや製品の驚くべき数及び多様性と共に上昇しているが、チップのデザインに要求される時間及び費用は、これらの製品を市場に出す際のボトルネックとなっている。特定の時間内における成功裏の結果が保証されなければ、リスクはコストと共に上昇し、結果的に、カスタム・チップをデザインし製造しようとする企業が減少することになる。
【０００４】
電子製品は、当該電子製品の動作を最適化することを意図してなされた複雑な配列を有する多数の半導体集積回路で構成されている。集積回路は、特定の機能と関連付けられたブロックに配列されている。例えば、別のブロック又はブロックのグループとの間で入出力だけに関係する複数のブロックが存在するし、レジスタや、バッファやキャッシュなどそれ以外のメモリ・ユニットのように、基本的な機能は信号の瞬間的な状態を保存することである回路ブロックやロジック・ゲートが存在するし、ロジック・ゲートやプロセッサのようにトランジスタを用いて信号を操作することが基本的機能であるブロックが存在するし、他のブロックなどの連続的なモニタリングと試験とを唯一の機能であるようなブロックも存在する。集積回路、チップ全体、そして個々のブロックの動作の最適化に影響するパラメータは多数あり、ブロックの機能的特徴が含まれる。例えば、ブロックが、メモリとして構成される場合であれば、ブロックの機能的な特徴には、メモリのサイズ及びポート数、ブロック相互間の位置及び構成可能性、ブロックの状態、ブロックの制御ロジック、ブロックのイネーブルされている特徴、ブロックの試験のタイプ、ブロック間及びブロック内部で移動する電気信号の周波数及び速度、ブロック間のインターフェース、ブロック内部のロジックなどがある。
【０００５】
集積回路のデザインとブロックの配置とは、面倒で、専門化された技術的なタスクである。集積回路の上に特定のブロック構成が与えられた場合を考えると、デザインがより大きな融通性を持てば持つほど、チップ・デザイナがそのデザインを修正したり変更を加えたりするのにより多くの時間を要する。例えば、オフザシェルフ（棚から入手した）のチップなど特定用途向けの標準的製品（ＡＳＳＰ）は、融通性を全く持っていないが、他の機能を望むのであれば別のチップを棚から容易に取得することができるので、その修正時間は短い。特定用途向けの集積回路（ＡＳＩＣ）は融通性という点では優れているが、標準的な製品の場合よりも修正ははるかに困難である。これは、金属層プログラム可能ゲート・アレイ（ＰＧＡ）は達成可能な多数の可能なありにおいてはるかに大きな融通性を有しているが、修正を行い試験をするにはより多くの時間を要するのである。最後に、このような尺度の最も遠い位置には、フィールド・プログラム可能ゲート・アレイ（ＦＰＧＡ）があり、これは、融通性が大きく修正も容易であるが、非常に高価でありダイのサイズも大きい。
【０００６】
集積回路のいくらかの基本的に解剖することが、デザインを修正する際の融通性及び困難度に影響を与える因子を完全に理解するのに役立つであろう。集積回路は、基本的に、通常はシリコンである半導体の複数の層であり、特定の領域と層とが、電子及び正孔キャリア及び／又は絶縁体の異なる濃度を有している。これらの特定の領域と層とは、電磁場の相互作用により、又は、直接的な電気的相互接続により、相互に作用を及ぼしあう。これらの電気的相互接続は、半導体の内部に存在する場合があり、又は、より通常の場合には、金属層の複雑なメッシュを用いて領域及び層の上方に存在する。従って、ＡＳＳＰ及びＡＳＩＣの場合には集積回路のすべての側面は固定されているが、ＰＧＡ及びＰＦＧＡの場合には相互接続及びロジックは異なる機能を達成するようにプログラムすることができる。しかし、いったんチップが製造されると、これらのパラメータは変更できないし、チップが再プログラミングを想定して作られているのでなければ、機能を再プログラムする又は修正するのは可能ではあるが困難であることに注意しなければならない。
【０００７】
集積回路の困難な最適化及び構築の問題は、別々のデザインのどれにでも必ず要求される様々なメモリ・アレイを構築する問題である。簡単な例を挙げると、ある集積回路のためのデザインは、それぞれが４０ビットｘ１０２４ワードの深度であり５ナノ秒の同期式のサイクル時間の能力を有する２ポート式のメモリとして構成された４つのメモリを特定している。しかし、カスタマ仕様では、３つのメモリを要求しており、その第１のものが４５ビットｘ２０４８ワードであり、１ポート式で、サイクル時間は７ナノ秒であるとする。カスタマの第２のメモリは、例えば、３２ビットｘ５１２ワードで、２ポート式で、サイクル時間はやはり７ナノ秒である。カスタマの第３のメモリは、３２ビットｘ５１２ワードで、４ポート式で、サイクル時間は３ナノ秒であるとする。
【０００８】
デザイン・エンジニアは、ゲート・アレイを選択し要求されているメモリと一致させなければならないだけでなく、そして、それ自体も極度に困難な最適化問題なのであるが、更に、そのように構成されたメモリのロジック及びそれ以外のデザイン・ビューを作成しなければならない。このレジスタ・トランスファ・ロジック（ＲＴＬ）と称されるロジックは、拡散メモリと、ロジック・アレイから生成された任意のメモリとに接続し、データ幅アドレシング、制御、クロック、テストなどに関する互換性を得るために要求されるインターフェースを作成する。
【０００９】
従って、この産業においては、集積回路のデザイン・プロセスの融通性を増加させると共に、個々のデザインのコストを低減させる必要性が存在している。
【発明の開示】
【００１０】
本発明は、集積回路のデザイン及び開発において用いられるメモリ生成ツールを提供する。このメモリ生成ツールは、（ａ）スライスの記述と少なくとも１つのメモリの要求とを入力として有するメモリ・マネジャと、（ｂ）前記記述の複数の利用可能なメモリ・リソースを含むメモリ・リソース・データベースと、（ｃ）前記利用可能なメモリ・リソースから候補となるメモリ・リソースを選択して前記要求を満足させることができるメモリ・リソース・セレクタと、（ｄ）前記候補となるメモリ・リソースから少なくとも１つのメモリ・デザインを生成して前記要求を満足させることができるメモリ・コンポーザと、を備えている。利用可能なメモリ・リソースは、スライス記述から入手可能な拡散メモリから構成されるか、論理ゲート・アレイからフロップ・ベースのメモリ又はＲ−セル・メモリとして、メモリ・コンポーザによって生成されうる。メモリ・コンポーザは、メモリ・ラッパ、それ以外のＲＴＬシェル、そして、検証シェルも生成する。メモリ・マネジャは、利用可能なメモリ・リソースのどれでもがメモリへの要求を満足するように配分されると、メモリ・リソース・データベースを維持し更新する。メモリ・リソース・データベースの中のメモリを選択して要求を満足させるのは、メモリ・リソース・セレクタである。このメモリ・リソース・セレクタは、複数のタイプのメモリを選択して組み合わせることで要求を満足させることができ、電力及び／又はタイミング及び／又はサイズに関して互換性を有する利用可能なメモリ・リソースに優先順位を与える。
【００１１】
このメモリ生成ツールは、更に、単にメモリだけではなく集積回路の他の機能のために配分され構成されたハードマック及び／又はロジック・ゲート・アレイのデザイン・データベースと、任意のメモリ・デザインを集積回路の他の機能の中に統合するデザイン・インテグレータと、メモリ・デザインが集積回路の他の機能と互換性を有しているかを判断するデザイン・クオリファイアとを備えている。
【００１２】
本発明は、更に、その上にメモリ生成ツールを有するプログラム可能な媒体を含んでおり、このプログラム可能な媒体は、コンピュータ・システムが、拡散メモリ及び／又はゲート・アレイ・ロジックの少なくとも一方を有するスライスの記述を読み出し、集積回路のための少なくとも１つの要求されているメモリの仕様を読み出し、前記少なくとも１つの要求されているメモリの仕様が前記スライスの記述から生成されうるかどうかを判断し、前記スライスの記述の拡散及び／又はゲート・アレイ・ロジックの前記少なくとも１つのメモリの一部を前記少なくとも１つの要求されているメモリに配分し、前記配分された一部のための論理インフラストラクチャを生成し、前記配分された一部のメモリ・デザインを作成し、メモリ・リソース・データベースを更新して、前記配分された一部は前記少なくとも１つの要求されているメモリを超えるどれに対しても利用可能ではないことを指示することによって、メモリを生成することを可能にするように利用可能である。
【００１３】
本発明の目的、特徴及び効果は、集積回路のためのメモリ・デザインを生成する方法であって、利用可能なメモリ・リソースをメモリ・リソース・データベースに入力するステップと、少なくとも１つのメモリの要求を入力するステップと、前記利用可能なメモリ・リソースから可能性のあるメモリ・リソースを選択して前記要求を満足させるステップと、を含む方法によって実現される。この方法は、更に、可能性のあるメモリ・リソースのサイズ、電力、タイミング特定を考慮して要求を満足させる。要求は、サイズ、電力及びタイミング特性が互換性を有している限りは、拡散メモリ、Ｒ−セル・メモリ、フロップ・ベースのメモリをそれぞれ個別に又は他のものと組み合わせることによって満足させることができる。この方法は、メモリをテストし、次に、メモリ・リソース・データベースを更新して、メモリが生成されたことを指示することができる。
【発明を実施するための最良の形態】
【００１４】
この出願において想定され開示されているのは、コンピュータ・システム上にインストールされており、チップとも称される集積回路の上のメモリ・ブロックをデザインし配分し集積するコンピュータ・ハードウェア・デザイン・ツールである。この出願で開示されているデザイン・ツールのコンテキストは、半導体スライスを用いることであり、この半導体スライスは、ゲート・ロジックの埋込式アレイとスライス上に分散された予め確立された拡散メモリとを有している。本発明によるデザイン・ツールがインストールされているコンピュータ・システムは、この技術分野において知られているように、ネットワーク接続された任意の数のコンピュータで構成されるか、又は、スタンドアロンのシステムで構成される。それぞれのコンピュータ・システムは、更に、メモリに記憶されている命令を実行する１又は複数の汎用のプログラム可能なプロセッサを有し、また、データ、コマンド及びそれ以外の情報を当該コンピュータ・システムの内部で又はそれとは関係なく転送することをサポートする１又は複数の通信バスを有しうる。
【００１５】
コンピュータ・システムは、オペレーティング・システムと１又は複数のアプリケーションとを有し、好ましくは、更に、メモリに常駐する集積チップ開発ツールを有する。この集積チップ開発ツールは、この出願に記載されているものであり、メモリ生成ツールと称される。オペレーティング・システムは、この技術分野において知られているように、デバイス・インターフェース、メモリ・ページの管理、複数のタスクの管理などの機能を提供する。そのようなオペレーティング・システムの例には、例えば、Ｕｎｉｘ（登録商標）及びその派生物、ウィンドウズ（登録商標）・ベースのオペレーティング・システムなどが含まれる。これらの及びそれ以外の様々なアプリケーション、コンポーネント、プログラム、オブジェクトなどは、また、例えば分散環境やクライアント・サーバ計算環境として、ネットワークを介して結合された別のコンピュータの中の１又は複数のプロセッサ上で実行されうる。従って、コンピュータ・プログラムの機能を実装するのに要求される処理は、ネットワークを介して複数のコンピュータに配分されている。一般に、本発明の実施例を実装するために実行されるルーチンは、それがオペレーティング・システム、特定のアプリケーション、コンポーネント、プログラム、オブジェクト又は一連の命令の一部として実装されているかどうかとは関係なく、この出願では、コンピュータ・プログラム又は単にプログラムと称する。コンピュータ・プログラムは、典型的には、コンピュータの様々なメモリ及び記憶装置に様々な時点で存在し、コンピュータの１又は複数のプロセッサによって読み出され実行されるとこのコンピュータに本発明の様々な特徴を実現するステップ又は要素を実行のに必要なステップを実行させる１又は複数の命令で構成される。
【００１６】
この技術分野の当業者であれば理解することであるが、本発明の様々な実施例は様々な形式を有するプログラム製品として流通させることができ、本発明はそのような流通を実際に実現させるのに用いられる特定のタイプの信号記憶媒体とは関係なく適用が可能である。信号記憶媒体の例には、これらに限定されるのではないが、揮発性及び不揮発性のメモリ・デバイス、フロッピ及びそれ以外の取り外し可能なディスク、ハードディスク・ドライブ、ＣＤ−ＲＯＭやＤＶＤなどの光ディスク、デジタル及びアナログ通信リンクなどの伝送タイプの媒体などが含まれる。更に、この出願に記載された様々なプログラムは、本発明の特定の実施例において実現されるアプリケーションに基づいて識別される。以下で述べるどのような特定のプログラムの実例も単に便宜的に用いられているのであって、本発明は、そのような実例によって識別される及び／又はそのような実例から導かれるどのような特定のアプリケーションにおける使用に限定されることはない。実際、当業者であれば理解することであるが、これ以外のハードウェア及び／又はソフトウェアを、本発明の範囲から逸脱することなく用いることができる。
【００１７】
図１を参照すると、ベース半導体スライス１１０が示されている。半導体ダイは、シリコン、絶縁体上のシリコン（シリコン・オン・インスレータ）、シリコン・ゲルマニウム、ガリウムヒ素、それ以外のタイプＩＩ、ＩＩＩ、ＩＶ及びＶの半導体であり得るし、これらを正方形又は矩形の部分に切ることができ、特定のブロック又はハードマックをそのような形状に製造又は拡散させてスライス１１０を形成することができる。すなわち、特定の構成のトランジスタをウエハ層の中に形成して、特定の電子的機能を実現する。スライス１１０の周囲には、Ｉ／Ｏブロック１１２を多数のポートを介してデータを送受信するように構成することができる。また、戦略的に配置されているのであるが、Ｉ／Ｏセル１１２に向かうそれぞれの側の中央には、最終製品全体の電気信号の正確なクロック及びタイミングにとって重要な位相ロック・ループ（ＰＬＬ）１１４のための複数のハードマックが設けられている。データを転送する特定の機能を実現するために、ＰＨＹ１１６、１１８として形成される複数のハードマックが存在するが、これらは、ギガビット・イーサネット（登録商標）及び／又はＳＰＩ４．２、ＡＴＭ、又はそれ以外の任意のプロプライエタリな又は産業上のデータ伝送標準など、特定のデータ伝送プロトコルのためのデータ・トランシーバとしてスライス１１０の中に拡散される。ＰＨＹは、データの送受信に必要なハードウェアすなわちトランシーバを意味する。スライス１１０の内部に向かっては、拡散メモリのハードマック１２０−１３４が存在する。図１に示されているように、８つの拡散メモリ・ブロック１２０−１３４は、それぞれが、２５６のロー及び８０のコラム（２５６ｘ８０）と２１１のポートとを有しうる。注意すべきは、メモリのサイズ及びポートは単なる例示であり、これ以外のサイズであって異なる数のポートを有するメモリであってもスライスの定義１１０に含まれるということである。実際、スライスの全体が、適切なＩ／Ｏとロジックとを有する拡散メモリそれ自体であってもよい。しかし、そのような場合には、意図されている最終製品に必要であるかその動作を強化するための追加的なメモリを含む多くの異なる機能に構成することができる未確定のゲート・アレイ１４０の大きな面積がスライス１１０に含まれる。図１のこのような構成はスライス定義と称されるが、その理由は、様々な機能のための特定のカスタム化やプログラミングが存在しないからである。
【００１８】
図２は、アプリケーション・セット２１０の全体像である。アプリケーション・セット２１０とは、スライス及びそのシェルの集合を意味する。図１のスライス自体はほとんど有用ではなく単なるハードウェアであって、スライスを有用にするには、論理インフラストラクチャが必要である。シェルはこの論理インフラストラクチャを含み、シェルとスライスとによって、アプリケーション・セット２１０が構成される。従って、図２では、スライスのすべてのハードマック機能を見ることができる。すなわち、Ｉ／Ｏセル１１２、ＰＬＬ１１４、ＰＨＹ１１６及び１１８、拡散メモリ１２０−１３４及びゲート・アレイ１４０である。しかし、このスライスを機能させるための追加的な論理インフラストラクチャであるシェルも存在する。
【００１９】
複数のシェルを、異なるアプリケーション・セットのための基礎として用いることができる。ＲＴＬシェルは、拡散ブロックが相互作用する予め配置されたロジックをカプセル化するのであるが、典型的には、様々なトランシーバＰＨＹのためのアナログＳＥＲＤＥＳプロトコル層２１４及びＸＧＸＳプロトコル層２２０や、クロック・ファクトリ２２６、マイクロプロセッサなど、相当な量の予め配置されタイミングがとられ検証されたコンポーネントを含んでいる。ＲＴＬシェルは、信号を外部チップＩ／Ｏに直接に接続する単純な論理インターフェースを含むか、又は、検証されたロジックのより複雑な組を含む。別の利用可能なシェルには、最終的なアプリケーションのために任意の生成されたロジックを合成するスクリプトを有する合成シェルがある。これらの合成スクリプトは、スライスのゲート・アレイ・ライブラリと、その特定の資源と、ＲＴＬシェルのゲート・アレイ要素とのために最適化される。すべてのブロック及びインターフェースに対するタイミング制約条件を含むシェルもありうる。検証（確認、verification）シェルは、トランザクタ、モニタ又はインターフェース・チェッカ、スコアボード、基準モデル、そして、内部論理インターフェースとチップＩ／Ｏとの間のテスト・スーツを含みうる。テスト・シェルは、ＪＴＡＧインターフェース２２２と、メモリ組入れ自己テスト（ＭＢＩＳＴ）コントローラ２１２と、テスト信号を受け取るスタブ・インターフェース２２４と、内部ロジックへの走査チェインとを含み、更に、シェル及びスライスにおける任意の予め存在しているテスト・エンジン及び機構とも含まれる。従って、シェルは、他のものに加えて、プロプライエタリ及び産業標準に従う検証されたインターフェースとコントローラとを提供する。アプリケーション・セット２１０は、挿入されたクロックとテスト相互接続部とを用いて検証された集積化されたデザインすなわちスライス及びシェルを表す。デザインの残りの部分は、既存の資源の間で配置及びルーティングがなされ、特化されたＩ／Ｏチップを作成するのに必要な残りのマスクの組が作成される。
【００２０】
特に、メモリ・アレイを作成するシェルの中には、メモリ・ラッパ２１６と、ＲＴＬシェル・コンポーネント２１８とがある。従って、２５６のローと８０のコラムと２１１のポートとを有する８つの拡散メモリ・ブロック１２０−１３４の中では、すべてがＲＴＬシェル・コンポーネント２１６を有し、１２２、１２４、１２８、１３０、１３２、１３４の６つは、固定された位置とＲＡＭブロックの上に金属層を配置しないように指示するラッパを用いたルーティングとを有するＲＡＭ２１８として構成されている。ゲート・アレイ・ロジックから作成された論理メモリは、相対的な配置と固定されたルーティングとを有するが、この配置及びルーティングは、ＲＴＬシェル２１６ではなく配置及びルーティング・ツールを用いて実行される。
【００２１】
次に図３を参照すると、メモリを構成及び／又は作成することができる一般的なプロセスのコンポーネントが示されている。ブロック１１０は、図１に示されているスライス記述１１０などをスライス記述を含む。スライス定義１１０は、スライスの中に拡散された８つのメモリの部分集合を含み、これには、メモリ・アレイの領域及び物理的配置と、要求される接続又はインターフェース・ピンが含まれる。スライス定義１１０のメモリ部分集合には、更に、メモリのビット幅及び深度、つまり、構成の詳細であるリード／ライト・ポートの数やビット・マスキングなどが詳述されている。要求されるサイクル時間と電力との予測も、特定されている場合がありうる。アプリケーション・セット２１０は、スライス定義１１０と任意のシェル２１６、２１８及びスライス１１０の機能をイネーブルするのに必要なそれ以外のシェル３１２とを含む。
【００２２】
メモリのためのカスタマ仕様３２０は、与えられたメモリ・アレイが生成されるための要件のリストであり、メモリ生成ツール３３０とそこに記述されている方法とを用いてカスタマによりチップ・デザイナに提供される。チップ・デザインは、Ｎ個のカスタマ仕様３２０を含み、本発明の特徴により、カスタマ仕様３２０はメモリ生成ツール３３０に入力され、任意の順序で又はサイズがＮマスタ・デバイスのグループとして処理されうる。スライス定義１１０と同様に、カスタマ仕様３２０は、ビット幅及び深度、リード／ライト・ポートの数、サイクル時間、サイクルの数、論理インターフェースの物理的位置、電力制約、ビット及びバイト・マスキングなど、所望のメモリの詳細を含みうる。
【００２３】
アプリケーション・セット２１０とカスタマ仕様３２０とは、メモリ生成ツール３３０に入力される。メモリ生成ツール３３０は、メモリ・マネジャ３３２、メモリ・リソース・データベース３３４、メモリ・リソース・セレクタ３３６及びメモリ・コンポーザ３３８を含みうる。メモリ・マネジャ３３２は、メモリ・セットの全体と、先に生成された任意のメモリによって用いられた論理リソースとを維持する。また、メモリ・マネジャ３３２は、生成されたメモリ・セットへの追加、変更又は削除の新たな要求を、受け取り、解釈する。メモリ・マネジャ３３２は、メモリ・リソース・データベース３３４の中を常に注意し、メモリ・リソース・データベース３３４を更新して問い合わせを行い、要求されたメモリを構築するのに用いられうるスライス上で利用可能な拡散及びゲート・アレイ領域をリスト化するようにメモリ・リソース・セレクタ３３６に命令する。また、メモリ・マネジャ３３２は、更なる最適化パスにおいて用いられる生成されたメモリの全体を視野に入れて、メモリ・リソース・データベース３３４を更新する。メモリ・マネジャ３３２は、このように、生成の順序に基づき計量セットを構築することによって生成されたメモリの集合全体の全体的効率を管理し、生成の再順序化プロセスに貢献する。メモリ・マネジャ３３２は、メモリが要求される順序だけでなく、メモリ・リソース・データベース３３４からのカスタマ・ロジックの物理的配置の詳細とメモリの分割とも管理する。
【００２４】
メモリ・リソース・セレクタ３３６は、メモリ・マネジャ３３２から現在のカスタマ仕様３２０を受け取る。また、メモリ・リソース・セレクタ３３６は、スライス定義１１０とメモリ・リソース・データベース３３４とを参照して、拡散メモリ１２０−１３４とゲート・アレイ１４０とのいずれか一方又は両方から選択して、カスタマ仕様３２０のためのメモリを生成する。最適かつテスト可能なメモリ・デザインのために用いられる及び／又は生成されることができる静的なメモリには複数のクラスが存在する。すなわち、拡散メモリ、スライスのウエハ層の中に製造される稠密メモリ、最適なテスト及び走査構造を有しており拡散メモリ程には稠密でないＲ−セル・メモリ（時には、Ａコール・メモリとも称される）、ゲート・アレイから生成されＲ−セル・メモリ程には稠密でないラッチ又はフロップ・ベースのメモリなどである。メモリの組合せ特性と、電力消費と、スティックなど、メモリ配分に対する任意のデザイン上の制約とにも、メモリ・リソース・セレクタ３３６によって優先順位が与えられるが、メモリ・マネジャ３３２によって維持される。ある実施例では、メモリ・リソース・セレクタ３３６は、現在の要求されているメモリと過去に生成されたメモリ・セットの全体とだけに対するコンテキストを有している。しかし、別の実施例では、メモリ・リソース・セレクタ３３６を、複数のカスタマ仕様を見る、従って、メモリ・マネジャ３３２の大域的な最適化タスクを複数個想定するようにデザインすることができる。要求されているメモリに必要なメモリ要素を選択する際には、メモリ・リソース・セレクタ３３６は、利用可能なメモリ要素と生成されたメモリ要素との関係、利用可能なメモリのパフォーマンス及び組織と技術特性、タイミング・マージン、それに接続されたカスタマ・ロジックに対するメモリ・ブロックの物理的位置などのパラメータを考慮する。メモリ・リソース・セレクタ３３６は、更に、これらのパラメータの重み付けをすることにより局所的な最適化を実行し、要求されているメモリをサポートすることができるメモリ要素のリストを構築する。要求されているメモリを、利用可能なリソースから構築することができない場合には、メモリ・リソース・セレクタ３３６は、この結果をメモリ・マネジャ３３２に伝達する。
【００２５】
しかし、スライス定義１１０のリソースがカスタマ仕様３２０に利用可能であると想定して、メモリ・リソース・セレクタ３３６は、候補メモリ要素を選択する。選択された候補メモリ要素は、カスタマ仕様と共に、メモリ・コンポーザ３３８に送られる。拡散メモリ・ハードマック及び／又はＲ−セルからメモリを、又は、ゲート・アレイからフロップ／ラッチ・ベースのメモリを実際に生成するのは、メモリ・コンポーザ３３８である。メモリ・コンポーザ３３８は、タイミング・マージンと、ワイヤ長と、メモリ・リソースの利用とを考慮する。また、メモリ・コンポーザ３３８は、候補要素から要求されているメモリを作成することができない場合には、メモリ・マネジャ３３２にフィードバックを提供する。一般に、メモリ・コンポーザ３３８は、カスタマへの出力として、要求されているメモリに対するＲＴＬ及びそれ以外のシェルとシミュレーション・アレイとタイミング制約条件と合成スクリプトとを生成する。メモリ・デザイン３５０は、Verilog又はVHDLのファイルであるのが好ましい。メモリ・コンポーザ３３８は、この出願と同時継続中でありLSI Logic社のドケット番号０２−４６８７のMethod for Composing Memory on Programmable Platform Devices to Meet Varied Memory Requirements with a Fixed Set of Resourcesと題する米国出願に記載されているものが好ましい。この米国出願は、その全体を、本出願において援用する。
【００２６】
このように、メモリ・マネジャ３３２とメモリ・リソース・データベース３３４とメモリ・リソース・セレクタ３３６とメモリ・コンポーザ３３８とを含むメモリ生成ツール３３０は、スライス上に拡散メモリのためのシェルを作成し、Ｒ−セル・メモリと個々のデザインのためのゲート・アレイからのメモリとを作成し、メモリ・ラッパを作成し、特定のアプリケーションの必要性を満足させるようにスライス上に固定されたメモリ・リソースを管理する。メモリ・ラッパは、メモリ・コンポーザ３３８ツールによって作成されたＲＴＬシェルの一部であり、以下の機能を提供することができる。すなわち、ＭＢＩＳＴをイネーブルすること、複数のメモリを組み合わせて単一の論理メモリを形成するロジック構造を提供すること、１又は複数の拡散メモリ及び／又はゲート・アレイから生成された単一のメモリのパイプライン段を追加するためのフロップ及びコントロールを作成すること、である。メモリ・ラッパは、更に、テスト用ロジックと互換性を有する未使用のメモリ・コラム及びローのためのタイアップを提供し、パリティ又は誤り訂正符号（ＥＣＣ）のためのメモリ保護ロジックを提供し、マルチポート・メモリをシミュレートするために時分割多重化を提供する。
【００２７】
メモリ・デザイン３５０は、次に、セクション・ラベル付けされたチップ統合３８０によってチップ全体のデザインに統合される。デザイン・インテグレータ３８２は、メモリ・デザイン３５０を受け取り、それらをデザイン・データベース３８４の中に保持されている全体チップ・デザインの中に組み入れる。デザイン・クオリファイア３８６は、他の機能もあるが、そのデザインが１組のデザイン・マージン又は技術仮定の下でタイミング要件を満足するかどうかを判断するＲＴＬ又はネットリスト資格付与ツールである。デザイン・クオリファイア３８６は、また、このデザインの、要求されているゲートの数、ピン密度、電力消費及び／又は電力密度を判断する。このような資格付与のための質問事項は、より高速でより直近の結果を得るために抽象的なレベルで行われ、これらの質問事項により、デザイナは、あるデザインがその予測される規準でなされるのかどうかを告知されることになる。しかし、後のデザイン・サイクルにおいて、これらのクオリファイアは、より厳密になるが、その理由は、デザイン・クオリファイア３８６がより完全な合成されタイミングの取られたデザインを用いて機能するからである。しかし、ここで重要なのは、デザイン資格付与は、精度と正確性とが変動する余地のあるタスクであることに注意することである。
【００２８】
要求されたメモリがいったん構築され統合され資格付与されると、メモリ・マネジャ３３２は、構築されたメモリの厳密な詳細を用いてメモリ・リソース・データベース３３４を更新し、プロセスの次の反復に進む。
【００２９】
既に述べたように、統合及び資格付与のためのタスクをバイパスできるだけでなく、計画プロセスにおいて、デザイナは、特定のスライスがあるデザインに適しているかどうかを判断することを望む場合がある。すなわち、適切なタイプのメモリが十分に存在するか、ということである。デザインの最初には、デザイナは、カスタマ仕様３２０をメモリ・マネジャ３３２の中に入力し、デザイン・インテグレータ３８２及びデザイン・クオリファイア３８６だけでなくメモリ・コンポーザ３３８をバイパスすることがある。その理由は、デザイナが実験を行っているか、そうでない場合には、可能性のあるデザインを試していてそのようなタスクを保証するのに十分なデザインが存在しない場合がありうるからである。結果は、メモリ生成ツール３３０はどのようにしてそのデザインのためのスライス・リソースを配分するかに関する予測である。このような計画プロセスでは、デザイナは、要件を満足させる際に、多かれ少なかれの公差を用いてスライス・リソースの感度をテストすることを許容することができる。
【００３０】
発明の背景の箇所で用いた、カスタマが３つのメモリを必要としている例について再度考えることにする。すなわち、（１）４５ビット、２０４８ワード、１ポート、７ナノ秒のサイクル時間、（２）３２ビット、５１２ワード、２ポート、７ナノ秒のサイクル時間、（３）３２ビット、５１２ワード、４ポート、３ナノ秒のサイクル時間という３つのメモリである。これらのカスタマ・メモリは、それぞれが４０ビットで１０２４ワードの深度であり、２ポート式で、５ナノ秒の同期式サイクル時間である４つの拡散メモリを有するスライスから得られるはずである。ここで説明しているメモリ生成ツール３３０は、論理配列をサイド・バイ・サイドに並べることによってより幅の広いアレイを、及び／又は、論理アドレシング・スキームをエンド・ツー・エンドに並べることによってより深いアレイを形成することによって、拡散メモリ・アレイからカスタマのメモリを構築することができる。実際には、４つのアレイすべてを２ｘ２の論理配列で用いて、第１の要求されている４５ｘ２０４８のメモリ・アレイを形成することができるが、この選択肢では利用可能なアレイを４つ全部用いているので、特に、残りの２つの要求されているアレイをロジック・アレイから構築する場合には、最適ではない可能性がある。より適切な方法としては、２つのアレイを４０ｘ２０４８の論理アレイとしてエンド・ツー・エンドに用いて、スライスの論理ゲート・アレイを用いて３ｘＲ−セル・アレイでアレイを増加させることであろう。すると、カスタマの第２のメモリは、残っている２つの拡散メモリの一方に配置することができ、第３の要求されているメモリはスライスの論理ゲート・アレイの中に構築して、どの拡散アレイによっても達成できない高速のサイクル時間を与えることができる。上述のメモリ・アレイのデザイン上の要件は簡単な例にすぎないが、実際には、現代の回路デザインでは、要件が異なる数百のアレイが要求されることも珍しくなく、スライス自体が、サイズ、組織及び性能が異なる拡散メモリでもありうる。
【００３１】
以下では、図２のメモリ生成ツール３３０とアプリケーション・セットとを用いてどのように特定のメモリが作成されるのか、を説明する。ここでの方法と特定のメモリ構成とは、単なる例示であり、本発明を特定のメモリ・アレイやバッファに限定することを意図するものではないことを覚えておいてほしい。メモリ生成ツール３３０によって用いられる流れ図である図３及び図４を、機能チップの簡略化されたブロック図である図５と共に参照すると、有益であろう。この例では、アプリケーション・セット２１０とカスタマ仕様３２０とは、２つの異なる高速データ・プロトコルの間のデータ伝送のためのネットワーク又は通信チップ５１０を作成するために用いられる。２つのプロトコルとは、一方が産業標準ＳＰＩ４．２によるものであり、他方は産業標準のギガビット・イーサネット（登録商標）とする。注意してほしいが、スライス定義１１０は２つのＰＨＹ１１６及び１１８を有しており、所望のプロトコルを与えるように構築された隣接するメモリを有している。ゲート・アレイ１４０は、２５６コラムｘ７８ローのメモリ・アレイに構成され、ＳＰＩ４．２プロトコルによるデータ伝送を容易にしている。ゲート・アレイ１４０は、また、１０ギガビット・イーサネット（登録商標）の媒体独立式の拡張サブレイヤ（ＸＧＸＳ）２２０のための、２５６コラムｘ７０ローの幅及び深度を有するメモリとして構成された。第１に、メモリ生成ツール３３０のメモリ・コンポーザ３３８は、要求されたメモリ２１４及び２２０と、８つの拡散メモリ１２０−１３４とを作成した。メモリ・マネジャ３３２は、これらのメモリをメモリ・リソース・データベース３３０に記憶した。この段階で、メモリ・マネジャ３３２は、このデザインによって消費されている固定されたリソースの量の管理を意図しておらず、これらの追加的な２つのプロトコル層のメモリ２１４及び２２０は、単にＲＴＬの開発及び検証を容易にしただけである。物理メモリの論理メモリへの連想がなされるまでは、正確なタイミングのモデル化及び解析は不可能である。この段階でのメモリ・デザイン３５０は、要求されているメモリのVerilogモデルであり、その例を次に数１及び数２として挙げておく。
【００３２】
【数１】
2004213639.tif 000003
【００３３】
【数２】
2004213639.tif 000004
【００３４】
メモリ生成ツール３３０によって作成されたメモリは、この技術分野で広く知られているＬＳＩロジック社又はそれ以外から入手可能なフレックスストリームなどのメモリ・コンパイラを用いて、デザイナによって例示として挙げられる。論理メモリは、チップのＲＴＬ階層におけるＲＴＬシェルからの物理的な例の名称を用いることによって、物理的例示と関連付けられる。メモリ生成ツール３３０が動作されて物理リソースへの相互参照に基づいてメモリが作成されるときは、この相互参照は、メモリ生成ツール３３０とチップ・インテグレータ３８０とのどちらか一方又はこれら両方によって行うことができる。メモリ生成ツール３３０は、割り当てを最適化しながら、特定の必要に対して特定のメモリを割り当てる能力を提供する。論理メモリと物理メモリとの間の関連付け（連想）は、メモリ・マネジャ３３２への入力を特定するか、又は、メモリ・マネジャ３３２がその関連付けを行うことを可能にすることによって、行うことができる。また、メモリ・マネジャ３３２は、現在の、又は、新たに特定される相関を維持する能力を有している。論理メモリと物理メモリとの間の関連付けがなされた後で、更新されたメモリ・デザイン３５０は、メモリ・ブロックが変更される、すなわち、拡散メモリの代わりにＲ−セル又はゲート・アレイが用いられる又はその逆の場合には、更新される。後で示すタイミング、合成及び更新された相互参照リストもまた、メモリ・コンポーザ３３８とメモリ・マネジャ３３２とによって提供される。メモリ生成ツール３３０が論理メモリを物理リソースに割り当てるときには、メモリ・ブロックに対するテスト・ポート・リストは変更される可能性があり、従って、適切なテスト用のツールを用いて、メモリ上のテスト・ポートを適切なテスト構造に再接続しなければならない場合がある。アプリケーション・セット２１０のこのようなメモリ・リソース・データベース３３４は、表１として与えられている。
【００３５】
【表１】
2004213639.tif 000005
【００３６】
カスタマ仕様３２０は、シミュレーション及び検証のために２つの追加的なメモリを要求する。すなわち、（１）２５６コラムｘ８０ローを有するトレース・バッファ・ロジック５７０と、（２）２５６コラムｘ１６０ローを有するカスタマのプロプラエタリなロジックのためのアレイ５４０、５６０とである。これらの２つのメモリは、アプリケーション・セット２１０の中に拡散されておらず、従って、生成されなければならない。２５６コラムｘ８０ローのバッファ・マネジャには、２５６コラムｘ７６ローのメモリが２つ必要となる。一方は拡散メモリ１３４から、他方はゲート・アレイ・ロジック１４０から作成可能であり、トレース・バッファ５７０が形成される。図４を参照すると、カスタマ仕様３２０とアプリケーション・セット２１０とは、ステップ４１０において、メモリ生成ツール３３０に入力される。ステップ４２０では、トレース・バッファ５７０がシミュレーション及び検証のために作成され、物理から論理への相関が実行されてデザインに接続される。更に、ステップ４２０では、プロプラエタリ・メモリのInstance0 560が、適切なロジック５６２を用いて２つの拡散メモリ１３０及び１３２から生成される。ここで、メモリ生成ツール３３０は、アプリケーションの論理要件とステップ４４０で利用可能な物理メモリに関連付けることによって、トレース・バッファ５７０とプロプラエタリ・メモリのInstance0 560との例示を与える。物理メモリを論理メモリに相関させるステップであるステップ４４０は、タイミング情報を得るために要求される。ステップ４６０では、テスト生成ツールが用いられ、テスト構造を作成し接続する。メモリ・マネジャ３３２への入力を特定するか、又は、メモリ・マネジャ３３２が関連付けを行うことを可能にすることによって、再び、論理メモリと物理メモリとの間の関連付けを行うことができる。
【００３７】
企業のプロプラエタリなロジックに対する追加的なメモリ要件がアプリケーション・セットの残りの拡散メモリが満足させることができるよりも大きいので、追加的なメモリがステップ４２４の場合と同様に必要になる。従って、ステップ４２６でメモリ生成ツール３３０が再び呼び出され、残っているプロプラエタリ・メモリInstance1 540が、拡散メモリ１２８とゲート・アレイ・ロジック１４０との組合せをＲ−セル・メモリ５４２の中に用いることによって、再度生成される。Instance1 540のための適切なメモリ・ラッパ５４４が、ステップ４３０の統合フェーズの間、イネーブルされる。この時点で、メモリ・デザイン３５０は更新されたVerilogモデルであるが、その理由は、Instance1 540を作成する際に変更されたメモリ構築ブロック、すなわち、Ｒ−セル及び拡散メモリが再構成されたという理由のためだけに、Verilogモデルが必要であるからである。メモリ・デザインは、タイミング統合も含む。メモリ・マネジャ３３２は、メモリ・リソースのどの部分がどの論理メモリに配分されたかを示すことによって、メモリ・リソース・データベース３３４を更新する。この例では、プロプラエタリ・メモリInstance1 540は再度作成され、従って、そのタイミングは先のバージョンとは異なっている。更に、そのテスト・ポートが変更される。ゆえに、特別のテスト生成ツールを作成して、ステップ４６０でＭＢＩＳＴエンジンを新たなメモリ５４０に接続することが必要である。ただし、チップの開発者がこのコントローラ及び接続を方法論的に作成することは可能である。次の表は、メモリ・リソース・データベース３３４に記憶されている情報のいくつかを含む。
【００３８】
【表２】
2004213639.tif 000006
【００３９】
あるいは、メモリ生成ツール３３０は、先に生成されたメモリ・モジュールのすべてを、その現に割り当てられている物理メモリに固定することを選択することも可能である。この場合には、バッファ・マネジャのためのメモリ・モジュールの１つは、Ｒ−セル・ベースのメモリで構成されている可能性がある。そうであれば、メモリ・リソース・データベース３３４の中の情報は次の表３のようになる。
【００４０】
【表３】
2004213639.tif 000007
【００４１】
これらの状況下では、例示として与えられているメモリをテストするのに必要となるＭＢＩＳＴエンジンを作成しなければならず、例示として与えられたメモリのテスト・ポートを上述の場合と同じように接続しなければならない。更に、テスト生成ツールを用いてメモリのテスト・ポートをこの階層を通過してＭＢＩＳＴコントローラ２１２に接続することが強く推奨される。しかし、ユーザが必要な訂正を行っても有効である。チップを機能させる図５の他のコンポーネントには、例えば、データ伝送プロトコル層５２０、５２２、５２４など他の生成ツールによって作成されたＲＴＬシェルが含まれる。
【００４２】
本発明の様々な実施例について以上で説明したが、これらの実施例は例示であって制限ではなく変更が可能であることを理解すべきである。よって、本発明の広がり及び範囲は、上述した例示的な実施例のいずれによっても制限されることはなく、特許請求の範囲とその均等物とによってのみ画定される。
【図面の簡単な説明】
【００４３】
【図１】本発明の原理に従って集積回路において用いられる予め製造されたブロックを有するスライスの定義である。
【図２】本発明の原理に従ってアプリケーション・セットの簡略化されたブロック図である。
【図３】開発ツールは本発明の実施例に従って集積回路におけるメモリの選択及び配置を生成することができる開発ツール及びプロセスの簡略化されたブロック図である。
【図４】本発明の原理に従ってメモリを構成し及び／又は作成するプロセスの簡略化された流れ図である。
【図５】本発明の原理に従って構成し及び／又は作成されたメモリを有するより完全な集積回路の簡略化されたブロック図である。
【図１】
2004213639.tif 000008
【図２】
2004213639.tif 000009
【図３】
2004213639.tif 000010
【図４】
2004213639.tif 000011
【図５】
2004213639.tif 000012
【手続補正書】
【提出日】平成16年2月27日(2004.2.27)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2004213639.tif 000013
【図２】
2004213639.tif 000014
【図３】
2004213639.tif 000015
【図４】
2004213639.tif 000016
【図５】
2004213639.tif 000017
【外国語明細書】
2004213639000001.pdf