(57)【要約】【課題】回路規模の増大を抑えながらデュアルアクセスが可能なデュアルポート半導体記憶装置およびそのタイミング発生装置を提供。【解決手段】AポートおよびBポートの２つの入出力ポートを備えてデュアルアクセスによるデータの書き込みおよび読み出しを行うデュアルポートRAM 10には、シングルポート用のメモリアレイ12と、A/Bポートにて共有される１系統の記憶制御回路14と、A/Bポート用のクロックaclk/bclkに基づいてA/Bポートのいずれかを選択するセレクタ24、28と、Aポート側またはBポート側のデータの入出力を制御する入出力制御部30、32とを有し、タイミング発生回路26は、AポートまたはBポートを自動的に切り換えてメモリアレイ12に対するデュアルアクセスのタイミングが制御される。【選択図】図１
2009238351.tif 000002
【特許請求の範囲】
【請求項１】
２つの入出力ポートを備えてデュアルアクセスによる記憶制御を行うデュアルポート半導体記憶装置において、該装置は、
第１のポート側にて任意のタイミングの第１のクロックおよび第２のポート側にて任意のタイミングの第２のクロックを入力し、第１および第２のクロックに応じたタイミング信号を発生するタイミング発生手段と、
第１のポート側または第２のポート側を選択し、データの入出力を前記選択したポート側に切り替える切替手段と、
第１のポート側または第２のポート側のデータの入出力を制御する入出力制御手段と、
前記切替手段にて切り替えられたポートを使用して前記データの記憶制御を行う記憶制御手段と、
該記憶制御手段の制御に応じて、前記データを記憶するシングルポート用の記憶手段とを含み、
前記タイミング発生手段は、第１および第２のポートを自動的に切り替えて前記記憶手段へのデュアルアクセスのタイミングを制御することを特徴とするデュアルポート半導体記憶装置。
【請求項２】
請求項１に記載の装置において、前記入出力制御手段は、第１のポート用の入出力部と、第２のポート用の入出力部とを備えていることを特徴とするデュアルポート半導体記憶装置。
【請求項３】
請求項１に記載の装置において、前記記憶制御手段は、第１および第２のポートの記憶制御にて共用して用いられることを特徴とするデュアルポート半導体記憶装置。
【請求項４】
第１ポート側または第２ポート側を選択し、データの入出力を前記選択したポート側に切り替える切替手段と、第１ポート側または第２ポート側のデータの入出力を制御する入出力制御手段と、前記切替手段にて切り替えられたポートを使用して前記データの記憶制御を行う記憶制御手段と、該記憶制御手段の制御に応じて、前記データを記憶するシングルポート用の記憶手段とを含むデュアルポート半導体記憶装置に対して、デュアルアクセスによる記憶制御を行うためのタイミングを発生するタイミング発生装置において、該発生装置は、
第１ポート側の第１のクロックを入力し、第１の遅延時間の期間に応じた第１の制御信号を発生する第１ポート用の第１の発生手段と、
第２ポート側の第２のクロックを入力し、第２の遅延時間の期間に応じた第２の制御信号を発生する第２ポート用の第２の発生手段と、
第１の制御信号と第２の制御信号とに基づいて、第１ポート側の第３の信号を出力する第３の発生手段と、
第１の制御信号と第２の制御信号とに基づいて、第２ポート側の第４の信号を出力する第４の発生手段と、
第３の発生手段の出力の反転出力を前記切替手段へ第１ポートを選択するための切替制御信号として出力する第１のバッファと、
第４の発生手段の出力の反転出力を前記切替手段へ第２ポートを選択するための切替制御信号として出力する第２のバッファと、
第３および第４の発生手段の出力の否定論理積を前記記憶制御手段に対する制御信号として出力する論理回路とを含むことを特徴とするタイミング発生装置。
【請求項５】
請求項４に記載の発生装置において、該発生装置は、任意のタイミングの第１および第２のクロックを入力して、第１および第２ポートを自動的に切り替えて前記記憶手段へのデュアルアクセスのタイミングを制御することを特徴とするタイミング発生装置。
【請求項６】
請求項４に記載の発生装置において、該発生装置は、第１のクロックおよび第２のクロックの到来タイミングが異なる場合、到来タイミングが同時の場合および到来タイミングが離れた期間である場合に対応するタイミングの信号を生成することを特徴とするタイミング発生装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デュアルアクセスが可能なデュアルポート半導体記憶装置およびそのタイミング発生装置に関するものである。
【背景技術】
【０００２】
近年、データ入出力用のポートを２つ設けて、たとえば、一方のポートからデータを読み出しているときに他方のポートからデータを書き込む、いわゆるデュアルアクセスを行うデュアルポートRAM （dual port Random Access Memory）が知られている。デュアルポートRAMを利用して複数のポートでデータの入出力を行うことにより、データの高速処理が可能となる。
【０００３】
一般的なクロック同期型デュアルポートRAMでは、たとえばタイミング発生回路と、アドレス入力回路と、ロウデコーダと、カラムデコーダと、ワードバッファと、データ入出力回路と、カラムスイッチ‐書き込み回路‐センスアンプとを含む周辺ブロックをAポートおよびBポート分の２系統備え、２ポート用メモリセルが配列されたメモリアレイに対し、Aポートおよび／またはBポートからアクセスをする。２ポート用メモリセルは、通常、８トランジスタのメモリセルを使う。
【０００４】
外部との入出力は、Aポート側では、タイミング発生回路にクロックaclkを入力する入力aclkと、ライトイネーブルを指示する信号aweを入力する入力aweとを備え、アドレス入力回路にアドレスaaddressを入力する入力aaddress を備え、さらにデータ入出力回路にデータadinを入力する入力adinと、データadoutを出力する出力adoutとを備える。また、タイミング発生回路は、クロックaclkおよび信号aweに応じて、各周辺ブロックを制御するタイミング信号である制御信号acpを生成して各周辺ブロックに供給する。
【０００５】
Bポート側も同様に、タイミング発生回路にクロックbclkを入力する入力bclkと、ライトイネーブルを指示する信号bweを入力する入力bweとを備え、アドレス入力回路にアドレスbaddressを入力する入力baddress を備え、さらにデータ入出力回路にデータbdinを入力する入力bdinと、データbdoutを出力する出力bdoutとを備える。また、タイミング発生回路は、クロックbclkおよび信号bweに応じて、各周辺ブロックを制御するタイミング信号である制御信号bcpを生成して各周辺ブロックに供給する。
【０００６】
このようなクロック同期型デュアルポートRAMの動作をAポート側を一例として説明すると、まず、クロックaclkが立ち上がると、この立ち上がりに同期して、Aポート側のタイミング発生回路は、制御信号acpを立ち上げる。
【０００７】
次いで、制御信号acpの立ち上がりに同期して、Aポート側のタイミング発生回路およびデータ入出力回路の各ブロックにて、アドレスaaddress、信号awe、データadinがそれぞれ確定する。
【０００８】
次に、書き込みの場合、制御信号acpがハイレベルの間に、確定したアドレスのメモリセルへ、確定したデータが書き込まれる。逆に、読み出しの場合、確定したアドレスのメモリセルからデータが読み出される。
【０００９】
その後、制御信号acpの立ち下がりに同期して、Aポート側のデータ入出力回路は、読み出した読み出しデータまたは書き込んだ書き込みデータを、データadoutとして出力adoutから出力する。また、クロックbclkが立ち上がると、Aポートの動作と同様にしてBポート側の書き込みおよび読み出し動作が行われる。
【００１０】
以上のようにメモリアレイについてAポート側およびBポート側の個別の周辺ブロックで共有し、AおよびBの各ポートにて非同期にかつ独立したアクセスが可能となっている。
【００１１】
また、特許文献１では、ＲＡＭ部にアドレス選択制御部を接続し、切換信号によりＣＰＵ−ＡまたはＣＰＵ−Ｂからのアドレス信号を切り換えるデュアルポートＲＡＭ回路が開示されている。この従来例では、各ＣＰＵからのアドレス信号を調停するためにアービトレーション回路を備えて、アービトレーション回路は内部クロック信号C1,C2と同期をとって各信号を出力する。
【特許文献１】特開平6-161870号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
このようにデュアルポートRAMは、A、Bの各ポートから任意のタイミングでメモリアレイに対するアクセスを行うことができる。しかしながら、２ポート分の周辺ブロックが必要となり、さらに、メモリアレイはデュアルポート用の８トランジスタ（8 Tr）のメモリセルで構成されるため、６トランジスタ（6 Tr）のメモリセルで構成されるシングルポート用のRAMと比べて、デュアルポートRAMは、レイアウトサイズが大きくなって回路規模が増大し、コスト高になってしまうという問題があった。
【００１３】
本発明はこのような課題に鑑み、回路規模の増大を抑えながらデュアルアクセスが可能なデュアルポート半導体記憶装置およびそのタイミング発生装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明は上述の課題を解決するために、２つの入出力ポートを備えてデュアルアクセスによる記憶制御を行うデュアルポート半導体記憶装置において、この装置は、第１のポート側にて任意のタイミングの第１のクロックおよび第２のポート側にて任意のタイミングの第２のクロックを入力し、第１および第２のクロックに応じたタイミング信号を発生するタイミング発生手段と、第１のポート側または第２のポート側を選択し、データの入出力を選択したポート側に切り替える切替手段と、第１のポート側または第２のポート側のデータの入出力を制御する入出力制御手段と、切替手段にて切り替えられたポートを使用してデータの記憶制御を行う記憶制御手段と、記憶制御手段の制御に応じて、データを記憶するシングルポート用の記憶手段とを含み、タイミング発生手段は、第１および第２のポートを自動的に切り替えて記憶手段へのデュアルアクセスのタイミングを制御することを特徴とする。
【００１５】
また、本発明は上述の課題を解決するために、第１ポート側または第２ポート側を選択し、データの入出力を選択したポート側に切り替える切替手段と、第１ポート側または第２ポート側のデータの入出力を制御する入出力制御手段と、切替手段にて切り替えられたポートを使用してデータの記憶制御を行う記憶制御手段と、記憶制御手段の制御に応じて、データを記憶するシングルポート用の記憶手段とを含むデュアルポート半導体記憶装置に対して、デュアルアクセスによる記憶制御を行うためのタイミングを発生するタイミング発生装置において、この発生装置は、第１ポート側の第１のクロックを入力し、第１の遅延時間の期間に応じた第１の制御信号を発生する第１ポート用の第１の発生手段と、第２ポート側の第２のクロックを入力し、第２の遅延時間の期間に応じた第２の制御信号を発生する第２ポート用の第２の発生手段と、第１の制御信号と第２の制御信号とに基づいて、第１ポート側の第３の信号を出力する第３の発生手段と、第１の制御信号と第２の制御信号とに基づいて、第２ポート側の第４の信号を出力する第４の発生手段と、第３の発生手段の出力の反転出力を切替手段へ第１ポートを選択するための切替制御信号として出力する第１のバッファと、第４の発生手段の出力の反転出力を切替手段へ第２ポートを選択するための切替制御信号として出力する第２のバッファと、第３および第４の発生手段の出力の否定論理積を記憶制御手段に対する制御信号として出力する論理回路とを含むことを特徴とする。
【発明の効果】
【００１６】
本発明によれば、回路規模の増大を抑えながらデュアルアクセスが可能なデュアルポート半導体記憶装置を提供することができる。
【発明を実施するための最良の形態】
【００１７】
次に添付図面を参照して本発明のデュアルポート半導体記憶装置およびそのタイミング発生装置が適用された実施例を詳細に説明する。図１を参照すると、本発明による実施例のデュアルポートRAM（Random Access Memory）のブロック図が示されている。
【００１８】
このデュアルポートRAM 10は、入出力ポートを複数有しているマルチポートの半導体記憶装置であり、本実施例では２つの入出力ポートを有している２ポートのメモリである。
【００１９】
本実施例におけるデュアルポートRAM 10は、シングルポートRAM用のメモリセルが配列されたメモリアレイ12を有し、メモリアレイ12は、シングルポートRAM用のたとえば６トランジスタのメモリセルで形成されている。メモリアレイ12には、メモリアレイ12に対する書き込みおよび読み出し制御を行う記憶制御部14が接続されている。
【００２０】
記憶制御部14は、ロウアドレスをデコードするロウデコーダ16と、カラムアドレスをデコードするカラムデコーダ18と、ワードバッファ／ロウデコーダ20と、カラムスイッチ／書き込み回路／センスアンプ22とをそれぞれ１系統有している。
【００２１】
ロウデコーダ16は、ワードバッファ／ロウデコーダ20とともにセレクタ24で選択されるポート側のロウアドレスをデコードして、デコードしたロウアドレスをワードバッファ／ロウデコーダ20を介してメモリアレイ12に供給する前段のロウアドレス出力回路である。
【００２２】
カラムデコーダ18は、セレクタ24にて選択されるポート側のカラムアドレスをデコードして、デコードしたカラムアドレスをカラムスイッチ／書き込み回路／センスアンプ22を介してメモリアレイ12に供給するカラムアドレス出力回路である。セレクタ24は、後述するタイミング発生回路26から接続線112を介して供給される制御信号acp_d3および制御信号bcp_d3に応じて、Aポート側およびBポート側のアドレスのいずれかのアドレスに切り換える。また、セレクタ28は、後述するタイミング発生回路26から接続線112を介して供給される制御信号acp_d3および制御信号acp_d3に応じて、Aポート側またはBポート側のデータに切り換える。
【００２３】
ワードバッファ／ロウデコーダ20は、メモリアレイ12内のワード線に供給するロウアドレスを一時保持するとともに、ロウアドレスを順次走査してワード線に供給する。ワードバッファ／ロウデコーダ20は、後述するタイミング発生回路26から供給される制御信号abcp_3の制御に応じて書き込み時および読み出し時の制御を行う。なお、制御信号abcp_3はA／Bポート共通の制御信号である。
【００２４】
カラムスイッチ／書き込み回路／センスアンプ22は、メモリアレイ12内のビット線を制御してメモリアレイ12に対するデータの書き込みとデータの読み出しを行う回路である。カラムスイッチ／書き込み回路／センスアンプ22は、後述するタイミング発生回路26から供給される制御信号abcp_d3の制御に応じて書き込み時および読み出し時の制御を行う。
【００２５】
デュアルポートRAM 10は、書き込みおよび読み出しのタイミングを制御するタイミング発生回路26と、Aポート用の入出力制御部30と、Bポート用の入出力制御部32とを備えている。
【００２６】
入出力制御部30は、Aポート側のアドレス入力およびデータ入出力のための回路であり、後述のタイミング発生回路26から接続線114を介して供給される制御信号acp_1により制御される。入出力制御部30には、Aポート側のアドレスaaddressを入力aaddressに入力する入力回路34と、Aポート側の書き込みデータadinをデータadinに入力し、メモリアレイ12から読み出した読み出しデータadoutを出力adoutから出力するデータ入出力回路36とが備えられている。
【００２７】
入出力制御部32は、Bポート側のアドレス入力およびデータ入出力のための回路であり、後述のタイミング発生回路26から接続線116を介して供給される制御信号bcp_1により制御される。入出力制御部32には、Bポート側のアドレスbaddressを入力baddressに入力する入力回路38と、Bポート側の書き込みデータbdinを入力bdinに入力し、メモリアレイ12から読み出した読み出しデータbdoutを出力bdoutから出力するデータ入出力回路40とが備えられている。
【００２８】
タイミング発生回路22は、AポートおよびBポートに対する制御を自動的に割り当てるタイミング信号等を生成して各部に供給する。タイミング発生回路22には、Aポート側のクロックaclkが入力される入力aclkと、読み出し・書き込み制御（リード／ライト）信号aweの入力として入力aweとが備えられ、Bポート側のクロックbclkが入力される入力bclkと、書き込み制御（リード・ライト）信号が入力される入力bweとが備えられる。
【００２９】
このように本実施例におけるデュアルポートRAM 10は、メモリアレイ12、ロウデコーダ/ワードバッファ20、ロウデコーダ16、カラムデコーダ18およびカラムスイッチ／書き込み回路／センスアンプ22を含む周辺ブロックである記憶制御部14については、シングルポートRAM用のブロックにて形成されてAポートおよびBポートのアクセス時に共有利用されている。アドレス入力およびデータ入出力を行う周辺ブロックについては、Aポート用とBポート用とを個別にそれぞれ入出力制御部30、32を有している。
【００３０】
次に、デュアルポートRAM 10の動作を図２に示すタイミングチャートを参照して説明する。
【００３１】
時間t1にて入力aclkのクロックaclkが立ち上がると、タイミング発生回路26は、このクロックaclkの立ち上がりに同期して制御信号acp_d1 114を立ち上げる（時間t2）。
【００３２】
この制御信号acp_d1 114の立ち上がりに同期して、Aポート側のアドレス入力回路34、タイミング発生回路26、データ入出力回路40の各ブロックにて、アドレスaaddress、読み出し・書き込み制御信号awe、書き込みデータadinがそれぞれ確定する。
【００３３】
また、制御信号acp_d1 114の立ち上がりに同期して、タイミング発生回路26は、制御信号acp_d3 110と制御信号abcp_d3とを立ち上げる（時間t3）。
【００３４】
制御信号acp_d3の立ち上がりに同期して、セレクタ24、28は、Aポート側の選択に確定する（時間t3〜t7）。
【００３５】
データ書き込みの場合、制御信号abcp_d3がハイレベルの間に、メモリアレイ12内の確定したアドレスのメモリセルに対し、確定したデータがデータ入出回路36およびカラムスイッチ／書き込み回路／センスアンプ22を介してメモリアレイ12に書き込まれる。またデータ読み出しの場合には、確定したアドレスのメモリセルから、データが読み出される。
【００３６】
データ読み出しの場合には、次に、制御信号acp_d3の立ち下り（時間t7）に同期して、Aポート側のデータ入出力回路36は、読み出しデータadoutを出力adoutから出力する。
【００３７】
Bポート側の動作は、Bポート側のクロックbclkのタイミングがAポート側のクロックaclkと十分に離れて、Aポート側の動作が終了している場合は、上記説明したAポート側と同様の動作が行われる。
【００３８】
しかし、タイミングチャートに示すように、Aポート側の動作が終わらない内にクロックbclkが入力された場合やクロックaclkとほぼ同時にクロックbclkが入力された場合は、自動的にAポート側の動作が終了するまで待機し、その後、動作が開始される。
【００３９】
すなわち、時間t4にて入力bclkのクロックbclkが立ち上がると、クロックbclkの立ち上りに同期して、タイミング発生回路26は、制御信号bcp_d1を立ち上げる（時間t5）。
【００４０】
制御信号bcp_d1の立ち上りに同期して、Bポート側のアドレス入力回路38、タイミング発生回路26、データ入出力回路40の各ブロックにて、アドレスbaddress、読み出し・書き込み制御信号bwe、書き込みデータbdinがそれぞれ確定する。
【００４１】
このとき、制御信号acp_d1が立ち上がっていてハイレベル状態にあるので、次の処理へ移行せず、Aポート側の動作の終了を意味する制御信号acp_d1の立ち下りを待つ。時間t6にて制御信号acp_d1が立ち下るとこれに同期して、タイミング発生回路26は、制御信号bcp_d3と制御信号abcp_d3とを立ち上げる（時間t9）。制御信号bcp_d3の立ち上がりに同期して、セレクタ24、28は、Bポート側の選択を確定する（時間t9〜t10）。
【００４２】
データ書き込みの場合、制御信号abcp_d3がハイレベルの間に、メモリアレイ12内の確定したアドレスのメモリセルに対し、確定したデータがデータ入出回路40およびカラムスイッチ／書き込み回路／センスアンプ22を介してメモリアレイ12に書き込まれる。またデータ読み出しの場合には、確定したアドレスのメモリセルから、データが読み出される。
【００４３】
データ読み出しの場合には、次に、制御信号bcp_d3の立ち下り（時間t10）に同期して、Bポート側のデータ入出力回路40は、読み出しデータbdoutを出力bdoutから出力する。
【００４４】
このように上記第１の実施例では、Aポート側の動作が終わらないうちにクロックbclkが入力された場合やクロックaclkとほぼ同時にクロックbclkが入力された場合は、自動的にAポート側の動作が終了する制御信号acp_d1の立ち下がりまで待機し、その後、Bポート側の動作が開始される。すなわち、専用のタイミング発生回路26を設けて、Aポート用の周辺ブロックとBポート用の周辺ブロックとを切り替えるセレクタ24、28とを設けることで、各ポートの入出力はセレクタ24、28を介して１ポート（シングルポート）RAM用の周辺ブロックである記憶制御部14へアクセスを行って、メモリアレイ12に対するデータの書き込みおよび読み出しを行うことができる。
【００４５】
以上により、通常のデュアルポートRAMとして機能を維持しつつ、内部の大部分のブロックをシングルポートRAM用の回路で構成してAポート側の入出力とBポート側の入出力とにて共用することが可能であり、通常のデュアルポートRAMよりサイズを小さくすることができる。
【００４６】
なお、本実施例におけるタイミング発生回路26が発生する制御信号のタイミングは、従来のデュアルポートRAMにアクセスするタイミングとは異なるタイミングである。また、上記実施例では、同一アドレスに対する同時タイミングでのアクセスによるアドレスの競合を自動的に処理する調停回路を備えることなく、この点でも回路規模の増大を防ぐことができる。
【００４７】
次に、図１に示したデュアルポートRAM 10におけるタイミング発生回路26の他の実施例を図３に示す。本実施例におけるタイミング発生回路50は、Aポート用のタイミング発生回路（以下、ATG (#1)と呼ぶ）52と同じくAポート用のタイミング発生回路（以下、ATG (#2)と呼ぶ）54と、Bポート用のタイミング発生回路（以下、BTG (#1)と呼ぶ）56と、同じくBポート用のタイミング発生回路（以下、BTG (#2)と呼ぶ）58との４つのブロックを含み、さらに出力側のバッファ60、62および64を有している。デュアルポートRAM 10の全体の構成としては図１に示した構成においてタイミング回路26に代えて本実施例におけるタイミング発生回路50を備える構成となる。
【００４８】
ATG (#1) 52では、入力aclkは、遅延素子であるディレイ300とアンド回路302の一方の入力に接続され、ディレイ300の出力は反転回路304を介してアンド回路302の他方の入力に接続されている。これらにより、入力aclkに入力するクロックaclkの立ち上がりを検出してディレイ300による遅延分のパルス信号を生成し、生成したパルス信号を制御信号acp_d1としてアンド回路302から出力する。
【００４９】
アンド回路302の出力は、ATG#1の出力306を形成するとともに、ディレイ308とアンド回路310の一方の入力とノア回路312の一方の入力とに接続されている。ディレイ308の出力は反転回路314を介してアンド回路310の他方の入力とノア回路312の他方の入力とに接続されている。これらにより、アンド回路310は、制御信号acp_d1の立ち上りを検出してディレイ308による遅延分のパルス信号を生成し、生成したパルス信号を制御信号acp_d2rとして出力316に出力し、ノア回路312は、制御信号acp_d1の立ち下がりを検出してディレイ308による遅延分のパルス信号を生成し、生成したパルス信号を制御信号acp_d2fとして出力318に出力する。
【００５０】
アンド回路302の出力acp_d1は接続線306を介してATG (#2) 54とBTG (#2) 58とに接続され、アンド回路310の出力acp_d2rは接続線316を介してATG (#2) 54に接続されている。ノア回路312の出力acp_d2fは接続線318を介してBTG (#2) 58に接続される。また、アンド回路302の出力(acp_d1) 306は図１に示したAポート用の入出力制御部30内のアドレス入力回路34とデータ入出力回路36とにそれぞれ接続される。
【００５１】
BTG (#1) 56では、入力bclkは、遅延素子であるディレイ320とアンド回路322の一方の入力に接続され、ディレイ320の出力は反転回路324を介してアンド回路322の他方の入力に接続されている。これらにより、入力bclkに入力するクロックbclkの立ち上がりを検出してディレイ320による遅延分のパルス信号を生成し、生成したパルス信号を制御信号bcp_d1としてアンド回路322から出力する。
【００５２】
アンド回路322の出力は、BTG (#1) 56の出力326を形成するとともに、ディレイ328とアンド回路330の一方の入力とノア回路332の一方の入力とに接続されている。ディレイ328の出力は反転回路334を介してアンド回路330の他方の入力とノア回路332の他方の入力とに接続されている。これらにより、アンド回路330は、制御信号bcp_d1の立ち上りを検出してディレイ328による遅延分のパルス信号を生成し、生成したパルス信号を制御信号bcp_d2rとして出力336に出力し、ノア回路332は、制御信号bcp_d1の立ち下がりを検出してディレイ328による遅延分のパルス信号を生成し、生成したパルス信号を制御信号bcp_d2fとして出力338に出力する。
【００５３】
アンド回路322の出力bcp_d1は接続線326を介してATG (#2) 54とBTG (#2) 58とに接続され、アンド回路330の出力bcp_d2rは接続線336を介してATG (#2) 54に接続されている。ノア回路332の出力bcp_d2fは接続線338を介してBTG (#2) 58に接続される。また、アンド回路322の出力(cp_d1) 322は図１に示したBポート用の入出力制御部32内のアドレス入力回路38とデータ入出力回路40とにそれぞれ接続される。
【００５４】
ATG#2 54では、ATG (#1) 52の出力306が排他的論理和340の一方の入力とアンド回路342の一方の入力に接続されて、それぞれ制御信号acp_d1が入力される。排他的論理和340の出力はアンド回路342の他方の入力に接続され、アンド回路342の出力344はNMOS 346のゲートに接続されて、信号ad1_diffをNMOS 346に供給する。
【００５５】
また、ATG (#1) 52の出力316と、BTG (#1) 56の出力336がATG (#2) 54のアンド回路348の入力にそれぞれ接続され、アンド回路348の出力350はNMOS 352のゲートに接続されて、信号ad2_andをNMOS 352に供給する。
【００５６】
NMOS 346および352の出力354（acp_d3_）は遅延素子であるディレイ356に接続されるとともにATG (#2) 54の出力を形成している。ディレイ356の出力358はPMOS 360のゲートに接続されて帰還回路を形成している。また、ATG (#2) 54は、バッファ60の一方の入力とバッファ62に接続され、バッファ60は他方の入力に入力される信号bcp_d3_と、信号acp_d3_との否定論理積（NAND）をとって制御信号abcp_d3を出力110に出力する。この出力110は、記憶制御回路14（図１）に接続される。バッファ62は、信号bcp_d3_を反転した制御信号acp_daを出力112に出力するインバータである。
【００５７】
BTG#2 58では、BTG (#1) 56の出力326が排他的論理和370の一方の入力とアンド回路372の一方の入力に接続されて、それぞれ制御信号bcp_d1が入力される。排他的論理和370の出力はアンド回路372の他方の入力に接続され、アンド回路372の出力374はNMOS 376のゲートに接続されて、信号bad1_diffをNMOS 376に供給する。
【００５８】
また、ATG (#1) 52の出力318と、BTG (#1) 56の出力338とがBTG (#2) 58のアンド回路376の入力にそれぞれ接続され、アンド回路376の出力378はNMOS 380のゲートに接続されて、信号bd2_andをNMOS 380に供給する。
【００５９】
NMOS 376および380の出力382（bcp_d3_）は遅延素子であるディレイ384に接続されるとともにBTG (#2) 58の出力を形成している。ディレイ384の出力386はPMOS 388のゲートに接続されて帰還回路を形成している。また、BTG (#2) 58は、バッファ60の他方の入力とバッファ64とに接続され、バッファ60は一方の入力に入力される信号acp_d3_と信号bcp_d3_とのNANDをとる。バッファ64は、信号bcp_d3_を反転した制御信号bcp_d3を出力112に出力するインバータである。
【００６０】
次に、本実施例におけるタイミング発生回路50の動作を図４〜図７に示すタイミングチャートを参照して以下に説明する。
【００６１】
図４〜図７には、クロックaclk/bclkの入力タイミングがそれぞれ異なる場合のタイミングチャートを示している。なお、入力、出力および主な内部ノードの初期状態は、クロックaclk、クロックbclk、制御信号abcp_d3、制御信号acp_d3、制御信号bcp_d3、制御信号acp_d1、制御信号bcp_d1はそれぞれLowレベルとし、信号acp_d3_および信号bcp_d3_はHighレベルとする。
【００６２】
まず、図４を参照すると、クロックaclkが先でクロックbclkが後の場合で、これらクロックaclk、bclkのタイミングが接近している場合の動作を説明する。
【００６３】
時間t1にてクロックaclkがLowレベルからHighレベルに遷移すると、ディレイ300の出力を反転回路304にて反転した出力とクロックaclkがHighレベルとなり、アンド回路302の出力である制御信号acp_d1はLowレベルからHighレベルに遷移する（時間t2）。この状態はディレイ300の遅延分継続される。
【００６４】
この制御信号acp_d1を入力してATG#2 54内のアンド回路342は、排他的論理和340の出力(制御信号acp_d1と制御信号bcp_d1との排他的論理和)と、制御信号acp_d1とがHighレベルとなり、その出力信号ad1_diffがLowレベルからHighレベルに遷移する（時間t3）。この状態は制御信号acp_d1と制御信号bcp_d1との立ち上がりタイミングの差の分継続される。
【００６５】
信号ad1_diffがHighレベルになるとNMOS 346はオン状態になり、その出力acp_d3_はHighレベルからLowレベルに遷移する（時間t4）。
【００６６】
ディレイ356にてその遅延分遅れて信号acp_d3_のHighレベルからLowレベルへの遷移がPMOS 360に伝播され、PMOS 360にて入力がLowレベルとなるので、信号acp_d3_はLowレベルからHighレベルに遷移する（時間t8）。
【００６７】
次に時間t5にてクロックbclkがLowレベルからHighレベルに遷移すると、制御信号bcp_d1はLowレベルからHighレベルに遷移する。この状態はディレイ300の遅延分継続される（時間t6）。
【００６８】
排他的論理和340の出力がLowレベルになると、ATG#2 54内のアンド回路342は、信号ad1_diffをHighレベルからLowレベルに遷移させる（時間t7）。
【００６９】
時間t9になると、アンド回路302にて、ディレイ300分の遅延時間後の出力信号acp_d1がHighレベルからLowレベルに遷移すると、アンド回路372の出力信号bd1_diffはLowレベルからHighに遷移する（時間t10）。この状態は制御信号acp_d1と制御信号bcp_d1との立ち下りタイミングの差の分継続される。
【００７０】
次いで、時間t11にて出力信号bcp_d3_がHighレベルからLowレベルに遷移し、ディレイ384の遅延分遅れて出力信号bcp_d3_はLowレベルからHighレベルに遷移する（時間t14）。これを受けて制御信号bcp_d3は、HighレベルからLowレベルに遷移する（時間t15）。
【００７１】
制御信号bcp_d1は、時間t6からディレイ320の遅延時間後、時間t12にてHighレベルからLowレベルに遷移する。また、信号bd1_diffはHighレベルからLowレベルに遷移する（時間t13）。
【００７２】
次にクロックbclkが先で、クロックaclkが後の場合の動作を図５に示すと、この場合の動作は、上述した前述のクロックaclkが先でクロックbclkが後の場合において、Aポート側とBポート側とを入れ替えた動作と同じであるので、その詳細説明を省略する。
【００７３】
次に、図６を参照すると、クロックaclkとクロックbclkとのタイミングが同時である場合のタイミングチャートが示されている。この場合の動作を説明する。
【００７４】
時間t1にてクロックaclkがLowレベルからHighレベルに遷移すると、ディレイ300の出力を反転回路304にて反転した出力とクロックaclkがHighレベルとなり、アンド回路302の出力である制御信号acp_d1はLowレベルからHighレベルに遷移する（時間t2）。この状態はディレイ300の遅延分継続される。
【００７５】
この制御信号acp_d1を入力してATG#2 54内のアンド回路342は、排他的論理和340の出力(制御信号acp_d1と制御信号bcp_d1との排他的論理和)と、制御信号acp_d1とがHighレベルとなり、アンド回路310の出力信号acp_d2rはLowレベルからHighレベルに遷移する。この状態は308の遅延の分継続される。
【００７６】
また時間ｔ１にてクロックbclkがLowレベルからHighレベルに遷移すると、ディレイ320の出力を反転回路324にて反転した出力がHighレベルとなり、アンド回路322の出力である制御信号bcp_d1はLowレベルからHighレベルに遷移する（時間t2）。この状態はディレイ320の遅延分継続される。
【００７７】
この制御信号bcp_d1を入力するとアンド回路330は、信号bcp_d2rをLowレベルからHighレベルに遷移させる。この状態はディレイ328の遅延の分継続される。
【００７８】
ATG#2 54内のアンド回路348には、信号acp_d2rと信号bcp_d2rとが入力されて、その出力信号ad2_andがHighレベルに遷移する。この状態は信号acp_d2rと信号bcp_d2rがともにHighレベルである期間継続される。NMOS 352に入力される信号ad2_andがHighレベルとなると、出力信号acp_d3_はHighレベルからLowレベルに遷移する（時間t4）。
【００７９】
ディレイ356にてその遅延分遅れて信号acp_d3_のHighレベルからLowレベルへの遷移がPMOS 360に伝播され、PMOS 360にて入力がLowレベルとなるので、信号acp_d3_はLowレベルからHighレベルに遷移する（時間t5）。ディレイ300の遅延時間後、アンド回路302の出力信号acp_d1がHighレベルからLowレベルに遷移する（時間t6）と、ディレイ308の出力を反転回路314にて反転した出力と、信号acp_d1とがLowレベルとなって、ノア回路312の出力信号acp_d2fがLowレベルからHighレベルに遷移する。この状態はディレイ308の遅延の分継続される。
【００８０】
時間t6にてアンド回路322の出力信号bcp_d1がHighレベルからLowレベルに遷移し、これを受けてノア回路332の出力信号bcp_d2fはLowレベルからHighレベルに遷移する。この状態はディレイ328の遅延の分継続される。
【００８１】
BTG (#2) 58のアンド回路376は、その出力信号bd2_andをLowレベルからHighレベルに遷移させる。この状態は信号bcp_d2fと信号acp_d2fがともにHighレベルになっている期間継続される。時間t8になるとBTG (#2) 58の出力信号bcp_d3_はHighレベルからLowレベルに遷移し、ディレイ384による遅延の期間分遅れて、出力信号bcp_d3_はHighに遷移する。
【００８２】
次にクロックaclkおよびクロックbclkのタイミングが離れている場合について図７を参照して説明する。
【００８３】
時間t1にてクロックaclkがLowレベルからHighレベルに遷移すると、ディレイ300の出力を反転回路304にて反転した出力とクロックaclkがHighレベルとなり、アンド回路302の出力である制御信号acp_d1はLowレベルからHighレベルに遷移する（時間t2）。この状態はディレイ300の遅延分継続される。
【００８４】
この制御信号acp_d1を入力してATG#2 54内のアンド回路342は、排他的論理和340の出力(制御信号acp_d1と制御信号bcp_d1との排他的論理和)と、制御信号acp_d1とがHighレベルとなり、その出力信号ad1_diffがLowレベルからHighレベルに遷移する（時間t3）。この状態は制御信号acp_d1のHighレベルの期間継続される。
【００８５】
NMOS 346は、入力信号ad1_diffがHighレベルとなるとオン状態になり、出力信号acp_d3_をHighレベルからLowレベルに遷移させる（時間t3）。信号ad1_diffの遷移はディレイ356にてその遅延分遅れてPMOS 360に伝播され、PMOS 360の入力がLowレベルとなり、この結果出力信号acp_d3_はLowレベルからHighレベルに遷移する（時間t4）。
【００８６】
アンド回路302は、ディレイ300の遅延時間後、出力acp_d1をHighレベルからLowレベルに遷移させる（時間t5）。ATG (#2) 54のアンド回路342の入力acp_d1がLowレベルになると、その出力信号ad1_diffをHighレベルからLowレベルに遷移させる（時間t6）。
【００８７】
その後、クロック入力bclkがLowレベルからHighレベルに変化した時間t7以降の動作は、クロックaclkの場合と同様にBTG (#1) 56とBTG (#2) 58とが動作し、制御信号bcp_d1と、制御信号bcp_d3_とがそれぞれ出力される。
【００８８】
上述した４つの場合で共通する動作は次の通りである。バッファ60にて信号acp_d3_と信号bcp_d3_とのNANDがとられて制御信号abcp_d3が出力110に出力される。バッファ62は、信号acp_d3_を反転して、制御信号acp_d3を出力112にする。バッファ64は、信号bcp_d3_を反転して、制御信号bcp_d3を出力112に出力する。
【００８９】
以上説明したように本実施例では、クロックaclkが先でクロックbclkが後の場合と、クロックbclkが先でクロックaclkが後の場合と、クロックaclk/bclkのタイミングがともに同時の場合と、クロックaclk/bclkの各タイミングが離れている場合との４つの場合に対応した制御信号を生成するタイミング発生回路50により、各クロックaclk/bclkの到来タイミングが接近している場合や各クロックaclk/bclkの到来タイミングが同時の場合には、まず、片方のポートのアクセスを行い、その後に、残ったポートのアクセスを行うことを自動的に処理できる。したがって、A/B各ポートから任意のタイミングのクロックaclkおよびクロックbclkによりアクセスが可能となる。
【図面の簡単な説明】
【００９０】
【図１】デュアルポートRAMの実施例を示すブロック図である。
【図２】デュアルポートRAMの動作を示すタイミングチャートである。
【図３】タイミング発生回路の実施例を示すブロック図である。
【図４】クロックaclkが先でクロックbclkが後の場合の動作を示すタイミングチャートである。
【図５】クロックbclkが先でクロックaclkが後の場合の動作を示すタイミングチャートである。
【図６】クロックaclkおよびbclkのタイミングが同時の場合の動作を示すタイミングチャートである。
【図７】クロックaclkおよびbclkのタイミングが離れている場合の動作を示すタイミングチャートである。
【符号の説明】
【００９１】
10  デュアルポートRAM
12  メモリアレイ
14  記憶制御部
16  ロウデコーダ
18  カラムデコーダ
20  ワードバッファ／ロウデコーダ
22  カラムスイッチ／書き込み回路／センスアンプ
24、28  セレクタ
26、50  タイミング発生回路
30、32  入出力制御部
【図１】
2009238351.tif 000003
【図２】
2009238351.tif 000004
【図３】
2009238351.tif 000005
【図４】
2009238351.tif 000006
【図５】
2009238351.tif 000007
【図６】
2009238351.tif 000008
【図７】
2009238351.tif 000009