(57)【特許請求の範囲】
【請求項１】
書込み制御信号が与えられた時に書込みアドレスで指定された記憶領域に書込みデータを記憶するとともに、読出しアドレスで指定された記憶領域に記憶されたデータを読出して出力するメモリと、
前記書込み制御信号が与えられた時に、書込みクロック信号を計数して前記書込みアドレスとして出力する書込みカウンタと、
読出し制御信号が与えられた時に、読出しクロック信号を計数して前記読出しアドレスとして出力する読出しカウンタと、
前記読出しアドレスを前記書込みクロック信号に同期して保持する第１のレジスタと、
前記第１のレジスタに保持された前記読出しアドレスを前記書込みクロック信号に同期して保持する第２のレジスタと、
前記第１及び第２のレジスタにそれぞれ保持された前記読出しアドレスを比較し、一致している時に第１の一致検出信号を出力する第１の一致検出部と、
前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域が有効なデータで満たされているか否かを検出する満検出部と、
前記第１の一致検出信号によって動作が制御され、前記満検出部の検出結果を前記書込みクロック信号に同期して保持し、満信号として出力する第１の出力部と、
前記書込みアドレスを前記読出しクロック信号に同期して保持する第３のレジスタと、
前記第３のレジスタに保持された前記書込みアドレスを前記読出しクロック信号に同期して保持する第４のレジスタと、
前記第３及び第４のレジスタにそれぞれ保持された前記書込みアドレスを比較し、一致している時に第２の一致検出信号を出力する第２の一致検出部と、
前記読出しカウンタから出力された読出しアドレスと前記第４のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域に有効なデータが存在せず空き状態であるか否かを検出する空検出部と、
前記第２の一致検出信号によって動作が制御され、前記空検出部の検出結果を前記読出しクロック信号に同期して保持し、空信号として出力する第２の出力部とを、
備えたことを特徴とする先入れ先出し記憶装置。
【請求項２】
前記満検出部は、前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスの上位複数ビット同士を比較し、前記空検出部は、前記読出しカウンタから出力された読出しアドレスと前記第４のレジスタで保持された前記読出しアドレスの上位複数ビット同士を比較することを特徴とする請求項１記載の先入れ先出し記憶装置。
【請求項３】
書込み制御信号が与えられた時に書込みアドレスで指定された記憶領域に書込みデータを記憶するとともに、読出しアドレスで指定された記憶領域に記憶されたデータを読出して出力するメモリと、
前記書込み制御信号が与えられた時に、書込みクロック信号を計数して前記書込みアドレスとして出力する書込みカウンタと、
読出し制御信号が与えられた時に、読出しクロック信号を計数して前記読出しアドレスとして出力する読出しカウンタと、
前記書込みクロック信号を第１の割合で分周して分周書込みクロック信号を生成する第１の分周部と、
前記書込みアドレスを前記分周書込みクロック信号に同期して保持する第１のレジスタと、
前記読出しカウンタから出力された読出しアドレスと前記第１のレジスタで保持された前記書込みアドレスとを比較し、前記メモリの記憶領域に有効なデータが存在せず空き状態であるか否かを検出する空検出部と、
前記読出しクロック信号を第２の割合で分周して分周読出しクロック信号を生成する第２の分周部と、
前記読出しアドレスを前記分周読出しクロック信号に同期して保持する第２のレジスタと、
前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域が有効なデータで満たされているか否かを検出する満検出部とを、
備えたことを特徴とする先入れ先出し記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、先に書き込んだデータから順番に読み出される先入れ先出し記憶装置（以下、「ＦＩＦＯ」という）に関するものである。
【０００２】
【従来の技術】
図２は、従来のＦＩＦＯの一例を示す構成図である。
このＦＩＦＯは、データを一時的に保持するための随時読み書き可能なメモリ（以下、「ＲＡＭ」という）１を備えている。ＲＡＭ１は、書込み制御端子／ＷＥ（但し、「／」は反転論理を示す）にレベル“Ｌ”の信号が与えられた時に、書込みアドレス端子ＷＡに与えられるアドレス信号に対応する記憶領域に、書込みデータ端子ＷＤに与えられた１ワードのデータが書き込まれるようになっている。またＲＡＭ１は、読出しアドレス端子ＲＡに与えられるアドレス信号に対応する記憶領域のデータを、読出しデータ端子ＲＤに出力する機能を有している。
ＲＡＭ１は、例えば０番地から７番地までの８ワードの記憶容量を有しており、この０番地から７番地までをリング状に循環して使用することにより、最大８ワードのデータを保持することができるようになっている。
【０００３】
このＦＩＦＯは、書込み側の回路に接続するための端子１１，１２，１３，１４を有している。端子１１は書込みデータＷＤＡＴＡが与えられる端子であり、ＲＡＭ１の書込みデータ端子ＷＤに接続されている。端子１２は書込み制御信号／ＷＲＥＱが与えられる端子であり、ＲＡＭ１の書込み制御端子／ＷＥ及び書込みカウンタ１５のイネーブル端子／Ｅに接続されている。
端子１３は書込みクロック信号ＷＣＬＫが与えられる端子であり、書込みカウンタ１５のクロック端子Ｃに接続されている。書込みカウンタ１５は、書込み制御信号／ＷＲＥＱが“Ｌ”の時に、書込みクロック信号ＷＣＬＫの立上がりに同期して書込みアドレスＷＡＤＲを１ずつカウントアップして出力するものであり、その出力側がＲＡＭ１の書込みアドレス端子ＷＡと、満検出部１６の第１の入力側に接続されている。
【０００４】
満検出部１６は、書込みアドレスＷＡＤＲと後述の読出しカウンタ２５から出力される読出しアドレスＲＡＤＲとを比較することにより、ＲＡＭ１の記憶領域がすべて有効なデータで満たされているか否かを検出するものであり、その出力側が端子１４に接続されている。そして、これ以上の書込みを禁止するための満信号ＦＵＬが端子１４から出力されるようになっている。
また、このＦＩＦＯは、読出し側の回路に接続するための端子２１，２２，２３，２４を有している。端子２１は読出しデータＲＤＡＴＡを出力するための端子であり、ＲＡＭ１の読出しデータ端子ＲＤに接続されている。端子２２は読出し制御信号／ＲＲＥＱが与えられる端子であり、読出しカウンタ２５のイネーブル端子／Ｅに接続されている。
【０００５】
端子２３は読出しクロック信号ＲＣＬＫが与えられる端子であり、読出しカウンタ２５のクロック端子Ｃに接続されている。読出しカウンタ２５は、読出し制御信号／ＲＲＥＱが“Ｌ”の時に、読出しクロック信号ＲＣＬＫの立上がりに同期して読出しアドレスＲＡＤＲを１ずつカウントアップして出力するものであり、その出力側がＲＡＭ１の読出しアドレス端子ＲＡと、空検出部２６の第１の入力側と、前述の満検出部１６の第２の入力側とに接続されている。
空検出部２６の第２の入力側には、書込みカウンタ１５の出力側が接続されており、読出しアドレスＲＡＤＲと書込みカウンタ１５から出力される書込みアドレスＷＡＤＲとを比較することにより、ＲＡＭ１の記憶領域がすべて空いているか否かをを検出するものであり、その出力側が端子２４に接続されている。そして、これ以上の読出しを禁止するための空信号ＥＭＰが端子２４から出力されるようになっている。
【０００６】
このようなＦＩＦＯにおいて、書込み制御信号／ＷＲＥＱとして“Ｌ”が与えられ、書込みクロック信号ＷＣＬＫとともに書込みデータＷＤが与えられると、この書込みクロック信号ＷＣＬＫの立上がり毎に、書込みカウンタ１５がカウントアップされる。そして、書込みアドレスＷＡＤＲで指示されたＲＡＭ１の記憶領域に、書込みデータＷＤＡＴＡが記憶される。
また、読出し制御信号／ＲＲＥＱとして“Ｌ”が与えられると、読出しクロック信号ＲＣＬＫの立上がり毎に、読出しカウンタ２５がカウントアップされる。そして、読出しアドレスＲＡＤＲで指示されたＲＡＭ１の記憶領域のデータが、読出しデータＲＤＡＴＡとして出力される。これにより、先に書込まれたデータから順番に読出しが行われる。
【０００７】
ここで、書込み動作が連続し、書込みアドレスＷＡＤＲが読出しカウンタ２５の読出しアドレスＲＡＤＲに追いついてしまうと、満検出部１６から満信号ＦＵＬが出力され、これ以上の書込み動作が禁止される。
一方、読出し動作が連続し、読出しアドレスＲＡＤＲが書込みカウンタ１５の書込みアドレスＷＡＤＲに追いついてしまうと、空検出部２６から空信号ＥＭＰが出力され、これ以上の読出し動作が禁止される。
【０００８】
【発明が解決しようとする課題】
しかしながら、従来のＦＩＦＯでは、次のような課題があった。
端子１１〜１４に接続される書込み側の回路と、端子２１〜２４に接続される読出し側の回路とが、それぞれ周波数及び位相の異なるクロック信号ＷＣＬＫ，ＲＣＬＫで動作する場合、満検出部１６から出力される満信号ＦＵＬ及び空検出部２６から出力される空信号ＥＭＰのパルス幅が極めて狭くなってしまう場合がある。このため、書込み側の回路では満信号ＦＵＬを検出できずに過剰書込みを行ってしまい、読出し側の回路では空信号ＥＭＰを検出できずに過剰読出しを行ってしまうという課題があった。
本発明は、前記従来技術が持っていた課題を解決し、所定のパルス幅を有する満信号ＦＵＬ及び空信号ＥＭＰを出力することができるＦＩＦＯを提供するものである。
【０００９】
【課題を解決するための手段】
前記課題を解決するために、本発明の内の第１の発明はＦＩＦＯにおいて、書込み制御信号が与えられた時に書込みアドレスで指定された記憶領域に書込みデータを記憶するとともに、読出しアドレスで指定された記憶領域に記憶されたデータを読出して出力するメモリと、前記書込み制御信号が与えられた時に、書込みクロック信号を計数して前記書込みアドレスとして出力する書込みカウンタと、読出し制御信号が与えられた時に、読出しクロック信号を計数して前記読出しアドレスとして出力する読出しカウンタと、次のような第１及び第２のレジスタと、第１の一致検出部と、満検出部と、第１の出力部と、第３及び第４のレジスタと、第２の一致検出部と、空検出部と、第２の出力部とを備えている。
【００１０】
第１のレジスタは、前記読出しアドレスを前記書込みクロック信号に同期して保持するものであり、第２のレジスタは、前記第１のレジスタに保持された前記読出しアドレスを前記書込みクロック信号に同期して保持するものである。第１の一致検出部は、前記第１及び第２のレジスタにそれぞれ保持された前記読出しアドレスを比較し、一致している時に第１の一致検出信号を出力するものである。満検出部は、前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域が有効なデータで満たされているか否かを検出するものである。第１の出力部は、前記第１の一致検出信号によって動作が制御され、前記満検出部の検出結果を前記書込みクロック信号に同期して保持し、満信号として出力するものである。
【００１１】
第３のレジスタは、前記書込みアドレスを前記読出しクロック信号に同期して保持するものであり、第４のレジスタは、前記第３のレジスタに保持された前記書込みアドレスを前記読出しクロック信号に同期して保持するものである。第２の一致検出部は、前記第３及び第４のレジスタにそれぞれ保持された前記書込みアドレスを比較し、一致している時に第２の一致検出信号を出力するものである。空検出部は、前記読出しカウンタから出力された読出しアドレスと前記第４のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域に有効なデータが存在せず空き状態であるか否かを検出するものである。そして、第２の出力部は、前記第２の一致検出信号によって動作が制御され、前記空検出部の検出結果を前記読出しクロック信号に同期して保持し、空信号として出力するものである。
【００１２】
第２の発明は、第１の発明のＦＩＦＯにおける満検出部を、前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスの上位複数ビット同士を比較するように構成し、空検出部を、前記読出しカウンタから出力された読出しアドレスと前記第４のレジスタで保持された前記読出しアドレスの上位複数ビット同士を比較するように構成している。
第１及び第２の発明によれば、以上のようにＦＩＦＯを構成したので、次のような作用が行われる。
書込みクロック信号は、書込みカウンタで計数されて書込みアドレスが生成される。データは書込みアドレスに基づいてメモリに順次格納される。また、読出しクロック信号は、読出しカウンタで計数されて読出しアドレスが生成され、この読出しアドレスに基づいてメモリからデータが順次読み出される。
【００１３】
一方、読出しアドレスは、第１及び第２のレジスタによって書込みクロック信号に同期して順次保持され、これらの第１及び第２のレジスタの保持内容が一致していると、第１の一致検出部から第１の一致検出信号が出力される。第２のレジスタの保持内容と書込みアドレスとが満検出部で比較され、その比較結果は、第１の一致検出信号が出力されているときに、書込みクロック信号に同期して第１の出力部で保持され、満信号として出力される。
また、書込みアドレスは、第３及び第４のレジスタによって読出しクロック信号に同期して順次保持され、これらの第３及び第４のレジスタの保持内容が一致していると、第２の一致検出部から第２の一致検出信号が出力される。第４のレジスタの保持内容と読出しアドレスとが空検出部で比較され、その比較結果は、第２の一致検出信号が出力されているときに、読出しクロック信号に同期して第２の出力部で保持され、空信号として出力される。
【００１４】
第３の発明は、ＦＩＦＯにおいて、第１の発明と同様のメモリと、書込みカウンタと、読出しカウンタと、前記書込みクロック信号を第１の割合で分周して分周書込みクロック信号を生成する第１の分周部と、前記書込みアドレスを前記分周書込みクロック信号に同期して保持する第１のレジスタと、前記読出しカウンタから出力された読出しアドレスと前記第１のレジスタで保持された前記書込みアドレスとを比較し、前記メモリの記憶領域に有効なデータが存在せず空き状態であるか否かを検出する空検出部と、次のような第２の分周部と、第２のレジスタと、満検出部とを備えている。
第２の分周部は、前記読出しクロック信号を第２の割合で分周して分周読出しクロック信号を生成するものである。第２のレジスタは、前記読出しアドレスを前記分周読出しクロック信号に同期して保持するものである。そして、満検出部は、前記書込みカウンタから出力された書込みアドレスと前記第２のレジスタで保持された前記読出しアドレスとを比較し、前記メモリの記憶領域が有効なデータで満たされているか否かを検出するものである。
【００１５】
第３の発明によれば、次のような作用が行われる。
メモリに対するデータの書込み及び読出し動作は第１の発明と同様である。
一方、第１の分周部において書込みクロック信号が分周されて分周書込みクロックが生成され、これに同期して書込みアドレスが第１のレジスタに保持される。第１のレジスタの保持内容と読出しアドレスとが空検出部で比較され、メモリの空状態が検出される。
また、第２の分周部において読出しクロック信号が分周されて分周読出しクロックが生成され、これに同期して読出しアドレスが第２のレジスタに保持される。第２のレジスタの保持内容と書込みアドレスとが満検出部で比較され、メモリの満状態が検出される。
【００２０】
【発明の実施の形態】
第１の実施形態
図１は、本発明の第１の実施形態を示すＦＩＦＯの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
このＦＩＦＯは、図２のＦＩＦＯと同様に、データを一時的に保持するためのＲＡＭ１を備えている。ＲＡＭ１は、書込み制御端子／ＷＥにレベル“Ｌ”の信号が与えられた時に、書込みアドレス端子ＷＡに与えられる書込みアドレスＷＡＤＲに対応する記憶領域に、書込みデータ端子ＷＤに与えられた１ワードのデータが書込まれるようになっている。またＲＡＭ１は、読出しアドレス端子ＲＡに与えられる読出しアドレスＲＡＤＲに対応する記憶領域のデータを、読出しデータ端子ＲＤに出力する機能を有している。ＲＡＭ１は、例えば０番地から７番地までの８ワードの記憶容量を有しており、この０番地から７番地までをリング状に循環して使用することにより、最大８ワードのデータを保持することができるようになっている。
また、このＦＩＦＯは書込み側の回路に接続するための端子１１，１２，１３，１４と、読出し側の回路に接続するための端子２１，２２，２３，２４とを有している。
【００２１】
端子１１は書込みデータＷＤＡＴＡが与えられる端子であり、ＲＡＭ１の書込みデータ端子ＷＤに接続されている。端子１２は書込み制御信号／ＷＲＥＱが与えられる端子であり、ＲＡＭ１の書込み制御端子／ＷＥ及び書込みカウンタ１５のイネーブル端子／Ｅに接続されている。端子１３は書込みクロック信号ＷＣＬＫが与えられる端子であり、書込みカウンタ１５のクロック端子Ｃに接続されている。
書込みカウンタ１５は、書込み制御信号／ＷＲＥＱが“Ｌ”の時に、書込みクロック信号ＷＣＬＫの立上がりに同期して書込みアドレスＷＡＤＲを１ずつカウントアップして出力するものであり、その出力側がＲＡＭ１の書込みアドレス端子ＷＡ、及び満検出部１６の第１の入力側に接続されている。満検出部１６は、書込みアドレスＷＡＤＲと後述のレジスタ３２の値Ｒ２とを比較することにより、ＲＡＭ１の記憶領域が有効なデータで満たされているか否かを検出するものである。
【００２２】
端子２１は読出しデータＲＤＡＴＡを出力するための端子であり、ＲＡＭ１の読出しデータ端子ＲＤに接続されている。端子２２は読出し制御信号／ＲＲＥＱが与えられる端子であり、読出しカウンタ２５のイネーブル端子／Ｅに接続されている。端子２３は読出しクロック信号ＲＣＬＫが与えられる端子であり、読出しカウンタ２５のクロック端子Ｃに接続されている。
読出しカウンタ２５は、読出し制御信号／ＲＲＥＱが“Ｌ”の時に、読出しクロック信号ＲＣＬＫの立上がりに同期して読出しアドレスＲＡＤＲを１ずつカウントアップして出力するものであり、その出力側がＲＡＭ１の読出しアドレス端子ＲＡ、及び空検出部２６の第１の入力側に接続されている。空検出部２６は、読出しアドレスＲＡＤＲと後述のレジスタ３６の値Ｗ２とを比較することによってＲＡＭ１の記憶領域に有効なデータが存在せず、空き状態であることを検出するものである。
【００２３】
このＦＩＦＯには、レジスタ３１，３２、一致検出部３３、及び出力部（例えば、フリップフロップ、以下、「ＦＦ」という）３４が追加されている。
レジスタ３１の入力側には読出しカウンタ２５からの読出しアドレスＲＡＤＲが与えられるようになっている。レジスタ３１の出力側にはレジスタ３２の入力側が接続され、このレジスタ３２の出力側が満検出部１６の第２の入力側に接続されている。レジスタ３１，３２のクロック端子Ｃは端子１３に接続されており、書込みクロック信号ＷＣＬＫの立上がりに同期して入力側のデータを保持し、それぞれ保持した値Ｒ１，Ｒ２を出力する機能を有している。
レジスタ３１，３２の出力側には、一致検出部３３が接続されている。一致検出部３３は、２つのレジスタ３１，３２から出力される値Ｒ１，Ｒ２が一致しているときに、ＦＦ３４のイネーブル端子Ｅに一致検出信号ＥＱ１を出力するものである。ＦＦ３４のデータ端子Ｄは，満検出部１６の出力側に接続され、クロック端子Ｃには書込みクロック信号ＷＣＬＫが与えられるようになっている。そして、ＦＦ３４の出力端子Ｑが端子１４に接続され、この端子１４から書込みを禁止するための満信号ＦＵＬが出力されるようになっている。
【００２４】
更に、このＦＩＦＯには、レジスタ３５，３６、一致検出部３７、及び出力部（例えば、ＦＦ）３８が追加されている。
レジスタ３５の入力側には書込みカウンタ１５からの書込みアドレスＷＡＤＲが与えられるようになっている。レジスタ３５の出力側にはレジスタ３６の入力側が接続され、このレジスタ３６の出力側が空検出部２６の第２の入力側に接続されている。レジスタ３５，３６のクロック端子Ｃは端子２３に接続されており、読出しクロック信号ＲＣＬＫの立上がりに同期して入力側のデータを保持し、それぞれ保持した値Ｗ１，Ｗ２を出力する機能を有している。
レジスタ３５，３６の出力側には、一致検出部３７が接続されている。一致検出部３７は、２つのレジスタ３５，３６から出力される値Ｗ１，Ｗ２が一致しているときに、ＦＦ３８のイネーブル端子Ｅに一致検出信号ＥＱ２を出力するものである。ＦＦ３８のデータ端子Ｄは、空検出部２６の出力側に接続され、クロック端子Ｃには読出しクロック信号ＲＣＬＫが与えられるようになっている。そして、ＦＦ３８の出力端子Ｑが端子２４に接続され、この端子２４から読出しを禁止するための空信号ＥＭＰが出力されるようになっている。
【００２５】
図３は、図１の動作シーケンスの一例を示すタイムチャートである。この図３を参照しつつ、図１の動作を説明する。
図３の時刻ｔ０において、各カウンタ１５，２５、及び各レジスタ３１，３２，３５，３６はリセット状態ですべの値が０であり、また、書込み制御信号／ＷＲＥＱ及び読出し制御信号／ＲＲＥＱは“Ｈ”であるとする。このとき、空検出部２６の出力信号ＥＭは“Ｈ”であり、空信号ＥＭＰは“Ｈ”となっている。
時刻ｔ１において、書込み制御信号／ＷＲＥＱが“Ｌ”に変化すると、端子１１に与えられた書込みデータＷＤＡＴＡが、ＲＡＭ１の０番地に書込まれる。
時刻ｔ２において、書込みクロック信号ＷＣＬＫの立上がりに引続いて、書込み制御信号／ＷＲＥＱが“Ｈ”になると、書込みカウンタ１５の値は１となり、次の書込みアドレスＷＡＤＲは１番地となる。
【００２６】
時刻ｔ３における読出しクロック信号ＲＣＬＫの立上がりで、レジスタ３５の値Ｗ１は１となる。更に、時刻ｔ４における読出しクロック信号ＲＣＬＫの立上がりで、レジスタ３５，３６の値Ｗ１，Ｗ２はいずれも１となり、一致検出部３７の一致検出信号ＥＱ２は“Ｈ”となる。また、空検出部２６の出力信号ＥＭは“Ｌ”となる。
時刻ｔ５における読出しクロック信号ＲＣＬＫの立上がりで、ＦＦ３８から出力される空信号ＥＭＰは“Ｌ”となる。
時刻ｔ６において書込み制御信号／ＷＲＥＱが“Ｌ”になり、続いて時刻ｔ７において書込みクロック信号ＷＣＬＫが立上がると、書込みデータＷＤＡＴＡがＲＡＭ１の１番地に書込まれて書込みアドレスＷＡＤＲは２となる。
【００２７】
同様に、時刻ｔ８，ｔ９，…，ｔ１２，ｔ１３における書込みクロック信号ＷＣＬＫの立上がり毎に、書込みアドレスＷＡＤＲは順次３，４，…，７，０となる。一方、読出しカウンタ２５から出力される読出しアドレスＲＡＤＲは０のまま変化していないので、一致検出部３３の一致検出信号ＥＱ１は“Ｈ”であり、時刻ｔ１３において、書込みクロック信号ＷＣＬＫの立上がりに同期して書込みアドレスＷＡＤＲが０となったときに、ＦＦ３４から出力される満信号ＦＵＬは、“Ｈ”となり、これ以上の書込み動作が禁止される。
その後、読出し制御信号／ＲＲＥＱを“Ｌ”にすることにより、ＲＡＭ１に記憶されたデータは、読出しクロック信号ＲＣＬＫに同期して、０番地から７番地の順に、即ち、先に書込まれたデータから順次読出される。
【００２８】
以上のように、この第１の実施形態のＦＩＦＯは、読出しアドレスＲＡＤＲを書込みクロック信号ＷＣＬＫに同期して保持するためのレジスタ３１，３２、及びこれらのレジスタ３１，３２の値の一致を検出する一致検出部３３を有している。これにより、書込みクロック信号ＷＣＬＫのタイミングで読出しアドレスＲＡＤＲを確実に保持することができる。そして、レジスタ３２で保持した値Ｒ２（即ち、読出しアドレスＲＡＤＲ）と書込みアドレスＷＡＤＲとを、書込み側の書込みクロック信号ＷＣＬＫのタイミングで比較して満信号ＦＵＬを出力するための、満検出部１６及びＦＦ３４を有している。これにより、書込み側の回路で確実に満信号ＦＵＬを検出することができる。
【００２９】
更にこのＦＩＦＯは、書込みアドレスＷＡＤＲを読出しクロック信号ＲＣＬＫに同期して保持するためのレジスタ３５，３６、及びこれらのレジスタ３５，３６の値の一致を検出する一致検出部３７を有している。これにより、読出しクロック信号ＲＣＬＫのタイミングで書込みアドレスＷＡＤＲを確実に保持することができる。そして、レジスタ３６で保持した値Ｗ２（即ち、書込みアドレスＷＡＤＲ）と読出しアドレスＲＡＤＲとを、読出し側の読出しクロック信号ＲＣＬＫのタイミングで比較して空信号ＥＭＰを出力するための、空検出部２６及びＦＦ３８を有している。これにより、読出し側の回路で確実に空信号ＥＭＰを検出することができるという利点がある。
【００３０】
第２の実施形態
図４は、本発明の第２の実施形態を示すＦＩＦＯの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
このＦＩＦＯは、図２のＦＩＦＯと同様に、データを一時的に保持するためのＲＡＭ１、書込み側の回路に接続するための端子１１，１２，１３，１４、書込みカウンタ１５、満検出部１６、読出し側の回路に接続するための端子２１，２２，２３，２４、読出しカウンタ２５、及び空検出部２６を有している。
このＦＩＦＯには、書込みクロック信号ＷＣＬＫを分周した周波数で書込みアドレスＷＡＤＲを保持して、空検出部２６に与えるための分周部４１、及びレジスタ４２が追加されている。
分周部４１は、例えば２桁の２進カウンタ４１ａと２入力の論理積ゲート（以下、「ＡＮＤ」という）４１ｂとで構成されている。カウンタ４１ａのクロック端子Ｃは、端子１３に接続されて書込みクロック信号ＷＣＬＫが与えられるようになっている。カウンタ４１ａの２桁の出力信号は、ＡＮＤ４１ｂの入力側に与えられている。ＡＮＤ４１ｂの出力側は、レジスタ４２のクロック端子Ｃに接続されている。レジスタ４２の入力側は書込みカウンタ１５の出力側に、出力側は空検出部２６の第２の入力側にそれぞれ接続されている。
【００３１】
更に、このＦＩＦＯには、読出しクロック信号ＲＣＬＫを分周した周波数で読出しアドレスＲＡＤＲを保持して、満検出部１６に与えるための分周部４３、及びレジスタ４４が追加されている。
分周部４３は、分周部４１と同様に、２桁の２進カウンタ４３ａと２入力のＡＮＤ４３ｂとで構成されている。カウンタ４３ａのクロック端子Ｃは、端子２３に接続されて読出しクロック信号ＲＣＬＫが与えられるようになっている。カウンタ４３ａの出力側はＡＮＤ４３ｂの入力側に接続され、このＡＮＤ４３ｂの出力側がレジスタ４４のクロック端子Ｃに接続されている。レジスタ４４の入力側は読出しカウンタ２５の出力側に、出力側は満検出部１６の第２の入力側にそれぞれ接続されている。
その他の構成は図２と同様であり、ほぼ同様の動作が行われる。但し、書込みカウンタ１５の書込みアドレスＷＡＤＲが直ちに空検出部２６に与えられるのではなく、書込みクロック信号ＷＣＬＫの４サイクルに１回の割合でレジスタ４２に保持され、このレジスタ４２を介して空検出部２６に与えられる。また、読出しカウンタ２５の読出しアドレスＲＡＤＲも、同様に、読出しクロック信号ＲＣＬＫの４サイクルに１回の割合でレジスタ４４に保持され、このレジスタ４４を介して満検出部１６に与えられる。
【００３２】
以上のように、この第２の実施形態のＦＩＦＯは、書込みクロック信号ＷＣＬＫを１／４に分周し、４サイクルに１回の割合で書込みアドレスＷＡＤＲを保持して空検出部２６に与えるために分周部４１とレジスタ４２を備えている。これにより、レジスタ４２の内容は書込みクロック信号ＷＣＬＫの４クロックの間変化しないので、読出し側の回路で確実に空信号ＥＭＰを検出することができる。更に、読出しクロック信号ＲＣＬＫを１／４に分周し、４サイクルに１回の割合で読出しアドレスＲＡＤＲを保持して満検出部１６に与えるために分周部４３とレジスタ４４を備えている。これにより、レジスタ４４の内容は４クロックの間変化しないので、書込み側の回路で確実に満信号ＦＵＬを検出することができるという利点がある。
【００３３】
第３の実施形態
図５は、本発明の第３の実施形態を示すＦＩＦＯの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
このＦＩＦＯは、図２のＦＩＦＯと同様に、データを一時的に保持するためのＲＡＭ１、書込み側の回路に接続するための端子１１，１２，１３，１４、書込みカウンタ１５、満検出部１６、読出し側の回路に接続するための端子２１，２２，２３，２４、読出しカウンタ２５、及び空検出部２６を有している。
このＦＩＦＯには、読出しカウンタ２５の読出しアドレスＲＡＤＲを一旦保持して満検出部１６に与えるためのレジスタ５１、このレジスタ５１を制御するための制御部（例えば、レジスタ制御部）５２、書込みカウンタ１５の書込みアドレスＷＡＤＲを一旦保持して空検出部２６に与えるためのレジスタ５３、及びこのレジスタ５３を制御するための制御部（例えば、レジスタ制御部）５４が追加されている。
【００３４】
レジスタ制御部５２は、セットリセット型のＦＦ５２ａ、及び遅延型のＦＦ５２ｂで構成されている。ＦＦ５２ａのセット端子／Ｓは端子２２に接続され、読出し制御信号／ＲＲＥＱが与えられるようになっている。ＦＦ５２ａの出力端子ＱはＦＦ５２ｂのデータ端子Ｄに接続されている。ＦＦ５２ｂの出力端子Ｑは、ＦＦ５２ａのリセット端子Ｒとレジスタ５１のイネーブル端子Ｅに接続されている。また、レジスタ５１とＦＦ５２ｂのクロック端子Ｃは端子１３に接続され、書込みクロック信号ＷＣＬＫが与えられるようになっている。そして、レジスタ５１の出力側が、満検出部１６の第２の入力側に接続されている。
同様に、レジスタ制御部５４は、セットリセット型のＦＦ５４ａ、及び遅延型のＦＦ５４ｂで構成されている。ＦＦ５４ａのセット端子／Ｓは端子１２に接続され、書込み制御信号／ＷＲＥＱが与えられるようになっている。ＦＦ５４ａの出力端子ＱはＦＦ５４ｂのデータ端子Ｄに接続されている。ＦＦ５４ｂの出力端子Ｑは、ＦＦ５４ａのリセット端子Ｒとレジスタ５３のイネーブル端子Ｅに接続されている。また、レジスタ５３とＦＦ５４ｂのクロック端子Ｃは端子１３に接続され、読出しクロック信号ＲＣＬＫが与えられるようになっている。そして、レジスタ５３の出力側が、空検出部２６の第２の入力側に接続されている。
【００３５】
次に動作を説明する。
書込み側の回路からの書込み要求により、書込みデータＷＤＡＴＡとともに書込み制御信号／ＷＲＥＱとして“Ｌ”が与えられると、書込みカウンタ１５の書込みアドレスＷＡＤＲで指定されるＲＡＭ１のアドレスに、書込みデータＷＤＡＴＡが格納される。更に、書込みカウンタ１５の書込みアドレスＷＡＤＲが１だけ増加され、この書込みアドレスＷＡＤＲが、次に書込むべきＲＡＭ１のアドレスとして出力される。次に、書込み制御信号／ＷＲＥＱによってＦＦ５４ａがセットされ、このＦＦ５４ａの出力信号は“Ｈ”となり、ＦＦ５４ｂに与えられる。ＦＦ５４ａの出力信号は、読出しクロック信号ＲＣＬＫのタイミングに従ってＦＦ５４ｂに保持される。ＦＦ５４ｂの出力信号は、ＦＦ５４ａに対するリセット信号として戻されるとともに、レジスタ５３のイネーブル端子Ｅに与えられ、このレジスタ５３は動作可能な状態となる。レジスタ５３には、書込みアドレスＷＡＤＲが読出しクロック信号ＲＣＬＫに同期して格納され、このレジスタ５３の値と読出しカウンタ２５の読出しアドレスＲＡＤＲとが空検出部２６によって比較されて、空状態か否かが判定される。
【００３６】
一方、読出し側の回路からの読出し要求により、読出し制御信号／ＲＲＥＱとして“Ｌ”が与えられると、読出しカウンタ２５の読出しアドレスＲＡＤＲで指定されるＲＡＭ１のアドレスから、読出しデータＲＤＡＴＡが出力される。更に、読出しカウンタ２５の読出しアドレスＲＡＤＲが１だけ増加され、この読出しアドレスＲＡＤＲが、次に読出すべきＲＡＭ１のアドレスとして出力される。次に、読出し制御信号／ＲＲＥＱによってＦＦ５２ａがセットされ、このＦＦ５２ａの出力信号は“Ｈ”となり、ＦＦ５２ｂに与えられる。ＦＦ５２ａの出力信号は、書込みクロック信号ＷＣＬＫのタイミングに従ってＦＦ５２ｂに保持される。ＦＦ５２ｂの出力信号は、ＦＦ５２ａに対するリセット信号として戻されるとともに、レジスタ５１のイネーブル端子Ｅに与えられ、このレジスタ５１は動作可能な状態となる。レジスタ５１には、読出しアドレスＲＡＤＲが書込みクロック信号ＷＣＬＫに同期して格納され、このレジスタ５１の値と書込みカウンタ１５の書込みアドレスＷＡＤＲとが満検出部１６によって比較され、満状態か否かが判定される。
【００３７】
以上のように、この第３の実施形態のＦＩＦＯは、読出しアドレスＲＡＤＲを書込みクロック信号ＷＣＬＫに同期して保持して満検出部１５へ与えるためのレジスタ５１及びレジスタ制御部５２を有している。これにより、書込み側の回路で確実に満信号ＦＵＬを検出することができる。更に、書込みアドレスＷＡＤＲを読出しクロック信号ＲＣＬＫに同期して保持して空検出部２５へ与えるためのレジスタ５３及びレジスタ制御部５４を有している。これにより、読出し側の回路で確実に空信号ＥＭＰを検出することができるという利点がある。
【００３８】
第４の実施形態
図６は、本発明の第４の実施形態を示すＦＩＦＯの構成図であり、図２中の要素と共通の要素には共通の符号が付されている。
このＦＩＦＯは、図２のＦＩＦＯと同様に、データを一時的に保持するためのＲＡＭ１、書込み側の回路に接続するための端子１１，１２，１３，１４、書込みカウンタ１５、満検出部１６、読出し側の回路に接続するための端子２１，２２，２３，２４、読出しカウンタ２５、及び空検出部２６を有している。
このＦＩＦＯには、書込みクロック信号ＷＣＬＫを読出し制御信号／ＲＲＥＱに従ってカウントして満検出部１６へ与えるためのカウンタ６１とこのカウンタ６１を制御する制御部（例えば、カウント制御部）６２、及び読出しクロック信号ＲＣＬＫを書込み制御信号／ＷＲＥＱに従ってカウントして空検出部２６へ与えるためのカウンタ６３とこのカウンタ６３を制御する制御部（例えば、カウント制御部）６４が追加されている。
【００３９】
カウント制御部６２は、遅延型のＦＦ６２ａ、インバータ６２ｂ、及び２入力のＡＮＤ６２ｃで構成されている。カウンタ６１及びＦＦ６２ａのクロック端子Ｃは端子１３に接続され、書込みクロック信号ＷＣＬＫが与えられるようになっている。また、ＦＦ６２ａのデータ端子Ｄとインバータ６２ｂの入力側は端子２２に接続され、読出し制御信号／ＲＲＥＱが与えられるようになっている。ＡＮＤ６２ｃの出力側はカウンタ６１のイネーブル端子Ｅに接続され、このカウンタ６１の出力側が満検出部１６の第２の入力側に接続されている。
同様に、カウント制御部６４は、遅延型のＦＦ６４ａ、インバータ６４ｂ、及び２入力のＡＮＤ６４ｃで構成されている。カウンタ６３及びＦＦ６４ａのクロック端子Ｃは端子２３に接続され、読出しクロック信号ＲＣＬＫが与えられるようになっている。また、ＦＦ６４ａのデータ端子Ｄとインバータ６４ｂの入力側は端子１２に接続され、書込み制御信号／ＷＲＥＱが与えられるようになっている。ＡＮＤ６４ｃの出力側はカウンタ６３のイネーブル端子Ｅに接続され、このカウンタ６３の出力側が空検出部２６の第２の入力側に接続されている。
【００４０】
次に動作を説明する。
書込み側の回路からの書込み要求により、書込みデータＷＤＡＴＡとともに書込み制御信号／ＷＲＥＱとして“Ｌ”が与えられると、書込みカウンタ１５の書込みアドレスＷＡＤＲで指定されるＲＡＭ１のアドレスに、書込みデータＷＤＡＴＡが格納される。更に、書込みカウンタ１５の書込みアドレスＷＡＤＲが１だけ増加され、この書込みアドレスＷＡＤＲが、次に書込むべきＲＡＭ１のアドレスとして出力される。
書込み制御信号／ＷＲＥＱは、カウント制御部６４を介してカウンタ６３のイネーブル端子Ｅに与えられ、このカウンタ６３が動作可能な状態に制御される。これにより、カウンタ６３において読出しクロック信号ＲＣＬＫに同期したカウント動作が行われる。カウンタ６３のカウント値ＲＣＮＴと読出しカウンタ２５の読出しアドレスＲＡＤＲとが空検出部２６で比較され、空状態か否かが判定される。
【００４１】
一方、読出し側の回路からの読出し要求により、読出し制御信号／ＲＲＥＱとして“Ｌ”が与えられると、読出しカウンタ２５の読出しアドレスＲＡＤＲで指定されるＲＡＭ１のアドレスから、読出しデータＲＤＡＴＡが出力される。更に、読出しカウンタ２５の読出しアドレスＲＡＤＲが１だけ増加され、この読出しアドレスＲＡＤＲが、次に読出すべきＲＡＭ１のアドレスとして出力される。
読出し制御信号／ＲＲＥＱは、カウント制御部６２を介してカウンタ６１のイネーブル端子Ｅに与えられ、このカウンタ６１が動作可能な状態に制御される。これにより、カウンタ６１において書込みクロック信号ＷＣＬＫに同期したカウント動作が行われる。カウンタ６１のカウント値ＷＣＮＴと書込みカウンタ１５の書込みアドレスＷＡＤＲとが満検出部１６で比較され、満状態か否かが判定される。
【００４２】
以上のように、この第４の実施形態のＦＩＦＯは、書込み制御信号／ＷＲＥＱで制御されて読出しクロック信号ＲＣＬＫをカウントするためのカウント制御部６４とカウンタ６３を有している。これにより、読出し側の回路で確実に空信号ＥＭＰを検出することができる。更に、読出し制御信号／ＲＲＥＱで制御されて書込みクロック信号ＷＣＬＫをカウントするためのカウント制御部６２とカウンタ６１を有している。これにより、書込み側の回路で確実に満信号ＦＵＬを検出することができるという利点がある。
【００４３】
なお、本発明は、上記実施形態に限定されず、種々の変形が可能である。この変形例としては、例えば、次の（ａ）〜（ｆ）のようなものがある。
（ａ）  ＲＡＭ１の記憶容量は８ワードに限定されない。記憶容量を大きくすれば、満状態や空状態になることが少ないので、スムーズな入出力動作が可能になる。
（ｂ）  満検出部１６及び空検出部２６では、書込みアドレスＷＡＤＲと、読出しアドレスＲＡＤＲの全桁を比較するようになっているが、記憶容量が大きい場合には、必ずしも全桁を比較する必要はなく、上位の複数ビット同士を比較するようにしても良い。
【００４４】
（ｃ）  分周部４１，４３の分周比は、１／４に限定されない。また、分周部４１，４３の分周比は同一である必要はない。書込みクロック信号ＷＣＬＫ及び読出しクロック信号ＲＣＬＫの周波数に応じて適切な値を設定することができる。
（ｄ）  分周部４１，４３の構成は、図４に示した回路の限定されず、設定した分周比に応じた回路構成にする必要がある。
（ｅ）  レジスタ制御部５２，５４の構成は、図５に示した回路の限定されない。読出し制御信号／ＲＲＥＱまたは書込み制御信号／ＷＲＥＱを保持して、書込みクロック信号ＷＣＬＫまたは読出しクロック信号ＲＣＬＫに同期して、レジスタ５１，５３の動作を制御することができる回路であれば、どのような構成でも適用可能である。
（ｆ）  カウント制御部６２，６４の構成は、図６に示した回路の限定されない。書込みクロック信号ＷＣＬＫまたは読出しクロック信号ＲＣＬＫに同期して読出し制御信号／ＲＲＥＱまたは書込み制御信号／ＷＲＥＱを保持して、カウンタ６１，６３の動作を制御することができる回路であれば、どのような構成でも適用可能である。
【００４５】
【発明の効果】
以上詳細に説明したように、第１の発明によれば、書込みクロック信号に同期して順次読出しアドレスを保持する第１及び第２のレジスタと、これらの第１及び第２のレジスタの保持内容の一致を検出する第１の一致検出部と、第１の一致検出信号と書込みクロック信号に従って満検出部の出力信号を保持して満信号として出力する第１の出力部を有している。これにより、書込み側の回路で安定して満信号を検知することが可能になり、過剰書込み等の誤動作がなくなる。
また、読出しクロック信号に同期して順次書込みアドレスを保持する第３及び第４のレジスタと、これらの第３及び第４のレジスタの保持内容の一致を検出する第２の一致検出部と、第２の一致検出信号と読出しクロック信号に従って空検出部の出力信号を保持して空信号として出力する第２の出力部を有している。これにより、読出し側の回路で安定して空信号を検知することが可能になり、過剰読出し等の誤動作がなくなる。
【００４６】
第２の発明によれば、満検出部及び空検出部は、書込みアドレスと読出しアドレスの上位の複数ビット同士を比較して、満状態または空状態を検出するように構成されている。これにより、メモリの記憶領域か大きい場合には、第１の発明とほぼ同様の効果が得られるとともに、回路の簡素化が可能になる。
第３の発明によれば、書込みクロック信号を分周して分周書込みクロックを生成する第１の分周部と、これに同期して書込みアドレスを保持する第１のレジスタと、該第１のレジスタの保持内容と読出しアドレスとを比較してメモリの空状態を検出する空検出部を有している。また、読出しクロック信号を分周して分周読出しクロックを生成する第２の分周部と、これに同期して読出しアドレスを保持する第２のレジスタと、該第２のレジスタの保持内容と書込みアドレスとを比較してメモリの満状態を検出する満検出部を有している。これにより、第１の発明と同様の効果がある。
【図面の簡単な説明】
【図１】本発明の第１の実施形態を示すＦＩＦＯの構成図である。
【図２】従来のＦＩＦＯの構成図である。
【図３】図１の動作シーケンスの一例を示すタイムチャートである。
【図４】本発明の第２の実施形態を示すＦＩＦＯの構成図である。
【図５】本発明の第３の実施形態を示すＦＩＦＯの構成図である。
【図６】本発明の第４の実施形態を示すＦＩＦＯの構成図である。
【符号の説明】
１                        ＲＡＭ
１５                      書込みカウンタ
１６                      満検出部
２５                      読出しカウンタ
２６                      空検出部
３１，３２，３５，３６    レジスタ
３３，３７                一致検出部
３４，３８                ＦＦ（フリップフロップ）
４１，４３                分周部
４２，４４，５１，５３    レジスタ
５２，５４                レジスタ制御部
６１，６３                カウンタ
６２，６４                カウント制御部
ＥＭＰ                    空信号
ＦＵＬ                    満信号
ＲＣＬＫ                  読出しクロック信号
ＷＣＬＫ                  書込みクロック信号
／ＲＲＥＱ                読出し制御信号
／ＷＲＥＱ                書込み制御信号
【図１】
0003998314.tif 000002
【図２】
0003998314.tif 000003
【図３】
0003998314.tif 000004
【図４】
0003998314.tif 000005
【図５】
0003998314.tif 000006
【図６】
0003998314.tif 000007