(57)【要約】【課題】  完全アレイ・モデル内のエッジ・セルの動作をシミュレートすることによってアレイのパフォーマンスを検証するための方法およびシステムを提供することにある。【解決手段】  この方法およびシステムにより、完全な設計検証に必要な計算時間が削減される。アレイ（またはアレイが区分されている場合は各サブアレイ）のエッジ・セルは、アレイの中心セルが論理的に使用不可になっている間にタイミング・シミュレーションを受けるが、回路モデル内に存続し、適切なローディングを提供する。非エッジ・セルによる最悪の場合の条件が計算によって示される場合、シミュレーションのために追加のセルが指定される。選択のために最悪の場合の行を決定するために、ワード線到着が監視される。書き込み動作の場合、任意の非エッジ「アウトライア」セルを突き止めるために、ワード線エッジとデータ・エッジとの差が使用される。読み取り動作の場合、任意のアウトライアを突き止めるために、ワード線遅延がエッジ列データから決定されたビット線遅延と合計される。【選択図】  図２
2009533737.tif 000002
【特許請求の範囲】
【請求項１】
アレイ設計のパフォーマンスを検証するための方法において、
前記アレイ設計のセルのトランジスタレベル・モデルを指定するステップと、
前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするステップと、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするステップと、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するステップと、
を含む方法。
【請求項２】
前記アレイ設計がスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析が読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する、請求項１に記載の方法。
【請求項３】
前記タイミング分析の結果に基づいて、前記アレイ設計の各セルについてワード線エッジとビット線エッジの到着間の差を決定するステップと、
前記エッジ・セル間の前記差のうち最大差と最小差を第１に判断するステップと、
前記エッジ・セル以外の任意の非エッジ・セルが前記エッジ・セル間の前記最大差より大きい差を有するかどうかを第２に判断するステップと、
前記非エッジ・セルのうちのいずれかが前記エッジ・セル間の前記最小差より小さい差を有するかどうかを第３に判断するステップと、
所与の他のセルが前記最大差より大きい差と前記最小差より小さい差のうちの１つを有すると判断したことに応答して、前記所与の他のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記所与のセルをシミュレートするステップと、
をさらに含む、請求項１または請求項２に記載の方法。
【請求項４】
前記アレイ設計が複数のサブアレイを含み、それにより、前記ワード線エッジと前記ビット線エッジの最悪の場合の到着が前記アレイ設計のエッジで発生しないが、前記サブアレイのエッジで発生し、前記指定ステップと、使用不可ステップと、シミュレート・ステップと、実行ステップが前記複数のサブアレイのそれぞれについて繰り返される、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記シミュレート・ステップが、任意の内部信号変化を有する提供されたモデル内のすべての回路をシミュレートする回路モデル・ソフトウェア・パッケージによって実行され、前記使用不可ステップが、前記アレイ設計の前記非エッジ・セルでワード線入力をディレクティブによりオーバーライドするステップを含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記オーバーライド・ステップが、前記非エッジ・セルのすべてのセル・パス・トランジスタを論理的に使用不可にするディレクティブによって実行される、請求項５に記載の方法。
【請求項７】
前記アレイの特定の列で前記アレイの各行ごとにワード線到着遅延を決定するステップと、
前記アレイ内の各セルから対応する読み取り回路へのビット線遅延を決定するステップと、
前記セルのそれぞれについて前記ワード線遅延とビット線遅延を合計するステップと、
前記合計の最大結果と最小結果を検出するステップと、
前記最大遅延と最小遅延のうちの少なくとも１つが前記アレイの少なくとも１つの非エッジ行のセルに対応するかどうかを判断するステップと、
前記合計の前記最大結果と最小結果のうちの前記少なくとも１つが非エッジ行内の特定のセルに対応すると判断したことに応答して、前記非エッジ行のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記非エッジ行のセルをシミュレートするステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
アレイ設計のパフォーマンスを検証するためのプログラム命令を保管するためのメモリと、前記プログラム命令を実行するためのプロセッサとを含むワークステーション・コンピュータ・システムにおいて、前記プログラム命令が、
前記アレイ設計のセルのトランジスタレベル・モデルを指定するプログラム命令と、
前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするプログラム命令と、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするプログラム命令と、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するプログラム命令と、
を含む、ワークステーション・コンピュータ・システム。
【請求項９】
前記アレイ設計がスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析が読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する、請求項８に記載のワークステーション・コンピュータ・システム。
【請求項１０】
コンピュータ・システムにロードされ、そこで実行されたときに、請求項１ないし７のいずれかに記載の方法の前記ステップのすべてを前記コンピュータ・システムに実行させる、コンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、回路シミュレーションおよび検証の方法およびソフトウェアに関し、詳細には、アレイのパフォーマンスを検証するアレイ・モデリングの方法およびソフトウェアに関する。
【背景技術】
【０００２】
完全回路シミュレーションは、典型的には、設計検証中にアレイ内の各セルを同時にモデリングすることによって実行されるわけではない。必要な計算時間およびメモリの量はアレイ寸法につれて幾何級数的に増加するので、タイミング分析は通常、特定のタイミング・パス（timing pass）中に非アクティブ・セルに関する集中パラメータ・モデルを使用することによって実行される。非アクティブ・セル・ローディング効果（loading effect）に関するモデルの使用により、シミュレーションの正確さが低減され、高速メモリ設計では、理想的とは言えない設計と、過剰指定のマージンがもたらされる。
【０００３】
アレイ（またはアレイが区分されている場合はサブアレイ）の最悪の場合の読み取りパフォーマンスは、典型的には、アレイのエッジに沿ったセルによって示される。というのは、アレイの境界からのワード線の最悪の場合の到着時間遅延と、セル・パス・デバイス（cell pass device）（複数も可）の出力から出力回路、一般に読み取り回路、への最悪の場合の伝搬時間は、必ず、アレイの複数の対向する隅に最短値および最長値が位置していることになるからである。アレイは一方のエッジに沿ったワード線ともう一方のエッジに沿ったビット線の数列（progression）によって定義されるので、最短ビット線およびワード線に対応する隅のセルは最小遅延を有するはずであり、反対側の隅は最大遅延を有するはずである。
【０００４】
しかし、ワード線ドライバ回路は不均一な遅延を有するので、最悪の場合の読み取り遅延値（最小と最大の両方）はアレイのエッジに沿ったどこでも発生する可能性がある。さらに、読み取り回路が不均一であるかまたはそこでタイミングを取らなければならないダウンストリーム・ポイントへの不均一な経路を有する場合、最悪の場合の読み取り遅延値は、アレイ内の任意のセルで発生する可能性があるであろう。データは早すぎる到着または遅すぎる到着になるようにタイミングを取ることができないので、最小遅延と最大遅延はいずれも、最短連続読み取りサイクルを提供するようにタイミングが取られる設計では重大なものになる。
【０００５】
書き込みパフォーマンスはビット線上のデータ値とワード線上のストローブ値の両方の相対的到着に依存するので、それぞれのドライバ回路からの最悪の場合のワード線およびデータ・ビット線遅延は行と列の任意の組み合わせで発生する可能性があり、最悪の場合の書き込み条件も必ずアレイのエッジで発生するわけではない。
【０００６】
アレイ内の各セルのシミュレーションは、現在の分析ソフトウェアのように、時間のかかるプロセスであり、セルが完全にモデルから除去されていない限り、セル内の信号のそれぞれの伝搬では、典型的には、各セルごとにシミュレーション・コードの完全実行が必要であり、これが上述の集中パラメータ・モデル技法が頻繁に使用される理由である。エッジ・セルを除き、すべてのセルを除去することによってアレイをモデリングしようという試みがいくつか行われてきた。しかし、上記の通り、正常な書き込みがストローブとデータ値の相対的到着に依存しているので、書き込み失敗を見落とす可能がある。さらに、中心セルのすべてを除去するとビット線およびワード線のローディングが変更され、その結果、書き込み失敗を見落とし、もしかすると読み取り失敗も見落とす可能性のあるタイミング偏差を引き起こすことになる。
【０００７】
Ｊ×Ｋアレイの完全シミュレーションはセル計算時間にＪ＊Ｋを掛けた計算時間を有し、本質的に、アレイ寸法が増加するにつれてＮ平方の負担をもたらすので、このような削減は極めて望ましい。エッジ・セルのみの完全シミュレーションは２＊（Ｊ＋Ｋ）−４のみを必要とし、これはアレイ寸法が増加するにつれてＮ次の計算負担になる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、アレイ全体の読み取りおよび書き込みパフォーマンスを正確に検証しながら分析時間を短縮できる、アレイに関する設計検証方法を提供することが望ましいであろう。
【課題を解決するための手段】
【０００９】
したがって、本発明は、第１の態様では、アレイ設計のパフォーマンスを検証するための方法を提供し、この方法は、前記アレイ設計のセルのトランジスタレベル・モデルを指定するステップと、前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするステップと、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするステップと、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するステップとを含む。
【００１０】
好ましくは、前記アレイ設計はスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析は読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する。
【００１１】
この方法は、前記タイミング分析の結果に基づいて、前記アレイ設計の各セルについてワード線エッジとビット線エッジの到着間の差を決定するステップと、前記エッジ・セル間の前記差のうち最大差と最小差を第１に判断するステップと、前記エッジ・セル以外の任意の非エッジ・セルが前記エッジ・セル間の前記最大差より大きい差を有するかどうかを第２に判断するステップと、前記非エッジ・セルのうちのいずれかが前記エッジ・セル間の前記最小差より小さい差を有するかどうかを第３に判断するステップと、所与の他のセルが前記最大差より大きい差と前記最小差より小さい差のうちの１つを有すると判断したことに応答して、前記所与の他のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記所与のセルをシミュレートするステップとをさらに含むことができる。
【００１２】
好ましくは、前記アレイ設計は複数のサブアレイを含み、それにより、前記ワード線エッジと前記ビット線エッジの最悪の場合の到着が前記アレイ設計のエッジで発生しないが、前記サブアレイのエッジで発生し、前記指定ステップと、使用不可ステップと、シミュレート・ステップと、実行ステップが前記複数のサブアレイのそれぞれについて繰り返される。
【００１３】
好ましくは、前記シミュレート・ステップは、任意の内部信号変化を有する提供されたモデル内のすべての回路をシミュレートする回路モデル・ソフトウェア・パッケージによって実行され、前記使用不可ステップは、前記アレイ設計の前記非エッジ・セルでワード線入力をディレクティブによりオーバーライドするステップを含む。
【００１４】
好ましくは、前記オーバーライド・ステップは、前記非エッジ・セルのすべてのセル・パス・トランジスタを論理的に使用不可にするディレクティブによって実行される。
【００１５】
この方法は、前記アレイの特定の列で前記アレイの各行ごとにワード線到着遅延を決定するステップと、前記アレイ内の各セルから対応する読み取り回路へのビット線遅延を決定するステップと、前記セルのそれぞれについて前記ワード線遅延とビット線遅延を合計するステップと、前記合計の最大結果と最小結果を検出するステップと、前記最大遅延と最小遅延のうちの少なくとも１つが前記アレイの少なくとも１つの非エッジ行のセルに対応するかどうかを判断するステップと、前記合計の前記最大結果と最小結果のうちの前記少なくとも１つが非エッジ行内の特定のセルに対応すると判断したことに応答して、前記非エッジ行のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記非エッジ行のセルをシミュレートするステップとをさらに含むことができる。
【００１６】
第２の態様では、アレイ設計のパフォーマンスを検証するためのプログラム命令を保管するためのメモリと、前記プログラム命令を実行するためのプロセッサとを含むワークステーション・コンピュータ・システムが提供され、前記プログラム命令は、前記アレイ設計のセルのトランジスタレベル・モデルを指定するプログラム命令と、前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするプログラム命令と、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするプログラム命令と、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するプログラム命令とを含む。
【００１７】
好ましくは、前記アレイ設計はスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析は読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する。
【００１８】
好ましくは、前記プログラム命令は、前記タイミング分析の結果に基づいて、前記アレイ設計の各セルについてワード線エッジとビット線エッジの到着間の差を決定するプログラム命令と、前記エッジ・セル間の前記差のうち最大差と最小差を第１に判断するプログラム命令と、前記エッジ・セル以外の任意の非エッジ・セルが前記エッジ・セル間の前記最大差より大きい差を有するかどうかを第２に判断するプログラム命令と、前記非エッジ・セルのうちのいずれかが前記エッジ・セル間の前記最小差より小さい差を有するかどうかを第３に判断するプログラム命令と、所与の他のセルが前記最大差より大きい差と前記最小差より小さい差のうちの１つを有すると判断したことに応答して、前記所与の他のセルの内部シミュレーションを使用可能にし、所与のセルについてシミュレートする前記プログラム命令を繰り返すプログラム命令とをさらに含む。
【００１９】
好ましくは、前記アレイ設計は複数のサブアレイを含み、それにより、前記ワード線エッジと前記ビット線エッジの最悪の場合の到着が前記アレイ設計のエッジで発生しないが、前記サブアレイのエッジで発生し、前記プログラム命令は、前記複数のサブアレイのそれぞれについて指定し、使用不可にし、シミュレートし、実行する前記プログラム命令を繰り返すプログラム命令をさらに含む。
【００２０】
好ましくは、シミュレートする前記プログラム命令は、任意の内部信号変化を有する提供されたモデル内のすべての回路をシミュレートする回路モデル・ソフトウェア・パッケージを含み、使用不可にする前記プログラム命令は、ディレクティブに応答して前記アレイ設計の前記非エッジ・セルでワード線入力をオーバーライドするプログラム命令を含む。
【００２１】
好ましくは、オーバーライドする前記プログラム命令は、前記非エッジ・セルのすべてのセル・パス・トランジスタを論理的に使用不可にするディレクティブに応答する。
【００２２】
好ましくは、前記プログラム命令は、前記アレイの特定の列で前記アレイの各行ごとにワード線到着遅延を決定するプログラム命令と、前記アレイ内の各セルから対応する読み取り回路へのビット線遅延を決定するプログラム命令と、前記セルのそれぞれについて前記ワード線遅延とビット線遅延を合計するプログラム命令と、前記合計の最大結果と最小結果を検出するプログラム命令と、前記最大遅延と最小遅延のうちの少なくとも１つが前記アレイの少なくとも１つの非エッジ行のセルに対応するかどうかを判断するプログラム命令と、前記合計の前記最大結果と最小結果のうちの前記少なくとも１つが非エッジ行内の特定のセルに対応すると判断したことに応答して、前記非エッジ行のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記非エッジ行のセルをシミュレートするプログラム命令とをさらに含む。
【００２３】
第３の態様では、コンピュータ・システムにロードされ、そこで実行されたときに、第１の態様による方法の前記ステップのすべてを前記コンピュータ・システムに実行させる、コンピュータ・プログラム・コードを含むコンピュータ・プログラムが提供される。
【００２４】
第３の態様は、汎用コンピュータ・システム上で実行するためにアレイ設計のパフォーマンスを検証するためのプログラム命令をコード化する信号伝送媒体を含むコンピュータ・プログラム（computer program product）として実装することができ、前記プログラム命令は、前記アレイ設計のセルのトランジスタレベル・モデルを指定するプログラム命令と、前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするプログラム命令と、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするプログラム命令と、前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するプログラム命令とを含む。
【００２５】
好ましくは、前記アレイ設計はスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析は読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する。
【００２６】
好ましくは、前記プログラム命令は、前記タイミング分析の結果に基づいて、前記アレイ設計の各セルについてワード線エッジとビット線エッジの到着間の差を決定するプログラム命令と、前記エッジ・セル間の前記差のうち最大差と最小差を第１に判断するプログラム命令と、前記エッジ・セル以外の任意の非エッジ・セルが前記エッジ・セル間の前記最大差より大きい差を有するかどうかを第２に判断するプログラム命令と、前記非エッジ・セルのうちのいずれかが前記エッジ・セル間の前記最小差より小さい差を有するかどうかを第３の判断するプログラム命令と、所与の他のセルが前記最大差より大きい差と前記最小差より小さい差のうちの１つを有すると判断したことに応答して、前記所与の他のセルの内部シミュレーションを使用可能にし、所与のセルについてシミュレートする前記プログラム命令を繰り返すプログラム命令とをさらに含む。
【００２７】
好ましくは、前記アレイ設計は複数のサブアレイを含み、それにより、前記ワード線エッジと前記ビット線エッジの最悪の場合の到着が前記アレイ設計のエッジで発生しないが、前記サブアレイのエッジで発生し、前記プログラム命令は、前記複数のサブアレイのそれぞれについて指定し、使用不可にし、シミュレートし、実行する前記プログラム命令を繰り返すプログラム命令をさらに含む。
【００２８】
好ましくは、シミュレートする前記プログラム命令は、任意の内部信号変化を有する提供されたモデル内のすべての回路をシミュレートする回路モデル・ソフトウェア・パッケージを含み、使用不可にする前記プログラム命令は、ディレクティブに応答して前記アレイ設計の前記非エッジ・セルでワード線入力をオーバーライドするプログラム命令を含む。
【００２９】
好ましくは、前記プログラム命令は、前記アレイの特定の列で前記アレイの各行ごとにワード線到着遅延を決定するプログラム命令と、前記アレイ内の各セルから対応する読み取り回路へのビット線遅延を決定するプログラム命令と、前記セルのそれぞれについて前記ワード線遅延とビット線遅延を合計するプログラム命令と、前記合計の最大結果と最小結果を検出するプログラム命令と、前記最大遅延と最小遅延のうちの少なくとも１つが前記アレイの少なくとも１つの非エッジ行のセルに対応するかどうかを判断するプログラム命令と、前記合計の前記最大結果と最小結果のうちの前記少なくとも１つが非エッジ行内の特定のセルに対応すると判断したことに応答して、前記非エッジ行のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記非エッジ行のセルをシミュレートするプログラム命令とをさらに含む。
【００３０】
したがって、削減された計算時間でアレイ全体の読み取りおよび書き込みパフォーマンスを検証する場合の上記の利点は、コンピュータで実行される検証方法で対処される。
【００３１】
この方法は、この方法の全ステップを実行するためのプログラム命令を実行するコンピュータ・システムで実施することができ、この方法の全ステップを実行するためのコンピュータ可読形式のプログラム命令を含むコンピュータ・プログラムでさらに実施することができる。
【００３２】
この方法は、スタティック・タイミング分析チェックを含む可能性のあるトランジスタレベル・シミュレーションを使用して、１つのアレイ（または存在する場合は各サブアレイ）のエッジ・セルのみを完全にシミュレートする。アレイの中心内のセルはローディング測定を可能にするためにモデル内に残されるが、セル内の動作の計算は、ローディング効果が存在するように使用不可になる。一般に最悪の場合の読み取りタイミングおよびマージンを明らかにするエッジ・セルのシミュレーションに加えて、アレイ（または存在する場合は各サブアレイ）の各セルでワード線およびビット線エッジの到着が検出され、各セルごとに到着差値が計算される。中心セルに関する到着差のいずれかがエッジ・セル間の最大到着差より大きいかまたは最小到着差より小さい場合、より大きいかまたはより小さい到着差を有する中心セルも、最悪の場合の書き込みタイミングおよびマージンを検出するために完全にシミュレートされる。
【００３３】
ワード線絶対到着時間が不均一であるかまたはダウンストリーム読み取り遅延値がアレイの境界からの臨界タイミング差を有するかあるいはその両方である場合、最短または最長読み取り遅延を決定するために、１つまたは複数の追加行もさらにシミュレートする必要がある場合もある。ワード線エッジの到着時間は特定の列（一般にエッジ列）で監視することができ、読み取り回路の読み取り遅延は、シミュレートされたエッジ列の１つからタイミングが取られたビット線読み取り伝搬差から決定される。ワード線遅延と読み取り遅延の合計は、各セルごとに計算され、エッジ・セルに関する最短および最長読み取り遅延と比較される。計算された読み取り遅延のいずれかが完全にシミュレートされた行エッジ・セルに関する最長読み取り遅延より大きいかまたは最短読み取り遅延より小さい場合、これらのセルを含む行（複数も可）は、最悪の場合の読み取りタイミングおよびマージンを検出するために完全にシミュレートされる。
【００３４】
本発明の上記その他の目的、特徴、および利点は、添付図面に例示されている本発明の好ましい実施形態に関する以下のより詳細な説明から明らかになるであろう。
【００３５】
次に、添付図面に関連して、一例としてのみ、本発明の好ましい一実施形態について説明する。
【発明を実施するための最良の形態】
【００３６】
本発明の好ましい一実施形態は、コンピュータで実行される設計検証方法と、その方法を実行するためのコンピュータ・プログラムに関する。このプログラムは本発明の一実施形態によるプログラム命令を有する専用プログラムである場合もあれば、「集積回路重視のシミュレーション・プログラム」（ＳＰＩＣＥ：Simulation Program with Integrated Circuits Emphasis−元々はカリフォルニア大学バークレー校で開発されたもの）などの様々なプログラムのうちの１つのような既存の設計ツールを使用することもできる。この特定のシミュレーション・プログラムは、セル内のデバイスを論理的に使用不可にすることができるシミュレーション入力ディレクティブを受け入れることにより、本明細書に以下に詳述するように変更するかまたは指示された具体的な動作を含まなければならない。その場合、シミュレーション結果を使用して、ＥＩＮＳＴＩＭＥＲ（インターナショナル・ビジネス・マシーンズ社の製品）などのスタティック・タイミング分析ツールへの入力を提供することができる。
【００３７】
本発明の好ましい実施形態の方法は、指定のタイミングおよびマージンと比較して、アレイ読み取り遅延およびマージンと書き込みパフォーマンス（すなわち、アレイ内の各セルが状態の変化を受け入れることが保証されるかどうか）について完全回路レベルの検証を実行するための時間の量を劇的に削減する。さらに、モンテカルロ指示シミュレーションまたはその他の技法を介して、製作変動を含めることができる。検証時間の削減は、アレイ内のすべてのセルではなく、アレイのエッジ・セルの「ドーナッツ」（アレイの周りでセル１つ分深くなっているセルのリング）のみに関するトランジスタレベル・シミュレーションによって実施される。エッジ・セル・シミュレーションは、ワード線およびビット線信号の分散遅延において単調なトレンドを有する最小アレイ・ユニットとしてシミュレートされたアレイを定義することにより、アレイ内のビット線（データ）およびワード線（読み取りおよび書き込みストローブ）信号の最悪の場合の絶対タイミングを収集することが保証される。したがって、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）またはその他のデバイスなどのメモリがサブアレイを含む場合、たとえば、ワード線がアレイの中心から駆動される場合、各サブアレイは、予測可能な絶対遅延動作を保証するようにシミュレートされる。
【００３８】
エッジ・セルのみの検証は、最悪の場合の読み取り条件およびアレイ書き込み可能性の最悪の場合の条件を収集することになるであろう。しかし、書き込みの場合、各セル内および各セル外のワード線信号およびビット線データ信号（複数も可）のエッジ間の相対的タイミング差の性質は、セルが正しく書き込むかまたは特定のウィンドウ内に読み取りデータを提示するかに関する決定要因になる。アレイの境界におけるワード線エッジとデータ・エッジとの遅延差のために、最悪の場合の書き込み条件はエッジ・セルではまったく発生しない可能性がある。さらに、不均一な読み取り出力回路経路および不均一なワード線遅延の場合、アレイの境界におけるワード線エッジ間の遅延差と読み取り出力経路の不均一さにより、最悪の場合の読み取り条件がアレイのエッジに沿っていないセルから発生する可能性がある。
【００３９】
したがって、エッジ・セルのみの完全シミュレーションは、アレイ全体が書き込み可能であるかあるいは適切な読み取り遅延およびマージンを有するかを必ず明らかにするわけではない。
【００４０】
書き込み可能性に関する上記の制限事項を克服するために、本発明の好ましい実施形態の方法およびコンピュータ・プログラムは、各セルのワード線およびビット線信号のエッジの相対的タイミングのみについて２次チェックを実行し、それにより、ドーナツの中心にあるセルのいずれかが、アレイ障害を発生させる可能性のある「アウトライア（outlier）」であるかどうかを判断する。それぞれエッジ・セル間の最大差より大きいかまたは最小差より小さいエッジ間の差を有するものと判断された任意のセルは補足シミュレーションで完全にシミュレートされ、そのシミュレーションは、エッジ・セルおよびアウトライアの集合に関する再シミュレーション（re-simulation）である場合もあれば、新に検出したアウトライアのみをシミュレートする場合もある。
【００４１】
読み取り遅延に関する上記の制限事項を克服するために、本発明の好ましい実施形態の方法およびコンピュータ・プログラムは、ビット線から読み取り回路への相対的遅延と合計されたアレイ内の特定の列のワード線信号のエッジの相対的タイミングのみについて２次チェックを実行し、その遅延は一般に、基準列（複数も可）として選択されたアレイ内の任意の列（複数も可）から決定することができる。ワード線エッジ到着遅延とビット線から読み取り回路への遅延との合計の最小値および最大値を有するセルは、アレイ内のすべてのセルにわたって検出され、これらのセルがアレイのエッジにある行内に位置していない場合、対応する非エッジ行が補足シミュレーションでシミュレートされ（あるいは上記の書き込み資格について収集された補足セルに追加され）、そのシミュレーションは、エッジ・セルおよび追加行と、２次書き込みチェックまたは追加の補足シミュレーションで検出したアウトライアの集合に関する再シミュレーションである場合もある。
【００４２】
次に図１を参照すると、メモリ１７からのプログラム命令を実行するためにメモリ１７に結合されたプロセッサ１６を有するワークステーション・コンピュータ１８が示されており、このプログラム命令は、本発明の一実施形態による１つまたは複数の方法を実行するためのプログラム命令を含む。プロセッサ１６には、本発明の諸実施形態による方法を実行するためのプログラム命令を収容しているＣＤ−ＲＯＭ３０などの媒体からプログラムを転送するためにＣＤ−ＲＯＭドライブ１５も結合されている。
【００４３】
ワークステーション・コンピュータ１８は、本発明の諸実施形態によって計算されたタイミング情報、マージン、およびパス／失敗値などのプログラム出力を表示するためにグラフィック・ディスプレイ１９にも結合されている。ワークステーション・コンピュータ１８は、ユーザ入力を受け取るためにマウス１４Ｂおよびキーボード１４Ａなどの入力装置にさらに結合されている。ワークステーション・コンピュータは、インターネットなどの公衆網に結合される場合もあれば、様々な「イントラネット」などの私設網に結合される場合もあり、本発明の諸実施形態による方法を実施するプログラム命令を収容しているソフトウェアは、リモート・コンピュータ上に位置するかまたはワークステーション・コンピュータ１８内にローカルに位置することができる。
【００４４】
次に図２を参照すると、例示的なＳＲＡＭアレイなどのアレイ・デバイスが描写されている。２つの同一サブアレイ２０Ａおよび２０Ｂが示されているが、詳細はサブアレイ２０Ａのみについて示されている。しかし、実際のデバイスは３つ以上のサブアレイを含む可能性がある。例示的なアレイは中心駆動型アレイであり、個別行選択回路２４がワード線ストローブをワード線、たとえば、ｗｌ１上に駆動する。エッジ・セルは、例示目的のためにｅ００〜ｅＮＮとして列挙されている。ワード線信号エッジに関しては、最長遅延はセルｅ［ｉ］Ｎの１つで発生し、ｉは０〜Ｎの範囲であり、サブアレイ２０Ａの寸法である。読み取り動作では、読み取り回路２６がビット線、たとえば、ビット線ｂ１０ｃおよびｂ１０ｔの状態を検出し、読み取りパフォーマンスは、ｅ００〜ｅＮＮの任意のセルが対応するワード線、たとえば、ｗｌ１のアサートに応答して読み取り回路２６から正しいデータをどのくらい迅速に生成できるかによって決定される。
【００４５】
一般に、均一出力読み取り回路と、その読み取り回路の出力を受け入れる任意のクロック修飾ポイントへの等化経路の場合、最悪の場合の読み取り遅延値は、最早および最遅ワード線エッジ到着に対応する行のアレイのエッジに現れることになる。しかし、出力読み取り回路経路が臨界タイミング・ポイントまで不均一である場合、最悪の場合の読み取り遅延値は、これらの行のどこでも発生する可能性があり、その行はエッジ行である場合もあれば、エッジ行ではない場合もある。総合すると、最悪の場合の遅延は、読み取りサイクルの開始と終了のタイミングを示す。
【００４６】
書き込みの場合、ビット線データ値は、データ・ドライバ２２によってビット線、たとえば、ビット線ｂｌ０ｃおよびｂｌ０ｔに課せられ、ビット線信号エッジに関する最長遅延は行Ｎで発生することになる。したがって、ビット線信号とワード線信号の両方に関する最長絶対遅延はセルｅＮＮで発生し、最短絶対遅延はセルｅ００で発生することになる。しかし、各セルの書き込み可能性およびタイミング・マージンを決定するのはビット線エッジとワード線エッジの到着の差であるので、アレイ自体の内部の最悪の場合の差異タイミング値は一般に隅のセルｅＮ０およびｅ０Ｎの付近で発生することになるが、行選択２４、データ・ドライバ２２、およびすべての信号経路はビット線とワード線との遅延差においてある役割を果たすので、必ずしもこれらの隅で発生するわけではない。
【００４７】
そのアレイに関する最悪の場合の絶対タイミングを得るために、そのアレイのすべてのエッジ・セルをシミュレートしなければならず、最悪の場合の差異タイミング（およびしたがって書き込み可能性）は、点線内の非エッジ・セルを含む、そのアレイのすべてのセルを考慮することによってのみ決定することができる。また、任意の臨界点へのビット線のダウンストリームで均一タイミングを想定できる場合を除き、読み取り遅延は、最早および最遅ワード線到着を有する行を考慮することによってのみ決定することができる。
【００４８】
さらに、各セルのワード線およびビット線エッジのタイミングを正確に予測するために、各セルの分散ローディング効果を考慮しなければならない。したがって、正確なタイミング結果のために、すべてのセルを含む、少なくとも１つの正確なローディング効果をシミュレーション分析に含めなければならない。前述のように、ローディングに関する集中パラメータ・モデルは十分に正確な結果を提供しない。
【００４９】
本発明の方法は、シミュレーション・モデル内のアレイ内のすべてのセルを残すことによって正確なタイミングが収集されることを保証するが、非エッジ・セルに関するシミュレーション・モデル内のディレクティブを介して非エッジ・セル内の内部信号経路を使用不可にする。使用不可になっている信号経路は、使用不可セルへのすべての入力経路および使用不可セルからのすべての出力経路である。次に、内部信号経路を使用不可にするとセルの内部動作がシミュレートされなくなり、使用不可セルからのビット線およびワード線上に分散ローディング効果のみを残すので、計算上の負担に大幅に貢献するエッジ・セルのみによってトランジスタレベル・シミュレーションが実行される。
【００５０】
シミュレーション後、アレイの非エッジ部分内のセルをシミュレートして書き込み可能性を検証するために他のシミュレーションが必要であるかどうかを判断するために、アレイ全体についてビット線およびワード線エッジの差異到着が監視される。シミュレーションを必要とする任意の非エッジ・セルが検出された場合、そのセルは、トランジスタレベル・シミュレーションおよび任意選択のタイミング分析チェックによってシミュレートされる。また、最悪の場合のワード線到着も基準列でチェックされ、最悪の場合のワード線到着に対応する任意の非エッジ行も、トランジスタレベル・シミュレーションおよび任意選択のタイミング分析チェックによってシミュレートされる。
【００５１】
同じくシミュレーション後、タイミングが取られたワード線到着は、読み取り回路によるワード線選択に関する最大または最小合計読み取り遅延が非エッジ・セルのセット内に存在するかどうかを判断するために、アレイ内の各セルごとにエッジ列の一方または両方から決定された漸進的ビット線遅延と合計される。存在する場合、そのセルも、トランジスタレベル・シミュレーションおよび任意選択のタイミング分析チェックによってシミュレートされる。
【００５２】
次に図３を参照すると、トランジスタＰ１０、Ｎ１０およびＰ１１、Ｎ１１によって形成された２つのバックツーバック・インバータから形成された単純な６Ｔセルが示されている。パス・トランジスタＮ１２およびＮ１３は、ワード線ｗｌがアサートされたときにビット線ＢＬＣおよびＢＬＴをインバータにそれぞれ結合し、その結果、そのセルへの書き込み時に、インバータによって形成されたラッチの値を設定することができる。図３のセルのシミュレーションを使用不可にするために、パス・トランジスタＮ１２およびＮ１３のそれぞれのゲートについて「デバイス無視（Ignore Device）」ディレクティブが設定される。このデバイス無視ディレクティブにより、シミュレータは、それが論理的にオフになった場合のようにデバイスを扱うことになる（たとえば、ＮＦＥＴの場合、ゲートがアースに設定された場合のようになる）。しかし、デバイスは、ローディング特性に関しては回路モデル内に存続する。
【００５３】
図３のトランジスタＮ１２およびＮ１３が使用不可になると、そのセルへの経路またはそのセルからの経路はまったく存在しないので、トランジスタレベル・アレイ・モデリング・シミュレーションの範囲内で図３のセルの内部の内部シミュレーションはまったく実行されないが、セルのＡＣローディング効果は依然として含まれており、ビット線ＢＬＴ、ＢＬＣおよびワード線ｗｌ上の信号をもたらす。
【００５４】
次に図４を参照すると、２つのデータ・ポートを有する、より複雑な走査可能メモリ・セルが描写されている。上記の６Ｔセルのエレメントは同じように含まれ、使用不可になる。さらに、パス・トランジスタＮ１２ＡおよびＮ１３Ａは、第２の書き込みポートを提供し、同じくデバイス無視ディレクティブを介して使用不可になる。また、デュアル読み取りポートは、Ｎ１５Ａ、Ｎ１５Ｂ、Ｎ１６Ａ、Ｎ１６Ｂによって提供され、デバイス無視ディレクティブによって論理的に使用不可になる。
【００５５】
図４のセルの内部状態に影響を及ぼすかまたはセルからの出力で効果をもたらす可能性のある残りの信号経路のみが走査回路により提供される。トランジスタＮ１４ＡおよびＮ１４Ｂは、走査クロックｃｋａがアサートされたときに、走査入力（scan-in）値ｓｉｃおよびｓｉｔを提供する。トランジスタＮ１４ＡおよびＮ１４Ｂを通る経路は、デバイス無視ディレクティブによって論理的に使用不可になる。
【００５６】
インバータＩ１〜Ｉ４および走査ラッチＬ１は、走査クロックｃｋｂがトランジスタＮ１７ＡおよびＮ１７Ｂを活動化したときに、走査出力（scan out）信号ｓｏｃ、ｓｏｔを変更する。デバイス無視ディレクティブを介してトランジスタＮ１７ＡおよびＮ１７Ｂを使用不可にすると、走査ラッチおよび出力回路内のどこでも変更を防止し、これらの回路のシミュレーションを防止する。
【００５７】
上述のデバイス無視ディレクティブは、エッジ・セルのみをシミュレートする第１のスタティック・タイミング分析パスにおいて非エッジ・セルのみについて設定される。アレイの中心の任意のアウトライアが突き止められた後、同じように、アウトライアを除き、アレイ全体を使用不可にすることができ、非エッジ・アウトライア・セルは、これらのセル・モデル内のデバイス無視ディレクティブを除去することによって完全にシミュレートされる。
【００５８】
次に図５を参照すると、本発明の一実施形態による方法が流れ図で例示されている。まず、パス・デバイス（およびその他の入力経路）が使用不可になっている非エッジ・セルのすべてとともに、エッジ・セルのすべてについてトランジスタレベル・シミュレーションが実行される（ステップ５０）。ワード線エッジ到着遅延とビット線から読み取り回路への遅延の合計がエッジ列データから検出される（ステップ５１）。任意の非エッジ行が関係している場合（判断５２）、これらの行はさらにトランジスタレベル・シミュレーションを行うために使用可能になる（ステップ５３）。次に、アレイの各セルについてワード線およびビット線エッジの到着の差が決定され（ステップ５４）、差の範囲を検出するためにエッジ・セルに関する最大差および最小差が決定される（ステップ５５）。任意の「アウトライア」非エッジ・セルに関する差がその範囲を超えている場合（判断５６）、これらの行はさらにトランジスタレベル・シミュレーションを行うために使用可能になる（ステップ５７）。最後に、入力経路が使用不可になっているその他の非エッジ・セルおよび任意選択で前にシミュレートされたエッジ・セルとともに、その入力経路が使用可能になっている追加セルについてトランジスタレベル・シミュレーションが実行される（ステップ５９）。最後に、エッジ・セル・タイミングおよび任意の追加のセル／行のタイミングから読み取りおよび書き込みパフォーマンスが検証される（ステップ５８）。
【００５９】
本発明の好ましい実施形態に関連して本発明について詳細に示し説明してきたが、当業者であれば、形式および詳細について上記およびその他の多くの変更が可能であることが理解されるであろう。
【図面の簡単な説明】
【００６０】
【図１】本発明の一実施形態による方法が実行されるワークステーション・コンピュータ・システムを示す図である。
【図２】本発明の一実施形態によるアレイ設計モデル内のセルのアレイを示すブロック図である。
【図３】図２のアレイ設計内に配備可能なセルの概略図である。
【図４】図２のアレイ設計内に配備可能なセルの概略図である。
【図５】本発明の一実施形態による方法の流れ図である。
【図１】
2009533737.tif 000003
【図２】
2009533737.tif 000004
【図３】
2009533737.tif 000005
【図４】
2009533737.tif 000006
【図５】
2009533737.tif 000007
【手続補正書】
【提出日】平成21年3月24日(2009.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
アレイ設計のパフォーマンスを検証するための方法において、
前記アレイ設計のセルのトランジスタレベル・モデルを指定するステップと、
前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするステップと、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするステップと、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するステップと、
を含む方法。
【請求項２】
前記アレイ設計がスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析が読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する、請求項１に記載の方法。
【請求項３】
前記タイミング分析の結果に基づいて、前記アレイ設計の各セルについてワード線エッジとビット線エッジの到着間の差を決定するステップと、
前記エッジ・セル間の前記差のうち最大差と最小差を第１に判断するステップと、
前記エッジ・セル以外の任意の非エッジ・セルが前記エッジ・セル間の前記最大差より大きい差を有するかどうかを第２に判断するステップと、
前記非エッジ・セルのうちのいずれかが前記エッジ・セル間の前記最小差より小さい差を有するかどうかを第３に判断するステップと、
所与の他のセルが前記最大差より大きい差と前記最小差より小さい差のうちの１つを有すると判断したことに応答して、前記所与の他のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記所与のセルをシミュレートするステップと、
をさらに含む、請求項１または請求項２に記載の方法。
【請求項４】
前記アレイ設計が複数のサブアレイを含み、それにより、前記ワード線エッジと前記ビット線エッジの最悪の場合の到着が前記アレイ設計のエッジで発生しないが、前記サブアレイのエッジで発生し、前記指定ステップと、使用不可ステップと、シミュレート・ステップと、実行ステップが前記複数のサブアレイのそれぞれについて繰り返される、請求項１ないし３のいずれかに記載の方法。
【請求項５】
前記シミュレート・ステップが、任意の内部信号変化を有する提供されたモデル内のすべての回路をシミュレートする回路モデル・ソフトウェア・パッケージによって実行され、前記使用不可ステップが、前記アレイ設計の前記非エッジ・セルでワード線入力をディレクティブによりオーバーライドするステップを含む、請求項１ないし４のいずれかに記載の方法。
【請求項６】
前記オーバーライド・ステップが、前記非エッジ・セルのすべてのセル・パス・トランジスタを論理的に使用不可にするディレクティブによって実行される、請求項５に記載の方法。
【請求項７】
前記アレイの特定の列で前記アレイの各行ごとにワード線到着遅延を決定するステップと、
前記アレイ内の各セルから対応する読み取り回路へのビット線遅延を決定するステップと、
前記セルのそれぞれについて前記ワード線遅延とビット線遅延を合計するステップと、
前記合計の最大結果と最小結果を検出するステップと、
前記最大遅延と最小遅延のうちの少なくとも１つが前記アレイの少なくとも１つの非エッジ行のセルに対応するかどうかを判断するステップと、
前記合計の前記最大結果と最小結果のうちの前記少なくとも１つが非エッジ行内の特定のセルに対応すると判断したことに応答して、前記非エッジ行のセルの内部シミュレーションを使用可能にし、補足トランジスタレベル・シミュレーションを介して前記非エッジ行のセルをシミュレートするステップと、
をさらに含む、請求項１に記載の方法。
【請求項８】
アレイ設計のパフォーマンスを検証するためのプログラム命令を保管するためのメモリと、前記プログラム命令を実行するためのプロセッサとを含むワークステーション・コンピュータ・システムにおいて、前記プログラム命令が、
前記アレイ設計のセルのトランジスタレベル・モデルを指定するプログラム命令と、
前記アレイ設計のレイアウトの任意の境界に沿って位置していない前記アレイ設計内の非エッジ・セルの内部シミュレーションを使用不可にするプログラム命令と、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に前記トランジスタレベル・モデルをシミュレートするプログラム命令と、
前記非エッジ・セルが前記アレイ設計内の信号線のローディングに含まれる場合に読み取りおよび書き込みタイミング値のうちの少なくとも１つを決定することによって前記パフォーマンスを検証するために前記アレイ設計の前記境界に位置するエッジ・セルのタイミング分析を実行するプログラム命令と、
を含む、ワークステーション・コンピュータ・システム。
【請求項９】
前記アレイ設計がスタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）アレイ設計であり、前記タイミング分析が読み取り遅延と書き込みサイクル時間のうちの少なくとも１つを決定する、請求項８に記載のワークステーション・コンピュータ・システム。
【請求項１０】
コンピュータ・システムにロードされ、そこで実行されたときに、請求項１ないし７のいずれかに記載の方法の前記ステップのすべてを前記コンピュータ・システムに実行させるコンピュータ・プログラム。
【国際調査報告】
2009533737.tif 000008
2009533737.tif 000009