(57)【要約】【課題】読出し動作と書込み動作を非同期に行う２ポートメモリやデュアルポートメモリにおいて、同一またはレイアウト上同一行のメモリセルに対する読出し動作と書込み動作間の干渉による誤動作防止が求められている。【解決手段】Ａポート（読出しポート）がメモリセルＭＣ（０、０）をアクセスしている際に、Ｂポート（書込みポート）がＢポートワード線ｗｗ０でそのメモリセルＭＣ（０、０）または同一行で異なる列のメモリセルＭＣ（０、１）をアクセスした場合、ワード線ネゲート回路４は、メモリセルＭＣ（０、０）Ａポートワード線ｗｒ００を非選択状態に設定する。【選択図】図１
2014053059.tif 000002
【特許請求の範囲】
【請求項１】
メモリセルを行方向および列方向に配置したメモリセルアレイと、
第１ポートに供給される第１アドレスに基づき、前記メモリセルを選択する第１ポート選択回路と、
第２ポートに供給される第２アドレスに基づき、前記メモリセルを選択する第２ポート選択回路と、
ワード線ネゲート回路と、を備えた半導体装置であって、
前記メモリセルアレイは、前記第１ポートの第１ワード線および前記第２ポートの第２ワード線と接続された第１メモリセルと、前記第１ポートの第３ワード線および前記第２ポートの前記第２ワード線と接続された第２メモリセルと、を有し、
前記ワード線ネゲート回路は、前記第２ポート選択回路が前記第２ワード線を選択した場合、前記第１ポート選択回路が選択する前記第１ワード線または前記第３ワード線を非選択にする、半導体装置。
【請求項２】
前記第１ポート選択回路は、前記第１ワード線を駆動する第１ワードドライバ、および前記第３ワード線を駆動する第３ワードドライバのいずれか一方を選択する第１ポートデコーダを有し、
前記第２ポート選択回路は、前記第２ワード線を駆動する第２ワードドライバ選択する第２ポートデコーダを有し、
前記ワード線ネゲート回路は、前記第１ポートデコーダの出力信号および前記第２ポートデコーダの出力信号に応答して、前記第１ワードドライバまたは前記第３ワードドライバを非選択にする、請求項１記載の半導体装置。
【請求項３】
前記第１ポートは読出しポートであり、前記第２ポートは書込みポートである、請求項２記載の半導体装置。
【請求項４】
前記第１メモリセルは、さらに、前記第１ポートの第１ビット線対および前記第２ポートの第２ビット線対と接続され、
前記第２メモリセルは、さらに、前記第１ポートの第３ビット線対および前記第２ポートの第４ビット線対と接続され、
前記第１ポート選択回路は、前記第１ビット線対および前記第３ビット線対のいずれか一方を選択する第１ポートカラムセレクタを、さらに有し、
前記第２ポート選択回路は、前記第２ビット線対および前記第４ビット線対のいずれか一方を選択する第２ポートカラムセレクタを、さらに有する、請求項３記載の半導体装置。
【請求項５】
前記ワード線ネゲート回路は、前記第１ポートの読出しサイクル期間において前記第２ポートの書込みサイクルが開始された場合、前記第１ワードドライバまたは前記第３ワードドライバを非選択にする、請求項３記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は半導体装置に関し、たとえば、２ポートメモリを備える半導体装置に関する。
【背景技術】
【０００２】
半導体装置（以下、チップ、と記載する場合もある。）の微細化が進むにつれて、不純物揺らぎ等の影響で、チップ間におけるトランジスタの相対的な特性ばらつき（グローバルばらつき）に加え、チップ内における相対的な特性ばらつき（ローカルばらつき）が顕在化してきている。ＳＯＣ（Ｓｙｓｔｅｍ  ｏｎ  ａ  Ｃｈｉｐ）等のロジックＬＳＩに混載されるＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）がそのばらつきの影響を最も敏感に受け、メモリセルの縮小化が困難となっている。
【０００３】
２ポートメモリ（１ポートが読出し専用、他の１ポートが書込み専用のメモリ）において、同番地またはレイアウト構造上の同一行のメモリセルに対する読出し動作と書込み動作とを非同期に行う場合、後の書込み動作が先の読出し動作の影響を受け、誤書き込みが発生する場合がある。トランジスタ特性のグローバルばらつきを考慮した誤書き込み対策を施した２ポートメモリであっても、ローカルバラツキの影響で、まれに上記誤書き込みが発生するメモリセルが存在するようになった。しかし、非同期で動作するポート間スキューを書込みにおけるワースト条件に設定してテストすることにより、この誤書き込みが発生するメモリセルを含むチップを製造時に除外または救済することは困難である。
【０００４】
特許文献１は、同番地またはレイアウトにおける同一行に同時に書込みまたは読出しを行う場合、読出し側ポートのビット線電位を書込み側ポートのビット線電位と同じとすることで、読出しポートからの干渉を排除し、誤書き込みを防止する構成を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−２５８２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
読出し動作と書込み動作を非同期に行う２ポートメモリやデュアルポートメモリにおいて、同一アドレスまたはレイアウト上同一行のメモリセルに対する読出し動作と書込み動作間の干渉による誤動作防止が求められている。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
一実施の形態によれば、半導体装置は、メモリセルを行方向および列方向に配置したメモリセルアレイと、第１ポートに供給される第１アドレスに基づき、メモリセルを選択する第１ポート選択回路と、第２ポートに供給される第２アドレスに基づき、メモリセルを選択する第２ポート選択回路と、ワード線ネゲート回路と、を備え、メモリセルアレイは、第１ポートの第１ワード線および第２ポートの第２ワード線と接続された第１メモリセルと、第１ポートの第３ワード線および第２ポートの第２ワード線と接続された第２メモリセルと、を有し、ワード線ネゲート回路は、第２ポート選択回路が第２ワード線を選択した場合、第１ポート選択回路が選択する第１ワード線または第３ワード線を非選択にする。
【発明の効果】
【０００８】
前記一実施の形態によれば、同一番地またはレイアウト上同一行のメモリセルに対する読出し動作と書込み動作間の干渉による誤動作が抑制された半導体装置の実現が可能となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る半導体装置の構成図である。
【図２】実施の形態１に係る２ポートメモリが有するメモリセルの回路図である。
【図３】実施の形態１に係る半導体装置が備えるワード線ネゲート回路の動作を説明するタイミング図である。
【図４】実施の形態２に係る半導体装置の構成図である。
【図５】実施の形態２に係る半導体装置が備えるＡポートワードドライバの回路図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しつつ、実施の形態について説明する。実施の形態の説明において、個数、量などに言及する場合、特に記載ある場合を除き、必ずしもその個数、量などに限定されない。実施の形態の図面において、同一の参照符号や参照番号は、同一部分または相当部分を表わすものとする。また、実施の形態の説明において、同一の参照符号等を付した部分等に対しては、重複する説明は繰り返さない場合がある。
【００１１】
＜実施の形態１＞
図１を参照して、実施の形態１に係る半導体装置ＬＳＩ１の構成を説明する。
【００１２】
半導体装置ＬＳＩ１は、読出しポートのＡポートと書込みポートのＢポートとを備える２ポートメモリを有する。２ポートメモリは、Ａポートアドレス信号を保持するフリップフロップ１ａ、Ａポートアドレスデコーダ２ａ、Ａポートメインデコーダ３ａ、Ａポートワードドライバ５００〜５ｍ１、Ａポートカラムセレクタ８ａ、センスアンプ９、データ保持回路１０、および出力バッファ１１を有する。さらに、２ポートメモリは、Ｂポートアドレス信号を保持するフリップフロップ１ｂ、Ｂポートアドレスデコーダ２ｂ、Ｂポートメインデコーダ３ｂ、Ｂポートワードドライバ５ｗ０〜５ｗｍ、Ｂポートカラムセレクタ８ｂ、ライトドライバ７、およびフリップフロップ６を有する。
【００１３】
２ポートメモリは、さらに、ＩＯ数（Ｎ＋１）分のメモリセルアレイＭＡと、ワード線ネゲート回路４を有する。各メモリセルアレイＭＡは、列方向（ビット線方向）にｍ＋１個、行方向（ワード線方向）に２個配置された、ｍ＋１行２列のメモリセルＭＣで構成される。メモリセルＭＣを示す矩形の内側に記載した記号、例えば、（０、０）は、（０行、０列）に配置されたメモリセルＭＣであることを示し、記号（ｍ、１）は、（ｍ行、１列）に配置されたメモリセルＭＣであることを示す。以下、メモリセルＭＣ（０、０）は、（０行、０列）に配置されたメモリセルを意味する。
【００１４】
図２を参照して、２ポートメモリが有するメモリセルＭＣの構成を説明する。
以下の説明において、ｐ型トランジスタとは、ｐチャネルＭＯＳＦＥＴ（Ｍｅｔａｌ−Ｏｘｉｄｅ−Ｓｅｍｉｃｏｎｄｕｃｔｏｒ  Ｆｉｅｌｄ−Ｅｆｆｅｃｔ  Ｔｒａｎｓｉｓｔｏｒ）トランジスタを、ｎ型トランジスタとは、ｎチャネルＭＯＳＦＥＴを意味する。メモリセルＭＣは、ソースに電源電圧ＶＤＤが印加され、ドレインおよびゲートが、各々ノードＮ１およびノードＮ２と接続されたｐ型トランジスタＭＬ１と、ソースに電源電圧ＶＳＳが印加され、ドレインおよびゲートが、各々ノードＮ１およびノードＮ２と接続されたｎ型トランジスタＭＤ１と、を有する。
【００１５】
さらに、メモリセルＭＣは、ソースに電源電圧ＶＤＤが印加され、ドレインおよびゲートが、各々ノードＮ２およびノードＮ１と接続されたｐ型トランジスタＭＬ２と、ソースに電源電圧ＶＳＳが印加され、ドレインおよびゲートが、各々ノードＮ２およびノードＮ１と接続されたｎ型トランジスタＭＤ２と、を有する。
【００１６】
メモリセルＭＣは、さらに、ゲートがＡポートワード線ｗｒｊ０またはＡポートワード線ｗｒｊ１（ｊ＝０〜ｍ、以下同じ。）と接続され、ソース／ドレインのいずれか一方がノードＮ１に、ソース／ドレインのいずれか他方がＡポートビット線ＢＬａｋ（ｋ＝０、１、以下同じ。）に接続されたｎ型トランジスタＭＴ１ａと、ゲートがＡポートワード線ｗｒｊ０またはＡポートワード線ｗｒｊ１と接続され、ソース／ドレインのいずれか一方がノードＮ２に、ソース／ドレインのいずれか他方がＡポートビット線ＢＬＢａｋと接続されたｎ型トランジスタＭＴ２ａと、を有する。
【００１７】
さらに、メモリセルＭＣは、ゲートがＢポートワード線ｗｗｊと接続され、ソース／ドレインのいずれか一方がノードＮ１に、ソース／ドレインのいずれか他方がＢポートビット線ＢＬｂｋと接続されたｎ型トランジスタＭＴ１ｂと、ゲートがＢポートワード線ｗｗｊと接続され、ソース／ドレインのいずれか一方がノードＮ２と、ソース／ドレインのいずれか他方がＢポートビット線ＢＬＢｂｋと接続されたｎ型トランジスタＭＴ２ｂと、を有する。
【００１８】
図１を参照して、２ポートメモリの構成を説明する。
以下において、論理レベルのハイレベルおよびロウレベルは、各々、電源電圧ＶＤＤおよび電源電圧ＶＳＳ、であるとする。Ａポートアドレスデコーダ２ａが有するＡポートプリデコーダ２ａｐは、フリップフロップ１ａが保持するＡポートアドレス信号に基づき、Ａポートメインデコーダ３ａに、プリデコード信号を出力する。Ａポートメインデコーダ３ａは、そのプリデコード信号に基づき、信号ａ００／信号ａ０１〜信号ａｍ０／信号ａｍ１を出力する。信号ａｊ０、および信号ａｊ１は、各々、２入力ＡＮＤ回路で構成されるＡポートワードドライバ５ｊ０、およびＡポートワードドライバ５ｊ１に入力される。Ａポートワードドライバ５ｊ０および５ｊ１は、各々、Ａポートワード線ｗｒｊ０およびＡポートワード線ｗｒｊ１を駆動する。
【００１９】
Ａポートアドレスデコーダ２ａは、さらに、Ａポートアドレス信号に基づき、信号ｃｓｅｌａを出力する。Ａポートカラムセレクタ８ａは、その信号ｃｓｅｌａに基づき、Ａポートビット線対ＢＬａ０／ＢＬＢａ０またはＡポートビット線対ＢＬａ１／ＢＬＢａ１のいずれか一方を選択する。なお、Ａポートアドレスデコーダ２ａのＡポートアドレス信号の取込み動作、および各信号の出力動作は、図示しないＡポート制御回路が出力する制御信号ｃｔｌａに基づき制御される。
【００２０】
Ｂポートアドレスデコーダ２ｂが有するＢポートプリデコーダ２ｂｐは、フリップフロップ１ｂが保持するＢポートアドレス信号に基づき、Ｂポートメインデコーダ３ｂに、プリデコード信号を出力する。Ｂポートメインデコーダ３ｂは、そのプリデコード信号に基づき、信号ｗｂ０〜信号ｗｂｍを出力する。Ｂポートワードドライバ５ｗｊは、その信号ｗｂｊに基づき、Ｂポートワード線ｗｗｊを駆動する。
【００２１】
Ｂポートアドレスデコーダ２ｂは、さらに、Ｂポートアドレス信号に基づき、信号ｃｓｅｌｂを出力する。Ｂポートカラムセレクタ８ｂは、その信号ｃｓｅｌｂに基づき、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０またはＢポートビット線対ＢＬｂ１／ＢＬＢｂ１のいずれか一方を選択する。なお、Ｂポートアドレスデコーダ２ｂのＢポートアドレス信号の取込み動作、および各信号の出力動作は、図示しないＢポート制御回路が出力する制御信号ｃｔｌｂに基づき制御される。
【００２２】
ワード線ネゲート回路４は、Ｂポートメインデコーダ３ｂが出力する信号ｗｂｊ、およびＢポートアドレスデコーダ２ｂが出力する信号ｃｓｅｌｂに基づき、Ａポートワードドライバ５ｊ０および５ｊ１の動作を制御する。ワード線ネゲート回路４は、単位ネゲート回路４０〜４ｍで構成される。単位ネゲート回路４ｊは、インバータＩＮＶ１、ＮＡＮＤ論理ゲートＦ０（入力が反転論理のＯＲゲートＦ０として記載。）、およびＮＡＮＤ論理ゲートＦ１（入力が反転論理のＯＲゲートＦ１として記載。）で構成される。
【００２３】
ＮＡＮＤ論理ゲートＦ０は、信号ｗｂｊおよびインバータＩＮＶ１で信号ｃｓｅｌｂの論理レベルを反転させた信号のＮＡＮＤ演算結果を、信号ｆ０として出力する。ＮＡＮＤ論理ゲートＦ１は、信号ｗｂｊおよび信号ｃｓｅｌｂのＮＡＮＤ演算結果を、信号ｆ１として出力する。
【００２４】
Ａポートワードドライバ５ｊ０の一方の入力端子には、単位ネゲート回路４ｊが出力する信号ｆ０が印加され、その他方の入力端子には、Ａポートメインデコーダ３ａが出力する信号ａｊ０が印加される。Ａポートワードドライバ５ｊ１の一方の入力端子には、単位ネゲート回路４ｊが出力する信号ｆ１が印加され、その他方の入力端子には、Ａポートメインデコーダ３ａが出力する信号ａｊ１が印加される。Ａポートワードドライバ５ｊ０およびＡポートワードドライバ５ｊ１の出力端子は、各々、Ａポートワード線ｗｒｊ０およびＡポートワード線ｗｒｊ１と接続される。Ｂポートワードドライバ５ｗｊの出力端子は、Ｂポートワード線ｗｗｊと接続される。
【００２５】
図１を参照して、２ポートメモリの動作を説明する。
以下に、メモリセルアレイＭＡの０行に配置されるメモリセルＭＣ（０、０）およびメモリセルＭＣ（０、１）を具体例として、２ポートメモリの動作を説明する。
【００２６】
メモリセルＭＣ（０、０）が備えるｎ型トランジスタＭＴ１ａおよびＭＴ２ａのゲートは、Ａポートワード線ｗｒ００と接続される。メモリセルＭＣ（０、１）が備えるｎ型トランジスタＭＴ１ａおよびＭＴ２ａのゲートは、Ａポートワード線ｗｒ０１と接続される。一方、メモリセルＭＣ（０、０）およびメモリセルＭＣ（０、１）が各々備えるｎ型トランジスタＭＴ１ｂおよびＭＴ２ｂのゲートは、ともに、Ｂポートワード線ｗｗ０と接続される。
【００２７】
最初に、メモリセルＭＣ（０、０）またはメモリセルＭＣ（０、１）の読出しを行う場合を説明する。
【００２８】
Ａポートアドレス信号に基づいて、Ａポートメインデコーダ３ａは、信号ａ００および信号ａ０１のいずれか一方をハイレベルに、いずれか他方をロウレベルに設定する。ＢポートでメモリセルＭＣへの書込みアクセスが発生していない場合、Ｂポートメインデコーダ３ｂが出力する信号ｗｂ０はロウレベルに設定される。従って、単位ネゲート回路４０が出力する信号ｆ０および信号ｆ１は、いずれもハイレベルに設定される。信号ａ００がハイレベル（信号ａ０１がロウレベル）に設定された場合、Ａポートワードドライバ５００は、Ａポートワード線ｗｒ００をハイレベルに設定し、信号ａ０１がハイレベル（信号ａ００がロウレベル）に設定された場合、Ａポートワードドライバ５０１は、Ａポートワード線ｗｒ０１をハイレベルに設定する。
【００２９】
Ａポートカラムセレクタ８ａは、Ａポートアドレスデコーダ２ａが出力する信号ｃｓｅｌａに基づき、Ａポートビット線対ＢＬａ０／ＢＬＢａ０、およびＡポートビット線対ＢＬａ１／ＢＬＢａ１のいずれか一方を選択する。Ａポートメインデコーダ３ａが出力する信号ａ００がハイレベルの場合、信号ｃｓｅｌａはロウレベルに設定され、Ａポートビット線対ＢＬａ０／ＢＬＢａ０が選択される。Ａポートメインデコーダ３ａが出力する信号ａ００がロウレベルの場合、信号ｃｓｅｌａはハイレベルに設定され、Ａポートビット線対ＢＬａ１／ＢＬＢａ１が選択される。
【００３０】
従って、Ａポートワードドライバ５００で選択されたメモリセルＭＣ（０、０）のデータは、Ａポートカラムセレクタ８ａが選択したＡポートビット線対ＢＬａ０／ＢＬＢａ０に読み出され、Ａポートワードドライバ５０１で選択されたメモリセル（０、１）のデータは、Ａポートビット線対ＢＬａ１／ＢＬＢａ１に読み出される。
【００３１】
次に、ＡポートがメモリセルＭＣ（０、０）をアクセス中（読出し動作中）に、Ｂポートが同じメモリセルＭＣ（０、０）に対してアクセスを開始（書込みを開始）した場合の２ポートメモリの動作を説明する。
【００３２】
Ａポートアドレス信号に基づき、Ａポートメインデコーダ３ａは、信号ａ００をハイレベル、信号ａ０１をロウレベルに設定し、Ａポートアドレスデコーダ２ａは、信号ｃｓｅｌａをロウレベルに設定する。その結果、Ａポートは、メモリセルＭＣ（０、０）のアクセスを開始する。Ｂポートアドレス信号に基づき、Ｂポートメインデコーダ３ｂは、信号ｗｂ０をハイレベルに設定する。さらに、Ｂポートアドレスデコーダ２ｂは、信号ｃｓｅｌｂをロウレベルに設定する。
【００３３】
ハイレベルに設定された信号ｗｂ０に応答して、Ｂポートワードドライバ５ｗ０は、Ｂポートワード線ｗｗ０をロウレベルからハイレベルに設定する。また、ロウレベルに設定された信号ｃｓｅｌｂに応答して、Ｂポートカラムセレクタ８ｂは、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０を選択する。その結果、ＢポートによるメモリセルＭＣ（０、０）のアクセスが開始される。
【００３４】
ＢポートによるメモリセルＭＣ（０、０）のアクセス開始前後における、単位ネゲート回路４０の動作を説明する。Ｂポートのアクセス開始直前における単位ネゲート回路４０は以下の状態にある。即ち、ＮＡＮＤ論理ゲートＦ０およびＦ１は、一方の入力端子に印加されたロウレベルの信号ｗｂ０に応答して、各々が出力する信号ｆ０およびｆ１をハイレベルに設定する。このハイレベルの信号ｆ０とハイレベルの信号ａ００が入力されるＡポートワードドライバ５００は、Ａポートワード線ｗｒ００をハイレベルに設定する。一方、ハイレベルの信号ｆ１とロウレベルの信号ａ０１が入力されるＡポートワードドライバ５０１は、Ａポートワード線ｗｒ０１をロウレベルに設定する。
【００３５】
ＢポートによるメモリセルＭＣ（０、０）のアクセスが開始されると、ＮＡＮＤ論理ゲートＦ０およびＦ１の一方の入力端子に印加される信号ｗｂ０はハイレベルに設定され、ＮＡＮＤ論理ゲートＦ０の出力信号ｆ０、およびＮＡＮＤ論理ゲートＦ１の出力信号ｆ１の論理レベルは、信号ｃｓｅｌｂにより決定される。Ｂポートカラムセレクタ８ｂは、信号ｃｓｅｌｂに基づき、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０、およびＢポートビット線対ＢＬｂ１／ＢＬＢｂ１のいずれか一方を選択する。信号ｃｓｅｌｂがロウレベルの場合、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０が選択され、信号ｃｓｅｌｂがハイレベルの場合、Ｂポートビット線対ＢＬｂ１／ＢＬＢｂ１が選択される。ＢポートがメモリセルＭＣ（０、０）を選択する場合、信号ｃｓｅｌｂはロウレベルに設定される。
【００３６】
信号ｃｓｅｌｂがロウレベルに設定されると、ＮＡＮＤ論理ゲートＦ０には、インバータＩＮＶ１で信号ｃｓｅｌｂの論理レベルを反転させたハイレベルの信号が印加され、信号ｆ０はロウレベルに設定される。その結果、Ａポートワードドライバ５００の出力はハイレベルからロウレベルに変化し、ＡポートでアクセスされていたメモリセルＭＣ（０、０）のＡポートワード線ｗｒ００はロウレベルに変化する。ＮＡＮＤ論理ゲートＦ１が出力する信号ｆ１はハイレベルを維持するが、信号ａ０１はロウレベルであるため、メモリセルＭＣ（０、１）と接続されるＡポートワード線ｗｒ０１はロウレベルを維持する。
【００３７】
ＡポートがメモリセルＭＣ（０、０）をアクセスしているときに、Ｂポートが同じメモリセルＭＣ（０、０）をアクセスした場合、Ａポートワードドライバ５００は、単位ネゲート回路４０の出力信号ｆ０に応答して、メモリセルＭＣ（０、０）と接続されているＡポートワード線ｗｒ００をハイレベルからロウレベルに引き下げる。即ち、単位ネゲート回路４０は、先に開始されたＡポートによるメモリセルＭＣ（０、０）のアクセス（読出し動作）を強制的に終了させ、後に開始されたＢポートによる同一番地のメモリセルＭＣ（０、０）のアクセス（書込み動作）を継続させる。読出し動作が強制終了されたメモリセルＭＣ（０、０）において、ｎ型トランジスタＭＴ１ａによるノードＮ１およびＡポートビット線ＢＬａ０間の接続と、ｎ型トランジスタＭＴ２ａによるノードＮ２およびＡポートビット線ＢＬＢａ０間の接続は、切断される（図２参照）。
【００３８】
メモリセルＭＣ（０、０）のノードＮ１およびノードＮ２が、各々、Ａポートビット線ＢＬａ０およびＡポートビット線ＢＬＢａ０から解放されると、Ｂポートカラムセレクタ８ｂで選択されたビット線ＢＬｂ０およびＢＬＢｂ０に、ライトドライバ７が出力する書込みデータが印加される。その結果、メモリセルＭＣ（０、０）におけるノードＮ１およびノードＮ２のデータ（論理レベル）は、Ａポートビット線対ＢＬａ０／ＢＬＢａ０の影響を受けることなく、書き換えられる。
【００３９】
次に、ＡポートがメモリセルＭＣ（０、０）をアクセス中に、Ｂポートが、メモリセルＭＣ（０、０）と同一行で異なる列のメモリセルＭＣ（０、１）に対してアクセスを開始した場合の２ポートメモリの動作を説明する。
【００４０】
Ａポートアドレス信号に基づき、Ａポートメインデコーダ３ａは、信号ａ００をハイレベル、信号ａ０１をロウレベルに設定する。さらに、Ａポートアドレスデコーダ２ａは、信号ｃｓｅｌａをロウレベルに設定する。その結果、Ａポートは、メモリセルＭＣ（０、０）のアクセスを開始する。その後、Ｂポートアドレス信号に基づき、Ｂポートメインデコーダ３ｂは、信号ｗｂ０をハイレベルに設定する。さらに、Ｂポートアドレスデコーダ２ｂは、信号ｃｓｅｌｂをハイレベルに設定する。
【００４１】
ハイレベルに設定された信号ｗｂ０に応答して、Ｂポートワードドライバ５ｗ０は、Ｂポートワード線ｗｗ０をロウレベルからハイレベルに設定する。また、ハイレベルに設定された信号ｃｓｅｌｂに応答して、Ｂポートカラムセレクタ８ｂは、Ｂポートビット線対ＢＬｂ１／ＢＬＢｂ１を選択する。この結果、Ｂポートにおいて、ＡポートがアクセスしているメモリセルＭＣと同一行で異なる列のメモリセルＭＣ（０、１）のアクセス（書込み動作）が開始される。
【００４２】
Ｂポートのアクセス開始直前において、Ａポートメインデコーダ３ａは、ハイレベルの信号ａ００およびロウレベルの信号ａ０１を出力している。単位ネゲート回路４０は、ロウレベルの信号ｗｂ０を受けて、ハイレベルの信号ｆ０およびｆ１を出力する。このハイレベルの信号ｆ０とハイレベルの信号ａ００が入力されるＡポートワードドライバ５００は、Ａポートワード線ｗｒ００をハイレベルに設定する。一方、ハイレベルの信号ｆ１とロウレベルの信号ａ０１が入力されるＡポートワードドライバ５０１は、Ａポートワード線ｗｒ０１をロウレベルに設定する。
【００４３】
ＢポートによるメモリセルＭＣ（０、１）のアクセスが開始されると、単位ネゲート回路４０のＮＡＮＤ論理ゲートＦ０には、インバータＩＮＶ１で信号ｃｓｅｌｂの論理レベルを反転させたロウレベルの信号が入力される。その結果、ＮＡＮＤ論理ゲートＦ０は、ハイレベルの信号ｆ０を維持する。一方、ＮＡＮＤ論理ゲートＦ１には、ハイレベルの信号ｃｓｅｌｂおよびハイレベルの信号ｗｂ０が入力される。その結果、ＮＡＮＤ論理ゲートＦ１は、ロウレベルの信号ｆ１を出力する。従って、Ａポートワードドライバ５００はＡポートワード線ｗｒ００のハイレベルを維持するとともに、Ａポートワードドライバ５０１はＡポートワード線ｗｒ０１のロウレベルを維持する。
【００４４】
ＡポートがメモリセルＭＣ（０、０）をアクセスしているときに、Ｂポートが、そのメモリセルＭＣ（０、０）と同一行で異なる列のメモリセルＭＣ（０、１）をアクセスした場合、単位ネゲート回路４０は、メモリセルＭＣ（０、０）と接続されているＡポートワード線ｗｒ００のハイレベルを維持する。その結果、Ａポートの読出し動作は継続される。また、単位ネゲート回路４０は、メモリセルＭＣ（０、１）と接続されているＡポートワード線ｗｒ０１のロウレベルを維持する。
【００４５】
ロウレベルに維持されているＡポートワード線ｗｒ０１により、メモリセルＭＣ（０、１）のノードＮ１およびノードＮ２は、Ａポートビット線対ＢＬａ１／ＢＬＢａ１から解放されている。Ｂポートカラムセレクタ８ｂは、ライトドライバ７が出力する書込みデータを選択したビット線対ＢＬｂ１およびＢＬＢｂ１に印加し、ノードＮ１およびノードＮ２の論理レベルを反転させる。
【００４６】
図３を参照して、実施の形態１に係る半導体装置ＬＳＩが備えるワード線ネゲート回路４の制御動作を説明する。
【００４７】
図３（ａ）は、メモリセルＭＣ（０、０）、およびそのメモリセルＭＣ（０、０）と同一行で異なる列のメモリセルＭＣ（０、１）と、それらメモリセルＭＣに対するＡポート、およびＢポートの主要アクセス回路を示す。図３（ａ）において、図１と同一の符号を付したゲートや信号の機能等は図１に示すものと同一である。
【００４８】
図３（ｂ）は、ワード線ネゲート回路４を構成する単位ネゲート回路４０によるＡポートワードドライバ５００および５０１の制御動作を示すタイミング図である。図２をも参照しつつ、各回路の動作を説明する。
【００４９】
ＡポートがメモリセルＭＣ（０、０）のアクセスを開始すると、所定の時刻に、Ａポートメインデコーダ３ａは、信号ａ０１のロウレベルを維持しつつ、信号ａ００をロウレベルからハイレベルに変化させる。信号ｗｂ０がロウレベルを維持している期間（Ｂポートのアクセス開始前）におけるこの変化に応答して、時刻ｔ０に、Ａポートワードドライバ５００は、Ａポートワード線ｗｒ００をロウレベルからハイレベルに立ち上げる。Ａポートワード線ｗｒ００がハイレベルに変化すると、メモリセルＭＣ（０、０）の保持データは、Ａポートカラムセレクタ８ａで選択されたＡポートビット線対ＢＬａ０／ＢＬＢａ０に出力される。メモリセルＭＣ（０、０）が、ノードＮ１をハイレベル、ノードＮ２をロウレベルに保持している場合、ノードＮ２とｎ型トランジスタＭＴ２ａを介して接続されているＢＬＢａ０の電圧は（図２参照）、ハイレベルから徐々に低下を開始する。
【００５０】
ＡポートがメモリセルＭＣ（０，０）をアクセスしているときに、Ｂポートが同一アドレスのメモリセルＭＣ（０、０）のアクセスを開始すると、Ｂポートメインデコーダ３ｂは、信号ｗｂ０をロウレベルからハイレベルに変化させる。この変化に応答して、時刻ｔ１に、Ｂポートワードドライバ５ｗ０は、Ｂポートワード線ｗｗ０をロウレベルからハイレベルに立ち上げる。メモリセルＭＣ（０、０）が保持しているデータを反転させるため、Ｂポートビット線ＢＬｂ０およびＢＬＢｂ０は、各々、ロウレベルおよびハイレベルに設定される。
【００５１】
一方、単位ネゲート回路４０は、信号ｗｂ０のハイレベルへの立ち上がりに応答して、時刻ｔ２に、Ａポートワード線ｗｒ００をハイレベルからロウレベルに立ち下げる。Ａポートワード線ｗｒ００がロウレベルに設定されると、ノードＮ１およびノードＮ２から切り離されたＡポートビット線対ＢＬａ０／ＢＬＢａ０は、そのときの値をしばらく維持する。
【００５２】
時刻ｔ１にＢポートワード線ｗｗ０がハイレベルに立ち上がると、所定時間経過後の時刻ｔ４以降、メモリセルＭＣ（０、０）のノードＮ１およびＮ２の論理レベルが反転する。即ち、メモリセルＭＣ（０、０）へのデータ書込みが正常に行われる。時刻ｔ５にＢポートワード線ｗｗ０をロウレベルに立ち下げられ、ＢポートによるメモリセルＭＣ（０、０）への書込みは完了する。
【００５３】
ＡポートがメモリセルＭＣ（０、０）をアクセス中に、Ｂポートが、同一行で異なる列のメモリセルＭＣ（０、１）に対してアクセスを開始した場合、そのメモリセルＭＣ（０、１）と接続されるＡポートワード線ｗｒ０１は、初めからロウレベルを維持していることは上述の通りである。従って、ライトドライバ７は、Ｂポートビット線対ＢＬｂ１／ＢＬＢｂ１を介して、Ａポートビット線対ＢＬａ１／ＢＬＢａ１と切り離されているノードＮ１およびノードＮ２の論理レベルを正常に反転させる。
【００５４】
実施の形態１に係る半導体装置ＬＳＩ１が備える２ポートメモリにおいて、０〜Ｎビットの各ＩＯは、ｍ＋１行２列からなるメモリセルアレイＭＡを有している。例えば、第０行に２列に配置されたメモリセルＭＣ（０、０）およびメモリセルＭＣ（０、１）は、１つのＢポートワード線ｗｗ０を共有するとともに、個別に分離して配置されたＡポートワード線ｗｒ００およびＡポートワード線ｗｒ０１と、各々接続される。
【００５５】
先行してＡポートがメモリセルＭＣ（０、０）の読出しを開始し、その読出しサイクルが完了する前にＢポートが同一番地のメモリセルＭＣ（０、０）をアクセスした場合、ワード線ネゲート回路４は、Ａポートが選択したメモリセルＭＣ（０、０）のアドレスと、Ｂポートが選択したメモリセルＭＣ（０、０）のアドレスとの一致を検出すると、ハイレベルにあるＡポートワード線ｗｒ００を強制的に、即ち、読出しサイクル期間であっても、ロウレベルに引き下げる。
【００５６】
Ａポートワード線ｗｒ００がロウレベルに引き下げられると、Ａポートビット線対ＢＬａ０／ＢＬＢａ０はメモリセルＭＣ（０、０）から切り離され、ＢポートによるメモリセルＭＣ（０、０）の書込みは、Ａポートの影響を受けることなく、正常に行われる。
【００５７】
一方、先行してＡポートがメモリセルＭＣ（０、０）の読出しを開始し、その読出しサイクルが完了する前に同一行で異なる列のメモリセルＭＣ（０、１）をアクセスした場合、ワード線ネゲート回路４は、読出しサイクル期間にわたり、メモリセルＭＣ（０、０）と接続されるＡポートワード線ｗｒ００をハイレベルに維持する。また、ワード線ネゲート回路４は、メモリセルＭＣ（０、１）と接続されるＡポートワード線ｗｒ０１のロウレベルを維持する。その結果、先行して開始されたＡポートにおけるメモリセルＭＣ（０、０）の読出し動作は正常に行われるとともに、ＢポートにおけるメモリセルＭＣ（０、１）の書込み動作も、Ａポートの影響を受けることなく、正常に行われる。
【００５８】
単位ネゲート回路４０による読出しポートのワードドライバに対する制御が無い場合に発生する、メモリセルＭＣの書込み不良について説明する。
【００５９】
図３（ｂ）において、Ａポートメインデコーダ３ａは、信号ａ０１のロウレベルを維持しつつ、信号ａ００を所定期間ハイレベルに設定してメモリセルＭＣ（０、０）をアクセスする。この信号ａ００の変化に応答して、Ａポートワードドライバ５００は、時刻ｔ０から時刻ｔ３の期間にわたり、Ａポートワード線ｗｒ００をハイレベルに維持する。さらに、Ａポートカラムセレクタ８ａは、Ａポートビット線対ＢＬａ０／ＢＬＢａ０を選択する。この期間にわたり、メモリセルＭＣ（０、０）のノードＮ１およびノードＮ２は、各々、Ａポートビット線ＢＬａ０およびＢＬＢａ０と接続される（図２参照）。
【００６０】
図２において、ノードＮ１とＡポートビット線ＢＬａ０は、導通状態にあるｎ型トランジスタＭＴ１ａと接続されているため、Ａポートビット線ＢＬａ０の寄生容量は、ハイレベルにあるノードＮ１をロウレベルに引き下げるｎ型トランジスタＭＴ１ｂの負荷容量として作用する。同様に、ノードＮ２とＡポートビット線ＢＬＢａ０は、導通状態にあるｎ型トランジスタＭＴ２ａと接続されているため、Ａポートビット線ＢＬＢａ０の寄生容量は、ロウレベルにあるノードＮ２をハイレベルに引き上げるｎ型トランジスタＭＴ２ｂの負荷容量として作用する。即ち、読出しポートがメモリセルＭＣ（０、０）の保持データを読み出している期間に、書込みポートが同じメモリセルＭＣ（０、０）に保持データと逆のデータを書込む場合、読出しポートのビット線の寄生容量が書込みポートの負荷容量として作用し、書込み特性が悪化する。
【００６１】
半導体装置ＬＳＩの微細化が進むにつれ、不純物揺らぎ等の影響により、トランジスタ特性は、グローバルなばらつきに加えローカルなばらつきが発生する。ローカルなばらつきが発生すると、同じチップに搭載されていても、さらには、隣り合って配置されていても、トランジスタ特性のばらつきは存在する。図２に示すメモリセルＭＣの場合、ノードＮ１にデータを書込むｎ型トランジスタＭＴ１ｂの駆動能力が低い場合、特に、書込み特性が悪化する。さらに、ｎ型トランジスタＭＴ１ｂの駆動能力が低く、ｎ型トランジスタＭＴ１ａの駆動能力が高く、ｐ型トランジスタＭＬ２の駆動能力が低い組み合わせの場合、書込み特性が顕著に悪化する。読出しポートと書込みポート間のポート間スキューによっては、メモリセルＭＣの書込みが失敗する場合もある。
【００６２】
この書込み不良は、両ポート間のスキューに依存するため、両ポートが非同期で動作する場合、最悪のクロックスキューを再現してテストすることは困難である。従って、出荷試験での良品判定も困難である。この問題を解決するため、同番地またはレイアウト上における同一行に書込みを行う場合、読出し側のワード線を強制的に立ち下げる。書込み側の動作が読出し側の動作に影響されない回路設計により、ローカルなばらつきが発生しても書込み不良が発生しない半導体装置が実現可能となる。
【００６３】
＜実施の形態２＞
図４を参照して、実施の形態２に係る半導体装置ＬＳＩ２の構成を説明する。
【００６４】
半導体装置ＬＳＩ２は、読出しポートのＡポートと書込みポートのＢポートとを有する２ポートメモリを備える。図４が備える２ポートメモリは、図１が備える２ポートメモリと、次の点を除き、同一の構成を有する。図１に示すＡポートメインデコーダ３ａ、Ｂポートメインデコーダ３ｂ、ワード線ネゲート回路４、Ａポートワードドライバ５ｊ０／５ｊ１、およびＢポートワードドライバ５ｗｊは、図５に示すＡポートメインデコーダ３２ａ、Ｂポートメインデコーダ３２ｂ、ワード線ネゲート回路４２、Ａポートワードドライバ５２ｊ０／５２ｊ１、およびＢポートワードドライバ５２ｗｊに置き換えられる。
【００６５】
図４を参照して、２ポートメモリの構成を説明する。
Ａポートアドレスデコーダ２ａが有するＡポートプリデコーダ２ａｐは、フリップフロップ１ａが保持するＡポートアドレス信号に基づき、Ａポートメインデコーダ３２ａに、プリデコード信号を出力する。Ａポートメインデコーダ３２ａは、そのプリデコード信号に基づき、負論理の信号２ａ００／負論理の信号２ａ０１〜負論理の信号２ａｍ０／負論理の信号２ａｍ１を出力する。以下、負論理の信号２ａ００等の記載を、”負論理の”を省略して、単に、信号２ａ００等と記載する。信号２ａｊ０、および信号２ａｊ１は、各々、Ａポートワードドライバ５２ｊ０、およびＡポートワードドライバ５２ｊ１に入力される。Ａポートワードドライバ５２ｊ０および５２ｊ１は、各々、Ａポートワード線ｗｒｊ０およびＡポートワード線ｗｒｊ１を駆動する。
【００６６】
Ａポートアドレスデコーダ２ａは、さらに、Ａポートアドレス信号に基づき、信号ｃｓｅｌａを出力する。Ａポートカラムセレクタ８ａは、その信号ｃｓｅｌａに基づき、Ａポートビット線対ＢＬａ０／ＢＬＢａ０またはＡポートビット線対ＢＬａ１／ＢＬＢａ１のいずれか一方を選択する。
【００６７】
Ｂポートアドレスデコーダ２ｂが有するＢポートプリデコーダ２ｂｐは、フリップフロップ１ｂが保持するＢポートアドレス信号に基づき、Ｂポートメインデコーダ３２ｂに、プリデコード信号を出力する。Ｂポートメインデコーダ３２ｂは、そのプリデコード信号に基づき、信号２ｗｂ０〜信号２ｗｂｍを出力する。Ｂポートワードドライバ５２ｗｊは、その信号２ｗｂｊに基づき、Ｂポートワード線ｗｗｊを駆動する。
【００６８】
Ｂポートアドレスデコーダ２ｂは、さらに、Ｂポートアドレス信号に基づき、信号ｃｓｅｌｂを出力する。Ｂポートカラムセレクタ８ｂは、その信号ｃｓｅｌｂに基づき、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０またはＢポートビット線対ＢＬｂ１／ＢＬＢｂ１のいずれか一方を選択する。
【００６９】
ワード線ネゲート回路４２は、Ｂポートメインデコーダ３２ｂが出力する信号２ｗｂｊ、およびＢポートアドレスデコーダ２ｂが出力する信号ｃｓｅｌｂに基づき、Ａポートワードドライバ５２ｊ０および５２ｊ１の動作を制御する。ワード線ネゲート回路４２は、単位ネゲート回路４２０〜４２ｍで構成される。単位ネゲート回路４２ｊは、インバータＩＮＶ２、ＯＲゲートＧ０、およびＯＲゲートＧ１で構成される。ＯＲゲートＧ０は、信号２ｗｂ０および信号ｃｓｅｌｂのＯＲ演算結果を、信号ｇ０として出力する。ＯＲゲートＧ１は、信号２ｗｂｊ、およびインバータＩＮＶ２で信号ｃｓｅｌｂの論理レベルを反転させた信号のＯＲ演算結果を、信号ｇ１として出力する。
【００７０】
Ａポートワードドライバ５２ｊ０の一方の入力端子には、単位ネゲート回路４２ｊが出力する信号ｇ０が印加され、その他方の入力端子には、Ａポートメインデコーダ３２ａが出力する信号２ａｊ０が印加される。Ａポートワードドライバ５２ｊ１の一方の入力端子には、単位ネゲート回路４２ｊが出力する信号ｇ１が印加され、その他方の入力端子には、Ａポートメインデコーダ３２ａが出力する信号２ａｊ１が印加される。Ａポートワードドライバ５２ｊ０、および５２ｊ１の出力端子は、各々、Ａポートワード線ｗｒｊ０、およびｗｒｊ１と接続される。Ｂポートワードドライバ５２ｗｊの出力端子は、Ｂポートワード線ｗｗｊと接続される。
【００７１】
図５を参照して、実施の形態２に係る半導体装置ＬＳＩ２が備えるＡポートワードドライバ５２ｊ０および５２ｊ１の構成を説明する。
【００７２】
Ａポートワードドライバ５２ｊ０は、ソースに信号ｇ０が印加され、ドレインがＡポートワード線ｗｒｊ０と接続されたｐ型トランジスタＭＰ１と、ソースに電源電圧ＶＳＳが印加され、ドレインがＡポートワード線ｗｒｊ０と接続されたｎ型トランジスタＭＮ１と、を有する。両トランジスタのゲートには、Ａポートメインデコーダ３２ａが出力する信号２ａｊ０が印加される。Ａポートワードドライバ５２ｊ１は、ソースに信号ｇ１が印加され、ドレインがＡポートワード線ｗｒｊ１と接続されたｐ型トランジスタＭＰ１と、ソースに電源電圧ＶＳＳが印加され、ドレインがＡポートワード線ｗｒｊ１と接続されたｎ型トランジスタＭＮ１と、を有する。両トランジスタのゲートには、Ａポートメインデコーダ３２ａが出力する信号２ａｊ１が印加される。
【００７３】
図４を参照して、２ポートメモリの動作を説明する。
最初に、メモリセルＭＣ（０、０）またはメモリセルＭＣ（０、１）の読出しを行う場合を説明する。
【００７４】
Ａポートアドレス信号に基づいて、Ａポートメインデコーダ３２ａは、信号２ａ００および信号２ａ０１のいずれか一方をハイレベルに、いずれか他方をロウレベルに設定する。ＢポートでメモリセルＭＣへの書込みアクセスが発生していない場合、Ｂポートメインデコーダ３２ｂが出力する信号２ｗｂ０はハイレベルに設定される。従って、単位ネゲート回路４２０が出力する信号ｇ０および信号ｇ１は、いずれもハイレベルが維持される。信号２ａ００がロウレベル（信号２ａ０１がハイレベル）に設定された場合、Ａポートワードドライバ５２００は、Ａポートワード線ｗｒ００をハイレベルに設定する。信号２ａ０１がロウレベル（信号２ａ００がハイレベル）に設定された場合、Ａポートワードドライバ５２０１は、Ａポートワード線ｗｒ０１をハイレベルに設定する。
【００７５】
Ａポートカラムセレクタ８ａは、Ａポートアドレスデコーダ２ａが出力する信号ｃｓｅｌａに基づき、Ａポートビット線対ＢＬａ０／ＢＬＢａ０、およびＡポートビット線対ＢＬａ１／ＢＬＢａ１のいずれか一方を選択する。Ａポートメインデコーダ３２ａが出力する信号２ａ００がロウレベルの場合、信号ｃｓｅｌａはロウレベルに設定され、信号２ａ００がハイレベルの場合、信号ｃｓｅｌａはハイレベルに設定される。信号ｃｓｅｌａがロウレベルの場合、Ａポートビット線対ＢＬａ０／ＢＬＢａ０が選択され、信号ｃｓｅｌａがハイレベルの場合、Ａポートビット線対ＢＬａ１／ＢＬＢａ１が選択される。
【００７６】
従って、Ａポートワード線ｗｒ００で選択されたメモリセルＭＣ（０、０）のデータは、Ａポートカラムセレクタ８ａが選択したＡポートビット線対ＢＬａ０／ＢＬＢａ０に読み出され、Ａポートワード線ｗｒ０１で選択されたメモリセル（０、１）のデータは、Ａポートビット線対ＢＬａ１／ＢＬＢａ１に読み出される。
【００７７】
次に、ＡポートがメモリセルＭＣ（０、０）をアクセス中（読出し動作中）に、Ｂポートが同じメモリセルＭＣ（０、０）に対してアクセスを開始（書込みを開始）した場合の２ポートメモリの動作を説明する。
【００７８】
Ａポートアドレス信号に基づき、Ａポートメインデコーダ３２ａは、信号２ａ００をロウレベル、信号２ａ０１をハイレベルに設定する。さらに、Ａポートアドレスデコーダ２ａは、信号ｃｓｅｌａをロウレベルに設定する。その結果、Ａポートは、メモリセルＭＣ（０、０）のアクセスを開始する。Ｂポートアドレス信号に基づき、Ｂポートメインデコーダ３２ｂは、信号２ｗｂ０をロウレベルに設定する。さらに、Ｂポートアドレスデコーダ２ｂは、信号ｃｓｅｌｂをロウレベルに設定する。
【００７９】
ロウレベルに設定された信号２ｗｂ０に応答して、Ｂポートワードドライバ５２ｗ０は、Ｂポートワード線ｗｗ０をロウレベルからハイレベルに設定する。また、ロウレベルに設定された信号ｃｓｅｌｂに応答して、Ｂポートカラムセレクタ８ｂは、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０を選択する。その結果、ＢポートによるメモリセルＭＣ（０、０）のアクセスが開始される。
【００８０】
ＢポートによるメモリセルＭＣ（０、０）のアクセス開始前後における、単位ネゲート回路４２０の動作を説明する。Ｂポートのアクセス開始直前における単位ネゲート回路４２０は以下の状態にある。即ち、ＯＲゲートＧ０およびＧ１は、一方の入力端子に印加されたハイレベルの信号２ｗｂ０に応答して、各々が出力する信号ｇ０およびｇ１をハイレベルに設定する。このハイレベルの信号ｇ０とロウレベルの信号２ａ００が入力されるＡポートワードドライバ５２００は、Ａポートワード線ｗｒ００をハイレベルに設定する。一方、ハイレベルの信号ｇ１とハイレベルの信号２ａ０１が入力されるＡポートワードドライバ５２０１は、Ａポートワード線ｗｒ０１をロウレベルに設定する。
【００８１】
ＢポートによるメモリセルＭＣ（０、０）のアクセスが開始されると、ＯＲゲートＧ０およびＧ１の一方の入力端子に印加される信号２ｗｂ０はロウレベルに設定され、ＯＲゲートＧ０の出力ｇ０、およびＯＲゲートＧ１の出力ｇ１の論理レベルは、信号ｃｓｅｌｂにより決定される。Ｂポートカラムセレクタ８ｂは、信号ｃｓｅｌｂに基づき、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０、およびＢポートビット線対ＢＬｂ１／ＢＬＢｂ１のいずれか一方を選択する。信号ｃｓｅｌｂがロウレベルの場合、Ｂポートビット線対ＢＬｂ０／ＢＬＢｂ０が選択される。信号ｃｓｅｌｂがハイレベルの場合、Ｂポートビット線対ＢＬｂ１／ＢＬＢｂ１が選択される。ＢポートがメモリセルＭＣ（０、０）を選択する場合、信号ｃｓｅｌｂはロウレベルに設定される。
【００８２】
信号ｃｓｅｌｂがロウレベルに設定されると、ＯＲゲートＧ０には、信号ｃｓｅｌｂのロウレベルと信号２ｗｂ０のロウレベルが印加され、信号ｇ０はロウレベルに設定される。その結果、Ａポートワードドライバ５２００の出力はハイレベルから”ロウレベル”に変化し、ＡポートでアクセスされていたメモリセルＭＣ（０、０）のＡポートワード線ｗｒ００は”ロウレベル”に設定される。この場合、Ａポートワード線ｗｒ００の”ロウレベル”は、電源電圧ＶＳＳから、Ａポートワードドライバ５２００を構成するｐ型トランジスタＭＰ１の閾値電圧Ｖｔｈだけ上昇した値となる。
【００８３】
その理由は、図５に示す通り、ｐ型トランジスタＭＰ１のゲートにロウレベル（電源電圧ＶＳＳ）の信号２ａ０１が印加された状態で、ソースに印加される信号ｇ０の電圧を電源電圧ＶＤＤから低下させた場合、ソース電圧（Ａポートワード線ｗｒ００の電圧）が電源電圧ＶＳＳに閾値電圧Ｖｔｈ加えた電圧に達すると、ｐ型トランジスタＭＰ１が非導通状態となるからである。ワード線ｗｒ００の電圧が電源電圧ＶＳＳから閾値電圧Ｖｔｈ程度高い電圧であっても、メモリセルＭＣ（０、０）のＡポート（読出しポート）ワード線ｗｒ００で導通状態が制御されるｎ型トランジスタＭＴ１ａ／ＭＴ２ａの駆動能力は十分低下する（図２参照）。従って、Ｂポート（書込みポート）のメモリセルＭＣ（０、０）のアクセス時（書込み時）に、Ａポート側の影響は十分に低減される。
【００８４】
ＯＲゲートＧ１には、インバータＩＮＶ２で信号ｃｓｅｌｂの論理を反転させたハイレベルの信号とハイレベルの信号２ｗｂ０が印加され、信号ｇ１はハイレベルを維持する。その結果、Ａポートワードドライバ５２０１の出力はロウレベルを維持し、メモリセルＭＣ（０、１）と接続されるＡポートワード線ｗｒ０１はロウレベルを維持する。
【００８５】
ＡポートがメモリセルＭＣ（０、０）をアクセスしているときに、Ｂポートが同じメモリセルＭＣ（０、０）をアクセスした場合、Ａポートワードドライバ５２００は、単位ネゲート回路４２０の出力信号ｇ０に応答して、メモリセルＭＣ（０、０）と接続されているＡポートワード線ｗｒ００をハイレベルからロウレベルに引き下げる。即ち、単位ネゲート回路４２０は、先に開始されたＡポートによるメモリセルＭＣ（０、０）のアクセス（読出し動作）を強制的に終了させ、後に開始されたＢポートによる同一番地のメモリセルＭＣ（０、０）のアクセス（書込み動作）を継続させる。読出し動作が強制終了されたメモリセルＭＣ（０、０）において、ｎ型トランジスタＭＴ１ａによるノードＮ１およびＡポートビット線ＢＬａ０間の接続と、ｎ型トランジスタＭＴ２ａによるノードＮ２およびＡポートビット線ＢＬＢａ０間の接続は、切断される（図２参照）。
【００８６】
メモリセルＭＣ（０、０）のノードＮ１およびノードＮ２が、各々、Ａポートビット線ＢＬａ０およびＡポートビット線ＢＬＢａ０から解放されると、Ｂポートカラムセレクタ８ｂで選択されたビット線ＢＬｂ０およびＢＬＢｂ０に、ライトドライバ７が出力する書込みデータが印加される。その結果、メモリセルＭＣ（０、０）におけるノードＮ１およびノードＮ２のデータ（論理レベル）は、Ａポートビット線対ＢＬａ０／ＢＬＢａ０の影響を受けることなく、書き換えられる。
【００８７】
次に、ＡポートがメモリセルＭＣ（０、０）をアクセス中に、Ｂポートが、メモリセルＭＣ（０、０）と同一行で異なる列のメモリセルＭＣ（０、１）に対してアクセスを開始した場合の２ポートメモリの動作を説明する。
【００８８】
Ａポートアドレス信号に基づき、Ａポートメインデコーダ３２ａは、信号２ａ００をロウレベル、信号２ａ０１をハイレベルに設定する。さらに、Ａポートアドレスデコーダ２ａは、信号ｃｓｅｌａをロウレベルに設定する。その結果、ＡポートはメモリセルＭＣ（０、０）のアクセスを開始する。その後、Ｂポートアドレス信号に基づき、Ｂポートメインデコーダ３２ｂは、信号２ｗｂ０をロウレベルに設定する。さらに、Ｂポートアドレスデコーダ２ｂは、信号ｃｓｅｌｂをハイレベルに設定する。
【００８９】
ロウレベルに設定された信号２ｗｂ０に応答して、Ｂポートワードドライバ５２ｗ０は、Ｂポートワード線ｗｗ０をロウレベルからハイレベルに設定する。また、ハイレベルに設定された信号ｃｓｅｌｂに応答して、Ｂポートカラムセレクタ８ｂは、Ｂポートビット線対ＢＬｂ１／ＢＬＢｂ１を選択する。この結果、Ｂポートにおいて、ＡポートがアクセスしているメモリセルＭＣと同一行で異なる列のメモリセルＭＣ（０、１）のアクセス（書込み動作）が開始される。
【００９０】
Ｂポートのアクセス開始直前において、Ａポートメインデコーダ３２ａは、ロウレベルの信号２ａ００およびハイレベルの信号２ａ０１を出力している。単位ネゲート回路４２０は、ハイレベルの信号２ｗｂ０を受けて、ハイレベルの信号ｇ０およびｇ１を出力する。このハイレベルの信号ｇ０とロウレベルの信号２ａ００が入力されるＡポートワードドライバ５２００は、Ａポートワード線ｗｒ００をハイレベルに設定する。一方、ハイレベルの信号ｇ１とハイレベルの信号ａ００が入力されるＡポートワードドライバ５２０１は、Ａポートワード線ｗｒ０１をロウレベルに設定する。
【００９１】
ＢポートによるメモリセルＭＣ（０、１）のアクセスが開始されると、単位ネゲート回路４２０のＯＲゲートＧ０には、ハイレベルの信号ｃｓｅｌｂおよびロウレベルの信号２ｗｂ０が入力される。その結果、ＯＲゲートＧ０は、ハイレベルの信号ｇ０を維持する。一方、ＯＲゲートＧ１には、インバータＩＮＶ２で信号ｃｓｅｌｂの論理レベルを反転させたロウレベルの信号およびロウレベルの信号２ｗｂ０が入力される。その結果、ＯＲゲートＧ１は、ロウレベルの信号ｇ１を出力する。従って、Ａポートワードドライバ５２００は、Ａポートワード線ｗｒ００のハイレベルを維持するとともに、Ａポートワードドライバ５２０１は、Ａポートワード線ｗｒ０１のロウレベルを維持する。
【００９２】
ＡポートがメモリセルＭＣ（０、０）をアクセスしているときに、Ｂポートが、そのメモリセルＭＣ（０、０）と同一行で異なる列のメモリセルＭＣ（０、１）をアクセスした場合、単位ネゲート回路４２０は、メモリセルＭＣ（０、０）と接続されているＡポートワード線ｗｒ００のハイレベルを維持する。その結果、Ａポートの読出し動作は継続される。また、単位ネゲート回路４２０は、メモリセルＭＣ（０、１）と接続されているＡポートワード線ｗｒ０１のロウレベルを維持する。
【００９３】
ロウレベルに維持されているＡポートワード線ｗｒ０１により、メモリセルＭＣ（０、１）のノードＮ１およびノードＮ２は、Ａポートビット線対ＢＬａ１／ＢＬＢａ１から解放されている。Ｂポートカラムセレクタ８ｂは、ライトドライバ７が出力する書込みデータを選択したビット線対ＢＬｂ１およびＢＬＢｂ１に印加し、ノードＮ１およびノードＮ２の論理レベルを反転させる。
【００９４】
実施の形態２に係る半導体装置ＬＳＩ２が備える２ポートメモリは、読出しポートが選択しているメモリセルと同番地またはレイアウト上における同一行に書込みを行う場合、ワードドライバへ供給する電源電圧を制御することで読出しポートのワード線を強制的に立ち下げるワード線ネゲート回路を備える。その結果、先行して立ちあがった読出しポートのワード線を立ち下げる制御回路の構成を簡素化することが可能となる。
【００９５】
実施の形態１に係る半導体装置ＬＳＩ１および実施の形態２に係る半導体装置ＬＳＩ２が備える２ポートメモリにおいて、０〜Ｎビットの各ＩＯは、ｍ＋１行２列からなるメモリセルアレイＭＡを有していた。ｊ行に２列に配置されたメモリセルＭＣ（ｊ、０）およびメモリセルＭＣ（ｊ、１）は、１つのＢポートワード線ｗｗｊと接続されるとともに、Ａポートワード線ｗｒｊ０およびＡポートワード線ｗｒｊ１と各々接続されている。同一行に配置された複数のメモリセルＭＣが１つのＢポートワード線を共有し、かつ、各々個別に設けられたＡポートワード線と接続される構成は、同一行に２列のメモリセルＭＣを配置するメモリセルアレイＭＡに限定されない。
【００９６】
例えば、同一行（ｊ行）に４列のメモリセルＭＣ（ｊ、０）〜ＭＣ（ｊ、３）が配置されたメモリセルアレイを有する２ポートメモリセルに関しても、同様の機能を実現することが可能である。まず、図１に示される各ポートのカラムセレクタ（８ａ、８ｂ）を２ビットの信号で制御し、同一行に配置された４列のメモリセルＭＣ（ｊ、０）〜ＭＣ（ｊ、３）から１列のメモリセルを選択する構成とする。
【００９７】
そして、ｊ行に配置された４つのメモリセルに対し、１つのＢポートワード線ｗｗｊを接続するとともに、個別に分離して配置したＡポートワード線ｗｒｊ０〜ｗｒｊ３とメモリセルＭＣ（ｊ、０）〜メモリセルＭＣ（ｊ、３）とを各々接続する。Ａポートワード線ｗｒｊ０〜ワード線ｗｒｊ３の１つを選択するＡポートメインデコーダ３ａの選択信号とＢポートカラムセレクタを制御する２ビットのデータとを比較し、ＡポートのアクセスアドレスとＢポートのアクセスアドレスが一致した場合、ワード線ネゲート回路で、一致したアドレスのメモリセルＭＣと接続されているＡポートワード線をハイレベルからロウレベルへ強制的に引き下げる。ワード線ネゲート回路を上述のような構成とすることにより、同一行に２列を超える行数をカラムセレクタで選択するメモリセルアレイにおいても、読出しポートの影響を排除したメモリセルの書込み動作を実現することが可能である。
【００９８】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなく特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【００９９】
１ａ，１ｂ，６  フリップフロップ、２ａ  Ａポートアドレスデコーダ、２ａｐ  Ａポートプリデコーダ、２ｂ  Ｂポートアドレスデコーダ、２ｂｐ  Ｂポートプリデコーダ、３ａ，３２ａ  Ａポートメインデコーダ、３ｂ，３２ｂ  Ｂポートメインデコーダ、４，４２  ワード線ネゲート回路、４０，４ｍ，４２０，４２ｍ  単位ネゲート回路、５ｗ０，５ｗｍ，５２ｗ０，５２ｗｍ  Ｂポートワードドライバ、７  ライトドライバ、８ａ  Ａポートカラムセレクタ、８ｂ  Ｂポートカラムセレクタ、９  センスアンプ、１０  データ保持回路、１１  出力バッファ、ＢＬａ０，ＢＬａ１，ＢＬＢａ０，ＢＬＢａ１，ＢＬａｋ，ＢＬＢａｋ  Ａポートビット線、ＢＬｂ０，ＢＬｂ１，ＢＬＢｂ０，ＢＬＢｂ１，ＢＬｂｋ，ＢＬＢｂｋ  Ｂポートビット線、Ｆ０，Ｆ１  ＮＡＮＤ論理ゲート、Ｇ０，Ｇ１  ＯＲゲート、ＩＮＶ１，ＩＮＶ２  インバータ、ＬＳＩ１，ＬＳＩ２  半導体装置、ＭＡ  メモリセルアレイ、ＭＣ  メモリセル、Ｎ１，Ｎ２  ノード、ＶＤＤ，ＶＳＳ  電源電圧、ａ００，ａ０１，ａｊ０，ａｊ１，ａｍ０，ａｍ１，２ａ００，２ａ０１，２ａｍ０，２ａｍ１，２ｗｂ０，２ｗｂｍ，ｆ０，ｆ１，ｇ０，ｇ１，ｃｓｅｌａ，ｃｓｅｌｂ，ｗｂ０，ｗｂｊ，ｗｂｍ  信号、ｃｔｌａ，ｃｔｌｂ  制御信号、ｗｒ００，ｗｒ０１，ｗｒｍ０，ｗｒｍ１  Ａポートワード線、ｗｂ０，ｗｂｍ  Ｂポートワード線。
【図１】
2014053059.tif 000003
【図２】
2014053059.tif 000004
【図３】
2014053059.tif 000005
【図４】
2014053059.tif 000006
【図５】
2014053059.tif 000007