(57)【要約】【課題】データ転送効率を改善すること。【解決手段】第１クロック信号に同期して動作する第１アクセスポートと第２クロック信号に同期して動作する第２アクセスポートとを有する記憶手段としてのデュアルポートＲＡＭ（１１０）と、前記第１アクセスポートに入力されるライト信号に基づきライトポインタを生成するライトポインタ生成手段としてのライトポインタ生成回路（１２０）と、前記第２アクセスポートに入力されるリード信号に基づきリードポインタを生成するリードポインタ生成手段としてのリードポインタ生成回路（１５０）と、前記ライトポインタとリードポインタとの差分が予め設定されたマージン以下となった場合に前記記憶手段の記憶領域が満杯であると判定する判定手段としてのフル／エンプティ判定回路（１４０）とを備える。【選択図】図１
2007272562.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号に同期して動作する第１アクセスポートと第２クロック信号に同期して動作する第２アクセスポートとを有する記憶手段と、
前記第１アクセスポートに入力されるライト信号に基づきライトポインタを生成するライトポインタ生成手段と、
前記第２アクセスポートに入力されるリード信号に基づきリードポインタを生成するリードポインタ生成手段と、
前記ライトポインタとリードポインタとの差分が予め設定されたマージン以下となった場合に前記記憶手段の記憶領域が満杯であると判定する判定手段と
を備えたＦＩＦＯメモリ。
【請求項２】
前記ライトポインタ生成手段は、前記ライトポインタを前記第２クロック信号で同期化して前記判定手段に出力することを特徴とする請求項１記載のＦＩＦＯメモリ。
【請求項３】
前記リードポインタ生成手段は、前記リードポインタを前記第１クロック信号で同期化して前記判定手段に出力することを特徴とする請求項１記載のＦＩＦＯメモリ。
【請求項４】
前記マージンは、前記ライトポインタ生成手段がライトポインタを生成してから該ライトポインタに基づく前記判定手段の判定結果が出力されるまでの期間における前記ライトポインタの変化分に応じて設定されたことを特徴とする請求項１ないし３の何れか１項記載のＦＩＦＯメモリ。
【請求項５】
前記記憶手段は、デュアルポートＲＡＭであることを特徴とする請求項１ないし４の何れか１項記載のＦＩＦＯメモリ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに非同期なクロックでリード／ライト動作が可能なデュアルポートＲＡＭを利用したＦＩＦＯメモリに関する。
【背景技術】
【０００２】
一般に、ＦＩＦＯメモリは、データを記憶するためのＲＡＭと、ライトポインタ及びリードポインタを管理するためのアドレス演算回路とから構成されており、互いに非同期のクロックで動作する二つのデバイス間でデータ転送を行う際のインターフェイス等として利用される。このため、ＦＩＦＯメモリは、ライト用のクロックとリード用のクロックとがそれぞれ入力可能なデュアルポートＲＡＭを用いて実現されることが多い。
【０００３】
図４に、デュアルポートＲＡＭ２１０を用いたＦＩＦＯメモリ２００の構成を示す。
同図において、デュアルポートＲＡＭ２１０は、クロック信号ＣＬＫ０に同期して動作する第１アクセスポートと、クロック信号ＣＬＫ１に同期して動作する第２アクセスポートとを備えている。符号２２０はウェイト信号生成回路、符号２３０，２５０，２８０は同期化回路、符号２４０はライトポインタ生成回路、符号２６０はフル／エンプティ判定回路、符号２７０はリードポインタ生成回路である。
【０００４】
デュアルポートＲＡＭ２１０の第１アクセスポートには、ＣＰＵ等のバスマスタデバイスからライト信号ＷＲとライトデータＷＤ１５〜ＷＤ０とが入力され、ライトポインタ生成回路２４０から同期化回路２５０を介してライトアドレス信号ＷＡ７〜ＷＡ０が入力される。一方、デュアルポートＲＡＭ２１０の第２アクセスポートには、外部の周辺デバイスからリード信号ＲＤが入力され、リードポインタ生成回路２７０からリードアドレス信号ＲＡ７〜ＲＡ０が入力される。また、第２アクセスポートから周辺デバイスにリードデータＲＤ１５〜ＲＤ０が出力される。
【０００５】
次に、図５に示すタイミングチャートを参照して、バスマスタデバイスからの要求に基づくライト動作について説明する。
先ず、時刻ｔ１におけるクロック信号ＣＬＫ０の立ち上がりで、バスマスタデバイスがライト信号ＷＲをローレベルにアサート(assert)すると、これを受けて、ウェイト信号生成回路２２０は、その次の時刻ｔ２におけるクロック信号ＣＬＫ０の立ち上がりエッジでウェイト信号ＷＡＴをハイレベルにアサートする。これ以後、ウェイト信号ＷＡＴがネゲート(negate)されるまで、バスマスタデバイスによるライトが禁止される。
【０００６】
また、ウェイト信号生成回路２２０は、アサートされたライト信号ＷＲを同期化回路２３０に出力する。同期化回路２３０は、時刻ｔ３におけるクロック信号ＣＬＫ１の立ち上がりエッジで、アサートされたライト信号ＷＲを取り込み、次の時刻ｔ４におけるクロック信号ＣＬＫ１の立ち上がりエッジで、クロック信号ＣＬＫ１に同期化されたローレベルのライト信号ＷＲＳを出力する。ライトポインタ生成回路２４０は、時刻ｔ５におけるクロック信号ＣＬＫ１の立ち上がりエッジで、ライト信号ＷＲＳによりポインタＰｗを更新して出力する。
【０００７】
一方、リードポインタ生成回路２７０は、周辺デバイスから供給されるリード信号ＲＤからリードポインタＰｒを生成する。この例ではリード信号ＲＤはアサートされておらず、リードポインタＰｒは先頭アドレス「０」を維持している。フル／エンプティ判定回路２６０は、上述の更新されたライトポインタＰｗとリードポインタＰｒとからデュアルポートＲＡＭ２１０の記憶領域の残りを演算し、この演算結果から記憶領域がフル状態であるか否かを判定する。この例では、時刻ｔ５におけるクロック信号ＣＬＫ１の立ち上がりエッジでフル状態ではないと判定している。
【０００８】
記憶領域がフル状態ではないと判定されると、フル／エンプティ判定回路２６０は、時刻ｔ６におけるクロック信号ＣＬＫ１の立ち上がりエッジで、判定結果を表すアクノリッジ信号Ａｃｋ１をハイレベルにアサートして同期化回路２８０に出力する。同期化回路２８０は、時刻７におけるクロック信号ＣＬＫ０の立ち上がりエッジで、クロック信号ＣＬＫ０でアクノリッジ信号Ａｃｋ１を同期化してアクノリッジ信号Ａｃｋ０を出力する。
【０００９】
アクノリッジ信号Ａｃｋ０を入力するウェイト信号生成回路２２０は、次の時刻ｔ８におけるクロック信号ＣＬＫ０の立ち上がりエッジでウェイト信号をローレベルにネゲートする。このウェイト信号を受けて、バスマスタデバイスは、次の時刻ｔ９におけるクロック信号ＣＬＫ０の立ち上がりエッジでライト信号ＷＲをハイレベルにネゲートし、これにより一連のライト動作が完了する。
【特許文献１】特開平８−１７１８０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、上述の従来技術によれば、ライトポインタＰｗ及びリードポインタＰｒの両者の更新をリード用のクロック信号ＣＬＫ１に同期させる必要がある。なぜなら、フル／エンプティ判定回路１４０においてデュアルポートＲＡＭ２１０の記憶領域が満杯であるか否かを正しく判定するためには、ライトポインタとリードポインタとを同一のタイミングで更新して両ポインタの位置関係を把握する必要があるからである。
【００１１】
しかしながら、ライトポインタＰｗ及びリードポインタＰｒの両者の更新をリード用のクロック信号ＣＬＫ１に同期させることは、ライトポインタＰｗを得るためのライト信号ＷＲを遅延させることを意味し、このため、フル／エンプティ判定回路２６０が判定結果を出力するまでに所定のレイテンシを必要とするという問題がある。
【００１２】
具体的には、リード用のクロック信号ＣＬＫ１で両ポインタを更新する場合、ライトポインタＰｗの更新にタイムラグが生じる。なぜなら、ライトポインタＰｗを更新する際に、同期化回路２３０によりライト信号ＷＲをリード用のクロック信号ＣＬＫ１に同期化させる必要があるためである。この同期化の際に発生するタイムラグが、フル／エンプティ状態を判定する際のレイテンシをもたらし、データ転送効率を低下させる原因になる。上述の図５に示す例では、ウェイト信号ＷＡＴがアサートされてからネゲートされるまで、即ち第１アクセスポートから第２アクセスポートにデータが転送されるまでに８サイクルを要している。
【００１３】
本発明は、上記事情に鑑みてなされたものであり、データ転送効率を改善することができるＦＩＦＯメモリを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明に係るＦＩＦＯメモリは、第１クロック信号に同期して動作する第１アクセスポートと第２クロック信号に同期して動作する第２アクセスポートとを有する記憶手段と、前記第１アクセスポートに入力されるライト信号に基づきライトポインタを生成するライトポインタ生成手段と、前記第２アクセスポートに入力されるリード信号に基づきリードポインタを生成するリードポインタ生成手段と、前記ライトポインタとリードポインタとの差分が予め設定されたマージン以下となった場合に前記記憶手段の記憶領域が満杯であると判定する判定手段とを備える。
【００１５】
上記ＦＩＦＯメモリにおいて、例えば、前記ライトポインタ生成手段は、前記ライトポインタを前記第２クロック信号で同期化して前記判定手段に出力することを特徴とする。
上記ＦＩＦＯメモリにおいて、例えば、前記リードポインタ生成手段は、前記リードポインタを前記第１クロック信号で同期化して前記判定手段に出力することを特徴とする。
【００１６】
上記ＦＩＦＯメモリにおいて、例えば、前記マージンは、前記ライトポインタ生成手段がライトポインタを生成してから該ライトポインタに基づく前記判定手段の判定結果が出力されるまでの期間における前記ライトポインタの変化分に応じて設定されたことを特徴とする。
上記ＦＩＦＯメモリにおいて、例えば、前記記憶手段は、デュアルポートＲＡＭであることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、ライトポインタとリードポインタとの間に一定のマージンを設けて、これらライトポインタ及びリードポインタに基づき記憶領域が満杯であるか否かを判定するようにしたので、記憶領域が満杯であるか否かを判定する際のレイテンシの発生を有効に抑制し、データ転送効率を改善することができる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照しながら、本発明の実施形態を説明する。
図１に、本発明の実施形態に係るＦＩＦＯメモリ１００の構成を示す。
同図において、符号１１０はデュアルポートＲＡＭである。デュアルポートＲＡＭ１１０は、ＣＰＵ等のバスマスタデバイスのクロック信号ＣＬＫ０に同期して動作する第１アクセスポート１１００と、周辺デバイスのクロック信号ＣＬＫ１に同期して動作する第２アクセスポート１１０１とを備える。
【００１９】
ここで、第１アクセスポート１１００には、クロック信号ＣＬＫ０に加え、図示しないバスマスタデバイスからライト信号ＷＲとライトデータＷＤ１５〜ＷＤ０とが入力されると共に、後述のライトポインタ生成回路１２０からライトアドレス信号ＷＡ７〜ＷＡ０が入力される。一方、第２アクセスポート１１０１には、クロック信号ＣＬＫ１に加え、図示しない周辺デバイスからリード信号ＲＤが入力されると共に、後述のリードポインタ生成回路１５０からリードアドレス信号ＲＡ７〜ＲＡ０が入力される。また、第２アクセスポート１１０１からは周辺デバイスにリードデータＲＤ１５〜ＲＤ０が出力される。
【００２０】
符号１２０は、デュアルポートＲＡＭ１１０のライト位置を示すライトポインタＰｗを生成するためのライトポインタ生成回路である。このライトポインタ生成回路１２０にはライト信号ＷＲが入力される。ライトポインタ生成回路１２０は、ライトポインタＰｗをライトアドレスＷＡ７〜ＷＡ０としてデュアルポートＲＡＭ１１０の第１アクセスポート１１００に供給する。
【００２１】
符号１３０は同期化回路であり、従属接続された２段のＤフリップフロップから構成される。このうち、１段目のＤフリップフロップにはライトポインタＰｗが入力され、２段目のＤフリップフロップからはクロック信号ＣＬＫ１に同期化されたライトポインタＰｗｓが出力され、これら２段のＤフリップフロップの各クロック端子にはクロック信号ＣＬＫ１が入力される。
符号１５０は、デュアルポートＲＡＭ１１０のリード位置を示すリードポインタＰｒを生成するためのリードポインタ生成回路である。このリードポインタ生成回路１５０にはリード信号ＲＤが入力される。
【００２２】
符号１４０は、上述の同期化されたライトポインタＰｗｓとリードポインタＰｒとからデュアルポートＲＡＭの記憶領域が満杯であるか否かを判定するフル／エンプティ判定回路である。このフル／エンプティ判定回路１４０は、本発明の主要な特徴部の一つを成し、ライトポインタＰｗｓとリードポインタＰｒとの間に一定のマージンを設けて、これらポインタに基づいてデュアルポートＲＡＭの記憶領域が満杯であるか否かを判定するものである。この判定結果は、判定信号ＪＵＤとして周辺デバイスに出力されると共に、ウェイト信号ＷＡＴ１として後述の同期化回路１６０に出力される。なお、この判定においてライトポインタＰｗｓとリードポインタＰｒとの間に設けられる上述の一定のマージンについては後述する。
【００２３】
符号１６０は同期化回路であり、上述の同期化回路１３０と同様に従属接続された２段のＤフリップフロップから構成される。だたし、これら２段のＤフリップフロップの各クロック端子にはクロック信号ＣＬＫ０が入力され、このうち、１段目のＤフリップフロップにはウェイト信号ＷＡＴ１が入力され、２段目のＤフリップフロップからは、クロック信号ＣＬＫ０に同期化されたウェイト信号ＷＡＴが外部のバスマスタデバイスに出力される。
【００２４】
次に、図２を参照して、フル／エンプティ判定回路１４０における判定手法と、その判定の際にライトポインタＰｗｓとリードポインタＰｒとの間に設けられる上述の一定のマージンＭについて、従来技術と対比して説明する。
図２は、フル判定が下される場合のデュアルポートＲＡＭ１１０の記憶領域と各ポインタとの関係の一例を表している。同図に示す例では、デュアルポートＲＡＭ１１０の記憶領域は、０段目からＮ−１段目までの合計Ｎ段のＦＩＦＯメモリの記憶領域を構成する。
【００２５】
ここで、図２（ａ）は、本実施形態に係る上述の一定のマージンを説明するための図であり、ライトポインタＰｗｓがＮ−Ｍ−１段目を示しているときにリードポインタＰｒが０段目（初段）を示している状態を表している。また、同図（ｂ）は、従来技術におけるライトポインタＰｗとリードポインタＰｒとの関係を説明するための図であり、ライトポインタＰｗがＮ−１段目を示しているときにリードポインタＰｒが０段目を示している状態を表している。
【００２６】
先ず、従来技術によれば、図２（ｂ）に示すようにＰｗ＞Ｐｒの場合には、Ｐｗ−Ｐｒ＝Ｎ−１なる関係が満足されると、ＦＩＦＯメモリの記憶領域が満杯となり、フル判定が下される。また、図示しないが、Ｐｗ＜Ｐｒの場合には、Ｐｒ−Ｐｗ＝１なる関係が満足されると、ＦＩＦＯメモリの記憶領域が満杯となり、フル判定が下される。即ち、従来技術では、リードポインタＰｒの後ろにライトポインタＰｗが完全に追いついた状態（空きの記憶領域が全くない状態）となった場合にフル判定が下される。
【００２７】
これに対し、本実施形態では、図２（ａ）に示すように、Ｐｗｓ＞Ｐｒの場合にＰｗ−Ｐｒ≧Ｎ−Ｍなる関係が満足されると、実際にはＦＩＦＯメモリの記憶領域が満杯にはなっていなくてもフル判定が下される。また、図示しないが、Ｐｗｓ＜Ｐｒの場合にＰｒ−Ｐｗ≦Ｍなる関係が満足されると、同様にＦＩＦＯメモリの記憶領域が満杯にはなっていなくてもフル判定が下される。
【００２８】
即ち、本実施形態では、リードポインタＰｒと、これを追いかけるライトポインタＰｗｓとの間の差分が所定のマージンＭ以下になった場合にフル判定が下される。このマージンＭをどのように設定すべきかについては後述する。
以上で、本実施形態におけるフル判定の手法とマージンＭについて説明した。
【００２９】
次に、図３に示すタイミングチャートを参照して、バスマスタデバイスからの要求に基づくライト動作を例として本実施形態の動作を説明する。
以下に説明するように、本実施形態によれば、バスマスタデバイスはライト動作毎にフル判定を待つ必要がなく、従ってバーストモードでのライト動作が可能になる。そこで、ここでは、バスマスタデバイスがバーストモードでデュアルポートＲＡＭ１１０にデータをライトする場合を説明する。
【００３０】
先ず、図３において、時刻ｔ１におけるクロック信号ＣＬＫ０の立ち上がりエッジで、バスマスタデバイスがライト信号ＷＲをローレベルにアサートしてバーストモードでのライト動作を開始すると、それ以後、ライトポインタ生成回路１２０は、クロック信号ＣＬＫ０の１サイクル毎にライトポインタＰｗをカウントアップして更新し、ライトポインタＰｗの値として、「１」，「２」，…，「１７」を順次出力する。また、ライトポインタ生成回路１２０は、ライトポインタＰｗとしてライトアドレス信号ＷＡ７〜ＷＡ０をデュアルポートＲＡＭ１１０の第１アクセスポートに供給する。
【００３１】
デュアルポートＲＡＭ１１０は、クロック信号ＣＬＫ０の各サイクルにおいてバスマスタデバイスからライトデータＷＤ１５〜ＷＤ０を入力し、ライトポインタ生成回路１２０からライトポインタＰｗとして供給されるライトアドレス信号ＷＡ７〜ＷＡ０で指定される記憶領域に順次格納する。
【００３２】
同期化回路１３０は、ライトポインタＰｗをクロック信号ＣＬＫ１で同期化し、クロック信号ＣＬＫ１に同期したタイミングでライトポインタＰｗｓをフル／エンプティ判定回路１４０に出力する。具体的には、同期化回路１３０は、時刻ｔ２におけるクロック信号ＣＬＫ１の立ち上がりエッジで、ライトポインタＰｗの値「２」を取り込み、次の時刻ｔ３におけるクロック信号ＣＬＫ１の立ち上がりエッジで、ライトポインタＰｗｓとして値「２」を出力する。
【００３３】
以後同様にして、同期化回路１３０は、クロック信号ＣＬＫ１の立ち上がりエッジでライトポインタＰｗの各値を取り込み、クロック信号ＣＬＫ１で同期化されたライトポインタＰｗｓとして、「３」，「５」，「７」，「８」，「１０」，「１１」，「１２」，「１４」，「１５」，「１７」の各値をフル／エンプティ判定回路１４０に順次出力する。
【００３４】
一方、リードポインタ生成回路１５０は、周辺デバイスから供給されるリード信号ＲＤに基づきリードポインタＰｒを生成してフル／エンプティ判定回路１４０に出力する。また、リードポインタ生成回路１５０は、リードポインタＰｒとしてリードアドレス信号ＲＡ７〜ＲＡ０をデュアルポートＲＡＭ１１０の第２アクセスポート１１０１に供給する。デュアルポートＲＡＭ１１０は、ライトポインタ生成回路１２０から供給されるライトアドレス信号ＷＡ７〜ＷＡ０で指定される記憶領域に格納されたデータをリードデータＲＤ１５〜ＲＤ０として周辺デバイスに出力する。
【００３５】
上述の第１アクセスポート側でのバスマスタデバイスによるライト動作の進行に従ってライトポインタＰｗの値が増加していくと共に、第２アクセスポート側での周辺デバイスによるリード動作の進行に従って、リードポインタＰｒの値がライトポインタＰｗを追跡するように増加していく。
【００３６】
ここで、本実施形態では、ライトポインタＰｗの値が「１０」に到達したときに、ライトポインタＰｗとリードポインタＰｒとの関係が上述の図２（ａ）に示す関係になったとする。即ち、ライトポインタＰｗが「１０」になった時点で、リードポインタＰｒとの間にはマージンＭに相当する段数の空き領域しかなく、Ｐｗ−Ｐｒ≧Ｎ−Ｍなる条件が満足されているものとする。ただし、本実施形態では、この時点ではフル判定は下されない。
【００３７】
この状態から、時刻ｔ５におけるクロックＣＬＫ１の立ち上がりエッジで、同期化回路１３０は、ライトポインタＰｗの値「１１」を取り込み、これを時刻ｔ６でライトポインタＰｗｓとして出力する。フル／エンプティ判定回路１４０は、ライトポインタＰｗｓの値「１１」とリードポインタＰｒの値とから記憶領域が満杯か否かを判定する。この場合、ライトポインタＰｗとリードポインタＰｒとの間のＦＩＦＯの段数はマージンＭにそうとうする段数以下であるから、フル／エンプティ判定回路１４０はフル判定を下し、時刻ｔ７におけるクロック信号ＣＬＫ１の立ち上がりエッジで、この判定結果を表す判定信号ＪＵＤを出力する。
【００３８】
同期化回路１６０は、時刻ｔ８におけるクロック信号ＣＬＫ０の立ち上がりエッジでウェイト信号ＷＡＴ１を取り込み、次の時刻ｔ９におけるクロック信号ＣＬＫ０の立ち上がりエッジでウェイト信号ＷＡＴをハイレベルにアサートする。これを受けて、外部のバスマスタデバイスは、時刻ｔ１０におけるクロック信号ＣＬＫ０の立ち上がりエッジでライト信号ＷＲをハイレベルにネゲートし、これにより、一連のバーストモードでのライト動作が完了する。
【００３９】
上述のバーストモードでの一連のライド動作において、時刻ｔ７においてフル／エンプティ判定回路１４０がフル判定を出力する以前の時刻ｔ４で、フル判定を下すときの条件（Ｐｗ−Ｐｒ≧Ｎ−Ｍ）が満足されている。しかも、フル判定が下された後の時刻ｔ１０でライト信号ＷＲがネゲートされている。従って、この例では、ライトポインタＰｗの値は「１０」で留めなければならないにもかかわらず、ライトポインタＰｗの値は「１７」まで進んでいる。
【００４０】
しかし、本実施形態によれば、上述のマージンＭを設けているので、フル判定を下す時点で実際のライトポインタＰｗの値が進んでいても、デュアルポートＲＡＭ１１０の記憶領域にはマージンＭに相当する空き領域が存在するため、オーバーフローには至らない。このことから、マージンＭは、ライトポインタＰｗをクロック信号ＣＬＫ１で同期化するためのタイムラグと、同期化されたライトポインタＰｗｓとリードポインタＰｒとからフル判定を下すまでのタイムラグと、フル判定を表す信号をクロック信号ＣＬＫ０で同期化してウェイト信号ＷＡＴをアサートするためのタイムラグと、このウェイト信号ＷＡＴを受けた外部のバスマスタデバイスがライト信号ＷＲをネゲートするまでのタイムラグを考慮して決定される。即ち、マージンＭに相当するＦＩＦＯの段数は、上述のようなタイムラグの合算期間におけるライトポインタＰｗの変化分を考慮し、この変化分に対応する全ライトデータを記憶可能なように設定される。換言すれば、マージンＭは、ライトポインタが生成されてから判定結果が出力されるまでの期間におけるライトポインタの変化分に応じて設定される。
【００４１】
このように、本実施形態では、ライトポインタＰｗをリード用のクロック信号ＣＬＫ１で同期化せずにデュアルポートＲＡＭ１１０に供給することにより、ライト用のクロック信号ＣＬＫ０のサイクル毎のライト動作を可能とし、バーストモードでの高速なライト動作等を実現している。従って、データ転送効率が改善される。一方、ライトポインタＰｗをリード用のクロック信号ＣＬＫ１で同期化したライトポインタＰｗｓを用いてフル判定を行っているため、フル／エンプティ判定回路１４０が入力するライトポインタＰｗｓの値が実際の値と異なり、フル判定に誤差が発生するが、上述のマージンＭを設けてフル判定を行うことにより、オーバーフローを回避している。結局、オーバーフローを招くことなく高速なライト動作を実現している。
【００４２】
また、この例では、クロック信号ＣＬＫ１の周期がクロック信号ＣＬＫ０よりも大きいため、ライトポインタＰｗをクロック信号ＣＬＫ１で同期化して得られるライトポインタＰｗｓの値は連続した値にならない。このこともフル／エンプティ判定回路１４０におけるフル判定の誤差の原因となるが、この誤差が存在したとしても、上述のマージンＭによりオーバーフローには至らない。
【００４３】
このように、本実施形態では、ライトポインタＰｗをライト用のクロック信号ＣＬＫ０に同期させて生成し、リードポインタＰｒをリード用のクロック信号ＣＬＫ１に同期させて生成することによりライト動作およびリード動作を高速化すると共に、そのことに伴うフル判定の誤差をマージンＭによって吸収している。
【００４４】
以上、本発明の実施形態を詳述したが、具体的な構成は本実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述の実施形態では、ライトポインタの生成をクロック信号ＣＬＫ０に同期させ、リードポインタＰｒの生成とフル判定をリード用のクロック信号ＣＬＫ１に同期させるものとしたが、ライトポインタの生成とフル判定をクロック信号ＣＬＫ０に同期させ、リードポインタＰｒの生成をリード用のクロック信号ＣＬＫ１に同期させるものとしてもよい。
【図面の簡単な説明】
【００４５】
【図１】本発明の実施形態に係るＦＩＦＯメモリの構成を示すブロック図である。
【図２】本発明の実施形態に係るフル判定の際のマージンを説明するための説明図である。
【図３】本発明の実施形態に係るＦＩＦＯメモリの動作を説明するためのタイミングチャートである。
【図４】従来技術に係るＦＩＦＯメモリの構成例を示す図である。
【図５】従来技術に係るＦＩＦＯメモリの動作を説明するためのタイミングチャートである。
【符号の説明】
【００４６】
１００；ＦＩＦＯメモリ、１１０；デュアルポートＲＡＭ、１２０；ライトポインタ生成回路、１３０，１６０；同期化回路、１４０；フル／エンプティ判定回路、１５０；リードポインタ生成回路。
【図１】
2007272562.tif 000003
【図２】
2007272562.tif 000004
【図３】
2007272562.tif 000005
【図４】
2007272562.tif 000006
【図５】
2007272562.tif 000007