(57)【要約】【課題】  資源の固定されている場合に、変動するメモリ仕様を満足するように回路製造の間に構築されるメモリ構築ブロックの構成を容易にするプロセス及びアーキテクチャを提供すること。【解決手段】  １又は複数の拡散されたメモリ領域と１又は複数のゲート・アレイ領域とを含むプログラム可能なプラットフォーム・デバイスに関する情報を受け取るステップ（２０２）と、１又は複数のメモリのための所定の設計情報を受け取るステップ（２０２）と、（Ｃ）１又は複数のメモリ構築ブロックを、（ｉ）前記１又は複数の拡散されたメモリ領域か、（ｉｉ）前記１又は複数のゲート・アレイ領域か、又は、（ｉｉｉ）前記拡散されたメモリ領域と前記ゲート・アレイ領域との両方に、前記所定の設計情報と前記プログラム可能なプラットフォーム・デバイスに関する前記情報とに基づいて構成するステップ（２０３）とを含む方法によって、目的のプロセスは達成される。【選択図】  図５
2004213634.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能なプラットフォーム・デバイスの上にメモリを構成する方法であって、
（Ａ）１又は複数の拡散メモリ領域と１又は複数のゲート・アレイ領域とを含むプログラム可能なプラットフォーム・デバイスに関する情報を受け取るステップと、
（Ｂ）１又は複数のメモリのための所定の設計情報を受け取るステップと、
（Ｃ）１又は複数のメモリ構築ブロックを、（ｉ）前記１又は複数の拡散メモリ領域か、（ｉｉ）前記１又は複数のゲート・アレイ領域か、又は、（ｉｉｉ）前記拡散メモリ領域と前記ゲート・アレイ領域との両方に、前記所定の設計情報と前記プログラム可能なプラットフォーム・デバイスに関する前記情報とに基づいて構成するステップと、
を含むことを特徴とする方法。
【請求項２】
請求項１記載の方法において、
前記所定の設計情報に従って前記メモリ構築ブロックを前記１又は複数のメモリに組み立てるステップを更に含むことを特徴とする方法。
【請求項３】
請求項１記載の方法において、
前記１又は複数のメモリに対して１又は複数のラッパを生成するステップを更に含むことを特徴とする方法。
【請求項４】
請求項１記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリに対して１又は複数のＲＴＬビューを生成するステップを含むことを特徴とする方法。
【請求項５】
請求項１記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリに対して１又は複数の合成スクリプトを生成するステップを含むことを特徴とする方法。
【請求項６】
請求項５記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリと関連付けられている１又は複数のラッパに対して１又は複数の合成スクリプトを生成するステップを更に含むことを特徴とする方法。
【請求項７】
請求項１記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリに対して１又は複数の静的タイミング・スクリプトを生成するステップを含むことを特徴とする方法。
【請求項８】
請求項７記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリと関連付けられている１又は複数のラッパに対して１又は複数の合成スクリプトを生成するステップを更に含むことを特徴とする方法。
【請求項９】
請求項１記載の方法において、ステップ（Ｃ）は、
前記１又は複数のメモリに対して１又は複数の組込み自己テスト（ＢｉＳＴ）ラッパを生成するステップを含むことを特徴とする方法。
【請求項１０】
請求項１記載の方法において、前記プログラム可能なプラットフォーム・デバイスに関する前記情報は利用可能な資源タイプを含むことを特徴とする方法。
【請求項１１】
請求項１０記載の方法において、前記プログラム可能なプラットフォーム・デバイスに関する前記情報は配分された前記資源タイプの量を更に含むことを特徴とする方法。
【請求項１２】
請求項１記載の方法において、前記プログラム可能なプラットフォーム・デバイスに関する前記情報は物理的配置データを含むことを特徴とする方法。
【請求項１３】
請求項１２記載の方法において、前記物理的配置データは資源の配置を含むことを特徴とする方法。
【請求項１４】
請求項１３記載の方法において、前記物理的配置データは前記メモリにアクセスするように構築されたロジックの配置を更に含むことを特徴とする方法。
【請求項１５】
請求項１記載の方法において、前記所定の設計情報は、メモリ・パフォーマンス・パラメータと、前記１又は複数のメモリの寸法と、前記１又は複数のメモリのそれぞれの上のポート数と、レイテンシ・パラメータと、電源仕様との中の１又は複数を含むことを特徴とする方法。
【請求項１６】
請求項１記載の方法において、
ステップ（Ａ）は、資源タイプと、配分された資源の量と、資源の物理的配置と、前記１又は複数のメモリにアクセスするロジックの物理的配置とに関する情報を受け取るステップを含み、
ステップ（Ｂ）は、１又は複数のメモリ・パフォーマンス・パラメータと、１又は複数のメモリの寸法と、１又は複数のポート数仕様と、１又は複数のレイテンシ・パラメータと、１又は複数の電源仕様とを含み、
ステップ（Ｃ）は、（ｉ）１又は複数の拡散メモリ・ブロックを選択することと１又は複数のゲート・アレイ・メモリ・ブロックをコンパイルすることとのどちらか一方又はこれらの両方を行うステップと、（ｉｉ）前記１又は複数のメモリ構築ブロックに対して１又は複数のラッパを生成するステップとを含むことを特徴とする方法。
【請求項１７】
プログラム可能なプラットフォーム・デバイスの上にメモリを構成する方法であって、
１又は複数の拡散メモリ領域と１又は複数のゲート・アレイ領域とを含むプログラム可能なプラットフォーム・デバイスに関する情報を受け取る手段と、
１又は複数のメモリのための所定の設計情報を受け取る手段と、
１又は複数のメモリ構築ブロックを、（ｉ）前記１又は複数の拡散メモリ領域か、（ｉｉ）前記１又は複数のゲート・アレイ領域か、又は、（ｉｉｉ）前記拡散メモリ領域と前記ゲート・アレイ領域との両方に、前記所定の設計情報と前記プログラム可能なプラットフォーム・デバイスに関する前記情報とに基づいて構成する手段と、
を含むことを特徴とする方法。
【請求項１８】
プログラム可能なプラットフォーム・デバイスにおいて、
１又は複数の拡散メモリ領域と１又は複数のゲート・アレイ領域とを備えており、（ｉ）１又は複数のメモリ構築ブロックが、前記１又は複数の拡散メモリ領域と前記１又は複数のゲート・アレイ領域とのどちらか一方又はこれら領域の両方において、１又は複数のメモリのための所定の設計情報を満足するように構成可能であり、（ｉｉ）前記１又は複数のメモリ構築ブロックは前記１又は複数のメモリの中に組み立て可能であることを特徴とするプログラム可能なプラットフォーム・デバイス。
【請求項１９】
請求項１８記載のプログラム可能なプラットフォーム・デバイスにおいて、前記１又は複数のゲート・アレイ領域は複数のＡ−セルを含むことを特徴とするプログラム可能なプラットフォーム・デバイス。
【請求項２０】
請求項１８記載のプログラム可能なプラットフォーム・デバイスにおいて、前記１又は複数の拡散メモリ領域はパイプライン化された拡散メモリ領域を含むことを特徴とするプログラム可能なプラットフォーム・デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは超ＬＳＩ（ＶＬＳＩ）の回路設計に関し、より詳しくは、プログラム可能なプラットフォーム・デバイス上に資源の固定された組を用いてメモリを構成し変動するメモリ要件を満たす方法に関する。
【背景技術】
【０００２】
超ＬＳＩ（ＶＬＳＩ）回路設計のためのプログラム可能なプラットフォーム・アーキテクチャは、そのプラットフォームに適用される異なるカスタム・ロジック設計を実装するための資源（リソース）の固定された組（set、集合）を提供する。埋込式メモリは、そのような資源の１つである。同一のプログラム可能なプラットフォーム・デバイスに適用される異なるカスタム・ロジック設計の埋込式メモリの要件は、相当に異なることがありうる。
【０００３】
従来型のソリューションでは、標準サイズの埋込式メモリ・ブロックが、プログラム可能なプラットフォーム・デバイスによって提供される。これらのブロックは組み合わされて、所望のメモリ幅及び深度が作成される。しかし、従来型のソリューションは、柔軟性に欠けるという短所を有する。プログラム可能なプラットフォーム・デバイス上に製造される回路の設計者は、埋込式アレイのカスタマイズされた使用法に関して、非常に限定された自由度しか有していない。チップ設計者は、プラットフォーム設計者によって実装された限定されたモードで提供されている資源だけを用いることができる。すると、チップ設計者がその応用例に最適である編成でメモリを用いる資源を有していない、という状況が生じことがある。
【０００４】
また、従来型のソリューションは、ダイ上の面積を浪費する。予め決まったサイズを有する複数の埋込式メモリ・アレイを組み合わせると、ダイ面積を浪費する可能性がある。例えば、２つの入手可能な２５６ｘ４０のアレイを組み合わせて２５６ｘ５０のアレイを作成する場合には、第２のアレイの７５％が無駄になる。更に、従来型のソリューションは、結果的に、タイミング情報のフィードバックが遅れる可能性がある。ランダム・アクセス・メモリのタイミングに対する相互接続遅延の効果は、設計プロセスの中では遅れるのが通常であるフル・チップのタイミング・テストができるようになるまで、発見されることはない。カスタム・ロジック・チップの設計時間の最短化を試みるときには、正確な設計上の拘束条件が設計者に提供されるのがプロセスの中で早ければ早いほど、選択肢の間での設計上の適切なトレードオフをより簡単に行うことが可能となる。プロセスの中で正確な情報が入手できるのが遅いほど、相当な再作業が必要となる可能性があり、それでは、拘束条件に関する新たな情報を用いて設計を初めからやり直すこととほとんど同じであって、従って、不正確な仮定の下でなされた作業の進行が否定されてしまう。
【０００５】
資源の限定された組合せを用いて異なる設計のメモリ・サイズとパフォーマンス仕様とを満足させる埋込式メモリ・ソリューションを提供することが望まれる。
【発明の開示】
【０００６】
本発明は、プログラム可能なプラットフォーム・デバイスの上にメモリを構成する方法であって、（Ａ）１又は複数の拡散されたメモリ領域と１又は複数のゲート・アレイ領域とを含むプログラム可能なプラットフォーム・デバイスに関する情報を受け取るステップと、（Ｂ）１又は複数のメモリのための所定の設計情報を受け取るステップと、（Ｃ）１又は複数のメモリ構築ブロックを、（ｉ）前記１又は複数の拡散されたメモリ領域か、（ｉｉ）前記１又は複数のゲート・アレイ領域か、又は、（ｉｉｉ）前記拡散されたメモリ領域と前記ゲート・アレイ領域との両方に、前記所定の設計情報と前記プログラム可能なプラットフォーム・デバイスに関する前記情報とに基づいて構成するステップと、を含む方法に関する。
【０００７】
本発明の目的、特徴及び効果は、資源の固定された組を用い、変動するメモリ規準を充足するメモリをプログラム可能なプラットフォーム・デバイスの上に構成して、（ｉ）固定されたブロック拡散されたメモリとゲート・アレイ・メモリ資源との組合せからメモリを構築する能力を提供し、（ｉｉ）物理ＲＡＭとメモリ構成プロセスにおける論理情報とを含む能力を提供し、（ｉｉｉ）メモリ構成方法を実行する自動化されたツールを提供し、（ｉｖ）メモリ組合せのはるかに広範囲で豊富な組をチップ設計者に利用可能とする高い柔軟性を提供し、（ｖ）集積回路メモリ資源のインテリジェントな構成により従来の方法よりも高密度を提供しシリコンの無駄を減らし、（ｖｉ）集積回路の物理情報に基づきメモリのタイミング・パフォーマンスに関する早期の見通しを提供することによりパフォーマンス・フィードバックを可能にし、（ｖｉｉ）設計サイクルの遅い時期における高価な再設計を減少させ、及び／又は、（ｖｉｉｉ）ＲＴＬビューの自動生成を提供する、方法を提供することである。
【０００８】
本発明の以上の及びそれ以外の目的、特徴及び効果は、以下の詳細な説明、特許請求の範囲及び添付の図面から明らかである。
【発明を実施するための最良の形態】
【０００９】
図１を参照すると、本発明の好適実施例によるプロセス１００の流れ図が示されている。プロセス１００は、ステージ１０２と、ステージ１０４と、ステージ１０６と、ステージ１０８とを含みうる。ステージ１０２は、資源セレクタ（資源選択手段）として実装されうる。ステージ１０４は、メモリ・コンポーザ（メモリ構成手段）として実装されうる。ステージ１０６は、ゲート・アレイ（又は、Ａ−セル）メモリ・コンパイラ（ゲート・アレイ・メモリ・コンパイル手段）として実装されうる。ステージ１０８は、ラッパ・ジェネレータ（ラッパ生成手段）として実装されうる。
【００１０】
資源セレクタ１０２は、ある例では、（ｉ）デバイス資源に関する情報（例えば、ブロック１１０）と、（ｉｉ）デバイス資源の現時点での入手可能性に関する情報（例えば、ブロック１１２）と、（ｉｉｉ）顧客のメモリ仕様（例えば、ブロック１１６）を備えたプログラム可能なプラットフォーム・デバイスの物理レイアウト・データ（例えば、ブロック１１４）とを比較するように構成されうる。資源セレクタ１０２は、プログラム可能なプラットフォーム・デバイスの中のどの資源が顧客によって特定された特定の１又は複数のメモリを構成する役割を有しているのかを決定するのが一般的である。資源セレクタ１０２は、資源選択（又は、配分）情報をメモリ・コンポーザ１０４に送るのが一般的である。メモリ・コンポーザ１０４は、顧客の仕様を満足する様々なメモリ・シェルを生成する（又は、そのようなメモリ・シェルのコンフィギュレーションを管理する）のが一般的である。
【００１１】
資源の比較及び配分は、設計を最適化するのに適用される仕様の組合せに基づいて実行されるのが一般的である。これらの仕様には、例えば、ユーザの好み（例えば、ユーザは、どのメモリ要件のためにどの資源が配分されるべきかに関してツールに命令することを選択できる）、変更の最小化（例えば、ほぼ完成した設計への変更を最小化するような態様で配分を行うことができる）、タイミングの考慮（例えば、利用可能な資源の速度へのタイミング要件と最も密接して一致するように配分を行うことができる）、位置又はルーティングの密集（例えば、メモリから関連するロジックまでの距離を最小化するように配分を行うことができ、それによって、タイミングを改善しルーティングの密集を減少させることができる）、及び、密度（例えば、メモリ密度を生成及び／又は最適化するように配分を行うことができ、それによって、要求されるチップのシリコン面積を最小化することができる）が含まれる。
【００１２】
デバイス資源１１０は、一般に、例えば、（ｉ）パイプライン化されていない拡散メモリ、（ｉｉ）パイプライン化された拡散メモリ、（ｉｉｉ）パイプライン化されていないゲート・アレイ・ベースのメモリ、及び／又は（ｉｖ）パイプライン化されたゲート・アレイ・ベースのメモリを含む構成可能なメモリ要素を含む。パイプライン化されていない拡散メモリは、ある例では、ビット・セル・ベースの拡散メモリとして実装されうる。パイプライン化された拡散メモリは、ある例では、メモリ入力及び／又は出力におけるフリップフロップ、レジスタ及び／又はラッチの段を有する拡散メモリとして実装されうる。これらのフリップフロップ、レジスタ及び／又はラッチは、機能又はタイミングの目的のために構築されている。パイプライン化されていないゲート・アレイ・ベースのメモリは、ある例では、プログラム可能なプラットフォーム・デバイスの上のゲート・アレイ要素（例えば、Ａ−セル）の海の上に構築されたメモリとして実装されうる。パイプライン化されたゲート・アレイ・ベースのメモリは、ある例では、メモリ入力及び／又は出力におけるフリップフロップ、レジスタ及び／又はラッチの段を有するゲート・アレイ・ベースのメモリとして実装されうる。これらのフリップフロップ、レジスタ及び／又はラッチは、機能又はタイミングの目的のために構築されている。
【００１３】
メモリ・コンポーザ１０４は、資源セレクタ１０２から複数の入力を受け取るように構成されうる。例えば、資源セレクタ１０２からの複数の入力には、顧客のロジック仕様入力、チップ資源配分、及び／又は、物理配置データが含まれる。しかし、特定の実装の設計基準を満足するように、これ以外の入力を実装することもできる。顧客のロジック仕様入力は、例えば、メモリ・パフォーマンス仕様（例えば、サイクル時間、アクセス時間など）、メモリの寸法（例えば、アレイの幅及び深度）、メモリにおけるポートの数及びタイプ（例えば、シングル・ポート、デュアル・ポートなど）、メモリ・レイテンシ、及び／又はメモリの電力消費仕様を含む。チップ資源配分入力は、例えば、配分される資源のタイプ（例えば、拡散メモリ又はゲート・アレイ・メモリ）、配分される資源の量などを含む。物理配置データ入力は、ある例では、資源の物理的配置と、メモリにアクセスしているロジックの物理的配置とを含む。しかし、特定の実装の設計基準を満足するように、これ以外の資源選択情報（又は、入力）を実装することもできる。
【００１４】
メモリ・コンポーザ１０４は、複数の出力１１６を提供するように構築される。出力１１６は、ある例では、生成された１又は複数のメモリのＲＴＬビュー、生成されたメモリ及び関連するラッパのための合成スクリプト、生成されたメモリ及び関連するラッパのための静的タイミング・スクリプト、及び／又は、メモリ組込み自己テスト（ＢＩＳＴ）のテスト・ラッパ（例えば、互換性のあるロジック・ビジョン）を含む。メモリ・コンポーザ１０４は、基本的な誤り訂正フィードバックを提供する。例えば、メモリ・コンポーザ１０４は、資源と顧客仕様との間の不一致に関する情報を提供するように構成される（例えば、ブロック１１８）。例えば、メモリ・コンポーザ１０４は、相互接続遅延や顧客仕様を不十分にしか満足していないラッパ要素によって挿入される遅延と共に、ランダム・アクセス・メモリ（ＲＡＭ）のタイミングなどの問題を検出し指示するように構成される。メモリ・コンポーザ１０４は、チップの物理情報に基づいて、メモリのタイミング・パフォーマンスに関する早期の展望（ビュー）を提供するのが一般的である。タイミング・パフォーマンスに関する早期のビューを提供することにより、本発明は、設計サイクルの遅い段階でのコストのかかる再設計を減少させる又は回避できる。
【００１５】
メモリ・コンポーザ１０４は、多数のメモリ構成の特徴を提供するのが一般的である。例えば、メモリ構成の特徴には、全体としての（グロスの）メモリ・ソリューション・チェック、多数のシングル・ポート・メモリ構成、多数のマルチ・ポート・メモリ構成が含まれる。全体としてのメモリ・ソリューション・チェックは、ある例では、顧客パフォーマンス仕様と構成されたメモリ・パフォーマンスとの解析が含まれる。そのような解析には、例えば、物理的な配置情報からの相互接続遅延及び／又はラッパ要素（例えば、テスト及び機能ラッパ）によって挿入される追加的遅延が含まれる。
【００１６】
図２Ａないし図２Ｆを参照すると、様々なメモリ構成のブロック図が示されている。メモリ・コンポーザ１０４は、多数のシングル・ポート・メモリ構成を生成するように構成される。例えば、メモリ・コンポーザ１０４は、（ｉ）シングル拡散メモリ（例えば、図２Ａ）、（ｉｉ）マルチ拡散メモリ（例えば、図２Ｂ及び図２Ｃ）、（ｉｉｉ）ゲート・アレイ・メモリ（例えば、図２Ｄ）、（ｉｖ）拡散メモリとゲート・アレイ・メモリとの組合せ（例えば、図２Ｂ及び図２Ｃ）及び（ｖ）１つのシングル・ポート・メモリからの複数のシングル・ポート・メモリ（例えば、より高速の１つのメモリを時分割多重化して複数のより低速のメモリを提供する）から、シングル・ポート・メモリを提供する。ある例では、追加的（エクストラ）なデータ・ビット及び／又はアドレス・ビットをラッパにおいてタイ・オフすることができる。追加的なデータ・ビット及び／又はアドレス・ビットをタイ・オフすると、テスト・フレンドリな構成が得られるのが一般的である。一般に、メモリ・コンポーザ１０４は、メモリ入力及び／又は出力において１又は複数のパイプライン段を有するシングル・ポート構成のそれぞれを生成するように構成される（例えば、図２Ａないし図２Ｄのフリップフロップ）。
【００１７】
メモリ・コンポーザ１０４は、多数のマルチ・ポート・メモリ構成を生成するように構築することができる。例えば、メモリ・コンポーザ１０４は、（ｉ）シングル・ポート・メモリの２倍幅の組合せ、（ｉｉ）シングル・ポート・メモリの２倍クロックの組合せ、（ｉｉｉ）単一の拡散デュアル・ポート・メモリ（例えば、図２Ｆ）、（ｉｖ）複数の拡散デュアル・ポート・メモリ、（ｖ）ゲート・アレイ・メモリ（例えば、図２Ｄ）、（ｖｉ）拡散メモリとゲート・アレイ・メモリとの組合せ、及び／又は、（ｖｉｉ）単一の高速メモリを用いて低速のメモリ仕様に時分割多重化することによる単一の２ポート・メモリからの複数の２ポート・メモリから、１つの２ポート・メモリを提供することができる。一般に、メモリ・コンポーザ１０４は、メモリ入力及び／又は出力上に１又は複数のパイプライン段を備えたマルチ・ポート構成のそれぞれを生成するように構築できる（例えば、図２Ｆのフリップフロップ）。
【００１８】
図２Ａを参照すると、基本的なシングル・ポート拡散メモリ１３０が示されている。メモリ１３０は、メモリ・テスト・ラッパ（例えば、ＢＩＳＴカラー）を含む。メモリ１３０は、パイプライン化されたものとして又はパイプライン化されていないものとして実装されうる。メモリがパイプライン化されて実装されるときには、ラッパは、パイプライン・フリップフロップ１３２を含むように生成される。メモリがパイプライン・フリップフロップ１３２なしで用いられる場合には、ラッパは、ポート再指名及び／又はタイオフ・ブロック挿入のために生成される（図２Ｅとの関係で後述する）。
【００１９】
図２Ｂを参照すると、メモリの幅を増大させる複数のメモリの組合せの例が示されている。メモリは、それぞれが、拡散メモリ、ゲート・アレイ・メモリ、又は、これら拡散及びゲート・アレイ・メモリの組合せとして実装されている。ある例では、２５６ｘ１４０のメモリ１３３が、２つの２５６ｘ８０のメモリ１３４ａ及び１３４ｂから構成することができる。構成されたメモリのサイズは特定されたメモリよりも大きいので、多数の入力が、タイオフ・フリップフロップ１３６を用いてタイオフされる。メモリ１３４ａ及び１３４ｂがパイプライン化されたメモリとして用いられるときには、パイプライン・フリップフロップ１３８ａ及び１３８ｂを含むラッパが生成される。論理的には、フリップフロップの組を実装して、このメモリに対するアドレス・ビットを記憶することができる。しかし、メモリ１３４ａ及び１３４ｂは、ダイの上で近接して位置していない。そのような場合には、フリップフロップの別々のバンクを実装することができる。
【００２０】
図２Ｃを参照すると、メモリ深度が増大するように構成された複数のメモリの組合せを図解するブロック図が示されている。これらのメモリは、拡散メモリ・ブロック、ゲート・アレイ・メモリ・ブロック、又は、これら拡散及びゲート・アレイ・メモリ・ブロックの組合せから構成されている。一般に、構成された物理メモリが特定の数よりも多い数のローを有すると、ラッパは、アドレスを２つの境界のベキ（power）に分解する。例えば、１２８ｘ８０のメモリが２５６ｘ８０のメモリから構成される場合には、上位アドレス・ビットがタイオフされる（tie off、結合を解かれる）。しかし、２００ｘ８０のメモリが２４６ｘ８０のメモリから構成される場合には、一般に、ラッパに追加アドレス・ロジックは存在しない（例えば、ユーザは、誤りの指示なしで、意図した範囲を超えたアドレシング能力を有しうる）。
【００２１】
ある例では、５１２ｘ８０のメモリ１３９を、２つの２５６ｘ８０のメモリ１４０ａ及び１４０ｂから構成することができる。メモリ１４０ａ及び１４０ｂは、それぞれが、メモリ・テスト・ラッパ（例えば、ＢＩＳＴカラー）を含む。メモリのためのラッパは、ハイ・アドレス・ビットに基づいてメモリのそれぞれに対するイネーブル信号を生成するロジック（ロジック・ゲート１４２、１４４、１４６）を含む。構成されたメモリがパイプライン化されている場合には、ラッパは、パイプライン・フリップフロップ１４８ａ及び１４８ｂを含む。
【００２２】
図２Ｄを参照すると、例示的なゲート・アレイ・メモリを図解するブロック図が示されている。ゲート・アレイ・メモリは、Ａ−セル・ストレージ要素１５０を用いて実装される。ゲート・アレイ・メモリがパイプライン・メモリとして用いられる場合には、パイプライン・フリップフロップ１５２をラッパの中に実装することができる。ゲート・アレイ・メモリ・ラッパは、メモリが同期してアクセスされるのか非同期でアクセスされるのかを制御することができるマルチプレクサ１５４を含みうる。
【００２３】
図２Ｅを参照すると、メモリの不活性ポートのためのタイオフ（tie off）構造を図解するブロック図が示されている。ある例では、未使用アドレス、データ及びリード／ライト・イネーブル・ビットを不活性に結合することができる。タイオフは、一般に、制御された態様でなされ、タイオフの周囲の製造テスト・ロジックを付勢する。例えば、タイオフ・フリップフロップ１６０を、既知の信号を不活性ポートに与えるように実装することが可能である。
【００２４】
図２Ｆを参照すると、デュアル・ポート・メモリを図解するブロック図が示されている。デュアル・ポート・メモリ１７０は、メモリ・テスト・ラッパ（例えば、ＢＩＳＴカラー（collar））を含むことがありうる。メモリ１７０がパイプライン化された応用例のために構成されているかパイプライン化されていない応用例のために構成されているかにより、ラッパを、パイプライン・フリップフロップ１７２を含むように生成することができる。このラッパは、また、タイオフ・ブロック（図示せず）を含むこともある。
【００２５】
図１を再び参照すると、ある例では、ゲート・アレイ・メモリ・コンパイラ１０６を標準的なメモリ・コンパイラとして実装することができる。ある例では、ゲート・アレイ・メモリ・コンパイラ１０６は、Ａ−セル・メモリ・コンパイラとして実装することができる。ゲート・アレイ・メモリ・コンパイラ１０６は、一般に、入力としてロー番号とコラム番号とポート数とを受け取り、ゲート・アレイ・メモリを生成する。メモリ・コンポーザ１０４は、一般に、資源セレクタ１０２によって提供された情報を取得して、選択された資源に基づいて要求された動作を実行する能力の基本的チェックを提供し、特定されたメモリ構成を提供する特定のツールを調整する。例えば、メモリ・コンポーザ１０４は、情報をゲート・アレイ・メモリ・コンパイラ１０６に送り、特定されたＡ−セル・ベースのメモリを生成する。Ａ−セル・メモリ・コンパイラ１０６は、一般に、提供された情報に基づいてメモリを生成する。メモリ・コンパイラ１０６の出力は、一般に、生成されたメモリの使用のためのすべてのビュー（例えば、ｒｔｌ、タイミング、物理レイアウトなど）を含む。ゲート・アレイ・メモリ・コンパイラ１０６の出力は、ある例では、（ｉ）Ａ−セルに基づくシングル・メモリを要求する場合に生成されたものとして、又は、（ｉｉ）拡散メモリなど他のメモリのメモリ・ビューと組み合わせて複数のメモリのより複雑な組合せを生じさせるものとして、のいずれかに用いられる。
【００２６】
図３を参照すると、図１のラッパ・ジェネレータ１０８によって生成される例示的なラッパを図解するブロック図が示されている。ラッパ・ジェネレータ１０８は、実装されているメモリのタイプに基づいて、パイプライン段のためのＲＴＬコードと、入力及び出力多重化と、タイオフ・ブロックと、メモリ・コンポーザ１０４によって要求されたテスト構造（図２Ａないし図２Ｆとの関係で既に詳細に説明した）とを生成するように構成することができる。既に述べたように、メモリ・コンポーザ１０４は、一般に、資源セレクタ１０２によって提供された情報を取得し、選択された資源に基づいてユーザによって特定された動作を実行する能力の基本的なチェックを提供し、特定されたメモリ構成を提供するのに要求される特定のツールを管理する。生成されたメモリ（例えば、Ａ−セル、拡散メモリ又はこの両者の組合せから）に基づいて、ラッパ・ジェネレータ１０８は、一般に、生成されたメモリをカプセル化するラッパを提供（又は、構築）する（例えば、拡散メモリ１８４に対しては論理メモリ・ラッパ１８０及びメモリ・テスト・ラッパ１８２、及び／又は、Ａ−セル・メモリに対してはメモリ・ラッパ１８６）。ラッパ・ジェネレータは、一般に、任意のパイプライン段要求を満足し、適切なユーザ・ビュー（例えば、タイオフ未使用データ及びアドレス・ビット）を提供し、他の可能性のある進んだラッパ機能（例えば、ｅｃｃ、パリティ・チェック／生成など）を実行する。
【００２７】
プロセス１００は、更に、設計認定段１２０を含む。設計認定手段（クオリファイア）１２０は、メモリ・コンポーザ１０４の出力が顧客の使用を満足するかどうかを判断するように構成されている。メモリ・コンポーザ１０４の出力が（例えば、顧客の所定の規準に基づく）顧客の使用を満足していないときには、設計認定手段は、情報を資源セレクタに送り、その結果、利用可能な資源が新たに配分されることがありうる。
【００２８】
図４を参照すると、本発明の好適実施例によるプログラム可能なプラットフォーム・デバイス（又は、ダイ）１９０のブロック図が示されている。デバイス１９０は、一般に、拡散メモリ１９２の１又は複数の領域と、パイプライン化された拡散メモリ１９４の１又は複数の領域と、１又は複数の拡散領域とを含む。領域１９２、１９４、１９６は、ダイ１９０の周囲に分配することができる。拡散領域１９６は、ある例では、ロジック及び／又はメモリとしてカスタマイズすることができる。例えば、領域１９６は、ゲート・アレイの海（sea）として実装されうる。ある例では、領域１９６は、多数のＡ−セルを用いて実装されうる。ただしここで、Ａ−セルとは、金属層を用いてまだ個別化されていない（又は、構成されていない）１又は複数のトランジスタを含むように設計された（又は、拡散された）シリコンの面積を指している。配線層をＡ−セルに追加することにより、特定のトランジスタ、ロジック・ゲート及び／又はストレージ要素が作成される。Ａ−セルは、一般に、トランジスタの構成要素とそれ以後の製造ステップにおいて配線（例えば、電源、グランド、入力及び出力への）が追加される接触点とを形成するための１又は複数の拡散を含む。
【００２９】
一般に、Ａ−セルは、ある例では、ロジック及び／又はストレージ要素のための構築ブロックである。例えば、ロジック又はストレージ機能を実行するチップを設計する１つの方法として、ローからロー、コラムからコラムというように、多数のＡ−セルを配置する方法がある。チップの大きな面積が、Ａ−セルにだけ与えられる場合もありうる。Ａ−セルは、それ以後の製造ステップにおいて（例えば、金属層を積層することによって）特定のロジック機能を提供するように個別化（又は、構成）される。これらのロジック機能は、更にワイヤで結合することも可能である（例えば、ゲート・アレイ設計）。
【００３０】
デバイス１９０は、１又は複数のハード・マクロ１９８を含むこともある。ハード・マクロ１９８は、特定の機能のためにカスタマイズされ最適化された回路設計の拡散されたパターンを含む。ハード・マクロは、一般に、ＡＳＩＣ設計のように作用する。例えば、高速インターフェースをハード・マクロの中にルーティングすることが可能である。ハード・マクロは、インターフェース・プロトコルのレベルに従って、インターフェースを正確に受け取りそのインターフェースにおいて受け取られたすべての誤りを訂正する信号処理を実行するように構成することができる。一般に、ハード・マクロは、デバイス１９０上で多数の機能を提供するように実装されうる。例えば、ハード・マクロ１９８は、位相ロック・ループ（ＰＬＬ）や、プロセッサ、メモリ、入力／出力ＰＨＹレベル・マクロの例などを含むことがありうる。
【００３１】
図５を参照すると、メモリ・コンポーザ１０４の例示的な動作を図解するプロセス２００の流れ図が示されている。プロセス２００は、プログラム可能なプラットフォーム・デバイスの上に実装されるメモリのための顧客の仕様と、配分され利用可能なデバイス資源と、物理的な配置情報となどを受け取ることによって開始する（例えば、ブロック２０２）。プロセス２００は、一般に、顧客のメモリ仕様を満足するように構築された多数のメモリ構築ブロック（例えば、拡散メモリ・ブロック及び／又はゲート・アレイ・ベースのメモリ・ブロック）を構成するように進行する（例えば、ブロック２０３）。メモリ仕様を満足するために拡散メモリ・ベースのメモリ・ブロックを含めるべきときには、メモリ・コンポーザ１０４は、一般に、デバイスの利用可能な資源から１又は複数の拡散メモリ・ブロックを選択するように構成される（例えば、ブロック２０４及び２０５）。ゲート・アレイ・ベースのメモリ・ブロックが実装される場合には、それぞれのゲート・アレイ・ベースのメモリ・ブロックのためのパラメータ（例えば、ロー、コラム、ポート数など）が一般にゲート・アレイ（又は、Ａ−セル）メモリ・コンパイラに送られる（例えば、ブロック２０６及び２０８）。
【００３２】
構築ブロックが生成されると、プロセスは、顧客仕様の中のメモリのタイプと関連する任意のパイプライン段のためのＲＴＬコード、入力、出力、マルチプレクサ及び／又はテスト構造を生成するように進行する（例えば、ブロック２１０）。プロセス２００は、この構成に対して基本的な誤りチェックを実行する（例えば、ブロック２１２）。この構成が仕様を満足しない場合には（例えば、ブロック２１２からのＮＯの経路）、プロセスは、不一致情報を提供する（例えば、ブロック２１４）。すべてのメモリが構成され仕様を満足するときには、プロセスは、多数の出力を与える（例えば、ブロック２１６）。
【００３３】
一般に、本発明は、資源の固定された組に基づいて変動するメモリ仕様を満足するように回路製造の間に構築される（１又は複数の金属ルーティング層を用いてカスタマイズされる）メモリ構築ブロックの構成を容易にするプロセス及びアーキテクチャを提供する。多くの異なる設計に対して資源の固定された組を用いるということは、一般に、有意義である。カスタム化されていないスライスの在庫管理をするという観点から、本発明は、コストを低減させ、スライスの設計時間を短縮させることができる。設計者の観点からは、本発明は、より広範囲なプラットフォームの選択肢を与える。プラットフォームを提供する観点からは、本発明は、より広い対象となる市場を提供する。
【００３４】
テスト自動化とデバッギング・アクセスとを自動化された経路へ組み入れることは、設計者の投資を非常に低くしながらライト・バイ・コンストラクション（right-by-construction）テスト・ラッパを提供するという効果を有する。本発明は、テスト・プログラムの生成がクリティカル・パスの外側で生じることを可能にする通常のテスト構造を提供する（例えば、このテスト・プログラムは、高価なマスク・セットが作られる前に完成させなければならないのではなく、マスク・セット及びシリコンの製造と平行して作ることができる）。
【００３５】
以上で、本発明をその好適実施例を参照して示し説明したが、この技術分野の当業者であれば、本発明の精神及び範囲から逸脱することなく形式及び詳細における様々な変更をなし得ることを理解すべきである。
【図面の簡単な説明】
【００３６】
【図１】本発明のプロセスの好適実施例を図解する流れ図である。
【図２Ａ】例示的なメモリ構成を示す図である。
【図２Ｂ】例示的なメモリ構成を示す図である。
【図２Ｃ】例示的なメモリ構成を示す図である。
【図２Ｄ】例示的なメモリ構成を示す図である。
【図２Ｅ】例示的なメモリ構成を示す図である。
【図２Ｆ】例示的なメモリ構成を示す図である。
【図３】例示的なメモリ及びラッパを示す図である。
【図４】本発明の好適実施例によるプログラム可能なプラットフォーム・デバイスのブロック図である。
【図５】図１のメモリ構成ステージの流れ図である。
【図１】
2004213634.tif 000003
【図２Ａ】
2004213634.tif 000004
【図２Ｂ】
2004213634.tif 000005
【図２Ｃ】
2004213634.tif 000006
【図２Ｄ】
2004213634.tif 000007
【図２Ｅ】
2004213634.tif 000008
【図２Ｆ】
2004213634.tif 000009
【図３】
2004213634.tif 000010
【図４】
2004213634.tif 000011
【図５】
2004213634.tif 000012
【手続補正書】
【提出日】平成15年12月24日(2003.12.24)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2004213634.tif 000013
【図２Ａ】
2004213634.tif 000014
【図２Ｂ】
2004213634.tif 000015
【図２Ｃ】
2004213634.tif 000016
【図２Ｄ】
2004213634.tif 000017
【図２Ｅ】
2004213634.tif 000018
【図２Ｆ】
2004213634.tif 000019
【図３】
2004213634.tif 000020
【図４】
2004213634.tif 000021
【図５】
2004213634.tif 000022