(57)【要約】【課題】簡単な構成で使い勝手のよいデュアルポートメモリを有する半導体装置及びメモリマクロを提供する。【解決手段】半導体装置又メモリマクロは、１つの入力及び出力ポートを持つメモリ回路及び第１タイミング信号に対応して入力又は出力動作を行う第１ポートと、上記第１タイミング信号とは非同期の第２タイミング信号に対応して入力又は出力動作を行う第２ポートを有する調停回路を備える。上記メモリ回路は、メモリ動作終了信号を上記調停回路に出力する。上記調停回路は、上記メモリ回路が非動作状態のときは上記第１又は第２ポートの上記第１又は第２タイミング信号に対応して上記メモリ回路のメモリアクセスを可能とし、上記メモリ回路が動作状態のときには上記メモリ終了信号を待って上記第１又は第２タイミング信号に対応した上記メモリ回路のメモリアクセスを可能とする。【選択図】図１
2010044821.tif 000002
【特許請求の範囲】
【請求項１】
１つの入力及び出力ポートを持つメモリ回路と、
第１タイミング信号に対応して入力又は出力動作を行う第１ポートと、上記第１タイミング信号とは非同期の第２タイミング信号に対応して入力又は出力動作を行う第２ポートを有する調停回路とを備え、
上記メモリ回路は、メモリ動作終了信号を上記調停回路に出力し、
上記調停回路は、
上記メモリ回路が非動作状態のときは上記第１又は第２ポートの上記第１又は第２タイミング信号に対応して上記メモリ回路のメモリアクセスを可能とし、
上記メモリ回路が動作状態のときには上記メモリ終了信号を待って上記第１又は第２タイミング信号に対応した上記メモリ回路のメモリアクセスを可能とする、
半導体装置。
【請求項２】
請求項１において、
上記メモリ回路は、複数のワード線と複数の相補ビット線の交差部に設けられた複数のメモリセルを有し、
上記メモリセルは、
入力と出力とが交差接続された一対のＣＭＯＳインバータ回路と、
上記入力と出力の交差接続部と対応する上記相補ビット線との間に設けられ、ゲートが対応する上記ワード線に接続された一対のアドレス選択ＭＯＳＦＥＴとを有する、
半導体装置。
【請求項３】
請求項２において、
メモリ回路は、選択された相補ビット線の読み出し信号を第３タイミング信号に対応して増幅するセンスアンプを有し、
上記メモリ動作終了信号は、上記第３タイミング信号を遅延した信号である、
半導体装置。
【請求項４】
請求項２において、
メモリ回路は、メモリ回路の選択動作終了に対応してワード線の非活性化を指示する第４タイミング信号を有し、
上記メモリ動作終了信号は、上記第４タイミング信号に対応した信号である、
半導体装置。
【請求項５】
請求項３又は４において、
上記調停回路は、第１フラグを有し、
上記第１フラグは、上記メモリ回路のメモリアクセスによってセットされ、上記メモリ動作終了信号によりリットされ、上記メモリ回路の非動作状態と動作状態を示す、
半導体装置。
【請求項６】
請求項５において、
上記第１ポートは、
上記第１タイミングに対応して第１入力信号を保持する第１入力回路と、
第１ポート選択信号により上記第１入力回路の出力信号を上記メモリ回路の入力ポートに伝える第１セレクタと、
上記メモリ回路の出力ポートからの出力信号を第１ポート選択信号に対応して取り込む第１保持回路と、
上記第１保持回路の保持信号を上記第１タイミング信号に対応して出力する第１出力回路とを有し、
上記第２ポートは、
上記第２タイミングに対応して第２入力信号を保持する第２入力回路と、
第２ポート選択信号により上記第２入力回路の出力信号を上記メモリ回路の入力ポートに伝える第２セレクタと、
上記メモリ回路の出力ポートからの出力信号を第２ポート選択信号に対応して取り込む第２保持回路と、
上記第２保持回路の保持信号を上記第２タイミング信号に対応して出力する第２出力回路とを有する、
半導体装置。
【請求項７】
請求項６において、
待機状態の存在を示す第２フラグを更に有し、
上記第１又は第２ポートのうちの一方のポートからメモリアクセスにより上記第１フクグがセットされ、他方のポートからのアクセスにより上記第２フラグがセットされたときには、上記メモリ動作終了信号により上記第１フラグがリセットされて上記他方のポートからのメモリアクセスが許可され、これに応じて上記第１フラグが再びセットされ上記第２フラグがリセットされる、
半導体装置。
【請求項８】
請求項６において、
上記第１ポート選択信号を保持する第１フリップフロップ回路と、
上記第２ポート選択信号を保持する第２フリップフロップ回路とを有し、
上記第１又は第２フリップフロップ回路の保持状態に応じて上記他方のポートが判定される、
半導体装置。
【請求項９】
請求項８において、
上記第２フラグは、上記第１ポートに対応した第１待機フラグと上記第２ポートに対応した第２待機フラグからなり、
上記第１待機フラグは、上記第１タイミング信号に対応してセットされ、上記第１ポートからのメモリアクセス開始によりリセットされ、
上記第２待機フラグは、上記第２タイミング信号に対応してセットされ、上記第２ポートからのメモリアクセス開始によりリセットされる、
半導体装置。
【請求項１０】
請求項８又は９において、
上記第１ポートは、書き込み専用ポートであり、
上記第２ポートは、読み出し専用ポートである、
半導体装置。
【請求項１１】
請求項１において、
上記メモリ回路は、複数のワード線と複数の相補ビット線の交差部に設けられた複数のメモリセルを有し、
上記メモリセルは、
アドレス選択用ＭＯＳＦＥＴと記憶キャパシタとを有し、
上記アドレス選択用ＭＯＳＦＥＴのゲートは、上記ワード線に接続され、
上記アドレス選択ＭＯＳＦＥＴの一方のソース，ドレインは、上記ビット線に接続され、
上記アドレス選択ＭＯＳＦＥＴの他方のソース，ドレインは、上記記憶キャパシタの記憶ノードに接続される、
半導体装置。
【請求項１２】
請求項１１において、
上記メモリ回路は、スタティック・ランダム・アクセス・メモリに対応した１つの
入力及び出力ポートを持つ入出力インターフェイスを有する、
半導体装置。
【請求項１３】
請求項１ないし１２のいずれかにおいて、
上記第１タイミング信号及び第２タイミング信号の周波数は、前記メモリ回路の最高動作周波数の１／２以下である、
半導体装置。
【請求項１４】
請求項１ないし１３のいずれかにおいて、
上記第１タイミング信号で動作する第１回路と、
上記第２タイミング信号で動作する第２回路とを更に有し、
上記第１回路は、上記第１ポートに接続されて上記第１タイミング信号に対応して上記メモリ回路をアクセスし、
上記第２回路は、上記第２ポートに接続されて上記第２タイミング信号に対応して上記メモリ回路をアクセスし、
上記メモリ回路は、上記第１回路と第２回路との間でデータ転送に用いられる、
半導体装置。
【請求項１５】
１つの入力及び出力ポートを持つメモリ回路と、
第１タイミング信号に対応して入力又は出力動作を行う第１ポートと、上記第１タイミング信号とは非同期の第２タイミング信号に対応して入力又は出力動作を行う第２ポートを有する調停回路とを備え、
上記メモリ回路は、メモリ動作終了信号を上記調停回路に出力し、
上記調停回路は、
上記メモリ回路が非動作状態のときは上記第１又は第２ポートの上記第１又は第２タイミング信号に対応して上記メモリ回路のメモリアクセスを可能とし、
上記メモリ回路が動作状態のときには上記メモリ終了信号を待って上記第１又は第２タイミング信号に対応した上記メモリ回路のメモリアクセスを可能とする、
メモリマクロ。
【請求項１６】
請求項１５において、
上記メモリ回路は、複数のワード線と複数の相補ビット線の交差部に設けられた複数のメモリセルを有し、
上記メモリセルは、
入力と出力とが交差接続された一対のＣＭＯＳインバータ回路と、
上記入力と出力の交差接続部と対応する上記相補ビット線との間に設けられ、ゲートが対応する上記ワード線に接続された一対のアドレス選択ＭＯＳＦＥＴとを有する、
メモリマクロ。
【請求項１７】
請求項１６において、
メモリ回路は、選択された相補ビット線の読み出し信号を第３タイミング信号に対応して増幅するセンスアンプを有し、
上記メモリ動作終了信号は、上記第３タイミング信号を遅延した信号である、
メモリマクロ。
【請求項１８】
請求項１６において、
メモリ回路は、メモリ回路の選択動作終了に対応してワード線の非活性化を指示する第４タイミング信号を有し、
上記メモリ動作終了信号は、上記第４タイミング信号に対応した信号である、
メモリマクロ。
【請求項１９】
請求項１７又は１８において、
上記調停回路は、第１フラグを有し、
上記第１フラグは、上記メモリアクセスによってセットされ、上記メモリ動作終了信号によりリットされ、上記メモリ回路の非動作状態と動作状態を示す、
メモリマクロ。
【請求項２０】
請求項１９において、
上記第１ポートは、
上記第１タイミングに対応して第１入力信号を保持する第１入力回路と、
第１ポート選択信号により上記第１入力回路の出力信号を上記メモリ回路の入力ポートに伝える第１セレクタと、
上記メモリ回路の出力ポートからの出力信号を第１ポート選択信号に対応して取り込む第１保持回路と、
上記第１保持回路の保持信号を上記第１タイミング信号に対応して出力する第１出力回路とを有し、
上記第２ポートは、
上記第２タイミングに対応して第２入力信号を保持する第２入力回路と、
第２ポート選択信号により上記第２入力回路の出力信号を上記メモリ回路の入力ポートに伝える第２セレクタと、
上記メモリ回路の出力ポートからの出力信号を第２ポート選択信号に対応して取り込む第２保持回路と、
上記第２保持回路の保持信号を上記第２タイミング信号に対応して出力する第２出力回路とを有する、
メモリマクロ。
【請求項２１】
請求項１５ないし２０のいずれかにおいて、
ハードウェアＩＰコアとして提供される、
メモリマクロ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、半導体装置とメモリマクロに関し、例えば、半導体装置に構成された非同期の２ポートメモリに利用して有効な技術に関するものである。
【背景技術】
【０００２】
クロック速度（周波数）の異なるデバイス間で同期をとってデータ転送を可能にする同期装置あるいは非同期データ転送装置の例として、例えば特開２００１−２６５７１５号公報，特開２００６−３０１９８２号公報がある。また、非同期クロック間でのデータ転送にデュアルポートメモリを使用した例として、特開２００６−０６５７０４号公報がある。デュアルポートメモリの例としては、特開２００６−１３４３７９号公報，特開２００８−００４２１８号公報がある。
【特許文献１】特開２００１−２６５７１５号公報
【特許文献２】特開２００６−３０１９８２号公報
【特許文献３】特開２００６−０６５７０４号公報
【特許文献４】特開２００６−１３４３７９号公報
【特許文献５】特開２００８−００４２１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
システムＬＳＩ（Large Scale Integrated circuit: 大規模集積回路）等のようにクロック周波数の異なる複数のデバイスを有する半導体装置では、上記クロック周波数の異なるデバイス間での非同期データの転送が必須となる。例えば１６ビットあるいは３２ビット等のような複数ビット単位での非同期クロック間でのデータ転送を行う場合、上記特許文献１や２のような同期装置あるいは非同期データ転送装置を用いると、回路規模が大きくなるとともに使い勝手も悪い。そこで、特許文献３のようにデュアルポートメモリを使用したデータ転送が使い勝手もよく便利である。しかしながら、特許文献５のようなデュアルポートメモリは、１つのクロックの前半周期と後半周期とでポートを時分割的に使用するので上記のような非同期クロックでは使用できない。
【０００４】
特許文献３においては、２つのポートが非同期クロックで動作するよう、例えば図２７に示したようなメモリセルを用いる。負荷トランジスタＬＤ１・ＬＤ２および駆動トランジスタＤＲ１・ＤＲ２に関してはシングルポートＳＲＡＭメモリセルと同様の構成である。シングルポートＳＲＡＭメモリセルと異なるのは、アクセスするための回路が２組設けられていることである。ワード線ＷＬＡ、ビット線ＢＬＴＡ・ＢＬＢＡ、転送トランジスタＡＣＡ１・ＡＣＡ２から構成されるポートＡと、ワード線ＷＬＢ、ビット線ＢＬＴＢ・ＢＬＢＢ、転送トランジスタＡＣＢ１・ＡＣＢ２から構成されるポートＢが存在し、それぞれのポートから独立（非同期）にアクセスすることが可能となる。
【０００５】
図２７に示したメモリセルを用いたデュアルポートメモリでは、かかるメモリセルをアレイ状に並べたデュアルポートＳＲＡＭアレイと、２つのアクセスポートにアクセスするための２組のアクセス回路で構成される。このため、本構成のデュアルポートＳＲＡＭでは、メモリセルにアクセスするための周辺回路は、シングルポートＳＲＡＭの２倍の回路規模となる。デュアルポートＳＲＡＭメモリセルをシングルポートＳＲＡＭセルと比較すると、トランジスタ数は６つから８つに増えているだけであるが、同時アクセス時の動作マージン確保等の理由から、デュアルポートＳＲＡＭセルにはシングルポートＳＲＡＭセルよりもＷサイズ（ゲート幅）の大きいトランジスタを使用する必要があり、面積は２倍以上となる。つまり、デュアルポートＳＲＡＭの面積はシングルポートＳＲＡＭの面積の２倍以上となる。
【０００６】
また、ＬＳＩのような半導体装置を製造するプロセスの進展により、ＬＳＩ中のトランジスタの微細化が進展している。たとえば、２００６年にはトランジスタのゲート長が５０ｎｍという微細なトランジスタの量産が行われている。トランジスタの微細化が進展するとトランジスタのしきい値電圧（Ｖｔｈ）のばらつきが増大する。トランジスタのＶｔｈばらつきが増大すると、ＬＳＩのオンチップメモリとして使用されるＳＲＡＭの動作マージンが低下し、ＳＲＡＭメモリセルの動作が困難になるものである。つまり、半導体の微細加工技術が進展してトランジスタサイズが小さくなるに伴いトランジスタの製造ばらつきが大きくなり、ＳＲＡＭメモリセルの動作マージンが低下している。そのため、同時アクセス時の動作マージン確保等の理由から、図２７に示したデュアルポートＳＲＡＭメモリセルを設計するには大きなコストがかかる。
【０００７】
この発明の目的は、簡単な構成で使い勝手のよいデュアルポートメモリを有する半導体装置及びメモリマクロを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
本願において開示される１つの実施例は、以下の通りである。半導体装置又はメモリマクロは、１つの入力及び出力ポートを持つメモリ回路及び第１タイミング信号に対応して入力又は出力動作を行う第１ポートと、上記第１タイミング信号とは非同期の第２タイミング信号に対応して入力又は出力動作を行う第２ポートを有する調停回路を備える。上記メモリ回路は、メモリ動作終了信号を上記調停回路に出力する。上記調停回路は、上記メモリ回路が非動作状態のときは上記第１又は第２ポートの上記第１又は第２タイミング信号に対応して上記メモリ回路のメモリアクセスを可能とし、上記メモリ回路が動作状態のときには上記メモリ終了信号を待って上記第１又は第２タイミング信号に対応した上記メモリ回路のメモリアクセスを可能とする。
【発明の効果】
【０００９】
１つの入力及び出力ポートを持つメモリ回路と調整回路からなる簡単な構成により、使い勝手のよい複数ポートメモリを有する半導体装置及びメモリマクロが実現できる。
【発明を実施するための最良の形態】
【００１０】
以下、本願発明を図面に示された実施例１ないし実施例６に沿って詳細に説明する。
【実施例１】
【００１１】
図１に本発明に係るデュアルポートＳＲＡＭの概略図を示す。図１において、ＳＰ−ＳＲＡＭはシングルポートＳＲＡＭメモリセルを用いたＳＲＡＭマクロを表しており、１ビットのデータを保持するメモリセルとしては、後述する図４に示すシングルポートＳＲＡＭメモリセルが使用される。ＡＲＢＩＴはアクセスを調停する回路を表しており、入力されたＡポートおよびＢポートの信号を調停してシングルポートＳＲＡＭマクロにアクセスする。
【００１２】
調停回路ＡＲＢＩＴは、ポートＡのクロック信号ＣＬＫＡ、ポートＡの動作を制御する制御信号ＣＯＮＴＡ（アドレス信号も含む）およびデータＤＡが入力され、ポートＡから読み出したデータがＱＡとして出力される。さらに、調停回路ＡＲＢＩＴには、ポートＢのクロック信号ＣＬＫＢ、ポートＢの動作を制御するクロック信号ＣＬＫＢとポートＢを制御する制御信号ＣＯＮＴＢ（アドレス信号も含む）およびデータＤＢが入力され、ポートＢから読み出したデータがＱＢとして出力される。ポートＡおよびポートＢのクロック信号ＣＬＫＡおよびＣＬＫＢは非同期で入力される信号であり、ポートＡはＣＬＫＡに、ポートＢはＣＬＫＢにそれぞれ同期して動作するが、ポートＡおよびポートＢは非同期動作をする。
【００１３】
調停回路ＡＲＢＩＴは、ＳＰ−ＳＲＡＭが動作していることを示すフラグＦｌａｇ０を有する。本回路において、ＳＰ−ＳＲＡＭは動作終了タイミングを示す信号ＳＡＥＮＤを出力する。このＳＡＥＮＤ信号は、後述するように一般的なシングルポートＳＲＡＭ内で生成されるタイミング信号を用いて容易に生成することが出来る。
【００１４】
図２には、図１のＳＰ−ＳＲＡＭ（ＳＲＡＭマクロ）の一実施例の概略ブロック図が示されている。同図では、主として上記メモリ動作終了信号ＳＡＥＮＤを生成する例が示されている。ＣＬＫＩはＳＰ−ＳＲＡＭに入力されるクロック信号、ＰＧはある幅のパルスを生成するパルスジェネレータ、ＣＬＫ−ＬＣはパルスジェネレータによって生成された内部クロック信号、ＴＧＥＮはタイミングを生成する回路、Ｄｅｃｏｄｅｒはアドレスをデコードする回路、ＷＬＤＲはワード線を駆動するワード線ドライバ、ＳＡはセンスアンプ、Ｌａｔｃｈはデータをラッチするラッチ回路、Ｍｅｍｏｒｙ  ａｒｒａｙはシングルポートメモリセルをアレイ状に並べたメモリアレイ、ＳＡＥＮはセンスアンプを起動するセンスアンプイネーブル信号、Ｄｅｌａｙは一定の遅延を信号に与える遅延回路、ＳＡＥＮＤは動作終了を示す信号である。
【００１５】
この実施例では、ＣＬＫＩが入力されるとパルスジェネレータＰＧにより内部で動作するためのパルス信号ＣＬＫ−ＬＣを生成する。ＣＬＫ−ＬＣはワード線ドライバＷＬＤＲに入力されてワード線が活性化されるとともに、タイミング生成回路ＴＧＥＮに入力され、その信号からセンスアンプイネーブル信号ＳＡＥＮが生成される。ＳＡＥＮはセンスアンプＳＡに入力されてセンスアンプが起動される。センスアンプが起動されるとアクセスされたメモリセルのデータが出力されるためＳＰ−ＳＲＡＭの動作が終了した状態となる。つまり、ＳＡＥＮを遅延回路Ｄｅｌａｙにより遅延させた信号ＳＡＥＮＤが出力されると、ＳＲＡＭの動作が終了したといえる。
【００１６】
図３には、図２中のタイミング生成回路の一実施例の概略回路図が示されている。ＣＬＫ−ＬＣはＳＰ−ＳＲＡＭの内部クロック信号、ＭＣはメモリセル、ＷＬはワード線を示している。ＲＣはレプリカメモリセルを示しており、通常動作するメモリセルＭＣと大部分が同じ構成となっている。ＣＬＫ−ＬＣが入力される前には、Ｐチャネル型ＭＯＳＦＥＴ（以下、単にＰＭＯＳトランジスタという）ＭＰＣによりレプリカビット線ＲＢＬがプリチャージされている。ＣＬＫ−ＬＣが入力されるとレプリカワード線ＲＷＬが活性化され、それによりレプリカメモリセルＲＣが活性化され、プリチャージされたレプリカビット線ＲＢＬの電荷が引き抜かれる。これによって、ＣＬＫ−ＬＣが入力される前は、 "Ｌ”の状態であったＳＡＥＮが "Ｈ”となる。つまりＣＬＫ−ＬＣの入力によってセンスアンプ起動信号ＳＡＥＮが活性化される。
【００１７】
図４には、図３中のメモリセルの一実施例の回路図が示されている。シングルポートＳＲＡＭセルは、６トランジスタで構成されており、負荷トランジスタＬＤ１およびＬＤ２によって電源電圧Ｖｄｄのようなハイレベル（以下、単に "Ｈ”と表す）の電位を保持、駆動トランジスタＤＲ１およびＤＲ２によって回路の接地電位Ｖｓｓのようなロウレベル（以下、単に "Ｌ”と表す）の電位を保持し１ビットのデータを保持する。保持しているデータのアクセスはワード線ＷＬを "Ｈ”にすることで実行され、転送トランジスタＡＣ１およびＡＣ２によってビット線ＢＬＴおよびＢＬＢが内部のデータ記憶ノードと接続されて、データの書き込みおよび読み出しというアクセスが実行される。
【００１８】
図５には、図３中のレプリカメモリセルの一実施例の回路図が示されている。このレプリカメモリセルＲＣは、特に制限されないが、前記図４と同じ素子により構成される。ただし、図４のビット線ＢＬＴが前記レプリカビット線ＲＢＬとして用いられ、ワード線ＷＬがレプリカワード線ＲＷＬとして使用される。ラッチ回路を構成するための一方のＣＭＯＳインバータ回路を構成する負荷トランジスタＬＤ１と駆動トランジスタＤＲ１のゲートは、電源電圧Ｖｄｄが与えられる。これにより、レプリカワード線ＲＷＬが選択されると、転送トランジスタＡＣ１がオン状態となり、上記プリチャージされたレプリカビット線ＲＢＬの電荷を引き抜く。ラッチ回路を構成するための他方のＣＭＯＳインバータ回路（ＬＤ２，ＤＲ２）と転送トランジスタＡＣ２は、レプリカメモリセルＲＣとしては不要であるので省略できるが、メモリセルＭＣをそのまま流用するので残している。上記ＣＭＯＳインバータ回路（ＬＤ２，ＤＲ２）の入力には、特に制限されないが、接地電位Ｖｓｓが定常的に供給されている。
【００１９】
図６には、図１中の調停回路のさらに詳細な概略図が示されている。調停回路ＡＲＢＩＴは、ポートＡおよびポートＢへの入力信号を保持するフリップフロップＦＦＤＡとＦＦＤＢ、入力信号を選択するセレクタＳｅｌｅｃｔｏｒ、ＳＰ−ＳＲＡＭから出力される出力データＱをラッチするラッチ回路ＬＡＡとＬＡＢ、それぞれのラッチ回路の出力ＱＬＡおよびＱＬＢを保持するＦＦＱＡおよびＦＦＱＢ、ＳＰ−ＳＲＡＭを起動するクロック信号ＣＬＫＩおよびポートを選択するポート選択信号ＰＯＲＴ−ＳＥＬを生成する制御信号生成回路ＣＯＮＴ−ＡＲＢから構成される。
【００２０】
制御信号生成回路ＣＯＮＴ−ＡＲＢには、ＳＰ−ＳＲＡＭが動作している状態を示すフラグＦｌａｇ０が含まれる。ポートＡおよびポートＢに入力された信号は、それぞれのポートのクロック信号ＣＬＫＡおよびＣＬＫＢによってＦＦＤＡおよびＦＦＤＢに取り込まれる。このデータは、ＰＯＲＴ−ＳＥＬによってＳｅｌｅｃｔｏｒによって選択されシングルポートＳＲＡＭマクロＳＰ−ＳＲＡＭに入力される。このときに、ＳＰ−ＳＲＡＭを起動するクロック信号ＣＬＫＩが入力されると、ＳＰ−ＳＲＡＭが動作を実行する。
【００２１】
ＳＰ−ＳＲＡＭにおいて読み出し動作が実行された場合には、Ｑからデータが出力される。そのデータは、ラッチＬＡＡおよびＬＡＢにおいて対応したポートのデータがラッチされる。さらに、そのラッチの出力が対応したポートのクロック信号ＣＬＫＡおよびＣＬＫＢの入力によってＦＦＱＡおよびＦＦＱＢに取り込まれ、各ポートの出力データＱＡおよびＱＢとして出力される。
【００２２】
図７には、図６の調停回路を備えたデュアルポートメモリの一例の動作波形図が示されている。図７において、ＡポートのクロックＣＬＫＡおよびＢポートのクロックＣＬＫＢは非同期に入力されている。ＷＬは、シングルポートＳＲＡＭであるＳＰ−ＳＲＡＭのワード線のタイミングを示しており、Ａ，Ｂのように併記されているポートからアクセスされたアドレスのワード線が活性化されることを示している。
【００２３】
時間Ｔ１において、ＣＬＫＡが入力されているため、それによってＳＰ−ＳＲＡＭを起動するクロック信号ＣＬＫＩが立ち上がる。それとともに、ポートを選択する信号ＰＯＲＴ−ＳＥＬがＡポートを選択し、Ａポートの入力データおよび制御信号がＳＰ−ＳＲＡＭに入力される。その際にＳＰ−ＳＲＡＭが動作を始めたため、ＳＰ−ＳＲＡＭが動作していることを表すフラグＦｌａｇ０が "Ｈ”となる。またＣＬＫＩの入力に伴い対応するワード線ＷＬ（Ａ）が活性化される。
【００２４】
上記ワード線ＷＬ（Ａ）の選択動作に伴い、ＳＰ−ＳＲＡＭからデータが読み出されＳＰ−ＳＲＡＭの出力信号Ｑに上記入力データ（アドレス）で読み出しを行ったデータＡ１が出力される。さらに、メモリ動作が終了するためメモリ動作終了信号ＳＡＥＮＤが活性化される。ＳＰ−ＲＡＭの出力ポートＱから出力されたデータＡ１は、ＰＯＲＴ−ＳＥＬがＡポートを選択しているためＡポートのデータを保持するラッチＬＡＡにラッチされる。このデータＡ１は時間Ｔ３においてＣＬＫＡが再び立ち上がった際にＡポートの出力ＦＦであるＦＦＱＡに取り込まれ、出力データＱＡが出力されて動作が完了する。
【００２５】
上記時間Ｔ１において、ほぼ同時にＣＬＫＢが入力されるが、この時にＳＰ−ＳＲＡＭが動作していることを示すフラグＦｌａｇ０が "Ｈ”となっているため、Ｂポートの動作はＡポートの動作終了後に行われる。
【００２６】
時間Ｔ２において、Ｂポートのアクセスが処理される。上記時間Ｔ１においてＢポートのクロック信号ＣＬＫＢが入力され、さらに時間Ｔ１の終盤にポートＡのアクセスが終了したことを示す信号ＳＡＥＮＤが立ち上がる。信号ＳＡＥＮＤの立ち上がりによって、ＳＰ−ＳＲＡＭにクロック信号ＣＬＫＩが入力されるとともにポート選択信号ＰＯＲＴ−ＳＥＬがＢポートを選択する。
【００２７】
Ｂポートの入力データ（アドレス）および制御信号がＳＰ−ＳＲＡＭに入力され、関連するワード線ＷＬ（Ｂ）が活性化される。それに伴い、ＳＰ−ＳＲＡＭからデータが読み出されＳＰ−ＳＲＡＭの出力信号Ｑに上記入力データ（アドレス）で読み出しを行ったデータＢ１が出力される。さらに、メモリ動作が終了するため動作終了信号ＳＡＥＮＤが活性化される。上記出力ポートＱから出力されたデータＢ１はＰＯＲＴ−ＳＥＬがＢポートを選択しているためＢポートのデータを保持するラッチＬＡＢにラッチされる。このデータＢ１は時間Ｔ３においてＣＬＫＢが再び立ち上がった際にＢポートの出力ＦＦであるＦＦＱＢに取り込まれ、出力データＱＢが出力されて動作が完了する。
【００２８】
時間Ｔ５における動作を説明する。時間Ｔ４においては、時間Ｔ１と同様にＡポートにアクセスが行われる。そのアクセス終了時にはＳＰ−ＳＲＡＭの動作終了を示す信号ＳＡＥＮＤが立ち上がって時間Ｔ５が始まる。その際には、ＣＬＫＡおよびＣＬＫＢは入力されていない状態のため、次の動作は始まらない。その後ＣＬＫＢが入力された時点でＦｌａｇ０は "Ｌ”の状態にあり、そのためＣＬＫＢの入力によってＳＰ−ＳＲＡＭの動作が始まる。ＣＬＫＢの入力により、ＳＰ−ＳＲＡＭに入力されるクロックＣＬＫＩが立ち上がるとともにポート選択信号ＰＯＲＴ−ＳＥＬがＢポートを選択する。これにより、Ｂポートのデータおよび制御信号がＳＰ−ＳＲＡＭに入力され、関連するワード線が活性化される。それに伴い、ＳＰ−ＳＲＡＭからデータが読み出されＳＰ−ＳＲＡＭの出力信号Ｑに読み出しを行ったデータＢ５が出力される。
【００２９】
さらに、動作が終了するため動作終了信号ＳＡＥＮＤが活性化される。Ｑから出力されたデータはＰＯＲＴ−ＳＥＬがＢポートを選択しているためＢポートのデータを保持するラッチＬＡＢにラッチされる。このデータはＣＬＫＢが再び立ち上がった際にＢポートの出力ＦＦであるＦＦＱＢに取り込まれ、出力データＱＢが出力されて動作が完了する。
【００３０】
このように、シングルポートＳＲＡＭ（マクロＳＰ−ＳＲＡＭ）の動作終了信号ＳＡＥＮＤおよびＳＰ−ＳＲＡＭが動作していることを示すフラグＦｌａｇ０を使用することで、シングルポートメモリセルを用いて、複数のポート（Ａ，Ｂ）から非同期にアクセスを行う時分割マルチポートメモリの実現が可能となる。
【００３１】
図８には、図６中の制御信号生成回路の一実施例の回路図が示されている。図８中で、ＰＧは一定の長さのパルス信号を生成するパルスジェネレータ回路、ＳＲＦＦはセットリセットフリップフロップを示す。Ａポートのクロック信号ＣＬＫＡがパルスジェネレータによって一定の長さのパルスに整形される。これは、シングルポートＳＲＡＭの動作速度つまりシングルポートＳＲＡＭ回路におけるディレイよりも長いクロックの入力による回路動作の不具合を防ぐためである。
【００３２】
ＣＬＫＡから作られたパルス信号ＰＬＳＡとＦｌａｇ０の出力とのＡＮＤをとり "Ｈ”の場合にはＦｌａｇＳがセットされる。パルス信号ＰＬＳＡとＦｌａｇ０の逆出力とのＡＮＤをとりこの値が "Ｈ”の場合には、ＣＬＫＩが立ち上がる。さらにポートセレクト信号ＰＯＲＴ−ＳＥＬを保持しているセットリセットフリップフロップをセットしてＡポートを選択する。Ｂポートのクロック信号ＣＬＫＢが入力された場合にもＡポートのクロック入力と同様の処理が行われる。ただし、ＡポートおよびＢポートのクロックが同時に入力された場合には、Ａポートのクロック信号から生成された信号をＡＮＤに入力することによりＢポートは立ち上げずに、ＦｌａｇＳをセットするという動作が行われる。
【００３３】
ＳＰ−ＳＲＡＭの動作終了を示す信号ＳＡＥＮＤが入力された場合には、ＣＬＫＡおよびＣＬＫＢ同様にパルスジェネレータにより入力信号の波形が整形される。その整形された信号とＦｌａｇＷのＡＮＤをとることで、ＦｌａｇＷが "Ｈ”だった場合にはＣＬＫＩが立ち上がる。さらに、ポート選択信号を保持しているフリップフロップの値を判定し、逆の値をそのフリップフロップにセットすることで、直前に動作を行ったポートと異なるポートを起動することが可能となる。
【００３４】
図９および図１０には、図８中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図が示されている。図９において、ステップ（１）において、Ａポートのクロック信号ＣＬＫＡが入力された場合、ステップ（２）でＳＰ−ＳＲＡＭの動作を示すフラグＦｌａｇ０を評価する。Ｆｌａｇ０が "Ｌ”の場合にはステップ（３）でＳＰ−ＳＲＡＭは動作していないため、ステップ（３）でＡポートを起動し、ステップ（４）でＳＰ−ＳＲＡＭが動作を始めるためＦｌａｇ０をセットする。その後、ステップ（５）のように待機状態となる。
【００３５】
ステップ（５）の待機状態において、ＣＬＫＡまたはＣＬＫＢが入力されると上記図９のフローチャートを、ＳＡＥＮＤが入力されると次に説明する図１０のフローチャートを実行する。Ｆｌａｇ０の評価においてＦｌａｇ０が "Ｈ”の場合には、ＳＰ−ＳＲＡＭが動作状態のためポートＡの動作は待ち状態となる。つまり、ステップ（６）でポートが待ち状態であることを示すフラグＦｌａｇＳをセットし、ステップ（７）で待機状態に入る。図９においては、Ａポートのクロック信号ＣＬＫＡが入力された場合の動作を説明したが、Ｂポートのクロック信号ＣＬＫＢが入力された場合にはＢポートで同様の動作が行われる。
【００３６】
図１０は、ＳＰ−ＳＲＡＭの動作終了を表す信号ＳＡＥＮＤが入力された場合のフローチャート図を示す。ステップ（１）において、ＳＡＥＮＤの入力とともにＳＰ−ＳＲＡＭの動作が終了しているためステップ（２）でＦｌａｇ０をリセットする。次に、ステップ（３）で待機状態にあるポートがあるかどうかを示すフラグＦｌａｇＳを評価する。ＦｌａｇＳが "Ｌ”の場合には待機状態にあるポートがないため、ステップ（４）により待機状態となる。ステップ（４）の待機状態においては、図９の待機状態と同様ＣＬＫＡまたはＣＬＫＢが入力されると図９のフローチャートを、ＳＡＥＮＤが入力されると図１０のフローチャートを実行する。
【００３７】
ＦｌａｇＳの評価結果が "Ｈ”の場合には待機状態にあるポートがあるため、待機状態のポートの動作を開始する。次にどのポートの動作を行うかを判定するために直前に処理を行ったポートをステップ（５）で判定する。直前にＢポートの動作を行っていた場合には、ステップ（６）でＡポートを選択してＳＰ−ＳＲＡＭを起動し、ステップ（７）でＦｌａｇ０をセットするとともにＦｌａｇＳをリセットして、ステップ（８）で待機状態となる。直前にＡポートの動作を行っていた場合には、Ｂポートを選択してＳＰ−ＳＲＡＭをステップ（９）で起動し、ステップ（１０）でＦｌａｇ０をセットするとともにＦｌａｇＳをリセットしてステップ（１１）で待機状態となる。これらの動作によって、図１０のフローを実現することが可能となる。
【００３８】
以上のように、本発明に係る複数のポートから調停回路を介してシングルポートＳＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、デュアルポートＳＲＡＭセルのようにＷサイズ（ゲート幅）の大きいトランジスタを使用する必要がなく、面積が小さくなり、簡単な構成でメモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
【実施例２】
【００３９】
図１１には、この発明に係るマルチポートメモリに用いられる調停回路の他の一実施例の概略図が示されている。同図は、前記図６の変形例であり、同図の調停回路の大部分は前記図６の調停回路と大部分が同じであるため異なる部分についてのみ説明する。図１１の回路が図６の回路と異なるのは、調停制御回路ＣＯＮＴ−ＡＲＢ2 内に、シングルポートＳＲＡＭの動作中であることを示すフラグＦｌａｇ０と、Ａポートが動作待ち状態にあることを示すＦｌａｇＡ、Ｂポートが動作待ち状態にあることを示すＦｌａｇＢを有している点である。これによって、シングルポートＳＲＡＭの動作終了時に立ち上げるポートを選択することが容易になる。
【００４０】
図１２には、図１１の調停回路を備えたデュアルポートメモリの一例の動作波形図が示されている。時間Ｔ１において、ＣＬＫＡが入力されているため、それによってＳＰ−ＳＲＡＭを起動するクロック信号ＣＬＫＩが立ち上がる。それとともに、ポートを選択する信号ＰＯＲＴ−ＳＥＬがＡポートを選択し、Ａポートの入力データ（アドレス）および制御信号がＳＰ−ＳＲＡＭに入力される。その際にＳＰ−ＳＲＡＭが動作を始めたため、ＳＰ−ＳＲＡＭが動作していることを表すフラグＦｌａｇ０が "Ｈ”となる。また、ＣＬＫＡの入力によりＡポートが動作待ちであることを示すフラグＦｌａｇＡがセットされるが、ポートＡが起動されるためすぐにリセットされる。
【００４１】
上記ＣＬＫＩの入力に伴い対応するワード線ＷＬ（Ａ）が活性化される。それに伴い、ＳＰ−ＳＲＡＭからデータが読み出され、ＳＰ−ＳＲＡＭの出力ポート（出力信号）Ｑに読み出しを行ったデータＡ１が出力される。さらに、動作が終了するため動作終了信号ＳＡＥＮＤが活性化される。Ｑから出力されたデータＡ１はＰＯＲＴ−ＳＥＬがＡポートを選択しているためＡポートのデータを保持するラッチＬＡＡにラッチされる。このデータＡ１は時間Ｔ３においてＣＬＫＡが再び立ち上がった際にＡポートの出力ＦＦであるＦＦＱＡに取り込まれ、出力データＱＡとして出力されて動作が完了する。
【００４２】
上記時間Ｔ１において、ほぼ同時にＣＬＫＢが入力される。このタイミングでは、Ａポートが起動されるためＢポートは待ち状態となり、それによってＢポートが待ち状態であることを示すＦｌａｇＢがセットされる。
【００４３】
時間Ｔ２において、Ｂポートのアクセスが処理される。時間Ｔ１の終盤にポートＡのアクセスが終了したことを示す信号ＳＡＥＮＤが立ち上がる。この際に、Ｂポートが待ち状態であることを示すフラグＦｌａｇＢが "Ｈ”となっているため、Ｂポートの動作をするためにＳＰ−ＳＲＡＭが起動され、ＳＰ−ＳＲＡＭにクロック信号ＣＬＫＩが入力されるとともにポート選択信号ＰＯＲＴ−ＳＥＬがＢポートを選択する。ここで、Ｂポートを選択してＳＰ−ＳＲＡＭが起動されるため、Ｂポートが待ち状態であることを示すＦｌａｇＢはリセットされる。
【００４４】
Ｂポートの入力データ（アドレス）および制御信号がＳＰ−ＳＲＡＭに入力され、関連するワード線ＷＬ（Ｂ）が活性化される。それに伴い、ＳＰ−ＳＲＡＭの出力ポートＱに読み出しを行ったデータＢ１が出力される。さらに、動作が終了するため動作終了信号ＳＡＥＮＤが活性化される。出力ポートＱから出力されたデータＢ１はＰＯＲＴ−ＳＥＬがＢポートを選択しているためＢポートのデータを保持するラッチＬＡＢにラッチされる。このデータは時間Ｔ３においてＣＬＫＢが再び立ち上がった際にＢポートの出力ＦＦであるＦＦＱＢに取り込まれ、出力データＱＢとして出力されて動作が完了する。
【００４５】
次に、時間Ｔ５における動作を説明する。時間Ｔ４においては、時間Ｔ１と同様にＡポートにアクセスが行われる。そのアクセス終了時にはＳＰ−ＳＲＡＭの動作終了を示す信号ＳＡＥＮＤが立ち上がって時間Ｔ５が始まる。その際に、ＦｌａｇＡおよびＦｌａｇＢともにセットされていない状態のため次の動作は始まらない。その後ＣＬＫＢが入力された時点でＦｌａｇ０は "Ｌ”の状態にあり、そのためＣＬＫＢの入力によってＳＰ−ＳＲＡＭの動作が始まる。
【００４６】
この際、ＣＬＫＢの入力によってＦｌａｇＢがセットされるが、Ｂポートに関してＳＰ−ＳＲＡＭが起動されることによってすぐにリセットされる。ＣＬＫＢの入力により、ＳＰ−ＳＲＡＭに入力されるクロックＣＬＫＩが立ち上がるとともにポート選択信号ＰＯＲＴ−ＳＥＬがＢポートを選択する。これにより、Ｂポートのデータおよび制御信号がＳＰ−ＳＲＡＭに入力され、関連するワード線が活性化される。それに伴い、ＳＰ−ＳＲＡＭからデータが読み出されＳＰ−ＳＲＡＭの出力信号Ｑに読み出しを行ったデータＢ５が出力される。さらに、動作が終了するため動作終了信号ＳＡＥＮＤが活性化される。出力ポートＱから出力されたデータはＰＯＲＴ−ＳＥＬがＢポートを選択しているためＢポートのデータを保持するラッチＬＡＢにラッチされる。このデータＢ５はＣＬＫＢが再び立ち上がった際にＢポートの出力ＦＦであるＦＦＱＢに取り込まれ、動作が完了する。
【００４７】
このように、シングルポートＳＲＡＭマクロ（ＳＰ−ＳＲＡＭ）の動作終了信号、ＳＰ−ＳＲＡＭが動作していることを示すフラグＦｌａｇ０およびＡポートとＢポートが動作待ち状態であることを示すフラグＦｌａｇＡとＦｌａｇＢを使用することで、シングルポートメモリセルを用いて、複数のポートから非同期にアクセスを行う時分割マルチポートメモリの実現が可能となる。
【００４８】
図１３には、図１１中の制御信号生成回路の一実施例の回路図が示されている。ＰＧは一定の長さのパルス信号を生成するパルスジェネレータ回路、ＳＲＦＦはセットリセットフリップフロップ、ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２はＦＦの入力データとＣＬＫとのＮＡＮＤ演算の結果を出力するフリップフロップ回路を示す。本回路では、Ａポートのクロック信号ＣＬＫＡ、Ｂポートのクロック信号ＣＬＫＢ、ＳＰ−ＳＲＡＭの動作終了信号ＳＡＥＮＤはパルスジェネレータＰＧによって一定の長さのパルスに整形され、それぞれＰＬＳＡ、ＰＬＳＢおよびＰＬＳＳとなる。これは、ＳＰ−ＳＲＡＭの動作速度つまりＳＰ−ＳＲＡＭ回路におけるディレイよりも長いクロックの入力による回路動作の不具合を防ぐためである。
【００４９】
Ａポートのクロック信号ＣＬＫＡが入力された場合には、ＦｌａｇＡを構成するセットリセットフリップフロップ（ＳＲＦＦ) がセットされる。またＢポートのクロック信号ＣＬＫＢが入力された場合には、ＦｌａｇＢを構成するＳＲＦＦがセットされる。またＳＰ−ＳＲＡＭの動作終了信号ＳＡＥＮＤが入力された場合には、Ｆｌａｇ０を構成するＳＲＦＦがリセットされる。さらに、ＰＬＳＡ、ＰＬＳＢおよびＰＬＳＳの論理和がとられてＰＬＳＣとなる。このＰＬＳＣはＳＰ−ＳＲＡＭを起動するためのＣＬＫＩを生成するためのパルス信号となり、ＰＬＳＣが立ち上がった場合にはＣＬＫＩが入力される。
【００５０】
この際、ＰＬＳＡおよびＰＬＳＢはＦｌａｇ０が "Ｈ”の場合は "Ｌ”に、ＰＬＳＳはＦｌａｇＡとＦｌａｇＢがともに "Ｌ”の場合には "Ｌ”なった論理和がとられるため、各フラグの状態がＳＰ−ＳＲＡＭを立ち上げに行かない状態の場合にはＰＬＳＣは立ち上がらない。ＰＬＳＣが立ち上がると、ＡポートとＢポートのどちらを起動するかの判定が行われる。ＦｌａｇＡがセットされている場合には、ＦＡが "Ｈ”となっているため、ＮＡＮＤＦＦ１からＰＬＳＣと同期した信号が出力され、その信号によってＣＬＫＩが立ち上がるとともにポート選択信号と保持しているＳＲＦＦが "Ｈ”となりＡポートが選択される。
【００５１】
ＰＬＳＣが立ち上がった場合にＦｌａｇＢがセットされている場合にはＦＢが "Ｈ”となっているためＮＡＮＤＦＦ２からＰＬＳＣと同期した信号が出力される。この場合に、ＮＡＮＤＦＦ２に入力されるクロック信号はディレイ回路ＤｅｌａｙによってＰＬＳＣからある一定の時間遅らせた信号となっている。ここで、ＦｌａｇＡも "Ｈ”となっている場合には、ＮＡＮＤＦＦ２の次々段のＮＡＮＤによってＢポートの起動は取り消されＡポートが優先的に起動される。ＦｌａｇＡが "Ｌ”の場合には、ＮＡＮＤＦＦ２の出力信号によってＣＬＫＩが立ち上がるとともにポート選択信号と保持しているＳＲＦＦが "Ｌ”となりＢポートが選択される。
【００５２】
この回路において、ＣＬＫＡ、ＣＬＫＢおよびＳＡＥＮＤの論理和をとり、さらにそれらの論理和から出力されたＰＬＳＣ信号を遅延させた信号によってＢポートを起動することによって、ＣＬＫＡ、ＣＬＫＢおよびＳＡＥＮＤのタイミングによる不定状態を抑止することが可能となる。それぞれの信号は、非同期で本回路に入力されるため、タイミングによっては２ポートが同時に起動されてしまったり、逆にどちらのポートも起動されないという状態が起こり得る。
【００５３】
本回路では、それぞれの入力クロックの論理和をとることで、微妙に近いタイミングでそれぞれの信号が入力された場合に、いずれのポートが起動しても良い状態を作り出す。これによって、いずれのポートも起動されない状態を抑止する。さらに、遅延回路を用いてＡポートを優先的に評価することで、複数のポートが同時に起動されてしまう状態を防ぐ。以上のように、動作終了信号ＳＡＥＮＤ、動作状態を表すフラグＦｌａｇ０、ＦｌａｇＡおよびＦｌａｇＢを用いることで複数のポートから非同期アクセス可能なマルチポートメモリを実現することが出来る。さらに、入力された信号の論理和をとることと、生成されたパルス信号にディレイ回路を加えることで、非同期に入力されるクロック信号による不定状態を抑制することが出来る。
【００５４】
図１４には、図１３中のフリップフロップ回路ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２の一実施例の回路図が示されている。入力信号ＩＮを保持する回路（インバータ回路と正帰還ループを構成するクロックドインバータ回路）と、ＣＬＫと保持しているデータとのＮＡＮＤを演算する回路によって、入力信号ＩＮがクロック信号によって保持されるとともに、保持しているデータとクロックのＮＡＮＤをとった値を出力することが可能となる。この回路は、図１３において、ＳＰ−ＳＲＡＭが起動された後にＦｌａｇＡまたはＦｌａｇＢの値が変化しポート選択信号の入力を変化させてしまうことを防ぐ。また、図１３の回路中で、Ｆｌａｇ０、ＦｌａｇＡおよびＦｌａｇＢの各入力の前段にＮＡＮＤ回路が挿入されている。これは、一般的なＳＲＦＦでは、セットおよびリセットの入力がともに "Ｈ”となった場合に誤動作するため、両入力がともに "Ｈ”となることを防止するために挿入されている。
【００５５】
図１５および図１６には、図１３中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図が示されている。図１５において、ステップ（１）においてＡポートのクロック信号ＣＬＫＡが入力された場合、ステップ（２）でＡポートが待ち状態であることを示すＦｌａｇＡをセットする。さらにＳＰ−ＳＲＡＭの動作を示すフラグＦｌａｇ０をステップ（３）で評価する。Ｆｌａｇ０が "Ｌ”の場合にはＳＰ−ＳＲＡＭは動作していないため、ステップ（４）でＡポートを起動し、それとともにＳＰ−ＳＲＡＭが動作を始めるためステップ（５）でＦｌａｇ０をセットし、Ａポートが動作を実行するためＦｌａｇＡをリセットする。その後、ステップ（６）で待機状態となる。このステップ（６）の待機状態において、ＣＬＫＡまたはＣＬＫＢが入力されると図１５のフローチャートを、ＳＡＥＮＤが入力されると次に説明する図１６に示したフローチャートを実行する。
【００５６】
ステップ（３）のＦｌａｇ０の評価においてＦｌａｇ０が "Ｈ”の場合には、ＳＰ−ＳＲＡＭが動作状態のため、ステップ（７）の待機状態に入る。前記図１５においては、Ａポートのクロック信号ＣＬＫＡが入力された場合の動作を説明したが、Ｂポートのクロック信号ＣＬＫＢが入力された場合にはＢポートで同様の動作が行われる。
【００５７】
図１６は、ＳＰ−ＳＲＡＭの動作終了を表す信号ＳＡＥＮＤが入力された場合のフローチャート図を示す。ステップ（１）でＳＡＥＮＤの入力とともにＳＰ−ＳＲＡＭの動作が終了しているためステップ（２）でＦｌａｇ０をリセットする。次にＡポートが待機状態であるかどうかを示すフラグＦｌａｇＡをステップ（３）で評価する。ＦｌａｇＡの評価結果が "Ｈ”の場合にはＡポートが待ち状態にあるため、ステップ（９）でＡポートを起動し、それとともにＳＰ−ＳＲＡＭが動作を始めるためステップ（１０）でＦｌａｇ０をセットし、Ａポートが動作を実行するためＦｌａｇＡをリセットする。ステップ（１１）で待機状態となる。ＦｌａｇＡの評価結果が "Ｌ”の場合にはＢポートが待機状態であるかどうかを示すフラグＦｌａｇＢをステップ（４）で評価する。ＦｌａｇＢの評価結果が "Ｈ”の場合にはＢポートが待ち状態にあるため、ステップ（６）でＢポートを起動し、それとともにＳＰ−ＳＲＡＭが動作を始めるためステップ（７）でＦｌａｇ０をセットし、Ｂポートが動作を実行するためＦｌａｇＢをリセットする。ステップ（８）で待機状態となる。ＦｌａｇＢの評価結果が "Ｌ”の場合には、動作を待っている状態のポートがないためステップ（５）で待機状態となる。これらの動作によって、図１２の動作フローを実現することが可能となる。
【００５８】
以上のように、本発明を用いて複数のポートからＳＰ−ＳＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、前記同様に面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
【実施例３】
【００５９】
図１７には、この発明に係る２ポートＳＲＡＭの他の一実施例の概略図が示されている。一般的にいうとデュアルポートメモリは、２つの独立した（非同期）ポートを有し、それぞれのポートが書き込み及び読み出し動作を共に実行できるメモリのことを指す。それに対して、２ポートメモリは、２つの独立した（非同期）ポートを有し、１つのポートは書き込み動作専用とされ、もう１つのポートは読み出し動作専用とされるメモリに向けられている。前記実施例１および２は、上記のようにそれぞれのポートが書き込み及び読み出し動作を共に実行できるデュアルポートメモリに適用した場合の例である。本実施例では上記２ポートメモリに適用した場合の例である。
【００６０】
図１７において、ＳＰ−ＳＲＡＭはシングルポートＳＲＡＭメモリセルを用いたＳＲＡＭマクロを表しており、１ビットのデータを保持するメモリセルとしては、前記同様に図４に示すＳＰ−ＳＲＡＭメモリセルが使用される。ポートＲは読み出しを行うポートであり、起動するクロック信号ＣＬＫＲおよびアドレス信号を含む制御信号ＣＯＮＴＲが入力され、読み出されたデータはＱＲとして出力される。ポートＷは書き込みを行うポートであり、起動するクロック信号ＣＬＫＷ、アドレス信号を含む制御信号ＣＯＮＴＷおよび入力データＤＷが入力される。ＡＲＢＩＴはアクセスを調停する調停回路を表しており、入力されたＷポートおよびＲポートの信号を調停してＳＰ−ＳＲＡＭにアクセスする。
【００６１】
調停回路ＡＲＢＩＴには、ポートＲのクロック信号ＣＬＫＲ、ポートＲの動作を制御する制御信号ＣＯＮＴＲ( アドレス信号も含む）が入力され、ＳＰ−ＳＲＡＭから読み出されたデータがＱＲとして出力される。さらに、ポートＷのクロック信号ＣＬＫＷ、ポートＷの動作を制御するクロック信号ＣＬＫＷとポートＷを制御する制御信号ＣＯＮＴＷ( アドレス信号も含む）およびデータＤＷが入力される。調停回路ＡＲＢＩＴからＳＰ−ＳＲＡＭには、ＳＰ−ＳＲＡＭを制御するクロック信号ＣＬＫＩとＳＰ−ＳＲＡＭの制御信号ＣＯＮＴ（アドレス信号を含む）、入力データＤが入力され、読み出しデータＱがＳＰ−ＳＲＡＭから調停回路ＡＲＢＩＴに入力される。
【００６２】
ＳＰ−ＳＲＡＭから調停回路ＡＲＢＩＴにはＳＰ−ＳＲＡＭの動作が終了したタイミングを示す信号ＳＡＥＮＤが入力される。また、調停回路ＡＲＢＩＴはＳＰ−ＳＲＡＭが動作していることを示すフラグＦｌａｇ０とポートＷが待ち状態であることを示すフラグＦｌａｇＷとポートＲが待ち状態であることを示すフラグＦｌａｇＲを有している。調停制御回路ＣＯＮＴ−ＡＲＢの動作は、実施例２のＣＯＮＴ−ＡＲＢ2 の動作とほぼ同じであり、ＣＯＮＴ−ＡＲＢのＦｌａｇＡをＦｌａｇＷに、ＦｌａｇＢをＦｌａｇＲに置き換えると動作は同じである。
【００６３】
図１８には、図１７の２ポートメモリの一例の動作波形図が示されている。基本的には前記図１２と同様であり、前記図１２のポートＡが同図のポートＷに対応し、ポートＢがポートＲにそれぞれ対応している。読み出しポートＲの入力信号ＣＬＫＲに対して出力ポートＱからデータＲ１がＳＰ−ＳＲＡＭから出力され、出力データＱＲとしてポートＲに出力される。またポートＲおよびポートＷに対応したワード線ＷＬ（Ｗ）（Ｒ）が立ち上がっていることがわかる。以上のように、本発明を用いて複数のポートからシングルポートＳＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリ、特に上記のような２ポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
【実施例４】
【００６４】
図１９には、この発明に係るＳＰ−ＳＲＡＭ（ＳＲＡＭマクロ）の他の一実施例の概略ブロックが示されている。同図では、主として上記メモリ動作終了信号ＳＡＥＮＤを生成する他の例が示されている。前記図２の実施例では、シングルポートメモリの動作終了信号ＳＡＥＮＤをセンスアンプの起動タイミングを用いて生成する回路について説明した。この実施例では、ＳＡＥＮＤをワード線の立ち下げ信号から生成する。ＣＬＫＩはＳＰ−ＳＲＡＭに入力されるクロック信号、ＰＧはある幅のパルスを生成するパルスジェネレータ、ＣＬＫ−ＬＣはパルスジェネレータによって生成された内部クロック信号、ＴＧＥＮはタイミングを生成する回路、Ｄｅｃｏｄｅｒはアドレスをデコードする回路、ＷＬＤＲはワード線を駆動するワード線ドライバ、ＳＡはセンスアンプ、Ｌａｔｃｈはデータをラッチするラッチ回路、Ｍｅｍｏｒｙ  ａｒｒａｙはシングルポートメモリセルをアレイ状に並べたメモリアレイ、ＷＬＩＡはワード線を非活性化するタイミングを示すタイミング信号、Ｄｅｌａｙは一定の遅延を信号に与える遅延回路、ＳＡＥＮＤは動作終了を示す信号である。
【００６５】
この実施例回路では、ＣＬＫＩが入力されるとパルスジェネレータＰＧにより内部で動作するためのパルス信号ＣＬＫ−ＬＣを生成する。ＣＬＫ−ＬＣはワード線ドライバＷＬＤＲに入力されてワード線が活性化されるとともに、タイミング生成回路ＴＧＥＮに入力され、その信号からワード線を非活性化するための信号ＷＬＩＡが生成され、ＷＬＩＡがワード線ドライバＷＬＤＲに入力されてワード線が非活性化される。ワード線が非活性化されるとシングルポートメモリの動作が終了するためＳＰ−ＳＲＡＭの動作が終了した状態となる。つまり、ＷＬＩＡを遅延させた信号ＳＡＥＮＤが出力されると、ＳＲＡＭの動作が終了したといえる。
【００６６】
図２０には、図１９中のタイミング生成回路の一実施例の概略回路図が示されている。図２０において、ＣＬＫ−ＬＣはＳＰ−ＳＲＡＭの内部クロック信号、ＭＣはメモリセル、ＷＬはワード線を示している。ＲＣは、前記図４に示したようなレプリカメモリセルを示しており、通常動作するメモリセルＭＣと大部分が同じ構成となっている。ＣＬＫ−ＬＣが入力される前には、ＰＭＯＳトランジスタＭＰＣによりレプリカビット線ＲＢＬがプリチャージされている。ＣＬＫ−ＬＣが入力されるとレプリカワード線ＲＷＬが活性化され、それによりレプリカメモリセルＲＣが活性化され、プリチャージされたレプリカビット線ＲＢＬの電荷が引き抜かれる。これによって、ＣＬＫ−ＬＣが入力される前は、 "Ｌ”の状態であったＷＬＩＡが "Ｈ”となる。つまりＣＬＫ−ＬＣの入力によってセンスアンプ起動信号ＳＡＥＮが活性化される。
【００６７】
以上のように、本発明を用いて複数のポートからシングルポートＳＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
【実施例５】
【００６８】
図２１には、デュアルポートＤＲＡＭの一実施例の概略図を示す。図２１において、ＳＰ−ＤＲＡＭは、シングルポートＤＲＡＭメモリセルを用いたＤＲＡＭマクロを表す。ＤＲＡＭメモリセルは、アドレス選択ＭＯＳＦＥＴＱと記憶キャパシタＣから構成される。アドレス選択ＭＯＳＦＥＴＱのゲートは、ワード線ＷＬに接続され、記憶キャパシタＣの記憶ノードとビット線ＢＬとの間にアドレス選択ＭＯＳＦＥＴＱのドレイン−ソース経路が接続される。
【００６９】
ＡＲＢＩＴはアクセスを調停する回路を表しており、入力されたＡポートおよびＢポートの信号を調停してシングルポートＤＲＡＭマクロにアクセスする。ＡＲＢＩＴには、ポートＡのクロック信号ＣＬＫＡ、ポートＡの動作を制御する制御信号ＣＯＮＴＡ（アドレス信号も含む）およびデータＤＡが入力され、ポートＡから読み出したデータがＱＡとして出力される。さらに、ポートＢのクロック信号ＣＬＫＢ、ポートＢの動作を制御するクロック信号ＣＬＫＢとポートＢを制御する制御信号ＣＯＮＴＢ（アドレス信号も含む）およびデータＤＢが入力され、ポートＢから読み出したデータがＱＢとして出力される。
【００７０】
さらに、調停回路ＡＲＢＩＴからシングルポートＤＲＡＭマクロＳＰ−ＤＲＡＭには、ＳＰ−ＤＲＡＭを制御するクロック信号ＣＬＫＩとＳＰ−ＤＲＡＭの制御信号ＣＯＮＴ（アドレス信号を含む）、入力データＤが入力され、読み出しデータＱがＳＰ−ＤＲＡＭから調停回路に入力される。さらに、ＳＰ−ＤＲＡＭから調停回路ＡＲＢＩＴにはＳＰ−ＤＲＡＭの動作が終了したタイミングを示す信号ＳＡＥＮＤが入力される。また、調停回路ＡＲＢＩＴはＳＰ−ＤＲＡＭが動作していることを示すフラグＦｌａｇ０を有する。この回路のＤＲＡＭマクロ以外の詳細動作は、実施例１と同様となる。
【００７１】
ＳＲＡＭメモリセルでは、メモリセルに複数のアクセストランジスタを付加してマルチポートメモリ化することは、面積増大やメモリセルの設計コストが増大することがデメリットではあるが可能である。しかし、ＤＲＡＭメモリセルは、その構造から複数のアクセストランジスタを付加してマルチポートメモリ化することは難しい。本発明を用いれば、従来は困難であったＤＲＡＭセルを用いたマルチポートメモリを実現することが可能である。
【００７２】
前記ＳＰ−ＳＲＡＭを用いた調停回路ＡＲＢＩＴをそのまま流用するため、言い換えるならば、調停回路ＡＲＢＩＴの開発コストを低減させるために、上記ＳＰ−ＤＲＡＭには、ＳＲＡＭ適合インターフェイスＳＲＡＭ−ＩＦが設けられる。また、ＳＰ−ＤＲＡＭには、自動リフレッシュ制御回路が搭載されて、外部からのリフレッシュ制御が不要にされて実質的にスタティック型ＲＡＭと同様に扱うことができるようにされる。
【００７３】
以上のように、本発明を適用して複数のポートからシングルポートＤＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、言い換えるならばＳＲＡＭセルを用いた場合に比べ、小さな面積で格段に大きな記憶容量を持つマルチポートメモリを実現することが出来る。
【実施例６】
【００７４】
図２２には、この発明に用いられる制御信号生成回路の更に他の一実施例の回路図が示されている。本発明を用いた時分割マルチポートメモリの別の構成について説明する。この実施例は、前記図１３に示した制御信号生成回路ＣＯＮＴ−ＡＲＢの変形例である。この実施例回路は、前記実施例２中の図１３の部分が図２２となったものであるため、異なる部分についてのみ説明する。
【００７５】
図２２において、図１３と異なるのは、前記図１３中のフリップフロップ回路ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２がＮＡＮＤで置き換えられ、さらにＦｌａｇＡおよびＦｌａｇＢをリセットする信号の生成部分に遅延回路Ｄｅｌｙ２が加えられていることである。前記図１３において、ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２はシングルポートＳＲＡＭが起動された後にＦｌａｇＡまたはＦｌａｇＢの値が変化しポート選択信号の入力を変化させてしまうことを防いでいた。
【００７６】
この実施例においては、フリップフロップ回路ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２がないことからこの部分でデータが保持されなくなり、ＦｌａｇＡおよびＦｌａｇＢにデータがフィードバックされるが、遅延信号Ｄｅｌｙ２が加えられているため、そのタイミングでの動作中にＦｌａｇＡおよびＦｌａｇＢがリセットされることはなくなるため、誤動作は起こらない。前記図１３の回路では、クロックと同期してデータがラッチされるフリップフロップ回路ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２が用いられているため、クロックと入力されるデータのタイミング関係によっては出力データの確定に時間のかかるメタステーブル状態が発生する可能性がある。しかし、この実施例回路では、クロックと同期してデータを保持するフリップフロップ回路が使用されていないため、このメタステーブル状態が回避できる。
【００７７】
図２３には、図２２の動作を説明する動作波形が示されている。この動作波形は、前記図１２の動作波形図とほぼ同等であり、ＦｌａｇＡおよびＦｌａｇＢのデータが "Ｈ" から "Ｌ" にリセットされるタイミングのみが異なる。前記図１２波形図ではＣＬＫＩが活性化されると直ちにＦｌａｇＡまたはＦｌａｇＢがリセットされていたが、同図では、図２２の実施例回路において遅延回路Ｄｅｌｙ２が挿入されているため、ＣＬＫＩが活性化された後に、ある時間がたってからＦｌａｇＡまたはＦｌａｇＢがリセットされる。
【００７８】
以上のように、本発明を用いて複数のポートからシングルポートＳＲＡＭマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来、さらに調整回路内においてメタステーブル状態の発生を抑制することが可能となる。
【００７９】
図２４には、この発明に係るメモリマクロが搭載された半導体装置の一実施例の概略ブロック図が示されている。この実施例のメモリマクロは、クロック速度（周波数）の異なるデバイス間でデータ転送に用いられる。２つのプロセッサコアＣＯＲＥ１とＣＯＲＥ２、およびそれらのプロセッサコアから共通にアクセスされる共有メモリＳＨＡＲＥＤ  ＭＥＭＯＲＹが同一ＬＳＩ上に搭載される。共有メモリＳＨＡＲＥＤ  ＭＥＭＯＲＹは、前記実施例１〜５に示したようなメモリが用いられる。
【００８０】
プロセッサコアＣＯＲＥ１は５００ＭＨｚで、プロセッサコアＣＯＲＥ２は１００ＭＨｚで動作している場合に、上記共有メモリＳＨＡＲＥＤ  ＭＥＭＯＲＹに非同期でそれぞれのタイミングでアクセスしてデータのやり取りを行うことができる。つまり、プロセッサコアＣＯＲＥ１から共有メモリＳＨＡＲＥＤ  ＭＥＭＯＲＹにデータを書き込み、プロセッサコアＣＯＲＥ２で読み出すことによりＣＯＲＥ１からＣＯＲＥ２へのデータ転送が実現できる。
【００８１】
クロック速度の異なるデバイス間でデータ転送において、前記図２７に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献１，２のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはＦＩＦＯのようなタイミングを調整する回路を搭載してデータ転送をする場合に比べて、この発明に係る共用メモリＳＨＡＲＥＤ  ＭＥＭＯＲＹが非同期で動作する複数のポートを持つメモリ動作をすることを利用するものでは、タイミング調整を実施する回路は不必要であり、単純にプロセッサＣＯＲＥ１，２とメモリＳＨＡＲＥＤ  ＭＥＭＯＲＹとの間を接続することが可能となり、使い勝手のよいものとなる。
【００８２】
図２５には、この発明に係るメモリマクロが搭載された半導体装置の他の一実施例の概略ブロック図が示されている。この実施例では、プロセッサコアＣＯＲＥ３とバス回路ＢＵＳ１およびその間を接続するメモリ回路ＤＰ−ＳＲＡＭ２が同一ＬＳＩ上に搭載された場合を示す。プロセッサコアＣＯＲＥ３は５００ＭＨｚで、バスＢＵＳ１は２５０ＭＨｚで動作している場合にプロセッサコアとバス間でデータをやり取りする場合には、従来技術では前記図２７に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献１，２のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはＦＩＦＯのようなタイミングを調整する回路を搭載して、バスとプロセッサの接続タイミングを調整する必要がある。この実施例では、ＤＰ−ＳＲＡＭ２が非同期で動作する複数のポートを持つメモリ動作をするので、タイミング調整を実施する回路は不必要であり、単純にプロセッサコアＣＯＲＥとバス間ＢＵＳ１をＤＰ−ＳＲＡＭ２を介して接続することが可能である。
【００８３】
図２６には、この発明に係るメモリマクロが搭載された半導体装置の更に他の一実施例の概略ブロック図が示されている。この実施例では、バス回路ＢＵＳ１とビデオ信号入力ＶＩＤＥＯ  Ｉ／Ｆとその間を接続するメモリ回路２Ｐ−ＳＲＡＭ２が同一ＬＳＩ上に搭載される。バスＢＵＳ１は２５０ＭＨｚで、ビデオＶＩＤＥＯ  Ｉ／Ｆは１３３ＭＨｚで動作している場合に、ＶＩＤＥＯ  Ｉ／Ｆから入力された信号をバスに伝えるには、従来技術では前記図２７に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献１，２のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはＦＩＦＯのようなタイミングを調整する回路を搭載して、ビデオ入力信号の入力タイミングとバスへのアクセスタイミングを調整する必要がある。
【００８４】
しかし、２Ｐ−ＳＲＡＭ２が非同期で動作する書き込みポートと読み出しポートをもつ２ポートメモリ動作をする場合には、タイミング調整を実施する回路は不必要であり、単純にビデオ入力インターフェイスとバスを接続することが可能である。この場合、ビデオ信号入力は入力に使われるのみのため、２Ｐ−ＳＲＡＭ２は、前記図１７の実施例のような読み出しおよび書き込みポートをそれぞれ持った２ポートＳＲＡＭで構成可能である。また、転送データが表示装置の１画面分の大量なデータである場合には、前記図２１に示したようなＳＰ−ＤＲＡＭを用いることが便利である。
【００８５】
この発明は、ポート数が２の場合について説明した。これはポート数が３以上になった場合にも同様の考え方で調停回路を設計すれば、同様の動作が可能であるためである。ただし、図８の実施例回路を用いた場合、次の動作ポートを選ぶ際に、ポート数が２の場合には前回動作が行われなかったポートを選ぶという制御をすればいいが、ポート数が３以上になった場合には、前回動作が行われなかったポートが複数存在するため、ポートを選ぶ際に複雑な論理回路が必要となる。しかし、図１３の実施例回路を用いた場合には、単純にそのポートが待ち状態にあるかをフラグで判断し、待ち状態にあるポートを選択することが可能であるため、フラグの数を増やすのみで対応可能である。つまり、ポート数が３以上になった場合に、動作ポートを選択する信号を容易に生成できるのは、図１３の実施例回路である。
【００８６】
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、調停回路の具体的構成は、前記ＳＰ−ＲＡＭ（ＳＲＡＭ又はＤＲＡＭ）からのメモリ動作終了信号を用いて、非同期クロックに対応していずれかのポートのアクセスを許可するものであればよい。この実施例の非同期デュアルポートメモリ又は２ポートメモリは、前記のような非同期デバイス間でのデータ転送の他に、複数の非同期デバイスで共用できる共用メモリとして広く利用できる。また、この実施例のメモリマクロは、システムＬＳＩ等に搭載されるデュアルポートメモリ又は２ポートメモリのハードウェアＩＰ（Intellectual Propety）コアに利用することができる。
【産業上の利用可能性】
【００８７】
この発明は、非同期デュアルポートメモリ又は２ポートメモリを有する半導体装置及びそのメモリマクロとして広く利用することができる。
【図面の簡単な説明】
【００８８】
【図１】本発明に係るデュアルポートＳＲＡＭの概略図である。
【図２】図１のＳＰ−ＳＲＡＭ（ＳＲＡＭマクロ）の一実施例の概略ブロックである。
【図３】図２中のタイミング生成回路の一実施例の概略回路図である。
【図４】図３中のメモリセルの一実施例の回路図である。
【図５】図３中のレプリカメモリセルの一実施例の回路図である。
【図６】図１中の調停回路のさらに詳細な概略図である。
【図７】図６の調停回路を備えたデュアルポートメモリの一例の動作波形図である。
【図８】図６中の制御信号生成回路の一実施例の回路図である。
【図９】図８中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
【図１０】図８中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
【図１１】この発明に係るマルチポートメモリに用いられる調停回路の他の一実施例の概略図である。
【図１２】図１１の調停回路を備えたデュアルポートメモリの一例の動作波形図である。
【図１３】図１１中の制御信号生成回路の一実施例の回路図である。
【図１４】図１３中のフリップフロップ回路ＮＡＮＤＦＦ１およびＮＡＮＤＦＦ２の一実施例の回路図である。
【図１５】図１３中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
【図１６】図１３中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
【図１７】この発明に係る２ポートＳＲＡＭの他の一実施例の概略図である。
【図１８】図１７の２ポートメモリの一例の動作波形図である。
【図１９】この発明に係るＳＰ−ＳＲＡＭ（ＳＲＡＭマクロ）の他の一実施例の概略ブロック図である。
【図２０】図１９中のタイミング生成回路の一実施例の概略回路図である。
【図２１】この発明に係るデュアルポートＤＲＡＭの一実施例の概略図である。
【図２２】この発明に用いられる制御信号生成回路の更に他の一実施例の回路図である。
【図２３】図２２の動作を説明する動作波形である。
【図２４】この発明に係るメモリマクロが搭載された半導体装置の一実施例の概略ブロック図である。
【図２５】この発明に係るメモリマクロが搭載された半導体装置の他の一実施例の概略ブロック図である。
【図２６】この発明に係るメモリマクロが搭載された半導体装置の更に他の一実施例の概略ブロック図である。
【図２７】従来のデュアルポートメモリセルの一例の回路図である。
【符号の説明】
【００８９】
ＳＰ−ＳＲＡＭ…シングルポートＳＲＡＭマクロ、ＣＬＫ・ＣＬＫＩ・ＣＬＫＡ・ＣＬＫＢ・ＣＬＫＲ・ＣＬＫＷ・ＣＬＫ−ＬＣ…クロック信号、ＣＯＮＴＡ・ＣＯＮＴＢ・ＣＯＮＴＲ・ＣＯＮＴＷ…アドレス信号を含むポートの制御信号、ＤＡ・ＤＢ・ＤＷ…書き込まれるデータ、ＱＡ・ＱＢ・ＱＲ…読み出されるデータ、ＷＬ・ＷＬＡ・ＷＬＢ…ワード線、ＢＬＴ・ＢＬＢ・ＢＬＴＡ・ＢＬＢＡ・ＢＬＴＢ・ＢＬＢＢ…ビット線、Ｖｄｄ・Ｖｓｓ…電源、ＬＤ１・ＬＤ２…負荷トランジスタ、ＤＲ１・ＤＲ２…駆動トランジスタ、ＡＣ１・ＡＣ２・ＡＣＡ１・ＡＣＡ２・ＡＣＢ１・ＡＣＢ２…転送トランジスタ、ＤＰ−ＳＲＡＭ…デュアルポートＳＲＡＭマクロ、ＡＲＢＩＴ…アクセス調停回路、ＳＡＥＮＤ…メモリマクロ動作終了信号、Ｆｌａｇ０・ＦｌａｇＡ・ＦｌａｇＢ・ＦｌａｇＷ・ＦｌａｇＲ…動作状態を表すフラグ、Ｄｅｃｏｄｅｒ…デコーダ、ＷＬＤＲ…ワード線ドライバ、ＰＧ…パルスジェネレータ、ＳＡＥＮ…センスアンプ起動信号、Ｍｅｍｏｒｙ  ａｒｒａｙ…メモリセルアレイ、ＳＡ…センスアンプ、Ｌａｔｃｈ…ラッチ、ＴＧＥＮ…タイミング生成回路、ＭＣ…メモリセル、ＲＣ…レプリカメモリセル、ＲＷＬ…レプリカワード線、ＷＢＬ…レプリカビット線、ＭＰＣ…プリチャージ用ＰＭＯＳ、ＣＯＮＴ−ＡＲＢ…調停制御回路、Ｓｅｌｅｃｔｏｒ…セレクタ、ＰＯＲＴ−ＳＥＬ…ポート選択信号、ＬＡＡ・ＬＡＢ…出力ラッチ、ＦＦＤＡ・ＦＦＤＢ・ＦＦＱＡ・ＦＦＱＢ…フリップフロップ、ＰＬＳＡ・ＰＬＳＢ・ＰＬＳＣ・ＰＬＳＳ…パルス信号、ＲＳＦＦ…セットリセットフリップフロップ、ＦＡ・ＦＢ…フラグの出力、Ｄｅｌａｙ…遅延回路、ＳＲＡＭ−ＩＦ…ＳＲＡＭ適合インターフェイス、
ＣＯＲＥ１，ＣＯＲＥ２，ＣＯＲＥ…プロセッサコア、ＢＵＳ１，ＢＵＳ２…バス回路、ＳＨＡＲＥＤ  ＭＥＭＯＲＹ…共有メモリ、２Ｐ−ＳＲＡＭ２，ＤＰ−ＳＲＡＭ２…メモリ回路、ＶＩＤＥＯ  Ｉ／Ｆ…ビデオ信号入力。
【図１】
2010044821.tif 000003
【図２】
2010044821.tif 000004
【図３】
2010044821.tif 000005
【図４】
2010044821.tif 000006
【図５】
2010044821.tif 000007
【図６】
2010044821.tif 000008
【図７】
2010044821.tif 000009
【図８】
2010044821.tif 000010
【図９】
2010044821.tif 000011
【図１０】
2010044821.tif 000012
【図１１】
2010044821.tif 000013
【図１２】
2010044821.tif 000014
【図１３】
2010044821.tif 000015
【図１４】
2010044821.tif 000016
【図１５】
2010044821.tif 000017
【図１６】
2010044821.tif 000018
【図１７】
2010044821.tif 000019
【図１８】
2010044821.tif 000020
【図１９】
2010044821.tif 000021
【図２０】
2010044821.tif 000022
【図２１】
2010044821.tif 000023
【図２２】
2010044821.tif 000024
【図２３】
2010044821.tif 000025
【図２４】
2010044821.tif 000026
【図２５】
2010044821.tif 000027
【図２６】
2010044821.tif 000028
【図２７】
2010044821.tif 000029