(57)【特許請求の範囲】
【請求項１】
書き込みクロックの周波数が読み出しクロックの周波数よりも高い場合に用いられるＦＩＦＯメモリ制御回路であって、
書き込みアドレスを発生する書き込みアドレス発生回路と、
読み出しアドレスを発生する読み出しアドレス発生回路と、
所定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、
該読み出しアドレスの最下位ビットと該書き込みクロックに基づいて、カウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路と、
該カウントアップイネーブル信号として該書き込み許可信号がアサートされているときに、該書き込みクロックに同期してカウントアップし、該カウントダウンイネーブル信号がアサートされているときに、該書き込みクロックに同期してカウントダウンするアップダウンカウンタとを備え、
該カウントダウンイネーブル信号生成回路は、該読み出しアドレスの最下位ビットの値を該書き込みクロックのタイミングで取り込んで出力する第１フリップフロップと、該第１フリップフロップからのデータ出力を該書き込みクロックのタイミングで取り込んで出力する第２フリップフロップと、該第１フリップフロップのデータ出力と該第２フリップフロップのデータ出力の排他的論理和をとって該カウントダウンイネーブル信号として出力する第１排他的論理和手段とを有しているＦＩＦＯメモリ制御回路。
【請求項２】
前記カウントダウンイネーブル信号の周期は、前記書き込みクロックの１周期分である請求項１に記載のＦＩＦＯメモリ制御回路。
【請求項３】
読み出しクロックの周波数が書き込みクロックの周波数よりも高い場合に用いられるＦＩＦＯメモリ制御回路であって、
書き込みアドレスを発生する書き込みアドレス発生回路と、
読み出しアドレスを発生する読み出しアドレス発生回路と、
所定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、
該書き込みアドレスの最下位ビットと該読み出しクロックに基づいて、カウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路と、
該カウントアップイネーブル信号がアサートされているときに、該読み出しクロックに同期してカウントアップし、カウントダウンイネーブル信号として該読み出し許可信号がアサートされているときに、該読み出しクロックに同期してカウントダウンするアップダウンカウンタとを備え、
該カウントアップイネーブル信号生成回路は、該書き込みアドレスの最下位ビットの値を該読み出しクロックのタイミングで取り込んで出力する第３フリップフロップと、該第３フリップフロップからのデータ出力を該読み出しクロックのタイミングで取り込んで出力する第４フリップフロップと、該第３フリップフロップのデータ出力と該第４フリップフロップのデータ出力の排他的論理和をとって該カウントアップイネーブル信号として出力する第２排他的論理和手段とを有しているＦＩＦＯメモリ制御回路。
【請求項４】
前記カウントアップイネーブル信号の周期は、前記読み出しクロックの１周期分である請求項３に記載のＦＩＦＯメモリ制御回路。
【請求項５】
書き込みクロックの周波数と読み出しクロックの周波数とが異なる場合に用いられるＦＩＦＯメモリ制御回路であって、
書き込みアドレスを発生する書き込みアドレス発生回路と、
読み出しアドレスを発生する読み出しアドレス発生回路と、
定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、
該読み出しアドレスの最下位ビットと、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックとに基づいて、カウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路と、
該書き込みアドレスの最下位ビットと、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックとに基づいて、カウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路と、
該カウントアップイネーブル信号がアサートされているときに、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックに同期してカウントアップし、該カウントダウンイネーブル信号がアサートされているときに、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックに同期してカウントダウンするアップダウンカウンタとを備え、
該カウントダウンイネーブル信号生成回路は、該読み出しアドレスの最下位ビットの値を該書き込みクロックのタイミングで取り込んで出力する第１フリップフロップと、該第１フリップフロップからのデータ出力を該書き込みクロックのタイミングで取り込んで出力する第２フリップフロップと、該第１フリップフロップのデータ出力と該第２フリップフロップのデータ出力の排他的論理和をとって該カウントダウンイネーブル信号として出力する第１排他的論理和手段とを有し、
該カウントアップイネーブル信号生成回路は、該書き込みアドレスの最下位ビットの値を該読み出しクロックのタイミングで取り込んで出力する第３フリップフロップと、該第３フリップフロップからのデータ出力を該読み出しクロックのタイミングで取り込んで出力する第４フリップフロップと、該第３フリップフロップのデータ出力と該第４フリップフロップのデータ出力の排他的論理和をとって該カウントアップイネーブル信号として出力する第２排他的論理和手段とを有しているＦＩＦＯメモリ制御回路。
【請求項６】
前記カウントダウンイネーブル信号の周期は、前記書き込みクロックおよび前記読み出しクロックのうちの周波数が高い方のクロックの１周期分であり、前記カウントアップイネーブル信号の周期は、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックの１周期分である請求項５に記載のＦＩＦＯメモリ制御回路。
【請求項７】
前記アップダウンカウンタのカウント値が０のときに、前記メモリから読み出すべきデータが無いことを示すエンプティ信号を出力し、該アップダウンカウンタのカウント値が該メモリに格納可能な所定のワード数であるときに、該メモリに新規データを書き込むための空き容量が無いことを示すフル信号を出力するメモリ監視部をさらに備えている請求項１乃至請求項６のいずれかに記載のＦＩＦＯメモリ制御回路。
【請求項８】
前記フル信号に基づいて、前記メモリへの書き込みデータの書き込みを制御する書き込み制御回路と、
前記エンプティ信号に基づいて、該メモリからの読み出しデータの読み出しを制御する読み出し制御回路とを備えている請求項７に記載のＦＩＦＯメモリ制御回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、各種の電子機器に搭載されるＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリ制御回路に関し、特に、書き込みクロックと読み出しクロックの周波数が異なり、どちらのクロック周波数が高いかが既知である場合に、非同期読み書き制御が可能なＦＩＦＯメモリ制御回路に関する。
【０００２】
【従来の技術】
図１１に、従来のＦＩＦＯメモリ制御回路の構成を示す。このＦＩＦＯメモリ制御回路は、メモリ１０１、書き込み制御部１０２、読み出し制御部１０３、書き込みアドレス回路１０４、読み出しアドレス回路１０５およびＦｕｌｌ−Ｅｍｐｔｙ（フル−エンプティ）制御回路１０６を備えている。
【０００３】
メモリ１０１は、同時に読み書き可能なデュアルポートＲＡＭ（ＲａｎｄｏｍＡｃｃｅｓｓ  Ｍｅｍｏｒｙ）からなり、ａワードの記憶容量を有する。このメモリ１０１は、書き込み許可信号（ＷＥ）がアサートされているときに、書き込みデータ（ＷＤＡＴＡ）が１ワードずつ、書き込みクロック（ＷＣＬＫ）のタイミングで、書き込みアドレス（ＷＡＤＲ）の指定した番地に書き込まれる。また、読み出し許可信号（ＲＥ）がアサートされているときに、読み出しデータ（ＲＤＡＴＡ）が１ワードずつ、読み出しクロック（ＲＣＬＫ）のタイミングで、読み出しアドレス（ＲＡＤＲ）の指定した番地から読み出される。ここで、書き込み許可信号（ＷＥ）は後述する書き込み制御部１０２から出力される信号であり、読み出し許可信号（ＲＥ）は後述する読み出し制御部１０３から出力される信号である。
【０００４】
書き込みアドレス回路１０４には、書き込みクロック（ＷＣＬＫ）と書き込み許可信号（ＷＥ）が接続されている。そして、書き込み許可信号（ＷＥ）がアサートされているときに、書き込みクロック（ＷＣＬＫ）のタイミングで、書き込みアドレス（ＷＡＤＲ）を１つずインクリメントする。
【０００５】
読み出しアドレス回路１０５には、読み出しクロック（ＲＣＬＫ）と読み出し許可信号（ＲＥ）が接続されている。そして、読み出し許可信号（ＲＥ）がアサートされているときに、読み出しクロック（ＲＣＬＫ）のタイミングで、読み出しアドレス（ＲＡＤＲ）を１つずインクリメントする。
【０００６】
Ｆｕｌｌ−Ｅｍｐｔｙ制御回路１０６は、書き込み済みのデータ数と読み出し済みのデータ数の差から有効データ数を求めて、書き込みや読み出しのための制御信号を生成するものであり、アップダウンカウンタ１０７と信号発生器１０８から構成されている。なお、有効データ数とは、メモリ１０１に保持されているデータのうち、また読み出されていないデータの数を示す。
【０００７】
アップダウンカウンタ１０７には、書き込み許可信号（ＷＥ）がカウントアップ動作を許可するカウントアップイネーブル信号（ＵＰＥＮ）として接続され、読み出し許可信号（ＲＥ）がカウントダウン動作を許可するカウントダウンイネーブル信号（ＤＮＥＮ）として接続されている。そして、いずれかのイネーブル信号がアサートされているときに、書き込みクロック（ＷＣＬＫ）のタイミングでカウント動作を行う。このアップダウンカウンタ１０７のカウント値（ＣＮＴ）は、有効データ数に相当し、信号発生器１０８へ出力される。
【０００８】
信号発生器１０８には、アップダウンカウンタ１０７から出力されるカウント値（ＣＮＴ）が接続されている。そして、カウント値（ＣＮＴ）が０まで減少したときに、メモリ１０１から読み出すべきデータが無いことを示すエンプティ信号（ＥＭＰ）を読み出し制御部１０３へ出力する。また、カウント値（ＣＮＴ）がメモリ１０１に格納可能なワード数ａに達したときに、メモリ１０１に新規データを書き込むための空き容量が無いことを示すフル信号（ＦＬＬ）を書き込み制御部１０２に出力する。
【０００９】
書き込み制御部１０２には、フル信号（ＦＬＬ）が接続されており、フル信号（ＦＬＬ）がアサートされているときには、メモリ１０１へのデータの書き込みを禁止して、データの上書きによるデータ消失を防止している。
【００１０】
読み出し制御部１０３には、エンプティ信号（ＥＭＰ）が接続されており、エンプティ信号（ＥＭＰ）がアサートされているときには、メモリ１０１からのデータの読み出しを禁止して、同一データの２度読みを防止している。
【００１１】
図１２は、アップダウンカウンタ１０７を読み出しクロック（ＲＣＬＫ）のタイミングでカウント動作させる場合の構成を示す図である。このＦＩＦＯメモリ制御回路は、図１１に示した従来のＦＩＦＯメモリ制御回路と同様の構成であるので、説明を省略する。
【００１２】
【発明が解決しようとする課題】
上述の図１１に示した従来のＦＩＦＯメモリ制御回路において、書き込みクロック（ＷＣＬＫ）と読み出しクロック（ＲＣＬＫ）が同一周波数である場合には、アップダウンカウンタは書き込み許可信号（ＷＥ）をカウントアップ動作を許可するカウントアップイネーブル信号とし、読み出し許可信号（ＲＥ）をカウントダウン動作を許可するカウントダウンイネーブル信号として、いずれかのイネーブル信号がアサートされているときに、書き込みクロック（ＷＣＬＫ）のタイミングでカウント動作を行う。また、図１２に示した従来のＦＩＦＯメモリ制御回路において、書き込みクロック（ＷＣＬＫ）と読み出しクロック（ＲＣＬＫ）が同一周波数である場合には、アップダウンカウンタは書き込み許可信号（ＷＥ）をカウントアップ動作を許可するカウントアップイネーブル信号とし、読み出し許可信号（ＲＥ）をカウントダウン動作を許可するカウントダウンイネーブル信号として、いずれかのイネーブル信号がアサートされているときに、読み出しクロック（ＲＣＬＫ）のタイミングでカウント動作を行う。
【００１３】
しかしながら、これら従来のＦＩＦＯメモリ制御回路においては、書き込みクロック（ＷＣＬＫ）と読み出しクロック（ＲＣＬＫ）が異なる周波数である場合には、正確なカウント動作を行うことができない。
【００１４】
例えば、図１１に示したＦＩＦＯメモリ制御回路では、書き込みクロック（ＷＣＬＫ）のタイミングでカウント動作する。この場合、書き込みクロック（ＷＣＬＫ）が読み出しクロック（ＲＣＬＫ）よりも周波数が高いときには、図１３に示すように、カウントダウンイネーブル信号（＝ＲＥ）がアサートされる期間が、１回の読み出しについて書き込みクロック（ＷＣＬＫ）の１周期より長いため、実際には１つのデータしか読み出されていないのに、カウント値が２つ以上デクリメントされるおそれがある。
【００１５】
一方、図１２に示したＦＩＦＯメモリ制御回路では、読み出しクロック（ＲＣＬＫ）のタイミングでカウント動作する。この場合、書き込みクロック（ＷＣＬＫ）が読み出しクロック（ＲＣＬＫ）よりも周波数が高いときには、図１４に示すように、実際にはデータが書き込まれているのにカウント値がインクリメントされないという問題が生じる。
【００１６】
さらに、読み出しクロック（ＲＣＬＫ）が書き込みクロック（ＷＣＬＫ）よりも周波数が高いときには、図１１に示したＦＩＦＯメモリ制御回路で、データが読み出されているのにも関わらずカウント値がデクリメントされないという問題が生じ、図１２に示したＦＩＦＯメモリ制御回路で、１つのデータしか書き込まれていないのに、カウント値が２つ以上インクリメントされるおそれがある。
【００１７】
本発明は、このような従来技術の課題を解決すべくなされたものであり、読み出しクロックと書き込みクロックの周波数が異なる場合に、データの上書きによるデータの消失や同一データの２度読みを防止するために、メモリ内の有効データ数を正しくカウントすることができるＦＩＦＯメモリ制御回路を提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明のＦＩＦＯメモリ制御回路は、書き込みクロックの周波数が読み出しクロックの周波数よりも高い場合に用いられるＦＩＦＯメモリ制御回路であって、書き込みアドレスを発生する書き込みアドレス発生回路と、読み出しアドレスを発生する読み出しアドレス発生回路と、所定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、該読み出しアドレスの最下位ビットと該書き込みクロックに基づいて、カウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路と、カウントアップイネーブル信号として該書き込み許可信号がアサートされているときに、該書き込みクロックに同期してカウントアップし、該カウントダウンイネーブル信号がアサートされているときに、該書き込みクロックに同期してカウントダウンするアップダウンカウンタとを備え、該カウントダウンイネーブル信号生成回路は、該読み出しアドレスの最下位ビットの値を該書き込みクロックのタイミングで取り込んで出力する第１フリップフロップと、該第１フリップフロップからのデータ出力を該書き込みクロックのタイミングで取り込んで出力する第２フリップフロップと、該第１フリップフロップのデータ出力と該第２フリップフロップのデータ出力の排他的論理和をとって該カウントダウンイネーブル信号として出力する第１排他的論理和手段とを有しており、そのことにより上記目的が達成される。
【００１９】
前記カウントダウンイネーブル信号の周期は、前記書き込みクロックの１周期分であればよい。
【００２０】
本発明のＦＩＦＯメモリ制御回路は、読み出しクロックの周波数が書き込みクロックの周波数よりも高い場合に用いられるＦＩＦＯメモリ制御回路であって、書き込みアドレスを発生する書き込みアドレス発生回路と、読み出しアドレスを発生する読み出しアドレス発生回路と、所定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、該書き込みアドレスの最下位ビットと該読み出しクロックに基づいて、カウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路と、該カウントアップイネーブル信号がアサートされているときに、該読み出しクロックに同期してカウントアップし、カウントダウンイネーブル信号として該読み出し許可信号がアサートされているときに、該読み出しクロックに同期してカウントダウンするアップダウンカウンタとを備え、該カウントアップイネーブル信号生成回路は、該書き込みアドレスの最下位ビットの値を該読み出しクロックのタイミングで取り込んで出力する第３フリップフロップと、該第３フリップフロップからのデータ出力を該読み出しクロックのタイミングで取り込んで出力する第４フリップフロップと、該第３フリップフロップのデータ出力と該第４フリップフロップのデータ出力の排他的論理和をとって該カウントアップイネーブル信号として出力する第２排他的論理和手段とを有しており、そのことにより上記目的が達成される。
【００２１】
前記カウントアップイネーブル信号の周期は、前記読み出しクロックの１周期分であればよい。
【００２２】
本発明のＦＩＦＯメモリ制御回路は、書き込みクロックの周波数と読み出しクロックの周波数とが異なる場合に用いられるＦＩＦＯメモリ制御回路であって、書き込みアドレスを発生する書き込みアドレス発生回路と、読み出しアドレスを発生する読み出しアドレス発生回路と、所定数のワードを格納可能な記憶容量を有し、書き込み許可信号がアサートされているときに、該書き込みクロックに同期して該書き込みアドレスに指定された場所に書き込みデータが書き込まれ、読み出し許可信号がアサートされているときに、該読み出しクロックに同期して該読み出しアドレスに指定された場所から読み出しデータが読み出されるメモリと、該読み出しアドレスの最下位ビットと、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックとに基づいて、カウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路と、該書き込みアドレスの最下位ビットと、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックとに基づいて、カウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路と、該カウントアップイネーブル信号がアサートされているときに、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックに同期してカウントアップし、該カウントダウンイネーブル信号がアサートされているときに、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックに同期してカウントダウンするアップダウンカウンタとを備え、該カウントダウンイネーブル信号生成回路は、該読み出しアドレスの最下位ビットの値を該書き込みクロックのタイミングで取り込んで出力する第１フリップフロップと、該第１フリップフロップからのデータ出力を該書き込みクロックのタイミングで取り込んで出力する第２フリップフロップと、該第１フリップフロップのデータ出力と該第２フリップフロップのデータ出力の排他的論理和をとって該カウントダウンイネーブル信号として出力する第１排他的論理和手段とを有し、該カウントアップイネーブル信号生成回路は、該書き込みアドレスの最下位ビットの値を該読み出しクロックのタイミングで取り込んで出力する第３フリップフロップと、該第３フリップフロップからのデータ出力を該読み出しクロックのタイミングで取り込んで出力する第４フリップフロップと、該第３フリップフロップのデータ出力と該第４フリップフロップのデータ出力の排他的論理和をとって該カウントアップイネーブル信号として出力する第２排他的論理和手段とを有しており、そのことにより上記目的が達成される。
【００２３】
前記カウントダウンイネーブル信号の周期は、前記書き込みクロックおよび前記読み出しクロックのうちの周波数が高い方のクロックの１周期分であればよく、前記カウントアップイネーブル信号の周期は、該書き込みクロックおよび該読み出しクロックのうちの周波数が高い方のクロックの１周期分であればよい。
【００２４】
本発明のＦＩＦＯメモリ制御回路は、前記アップダウンカウンタのカウント値が０のときに、前記メモリから読み出すべきデータが無いことを示すエンプティ信号を出力し、該アップダウンカウンタのカウント値が該メモリに格納可能な所定のワード数であるときに、該メモリに新規データを書き込むための空き容量が無いことを示すフル信号を出力するメモリ監視部をさらに備えている構成とすることができる。
【００２５】
本発明のＦＩＦＯメモリ制御回路は、前記フル信号に基づいて、前記メモリへの書き込みデータの書き込みを制御する書き込み制御回路と、前記エンプティ信号に基づいて、該メモリからの読み出しデータの読み出しを制御する読み出し制御回路とを備えている構成とすることができる。
【００２６】
以下、本発明の作用について説明する。
【００２７】
本発明にあっては、後述する実施形態１に示すように、書き込みクロック（ＷＣＬＫ）の周波数が読み出しクロック（ＲＣＬＫ）の周波数よりも高い場合に、カウントダウンイネーブル信号生成回路が、読み出しアドレス（ＲＡＤＲ）の最下位ビット（ＲＡＤＲ０）と書き込みクロック（ＷＣＬＫ）に基づいてカウントダウンイネーブル信号（ＤＮＥＮ）を生成する。これにより、カウントダウンイネーブル信号（ＤＮＥＮ）を、データの読み出しが１回行われる毎に、書き込みクロック（ＷＣＬＫ）のタイミングに同期させてアップダウンカウンタにアサートすることができる。
【００２８】
アップダウンカウンタは、このカウントダウンイネーブル信号（ＤＮＥＮ）がアサートされているときに、書き込みクロック（ＷＣＬＫ）に同期してカウントダウンするので、データの読み出しが１回行われる毎にカウント値（ＣＮＴ）を１回デクリメントすることが可能である。アップダウンカウンタは、書き込み許可信号（ＷＥ）がアサートされているときには、これをカウントアップイネーブル信号（ＵＰＥＮ）として書き込みクロック（ＷＣＬＫ）に同期してカウントアップするので、データの書き込みが１回行われる毎にカウント値（ＣＮＴ）を１回インクリメントすることが可能である。
【００２９】
このカウントダウンイネーブル信号（ＤＮＥＮ）の周期は、書き込みクロック（ＷＣＬＫ）の１周期分であればよい。
【００３０】
本発明にあっては、後述する実施形態２に示すように、読み出しクロック（ＲＣＬＫ）の周波数が書き込みクロック（ＷＣＬＫ）の周波数よりも高い場合に、カウントアップイネーブル信号生成回路が、書き込みアドレス（ＷＡＤＲ）の最下位ビット（ＷＡＤＲ０）と読み出しクロック（ＲＣＬＫ）に基づいてカウントアップイネーブル信号（ＵＰＥＮ）を生成する。これにより、カウントアップイネーブル信号（ＵＰＥＮ）を、データの書き込みが１回行われる毎に、読み出しクロック（ＲＣＬＫ）のタイミングに同期させてアップダウンカウンタにアサートすることができる。アップダウンカウンタは、このカウントアップイネーブル信号（ＵＰＥＮ）がアサートされているときに、読み出しクロック（ＲＣＬＫ）に同期してカウントアップするので、データの書き込みが１回行われる毎にカウント値（ＣＮＴ）を１回インクリメントすることが可能である。アップダウンカウンタは、読み出し許可信号（ＲＥ）がアサートされているときには、これをカウントダウンイネーブル信号（ＤＮＥＮ）として読み出しクロック（ＲＣＬＫ）に同期してカウントダウンするので、データの読み出しが１回行われる毎にカウント値（ＣＮＴ）を１回デクリメントすることが可能である。
【００３１】
このカウントアップイネーブル信号（ＵＰＥＮ）の周期は、読み出しクロック（ＲＣＬＫ）の１周期分であればよい。
【００３２】
本発明にあっては、後述する実施形態３に示すように、書き込みクロック（ＷＣＬＫ）の周波数と読み出しクロック（ＲＣＬＫ）の周波数とが異なる場合に、カウントダウンイネーブル信号生成回路が、読み出しアドレス（ＲＡＤＲ）の最下位ビット（ＲＡＤＲ０）と、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックとに基づいて、カウントダウンイネーブル信号（ＤＮＥＮ）を生成する。これにより、カウントダウンイネーブル信号（ＤＮＥＮ）を、データの読み出しが１回行われる毎に、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックのタイミングに同期させてアップダウンカウンタにアサートすることができる。また、カウントアップイネーブル信号生成回路は、書き込みアドレス（ＷＡＤＲ）の最下位ビット（ＷＡＤＲ０）と、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックとに基づいて、カウントアップイネーブル信号（ＵＰＥＮ）を生成する。これにより、カウントアップイネーブル信号（ＵＰＥＮ）を、データの書き込みが１回行われる毎に、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックのタイミングに同期させてアップダウンカウンタにアサートすることができる。アップダウンカウンタは、このカウントダウンイネーブル信号（ＤＮＥＮ）がアサートされているときに、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックに同期してカウントダウンするので、データの読み出しが１回行われる毎にカウント値（ＣＮＴ）を１回デクリメントすることが可能である。また、アップダウンカウンタは、カウントアップイネーブル信号（ＤＮＥＮ）がアサートされているときに、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックに同期してカウントアップするので、データの書き込みが１回行われる毎にカウント値（ＣＮＴ）を１回インクリメントすることが可能である。
【００３３】
このカウントダウンイネーブル信号（ＤＮＥＮ）の周期およびカウントアップイネーブル信号（ＵＰＥＮ）の周期は、書き込みクロック（ＷＣＬＫ）および読み出しクロック（ＲＣＬＫ）のうちの周波数が高い方のクロックの１周期分であればよい。
【００３４】
アップダウンカウンタのカウント値（ＣＮＴ）が０のときには、メモリ監視部から出力されたエンプティ信号（ＥＭＰ）に基づいて、読み出し制御回路がメモリからの読み出しデータ（ＲＤＡＴＡ）の読み出しを制御する。また、アップダウンカウンタのカウント値（ＣＮＴ）がメモリに格納可能な所定のワード数であるときには、メモリ監視部から出力されたフル信号（ＦＬＬ）に基づいて、書き込み制御部がメモリへの書き込みデータ（ＷＤＡＴＡ）の書き込みを制御する。本発明にあっては、アップダウンカウンタがメモリ内の有効データ数を正しく計数しているので、同一データの２度読みやデータの上書きによるデータ消失を防止することが可能である。
【００３５】
【発明の実施の形態】
以下に、本発明の実施の形態について、図面を参照しながら説明する。
【００３６】
（実施形態１）
図１は実施形態１のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【００３７】
このＦＩＦＯメモリ制御回路は、メモリ１０、書き込み制御部１１、読み出し制御部１２、書き込みアドレス回路１３、読み出しアドレス回路１４、アップダウンカウンタ１５、メモリ容量監視部１６およびカウントダウンイネーブル信号生成回路１７を備えている。
【００３８】
メモリ１０、書き込み制御部１１、読み出し制御部１２、書き込みアドレス回路１３および読み出しアドレス回路１４は、図１１に示した従来のＦＩＦＯメモリ制御回路におけるメモリ１０１、書き込み制御部１０２、読み出し制御部１０３、書き込みアドレス回路１０４および読み出しアドレス回路１０５と同一の構成であるので、説明を省略する。なお、本実施形態１では、メモリ１０が５ワードの記憶容量を有し、書き込みクロック（ＷＣＬＫ）の周波数が読み出しクロック（ＲＣＬＫ）よりも高いものとする。
【００３９】
アップダウンカウンタ１５には、カウントアップ動作を許可するカウントアップイネーブル信号（ＵＰＥＮ）として、書き込み制御部１１から出力される書き込み許可信号（ＷＥ）が接続され、カウントダウンイネーブル信号生成回路１７によって生成されたカウントダウン動作を許可するカウントダウンイネーブル信号（ＤＮＥＮ）が接続されている。さらに、カウントクロック（ＦＡＳＴＣＬＫ）として読み出しクロック（ＲＣＬＫ）よりも周波数の高い書き込みクロック（ＷＣＬＫ）が接続されている。これらの信号に基づいて、カウントアップイネーブル信号（ＵＰＥＮ）がアサートされているときに、書き込み動作が１回行われる毎に書き込みクロック（ＷＣＬＫ）のタイミングで１つインクリメントし、カウントダウンイネーブル信号（ＤＮＥＮ）がアサートされているときに、読み出し動作が１回行われる毎に書き込みクロック（ＷＣＬＫ）のタイミングで１つデクリメントする。このアップダウンカウンタ１５のカウント値（ＣＮＴ）は、有効データ数としてメモリ容量監視部１６に出力される。
【００４０】
以下に、アップダウンカウンタ１５のカウントダウン動作について、図２および図３を用いて具体的に説明する。図２はカウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路１７の一例を示す回路図であり、図３は図２に示すカウントダウンイネーブル信号生成回路各部の信号およびアップダウンカウンタ各部の信号を示すタイムチャートである。
【００４１】
まず、読み出しアドレス（ＲＡＤＲ）の最下位ビットの値（ＲＡＤＲ０）は、図３の（Ｂ）に示すように、読み出しアドレスが変化する毎に０、１の順番で繰り返し変化する信号である。読み出しアドレスは、図３の（Ｆ）に示す読み出し許可信号（ＲＥ）がアサートされているときに、図３の（Ａ）に示す読み出しクロック（ＲＣＬＫ）のタイミングで読み出され、次の読み出しアドレスに変化する。
【００４２】
次に、図２に示すカウントダウンイネーブル信号生成回路は、２つのフリップフロップ２０１、２０２とＥＸ−ＯＲ２０３とで構成されている。フリップフロップ２０１は、図３の（Ｃ）に示すように、図３の（Ｂ）に示す読み出しアドレスの最下位ビットの値（ＲＡＤＲ０）を、図３の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。フリップフロップ２０２は、図３の（Ｄ）に示すように、図３の（Ｃ）に示すフリップフロップ２０１の出力を、図３の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。ＥＸ−ＯＲ２０３は、図３の（Ｅ）に示すように、図３の（Ｃ）に示すフリップフロップ２０１の出力と、図３の（Ｄ）に示すフリップフロップ２０２の出力とを排他的論理和したものを、カウントダウンイネーブル信号（ＤＮＥＮ）として出力する。これにより、カウントダウンイネーブル信号（ＤＮＥＮ）は、書き込みクロック（ＷＣＬＫ）に同期し、かつ、読み出しが１回行われる毎に書き込みクロック（ＷＣＬＫ）の１周期分の時間だけ、アップダウンカウンタ１５にアサートされる。よって、アップダウンカウンタ１５は、読み出しが１回行われる毎にカウント値（ＣＮＴ）を１回デクリメントすることができる。なお、図３の（Ｈ）は、カウントアップイネーブル信号（ＵＰＮＥ）としても用いられる書き込み許可信号（ＷＥ）であり、図３の（Ｉ）はアップダウンカウンタの出力である。
【００４３】
上記図３において、（Ｅ）信号は（Ｇ）信号の立ち上がりエッジから生成されるため、（Ｅ）信号がアサートされるまでに時間的な遅れがある。よって、実際にカウント動作が行われるのは（Ｇ）信号の次の立ち上がりエッジであることを示すため、本実施形態では意図的に（Ｇ）信号と（Ｅ）信号の変化するタイミングをずらしている。（Ｅ）信号と（Ｇ）信号とが同時に変化した場合、（Ｇ）信号のどちらの立ち上がりエッジでカウント動作が行われるのかが分からなくなるおそれがあるからである。このことは、以下の実施形態２および実施形態３でも同様に考慮している。
【００４４】
メモリ容量監視部１６には、アップダウンカウンタ１５から出力されるカウント値（ＣＮＴ）が接続されている。そして、カウント値（ＣＮＴ）が０であれば、メモリ１０から読み出すべきデータが無いことを示すエンプティ信号（ＥＭＰ）を読み出し制御部１２へ出力する。また、カウント値（ＣＮＴ）がメモリ１０に格納可能なワード数（ここでは５）に達したときに、メモリ１０に新規データを書き込むための空き容量が無いことを示すフル信号（ＦＬＬ）を書き込み制御部１１に出力する。
【００４５】
以上の構成により、メモリ内の有効データ数を正しく計数することができる。よって、書き込み制御部１１にフル信号（ＦＬＬ）がアサートされているときにメモリ１０へのデータの書き込みを禁止して、データの上書きによるデータ消失を防止すると共に、読み出し制御部１２にエンプティ信号（ＥＭＰ）がアサートされているときにメモリ１０からのデータの読み出しを禁止して同一データの２度読みを防止することができる。
【００４６】
（実施形態２）
図４は実施形態２のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【００４７】
このＦＩＦＯメモリ制御回路は、メモリ２０、書き込み制御部２１、読み出し制御部２２、書き込みアドレス回路２３、読み出しアドレス回路２４、アップダウンカウンタ２５、メモリ容量監視部２６およびカウントダウンイネーブル信号生成回路２７を備えている。
【００４８】
メモリ２０、書き込み制御部２１、読み出し制御部２２、書き込みアドレス回路２３および読み出しアドレス回路２４は、図１１に示した従来のＦＩＦＯメモリ制御回路におけるメモリ１０１、書き込み制御部１０２、読み出し制御部１０３、書き込みアドレス回路１０４および読み出しアドレス回路１０５と同一の構成であるので、説明を省略する。なお、本実施形態２では、メモリ２０が５ワードの記憶容量を有し、読み出しクロック（ＲＣＬＫ）の周波数が書き込みクロック（２ＣＬＫ）よりも高いものとする。
【００４９】
アップダウンカウンタ２５には、カウントダウン動作を許可するカウントダウンイネーブル信号（ＤＮＥＮ）として、読み出し制御部２２から出力される読み出し許可信号（ＲＥ）が接続され、カウントアップイネーブル信号生成回路２７によって生成されたカウントアップ動作を許可するカウントアップイネーブル信号（ＵＰＥＮ）が接続されている。さらに、カウントクロック（ＦＡＳＴＣＬＫ）として書き込みクロック（ＷＣＬＫ）よりも周波数の高い読み出しクロック（ＲＣＬＫ）が接続されている。これらの信号に基づいて、カウントアップイネーブル信号（ＵＰＥＮ）がアサートされているときに、書き込み動作が１回行われる毎に読み出しクロック（ＲＣＬＫ）のタイミングで１つインクリメントし、カウントダウンイネーブル信号（ＤＮＥＮ）がアサートされているときに、読み出し動作が１回行われる毎に読み出しクロック（ＲＣＬＫ）のタイミングで１つデクリメントする。このアップダウンカウンタ２５のカウント値（ＣＮＴ）は、有効データ数としてメモリ容量監視部２６に出力される。
【００５０】
以下に、アップダウンカウンタ２５のカウントアップ動作について、図５および図６を用いて具体的に説明する。図５はカウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路２７の一例を示す回路図であり、図６は図５に示すカウントアップイネーブル信号生成回路各部の信号およびアップダウンカウンタ各部の信号を示すタイムチャートである。
【００５１】
まず、書き込みアドレス（ＷＡＤＲ）の最下位ビットの値（ＷＡＤＲ０）は、図６の（Ｂ）に示すように、書き込みアドレスが変化する毎に０、１の順番で繰り返し変化する信号である。書き込みアドレスは、図６の（Ｆ）に示す書き込み許可信号（ＷＥ）がアサートされているときに、図６の（Ａ）に示す書き込みクロック（ＷＣＬＫ）のタイミングで書き込まれ、次の書き込みアドレスに変化する。
【００５２】
次に、図５に示すカウントアップイネーブル信号生成回路は、２つのフリップフロップ３０１、３０２とＥＸ−ＯＲ３０３とで構成されている。フリップフロップ３０１は、図６の（Ｃ）に示すように、図６の（Ｂ）に示す書き込みアドレスの最下位ビットの値（ＷＡＤＲ０）を、図６の（Ｇ）に示す読み出しクロック（ＲＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。フリップフロップ３０２は、図６の（Ｄ）に示すように、図６の（Ｃ）に示すフリップフロップ３０１の出力を、図６の（Ｇ）に示す読み出しクロック（ＲＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。ＥＸ−ＯＲ３０３は、図６の（Ｅ）に示すように、図６の（Ｃ）に示すフリップフロップ３０１の出力と、図６の（Ｄ）に示すフリップフロップ３０２の出力とを排他的論理和したものを、カウントアップイネーブル信号（ＵＰＥＮ）として出力する。これにより、カウントアップイネーブル信号（ＵＰＥＮ）は、読み出しクロック（ＲＣＬＫ）に同期し、かつ、書き込みが１回行われる毎に読み出しクロック（ＲＣＬＫ）の１周期分の時間だけ、アップダウンカウンタ２５にアサートされる。よって、アップダウンカウンタ２５は、書き込みが１回行われる毎にカウント値（ＣＮＴ）を１回インクリメントすることができる。なお、図６の（Ｈ）は、カウントダウンイネーブル信号（ＤＮＥＮ）としても用いられる読み出し許可信号（ＲＥ）であり、図６の（Ｉ）はアップダウンカウンタの出力である。
【００５３】
メモリ容量監視部２６には、アップダウンカウンタ２５から出力されるカウント値（ＣＮＴ）が接続されている。そして、カウント値（ＣＮＴ）が０であれば、メモリ２０から読み出すべきデータが無いことを示すエンプティ信号（ＥＭＰ）を読み出し制御部２２へ出力する。また、カウント値（ＣＮＴ）がメモリ２０に格納可能なワード数（ここでは５）に達したときに、メモリ２０に新規データを書き込むための空き容量が無いことを示すフル信号（ＦＬＬ）を書き込み制御部２１に出力する。
【００５４】
以上の構成により、メモリ内の有効データ数を正しく計数することができる。よって、書き込み制御部２１にフル信号（ＦＬＬ）がアサートされているときにメモリ２０へのデータの書き込みを禁止して、データの上書きによるデータ消失を防止すると共に、読み出し制御部２２にエンプティ信号（ＥＭＰ）がアサートされているときにメモリ２０からのデータの読み出しを禁止して同一データの２度読みを防止することができる。
【００５５】
（実施形態３）
図７は実施形態３のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【００５６】
このＦＩＦＯメモリ制御回路は、メモリ３０、書き込み制御部３１、読み出し制御部３２、書き込みアドレス回路３３、読み出しアドレス回路３４、アップダウンカウンタ３５、メモリ容量監視部３６、カウントアップイネーブル信号生成回路３７およびカウントダウンイネーブル信号生成回路３８を備えている。
【００５７】
メモリ３０、書き込み制御部３１、読み出し制御部３２、書き込みアドレス回路３３および読み出しアドレス回路３４は、図１１に示した従来のＦＩＦＯメモリ制御回路におけるメモリ１０１、書き込み制御部１０２、読み出し制御部１０３、書き込みアドレス回路１０４および読み出しアドレス回路１０５と同一の構成であるので、説明を省略する。なお、本実施形態３では、メモリ３０が５ワードの記憶容量を有し、書き込みクロック（ＷＣＬＫ）の周波数が読み出しクロック（ＲＣＬＫ）よりも高いものとする。
【００５８】
アップダウンカウンタ３５には、カウントアップイネーブル信号生成回路３７によって生成されたカウントアップ動作を許可するカウントアップイネーブル信号（ＵＰＥＮ）が接続され、カウントダウンイネーブル信号生成回路３８によって生成されたカウントダウンを許可するカウントダウンイネーブル信号（ＤＮＥＮ）が接続されている。さらに、カウントクロック（ＦＡＳＴＣＬＫ）として読み出しクロック（ＲＣＬＫ）よりも周波数の高い書き込みクロック（ＷＣＬＫ）が接続されている。これらの信号に基づいて、カウントアップイネーブル信号（ＵＰＥＮ）がアサートされているときに、書き込み動作が１回行われる毎に書き込みクロック（ＷＣＬＫ）のタイミングで１つインクリメントし、カウントダウンイネーブル信号（ＤＮＥＮ）がアサートされているときに、読み出し動作が１回行われる毎に書き込みクロック（ＷＣＬＫ）のタイミングで１つデクリメントする。このアップダウンカウンタ３５のカウント値（ＣＮＴ）は、有効データ数としてメモリ容量監視部３６に出力される。
【００５９】
以下に、アップダウンカウンタ３５のカウントダウン動作およびについて、図８、図９および図１０を用いて具体的に説明する。図８はカウントアップイネーブル信号を生成するカウントアップイネーブル信号生成回路３７の一例を示す回路図であり、図９はカウントダウンイネーブル信号を生成するカウントダウンイネーブル信号生成回路３８の一例を示す回路図であり、図１０は図８に示すカウントアップイネーブル信号生成回路各部の信号、図９に示すカウントダウンイネーブル信号生成回路各部の信号およびアップダウンカウンタ各部の信号を示すタイムチャートである。
【００６０】
まず、書き込みアドレス（ＷＡＤＲ）の最下位ビットの値（ＷＡＤＲ０）は、図１０の（Ｈ）に示すように、書き込みアドレスが変化する毎に０、１の順番で繰り返し変化する信号である。書き込みアドレスは、図１０の（Ｌ）に示す書き込み許可信号（ＷＥ）がアサートされているときに、図１０の（Ｇ）に示す書き込みクロック（ＲＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで書き込まれ、次の書き込みアドレスに変化する。また、読み出しアドレス（ＲＡＤＲ）の最下位ビットの値（ＲＡＤＲ０）は、図１０の（Ｂ）に示すように、読み出しアドレスが変化する毎に０、１の順番で繰り返し変化する信号である。読み出しアドレスは、図１０の（Ｆ）に示す読み出し許可信号（ＲＥ）がアサートされているときに、図１０の（Ａ）に示す読み出しクロック（ＲＣＬＫ）のタイミングで読み出さ
れ、次の読み出しアドレスに変化する。
【００６１】
次に、図８に示すカウントアップイネーブル信号生成回路は、２つのフリップフロップ４０１、４０２とＥＸ−ＯＲ４０３とで構成されている。フリップフロップ４０１は、図１０の（Ｉ）に示すように、図１０の（Ｈ）に示す書き込みアドレスの最下位ビットの値（ＷＡＤＲ０）を、図１０の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。フリップフロップ４０２は、図１０の（Ｊ）に示すように、図１０の（Ｉ）に示すフリップフロップ４０１の出力を、図１０の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。ＥＸ−ＯＲ４０３は、図１０の（Ｋ）に示すように、図１０の（Ｉ）に示すフリップフロップ４０１の出力と、図１０の（Ｊ）に示すフリップフロップ４０２の出力とを排他的論理和したものを、カウントアップイネーブル信号（ＵＰＥＮ）として出力する。これにより、カウントアップイネーブル信号（ＵＰＥＮ）は、書き込みクロック（ＷＣＬＫ）に同期し、かつ、書き込みが１回行われる毎に書き込みクロック（ＷＣＬＫ）の１周期分の時間だけ、アップダウンカウンタ３５にアサートされる。よって、アップダウンカウンタ３５は、書き込みが１回行われる毎にカウント値（ＣＮＴ）を１回インクリメントすることができる。
【００６２】
次に、図９に示すカウントダウンイネーブル信号生成回路は、２つのフリップフロップ５０１、５０２とＥＸ−ＯＲ５０３とで構成されている。フリップフロップ５０１は、図９の（Ｃ）に示すように、図９の（Ｂ）に示す読み出しアドレスの最下位ビットの値（ＲＡＤＲ０）を、図９の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。フリップフロップ５０２は、図９の（Ｄ）に示すように、図９の（Ｃ）に示すフリップフロップ５０１の出力を、図９の（Ｇ）に示す書き込みクロック（ＷＣＬＫ（ＦＡＳＴＣＬＫ））のタイミングで取り込み、出力する。ＥＸ−ＯＲ５０３は、図９の（Ｅ）に示すように、図９の（Ｃ）に示すフリップフロップ５０１の出力と、図９の（Ｄ）に示すフリップフロップ５０２の出力とを排他的論理和したものを、カウントダウンイネーブル信号（ＤＮＥＮ）として出力する。これにより、カウントダウンイネーブル信号（ＤＮＥＮ）は、書き込みクロック（ＷＣＬＫ）に同期し、かつ、読み出しが１回行われる毎に書き込みクロック（ＷＣＬＫ）の１周期分の時間だけ、アップダウンカウンタ３５にアサートされる。よって、アップダウンカウンタ３５は、読み出しが１回行われる毎にカウント値（ＣＮＴ）を１回デクリメントすることができる。なお、図１０の（Ｍ）は、アップダウンカウンタの出力である。
【００６３】
メモリ容量監視部３６には、アップダウンカウンタ３５から出力されるカウント値（ＣＮＴ）が接続されている。そして、カウント値（ＣＮＴ）が０であれば、メモリ３０から読み出すべきデータが無いことを示すエンプティ信号（ＥＭＰ）を読み出し制御部３２へ出力する。また、カウント値（ＣＮＴ）がメモリ３０に格納可能なワード数（ここでは５）に達したときに、メモリ３０に新規データを書き込むための空き容量が無いことを示すフル信号（ＦＬＬ）を書き込み制御部３１に出力する。
【００６４】
以上の構成により、メモリ内の有効データ数を正しく計数することができる。よって、書き込み制御部３１にフル信号（ＦＬＬ）がアサートされているときにメモリ３０へのデータの書き込みを禁止して、データの上書きによるデータ消失を防止すると共に、読み出し制御部３２にエンプティ信号（ＥＭＰ）がアサートされているときにメモリ３０からのデータの読み出しを禁止して同一データの２度読みを防止することができる。
【００６５】
上記実施形態１〜実施形態３では、メモリ１０、２０、３０の記憶容量を５ワードとしたが、本発明はこれに限定されるものではなく、任意の記憶容量に対して適応可能である。また、実施形態３では書き込みクロックの周波数が読み出しクロックの周波数よりも高いものとしたが、読み出しクロックの周波数の方が高い場合には、アップダウンカウンタ３５に読み出しクロックを接続することにより本発明を適用可能であることは、容易に推測することができる。
【００６６】
【発明の効果】
以上詳述したように、本発明によれば、読み出しクロックと書き込みクロックの周期が異なる場合に、アップダウンカウンタのカウント動作を許可する信号を、書き込みクロックと読み出しクロックの周波数が高い方のクロックに同期させ、かつ、１回の書き込みおよび読み出し毎に、周波数が高い方のクロックの１周期以上２周期未満分の時間だけアサートすることにより、メモリ内の有効データ数を正しく計数することができるＦＩＦＯメモリ制御回路を実現することができる。よって、メモリへのデータの上書きによるデータ消失を防止すると共に、メモリからの同一データの２度読みを防止することができる。
【図面の簡単な説明】
【図１】実施形態１のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【図２】実施形態１のＦＩＦＯメモリ制御回路におけるカウントダウンイネーブル信号生成回路の一例を示す回路図である。
【図３】実施形態１のＦＩＦＯメモリ制御回路における各部の信号を示すタイムチャートである。
【図４】実施形態２のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【図５】実施形態２のＦＩＦＯメモリ制御回路におけるカウントアップイネーブル信号生成回路の一例を示す回路図である。
【図６】実施形態２のＦＩＦＯメモリ制御回路における各部の信号を示すタイムチャートである。
【図７】実施形態３のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【図８】実施形態３のＦＩＦＯメモリ制御回路におけるカウントアップイネーブル信号生成回路の一例を示す回路図である。
【図９】実施形態３のＦＩＦＯメモリ制御回路におけるカウントダウンイネーブル信号生成回路の一例を示す回路図である。
【図１０】実施形態３のＦＩＦＯメモリ制御回路における各部の信号を示すタイムチャートである。
【図１１】従来のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【図１２】従来のＦＩＦＯメモリ制御回路の構成を示すブロック図である。
【図１３】従来のＦＩＦＯメモリ制御回路の問題点を説明するためのタイムチャートである。
【図１４】従来のＦＩＦＯメモリ制御回路の問題点を説明するためのタイムチャートである。
【符号の説明】
１０、２０、３０、１０１メモリ
１１、２１、３１、１０２  書き込み制御部
１２、２２、３２、１０３  読み出し制御部
１３、２３、３３、１０４  書き込みアドレス回路
１４、２４、３４、１０５  読み出しアドレス回路
１５、２５、３５、１０７  アップダウンカウンタ
１６、２６、３６  メモリ容量監視部
２７、３７  カウントアップイネーブル信号生成回路
１７、３８  カウントダウンイネーブル信号生成回路
１０８  信号発生器
１０６  Ｆｕｌｌ−Ｅｍｐｔｙ制御回路
２０１、２０２、３０１、３０２、４０１、４０２、５０１、５０２  フリップフロップ
２０３、３０３、４０３、５０３  ＥＸ−ＯＲ
【図１】
0003815948.tif 000002
【図２】
0003815948.tif 000003
【図３】
0003815948.tif 000004
【図４】
0003815948.tif 000005
【図５】
0003815948.tif 000006
【図６】
0003815948.tif 000007
【図７】
0003815948.tif 000008
【図８】
0003815948.tif 000009
【図９】
0003815948.tif 000010
【図１０】
0003815948.tif 000011
【図１１】
0003815948.tif 000012
【図１２】
0003815948.tif 000013
【図１３】
0003815948.tif 000014
【図１４】
0003815948.tif 000015