この発明は、半導体装置とメモリマクロに関し、例えば、半導体装置に構成された非同期の2ポートメモリに利用して有効な技術に関するものである。
クロック速度(周波数)の異なるデバイス間で同期をとってデータ転送を可能にする同期装置あるいは非同期データ転送装置の例として、例えば特開2001−265715号公報,特開2006−301982号公報がある。また、非同期クロック間でのデータ転送にデュアルポートメモリを使用した例として、特開2006−065704号公報がある。デュアルポートメモリの例としては、特開2006−134379号公報,特開2008−004218号公報がある。
特開2001−265715号公報
特開2006−301982号公報
特開2006−065704号公報
特開2006−134379号公報
特開2008−004218号公報
システムLSI(Large Scale Integrated circuit: 大規模集積回路)等のようにクロック周波数の異なる複数のデバイスを有する半導体装置では、上記クロック周波数の異なるデバイス間での非同期データの転送が必須となる。例えば16ビットあるいは32ビット等のような複数ビット単位での非同期クロック間でのデータ転送を行う場合、上記特許文献1や2のような同期装置あるいは非同期データ転送装置を用いると、回路規模が大きくなるとともに使い勝手も悪い。そこで、特許文献3のようにデュアルポートメモリを使用したデータ転送が使い勝手もよく便利である。しかしながら、特許文献5のようなデュアルポートメモリは、1つのクロックの前半周期と後半周期とでポートを時分割的に使用するので上記のような非同期クロックでは使用できない。
特許文献3においては、2つのポートが非同期クロックで動作するよう、例えば図27に示したようなメモリセルを用いる。負荷トランジスタLD1・LD2および駆動トランジスタDR1・DR2に関してはシングルポートSRAMメモリセルと同様の構成である。シングルポートSRAMメモリセルと異なるのは、アクセスするための回路が2組設けられていることである。ワード線WLA、ビット線BLTA・BLBA、転送トランジスタACA1・ACA2から構成されるポートAと、ワード線WLB、ビット線BLTB・BLBB、転送トランジスタACB1・ACB2から構成されるポートBが存在し、それぞれのポートから独立(非同期)にアクセスすることが可能となる。
図27に示したメモリセルを用いたデュアルポートメモリでは、かかるメモリセルをアレイ状に並べたデュアルポートSRAMアレイと、2つのアクセスポートにアクセスするための2組のアクセス回路で構成される。このため、本構成のデュアルポートSRAMでは、メモリセルにアクセスするための周辺回路は、シングルポートSRAMの2倍の回路規模となる。デュアルポートSRAMメモリセルをシングルポートSRAMセルと比較すると、トランジスタ数は6つから8つに増えているだけであるが、同時アクセス時の動作マージン確保等の理由から、デュアルポートSRAMセルにはシングルポートSRAMセルよりもWサイズ(ゲート幅)の大きいトランジスタを使用する必要があり、面積は2倍以上となる。つまり、デュアルポートSRAMの面積はシングルポートSRAMの面積の2倍以上となる。
また、LSIのような半導体装置を製造するプロセスの進展により、LSI中のトランジスタの微細化が進展している。たとえば、2006年にはトランジスタのゲート長が50nmという微細なトランジスタの量産が行われている。トランジスタの微細化が進展するとトランジスタのしきい値電圧(Vth)のばらつきが増大する。トランジスタのVthばらつきが増大すると、LSIのオンチップメモリとして使用されるSRAMの動作マージンが低下し、SRAMメモリセルの動作が困難になるものである。つまり、半導体の微細加工技術が進展してトランジスタサイズが小さくなるに伴いトランジスタの製造ばらつきが大きくなり、SRAMメモリセルの動作マージンが低下している。そのため、同時アクセス時の動作マージン確保等の理由から、図27に示したデュアルポートSRAMメモリセルを設計するには大きなコストがかかる。
この発明の目的は、簡単な構成で使い勝手のよいデュアルポートメモリを有する半導体装置及びメモリマクロを提供することにある。この発明の前記ならびにそのほかの目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される1つの実施例は、以下の通りである。半導体装置又はメモリマクロは、1つの入力及び出力ポートを持つメモリ回路及び第1タイミング信号に対応して入力又は出力動作を行う第1ポートと、上記第1タイミング信号とは非同期の第2タイミング信号に対応して入力又は出力動作を行う第2ポートを有する調停回路を備える。上記メモリ回路は、メモリ動作終了信号を上記調停回路に出力する。上記調停回路は、上記メモリ回路が非動作状態のときは上記第1又は第2ポートの上記第1又は第2タイミング信号に対応して上記メモリ回路のメモリアクセスを可能とし、上記メモリ回路が動作状態のときには上記メモリ終了信号を待って上記第1又は第2タイミング信号に対応した上記メモリ回路のメモリアクセスを可能とする。
1つの入力及び出力ポートを持つメモリ回路と調整回路からなる簡単な構成により、使い勝手のよい複数ポートメモリを有する半導体装置及びメモリマクロが実現できる。
以下、本願発明を図面に示された実施例1ないし実施例6に沿って詳細に説明する。
図1に本発明に係るデュアルポートSRAMの概略図を示す。図1において、SP−SRAMはシングルポートSRAMメモリセルを用いたSRAMマクロを表しており、1ビットのデータを保持するメモリセルとしては、後述する図4に示すシングルポートSRAMメモリセルが使用される。ARBITはアクセスを調停する回路を表しており、入力されたAポートおよびBポートの信号を調停してシングルポートSRAMマクロにアクセスする。
調停回路ARBITは、ポートAのクロック信号CLKA、ポートAの動作を制御する制御信号CONTA(アドレス信号も含む)およびデータDAが入力され、ポートAから読み出したデータがQAとして出力される。さらに、調停回路ARBITには、ポートBのクロック信号CLKB、ポートBの動作を制御するクロック信号CLKBとポートBを制御する制御信号CONTB(アドレス信号も含む)およびデータDBが入力され、ポートBから読み出したデータがQBとして出力される。ポートAおよびポートBのクロック信号CLKAおよびCLKBは非同期で入力される信号であり、ポートAはCLKAに、ポートBはCLKBにそれぞれ同期して動作するが、ポートAおよびポートBは非同期動作をする。
調停回路ARBITは、SP−SRAMが動作していることを示すフラグFlag0を有する。本回路において、SP−SRAMは動作終了タイミングを示す信号SAENDを出力する。このSAEND信号は、後述するように一般的なシングルポートSRAM内で生成されるタイミング信号を用いて容易に生成することが出来る。
図2には、図1のSP−SRAM(SRAMマクロ)の一実施例の概略ブロック図が示されている。同図では、主として上記メモリ動作終了信号SAENDを生成する例が示されている。CLKIはSP−SRAMに入力されるクロック信号、PGはある幅のパルスを生成するパルスジェネレータ、CLK−LCはパルスジェネレータによって生成された内部クロック信号、TGENはタイミングを生成する回路、Decoderはアドレスをデコードする回路、WLDRはワード線を駆動するワード線ドライバ、SAはセンスアンプ、Latchはデータをラッチするラッチ回路、Memory arrayはシングルポートメモリセルをアレイ状に並べたメモリアレイ、SAENはセンスアンプを起動するセンスアンプイネーブル信号、Delayは一定の遅延を信号に与える遅延回路、SAENDは動作終了を示す信号である。
この実施例では、CLKIが入力されるとパルスジェネレータPGにより内部で動作するためのパルス信号CLK−LCを生成する。CLK−LCはワード線ドライバWLDRに入力されてワード線が活性化されるとともに、タイミング生成回路TGENに入力され、その信号からセンスアンプイネーブル信号SAENが生成される。SAENはセンスアンプSAに入力されてセンスアンプが起動される。センスアンプが起動されるとアクセスされたメモリセルのデータが出力されるためSP−SRAMの動作が終了した状態となる。つまり、SAENを遅延回路Delayにより遅延させた信号SAENDが出力されると、SRAMの動作が終了したといえる。
図3には、図2中のタイミング生成回路の一実施例の概略回路図が示されている。CLK−LCはSP−SRAMの内部クロック信号、MCはメモリセル、WLはワード線を示している。RCはレプリカメモリセルを示しており、通常動作するメモリセルMCと大部分が同じ構成となっている。CLK−LCが入力される前には、Pチャネル型MOSFET(以下、単にPMOSトランジスタという)MPCによりレプリカビット線RBLがプリチャージされている。CLK−LCが入力されるとレプリカワード線RWLが活性化され、それによりレプリカメモリセルRCが活性化され、プリチャージされたレプリカビット線RBLの電荷が引き抜かれる。これによって、CLK−LCが入力される前は、 "L”の状態であったSAENが "H”となる。つまりCLK−LCの入力によってセンスアンプ起動信号SAENが活性化される。
図4には、図3中のメモリセルの一実施例の回路図が示されている。シングルポートSRAMセルは、6トランジスタで構成されており、負荷トランジスタLD1およびLD2によって電源電圧Vddのようなハイレベル(以下、単に "H”と表す)の電位を保持、駆動トランジスタDR1およびDR2によって回路の接地電位Vssのようなロウレベル(以下、単に "L”と表す)の電位を保持し1ビットのデータを保持する。保持しているデータのアクセスはワード線WLを "H”にすることで実行され、転送トランジスタAC1およびAC2によってビット線BLTおよびBLBが内部のデータ記憶ノードと接続されて、データの書き込みおよび読み出しというアクセスが実行される。
図5には、図3中のレプリカメモリセルの一実施例の回路図が示されている。このレプリカメモリセルRCは、特に制限されないが、前記図4と同じ素子により構成される。ただし、図4のビット線BLTが前記レプリカビット線RBLとして用いられ、ワード線WLがレプリカワード線RWLとして使用される。ラッチ回路を構成するための一方のCMOSインバータ回路を構成する負荷トランジスタLD1と駆動トランジスタDR1のゲートは、電源電圧Vddが与えられる。これにより、レプリカワード線RWLが選択されると、転送トランジスタAC1がオン状態となり、上記プリチャージされたレプリカビット線RBLの電荷を引き抜く。ラッチ回路を構成するための他方のCMOSインバータ回路(LD2,DR2)と転送トランジスタAC2は、レプリカメモリセルRCとしては不要であるので省略できるが、メモリセルMCをそのまま流用するので残している。上記CMOSインバータ回路(LD2,DR2)の入力には、特に制限されないが、接地電位Vssが定常的に供給されている。
図6には、図1中の調停回路のさらに詳細な概略図が示されている。調停回路ARBITは、ポートAおよびポートBへの入力信号を保持するフリップフロップFFDAとFFDB、入力信号を選択するセレクタSelector、SP−SRAMから出力される出力データQをラッチするラッチ回路LAAとLAB、それぞれのラッチ回路の出力QLAおよびQLBを保持するFFQAおよびFFQB、SP−SRAMを起動するクロック信号CLKIおよびポートを選択するポート選択信号PORT−SELを生成する制御信号生成回路CONT−ARBから構成される。
制御信号生成回路CONT−ARBには、SP−SRAMが動作している状態を示すフラグFlag0が含まれる。ポートAおよびポートBに入力された信号は、それぞれのポートのクロック信号CLKAおよびCLKBによってFFDAおよびFFDBに取り込まれる。このデータは、PORT−SELによってSelectorによって選択されシングルポートSRAMマクロSP−SRAMに入力される。このときに、SP−SRAMを起動するクロック信号CLKIが入力されると、SP−SRAMが動作を実行する。
SP−SRAMにおいて読み出し動作が実行された場合には、Qからデータが出力される。そのデータは、ラッチLAAおよびLABにおいて対応したポートのデータがラッチされる。さらに、そのラッチの出力が対応したポートのクロック信号CLKAおよびCLKBの入力によってFFQAおよびFFQBに取り込まれ、各ポートの出力データQAおよびQBとして出力される。
図7には、図6の調停回路を備えたデュアルポートメモリの一例の動作波形図が示されている。図7において、AポートのクロックCLKAおよびBポートのクロックCLKBは非同期に入力されている。WLは、シングルポートSRAMであるSP−SRAMのワード線のタイミングを示しており、A,Bのように併記されているポートからアクセスされたアドレスのワード線が活性化されることを示している。
時間T1において、CLKAが入力されているため、それによってSP−SRAMを起動するクロック信号CLKIが立ち上がる。それとともに、ポートを選択する信号PORT−SELがAポートを選択し、Aポートの入力データおよび制御信号がSP−SRAMに入力される。その際にSP−SRAMが動作を始めたため、SP−SRAMが動作していることを表すフラグFlag0が "H”となる。またCLKIの入力に伴い対応するワード線WL(A)が活性化される。
上記ワード線WL(A)の選択動作に伴い、SP−SRAMからデータが読み出されSP−SRAMの出力信号Qに上記入力データ(アドレス)で読み出しを行ったデータA1が出力される。さらに、メモリ動作が終了するためメモリ動作終了信号SAENDが活性化される。SP−RAMの出力ポートQから出力されたデータA1は、PORT−SELがAポートを選択しているためAポートのデータを保持するラッチLAAにラッチされる。このデータA1は時間T3においてCLKAが再び立ち上がった際にAポートの出力FFであるFFQAに取り込まれ、出力データQAが出力されて動作が完了する。
上記時間T1において、ほぼ同時にCLKBが入力されるが、この時にSP−SRAMが動作していることを示すフラグFlag0が "H”となっているため、Bポートの動作はAポートの動作終了後に行われる。
時間T2において、Bポートのアクセスが処理される。上記時間T1においてBポートのクロック信号CLKBが入力され、さらに時間T1の終盤にポートAのアクセスが終了したことを示す信号SAENDが立ち上がる。信号SAENDの立ち上がりによって、SP−SRAMにクロック信号CLKIが入力されるとともにポート選択信号PORT−SELがBポートを選択する。
Bポートの入力データ(アドレス)および制御信号がSP−SRAMに入力され、関連するワード線WL(B)が活性化される。それに伴い、SP−SRAMからデータが読み出されSP−SRAMの出力信号Qに上記入力データ(アドレス)で読み出しを行ったデータB1が出力される。さらに、メモリ動作が終了するため動作終了信号SAENDが活性化される。上記出力ポートQから出力されたデータB1はPORT−SELがBポートを選択しているためBポートのデータを保持するラッチLABにラッチされる。このデータB1は時間T3においてCLKBが再び立ち上がった際にBポートの出力FFであるFFQBに取り込まれ、出力データQBが出力されて動作が完了する。
時間T5における動作を説明する。時間T4においては、時間T1と同様にAポートにアクセスが行われる。そのアクセス終了時にはSP−SRAMの動作終了を示す信号SAENDが立ち上がって時間T5が始まる。その際には、CLKAおよびCLKBは入力されていない状態のため、次の動作は始まらない。その後CLKBが入力された時点でFlag0は "L”の状態にあり、そのためCLKBの入力によってSP−SRAMの動作が始まる。CLKBの入力により、SP−SRAMに入力されるクロックCLKIが立ち上がるとともにポート選択信号PORT−SELがBポートを選択する。これにより、Bポートのデータおよび制御信号がSP−SRAMに入力され、関連するワード線が活性化される。それに伴い、SP−SRAMからデータが読み出されSP−SRAMの出力信号Qに読み出しを行ったデータB5が出力される。
さらに、動作が終了するため動作終了信号SAENDが活性化される。Qから出力されたデータはPORT−SELがBポートを選択しているためBポートのデータを保持するラッチLABにラッチされる。このデータはCLKBが再び立ち上がった際にBポートの出力FFであるFFQBに取り込まれ、出力データQBが出力されて動作が完了する。
このように、シングルポートSRAM(マクロSP−SRAM)の動作終了信号SAENDおよびSP−SRAMが動作していることを示すフラグFlag0を使用することで、シングルポートメモリセルを用いて、複数のポート(A,B)から非同期にアクセスを行う時分割マルチポートメモリの実現が可能となる。
図8には、図6中の制御信号生成回路の一実施例の回路図が示されている。図8中で、PGは一定の長さのパルス信号を生成するパルスジェネレータ回路、SRFFはセットリセットフリップフロップを示す。Aポートのクロック信号CLKAがパルスジェネレータによって一定の長さのパルスに整形される。これは、シングルポートSRAMの動作速度つまりシングルポートSRAM回路におけるディレイよりも長いクロックの入力による回路動作の不具合を防ぐためである。
CLKAから作られたパルス信号PLSAとFlag0の出力とのANDをとり "H”の場合にはFlagSがセットされる。パルス信号PLSAとFlag0の逆出力とのANDをとりこの値が "H”の場合には、CLKIが立ち上がる。さらにポートセレクト信号PORT−SELを保持しているセットリセットフリップフロップをセットしてAポートを選択する。Bポートのクロック信号CLKBが入力された場合にもAポートのクロック入力と同様の処理が行われる。ただし、AポートおよびBポートのクロックが同時に入力された場合には、Aポートのクロック信号から生成された信号をANDに入力することによりBポートは立ち上げずに、FlagSをセットするという動作が行われる。
SP−SRAMの動作終了を示す信号SAENDが入力された場合には、CLKAおよびCLKB同様にパルスジェネレータにより入力信号の波形が整形される。その整形された信号とFlagWのANDをとることで、FlagWが "H”だった場合にはCLKIが立ち上がる。さらに、ポート選択信号を保持しているフリップフロップの値を判定し、逆の値をそのフリップフロップにセットすることで、直前に動作を行ったポートと異なるポートを起動することが可能となる。
図9および図10には、図8中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図が示されている。図9において、ステップ(1)において、Aポートのクロック信号CLKAが入力された場合、ステップ(2)でSP−SRAMの動作を示すフラグFlag0を評価する。Flag0が "L”の場合にはステップ(3)でSP−SRAMは動作していないため、ステップ(3)でAポートを起動し、ステップ(4)でSP−SRAMが動作を始めるためFlag0をセットする。その後、ステップ(5)のように待機状態となる。
ステップ(5)の待機状態において、CLKAまたはCLKBが入力されると上記図9のフローチャートを、SAENDが入力されると次に説明する図10のフローチャートを実行する。Flag0の評価においてFlag0が "H”の場合には、SP−SRAMが動作状態のためポートAの動作は待ち状態となる。つまり、ステップ(6)でポートが待ち状態であることを示すフラグFlagSをセットし、ステップ(7)で待機状態に入る。図9においては、Aポートのクロック信号CLKAが入力された場合の動作を説明したが、Bポートのクロック信号CLKBが入力された場合にはBポートで同様の動作が行われる。
図10は、SP−SRAMの動作終了を表す信号SAENDが入力された場合のフローチャート図を示す。ステップ(1)において、SAENDの入力とともにSP−SRAMの動作が終了しているためステップ(2)でFlag0をリセットする。次に、ステップ(3)で待機状態にあるポートがあるかどうかを示すフラグFlagSを評価する。FlagSが "L”の場合には待機状態にあるポートがないため、ステップ(4)により待機状態となる。ステップ(4)の待機状態においては、図9の待機状態と同様CLKAまたはCLKBが入力されると図9のフローチャートを、SAENDが入力されると図10のフローチャートを実行する。
FlagSの評価結果が "H”の場合には待機状態にあるポートがあるため、待機状態のポートの動作を開始する。次にどのポートの動作を行うかを判定するために直前に処理を行ったポートをステップ(5)で判定する。直前にBポートの動作を行っていた場合には、ステップ(6)でAポートを選択してSP−SRAMを起動し、ステップ(7)でFlag0をセットするとともにFlagSをリセットして、ステップ(8)で待機状態となる。直前にAポートの動作を行っていた場合には、Bポートを選択してSP−SRAMをステップ(9)で起動し、ステップ(10)でFlag0をセットするとともにFlagSをリセットしてステップ(11)で待機状態となる。これらの動作によって、図10のフローを実現することが可能となる。
以上のように、本発明に係る複数のポートから調停回路を介してシングルポートSRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、デュアルポートSRAMセルのようにWサイズ(ゲート幅)の大きいトランジスタを使用する必要がなく、面積が小さくなり、簡単な構成でメモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
図11には、この発明に係るマルチポートメモリに用いられる調停回路の他の一実施例の概略図が示されている。同図は、前記図6の変形例であり、同図の調停回路の大部分は前記図6の調停回路と大部分が同じであるため異なる部分についてのみ説明する。図11の回路が図6の回路と異なるのは、調停制御回路CONT−ARB2 内に、シングルポートSRAMの動作中であることを示すフラグFlag0と、Aポートが動作待ち状態にあることを示すFlagA、Bポートが動作待ち状態にあることを示すFlagBを有している点である。これによって、シングルポートSRAMの動作終了時に立ち上げるポートを選択することが容易になる。
図12には、図11の調停回路を備えたデュアルポートメモリの一例の動作波形図が示されている。時間T1において、CLKAが入力されているため、それによってSP−SRAMを起動するクロック信号CLKIが立ち上がる。それとともに、ポートを選択する信号PORT−SELがAポートを選択し、Aポートの入力データ(アドレス)および制御信号がSP−SRAMに入力される。その際にSP−SRAMが動作を始めたため、SP−SRAMが動作していることを表すフラグFlag0が "H”となる。また、CLKAの入力によりAポートが動作待ちであることを示すフラグFlagAがセットされるが、ポートAが起動されるためすぐにリセットされる。
上記CLKIの入力に伴い対応するワード線WL(A)が活性化される。それに伴い、SP−SRAMからデータが読み出され、SP−SRAMの出力ポート(出力信号)Qに読み出しを行ったデータA1が出力される。さらに、動作が終了するため動作終了信号SAENDが活性化される。Qから出力されたデータA1はPORT−SELがAポートを選択しているためAポートのデータを保持するラッチLAAにラッチされる。このデータA1は時間T3においてCLKAが再び立ち上がった際にAポートの出力FFであるFFQAに取り込まれ、出力データQAとして出力されて動作が完了する。
上記時間T1において、ほぼ同時にCLKBが入力される。このタイミングでは、Aポートが起動されるためBポートは待ち状態となり、それによってBポートが待ち状態であることを示すFlagBがセットされる。
時間T2において、Bポートのアクセスが処理される。時間T1の終盤にポートAのアクセスが終了したことを示す信号SAENDが立ち上がる。この際に、Bポートが待ち状態であることを示すフラグFlagBが "H”となっているため、Bポートの動作をするためにSP−SRAMが起動され、SP−SRAMにクロック信号CLKIが入力されるとともにポート選択信号PORT−SELがBポートを選択する。ここで、Bポートを選択してSP−SRAMが起動されるため、Bポートが待ち状態であることを示すFlagBはリセットされる。
Bポートの入力データ(アドレス)および制御信号がSP−SRAMに入力され、関連するワード線WL(B)が活性化される。それに伴い、SP−SRAMの出力ポートQに読み出しを行ったデータB1が出力される。さらに、動作が終了するため動作終了信号SAENDが活性化される。出力ポートQから出力されたデータB1はPORT−SELがBポートを選択しているためBポートのデータを保持するラッチLABにラッチされる。このデータは時間T3においてCLKBが再び立ち上がった際にBポートの出力FFであるFFQBに取り込まれ、出力データQBとして出力されて動作が完了する。
次に、時間T5における動作を説明する。時間T4においては、時間T1と同様にAポートにアクセスが行われる。そのアクセス終了時にはSP−SRAMの動作終了を示す信号SAENDが立ち上がって時間T5が始まる。その際に、FlagAおよびFlagBともにセットされていない状態のため次の動作は始まらない。その後CLKBが入力された時点でFlag0は "L”の状態にあり、そのためCLKBの入力によってSP−SRAMの動作が始まる。
この際、CLKBの入力によってFlagBがセットされるが、Bポートに関してSP−SRAMが起動されることによってすぐにリセットされる。CLKBの入力により、SP−SRAMに入力されるクロックCLKIが立ち上がるとともにポート選択信号PORT−SELがBポートを選択する。これにより、Bポートのデータおよび制御信号がSP−SRAMに入力され、関連するワード線が活性化される。それに伴い、SP−SRAMからデータが読み出されSP−SRAMの出力信号Qに読み出しを行ったデータB5が出力される。さらに、動作が終了するため動作終了信号SAENDが活性化される。出力ポートQから出力されたデータはPORT−SELがBポートを選択しているためBポートのデータを保持するラッチLABにラッチされる。このデータB5はCLKBが再び立ち上がった際にBポートの出力FFであるFFQBに取り込まれ、動作が完了する。
このように、シングルポートSRAMマクロ(SP−SRAM)の動作終了信号、SP−SRAMが動作していることを示すフラグFlag0およびAポートとBポートが動作待ち状態であることを示すフラグFlagAとFlagBを使用することで、シングルポートメモリセルを用いて、複数のポートから非同期にアクセスを行う時分割マルチポートメモリの実現が可能となる。
図13には、図11中の制御信号生成回路の一実施例の回路図が示されている。PGは一定の長さのパルス信号を生成するパルスジェネレータ回路、SRFFはセットリセットフリップフロップ、NANDFF1およびNANDFF2はFFの入力データとCLKとのNAND演算の結果を出力するフリップフロップ回路を示す。本回路では、Aポートのクロック信号CLKA、Bポートのクロック信号CLKB、SP−SRAMの動作終了信号SAENDはパルスジェネレータPGによって一定の長さのパルスに整形され、それぞれPLSA、PLSBおよびPLSSとなる。これは、SP−SRAMの動作速度つまりSP−SRAM回路におけるディレイよりも長いクロックの入力による回路動作の不具合を防ぐためである。
Aポートのクロック信号CLKAが入力された場合には、FlagAを構成するセットリセットフリップフロップ(SRFF) がセットされる。またBポートのクロック信号CLKBが入力された場合には、FlagBを構成するSRFFがセットされる。またSP−SRAMの動作終了信号SAENDが入力された場合には、Flag0を構成するSRFFがリセットされる。さらに、PLSA、PLSBおよびPLSSの論理和がとられてPLSCとなる。このPLSCはSP−SRAMを起動するためのCLKIを生成するためのパルス信号となり、PLSCが立ち上がった場合にはCLKIが入力される。
この際、PLSAおよびPLSBはFlag0が "H”の場合は "L”に、PLSSはFlagAとFlagBがともに "L”の場合には "L”なった論理和がとられるため、各フラグの状態がSP−SRAMを立ち上げに行かない状態の場合にはPLSCは立ち上がらない。PLSCが立ち上がると、AポートとBポートのどちらを起動するかの判定が行われる。FlagAがセットされている場合には、FAが "H”となっているため、NANDFF1からPLSCと同期した信号が出力され、その信号によってCLKIが立ち上がるとともにポート選択信号と保持しているSRFFが "H”となりAポートが選択される。
PLSCが立ち上がった場合にFlagBがセットされている場合にはFBが "H”となっているためNANDFF2からPLSCと同期した信号が出力される。この場合に、NANDFF2に入力されるクロック信号はディレイ回路DelayによってPLSCからある一定の時間遅らせた信号となっている。ここで、FlagAも "H”となっている場合には、NANDFF2の次々段のNANDによってBポートの起動は取り消されAポートが優先的に起動される。FlagAが "L”の場合には、NANDFF2の出力信号によってCLKIが立ち上がるとともにポート選択信号と保持しているSRFFが "L”となりBポートが選択される。
この回路において、CLKA、CLKBおよびSAENDの論理和をとり、さらにそれらの論理和から出力されたPLSC信号を遅延させた信号によってBポートを起動することによって、CLKA、CLKBおよびSAENDのタイミングによる不定状態を抑止することが可能となる。それぞれの信号は、非同期で本回路に入力されるため、タイミングによっては2ポートが同時に起動されてしまったり、逆にどちらのポートも起動されないという状態が起こり得る。
本回路では、それぞれの入力クロックの論理和をとることで、微妙に近いタイミングでそれぞれの信号が入力された場合に、いずれのポートが起動しても良い状態を作り出す。これによって、いずれのポートも起動されない状態を抑止する。さらに、遅延回路を用いてAポートを優先的に評価することで、複数のポートが同時に起動されてしまう状態を防ぐ。以上のように、動作終了信号SAEND、動作状態を表すフラグFlag0、FlagAおよびFlagBを用いることで複数のポートから非同期アクセス可能なマルチポートメモリを実現することが出来る。さらに、入力された信号の論理和をとることと、生成されたパルス信号にディレイ回路を加えることで、非同期に入力されるクロック信号による不定状態を抑制することが出来る。
図14には、図13中のフリップフロップ回路NANDFF1およびNANDFF2の一実施例の回路図が示されている。入力信号INを保持する回路(インバータ回路と正帰還ループを構成するクロックドインバータ回路)と、CLKと保持しているデータとのNANDを演算する回路によって、入力信号INがクロック信号によって保持されるとともに、保持しているデータとクロックのNANDをとった値を出力することが可能となる。この回路は、図13において、SP−SRAMが起動された後にFlagAまたはFlagBの値が変化しポート選択信号の入力を変化させてしまうことを防ぐ。また、図13の回路中で、Flag0、FlagAおよびFlagBの各入力の前段にNAND回路が挿入されている。これは、一般的なSRFFでは、セットおよびリセットの入力がともに "H”となった場合に誤動作するため、両入力がともに "H”となることを防止するために挿入されている。
図15および図16には、図13中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図が示されている。図15において、ステップ(1)においてAポートのクロック信号CLKAが入力された場合、ステップ(2)でAポートが待ち状態であることを示すFlagAをセットする。さらにSP−SRAMの動作を示すフラグFlag0をステップ(3)で評価する。Flag0が "L”の場合にはSP−SRAMは動作していないため、ステップ(4)でAポートを起動し、それとともにSP−SRAMが動作を始めるためステップ(5)でFlag0をセットし、Aポートが動作を実行するためFlagAをリセットする。その後、ステップ(6)で待機状態となる。このステップ(6)の待機状態において、CLKAまたはCLKBが入力されると図15のフローチャートを、SAENDが入力されると次に説明する図16に示したフローチャートを実行する。
ステップ(3)のFlag0の評価においてFlag0が "H”の場合には、SP−SRAMが動作状態のため、ステップ(7)の待機状態に入る。前記図15においては、Aポートのクロック信号CLKAが入力された場合の動作を説明したが、Bポートのクロック信号CLKBが入力された場合にはBポートで同様の動作が行われる。
図16は、SP−SRAMの動作終了を表す信号SAENDが入力された場合のフローチャート図を示す。ステップ(1)でSAENDの入力とともにSP−SRAMの動作が終了しているためステップ(2)でFlag0をリセットする。次にAポートが待機状態であるかどうかを示すフラグFlagAをステップ(3)で評価する。FlagAの評価結果が "H”の場合にはAポートが待ち状態にあるため、ステップ(9)でAポートを起動し、それとともにSP−SRAMが動作を始めるためステップ(10)でFlag0をセットし、Aポートが動作を実行するためFlagAをリセットする。ステップ(11)で待機状態となる。FlagAの評価結果が "L”の場合にはBポートが待機状態であるかどうかを示すフラグFlagBをステップ(4)で評価する。FlagBの評価結果が "H”の場合にはBポートが待ち状態にあるため、ステップ(6)でBポートを起動し、それとともにSP−SRAMが動作を始めるためステップ(7)でFlag0をセットし、Bポートが動作を実行するためFlagBをリセットする。ステップ(8)で待機状態となる。FlagBの評価結果が "L”の場合には、動作を待っている状態のポートがないためステップ(5)で待機状態となる。これらの動作によって、図12の動作フローを実現することが可能となる。
以上のように、本発明を用いて複数のポートからSP−SRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、前記同様に面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
図17には、この発明に係る2ポートSRAMの他の一実施例の概略図が示されている。一般的にいうとデュアルポートメモリは、2つの独立した(非同期)ポートを有し、それぞれのポートが書き込み及び読み出し動作を共に実行できるメモリのことを指す。それに対して、2ポートメモリは、2つの独立した(非同期)ポートを有し、1つのポートは書き込み動作専用とされ、もう1つのポートは読み出し動作専用とされるメモリに向けられている。前記実施例1および2は、上記のようにそれぞれのポートが書き込み及び読み出し動作を共に実行できるデュアルポートメモリに適用した場合の例である。本実施例では上記2ポートメモリに適用した場合の例である。
図17において、SP−SRAMはシングルポートSRAMメモリセルを用いたSRAMマクロを表しており、1ビットのデータを保持するメモリセルとしては、前記同様に図4に示すSP−SRAMメモリセルが使用される。ポートRは読み出しを行うポートであり、起動するクロック信号CLKRおよびアドレス信号を含む制御信号CONTRが入力され、読み出されたデータはQRとして出力される。ポートWは書き込みを行うポートであり、起動するクロック信号CLKW、アドレス信号を含む制御信号CONTWおよび入力データDWが入力される。ARBITはアクセスを調停する調停回路を表しており、入力されたWポートおよびRポートの信号を調停してSP−SRAMにアクセスする。
調停回路ARBITには、ポートRのクロック信号CLKR、ポートRの動作を制御する制御信号CONTR( アドレス信号も含む)が入力され、SP−SRAMから読み出されたデータがQRとして出力される。さらに、ポートWのクロック信号CLKW、ポートWの動作を制御するクロック信号CLKWとポートWを制御する制御信号CONTW( アドレス信号も含む)およびデータDWが入力される。調停回路ARBITからSP−SRAMには、SP−SRAMを制御するクロック信号CLKIとSP−SRAMの制御信号CONT(アドレス信号を含む)、入力データDが入力され、読み出しデータQがSP−SRAMから調停回路ARBITに入力される。
SP−SRAMから調停回路ARBITにはSP−SRAMの動作が終了したタイミングを示す信号SAENDが入力される。また、調停回路ARBITはSP−SRAMが動作していることを示すフラグFlag0とポートWが待ち状態であることを示すフラグFlagWとポートRが待ち状態であることを示すフラグFlagRを有している。調停制御回路CONT−ARBの動作は、実施例2のCONT−ARB2 の動作とほぼ同じであり、CONT−ARBのFlagAをFlagWに、FlagBをFlagRに置き換えると動作は同じである。
図18には、図17の2ポートメモリの一例の動作波形図が示されている。基本的には前記図12と同様であり、前記図12のポートAが同図のポートWに対応し、ポートBがポートRにそれぞれ対応している。読み出しポートRの入力信号CLKRに対して出力ポートQからデータR1がSP−SRAMから出力され、出力データQRとしてポートRに出力される。またポートRおよびポートWに対応したワード線WL(W)(R)が立ち上がっていることがわかる。以上のように、本発明を用いて複数のポートからシングルポートSRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリ、特に上記のような2ポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
図19には、この発明に係るSP−SRAM(SRAMマクロ)の他の一実施例の概略ブロックが示されている。同図では、主として上記メモリ動作終了信号SAENDを生成する他の例が示されている。前記図2の実施例では、シングルポートメモリの動作終了信号SAENDをセンスアンプの起動タイミングを用いて生成する回路について説明した。この実施例では、SAENDをワード線の立ち下げ信号から生成する。CLKIはSP−SRAMに入力されるクロック信号、PGはある幅のパルスを生成するパルスジェネレータ、CLK−LCはパルスジェネレータによって生成された内部クロック信号、TGENはタイミングを生成する回路、Decoderはアドレスをデコードする回路、WLDRはワード線を駆動するワード線ドライバ、SAはセンスアンプ、Latchはデータをラッチするラッチ回路、Memory arrayはシングルポートメモリセルをアレイ状に並べたメモリアレイ、WLIAはワード線を非活性化するタイミングを示すタイミング信号、Delayは一定の遅延を信号に与える遅延回路、SAENDは動作終了を示す信号である。
この実施例回路では、CLKIが入力されるとパルスジェネレータPGにより内部で動作するためのパルス信号CLK−LCを生成する。CLK−LCはワード線ドライバWLDRに入力されてワード線が活性化されるとともに、タイミング生成回路TGENに入力され、その信号からワード線を非活性化するための信号WLIAが生成され、WLIAがワード線ドライバWLDRに入力されてワード線が非活性化される。ワード線が非活性化されるとシングルポートメモリの動作が終了するためSP−SRAMの動作が終了した状態となる。つまり、WLIAを遅延させた信号SAENDが出力されると、SRAMの動作が終了したといえる。
図20には、図19中のタイミング生成回路の一実施例の概略回路図が示されている。図20において、CLK−LCはSP−SRAMの内部クロック信号、MCはメモリセル、WLはワード線を示している。RCは、前記図4に示したようなレプリカメモリセルを示しており、通常動作するメモリセルMCと大部分が同じ構成となっている。CLK−LCが入力される前には、PMOSトランジスタMPCによりレプリカビット線RBLがプリチャージされている。CLK−LCが入力されるとレプリカワード線RWLが活性化され、それによりレプリカメモリセルRCが活性化され、プリチャージされたレプリカビット線RBLの電荷が引き抜かれる。これによって、CLK−LCが入力される前は、 "L”の状態であったWLIAが "H”となる。つまりCLK−LCの入力によってセンスアンプ起動信号SAENが活性化される。
以上のように、本発明を用いて複数のポートからシングルポートSRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来る。
図21には、デュアルポートDRAMの一実施例の概略図を示す。図21において、SP−DRAMは、シングルポートDRAMメモリセルを用いたDRAMマクロを表す。DRAMメモリセルは、アドレス選択MOSFETQと記憶キャパシタCから構成される。アドレス選択MOSFETQのゲートは、ワード線WLに接続され、記憶キャパシタCの記憶ノードとビット線BLとの間にアドレス選択MOSFETQのドレイン−ソース経路が接続される。
ARBITはアクセスを調停する回路を表しており、入力されたAポートおよびBポートの信号を調停してシングルポートDRAMマクロにアクセスする。ARBITには、ポートAのクロック信号CLKA、ポートAの動作を制御する制御信号CONTA(アドレス信号も含む)およびデータDAが入力され、ポートAから読み出したデータがQAとして出力される。さらに、ポートBのクロック信号CLKB、ポートBの動作を制御するクロック信号CLKBとポートBを制御する制御信号CONTB(アドレス信号も含む)およびデータDBが入力され、ポートBから読み出したデータがQBとして出力される。
さらに、調停回路ARBITからシングルポートDRAMマクロSP−DRAMには、SP−DRAMを制御するクロック信号CLKIとSP−DRAMの制御信号CONT(アドレス信号を含む)、入力データDが入力され、読み出しデータQがSP−DRAMから調停回路に入力される。さらに、SP−DRAMから調停回路ARBITにはSP−DRAMの動作が終了したタイミングを示す信号SAENDが入力される。また、調停回路ARBITはSP−DRAMが動作していることを示すフラグFlag0を有する。この回路のDRAMマクロ以外の詳細動作は、実施例1と同様となる。
SRAMメモリセルでは、メモリセルに複数のアクセストランジスタを付加してマルチポートメモリ化することは、面積増大やメモリセルの設計コストが増大することがデメリットではあるが可能である。しかし、DRAMメモリセルは、その構造から複数のアクセストランジスタを付加してマルチポートメモリ化することは難しい。本発明を用いれば、従来は困難であったDRAMセルを用いたマルチポートメモリを実現することが可能である。
前記SP−SRAMを用いた調停回路ARBITをそのまま流用するため、言い換えるならば、調停回路ARBITの開発コストを低減させるために、上記SP−DRAMには、SRAM適合インターフェイスSRAM−IFが設けられる。また、SP−DRAMには、自動リフレッシュ制御回路が搭載されて、外部からのリフレッシュ制御が不要にされて実質的にスタティック型RAMと同様に扱うことができるようにされる。
以上のように、本発明を適用して複数のポートからシングルポートDRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、言い換えるならばSRAMセルを用いた場合に比べ、小さな面積で格段に大きな記憶容量を持つマルチポートメモリを実現することが出来る。
図22には、この発明に用いられる制御信号生成回路の更に他の一実施例の回路図が示されている。本発明を用いた時分割マルチポートメモリの別の構成について説明する。この実施例は、前記図13に示した制御信号生成回路CONT−ARBの変形例である。この実施例回路は、前記実施例2中の図13の部分が図22となったものであるため、異なる部分についてのみ説明する。
図22において、図13と異なるのは、前記図13中のフリップフロップ回路NANDFF1およびNANDFF2がNANDで置き換えられ、さらにFlagAおよびFlagBをリセットする信号の生成部分に遅延回路Dely2が加えられていることである。前記図13において、NANDFF1およびNANDFF2はシングルポートSRAMが起動された後にFlagAまたはFlagBの値が変化しポート選択信号の入力を変化させてしまうことを防いでいた。
この実施例においては、フリップフロップ回路NANDFF1およびNANDFF2がないことからこの部分でデータが保持されなくなり、FlagAおよびFlagBにデータがフィードバックされるが、遅延信号Dely2が加えられているため、そのタイミングでの動作中にFlagAおよびFlagBがリセットされることはなくなるため、誤動作は起こらない。前記図13の回路では、クロックと同期してデータがラッチされるフリップフロップ回路NANDFF1およびNANDFF2が用いられているため、クロックと入力されるデータのタイミング関係によっては出力データの確定に時間のかかるメタステーブル状態が発生する可能性がある。しかし、この実施例回路では、クロックと同期してデータを保持するフリップフロップ回路が使用されていないため、このメタステーブル状態が回避できる。
図23には、図22の動作を説明する動作波形が示されている。この動作波形は、前記図12の動作波形図とほぼ同等であり、FlagAおよびFlagBのデータが "H" から "L" にリセットされるタイミングのみが異なる。前記図12波形図ではCLKIが活性化されると直ちにFlagAまたはFlagBがリセットされていたが、同図では、図22の実施例回路において遅延回路Dely2が挿入されているため、CLKIが活性化された後に、ある時間がたってからFlagAまたはFlagBがリセットされる。
以上のように、本発明を用いて複数のポートからシングルポートSRAMマクロにアクセスすることで、複数のポートがそれぞれ非同期に動作する時分割マルチポートメモリが実現できる。これによって、面積が小さく、メモリセルの開発コストの小さいマルチポートメモリを実現することが出来、さらに調整回路内においてメタステーブル状態の発生を抑制することが可能となる。
図24には、この発明に係るメモリマクロが搭載された半導体装置の一実施例の概略ブロック図が示されている。この実施例のメモリマクロは、クロック速度(周波数)の異なるデバイス間でデータ転送に用いられる。2つのプロセッサコアCORE1とCORE2、およびそれらのプロセッサコアから共通にアクセスされる共有メモリSHARED MEMORYが同一LSI上に搭載される。共有メモリSHARED MEMORYは、前記実施例1〜5に示したようなメモリが用いられる。
プロセッサコアCORE1は500MHzで、プロセッサコアCORE2は100MHzで動作している場合に、上記共有メモリSHARED MEMORYに非同期でそれぞれのタイミングでアクセスしてデータのやり取りを行うことができる。つまり、プロセッサコアCORE1から共有メモリSHARED MEMORYにデータを書き込み、プロセッサコアCORE2で読み出すことによりCORE1からCORE2へのデータ転送が実現できる。
クロック速度の異なるデバイス間でデータ転送において、前記図27に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献1,2のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはFIFOのようなタイミングを調整する回路を搭載してデータ転送をする場合に比べて、この発明に係る共用メモリSHARED MEMORYが非同期で動作する複数のポートを持つメモリ動作をすることを利用するものでは、タイミング調整を実施する回路は不必要であり、単純にプロセッサCORE1,2とメモリSHARED MEMORYとの間を接続することが可能となり、使い勝手のよいものとなる。
図25には、この発明に係るメモリマクロが搭載された半導体装置の他の一実施例の概略ブロック図が示されている。この実施例では、プロセッサコアCORE3とバス回路BUS1およびその間を接続するメモリ回路DP−SRAM2が同一LSI上に搭載された場合を示す。プロセッサコアCORE3は500MHzで、バスBUS1は250MHzで動作している場合にプロセッサコアとバス間でデータをやり取りする場合には、従来技術では前記図27に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献1,2のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはFIFOのようなタイミングを調整する回路を搭載して、バスとプロセッサの接続タイミングを調整する必要がある。この実施例では、DP−SRAM2が非同期で動作する複数のポートを持つメモリ動作をするので、タイミング調整を実施する回路は不必要であり、単純にプロセッサコアCOREとバス間BUS1をDP−SRAM2を介して接続することが可能である。
図26には、この発明に係るメモリマクロが搭載された半導体装置の更に他の一実施例の概略ブロック図が示されている。この実施例では、バス回路BUS1とビデオ信号入力VIDEO I/Fとその間を接続するメモリ回路2P−SRAM2が同一LSI上に搭載される。バスBUS1は250MHzで、ビデオVIDEO I/Fは133MHzで動作している場合に、VIDEO I/Fから入力された信号をバスに伝えるには、従来技術では前記図27に示したようなメモリセルを用いたデュアルポートメモリを用いるもの、あるいは前記特許文献1,2のような非同期同期装置あるいは非同期データ転送装置を用いるもの、更にはFIFOのようなタイミングを調整する回路を搭載して、ビデオ入力信号の入力タイミングとバスへのアクセスタイミングを調整する必要がある。
しかし、2P−SRAM2が非同期で動作する書き込みポートと読み出しポートをもつ2ポートメモリ動作をする場合には、タイミング調整を実施する回路は不必要であり、単純にビデオ入力インターフェイスとバスを接続することが可能である。この場合、ビデオ信号入力は入力に使われるのみのため、2P−SRAM2は、前記図17の実施例のような読み出しおよび書き込みポートをそれぞれ持った2ポートSRAMで構成可能である。また、転送データが表示装置の1画面分の大量なデータである場合には、前記図21に示したようなSP−DRAMを用いることが便利である。
この発明は、ポート数が2の場合について説明した。これはポート数が3以上になった場合にも同様の考え方で調停回路を設計すれば、同様の動作が可能であるためである。ただし、図8の実施例回路を用いた場合、次の動作ポートを選ぶ際に、ポート数が2の場合には前回動作が行われなかったポートを選ぶという制御をすればいいが、ポート数が3以上になった場合には、前回動作が行われなかったポートが複数存在するため、ポートを選ぶ際に複雑な論理回路が必要となる。しかし、図13の実施例回路を用いた場合には、単純にそのポートが待ち状態にあるかをフラグで判断し、待ち状態にあるポートを選択することが可能であるため、フラグの数を増やすのみで対応可能である。つまり、ポート数が3以上になった場合に、動作ポートを選択する信号を容易に生成できるのは、図13の実施例回路である。
以上本発明者によってなされた発明を、前記実施形態に基づき具体的に説明したが、本発明は、前記実施形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能である。例えば、調停回路の具体的構成は、前記SP−RAM(SRAM又はDRAM)からのメモリ動作終了信号を用いて、非同期クロックに対応していずれかのポートのアクセスを許可するものであればよい。この実施例の非同期デュアルポートメモリ又は2ポートメモリは、前記のような非同期デバイス間でのデータ転送の他に、複数の非同期デバイスで共用できる共用メモリとして広く利用できる。また、この実施例のメモリマクロは、システムLSI等に搭載されるデュアルポートメモリ又は2ポートメモリのハードウェアIP(Intellectual Propety)コアに利用することができる。
この発明は、非同期デュアルポートメモリ又は2ポートメモリを有する半導体装置及びそのメモリマクロとして広く利用することができる。
本発明に係るデュアルポートSRAMの概略図である。
図1のSP−SRAM(SRAMマクロ)の一実施例の概略ブロックである。
図2中のタイミング生成回路の一実施例の概略回路図である。
図3中のメモリセルの一実施例の回路図である。
図3中のレプリカメモリセルの一実施例の回路図である。
図1中の調停回路のさらに詳細な概略図である。
図6の調停回路を備えたデュアルポートメモリの一例の動作波形図である。
図6中の制御信号生成回路の一実施例の回路図である。
図8中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
図8中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
この発明に係るマルチポートメモリに用いられる調停回路の他の一実施例の概略図である。
図11の調停回路を備えたデュアルポートメモリの一例の動作波形図である。
図11中の制御信号生成回路の一実施例の回路図である。
図13中のフリップフロップ回路NANDFF1およびNANDFF2の一実施例の回路図である。
図13中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
図13中の制御信号生成回路を含む調停回路の動作を説明するためのフローチャート図である。
この発明に係る2ポートSRAMの他の一実施例の概略図である。
図17の2ポートメモリの一例の動作波形図である。
この発明に係るSP−SRAM(SRAMマクロ)の他の一実施例の概略ブロック図である。
図19中のタイミング生成回路の一実施例の概略回路図である。
この発明に係るデュアルポートDRAMの一実施例の概略図である。
この発明に用いられる制御信号生成回路の更に他の一実施例の回路図である。
図22の動作を説明する動作波形である。
この発明に係るメモリマクロが搭載された半導体装置の一実施例の概略ブロック図である。
この発明に係るメモリマクロが搭載された半導体装置の他の一実施例の概略ブロック図である。
この発明に係るメモリマクロが搭載された半導体装置の更に他の一実施例の概略ブロック図である。
従来のデュアルポートメモリセルの一例の回路図である。
符号の説明
SP−SRAM…シングルポートSRAMマクロ、CLK・CLKI・CLKA・CLKB・CLKR・CLKW・CLK−LC…クロック信号、CONTA・CONTB・CONTR・CONTW…アドレス信号を含むポートの制御信号、DA・DB・DW…書き込まれるデータ、QA・QB・QR…読み出されるデータ、WL・WLA・WLB…ワード線、BLT・BLB・BLTA・BLBA・BLTB・BLBB…ビット線、Vdd・Vss…電源、LD1・LD2…負荷トランジスタ、DR1・DR2…駆動トランジスタ、AC1・AC2・ACA1・ACA2・ACB1・ACB2…転送トランジスタ、DP−SRAM…デュアルポートSRAMマクロ、ARBIT…アクセス調停回路、SAEND…メモリマクロ動作終了信号、Flag0・FlagA・FlagB・FlagW・FlagR…動作状態を表すフラグ、Decoder…デコーダ、WLDR…ワード線ドライバ、PG…パルスジェネレータ、SAEN…センスアンプ起動信号、Memory array…メモリセルアレイ、SA…センスアンプ、Latch…ラッチ、TGEN…タイミング生成回路、MC…メモリセル、RC…レプリカメモリセル、RWL…レプリカワード線、WBL…レプリカビット線、MPC…プリチャージ用PMOS、CONT−ARB…調停制御回路、Selector…セレクタ、PORT−SEL…ポート選択信号、LAA・LAB…出力ラッチ、FFDA・FFDB・FFQA・FFQB…フリップフロップ、PLSA・PLSB・PLSC・PLSS…パルス信号、RSFF…セットリセットフリップフロップ、FA・FB…フラグの出力、Delay…遅延回路、SRAM−IF…SRAM適合インターフェイス、
CORE1,CORE2,CORE…プロセッサコア、BUS1,BUS2…バス回路、SHARED MEMORY…共有メモリ、2P−SRAM2,DP−SRAM2…メモリ回路、VIDEO I/F…ビデオ信号入力。