(57)【特許請求の範囲】
【請求項１】
メモリセルと、第１及び第２ワード線と、第１及び第２ビット線と、第１及び第２アドレス端子と、アドレス制御回路とを備え、第１及び第２動作モードを有するマルチポートメモリであって、
前記第１ワード線が活性化されることにより前記メモリセルが前記第１ビット線に電気的に接続され、
前記第２ワード線が活性化されることにより前記メモリセルが前記第２ビット線に電気的に接続され、
前記第１動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線を活性化するか否かの制御を行い、且つ、前記第２アドレス端子に入力される第２アドレス信号に基づいて前記第２ワード線を活性化するか否かの制御を行い、
前記第２動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、
前記アドレス制御回路は、第１及び第２アドレスデコーダと、第１及び第２セレクタとを備え、
前記第１動作モードにおいて、前記第１アドレス端子に入力される前記第１アドレス信号は、前記第１セレクタを介して前記第１アドレスデコーダに入力され、前記第１アドレスデコーダの出力に基づいて、前記第１ワード線を活性化するか否かの制御が行われ、前記第２アドレス端子に入力される前記第２アドレス信号は、前記第２セレクタを介して前記第２アドレスデコーダに入力され、前記第２アドレスデコーダの出力に基づいて、前記第２ワード線を活性化するか否かの制御が行われ、
前記第２動作モードにおいて、前記第１アドレス端子に入力される前記第１アドレス信号は、前記第１セレクタを介して前記第１アドレスデコーダに、前記第２セレクタを介して前記第２アドレスデコーダに、それぞれ入力され、前記第１及び第２アドレスデコーダの出力に基づいて、前記第１及び第２ワード線を活性化するか否かの制御が行われ、
前記マルチポートメモリは、前記第１及び第２ワード線をそれぞれ駆動する第１及び第２ワードドライバと、第１及び第２クロックジェネレータと、第１及び第２クロックセレクタと、第１、第２及び第３クロック端子とをさらに備え、
前記第１クロックセレクタは、前記第１クロック端子から入力される第１クロック信号と前記第３クロック端子から入力される第３クロック信号から１のクロック信号を選択して前記第１クロックジェネレータに供給し、
前記第２クロックセレクタは、前記第２クロック端子から入力される第２クロック信号と前記第３クロック信号から１のクロック信号を選択して前記第２クロックジェネレータに供給し、
前記第１クロックジェネレータは、前記第１ワードドライバに対して、前記第１ワード線を活性化するタイミングを与える、第１ワード線活性化パルスを供給し、
前記第２クロックジェネレータは、前記第２ワードドライバに対して、前記第２ワード線を活性化するタイミングを与える、第２ワード線活性化パルスを供給し、
前記第１動作モードにおいて、前記第１クロックセレクタは前記第１クロック信号を選択して前記第１クロックジェネレータに供給し、前記第２クロックセレクタは前記第２クロック信号を選択して前記第２クロックジェネレータに供給し、
前記第２動作モードにおいて、
前記第１及び第２クロックセレクタは、前記第３クロック信号を選択して前記第１及び第２クロックジェネレータにそれぞれ供給し、
前記第２クロックジェネレータは、前記第１クロックジェネレータが前記第１ワード線を活性化するタイミングよりも早く前記第２ワード線を活性化し、前記第１クロックジェネレータが前記第１ワード線を非活性化するタイミングよりも遅く前記第２ワード線を非活性化するタイミングを与える、第２ワード線活性化パルスを生成して、前記第２ワードドライバに供給し、
前記マルチポートメモリはデュアルポートメモリであり、動作モード制御端子と、第１及び第２ポートイネーブル端子とをさらに備え、
前記マルチポートメモリは、前記動作モード制御端子から入力される動作モード制御信号に基づいて、前記第１動作モードで動作するか、前記第２動作モードで動作するかが制御され、
前記第１動作モードで動作するときには、
前記第１ポートイネーブル端子から入力される第１ポートイネーブル信号がアサートされることを条件として、前記アドレス制御回路は前記第１アドレス信号に基く前記第１ワード線の制御を行い、前記第１クロックセレクタは前記第１クロック信号を選択して前記第１クロックジェネレータに供給し、
前記第２ポートイネーブル端子から入力される第２ポートイネーブル信号がアサートされることを条件として、前記アドレス制御回路は前記第２アドレス信号に基く前記第２ワード線の制御を行い、前記第２クロックセレクタは前記第２クロック信号を選択して前記第２クロックジェネレータに供給し、
前記第２動作モードで動作するときには、
前記第１ポートイネーブル端子から入力される第１ポートイネーブル信号がアサートされ、前記第２ポートイネーブル端子から入力される第２ポートイネーブル信号がネゲートされることを条件として、前記アドレス制御回路は、前記第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、前記第２クロックジェネレータは、前記第１クロックジェネレータが前記第１ワード線を活性化するタイミングよりも早く前記第２ワード線を活性化し、前記第１クロックジェネレータが前記第１ワード線を非活性化するタイミングよりも遅く前記第２ワード線を非活性化するタイミングを与える、第２ワード線活性化パルスを生成して、前記第２ワードドライバに供給し、
前記第２ポートイネーブル信号がアサートされ、前記第１ポートイネーブル信号がネゲートされることを条件として、前記アドレス制御回路は、前記第２アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、前記第１クロックジェネレータは、前記第２クロックジェネレータが前記第２ワード線を活性化するタイミングよりも早く前記第１ワード線を活性化し、前記第２クロックジェネレータが前記第２ワード線を非活性化するタイミングよりも遅く前記第１ワード線を非活性化するタイミングを与える、第１ワード線活性化パルスを生成して、前記第１ワードドライバに供給する、
マルチポートメモリ。
【請求項２】
請求項１に記載されるマルチポートメモリが、単一の半導体基板上に実装される、半導体装置。
【請求項３】
メモリセルと、第１及び第２ワード線と、第１及び第２ビット線と、第１及び第２アドレス端子と、アドレス制御回路とを備え、第１及び第２動作モードを有するマルチポートメモリであって、
前記第１ワード線が活性化されることにより前記メモリセルが前記第１ビット線に電気的に接続され、
前記第２ワード線が活性化されることにより前記メモリセルが前記第２ビット線に電気的に接続され、
前記第１動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線を活性化するか否かの制御を行い、且つ、前記第２アドレス端子に入力される第２アドレス信号に基づいて前記第２ワード線を活性化するか否かの制御を行い、
前記第２動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、
前記アドレス制御回路は、第１及び第２アドレスデコーダと、第１及び第２セレクタとを備え、
前記第１動作モードにおいて、前記第１アドレス端子に入力される前記第１アドレス信号は、前記第１セレクタを介して前記第１アドレスデコーダに入力され、前記第１アドレスデコーダの出力に基づいて、前記第１ワード線を活性化するか否かの制御が行われ、前記第２アドレス端子に入力される前記第２アドレス信号は、前記第２セレクタを介して前記第２アドレスデコーダに入力され、前記第２アドレスデコーダの出力に基づいて、前記第２ワード線を活性化するか否かの制御が行われ、
前記第２動作モードにおいて、前記第１アドレス端子に入力される前記第１アドレス信号は、前記第１セレクタを介して前記第１アドレスデコーダに、前記第２セレクタを介して前記第２アドレスデコーダに、それぞれ入力され、前記第１及び第２アドレスデコーダの出力に基づいて、前記第１及び第２ワード線を活性化するか否かの制御が行われ、
前記マルチポートメモリは、前記第１及び第２ワード線をそれぞれ駆動する第１及び第２ワードドライバと、第１及び第２クロックジェネレータと、第１及び第２クロックセレクタと、第１及び第２クロック端子とをさらに備え、
前記第１クロックセレクタは、前記第１クロック端子から入力される第１クロック信号と前記第２クロック端子から入力される第２クロック信号から１のクロック信号を選択して前記第１クロックジェネレータに供給し、前記第２クロックセレクタは、前記第１クロック信号と前記第２クロック信号から１のクロック信号を選択して前記第２クロックジェネレータに供給し、
前記第１クロックジェネレータは、前記第１ワードドライバに対して、前記第１ワード線を活性化するタイミングを与える、第１ワード線活性化パルスを供給し、
前記第２クロックジェネレータは、前記第２ワードドライバに対して、前記第２ワード線を活性化するタイミングを与える、第２ワード線活性化パルスを供給し、
前記第１動作モードにおいて、前記第１クロックセレクタは前記第１クロック信号を選択して前記第１クロックジェネレータに供給し、前記第２クロックセレクタは前記第２クロック信号を選択して前記第２クロックジェネレータに供給し、
前記第２動作モードにおいて、
前記第１及び第２クロックセレクタは、前記第１クロック信号を選択して前記第１及び第２クロックジェネレータにそれぞれ供給し、
前記第２クロックジェネレータは、前記第１クロックジェネレータが前記第１ワード線を活性化するタイミングよりも早く前記第２ワード線を活性化し、前記第１クロックジェネレータが前記第１ワード線を非活性化するタイミングよりも遅く前記第２ワード線を非活性化するタイミングを与える、第２ワード線活性化パルスを生成して、前記第２ワードドライバに供給する、
マルチポートメモリ。
【請求項４】
請求項３に記載されるマルチポートメモリが、単一の半導体基板上に実装される、半導体装置。
【請求項５】
メモリセルと、第１及び第２ワード線と、第１及び第２ビット線と、第１及び第２アドレス端子と、アドレス制御回路とを備え、第１及び第２動作モードを有するマルチポートメモリであって、
前記第１ワード線が活性化されることにより前記メモリセルが前記第１ビット線に電気的に接続され、
前記第２ワード線が活性化されることにより前記メモリセルが前記第２ビット線に電気的に接続され、
前記第１動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線を活性化するか否かの制御を行い、且つ、前記第２アドレス端子に入力される第２アドレス信号に基づいて前記第２ワード線を活性化するか否かの制御を行い、
前記第２動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、
前記アドレス制御回路は、第１及び第２アドレスデコーダと、前記第１及び第２アドレスデコーダの出力をそれぞれ強制的にアサートするか否かを制御する、第１及び第２アサート強制回路とを備え、
前記第１アドレス信号は前記第１アドレスデコーダに入力され、
前記第２アドレス信号は前記第２アドレスデコーダに入力され、
前記第１アサート強制回路の出力に基づいて前記第１ワード線を活性化するか否かの制御が行われ、
前記第２アサート強制回路の出力に基づいて前記第２ワード線を活性化するか否かの制御が行われ、
前記第１動作モードにおいて、前記第１アサート強制回路は前記第１アドレスデコーダの出力を強制的にアサートすることなくそのまま出力し、前記第２アサート強制回路は前記第２アドレスデコーダの出力を強制的にアサートすることなくそのまま出力し、
前記第２動作モードにおいて、前記第２アサート強制回路は前記第２アドレスデコーダの出力を強制的にアサートして出力する、
マルチポートメモリ。
【請求項６】
請求項５に記載されるマルチポートメモリが、単一の半導体基板上に実装される、半導体装置。
【請求項７】
メモリセルと、第１及び第２ワード線と、第１及び第２ビット線と、第１及び第２アドレス端子と、アドレス制御回路とを備え、第１及び第２動作モードを有するマルチポートメモリであって、
前記第１ワード線が活性化されることにより前記メモリセルが前記第１ビット線に電気的に接続され、
前記第２ワード線が活性化されることにより前記メモリセルが前記第２ビット線に電気的に接続され、
前記第１動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線を活性化するか否かの制御を行い、且つ、前記第２アドレス端子に入力される第２アドレス信号に基づいて前記第２ワード線を活性化するか否かの制御を行い、
前記第２動作モードにおいて、前記アドレス制御回路は、前記第１アドレス端子に入力される第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化するか否かの制御を行い、
動作モード制御端子と、第１及び第２ポートイネーブル端子とをさらに備え、
前記マルチポートメモリは、前記動作モード制御端子から入力される動作モード制御信号に基づいて、前記第１動作モードで動作するか、前記第２動作モードで動作するかが制御され、
前記第１動作モードで動作するときには、
前記第１ポートイネーブル端子から入力される第１ポートイネーブル信号がアサートされることを条件として、前記アドレス制御回路は前記第１アドレス信号に基く前記第１ワード線の制御を行い、
前記第２ポートイネーブル端子から入力される第２ポートイネーブル信号がアサートされることを条件として、前記アドレス制御回路は前記第２アドレス信号に基く前記第２ワード線の制御を行い、
前記第２動作モードで動作するときには、
前記第１ポートイネーブル端子から入力される第１ポートイネーブル信号がアサートされ、前記第２ポートイネーブル端子から入力される第２ポートイネーブル信号がネゲートされることを条件として、前記アドレス制御回路は、前記第１アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化し、
前記第２ポートイネーブル信号がアサートされ、前記第１ポートイネーブル信号がネゲートされることを条件として、前記アドレス制御回路は、前記第２アドレス信号に基づいて前記第１ワード線及び前記第２ワード線を活性化する、
マルチポートメモリ。
【請求項８】
請求項７に記載されるマルチポートメモリが、単一の半導体基板上に実装される、半導体装置。
【請求項９】
請求項７に記載されるマルチポートメモリと、第１及び第２中央処理装置とを、単一の半導体基板上に備える、半導体装置であって、
前記マルチポートメモリの前記第１アドレス端子、第１クロック端子及び第１ポートイネーブル端子には、前記第１中央処理装置から、第１アドレス信号、第１クロック信号及び第１ポートイネーブル信号がそれぞれ供給され、
前記マルチポートメモリの前記第２アドレス端子、第２クロック端子及び第２ポートイネーブル端子には、前記第２中央処理装置から、第２アドレス信号、第２クロック信号及び第２ポートイネーブル信号がそれぞれ供給される、
半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチポートメモリ、前記マルチポートメモリが搭載された半導体装置、および前記半導体装置を設計するＬＳＩ（Large Scale Integrated circuit）設計支援システムにおいてライブラリとして使用されるメモリマクロセルに関し、特に当該マルチポートのディスターブ状態におけるテストに好適に利用できるものである。
【背景技術】
【０００２】
デュアルポート（Dual Port）ＳＲＡＭ（Static Random Access Memory）（以下、ＤＰ−ＳＲＡＭと略記する）のテストでは、両ポートから同じメモリセルがアクセスされる所謂ディスターブ状態が、動作タイミングの余裕が少ないワースト状態の一つであることが知られている。ディスターブ状態とは、同一メモリセルに接続される複数のワード線が活性化した場合に、一方のワード線を使ったポートからの読み出しマージン及び／又は書込みマージンが、他方のワード線が活性化されていない場合よりも劣化する状態を言う。テスト対象のポートをテストポート、他方のワード線を活性化しているポートを加害ポートと呼ぶ。
【０００３】
特許文献１及び非特許文献１には、ディスターブ状態を適切に与えるために、加害ポート側とテストポート側のワード線を活性化するタイミングを調整する回路が開示されている。加害ポート側のワード線が活性化され、ディスターブ状態が飽和したときに、テストポート側のワード線を活性化する。
【０００４】
特許文献２には、２つのポートのワード線が活性化されるタイミングを、遅延制御信号に基づいて調整することができる、ＤＰ−ＳＲＡＭが開示されている。
【０００５】
特許文献３には、ＢＩＳＴ（Built In Self Test）回路が接続されたＤＰ−ＳＲＡＭが開示されている。２つのポートからの同時アクセスを指示するテストモード信号が入力されると、ＢＩＳＴ回路内のアドレスパターン生成回路が、Ａ／Ｂポートのそれぞれが同一のメモリセルを選択するようなアドレス信号ＡＡ［０：ａ］及びＡＢ［０：ａ］を生成して、ＤＰ−ＳＲＡＭのＡ／Ｂポートのアドレス入力端子に供給する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−８０００１号公報
【特許文献２】特開２００８−２９９９９１号公報
【特許文献３】特開２００９−６４５３２号公報
【非特許文献】
【０００７】
【非特許文献１】Yuichiro Ishii, et al, "A 28 nm Dual-Port SRAM Macro With Screening Circuitry Against Write-Read Disturb Failure Issues," IEEE J. Solid-State Circuits, U.S.A., Institute of Electrical and Electronics Engineers, Nov. 2011, Vol. 46, No. 11, pp. 2535-2544.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１、２、３及び非特許文献１について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００９】
特許文献１、２及び非特許文献１には、ワード線を活性化するタイミングを調整する回路機構は開示されているものの、１つのメモリセルに接続される複数のワード線を活性化させるための、アドレス信号の入力方法については記載されていない。マルチポートメモリは、通常、複数のポートを複数のアクセス主体が、それぞれ独立にアクセスすることができるように構成されている。例えば、複数のＣＰＵ（Central Processing Unit）がそれぞれ別々のポートに接続され、独立に、また、さらには非同期でマルチポートメモリをアクセスする。
【００１０】
そのため、マルチポートメモリにおいて、ディスターブ状態を実現するためには、特許文献１、２及び非特許文献１に記載されるようなワード線を活性化するタイミングの調整に加えて、１つのメモリセルに接続される複数のワード線を活性化させるためのアドレス信号を、複数のポートに同時に入力する必要がある。ただし、ここでいう「同時」とは、同じアクセスサイクルに寄与することを意味するものであって、物理的、数学的に厳密な同時刻を意味するものではない。
【００１１】
１つのメモリセルに接続される複数のワード線は、多くの場合、同じアドレス値によって活性化されるので、同じアドレス値を複数のポートのアドレス端子に同時に入力する必要がある。しかし、通常動作では、複数のポートをアクセスする複数のアクセス主体は、上述のように独立に動作するので、同じアドレス値を同時に入力することはできない。例えば、非同期で独立して動作する複数のＣＰＵが同時に（同じアクセスサイクルで）同じアドレスを発行するように構成することは困難である。
【００１２】
一方、特許文献３に記載されるようなＢＩＳＴ回路を、マルチポートメモリに接続することによって、同じアドレスを複数のポートに同時に入力することは可能となる。しかしながら、ＢＩＳＴはそれ自体が標準セルで構成されるため、メモリに対するチップ面積の面でのオーバーヘッドが大きい。特に、記憶容量の小さいメモリに対しては、オーバーヘッドが大きくなる。
【００１３】
以上のように、ＢＩＳＴ回路を利用しなくても、１つのポートに接続され独立して動作する１つのアクセス主体によって、ディスターブ状態を形成することができる、マルチポートメモリを提供することは、極めて有益である。
【００１４】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
一実施の形態によれば、下記の通りである。
【００１６】
すなわち、メモリセルと、第１及び第２ワード線と、第１及び第２ビット線と、第１及び第２アドレス端子と、アドレス制御回路とを備え、第１及び第２動作モードを有するマルチポートメモリであって、以下のように構成される。
【００１７】
メモリセルは、第１ワード線が活性化されることによって第１ビット線に、第２ワード線が活性化されることによって第２ビット線に、それぞれ電気的に接続される。即ち、第１及び第２ワード線は、同じメモリセルを選択することができる２本のワード線である。第１動作モードにおいて、アドレス制御回路は、第１アドレス端子に入力される第１アドレス信号に基づいて第１ワード線を活性化するか否かの制御を行い、且つ、第２アドレス端子に入力される第２アドレス信号に基づいて第２ワード線を活性化するか否かの制御を行う。即ち、第１ワード線と第２ワード線は、第１アドレス端子に入力される第１アドレス信号と第２アドレス端子に入力される第２アドレス信号とに基づいて、互いに独立に制御される。第２動作モードにおいて、アドレス制御回路は、第１アドレス端子に入力される第１アドレス信号に基づいて同じメモリセルに接続される第１ワード線と第２ワード線を活性化するか否かの制御を行う。
【発明の効果】
【００１８】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１９】
すなわち、第２動作モードにおいて、一方のアドレス端子からアドレス信号を入力するだけで、メモリをディスターブ状態に制御することができ、マルチポートメモリの１つのポートに接続されるアクセス主体を制御するだけで、ディスターブ状態でのテストが可能となる。
【図面の簡単な説明】
【００２０】
【図１】図１は、一実施の形態によるマルチポートメモリの構成を、模式的に示すブロック図である。
【図２】図２は、マルチポートメモリの一例であるＤＰ−ＳＲＡＭのメモリセルの構成を示す回路図である。
【図３】図３は、マルチポートメモリの一例であるＤＰ−ＳＲＡＭの全体構成を示す模式図である。
【図４】図４は、実施形態２に係るＤＰ−ＳＲＡＭの構成図である。
【図５】図５は、実施形態２に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。
【図６】図６は、クロックジェネレータの動作を示すタイミングチャートである。
【図７】図７は、実施形態３に係るＤＰ−ＳＲＡＭの構成図である。
【図８】図８は、実施形態３に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。
【図９】図９は、実施形態４に係るＤＰ−ＳＲＡＭの構成図である。
【図１０】図１０は、実施形態４に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。
【図１１】図１１は、実施形態５に係るＤＰ−ＳＲＡＭの構成図である。
【図１２】図１２は、実施形態５に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。
【図１３】図１３は、実施形態５に係るＤＰ−ＳＲＡＭを用いたシステム構成の一例を示す模式図である。
【図１４】図１４は、マルチポートメモリをライブラリとして利用するＬＳＩ設計支援システムの一構成例を模式的に示すブロック図である。
【発明を実施するための形態】
【００２１】
実施の形態について詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。ブロック図、構成図における信号線上の斜め線は、その信号線が複数の配線で構成されることを意味する、所謂ベクタ表示である。ただし、ベクタ表示されていない信号線を複数の配線で構成することもでき、一方ベクタ表示されていても、仕様によっては１本の配線で実装される場合もあり得る。
【００２２】
〔実施形態１〕
図１は、一実施の形態によるマルチポートメモリ１００の構成を、模式的に示すブロック図である。図示されるマルチポートメモリ１００は、ｋ個のポートを有する、ｎビットｍワードのマルチポートメモリである（ｋ、ｎ、ｍはそれぞれ正の整数）。マルチポートメモリ１００は、メモリセルアレイ６０と、入出力回路５０と、アドレス制御回路１０と、アドレス端子ＸＡ１，ＸＡ２〜ＸＡｋと、制御信号端子Ｘｃｔｒｌとを備える。メモリセルアレイ６０は、ｎ行ｍ列のマトリクス状に配列されたメモリセルＭＣ＿０＿０〜ＭＣ＿０＿ｎ−１，ＭＣ＿ｍ−１＿０〜ＭＣ＿ｍ−１＿ｎ−１で構成される。個々のメモリセルＭＣは、１ビットの情報を記憶する、プリミティブなメモリセルＰＭＣと各ポートに対応する複数のトランスファーゲートＭＴ１，ＭＴ２，…（ＭＴ１とＭＴ２のみを図示）から構成される。
【００２３】
メモリセルアレイ６０には、各ポートに対応する、ｍ×ｋ本のワード線ＷＬ１＿０〜ＷＬ１＿ｍ−１，ＷＬ２＿０〜ＷＬ２＿ｍ−１，…，ＷＬｋ＿０〜ＷＬｋ＿ｍ−１と、これら複数のワード線と交差する方向に、ｎ×ｋ本のビット線ＢＬ１＿０〜ＢＬ１＿ｎ−１，ＢＬ２＿０〜ＢＬ２＿ｎ−１，…，ＢＬｋ＿０〜ＢＬｋ＿ｎ−１が配線されている。ワード線とビット線が交差する箇所にメモリセルが配置されている。各ポートに対応して、第１のポートに対応する第１のワード線ＷＬ１＿０が活性化されることにより、これらに接続されるメモリセルＭＣ＿０＿０〜ＭＣ＿０＿ｎ−１が第１のビット線ＢＬ１＿０〜ＢＬ１＿ｎ−１に電気的にそれぞれ接続される。同様に、第２のポートに対応する第２のワード線ＷＬ２＿０が活性化されることにより、これらに接続されるメモリセルＭＣ＿０＿０〜ＭＣ＿０＿ｎ−１が第２のビット線ＢＬ２＿０〜ＢＬ２＿ｎ−１に電気的にそれぞれ接続される。さらに以下同様に、第ｋのポートに対応する第ｋのワード線ＷＬｋ＿０が活性化されることにより、これらに接続されるメモリセルＭＣ＿０＿０〜ＭＣ＿０＿ｎ−１が第ｋのビット線ＢＬｋ＿０〜ＢＬｋ＿ｎ−１に電気的にそれぞれ接続される。他の各ワードに対応するワード線についても同様である。
【００２４】
アドレス制御回路１０には各ポートに対応するアドレス端子ＸＡ１，ＸＡ２，…，ＸＡｋからアドレス信号Ａ１，Ａ２，…，Ａｋが入力され、さらに、制御信号端子Ｘｃｔｒｌから各種の制御信号が入力されている。アドレス制御回路１０は、入力された制御信号によって選択されたアドレス信号の値に基づいて、ワード線ＷＬ１＿０〜ＷＬ１＿ｍ−１，ＷＬ２＿０〜ＷＬ２＿ｍ−１，…，ＷＬｋ＿０〜ＷＬｋ＿ｍ−１を活性化するとともに、入出力回路５０を制御する。入出力回路５０は、各ポートに対応するデータ入出力端子ＸＤ１，ＸＤ２，…，ＸＤｋとの間でデータＤ１，Ｄ２，…，Ｄｋの入出力を行う。入出力回路５０は、制御信号端子Ｘｃｔｒｌから入力される各種の制御信号に基づいて、メモリセルアレイ６０との間で、ビット線に読み出されたデータを読み出して対応するデータ入出力端子に出力し、または、データ入出力端子から入力されたデータを、メモリセルアレイ６０内の選択されたワードの各ビットに対応するメモリセルに書き込むために、対応するビット線を駆動する。
【００２５】
マルチポートメモリ１００は、特に制限されないが、例えば、公知のＣＭＯＳＦＥＴ（Complementary Metal-Oxide-Semiconductor Field Effect Transistor）半導体製造技術を用いて、シリコンなどの単一半導体基板上に形成されるＬＳＩに搭載される。このとき、マルチポートメモリ１００の回路情報、レイアウト情報、及びそれらに伴う性能などの設計情報は、ＬＳＩ設計支援システムにおけるライブラリに含まれるメモリマクロセルとして提供されることができる。この点については、実施形態６で詳述する。
【００２６】
本実施形態１のマルチポートメモリ１００は、第１及び第２動作モード（ｍｏｄｅＡ，ｍｏｄｅＢ）を含む、複数の動作モードを有する。
【００２７】
第１動作モードｍｏｄｅＡは、例えば通常動作モードであって、アドレス制御回路１０は、ポートごとに独立の制御を行う。即ち、各ポートに対応するアドレス端子から入力されるアドレス信号に基づいて、対応するポートのワード線を活性化するか否かの制御を行う。例えば、第１のポートに対応する、アドレス端子ＸＡ１に入力されるアドレス信号Ａ１に基づいて、ワード線ＷＬ１＿０〜ＷＬ１＿ｍ−１のうちの１本を活性化し、第２のポートに対応する、アドレス端子ＸＡ２に入力されるアドレス信号Ａ２に基づいて、ワード線ＷＬ２＿０〜ＷＬ２＿ｍ−１のうちの１本を活性化する制御を行う。
【００２８】
第２動作モードｍｏｄｅＢは、例えばディスターブ状態におけるメモリテストのための動作モードであって、アドレス制御回路１０は、テスト対象のポートのメモリセルに接続される他のポートのワード線を活性化する制御を行う。当該メモリセルに対するテスト対象のポートからのアクセスに対して、同じメモリセルに接続される他のポートのワード線を活性化することによって、ディスターブ状態となる。即ち、テスト対象のポートに対応するアドレス端子から入力されるアドレス信号に基づいて、当該テスト対象のポートのワード線を活性化するか否かの制御を行うとともに、ディスターブ側のポートのワード線を活性化するか否かの制御を合せて行う。例えば、第２動作モードｍｏｄｅＢにおいて、アドレス制御回路１０は、アドレス端子ＸＡ１に入力されるアドレス信号Ａ１に基づいて第１ポートに対応するワード線ＷＬ１＿０〜ＷＬ１＿ｍ−１のうちの１本を活性化するとともに、同じメモリセルに接続される、第２ポートに対応するワード線ＷＬ２＿０〜ＷＬ２＿ｍ−１のうちの１本を活性化する制御を行う。
【００２９】
これにより、第２動作モードｍｏｄｅＢにおいて、１つのポートのアドレス端子からアドレス信号を入力するだけで、メモリをディスターブ状態に制御することができ、マルチポートメモリの１つのポートに接続されるアクセス主体を制御するだけで、ディスターブ状態でのメモリテストが可能となる。
【００３０】
さらに、第３動作モードｍｏｄｅＣを備えてもよい。第３動作モードｍｏｄｅＣも、ディスターブ状態におけるメモリテストのための動作モードであって、アドレス制御回路１０は、第２動作モードｍｏｄｅＢにおけるテスト対象のポートとは異なるポートをテスト対象のポートとし、そのメモリセルに接続される他のポートのワード線を活性化する制御を行う。例えば、第３動作モードｍｏｄｅＣにおいては、アドレス制御回路１０は、アドレス端子ＸＡ２に入力されるアドレス信号Ａ２に基づいて第１ポートに対応するワード線ＷＬ１＿０〜ＷＬ１＿ｍ−１のうちの１本を活性化するとともに、同じメモリセルに接続される、第２ポートに対応するワード線ＷＬ２＿０〜ＷＬ２＿ｍ−１のうちの１本を活性化する制御を行う。これにより、第２のポートからのアクセスがテスト対象となり、第１のポートはディスターブ側となる。
【００３１】
３以上のポートを備えるマルチポートメモリでは、１つのテスト対象ポートに対して、少なくとも１つのポートがディスターブ側として機能することにより、ディスターブ状態でのメモリテストを行うことができる。全てのポートの動作が独立であるような仕様のマルチポートメモリでは、テスト対象のポート以外の全てのポートのワード線が活性化される場合が、最悪のディスターブ状態となる。このような場合には、アドレス制御回路１０は、テスト対象のポートのアドレスに基づいて、同じメモリセルに接続される他のポートのワード線を活性化する。一方、ポート間での同時アクセスに何らかの制約が設けられているマルチポートメモリでは、その制約の範囲内で最悪のディスターブ状態となるように、動作モードを規定し、それに対応するアドレス制御回路１０を設ければよい。
【００３２】
本実施形態１で図示した構成は一例に過ぎない。ポート数ｋは２以上であれば任意であり、ワード数ｍ、ビット数ｎも任意である。各ポートは必ずしも書込みと読出しの両方の機能を備えている必要はなく、ポート毎に任意に定めればよい。また、ビット線は１ビットの情報を正論理と負論理の２本の信号配線で伝達する、相補的な構成としてもよい。このとき、読出し専用ポートに対応するビット線に接続されるメモリセルには、読出し信号を増幅するバッファトランジスタがさらに設けられていてもよい。さらに、メモリセルは、揮発性、不揮発性を問わず、任意である。ＳＲＡＭ、ＤＲＡＭ（Dynamic Random Access Memory）、電気的な書き換えが可能または不可能なＲＯＭ（Read Only Memory）であってもよい。マルチポートメモリのうち、ポート数ｋ＝２であり、メモリがＳＲＡＭである場合を特にデュアルポートＳＲＡＭ（ＤＰ−ＳＲＡＭ）と呼ぶ。
【００３３】
以下の各実施形態２〜５では、ＤＰ−ＳＲＡＭについての詳細な実施の形態について説明するが、ポート数ｋが３以上のマルチポートに拡張し、或いは、ＳＲＡＭ以外のメモリにも任意に変更することができる。
【００３４】
〔実施形態２〕
図２は、マルチポートメモリの一例であるＤＰ−ＳＲＡＭのメモリセルＭＣの構成を示す回路図である。２個のポートを「Ａポート」と「Ｂポート」と称して説明する。典型的な６ＭＯＳ−ＳＲＡＭのメモリセルをデュアルポートにするために、２個のＭＯＳＦＥＴによるトランスファーゲートを追加して８個のＭＯＳＦＥＴで構成したものである。電源と接地電位との間にそれぞれ２個のＭＯＳＦＥＴ（Ｍ１とＭ２、Ｍ３とＭ４）で構成された２個のインバータが、互いの出力を他方の入力に接続されて、プリミティブな記憶素子（図１ではＰＭＣに対応）を構成している。その記憶素子の２個の記憶ノードにそれぞれ２個ずつのトランスファーゲートＭ５とＭ６、Ｍ７とＭ８が接続されている。Ａポートに対応するワード線ＷＬＡと相補的なビット線ＢＬＡと／ＢＬＡ、及び、Ｂポートに対応するワード線ＷＬＢと相補的なビット線ＢＬＢと／ＢＬＢが配線されている。ワード線ＷＬＡはトランスファーゲートＭ５とＭ７のゲート端子に接続され、活性化されるとメモリセルの記憶ノードを、ビット線ＢＬＡと／ＢＬＡに電気的に接続し、ワード線ＷＬＢはトランスファーゲートＭ６とＭ８のゲート端子に接続され、活性化されるとメモリセルの記憶ノードを、ビット線ＢＬＢと／ＢＬＢに電気的に接続する。
【００３５】
図３は、マルチポートメモリの一例であるＤＰ−ＳＲＡＭ１００の全体構成を示す模式図である。ＤＰ−ＳＲＡＭ１００は、メモリセルアレイ６０と、Ａポートに対応する入出力回路Ａ（５１）、制御回路Ａ（１１）及びワードドライバＡ（１３）と、Ｂポートに対応する入出力回路Ｂ（５２）、制御回路Ｂ（１２）及びワードドライバＢ（１４）とで構成される。入出力回路Ａ（５１）と入出力回路Ｂ（５２）は図１における入出力回路５０の構成例であり、制御回路Ａ（１１）と制御回路Ｂ（１２）とワードドライバＡ（１３）とワードドライバＢ（１４）は図１におけるアドレス制御回路１０の構成例である。入出力回路Ａ（５１）と入出力回路Ｂ（５２）は、図示が省略されているビット線駆動回路と、センスアンプと、プリチャージ回路とをそれぞれ備え、ビット線ＢＬＡと／ＢＬＡとビット線ＢＬＢと／ＢＬＢにそれぞれ接続されている。ワードドライバＡ（１３）とワードドライバＢ（１４）は、ワード線ＷＬＡとＷＬＢにそれぞれ接続されている。ワード線ＷＬＡとＷＬＢは、それぞれ複数本のワード線（図１ではｍ本）のうちの１本が例示されたものである。ワードドライバＡ（１３）とワードドライバＢ（１４）は、制御回路Ａ（１１）と制御回路Ｂ（１２）によってそれぞれ制御されることによって、各ポートに対応する複数のワード線のうちの１本または複数のワード線を活性化させる。制御回路Ａ（１１）と制御回路Ｂ（１２）は、それぞれ入出力回路Ａ（５１）と入出力回路Ｂ（５２）によるビット線プリチャージ、ビット線駆動、または、センスアンプの起動などの制御を合せて行う。
【００３６】
図４は、実施形態２に係るＤＰ−ＳＲＡＭ１００の構成図である。ＤＰ−ＳＲＡＭ１００は、メモリセルアレイ６０と、Ａポートに対応する入出力回路Ａ（５１）、制御回路Ａ（１１）及びワードドライバＡ（１３）と、Ｂポートに対応する入出力回路Ｂ（５２）、制御回路Ｂ（１２）及びワードドライバＢ（１４）とで構成される。
【００３７】
Ａポート側の制御回路Ａ（１１）は、入出力制御回路Ａ（１５）、プリチャージ制御回路Ａ（１７）、プリデコーダＡ（１９）、クロックジェネレータＡ（２１）、アドレス選択回路Ａ（２３）及びクロック選択回路Ａ（２７）を備え、アドレスＡＡ、Ａポートイネーブル信号ＣＥＡ及びＡポートクロックＣＬＫＡが入力されている。さらに、テストモードイネーブルＴＭＥも、制御回路Ａ（１１）に入力されている。一方Ｂポート側の制御回路Ｂ（１２）は、入出力制御回路Ｂ（１６）、プリチャージ制御回路Ｂ（１８）、プリデコーダＢ（２０）、クロックジェネレータＢ（２２）、アドレス選択回路Ｂ（２４）及びクロック選択回路Ｂ（２８）を備え、アドレスＡＢ、Ｂポートイネーブル信号ＣＥＢ及びＢポートクロックＣＬＫＢが入力されている。制御回路Ａ（１１）と制御回路Ｂ（１２）には、さらにテストクロックＴＣＬＫと選択信号ＳＥＬＴとが共通に入力されており、それぞれＡポート側の入出力回路Ａ（５１）及びワードドライバＡ（１３）と、Ｂポート側の入出力回路Ｂ（５２）及びワードドライバＢ（１４）をそれぞれ制御する。
【００３８】
Ａポート側の制御回路Ａ（１１）からＢポート側の制御回路Ｂ（１２）へはＴＡＡとＴＣＥＡが供給され、Ｂポート側の制御回路Ｂ（１２）からＡポート側の制御回路Ａ（１１）へはＴＡＢとＴＣＥＢが供給されている。ＴＡＡとＴＡＢは、ディスターブテスト時にテスト側から加害側に渡されるアドレス信号であり、ＴＣＥＡとＴＣＥＢはディスターブテスト時にテスト側から加害側のクロックを活性化する信号である。
【００３９】
Ａポート側のアドレス選択回路Ａ（２３）は、自身のアドレスＡＡとＢポート側から供給されるアドレス信号ＴＡＢのうちの一方を、選択されたアドレスＳＡＡとして、プリデコーダＡ（１９）に供給する。Ｂポート側のアドレス選択回路Ｂ（２４）も同様に、自身のアドレスＡＢとＡポート側から供給されるアドレス信号ＴＡＡのうちの一方を、選択されたアドレスＳＡＢとして、プリデコーダＢ（２０）に供給する。プリデコーダＡ（１９）とプリデコーダＢ（２０）のデコード結果ＤＡＡとＤＡＢは、それぞれワードドライバＡ（１３）とワードドライバＢ（１４）に供給され、対応するワード線が活性化される。
【００４０】
ＤＰ−ＳＲＡＭ１００の動作について、図４に加えて図５も引用して説明する。図４に示される論理回路は、図５に示す真理値表の機能を実現するための回路の一例であって、信号の正論理／負論理を含め、任意に変更することができる。
【００４１】
図５は、実施形態２に係るＤＰ−ＳＲＡＭ１００の動作を真理値表の形で示す説明図である。
【００４２】
選択信号ＳＥＬＴが“０”のとき通常動作モードでありクロック選択回路Ａ，Ｂ（２７，２８）によって、ＣＬＫＡとＣＬＫＢがそれぞれのポートの動作クロックとして選択される。選択信号ＳＥＬＴが“１”のときテストモードであって、クロック選択回路Ａ，Ｂ（２７，２８）によって、ＴＣＬＫがＡ，Ｂ両ポートに共通の動作クロックとして選択される。テストモード（ＳＥＬＴ＝“１”）において、テストモードイネーブルＴＭＥが“０”のときは通常のメモリテストを行い、“１”のときはディスターブ状態でのメモリテストを行う。
【００４３】
ＣＥＡとＣＥＢは、通常動作モード（ＳＥＬＴ＝“０”）では、ＡポートとＢポートそれぞれに独立のポートイネーブル信号として機能し、ＣＥＡがアサートされた状態（“１”）でＡポートをＣＬＫＡに同期して動作させ、ＣＥＢがアサートされた状態（“１”）でＢポートをＣＬＫＢに同期して動作させる。テストモード（ＳＥＬＴ＝“１”）においても、通常のメモリテスト（ＴＭＥ＝“０”）では、ＡポートとＢポートそれぞれに独立のポートイネーブル信号として機能する。ただし、どちらのポートの動作もともにテストクロックＴＣＬＫに同期した動作となる。テストモード（ＳＥＬＴ＝“１”）でさらに、ディスターブ状態でのメモリテスト（ＴＭＥ＝“１”）では、ＣＥＡとＣＥＢは、テスト対象ポートと加害ポートを指定するための信号として機能する。ここで、テスト対象ポートとは実際にメモリセルへのテストのためのアクセスが行われるポートであり、加害ポートとは同じメモリセルに接続されるワード線を活性化して、ディスターブ状態を形成するポートである。ＣＥＡ＝“１”、ＣＥＢ＝“０”のとき、Ａポートがテスト対象となり、Ｂポートが加害ポートとなる。逆に、ＣＥＡ＝“０”、ＣＥＢ＝“１”のときは、Ｂポートがテスト対象となり、Ａポートが加害ポートとなる。ＣＥＡ＝“１”、ＣＥＢ＝“１”のときは、非ディスターブ動作であり、ＣＥＡ＝“０”、ＣＥＢ＝“０”のときは、どちらのポートもアクセスされないＮＯＰ（No OPereation）である。
【００４４】
通常動作モード（ＳＥＬＴ＝“０”）についてさらに詳しく説明する。Ａポートの動作についてのみ説明するが、ＡポートとＢポートは非同期で独立に動作可能であるので、Ｂポートの動作も同様である。ＳＥＬＴ＝“０”なのでＴＥＳＴ＝“０”である。ここで、ＴＥＳＴはディスターブテストモードであることを示す信号であり、“１”でディスターブテストモード、“０”で通常のメモリテストまたは通常動作モードであることを示す。ＣＥＡ＝“１”でＡポートがイネーブルに制御されると、ＣＫＥＡ＝“１”となるが、ＴＥＳＴ＝“０”なのでＴＣＥＡ＝“０”である。ここで、ＣＫＥＡはクロックを活性化するための信号であり、ＣＫＥＡ＝“１”でＡポート側のクロックが活性化される。ＴＣＥＡはディスターブテストモードではテスト側から加害側のクロックを活性化する信号であり、ＴＣＥＡ＝“１”で他方側であるＢポートのクロックを活性化するが、ＴＥＳＴ＝“０”でありＴＣＥＡ＝“０”なので、Ｂポート側には影響を与えない。ＣＫＥＡ＝“１”なのでＳＣＫＡにはクロック選択回路Ａ（２７）によって選択されたＣＬＫＡが出力され、クロックジェネレータＡ（２１）に入力される。クロックジェネレータＡ（２１）からは、ＳＣＫＡの立上りを起点とする内部クロックＩＣＫＡが出力される。ＩＣＫＡのタイミングについては後述する。アドレス選択回路Ａ（２３）からはＡポート自身のアドレスＡＡが選択されてＳＡＡとしてプリデコーダＡ（１９）に供給されている。プリデコーダＡ（１９）から出力されるデコード結果ＤＡＡに基づいて、ワードドライバＡ（１３）は、アドレスＡＡに対応する１本のワード線を活性化する。ワード線が活性化されるタイミング、及び、入出力制御回路Ａ（１５）とプリチャージ制御回路Ａ（１７）の動作タイミングは、ＩＣＫＡによって規定される。読出し時は、プリチャージ制御回路Ａ（１７）が動作することによってビット線がプリチャージされ、アドレスＡＡに対応するワード線が活性化され、入出力制御回路Ａ（１５）が動作することによって入出力回路Ａ（５１）内のセンスアンプ（不図示）が動作して、活性化されたワード線によって選択されたメモリセルからデータが読み出される。書込み時は、アドレスＡＡに対応するワード線が活性化され、入出力制御回路Ａ（１５）が動作することによって入出力回路Ａ（５１）内のビット線駆動回路（不図示）がビット線を駆動して、活性化されたワード線によって選択されたメモリセルにデータを書き込む。
【００４５】
ＴＣＬＫによる通常のメモリテストモード（ＳＥＬＴ＝“１”，ＴＭＥ＝“０”）について説明する。ＳＥＬＴ＝“１”なので、ＳＣＫＡとＳＣＫＢにはクロック選択回路Ａ（２７）とクロック選択回路Ｂ（２８）によってそれぞれ選択されたＴＣＬＫが出力され、クロックジェネレータＡ（２１）とクロックジェネレータＢ（２２）に入力される。これにより、ＤＰ−ＳＲＡＭ１００の動作は、テストクロックＴＣＬＫに同期することとなる。それ以外の動作は、上述の通常動作モードと同じであるので、説明を省略する。
【００４６】
ディスターブテストモード（ＳＥＬＴ＝“１”，ＴＭＥ＝“１”）について説明する。
【００４７】
ＣＥＡ＝“１”、ＣＥＢ＝“０”のとき、Ａポートがテスト対象ポートとなり、Ｂポートが加害ポートとなる。
【００４８】
Ａポート側では、ＣＫＥＡ＝“１”となり、ＳＣＫＡにはＴＣＬＫが選択されて出力され、クロックジェネレータＡ（２１）に供給される。また、ＩＦＡ＝“０”であり、ＳＡＡにはＡＡが選択されて出力され、プリデコーダＡ（１９）に供給される。クロックジェネレータＡ（２１）から出力されるＩＣＫＡに同期して、プリデコーダＡ（１９）のデコード結果ＤＡＡによって選択されたＡＡに対応するワード線が活性化され、また、入出力制御回路Ａ（１５）とプリチャージ制御回路Ａ（１７）がＩＣＫＡに同期して動作することによって、Ａポート側のデータの読出しまたは書込みが実行される。また、ＴＣＥＡ＝“１”であるので、このＡポート側のメモリアクセス動作と並行して、Ａポート側のアドレスＡＡがＴＡＡに伝達される。
【００４９】
Ｂポート側では、ＣＥＢ＝“０”であるので、ＩＦＢ＝“１”となり、アドレス選択回路Ｂ（２４）は、Ｂポート側のアドレスＡＢに代えてＡポート側から伝達されたＴＡＡ、即ちＡポート側のアドレスＡＡを選択して、ＳＡＢに出力し、プリデコーダＢ（２０）に供給する。したがって、Ｂポート側でも、プリデコーダＢ（２０）によってＡポート側と同じアドレスＡＡに対応するワード線が選択され、ワードドライバＢ（１４）によって活性化される。また、Ｂポート側のイネーブル信号であるＣＥＢ＝“０”であるが、Ａポート側から供給されるＴＣＥＡ＝“１”であるので、ＣＫＥＢ＝“１”となり、Ｂポートクロック選択信号ＳＣＫＢにはＴＣＬＫが選択されて、クロックジェネレータＢ（２２）に供給される。クロックジェネレータＢ（２２）は、ＴＣＬＫに同期するＢポート内部クロックＩＣＫＢを生成して出力する。ワードドライバＢ（１４）は、ＩＣＫＢに同期して動作するが、ＩＦＢ＝“１”であるので、ＩＣＫＢはプリチャージ制御回路Ｂ（１８）と入出力制御回路Ｂ（１６）には伝達されず、入出力回路Ｂ（５２）はビット線のプリチャージはオフされず、Ｂポート側では読出しも書込みも行われない。
【００５０】
ＣＥＡ＝“０”、ＣＥＢ＝“１”のときは、逆に、Ｂポートがテスト対象ポートとなり、Ａポートが加害ポートとなって、上述したのと同様に動作する。説明は省略する。
【００５１】
ＣＥＡ＝“０”、ＣＥＢ＝“０”のときは、ＴＣＥＡ＝“０”、ＴＣＥＢ＝“０”であり、ＣＫＥＡ＝“０”、ＣＫＥＢ＝“０”なので、クロック選択信号ＳＣＫＡとＳＣＫＢはともに“０”固定され、クロックジェネレータＡ（２１）とクロックジェネレータＢ（２２）はどちらも動作しない。ＡポートとＢポートはどちらも動作せず、ＮＯＰとなる。
【００５２】
ＣＥＡ＝“１”、ＣＥＢ＝“１”のときは、非ディスターブ動作である。ＩＦＡ＝“０”、ＩＦＢ＝“０”であるので、ＳＡＡにはＡＡが、ＳＡＢにはＡＢが伝達される。ＡＡとＡＢが異なる場合には、ＡポートとＢポートで異なるメモリセルに接続されるワード線が活性化されるので、ディスターブ状態とはならない。また、ＡＡとＡＢが同じアドレスであって、同じメモリセルに接続されるワード線が活性化されるとしても、そのタイミングを適切に調整することができない場合には、適切なディスターブテストを行なうことはできない。一般には、ポート間のクロックスキューによってワード線が活性化されるタイミングがずれるため、適切なディスターブテストを行なうことはできない。
【００５３】
クロックジェネレータＡ，Ｂ（２１，２２）について説明する。クロックジェネレータＡ，Ｂ（２１，２２）は、例えば特許文献１、非特許文献１に開示される公知の回路構成を採用して構成することができる。
【００５４】
図６は、クロックジェネレータの動作を示すタイミングチャートである。クロックジェネレータＡ（２１）の波形を示すが、クロックジェネレータＢ（２２）も同様である。通常動作モードの期間と、テスト動作モードの期間のそれぞれについて、選択されたクロックＳＣＫの１周期分が示されている。
【００５５】
通常動作の期間はＴＥＳＴ＝ロウ（“０”）レベル、ＩＦＡ＝ロウ（“０”）レベルであり、ＳＣＫＡの立上りから信号伝搬経路の遅延ｄ０の後、ＩＣＫＡは立上り、パルス幅ｄ１の後に立下る。これに応じて、即ちワードドライバＡ（１３）による信号伝搬遅延を経て、ワード線ＷＬＡが活性化される。パルス幅ｄ１は、書込みと読出しを適切に行うことができる値となるように、クロックジェネレータＡ（２１）の内部で生成される。
【００５６】
テスト動作の期間については、Ａポートがテスト対象となる場合の波形が実線で示され、加害側となる場合の波形が破線で示されている。テスト動作の期間はＴＥＳＴ＝ハイ（“１”）レベルであり、Ａポートがテスト側のときはＩＦＡ＝ロウ（“０”）レベル、加害側のときはＩＦＡ＝ハイ（“１”）レベルである。
【００５７】
Ａポートがテスト側で、ＩＦＡ＝ロウ（“０”）のとき、ＩＣＫＡは、ＳＣＫＡの立上りから信号伝搬経路の遅延ｄ０よりもさらにｄａだけ遅れて立上り、通常動作と同様のパルス幅ｄ１の後に立下る。一方、Ａポートが加害側で、ＩＦＡ＝ハイ（“１”）のとき、ＩＣＫＡは、ＳＣＫＡの立上りから信号伝搬経路の遅延ｄ０だけ遅れて立上り、パルス幅ｄａ＋ｄ１＋ｄｂの後に立下る。ここで、遅延ｄａとｄｂは、クロックジェネレータＡ（２１）の内部で生成される。
【００５８】
上述のように、Ａポートをテスト対象としＢポートを加害側とすることによって、Ａポートのディスターブテストを行なうことができる。遅延ｄａとｄｂは、ＡポートとＢポートの間のクロックスキューよりも大きい値とすることで、加害側のポートのワードドライバに、確実にディスターブ（加害）動作をさせることができる。ただし、過度に大きな遅延量とすると、ディスターブが過剰となって所謂オーバーキルを惹き起こす恐れがある。過剰なディスターブは、例えば、書込み動作において、通常のパルス幅ｄ１よりも著しく大きなパルス幅のディスターブによって、ビット線レベルの反転が阻害される場合に発生する。遅延ｄａとｄｂは、通常動作モードでは発生し得ないような過剰なディスターブを発生させることがないように、適切に規定され、または調整される必要がある。
【００５９】
以上説明したように、２つのポートのそれぞれに、自身のポートのアドレスと他方のポートのアドレスのどちらを使用してワード線を駆動するかを選択する、アドレス選択回路を設け、テスト側のポートからテスト時のアドレスを加害側のポートに受け渡すことにより、テスト側のポートのみを制御することによって、加害側のポートにディスターブ動作をさせることができる。また、ワード線を活性化するタイミングを制御するクロックジェネレータをそれぞれのポートに設け、テスト側のワード線が活性化されている期間よりも確実に早く立上り確実に遅く立下るように、加害側のワード線を制御することによって、ポート間のクロックスキューが吸収され、適切なディスターブテストを行なうことができる。さらに、各ポートに対して、テスト側として動作するか加害側として動作するかを指定するために、通常動作モードで使用するポートイネーブル信号ＣＥＡとＣＥＢを使用することにより、ディスターブテスト専用の制御信号及びその端子を追加する必要がない。
【００６０】
ＤＰ−ＳＲＡＭを始めとするマルチポートメモリは、各ポートがＣＰＵなどの別々のアクセス主体に接続され、独立かつ非同期でアクセスされる場合が多い。そのため、マルチポートメモリにディスターブテストを実施するには、ＭＢＩＳＴ（Memory Built In Self Test）等の専用のテスト回路が必須であった。ディスターブテストを実施するには、複数のポートからのアクセスを互いに同期させるために、複数ポートに接続されるアクセス主体どうしを協調して動作させる必要がある。しかし、別のポートに接続される複数のＣＰＵを協調して動作させることは実用上困難であり、特に、テストのためにそのような協調機能を追加することは、通常、許されないからである。
【００６１】
アドレス選択回路とクロックジェネレータは、ＤＰ−ＳＲＡＭ１００のメモリマクロセル内に実装されるとよい。例えばＭＢＩＳＴの機能としてメモリマクロセルの外側に標準セル等を使った自動配置配線によって実装する場合よりも、チップ面積を小さく抑えることができる。さらに、回路の配置と配線がマクロセルのレイアウト設計時に確定するため、遅延の設計が容易化され、また、タイミングマージンを大きく取る必要がない。
【００６２】
〔実施形態３〕
図７は、実施形態３に係るＤＰ−ＳＲＡＭ１００の構成図である。図４に示した実施形態２のＤＰ−ＳＲＡＭ１００における、アドレス選択回路ＡとＢ（２３と２４）に代えて、アドレスデコード信号選択回路ＡとＢ（２５と２６）を備える。アドレスデコード信号選択回路Ａ（２５）は、自身側のプリデコーダＡ（１９）のデコード結果ＤＡＡをワードドライバＡ（１３）に供給するときにはＰＡＡに出力し、他方側のワードドライバＢ（１４）に供給するときにはＰＡＢに出力する。これと同様に、アドレスデコード信号選択回路Ｂ（２６）は、自身側のプリデコーダＢ（２０）のデコード結果ＤＡＢをワードドライバＢ（１４）に供給するときにはＰＡＢに出力し、他方側のワードドライバＡ（１３）に供給するときにはＰＡＡに出力する。互いに他のポートからのデコード結果が入力される時には、自身側からのＰＡＡとＰＡＢに対する出力をハイインピーダンスに制御する。他の構成と動作は、実施形態２と同様であるので、説明を省略する。
【００６３】
これにより、アドレスＴＡＡとＴＡＢを互いに受け渡す代わりに、プリデコーダのデコード結果ＤＡＡとＤＡＢを、ワードドライバＡとＢ（１３と１４）に入力ＰＡＡとＰＡＢとして受け渡すことができる。
【００６４】
図８は、実施形態３に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。これも図５に示される実施形態２のＤＰ−ＳＲＡＭの動作を表す真理値表において「アドレス選択」であった列が、「プリデコード信号選択」に置き換わる。上述の回路構成上の変更と対応して、中間値がアドレスに代わってプリデコード結果が採用される以外は、同じ動作をする。
【００６５】
本実施形態３においても、上述の実施形態２と同様の効果が奏される。
【００６６】
〔実施形態４〕
図９は、実施形態４に係るＤＰ−ＳＲＡＭの構成図である。図４に示した実施形態２のＤＰ−ＳＲＡＭ１００におけるアドレス選択回路ＡとＢ（２３と２４）、図７に示した実施形態３のＤＰ−ＳＲＡＭ１００におけるアドレスデコード信号選択回路ＡとＢ（２５と２６）に代えて、アサート強制回路ＡとＢ（２９と３０）を備える。アサート強制回路ＡとＢ（２９と３０）は、プリデコード結果ＤＡＡとＤＡＢをそれぞれＩＦＡとＩＦＢによってビットごとにＯＲをする論理回路である。ＩＦＡがアサートされるとデコード結果ＤＡＡに関わらず、Ａポート側のすべてのワード線を活性化して、ワードドライバＡ（１３）から出力させ、ＩＦＢがアサートされるとデコード結果ＤＡＢに関わらず、Ｂポート側のすべてのワード線を活性化して、ワードドライバＢ（１４）から出力させる。他の回路構成と動作は、実施形態２及び３のＤＰ−ＳＲＡＭ１００と同様であるので、説明を省略する。
【００６７】
これにより、加害側のポートのワード線は、テスト対象のメモリセルに接続されるワード線のみではなく、加害側ポートの全てのワード線を活性化させることができる。
【００６８】
図１０は、実施形態４に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。図８に示される実施形態８のＤＰ−ＳＲＡＭの動作を表す真理値表と同様であるが、ディスターブテスト（ＳＥＬＴ＝“１”，ＴＭＥ＝“１”）において、ＣＥＡとＣＥＢに“０”が指定されることによって加害側とされたポートの「プリデコード信号選択」信号が、全ビット“１”に強制される。
【００６９】
これにより、アドレス制御回路（１０、１１、１２）の回路規模が、実施形態２、３よりも少なく抑えられる。特にワード線数が少ないマルチポートメモリにおいて、回路の簡略化の効果が大きい。
【００７０】
なお、アサート強制回路Ａ，Ｂ（２９，３０）について、「ビットごとにＯＲをする論理回路」としたのは、アサートを強制するＩＦＡ，ＩＦＢ信号とＩＡＡ，ＩＡＢがすべて正論理である場合の説明であって、一方または両方を負論理に変更した場合には、論理回路の構成はそれに合わせて適宜変更される。
【００７１】
〔実施形態５〕
図１１は、実施形態５に係るＤＰ−ＳＲＡＭの構成図である。図４に示した実施形態２のＤＰ−ＳＲＡＭ１００では、クロック選択回路ＡとＢ（２７と２８）によって、それぞれ自ポートのクロックＣＬＫＡとＣＬＫＢと、テストクロックＴＣＬＫとの間でのクロックの選択を行っている。これに対して本実施形態５では、テストクロックＴＣＬＫを使用せず、通常動作モードと同じくクロックＣＬＫＡとＣＬＫＢとを使用する。ディスターブテストでは、テスト側のクロックを加害側に受け渡す。クロック選択回路Ａ（２７）には、ＣＬＫＡとＣＬＫＢとが入力され、ＩＦＡによって一方を選択して出力する。クロック選択回路Ｂ（２８）にも同様に、ＣＬＫＡとＣＬＫＢとが入力され、ＩＦＢによって一方を選択して出力する。これにより、テストクロックＴＣＬＫの入力は不要となる。さらに、ＴＭＥに代えて、ポート毎にＴＭＥＡとＴＭＥＢを入力する。他の構成と動作は、実施形態２と同様であるので、説明を省略する。
【００７２】
図１２は、実施形態５に係るＤＰ−ＳＲＡＭの動作を真理値表の形で示す説明図である。図５に示される実施形態２のＤＰ−ＳＲＡＭの動作を表す真理値表のＳＥＬＴ，ＴＭＥ，ＴＣＬＫの各列が削除され、代わりにＴＭＥＡとＴＭＥＢが追加される。ＴＭＥＡとＴＭＥＢはどちらがアサートされても、図５のディスターブテストと同様の動作が実行されるが、クロックとして使用されるのは、ＴＣＬＫに代わってＣＬＫＡまたはＣＬＫＢである。ＣＥＡ＝“１”、ＣＥＢ＝“１”の非ディスターブテストでは、Ａポート側はＣＬＫＡに同期して動作し、Ｂポート側はＣＬＫＢに同期して動作する。ＣＥＡ＝“１”、ＣＥＢ＝“０”のときはＢポートがテスト側、Ａポートが加害側であるので、加害側のＡポートにはテスト側のＣＬＫＢが受け渡されて使用される。逆に、ＣＥＡ＝“０”、ＣＥＢ＝“１”のときはＡポートがテスト側、Ｂポートが加害側であるので、加害側のＢポートにはテスト側のＣＬＫＡが受け渡されて使用される。ＣＥＡ＝“０”、ＣＥＢ＝“０”のときは、ＮＯＰである。通常動作モードは、実施形態２と同様であるので説明を省略する。
【００７３】
図１３は、実施形態５に係るＤＰ−ＳＲＡＭ１００を用いたシステム構成の一例を示す模式図である。ＤＰ−ＳＲＡＭ１００のＡポートにはＣＰＵＡ２０１が接続され、ＢポートにはＣＰＵＢ２０２が接続される。ＣＰＵＡ２０１とＣＰＵＢ２０２は、通常動作モードで互いに独立し、且つ、非同期でＤＰ−ＳＲＡＭ１００をアクセスすることができるのと同様に、テストモードにおいても互いに独立し、且つ、非同期でＤＰ−ＳＲＡＭ１００のメモリテストを行なうことができる。このとき、自身が接続されるポートをテスト対象としたときに他のポートを加害ポートとすることができ、複数のＣＰＵが協調動作することなく単独でディスターブテストを実施することができる。必要ならば、加害ポート側のＣＰＵからのポートイネーブル信号（ＣＥＡやＣＥＢ）がネゲートされるようにだけ、相互通信を行えばよい。なお、図１１に示されるとおり、ＤＰ−ＳＲＡＭ１００に入力されたＴＭＥＡとＴＭＥＢは単にＯＲされてＴＥＳＴを出力しているのであるから、ＴＭＥＡとＴＭＥＢを入力する代わりにＴＥＳＴ信号１本を入力するように変更することもできる。しかし、ＴＭＥＡとＴＭＥＢに分けて入力することにより、Ａポート側とＢポート側を対称とすることができ、いずれのポートからもテストモードに移行することができる点で有効である。
【００７４】
本実施形態５は、テストクロックＴＣＬＫを使用しないように変更した点に特徴があり、図１１、１２は実施形態２から変更した例を示したが、他の実施形態３、４からも同様に変更して新たな実施形態とすることができる。アドレス系の受け渡しとテストクロックＴＣＬＫ仕様の有無は、互いに独立した技術思想であって、任意に組み合わせることができる。
【００７５】
〔実施形態６〕
図１４は、マルチポートメモリ１００をライブラリとして利用するＬＳＩ設計支援システム３００の一構成例を模式的に示すブロック図である。
【００７６】
ＬＳＩ設計支援システム３００は、処理部３１０と記憶部３２０と入出力部３３０を含んで構成される。例えば、ＬＳＩ設計支援システム３００は、ディスプレイとキーボード、マウスなどを入出力部３３０として、またハードディスクなどの記憶媒体を記憶部３２０として備える、コンピュータによって実現され、処理部３１０は当該コンピュータに搭載されるプロセッサとして実現される。記憶部３２０には高位機能記述、ＲＴＬ（Register Transfer Level）記述またはゲートレベルでの回路記述をされたネットリストが、設計情報３２１として格納される。また、記憶部３２０には、標準セル、メモリマクロセル、アナログマクロセルなどのライブラリ３２２が格納され、さらに、機能制約、信号遅延制約、レイアウト制約などを定めた設計ルール３２３が格納されている。処理部３１０は記憶部３２０に格納されるプログラムを実行することによって、設計情報３２１に対して、論理合成、タイミング検証、自動配置配線によるレイアウト設計、その他各種の検証を実行することができ、その結果を設計結果情報３２４として記憶部３２０に出力する。設計系結果情報３２４には、例えば、回路情報、レイアウト情報及び各種の検証結果が出力されて格納される。入出力部３３０は、これらの処理に際して、ユーザーであるＬＳＩ設計者が、設計情報３２１を入力し、あるいは処理の過程で各種の設計パラメータを入力し、或いは設計結果情報３２４を確認するためのユーザーインターフェースとして機能する。
【００７７】
本願の各実施形態に示したＤＰ−ＳＲＡＭを始めとするマルチポートメモリ１００は、メモリマクロセルとしてライブラリ３２２に含まれる。種々のパラメータを変えた固定的なメモリマクロセルを複数個含んでいても良いし、処理部３１０で動作するＲＡＭコンパイラによって、生成されて記憶部３２０に出力されても良い。メモリマクロセルは、ＬＳＩ設計支援システム３００にライブラリとして組み込まれるために、ＤＶＤ（Digital Versatile Disk）などの可搬記憶媒体、またはインターネットを介した通信媒体によって、提供されても良い。
【００７８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７９】
例えば、各実施の形態において例示した論理回路の構成は、信号が明細書で説明したとおりの正論理または負論理であることを前提とするものであって、正論理と負論理の関係は任意に変更することができる。
【符号の説明】
【００８０】
１０  アドレス制御回路
１１，１２  制御回路Ａ，制御回路Ｂ
１３，１４  ワードドライバＡ，ワードドライバＢ
１５，１６  入出力制御Ａ，入出力制御Ｂ
１７，１８  プリチャージ制御Ａ，プリチャージ制御Ｂ
１９，２０  プリデコーダＡ，プリデコーダＢ
２１，２２  クロックジェネレータＡ，クロックジェネレータＢ
２３，２４  アドレス選択回路Ａ，アドレス選択回路Ｂ
２５，２６  アドレスデコード信号選択回路Ａ，アドレスデコード信号選択回路Ｂ
２７，２８  クロック選択回路Ａ，クロック選択回路Ｂ
２９，３０  アサート強制回路Ａ，アサート強制回路Ｂ
５０  入出力回路
５１，５２  入出力回路Ａ，入出力回路Ｂ
６０  メモリセルアレイ
１００  マルチポートメモリ、ＤＰ−ＳＲＡＭ
２０１，２０２  ＣＰＵＡ，ＣＰＵＢ
３００  ＬＳＩ設計支援システム
３１０  処理部
３２０  記憶部
３２１  設計情報
３２２  ライブラリ
３２３  設計ルール
３２４  設計結果情報
３３０  入出力部
ＭＣ，ＭＣ＿０＿０〜ＭＣ＿０＿ｎ−１，ＭＣ＿ｍ−１＿０〜ＭＣ＿ｍ−１＿ｎ−１  メモリセル
ＰＭＣ  記憶部
ＭＴ１，ＭＴ２，…  トランスファーゲート
Ｍ１〜Ｍ８  ＭＯＳＦＥＴ
ＢＬ１＿０〜ＢＬ１＿ｎ−１，ＢＬ２＿０〜ＢＬ２＿ｎ−１，…，ＢＬｋ＿０〜ＢＬｋ＿ｎ−１，ＢＬＡ，／ＢＬＡ，ＢＬＢ，／ＢＬＢ  ビット線
ＷＬ１＿０〜ＷＬ１＿ｍ−１，ＷＬ２＿０〜ＷＬ２＿ｍ−１，…，ＷＬｋ＿０〜ＷＬｋ＿ｍ−１，ＷＬＡ，ＷＬＢ  ワード線
Ａ１，Ａ２，…，Ａｋ，ＡＡ，ＡＢ  アドレス
ＸＡ１，ＸＡ２，…，ＸＡｋ  アドレス端子
Ｄ１，Ｄ２，…，Ｄｋ，ＤＡ，ＤＢ  データ
ＸＤ１，ＸＤ２，…，ＸＤｋ  データ入出力端子
Ｘｃｔｒｌ  制御信号端子
ＩＣＫＡ，ＩＣＫＢ  ワード線活性化パルス
ＣＬＫＡ，ＣＬＫＢ，ＴＣＬＫ  クロック
ＴＭＥ，ＴＭＥＡ，ＴＭＥＢ  テストモードイネーブル信号
ＣＥＡ，ＣＥＢ  ポートイネーブル信号
ＴＡＡ，ＴＡＢ  テストアドレス
ＤＡＡ，ＤＡＢ  プリデコーダのデコード結果
ＰＡＡ，ＰＡＢ，ＩＡＡ，ＩＡＢ  ワードドライバに入力されるアドレスデコード結果
【図１】
0006470160.tif 000002
【図２】
0006470160.tif 000003
【図３】
0006470160.tif 000004
【図４】
0006470160.tif 000005
【図５】
0006470160.tif 000006
【図６】
0006470160.tif 000007
【図７】
0006470160.tif 000008
【図８】
0006470160.tif 000009
【図９】
0006470160.tif 000010
【図１０】
0006470160.tif 000011
【図１１】
0006470160.tif 000012
【図１２】
0006470160.tif 000013
【図１３】
0006470160.tif 000014
【図１４】
0006470160.tif 000015