(57)【要約】フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブルなロジックデバイス（ＰＬＤ）のために専用ブロックランダムアクセスメモリ（ＲＡＭ）を提供する。ブロックＲＡＭは、メモリセルアレイと、メモリセルアレイにアクセスするための複数の書込モードのうちの１つを選択するよう構成され得る制御ロジックとを含む。一実施例において、書込モードは、ライトバックを伴なう書込モード、ライトバックなしの書込モード、および読出後書込モードを含む。制御ロジックは、ＰＬＤの、対応する構成メモリセルに記憶された構成ビットに応答して書込モードを選択する。構成ビットはＰＬＤの構成中にプログラムされる。一変更例において、制御ロジックはユーザ信号に応答して書込モードを選択する。特定の実施例において、ブロックＲＡＭは、第１のポートと第２のポートとを有するデュアルポートメモリである。この実施例において、第１および第２のポートは、異なった（または同じ）書込モードを有するよう個別に構成され得る。第１および第２のポートの幅もまた個別に構成され得る。
2004522238.tif 000002
【特許請求の範囲】
【請求項１】
プログラマブルなロジックデバイス上に置かれた専用ブロックランダムアクセスメモリ（ＲＡＭ）であって、
メモリセルアレイと、
前記メモリセルアレイにアクセスするための複数の書込モードのうちの１つを選択するよう構成され得る制御ロジックとを含む、ブロックＲＡＭ。
【請求項２】
前記書込モードは、ライトバックを伴なう書込モード、ライトバックなしの書込モード、および読出後書込モードを含む、請求項１に記載の専用ブロックＲＡＭ。
【請求項３】
前記メモリセルアレイは、マルチポートのメモリセルのアレイを含み、各々が第１のポートと第２のポートとを有する、請求項１に記載の専用ブロックＲＡＭ。
【請求項４】
前記制御ロジックは、前記書込モードのうちの１つを選択するようプログラムされる構成メモリセルを含む、請求項１に記載の専用ブロックＲＡＭ。
【請求項５】
プログラマブルなロジックデバイス上に置かれた専用ブロックランダムアクセスメモリ（ＲＡＭ）、すなわち、ブロックＲＡＭを動作する方法であって、
１つ以上の対応する構成ビットを記憶するよう１つ以上の構成メモリセルをプログラムするステップと、
前記１つ以上の構成ビットに応答して、複数の予め定められた書込モードから１つの書込モードを選択するステップと、
前記選択された書込モードに応答して、前記ブロックＲＡＭを動作するステップとを含む、方法。
【請求項６】
前記ブロックＲＡＭは第１のポートと第２のポートとを有するマルチポートメモリであり、前記方法は、
前記１つ以上の構成ビットに応答して、前記第１のポートに対する第１の書込モードを選択するステップと、
前記第１の書込モードに従い、前記ブロックＲＡＭの前記第１のポートを動作するステップと、
前記１つ以上の構成ビットに応答して、前記第２のポートに対する第２の書込モードを選択するステップと、
前記第２の書込モードに従い、前記ブロックＲＡＭの前記第２のポートを動作するステップとをさらに含む、請求項５に記載の方法。
【請求項７】
プログラマブルなロジックデバイス上に置かれた専用ブロックランダムアクセスメモリ（ＲＡＭ）、すなわち、ブロックＲＡＭを動作する方法であって、
前記ブロックＲＡＭに１つ以上のユーザ信号を与えるステップと、
前記１つ以上のユーザ信号に応答して、複数の予め定められた書込モードから１つの書込モードを選択するステップと、
前記選択された書込モードに応答して、前記ブロックＲＡＭを動作するステップとを含む、方法。
【請求項８】
前記ブロックＲＡＭは第１のポートと第２のポートとを有するマルチポートメモリであり、前記方法は、
前記１つ以上のユーザ信号に応答して、前記第１のポートに対する第１の書込モードを選択するステップと、
前記第１の書込モードに従い、前記ブロックＲＡＭの前記第１のポートを動作するステップと、
前記１つ以上のユーザ信号に応答して、前記第２のポートに対する第２の書込モードを選択するステップと、
前記第２の書込モードに従い、前記ブロックＲＡＭの前記第２のポートを動作するステップとを含む、方法。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）等のプログラマブルなロジックデバイス上に置かれた専用ブロックランダムアクセスメモリ（ＲＡＭ）に関する。
【０００２】
【関連技術】
ＦＰＧＡは、典型的に、構成可能なロジックブロック（ＣＬＢ）、入力／出力ブロック（ＩＯＢ）、およびＣＬＢとＩＯＢとの間に延びるプログラマブルな相互接続回路のアレイを含む。ＦＰＧＡの中には、ＣＬＢの列と列との間に置かれたブロックＲＡＭの専用列を含むものがある。このようなブロックＲＡＭは、比較的高密度のメモリを提供する。ブロックＲＡＭのない場合、適切な態様でＣＬＢを構成することによってメモリを提供することができる。しかしながら、小さなメモリを設けるために比較的多数のＣＬＢが必要とされ、それにより、結果的にＦＰＧＡのリソースを非効率的に用いてしまう。ブロックＲＡＭを含むＦＰＧＡは、米国特許第５，９３３，０２３号に記載されている。
【０００３】
上で特定されたＦＰＧＡ内に存在するブロックＲＡＭは、単一書込モードを有するデュアルポートブロックＲＡＭである。データ値がメモリセルに書込まれると、そのデータ値はブロックＲＡＭの出力として現われる。この書込モードを「ライトバックを伴なう書込」モードと称する。ライトバックを伴なう書込モードは有用であるが、従来のＦＰＧＡのデュアルポートブロックＲＡＭは不利益にも単一の書込モードに制限されてきた。複数の書込モードを設けることにより、ユーザに対し、ユーザのアプリケーションの必要性に応じた柔軟性が、有利にもより多くもたらされるであろう。
【０００４】
したがって、複数の選択可能な書込モードを備えたデュアルポートブロックＲＡＭを有することが望ましいであろう。
【０００５】
【概要】
したがって、この発明は、複数の選択可能な書込モードを有するブロックＲＡＭを含むＦＰＧＡを提供する。ブロックＲＡＭは、メモリセルアレイと、メモリセルアレイにアクセスするための複数の書込モードのうちの１つを選択するよう構成され得る制御ロジックとを含む。一実施例において、書込モードは、ライトバックを伴なう書込モード、ライトバックなしの書込モード、および読出後書込モードを含む。制御ロジックは、ＦＰＧＡの、対応する構成メモリセルに記憶された構成ビットに応答して書込モードを選択する。構成ビットは、典型的に、ＰＬＤの構成中にプログラムされる。
【０００６】
特定の実施例において、ブロックＲＡＭは、第１のポートと第２のポートとを有するデュアルポートメモリである。この実施例において、第１および第２のポートは、異なった（または同じ）書込モードを有するよう個別に構成され得る。第１および第２のポートの幅もまた、個別に構成され得る。
【０００７】
この発明は、以下の説明および図面を参照されるとより完全に理解されるであろう。
【０００８】
【詳細な説明】
図１は、この発明の一実施例に従った、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）１００の、ＩＯＢ、ＣＬＢ、ブロックＲＡＭ、および汎用相互接続回路の全体のレイアウトを示すブロック図である。ＩＯＢ１０１等のＩＯＢはＦＰＧＡの周辺に置かれ、文字「ＩＯＢ」が付されている。ＣＬＢ１０２等のＣＬＢには、文字「Ｌ」が付されている。ブロックＲＡＭ１０３等のブロックＲＡＭには、文字「ＢＲＡＭ」が付されている。ＩＯＢ、ＣＬＢ、ブロックＲＡＭ、および構成回路をプログラマブルな態様で接続するために、汎用プログラマブル相互接続回路１０４が設けられる。示される実施例において、各ブロックＲＡＭは、４つのＣＬＢの高さに相当する高さである。他の実施例において、ブロックＲＡＭは他の高さであってよい。ブロックＲＡＭは、ＣＬＢアレイの高さを伸長する列として配置される。加えて、ブロックＲＡＭの各列は、ＣＬＢの複数の列により、隣接するブロックＲＡＭの列から分離される。このことにより、隣接するブロックＲＡＭの列と列との間に、かなりのかつ正規の量のロジックリソースが確実に存在するようになる。特定のレイアウトが示されているが、多くの他のレイアウトが可能であり、この発明の範囲内にあると考えられることが理解される。たとえば、他の実施例は、他の数のＩＯＢ、ＣＬＢ、およびブロックＲＡＭを有してよい。
【０００９】
図２は、この発明の一実施例に従った、デュアルポートブロックＲＡＭ２００を示すブロック図である。デュアルポートブロックＲＡＭ２００は、図２の下部に示される第１のポート２００Ａと、図２の上半分に示される第２のポート２００Ｂとを含む。この実施例において、ブロックＲＡＭ２００は、ブロックＲＡＭポート２００Ａおよび２００Ｂの両方によって共有されるデュアルポートＳＲＡＭセルのアレイを含む。各ブロックＲＡＭポートによって見た場合、このアレイの論理寸法は構成可能であり、他方のポートから独立して構成され得る。第１のポート２００Ａは、ＰＡビット線の対（列）およびＱＡワード線（行）からなるロジックアレイにアクセスするよう構成され得る。第２のポート２００Ｂは、ＰＢビット線の対（列）およびＱＢワード線（行）からなるロジックアレイにアクセスするよう構成され得る。表１は、この発明の一実施例に従った、ＰＡ、ＱＡ、ＰＢ、およびＱＢに対する可能な値を示す。
【００１０】
【表１】
2004522238.tif 000003
【００１１】
第１のポート２００Ａは、入力アドレス信号ＡＤＤＲ＿Ａ［ＲＡ：０］、入力データ信号ＤＩＮ＿Ａ［ＰＡ−１：０］、第１のポートイネーブル信号ＲＡＭ＿ＥＮ＿Ａ、第１のポート書込イネーブル信号ＷＥＮ＿Ａ、第１のポートリセット信号ＲＳＴ＿Ａ、および第１のポートクロック信号ＣＬＫ＿Ａを受けるための端子を含む。記号「ＲＡ」は、ｌｏｇ２ＱＡから１を引いたものに等しい整数を示す。たとえば、ＱＡが１２８に等しい（すなわち、１２８本のワード線がある）場合、ＲＡは７に等しい（すなわち、８−１）。第１のポート２００Ａはまた、出力データ信号ＤＯＵＴ＿Ａ［ＰＡ−１：０］を与えるための端子を含む。
【００１２】
第２のポート２００Ｂは、入力アドレス信号ＡＤＤＲ＿Ｂ［ＲＢ：０］、入力データ信号ＤＩＮ＿Ｂ［ＰＢ−１：０］、第２のポートイネーブル信号ＲＡＭ＿ＥＮ＿Ｂ、第２のポート書込イネーブル信号ＷＥＮ＿Ｂ、第２のポートリセット信号ＲＳＴ＿Ｂ、および第２のポートクロック信号ＣＬＫ＿Ｂを受けるための端子を含む。第２のポート２００Ｂはまた、出力データ信号ＤＯＵＴ＿Ｂ［ＰＢ−１：０］を与えるための端子を含む。
【００１３】
示された例において、第１のポート２００Ａの動作を説明する。第２のポート２００Ｂの動作は第１のポート２００Ａの動作と同一であるが、それから独立していることが理解される。また、示された例では、第１のポート２００Ａの入力および出力のデータ値は、ブロックＲＡＭ２００の幅と等しい幅を有するよう選択される。すなわち、入力および出力のデータ値の幅ＰＡは、ブロックＲＡＭ２００のメモリセルアレイ内のビット線の対の数に等しい。これにより、この発明の説明が簡素化される。しかしながら、他の実施例では、入力および出力のデータ値の幅をブロックＲＡＭ２００の幅よりも小さくすることができる。このような実施例では、データ値をブロックＲＡＭ２００との間で経路指定するために、従来の多重化および列選択回路が用いられる。
【００１４】
以下により詳細に説明されるように、各デュアルポートセルは、第１のポート２００Ａまたは第２のポート２００Ｂのいずれかを介してアクセスされ得る。また、以下により詳細に説明されるように、各ポートの書込モードは個別に選択され得る。したがって、第１のポート２００Ａを、第１の書込モードを有するよう構成することができ、第２のポート２００Ｂを、第１の書込モードとは異なる第２の書込モードを有するよう構成することができる。
【００１５】
図３は、ブロックＲＡＭ２００をより詳細に示すブロック図である。ブロックＲＡＭ２００は、デュアルポートメモリセルアレイ３０１、制御ロジック３０２、ワード線デコーダ／ドライバ回路３０３、およびデータ入力／出力（Ｉ／Ｏ）回路３０４を含む。制御ロジック３０２は、入力信号ＡＤＤＲ＿Ａ［ＲＡ：０］、ＲＡＭ＿ＥＮ＿Ａ、ＷＥＮ＿Ａ、ＲＳＴ＿Ａ、およびＣＬＫ＿Ａを第１のポート用に受け、さらに、入力信号ＡＤＤＲ＿Ｂ［ＲＢ：０］、ＲＡＭ＿ＥＮ＿Ｂ、ＷＥＮ＿Ｂ、ＲＳＴ＿Ｂ、およびＣＬＫ＿Ｂを第２のポート用に受けるよう結合される。
【００１６】
第１のポートのワード線ＷＬ＿Ａ［ＱＡ−１：０］および第２のポートのワード線ＷＬ＿Ｂ［ＱＢ−１：０］は、メモリセルアレイ３０１全体を縦方向に走る。ワード線ＷＬ＿Ａ［ＱＡ−１：０］およびＷＬ＿Ｂ［ＱＢ−１：０］は、ワード線デコーダ／ドライバ３０３によって制御される。
【００１７】
第１のポートのビット線の対ＢＬ＿Ａ［ＰＡ−１：０］および第２のポートのビット線の対ＢＬ＿Ｂ［ＰＢ−１：０］は、メモリセルアレイ３０１全体を横方向に走る。ビット線の対ＢＬ＿Ａ［ＰＡ−１：０］およびＢＬ＿Ｂ［ＰＢ−１：０］は、示されるように、データＩ／Ｏ回路３０４に結合される。
【００１８】
データＩ／Ｏ回路３０４は、以下に示される態様で、制御ロジック３０２の制御下で、入力データ値ＤＩＮ＿Ａ［ＰＡ−１：０］およびＤＩＮ＿Ｂ［ＰＢ−１：０］をメモリセルアレイ３０１に経路指定し、出力データ値ＤＯＵＴ＿Ａ［ＰＡ−１：０］およびＤＯＵＴ＿Ｂ［ＰＢ−１：０］をメモリセルアレイ３０１から経路指定する。
【００１９】
図４は、メモリセルアレイ３０１内のデュアルポートＳＲＡＭメモリセル４００と、データＩ／Ｏ回路３０４内の関連するＩ／Ｏブロック４５１〜４５２との回路図である。メモリセルアレイ３０１内のビット線の対の各々は、データＩ／Ｏ回路３０４内の関連するＩ／Ｏブロックに結合される。Ｉ／Ｏブロック４５１はメモリセル４００の第１のポートのビット線に結合され、Ｉ／Ｏブロック４５２はメモリセル４００の第２のポートのビット線に結合される。Ｉ／Ｏブロック４５１と４５２とは同一の回路を含むため、Ｉ／Ｏブロック４５１のみを詳細に説明する。図４に示されるように、Ｉ／Ｏブロック４５１および４５２は、同様の信号に応答して動作する。
【００２０】
デュアルポートＳＲＡＭセル４００は、ｐチャネルプルアップトランジスタ４０１〜４０２、ｎチャネルプルダウントランジスタ４０３〜４０４、およびｎチャネルアクセストランジスタ４０５〜４０８を含む。トランジスタ４０１〜４０４は、論理ハイまたは論理ローのデータ値を記憶する、交差結合されたラッチを形成するよう構成される。
【００２１】
ＳＲＡＭセル４００の第１のポートにおいて、アクセストランジスタ４０５および４０６のドレインは、記憶ノードＮ１およびＮ２にそれぞれ結合される。アクセストランジスタ４０５〜４０６のゲートはワード線ＷＬ＿Ａ［ＮＡ］に結合され、この場合、ＮＡは、両端を含む、０とＱＡとの間の整数である。アクセストランジスタ４０５〜４０６のソースは相補的なビット線の対ＢＬ＿Ａ［ＭＡ］に結合され、この場合、ＭＡは、両端を含む、０とＰＡとの間の整数である。
【００２２】
ＳＲＡＭセル４００の第２のポートにおいて、アクセストランジスタ４０７および４０８のドレインは、記憶ノードＮ１およびＮ２にそれぞれ結合される。アクセストランジスタ４０７〜４０８のゲートはワード線ＷＬ＿Ｂ［ＮＢ］に結合され、この場合、ＮＢは、両端を含む、０とＱＢとの間の整数である。アクセストランジスタ４０７〜４０８のソースは相補的なビット線の対ＢＬ＿Ｂ［ＭＢ］に結合され、この場合、ＭＢは、両端を含む、０とＰＢとの間の整数である。
【００２３】
第１のポートＩ／Ｏブロック４５１は、ｐチャネルビット線等価トランジスタ４１０、ｐチャネルプリチャージトランジスタ４１１〜４１２、インバータ４１３、ｐチャネルビット線選択トランジスタ４２１〜４２２、センスアンプ４２０、データラッチ４３０、トライステート書込バッファ４４１〜４４２、およびインバータ４６１を含む。
【００２４】
ビット線等価トランジスタ４１０は、相補的なビット線の対ＢＬ＿Ａ［ＭＡ］のビット線ＢＬとＢＬ♯との間に接続される。プリチャージトランジスタ４１１〜４１２は、それぞれビット線ＢＬおよびＢＬ♯と、ＶＣＣ電圧源端子との間に接続される。トランジスタ４１０〜４１２のゲートは、インバータ４１３からビット線プリチャージ信号（ＢＬ＿ＰＣ＿Ａ）を反転したものを受けるよう結合される。ビット線プリチャージ信号ＢＬ＿ＰＣ＿Ａは、制御ロジック３０２（図３）によって与えられる。
【００２５】
ビット線選択トランジスタ４２１および４２２は、相補的なビット線の対ＢＬ＿Ａ［ＭＡ］のビット線ＢＬおよびＢＬ♯に、それぞれ直列に接続される。ビット線選択トランジスタ４２１および４２２のゲートは、制御ロジック３０２（図３）によって与えられたセンスアンプイネーブル信号（ＳＥＮＳＥ＿Ａ）を受けるよう結合される。
【００２６】
センスアンプ４２０もまた、制御ロジック３０２からセンスアンプイネーブル信号ＳＥＮＳＥ＿Ａを受けるよう結合される。ＳＥＮＳＥ＿Ａ信号がハイにアサートされると、センスアンプ４２０はイネーブルにされる。センスアンプ４２０の差動入力端子は、選択トランジスタ４２１〜４２２を介し、ビット線の対ＢＬ＿Ａ［ＭＡ］のビット線ＢＬおよびＢＬ♯に結合される。以下により詳細に説明されるように、センスアンプ４２０は、出力信号（ＤＯ＿Ａ［ＭＡ］）をその出力端子に与える。
【００２７】
センスアンプ４２０の出力端子は、データラッチ４３０の入力端子に結合される。データラッチ４３０は、制御ロジック３０２によって与えられるＧＡＴＥ＿ＤＯＵＴ＿Ａ制御信号に応答して、センスアンプ４２０によって与えられたＤＯ＿Ａ［ＭＡ］信号をラッチする。データラッチ４３０によって記憶された信号は、データ出力信号ＤＯＵＴ＿Ａ［ＭＡ］として与えられる。
【００２８】
トライステート書込データバッファ４４１〜４４２は、データ入力信号ＤＩＮ＿Ａ［ＭＡ］と、その相補信号のデータ入力信号ＤＩＮ＿Ａ♯［ＭＡ］とをそれぞれ受けるよう結合され、この場合、ＭＡは、両端を含む、０とＰＡとの間の整数である。インバータ４６１は、データ入力信号ＤＩＮ＿Ａ［ＭＡ］に応答して、その相補信号のデータ入力信号ＤＩＮ＿Ａ♯［ＭＡ］を与える。トライステート書込データバッファ４４１〜４４２は、制御回路３０２によって与えられる書込制御信号ＷＡ＿ＢＬに応答して、イネーブルまたはディスエーブルにされる。
【００２９】
この発明の一実施例によると、ブロックＲＡＭ２００の各ポートは、個別のかつプログラマブルな３つの書込モードのうちの１つで他のポートから独立して動作するよう制御され得る。３つの書込モードのうちの１つは、制御ロジック３０２を適切な態様でプログラムすることによって選択される。示される実施例において、このプログラミングは、ＦＰＧＡ１００の構成中に行なわれる。別の実施例では、このプログラミングをＦＰＧＡ１００の構成後にユーザの信号によって行なうことができる。これらの３つの書込モードは、１）ライトバックを伴なう書込モード、２）ライトバックなしの書込モード、および３）読出後書込モードである。３つの書込モードのすべてを設けることにより、ユーザに対し、ユーザのアプリケーションの必要性に応じた柔軟性が、有利にもより多くもたらされる。３つの書込モード（および１つの読出モード）を、デュアルポートＳＲＡＭセル４００およびＩ／Ｏブロック４５１とともに説明する。
【００３０】
図５は、メモリセル４００の読出アクセスを示す波形図である。読出アクセスを行なうために、ＲＳＴ＿Ａ信号がローにデアサートされなければならない。ＢＬ＿ＰＣ＿Ａ信号がハイにアサートされ、それにより、トランジスタ４１０〜４１２をオンにする。これらの状態下で、ビット線ＢＬおよびＢＬ♯がＶＣＣ電源電圧までプリチャージされる。ＳＥＮＳＥ＿Ａ信号がローにデアサートされ、それにより、ビット線選択トランジスタ４２１〜４２２をオンにし、センスアンプ４２０をディスエーブルにする。
【００３１】
ＲＡＭ＿ＥＮ＿Ａ信号がアサートされ、それにより、制御ロジック３０２に対し、ブロックＲＡＭ２００の第１のポートをイネーブルにするよう命令する。ＷＥＮ＿Ａ信号はローの値を有し、それにより、その時点のアクセスが読出アクセスであることを示す。アクセスされるべきＳＲＡＭセル（ＳＲＡＭセル４００を含む）を特定するアドレスＡＤＤＲ＿Ａ［ＲＡ：０］もまた、制御ロジック３０２に与えられる。制御ロジック３０２は、アドレスＡＤＤＲ＿Ａ［ＲＡ：０］の値をワード線デコーダ／ドライバ３０３に与える。
【００３２】
ＣＬＫ＿Ａ信号の次の立上がり端に応答して、制御ロジック３０２はアクセス制御信号（ＡＣＣＥＳＳ＿Ａ）を論理ハイの値にアサートする。ＡＣＣＥＳＳ＿Ａ信号の立上がり端に応答して、制御ロジック３０２はビット線プリチャージ信号（ＢＬ＿ＰＣ＿Ａ）を論理ローの値にデアサートする。また、アサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はワード線イネーブル信号ＷＬＥＮ＿Ａをアサートする。ＷＬＥＮ＿Ａ信号がアサートされることにより、ワード線デコーダ／ドライバ３０３はアドレス信号ＡＤＤＲ＿Ａ［ＲＡ：０］に応答して、ワード線信号ＷＬ＿Ａ［ＱＡ−１：０］のうちの１つをアサートすることができる。したがって、アサートされたＷＬＥＮ＿Ａ信号に応答して、ワード線デコーダ／ドライバ３０３はワード線信号ＷＬ＿Ａ［ＮＡ］を論理ハイの値にアサートし、この場合、ＮＡはアドレスＡＤＤＲ＿Ａ［ＲＡ：０］によって特定される。
【００３３】
ビット線等価トランジスタ４１０およびプリチャージトランジスタ４１１〜４１２は、ローのＢＬ＿ＰＣ＿Ａ信号に応答してオフにされ、それにより、プリチャージされたビット線ＢＬおよびＢＬ♯を切断する。論理ハイのＷＬ＿Ａ［ＮＡ］信号により、アクセストランジスタ４０５および４０６はオンにされ、それにより、メモリセル４００の記憶ノードＮ１およびＮ２がビット線ＢＬおよびＢＬ♯に結合される。この時点で、メモリセル４００に記憶されたデータ値を示す小さな差動電圧が、ビット線ＢＬおよびＢＬ♯の間に加え、センスアンプ４２０の差動入力端子間に、（オンにされたビット線選択トランジスタ４２１および４２２を介して）生じ始める。
【００３４】
ビット線ＢＬおよびＢＬ♯間の差動電圧が、センスアンプ４２０によって確実に検出されるよう十分に大きなものとなるように選択された、第１の予め定められた遅延（ｄ１）の後に、制御ロジック３０２はＳＥＮＳＥ＿Ａ信号を論理ハイの値にアサートし、それにより、センスアンプ４２０をイネーブルにする。その結果、センスアンプ４２０は、その差動入力端子間に生じた差動電圧を、論理「０」または論理「１」の値を有する出力信号ＤＯ＿Ａ［ＭＡ］に分解する。それと同時に、ハイのＳＥＮＳＥ＿Ａ信号は列選択トランジスタ４２１〜４２２をオフにし、それにより、センスアンプ４２０はビット線ＢＬおよびＢＬ♯から結合を解かれて、速やかな分解が可能になる。
【００３５】
制御ロジック３０２はまた、第１の予め定められた遅延ｄ１の後に、ＷＬＥＮ＿Ａ信号をデアサートする。それに応答して、ワード線デコーダ／ドライバ３０３はワード線信号ＷＬ＿Ａ［ＮＡ］をデアサートし、それにより、アクセストランジスタ４０５〜４０６をオフにする。加えて、制御ロジック３０２は、第１の予め定められた遅延ｄ１の後にＢＬ＿ＰＣ＿Ａ信号をハイにアサートし、それにより、等価トランジスタ４１０およびプリチャージトランジスタ４１１〜４１２をオンにする。その結果、ビット線ＢＬおよびＢＬ♯上の電圧は、後のアクセスに備えてプリチャージされ、イコライズされる。
【００３６】
センスアンプ４２０によって与えられたＤＯ＿Ａ［ＭＡ］信号がデータラッチ４３０に伝搬され得るよう選択された、第２の予め定められた遅延ｄ２の後に、制御ロジック３０２は、別のアクセス制御信号（ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ）を論理ハイの値にアサートする。アサートされたＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、制御ロジック３０２は、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号を論理ハイの値にアサートする。アサートされたＧＡＴＥ＿ＤＯＵＴ＿Ａ信号に応答して、データラッチ４３０は、センスアンプ４２０によって与えられたＤＯ＿Ａ［ＭＡ］をラッチする。その結果、データラッチ４３０は、メモリセル４００から読出されたデータ値を出力データ値ＤＯＵＴ＿Ａ［ＭＡ］として与える。
【００３７】
制御ロジック３０２はまた、ハイのＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、ＡＣＣＥＳＳ＿Ａ信号を論理ローの値にデアサートする。デアサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はＳＥＮＳＥ＿Ａ信号を（ローに）デアサートし、それにより、センスアンプ４２０をディスエーブルにし、ビット線選択トランジスタ４２１〜４２２をオンにする。オンにされたトランジスタ４２１〜４２２は、次のアクセスに備え、プリチャージされたビット線ＢＬおよびＢＬ♯をセンスアンプ４２０に結合する。デアサートされたＳＥＮＳＥ＿Ａ信号に応答して、制御ロジック３０２はＧＡＴＥ＿ＤＯＵＴ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号を論理ローの値にデアサートし、それにより、読出動作を完了する。ＷＡ＿ＢＬ信号は読出動作全体にわたってローである。
【００３８】
図６は、入力データバス（ＤＩＮ＿Ａ）からの値を出力データバス（ＤＯＵＴ＿Ａ）において出現させる第１の書込モード、すなわち、ライトバックを伴なう書込モードを示す波形図である。ライトバックを伴なう書込動作が上述の読出動作（図５）と同様であり、ライトバックを伴なう書込動作中に書込制御信号ＷＡ＿ＢＬがアサートされることに注目されたい。ライトバックを伴なう書込動作は、多くのＳＲＡＭ集積回路チップの動作に類似する。メモリセル４００に対する、ライトバックを伴なう書込動作は以下のように行なわれる。
【００３９】
ＲＳＴ＿Ａ信号がライトバックを伴なう書込アクセス中にデアサートされる。ＢＬ＿ＰＣ＿Ａ信号がハイにアサートされ、それにより、トランジスタ４１０〜４１２をオンにする。これらの状態下で、ビット線ＢＬおよびＢＬ♯がＶＣＣ電源電圧までプリチャージされる。ＳＥＮＳＥ＿Ａ信号がローにデアサートされ、それにより、ビット線選択トランジスタ４２１〜４２２をオンにし、センスアンプ４２０をディスエーブルにする。
【００４０】
ＲＡＭ＿ＥＮ＿Ａ信号がアサートされ、それにより、制御ロジック３０２に対し、ブロックＲＡＭ２００の第１のポートをイネーブルにするよう命令する。書込イネーブル信号ＷＥＮ＿Ａもまたアサートされ、それにより、制御ロジック３０２に対し、その時点の第１のポートへのアクセスが書込アクセスであることを示す。書込まれるべきＳＲＡＭセル（ＳＲＡＭセル４００を含む）を特定するアドレスＡＤＤＲ＿Ａ［ＲＡ：０］もまた制御ロジック３０２に与えられる。制御ロジック３０２は、アドレスＡＤＤＲ＿Ａ［ＲＡ：０］の値をワード線デコーダ／ドライバ３０３に与える。メモリセル４００に書込まれるべきデータ値ＤＩＮ＿Ａ［ＭＡ］がデータＩ／Ｏブロック４５１に与えられる。データ値ＤＩＮ＿Ａ［ＭＡ］およびその相補値ＤＩＮ＿Ａ♯［ＭＡ］は、トライステートバッファ４４１〜４４２にそれぞれ経路指定される。
【００４１】
ＣＬＫ＿Ａ信号の次の立上がり端に応答して、制御ロジック３０２はＡＣＣＥＳＳ＿Ａ信号を論理ハイの値にアサートする。ＡＣＣＥＳＳ＿Ａ信号の立上がり端に応答して、制御ロジック３０２はビット線プリチャージ信号（ＢＬ＿ＰＣ＿Ａ）を論理ローの値にデアサートする。また、アサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はワード線イネーブル信号ＷＬＥＮ＿Ａをアサートし、それにより、ワード線デコーダ／ドライバ３０３は、アドレス信号ＡＤＤＲ＿Ａ［ＲＡ：０］に応答して、ワード線信号ＷＬ＿Ａ［ＱＡ−１：０］のうちの１つをアサートすることができる。したがって、アサートされたＷＬＥＮ＿Ａ信号に応答して、ワード線デコーダ／ドライバ３０３はワード線信号ＷＬ＿Ａ［ＮＡ］を論理ハイの値にアサートし、この場合、ＮＡはアドレスＡＤＤＲ＿Ａ［ＲＡ：０］によって特定される。これらのステップは、読出動作に関し、上述のステップと同様である。
【００４２】
ビット線等価トランジスタ４１０およびプリチャージトランジスタ４１１〜４１２は、ローのＢＬ＿ＰＣ＿Ａ信号に応答してオフにされ、それにより、プリチャージされたビット線ＢＬおよびＢＬ♯を切断する。論理ハイのＷＬ＿Ａ［ＮＡ］信号により、アクセストランジスタ４０５および４０６はオンにされ、したがって、メモリセル４００の記憶ノードＮ１およびＮ２がビット線ＢＬおよびＢＬ♯に結合される。
【００４３】
ＷＬＥＮ＿Ａ信号の立上がり端に応答して、制御ロジック３０２はＷＡ＿ＢＬ信号を論理ハイの値にアサートし、それにより、トライステートバッファ４４１〜４４２をイネーブルにする。それに応答して、トライステートバッファ４４１〜４４２は、書込データ値ＤＩＮ＿Ａ［ＭＡ］およびその相補値ＤＩＮ＿Ａ［ＭＡ］をビット線ＢＬおよびＢＬ♯上に駆動する。ビット線ＢＬおよびＢＬ♯上の書込データ信号は、オンにされたアクセストランジスタ４０５〜４０６を介して送信され、トランジスタ４０１〜４０４によって形成された、交差結合されたラッチに与えられる。その結果、データ値ＤＩＮ＿Ａ［ＭＡ］はメモリセル４００に書込まれる。
【００４４】
第１の予め定められた遅延ｄ１の後に、センスアンプイネーブル信号（ＳＥＮＳＥ＿Ａ）はハイにアサートされ、センスアンプ４２０をイネーブルにする。その結果、センスアンプ４２０の入力端子間に発生したデータ値ＤＩＮ＿Ａ［ＭＡ］はセンスアンプ４２０によって分解され、それにより、論理「０」または論理「１」の値を有する信号ＤＯ＿Ａ［ＭＡ］を与える。それと同時に、ハイのＳＥＮＳＥ＿Ａ信号は列選択トランジスタ４２１〜４２２をオフにし、それにより、センスアンプ４２０はビット線ＢＬおよびＢＬ♯から結合を解かれる。
【００４５】
第１の予め定められた遅延ｄ１の後に、ＷＬＥＮ＿Ａ信号がローにデアサートされる。ローのＷＬＥＮ＿Ａ信号に応答して、ＷＬ＿Ａ［ＮＡ］信号はデアサートされ、それにより、アクセストランジスタ４０５〜４０６をオフにする。ＷＡ＿ＢＬ信号もまた、ローのＷＬＥＮ＿Ａ信号に応答してローにデアサートされ、それにより、トライステートバッファ４４１〜４４２をディスエーブルにする。
【００４６】
加えて、第１の予め定められた遅延ｄ１の後に、ＢＬ＿ＰＣ＿Ａ信号がハイにアサートされ、それにより、等価トランジスタ４１０およびプリチャージトランジスタ４１１〜４１２をオンにし、それにより、ビット線ＢＬおよびＢＬ♯上の電圧をプリチャージしてイコライズする。
【００４７】
第２の予め定められた遅延ｄ２の後に、制御ロジック３０２はＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号を論理ハイの値にアサートする。アサートされたＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、制御ロジック３０２はＧＡＴＥ＿ＤＯＵＴ＿Ａ信号を論理ハイの値にアサートする。それに応答して、データラッチ４３０はセンスアンプ４２０によって与えられたＤＯ＿Ａ［ＭＡ］信号をラッチする。ＤＯ＿Ａ［ＭＡ］信号が、ＳＲＡＭセル４００に書込まれたＤＩＮ＿Ａ［ＭＡ］信号と同じであることに注目されたい。その結果、データラッチ４３０は、メモリセル４００に書込まれたデータ値を出力データ値ＤＯＵＴ＿Ａ［ＭＡ］として与える。これをライトバックを伴なう書込動作と称する。
【００４８】
制御ロジック３０２はまた、ハイのＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、ＡＣＣＥＳＳ＿Ａ信号を論理ローの値にデアサートする。デアサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はＳＥＮＳＥ＿Ａ信号を（ローに）デアサートし、それにより、センスアンプ４２０をディスエーブルにし、ビット線選択トランジスタ４２１〜４２２をオンにする。オンにされたトランジスタ４２１〜４２２は、次のアクセスに備え、プリチャージされたビット線ＢＬおよびＢＬ♯をセンスアンプ４２０に結合する。デアサートされたＳＥＮＳＥ＿Ａ信号に応答して、制御ロジック３０２はＧＡＴＥ＿ＤＯＵＴ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号を論理ローの値にデアサートし、それにより、ライトバックを伴なう書込動作を完了する。
【００４９】
図７は、入力データバス（ＤＩＮ＿Ａ）からの値が書込まれても出力データバス（ＤＯＵＴ＿Ａ）が不変である第２の書込モード、すなわちライトバックなしの書込モードを示す波形図である。ライトバックなしの書込動作が、ライトバックを伴なう書込動作（図６）と同様の態様で行なわれることに注目されたい。２つの動作間の唯一の違いとは、制御ロジック３０２がライトバックなしの書込動作中にＧＡＴＥ＿ＤＯＵＴ＿Ａ信号をアサートしないことである。その結果、メモリセル４００に書込まれたデータ値ＤＩＮ＿Ａ［ＭＡ］は、データラッチ４３０内に転送されない。したがって、データラッチ４３０に記憶された前の値が出力信号ＤＯＵＴ＿Ａ［ＭＡ］として与えられ続ける。
【００５０】
図８は、メモリセルに記憶された値が、入力データバス（ＤＩＮ＿Ａ）からの値がメモリセルに書込まれる前に出力データバス（ＤＯＵＴ＿Ａ）にコピーされるようにする第３の書込モード、すなわち、読出後書込モードを示す波形図である。メモリセル４００への読出後書込動作は以下のように行なわれる。
【００５１】
読出後書込動作は読出動作と同じ態様で始まる。したがって、ＲＳＴ＿Ａ信号は論理ローの値を有する。ＢＬ＿ＰＣ＿Ａ信号がハイにアサートされ、それにより、トランジスタ４１０〜４１２をオンにし、ビット線ＢＬおよびＢＬ♯をＶＣＣ電源電圧までプリチャージする。ＳＥＮＳＥ＿Ａ信号がローにデアサートされ、それにより、ビット線選択トランジスタ４２１〜４２２をオンにし、センスアンプ４２０をディスエーブルにする。その後、ＲＡＭ＿ＥＮ＿Ａ信号がアサートされ、それにより、ブロックＲＡＭ２００の第１のポートをイネーブルにする。書込イネーブル信号ＷＥＮ＿Ａもまたアサートされ、それにより、その時点のアクセスが書込アクセスであることを示す。アクセスされるべきＳＲＡＭセル（ＳＲＡＭセル４００を含む）を特定するアドレスＡＤＤＲ＿Ａ［ＲＡ：０］もまた制御ロジック３０２に与えられ、その結果、制御ロジック３０２は、アドレスＡＤＤＲ＿Ａ［ＲＡ：０］の値をワード線デコーダ／ドライバ３０３に与える。書込データ値ＤＩＮ＿Ａ［ＭＡ］およびその相補値ＤＩＮ＿Ａ♯［ＭＡ］は、データＩ／Ｏブロック４５１内のトライステートバッファ４４１〜４４２にそれぞれ与えられる。しかしながら、トライステートバッファ４４１〜４４２は、この時点でイネーブルにされていない。
【００５２】
ＣＬＫ＿Ａ信号の次の立上がり端に応答して、制御ロジック３０２はＡＣＣＥＳＳ＿Ａ信号を論理ハイの値にアサートする。ＡＣＣＥＳＳ＿Ａ信号の立上がり端に応答して、制御ロジック３０２はビット線プリチャージ信号（ＢＬ＿ＰＣ＿Ａ）を論理ローの値にデアサートする。また、アサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はワード線イネーブル信号ＷＬＥＮ＿Ａをアサートする。アサートされたＷＬＥＮ＿Ａ信号に応答して、ワード線デコーダ／ドライバ３０３はワード線信号ＷＬ＿Ａ［ＮＡ］を論理ハイの値にアサートし、この場合、ＮＡはアドレスＡＤＤＲ＿Ａ［ＲＡ：０］によって特定される。
【００５３】
ビット線等価トランジスタ４１０およびプリチャージトランジスタ４１１〜４１２は、ローのＢＬ＿ＰＣ＿Ａ信号に応答してオフにされ、それにより、プリチャージされたビット線ＢＬおよびＢＬ♯を切断する。論理ハイのＷＬ＿Ａ［ＮＡ］信号により、アクセストランジスタ４０５および４０６はオンにされ、それにより、メモリセル４００の記憶ノードＮ１およびＮ２をビット線ＢＬおよびＢＬ♯に結合する。この時点で、メモリセル４００に記憶されたデータ値を示す小さな差動電圧が、ビット線ＢＬおよびＢＬ♯の間に加え、センスアンプ４２０の差動入力端子間に（オンにされたビット線選択トランジスタ４２１および４２２を介して）生じ始める。
【００５４】
第１の予め定められた遅延ｄ１の後に、制御ロジック３０２はＳＥＮＳＥ＿Ａ信号を論理ハイの値にアサートし、それにより、センスアンプ４２０をイネーブルにする。その結果、センスアンプ４２０は、その差動入力端子間に生じた差動電圧を、論理「０」または論理「１」の値を有する出力信号ＤＯ＿Ａ［ＭＡ］に分解する。したがって、センスアンプ４２０によって分解された値は、メモリセル４００から読出されたデータ信号に対応する。それと同時に、ハイのＳＥＮＳＥ＿Ａ信号は列選択トランジスタ４２１〜４２２をオフにし、それにより、センスアンプ４２０はビット線ＢＬおよびＢＬ♯から結合を解かれる。センスアンプ４２０は、トライステートバッファ４４１〜４４２が後にオンにされて書込データ信号をビット線ＢＬおよびＢＬ♯上に駆動する前に、ビット線ＢＬおよびＢＬ♯から分離されなければならない。トライステートバッファ４２１〜４２２がオンにされてもセンスアンプ４２０がビット線ＢＬおよびＢＬ♯に結合されたままであると、書込データ信号が、メモリセル４００から読出されているデータ信号を圧倒してしまうことになる。
【００５５】
ＳＥＮＳＥ＿Ａ信号の立上がり端に応答して、制御ロジック３０２はＷＡ＿ＢＬ信号を論理ハイの値にアサートし、それにより、トライステートバッファ４４１〜４４２をイネーブルにする。これに応答して、トライステートバッファ４４１〜４４２は、データ信号ＤＩＮ＿Ａ［ＭＡ］およびその相補信号ＤＩＮ＿Ａ♯［ＭＡ］をビット線ＢＬおよびＢＬ♯上に駆動する。ビット線ＢＬおよびＢＬ♯上の書込データ信号は、オンにされたアクセストランジスタ４０５〜４０６を介して送信されて、トランジスタ４０１〜４０４によって形成された、交差結合されたラッチに与えられる。その結果、データ信号ＤＩＮ＿Ａ［ＭＡ］はメモリセル４００に書込まれる。
【００５６】
第２の予め定められた遅延ｄ２の後に、制御ロジック３０２はＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号を論理ハイの値にアサートする。アサートされたＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、制御ロジック３０２はＧＡＴＥ＿ＤＯＵＴ＿Ａ信号を論理ハイの値にアサートする。それに応答して、データラッチ４３０はセンスアンプ４２０によって与えられたＤＯ＿Ａ［ＭＡ］信号をラッチする。ＤＯ＿Ａ［ＭＡ］信号が、アクセスの始めにおいてＳＲＡＭセル４００から読出された信号と同じであることに注目されたい。その結果、データラッチ４３０は、メモリセル４００から最初に読出されたデータ値を出力データ値ＤＯＵＴ＿Ａ［ＭＡ］として与える。これを読出後書込動作と称する。
【００５７】
制御ロジック３０２はまた、ハイのＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号に応答して、ＡＣＣＥＳＳ＿Ａ信号を論理ローの値にデアサートする。デアサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、制御ロジック３０２はＷＬＥＮ＿Ａ信号をデアサートし、その結果、ＷＬ＿Ａ［ＮＡ］信号がデアサートされ、それにより、アクセストランジスタ４０５〜４０６がオフになる。制御ロジック３０２はまた、デアサートされたＡＣＣＥＳＳ＿Ａ信号に応答して、ＢＬ＿ＰＣ＿Ａ信号をアサートし、それにより、トランジスタ４１０〜４１２をオンにして、次のアクセスに備え、ビット線ＢＬおよびＢＬ♯上の電圧をプリチャージしてイコライズする。制御ロジック３０２はまた、デアサートされたＡＣＣＥＳＳ＿Ａ信号に応答してＳＥＮＳＥ＿Ａ信号をデアサートし、それにより、センスアンプ４２０をディスエーブルにし、トランジスタ４２１〜４２２をオンにして、ビット線ＢＬおよびＢＬ♯をセンスアンプ４２０に結合する。加えて、制御ロジック３０２は、デアサートされたＳＥＮＳＥ＿Ａ信号に応答してＷＡ＿ＢＬ信号をデアサートし、それにより、トライステートバッファ４４１〜４４２をディスエーブルにする。
【００５８】
また、デアサートされたＳＥＮＳＥ＿Ａ信号に応答して、制御ロジック３０２はＧＡＴＥ＿ＤＯＵＴ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号を論理ローの値にデアサートし、それにより、読出後書込動作を完了する。読出後書込動作は、有利にも２つの動作を組合せて１つのサイクルにし、それにより、メモリサイクルを節約する。一例では、デジタル信号処理（ＤＳＰ）フィルタ内に循環バッファを実現するために、読出後書込モードを用いることができる。
【００５９】
示された実施例において、第１のポート２００Ａの書込モードは、対応する第１の対の構成メモリセルに記憶された第１の対の構成ビットに応答して、制御ロジック３０２によって選択される。同様に、第２のポート２００Ｂの書込モードは、対応する第２の対の構成メモリセルに記憶された第２の対の構成ビットに応答して、制御ロジック３０２によって選択される。
【００６０】
図９は、この発明の一実施例に従った、第１のポート２００Ａを制御するために用いられる制御ロジック３０２の部分の回路図である。第２のポート２００Ｂを制御するために用いられる制御ロジック３０２の部分は、第１のポート２００Ａを制御するために用いられる制御ロジック３０２の部分と同一である。
【００６１】
制御ロジック３０２の示された部分は、ＤＱフリップフロップ９０１、セット−リセット（ＳＲ）フリップフロップ９０２、Ｄラッチ９０３、構成メモリセル９１１〜９１２、インバータ９２１〜９２９、ＮＡＮＤゲート９３１〜９３７、ＯＲゲート９４１、ＮＯＲゲート９４２、ＡＮＤゲート９４３〜９４４、および遅延回路９５１〜９５３を含み、それらは示されるとおり接続される。構成メモリセル９１１および９１２は、構成ビットＣ１およびＣ２をそれぞれ記憶するようプログラムされる。構成ビットＣ１およびＣ２の値は、第１のポート２００Ａに対してどの書込モードが選択されるかを決定する。表２は、読出モードおよび３つの書込モードに対する構成ビットＣ１およびＣ２の状態を示す。記号「Ｘ」は「ドントケア」の値を示す。
【００６２】
【表２】
2004522238.tif 000004
【００６３】
ＤＱフリップフロップ９０１はＲＡＭ＿ＥＮ＿Ａ信号およびＣＬＫ＿Ａ信号を受けるよう結合される。動作のためにブロックＲＡＭ２００の第１のポートをイネーブルにするために、ＲＡＭ＿ＥＮ＿Ａ信号がハイにアサートされる。ＣＬＫ＿Ａ信号の立上がり端により、ハイのＲＡＭ＿ＥＮ＿Ａ信号がＤＱフリップフロップ９０１内にラッチされる。ＤＱフリップフロップ９０１のＱ出力端子の論理ハイの値がＳＲフリップフロップ９０２のＳ入力端子に与えられる。この論理ハイの値はＳＲフリップフロップ９０２をセットし、それにより、ＳＲフリップフロップは論理ハイのＱ出力信号を与える。ＳＲフリップフロップ９０２によって与えられたＱ出力信号は、ＡＣＣＥＳＳ＿Ａ信号と対応する。
【００６４】
ハイのＡＣＣＥＳＳ＿Ａ信号がＤＱフリップフロップ９０１のリセット入力端子に与えられ、それにより、このフリップフロップ９０１が論理ローのＱ出力信号を与えるようリセットする。ＤＱフリップフロップ９０１をリセットすることにより、このフリップフロップ９０１は後のアクセスに備える。
【００６５】
遅延回路９５１の遅延ｄ１と遅延回路９５２の遅延ｄ２との和に相当する予め定められた遅延の後に、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号がハイにアサートされる。ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号は、ＡＣＣＥＳＳ＿Ａ信号に応答して、遅延要素９５１〜９５２、ＮＡＮＤゲート９３１および９３５、ならびにインバータ９２３および９２８によって生成される。ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号はＳＲフリップフロップ９０２のリセット（Ｒ）入力端子に与えられる。したがって、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号がハイにアサートされると、ＳＲフリップフロップはリセットされ、それにより、ＡＣＣＥＳＳ＿Ａ信号は論理ローの値に遷移する。
【００６６】
論理ハイのＡＣＣＥＳＳ＿Ａ信号により、ＮＡＮＤゲート９３２によって与えられる出力信号は論理ローの値を有する。その結果、ＢＬ＿ＰＣ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ信号がハイにアサートされたほぼ直後に、（ＮＡＮＤゲート９３３およびインバータ９２６を介して）ローにデアサートされる。ＢＬ＿ＰＣ＿Ａ信号がいつハイにアサートされるかは、構成メモリセル９１２内に記憶された構成ビットＣ２に依存する。構成ビットＣ２が論理ローの値を有する場合、ＢＬ＿ＰＣ＿Ａ信号は、遅延回路９５１の遅延ｄ１と遅延回路９５３の遅延ｄ３との和に相当する予め定められた遅延の後に、再びハイの値に遷移する。論理ローの構成ビットＣ２により、ＯＲゲート９４１はＮＡＮＤゲート９３１によって与えられた出力信号をＮＡＮＤゲート９３２の入力端子にわたす。その結果、ＮＡＮＤゲート９３２の出力信号は、ＡＣＣＥＳＳ＿Ａ信号がアサートされてから（遅延回路９５１によって規定された）１つの遅延ｄ１後に、論理ハイの値に遷移する。ＮＡＮＤゲート９３２によって与えられた出力信号が論理ハイの値に遷移した後に、ＢＬ＿ＰＣ＿Ａ信号は、（遅延回路９５３によって規定された）１つの遅延ｄ３後に、論理ハイの値に遷移する。遅延ｄ３は、アクセスされたメモリセルの交差結合されたラッチがプリチャージ回路に結合されないように、かつ、トライステートビット線ドライバが書込アクセス動作中にプリチャージ回路に対処しないように、ＢＬ＿ＰＣ＿Ａ信号が、ＷＬＥＮ＿Ａ信号がローになった後に確実にハイになるのにちょうど十分な長さとなるよう選択される。構成ビットＣ２は、ライトバックを伴なう書込モードおよびライトバックなしの書込モードに対して論理ローの値にセットされる（図６および図７）。
【００６７】
構成ビットＣ２が論理ハイの値を有する場合、ＢＬ＿ＰＣ＿Ａ信号は、遅延ｄ１、ｄ２、およびｄ３の総和に相当する予め定められた遅延の後に、再びハイの値に遷移する。論理ハイの構成ビットＣ２により、ＯＲゲート９４１はＡＣＣＥＳＳ＿Ａ信号の状態に関係なく論理ハイの値を与える。その結果、ＮＡＮＤゲート９３２は、ＡＣＣＥＳＳ＿Ａ信号が論理ローの値に遷移してから１つの遅延ｄ３まで、論理ローの出力信号を与える。上で論じたとおり、このことは、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号が、遅延ｄ１および遅延ｄ２の和からなる遅延の後に論理ハイの電圧に遷移する場合に生じる。構成ビットＣ２は、読出後書込モードに対しては論理ハイの値にセットされる（図８）。
【００６８】
ＷＬＥＮ＿Ａ信号は、ＮＡＮＤゲート９３２の出力端子に与えられた論理ローの値の結果、ＡＣＣＥＳＳ＿Ａ信号がハイにアサートされたほぼ直後にハイにアサートされる。構成ビットＣ２が論理ローの値を有する場合、ＷＬＥＮ＿Ａ信号は、遅延ｄ１に相当する予め定められた遅延の後に、再びローの値に遷移する（図６および図７）。反対に、構成ビットＣ２が論理ハイの値を有する場合、ＷＬＥＮ＿Ａ信号は、遅延ｄ１および遅延ｄ２の和に相当する予め定められた遅延の後に、再びローの値に遷移する（図８）。遅延ｄ３がＷＬＥＮ＿Ａ信号の生成に関与しないことに注目されたい。
【００６９】
ＳＥＮＳＥ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ信号に応答して、遅延回路９５１、ＮＡＮＤゲート９３１、およびインバータ９２３によって生成されたパルスである。ＳＥＮＳＥ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ信号がハイにアサートされてから１つの遅延ｄ１後にハイにアサートされ、ＡＣＣＥＳＳ＿Ａ信号がローにデアサートされると１つの遅延ｄ２後にローにデアサートされる。ＳＥＮＳＥ＿Ａ信号は構成ビットＣ１〜Ｃ２から独立して生成され、３つの書込モードのすべてに対して同じである。
【００７０】
ＷＡ＿ＢＬ信号は、ＷＥＮ＿Ａ信号がハイである（すなわち、書込アクセス中の）場合にのみ、ハイにアサートされ得る。書込アクセス中に、ＷＥＮ＿Ａ信号はハイに駆動され、ＡＣＣＥＳＳ＿Ａ信号は論理ローの値を有する。論理ローのＡＣＣＥＳＳ＿Ａ信号に応答して、インバータ９２１は論理ハイの信号をＤラッチ９０３のＲおよびＧの入力端子に与える。Ｒ入力端子に与えられた論理ハイの信号は、Ｄラッチ９０３が論理ローのＱ出力信号を与えるよう、Ｄラッチ９０３をリセットする。ＡＣＣＥＳＳ＿Ａ信号が論理ハイの値に遷移すると、インバータ９２１は論理ローの信号をＤラッチ９０３のＲおよびＧの入力端子に与える。それに応答して、論理ハイのＷＥＮ＿Ａ信号は、Ｄラッチ９０３が論理ハイのＱ出力信号を与えるよう、Ｄラッチ９０３内にラッチされる。論理ハイのＷＥＮ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ信号が論理ローの値に遷移するとＤラッチ９０３がリセットされるまで、Ｄラッチ９０３内に記憶される。
【００７１】
Ｄラッチ９０３内に記憶された論理ハイのＷＥＮ＿Ａ信号は、ＡＮＤゲート９４４の入力端子に与えられる。ＡＮＤゲート９４４の他の入力端子は、構成ビットＣ２の相補ビットである構成ビットＣ２♯を受けるよう結合される。構成ビットＣ２♯が論理ハイの値を有する場合（すなわち、構成ビットＣ２が論理ローの値を有する場合）、ＡＮＤゲート９４４は論理ハイの出力値を与える。それに応答して、インバータ９２２は、論理ハイの信号をＮＡＮＤゲート９３４の入力端子のうちの１つに与える。インバータ９２２は、Ｄラッチ９０３がＡＣＣＥＳＳ＿Ａ信号の立下がり端によってリセットされるまで、この論理ハイの信号を与える。ＮＡＮＤゲート９３４の他の入力端子は、ＷＬＥＮ＿Ａ信号を受けるよう結合される。これらの状態下で、インバータ９２７は、ＷＬＥＮ＿Ａ信号に続くＷＡ＿ＢＬ信号を与える。このことが、ライトバックを伴なう書込モードおよびライトバックなしの書込モード中に生じることに注目されたい（図６および図７）。
【００７２】
構成ビットＣ２♯が論理ローの値を有する場合（すなわち、構成ビットＣ２が論理ハイの値を有する場合）、ＡＮＤゲート９４４ではなくＡＮＤゲート９４３が、インバータ９２２によって与えられる出力信号を制御する。したがって、Ｄラッチ９０３内にラッチされた論理ハイのＷＥＮ＿Ａ信号はＡＮＤゲート９４３の一方の入力端子に与えられ、ＳＥＮＳＥ＿Ａ信号はＡＮＤゲート９４３の他方の入力端子に与えられる。これらの状態下で、インバータ９２２はＳＥＮＳＥ＿Ａ信号に続く出力信号を与える。ＮＡＮＤゲート９３４およびインバータ９２７は、ＳＥＮＳＥ＿Ａ信号およびＷＬＥＮ＿Ａ信号の論理ＡＮＤであるＷＡ＿ＢＬ信号を与える。この構成が、読出後書込モード中に存在することに注目されたい（図８）。したがって、読出後書込モード中に、ＷＡ＿ＢＬ信号は、ＳＥＮＳＥ＿Ａ信号の立上がり端に応答してアサートされ、ＷＬＥＮ＿Ａ信号またはＳＥＮＳＥ＿Ａ信号のいずれかの立下がり端に応答してデアサートされる。
【００７３】
最後に、ＮＡＮＤゲート９３６およびインバータ９２９は、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号、ＳＥＮＳＥ＿Ａ信号、およびＮＡＮＤゲート９３７の出力信号の論理ＡＮＤを生成することにより、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号を与える。ＮＡＮＤゲート９３７は、構成メモリセル９１１に記憶された構成ビットＣ１、構成ビットＣ２♯、およびインバータ９２２によって与えられた出力信号を入力として受ける。
【００７４】
読出アクセス中に、Ｄラッチ９０３は、論理ローの値を与えるようリセットされる。その結果、インバータ９２２は論理ローの値をＮＡＮＤゲート９３７に与える。それに応答して、ＮＡＮＤゲート９３７は、読出アクセス中に論理ハイの出力信号を常に与える。ＮＡＮＤゲート９３７によって与えられたこの論理ハイの信号により、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号はＳＥＮＳＥ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号の論理ＡＮＤへと効果的に変化する。ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号は、ＳＥＮＳＥ＿Ａ信号の立上がり端から１つの遅延ｄ２後にハイにアサートされるため、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号がハイにアサートされたすぐ後に、ハイにアサートされる。次に、ＳＥＮＳＥ＿Ａ信号は、ＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号の立上がり端に応答してローにデアサートされる。したがって、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号は、ＳＥＮＳＥ＿Ａ信号がローにデアサートされてすぐ後にローにデアサートされる（図５）。
【００７５】
ライトバックを伴なう書込動作に関し、構成メモリセル９１１は、論理ローの構成ビットＣ１を記憶するようプログラムされる。それに応答して、ＮＡＮＤゲート９３７は、構成ビットＣ２およびインバータ９２２の出力の状態に関係なく論理ハイの値をＮＡＮＤゲート９３６に与える。ＮＡＮＤゲート９３７によって与えられた論理ハイの信号により、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号はＳＥＮＳＥ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号の論理ＡＮＤへと効果的に変化する。したがって、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号は読出アクセスに対し、上述の態様と同じ態様で生成される（図６）。
【００７６】
読出後書込動作については、構成メモリセル９１２は、論理ハイの構成ビットＣ２（すなわち、論理ローの構成ビットＣ２♯）を記憶するようプログラムされる。それに応答して、ＮＡＮＤゲート９３７は、構成ビットＣ１およびインバータ９２２の出力の状態に関係なく、ＮＡＮＤゲート９３６に論理ハイの値を与える。ＮＡＮＤゲート９３７によって与えられた論理ハイの信号により、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号はＳＥＮＳＥ＿Ａ信号およびＡＣＣＥＳＳ＿Ａ＿ＤＯＮＥ信号の論理ＡＮＤへと効果的に変化する。したがって、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号は、読出アクセスに対し、上述の態様と同じ態様で生成される（図８）。
【００７７】
ライトバックなしの書込動作に関し、構成メモリセル９１１は論理ハイの構成ビットＣ１を記憶するようプログラムされ、構成メモリセル９１２は論理ローの構成ビットＣ２（すなわち、構成ビットＣ２♯はハイである）を記憶するようプログラムされる。その結果、ＮＡＮＤゲート９３７に対する入力信号のすべては論理ハイの状態を有する。（論理ハイの構成ビットＣ２♯およびＤラッチ９０３によって与えられた論理ハイの信号により、インバータ９２２が論理ハイの値を与えることに注目されたい。）それに応答して、ＮＡＮＤゲート９３７は論理ローの値をＮＡＮＤゲート９３６に与え、それにより、ＧＡＴＥ＿ＤＯＵＴ＿Ａ信号を論理ロー値にする（図７）。
【００７８】
いくつかの実施例とともにこの発明を説明してきたが、この発明が開示された実施例に限定されず、当業者には明らかであろう、さまざまな変更が可能であることが理解される。たとえば、示された実施例では、構成メモリセルに記憶された構成ビットに応答して書込モードが選択されるが、他の実施例において、ＦＰＧＡの構成後にユーザによって与えられた１つ以上のユーザ信号によって書込モードが選択され得ることが理解される。これらの実施例において、ユーザはＦＰＧＡの動作中に、書込モードを動的に選択することができる。加えて、３つのプログラマブルな書込モードを用いてこの発明を説明してきたが、他の実施例で他の数の書込モードを用い得ることが理解される。したがって、この発明は、前掲の請求項によってのみ限定される。
【図面の簡単な説明】
【図１】この発明の一実施例に従った、ＩＯＢ、ＣＬＢ、およびブロックＲＡＭの全体のレイアウトのブロック図である。
【図２】この発明の一実施例に従った、デュアルポートブロックＲＡＭのブロック図である。
【図３】図２のブロックＲＡＭをより詳細に示すブロック図である。
【図４】この発明の一実施例に従った、デュアルポートＳＲＡＭメモリセルおよび関連するＩ／Ｏ回路の回路図である。
【図５】図４のメモリセルの読出アクセスを示す波形図である。
【図６】図４のメモリセルのライトバックを伴なう書込アクセスを示す波形図である。
【図７】図４のメモリセルのライトバックなしの書込アクセスを示す波形図である。
【図８】図４のメモリセルの読出後書込アクセスを示す波形図である。
【図９】この発明の一実施例に従った、図２のデュアルポートブロックＲＡＭの１つのポートに関連する制御ロジックの回路図である。
【図２】
2004522238.tif 000005
【図３】
2004522238.tif 000006
【図４】
2004522238.tif 000007
【図５】
2004522238.tif 000008
【図６】
2004522238.tif 000009
【図７】
2004522238.tif 000010
【図８】
2004522238.tif 000011
【国際公開パンフレット】
2004522238.tif 000012
2004522238.tif 000013
2004522238.tif 000014
2004522238.tif 000015
2004522238.tif 000016
2004522238.tif 000017
2004522238.tif 000018
2004522238.tif 000019
2004522238.tif 000020
2004522238.tif 000021
2004522238.tif 000022
2004522238.tif 000023
2004522238.tif 000024
2004522238.tif 000025
2004522238.tif 000026
2004522238.tif 000027
2004522238.tif 000028
2004522238.tif 000029
2004522238.tif 000030
2004522238.tif 000031
2004522238.tif 000032
2004522238.tif 000033
2004522238.tif 000034
2004522238.tif 000035
2004522238.tif 000036
2004522238.tif 000037
2004522238.tif 000038
2004522238.tif 000039
2004522238.tif 000040
2004522238.tif 000041
2004522238.tif 000042
2004522238.tif 000043
2004522238.tif 000044
2004522238.tif 000045
【国際公開パンフレット（コレクトバージョン）】
2004522238.tif 000046
【国際調査報告】
2004522238.tif 000047
2004522238.tif 000048
2004522238.tif 000049