[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2004062630A - Fifoメモリ及び半導体装置 - Google Patents

Fifoメモリ及び半導体装置 Download PDF

Info

Publication number
JP2004062630A
JP2004062630A JP2002221613A JP2002221613A JP2004062630A JP 2004062630 A JP2004062630 A JP 2004062630A JP 2002221613 A JP2002221613 A JP 2002221613A JP 2002221613 A JP2002221613 A JP 2002221613A JP 2004062630 A JP2004062630 A JP 2004062630A
Authority
JP
Japan
Prior art keywords
write
read
pointer
flag
clock
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2002221613A
Other languages
English (en)
Inventor
Takashi Ozawa
小澤 敬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2002221613A priority Critical patent/JP2004062630A/ja
Priority to US10/629,805 priority patent/US20040022099A1/en
Publication of JP2004062630A publication Critical patent/JP2004062630A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)

Abstract

【課題】システム全体の性能を維持しながらデータのオーバーフロー及びアンダーフローの発生を確実に防止することのできるFIFOメモリを提供すること。
【解決手段】満杯フラグ発生/解除回路18は、次の書き込みポインタWQCと現在の読み出しポインタRQAが一致する状態で、満杯フラグFFにより制御された書き込み制御クロックが入力されると満杯フラグFFを生成する。また、空フラグ発生/解除回路19は、次の読み出しポインタRQCと現在の書き込みポインタWQAが一致する状態で、空フラグEFにより制御された読み出し制御クロックが入力されると空フラグEFを生成する。これにより、メモリ12が満杯状態或いは空状態となった場合の満杯フラグFF或いは空フラグEFの発生が高速化される。
【選択図】   図1

Description

【0001】
【発明の属する技術分野】
本発明はFIFOメモリ及び半導体装置に係り、詳しくは高速動作するシステムと低速動作するシステム間のデータ転送を行う際に使用して好適なFIFOメモリに関する。
【0002】
一般に、FIFO(First−In First−Out)メモリは、2つのシステム間のデータ転送に多く用いられる。FIFOメモリはデータの書き込みと読み出しを非同期で行うことが可能であり、データ転送を行う双方のシステムは互いに非同期(異なる動作周波数)で動作することが可能である。このような動作周波数の異なるシステム間のデータ転送を行う際には、FIFOメモリにおけるデータの満杯状態や空状態を監視し、オーバーフローやアンダーフローを確実に防止する必要がある。
【0003】
【従来の技術】
図15は、従来のFIFOメモリの構成を示すブロック回路図である。
このFIFOメモリ111は、例えばデータ転送を行う図示しない2つのシステム間に設けられている。尚、FIFOメモリ111に接続される各システム(データ送信側のシステムとデータ受信側のシステム)の動作周波数は互いに異なり、双方のシステムはそれぞれ非同期で動作する。
【0004】
FIFOメモリ111は、双方のシステム間で転送するデータを保持するメモリ112と、書き込みカウンタ113と、読み出しカウンタ114と、比較回路115と、フラグ発生/解除回路116とを備えている。
【0005】
メモリ112は、一方(データ送信側)のシステムが出力するデータを書き込むための書き込みポートと、該メモリ112に格納されているデータを読み出して他方(データ受信側)のシステムに供給するための読み出しポートとを備える2ポートメモリである。このメモリ112は、該メモリ112に格納されているデータをそれが書き込まれた順に読み出す。
【0006】
書き込みカウンタ113は、データ送信側のシステムの動作周波数を持つ書き込みクロックWCKを入力し、データ書き込み時のメモリ112のアドレスを示す書き込みポインタWQを生成する。詳しくは、書き込みカウンタ113は、書き込みクロックWCKの入力毎に書き込みポインタWQをインクリメントしてメモリ112に出力し、メモリ112は、その書き込みポインタWQに対応するアドレスのメモリセル(図示略)にデータを書き込む。
【0007】
同様に、読み出しカウンタ114は、データ受信側のシステムの動作周波数を持つ読み出しクロックRCKを入力し、データ読み出し時のメモリ112のアドレスを示す読み出しポインタRQを生成する。詳しくは、読み出しカウンタ114は、読み出しクロックRCKの入力毎に読み出しポインタRQをインクリメントしてメモリ112に出力し、メモリ112は、その読み出しポインタRQに対応するアドレスのメモリセル(図示略)からデータを読み出す。
【0008】
尚、上記した各カウンタ113,114は、それぞれ所定数ずつのポインタWQ,RQを出力した後、再び最初のポインタWQ,RQを出力するように構成されるリングカウンタである(但し、各カウンタ113,114でのカウント数は同じ)。
【0009】
比較回路115は、データの書き込み時に書き込みカウンタ113から出力される書き込みポインタWQとその時の読み出しポインタRQとを比較し、各ポインタWQ,RQが一致するか否かを判断する。また、比較回路115は、データの読み出し時に読み出しカウンタ114から出力される読み出しポインタRQとその時の書き込みポインタWQとを比較し、各ポインタRQ,WQが一致するか否かを判断する。
【0010】
フラグ発生/解除回路116は、比較回路115から出力される検出信号に応答して、メモリ112に格納されているデータが満杯状態であることを示す満杯フラグFF、或いはメモリ112内のデータが空状態であることを示す空フラグEFを生成する。
【0011】
詳述すると、フラグ発生/解除回路116は、書き込み動作時に書き込みポインタWQと読み出しポインタRQとが互いに一致する場合に、それを検出する比較回路115からの検出信号に応答して満杯フラグFFを生成する。この満杯フラグFFに応答して書き込みカウンタ113は動作を停止する。逆に、フラグ発生/解除回路116は、読み出し動作時に読み出しポインタRQと書き込みポインタWQとが互いに一致する場合に、それを検出する比較回路115からの検出信号に応答して空フラグEFを生成する。この空フラグEFに応答して読み出しカウンタ114は動作を停止する。
【0012】
このようなFIFOメモリ111と接続される2つのシステムにおいて、例えば、データ送信側のシステムの動作周波数がデータ受信側のシステムの動作周波数よりも高い場合は、書き込み動作が読み出し動作よりも多くなる。
【0013】
その結果、メモリ112に書き込まれたが、まだ読み出されていないデータが次第に増加し、遂にはメモリ112内に新たなデータを書き込み可能とするアドレスがなくなって、メモリ112は満杯状態となる。そして、この状態では、書き込みカウンタ113から出力される書き込みポインタWQが読み出しポインタRQと一致し、フラグ発生/解除回路116は満杯フラグFFを出力する。これにより、書き込みカウンタ113は動作を停止し、メモリ112への書き込み動作が禁止される。このメモリ112の満杯状態は、その後、データの読み出し動作が行われ、新たにデータを書き込み可能(具体的には既存のデータに上書き可能)とするアドレスがメモリ112内に確保されるまで続く。
【0014】
一方、これとは逆に、データ受信側のシステムの動作周波数がデータ送信側のシステムの動作周波数よりも高い場合は、読み出し動作が書き込み動作よりも多くなる。
【0015】
その結果、メモリ112に書き込まれたが、まだ読み出されていないデータが次第に減少し、遂にはメモリ112内から読み出すべきデータがなくなって、メモリ112は空状態となる。そして、この状態では、読み出しカウンタ114から出力される読み出しポインタRQが書き込みポインタWQと一致し、フラグ発生/解除回路116は空フラグEFを出力する。これにより、読み出しカウンタ114は動作を停止し、メモリ112からの読み出し動作が禁止される。このメモリ112の空状態は、その後、データの書き込み動作が行われ、新たにデータを読み出し可能とするアドレスがメモリ112内に発生するまで続く。
【0016】
【発明が解決しようとする課題】
上記のようなFIFOメモリ111において、メモリ112が満杯状態であるにも関わらず、書き込み動作が継続して行われる場合には、まだ読み出されていないデータが上書きされることによりデータの欠落が生じ、メモリ112はオーバーフローの状態となる。逆に、メモリ112が空状態であるにも関わらず、読み出し動作が継続して行われる場合には、既に読み出されたデータが再度読み出されることになり、メモリ112はアンダーフローの状態となる。
【0017】
これらのオーバーフローやアンダーフローが発生する場合、データ転送が正常に行われず、転送エラーとなる。このため、FIFOメモリ111は、データ転送時にメモリ112の状態を監視し、データの満杯状態や空状態を検出することで、上記のようなオーバーフローやアンダーフローの発生を事前に防止するようにしている。
【0018】
ところで、従来のFIFOメモリ111において、メモリ112の満杯状態を示す満杯フラグFFや空状態を示す空フラグEFがフラグ発生/解除回路116から実際に出力されるまでの遅延時間は、上記各カウンタ113,114、比較回路115及びフラグ発生/解除回路116での遅延時間に依存している。このため、満杯フラグFFや空フラグEFの出力遅延が大きくなっていた。
【0019】
満杯フラグFFや空フラグEFは、次のサイクルの動作の判断基準となる。従って、各フラグFF,EFの出力遅延が大きくなると、次のサイクルで書き込み動作や読み出し動作を行うか否かの判断が遅れることにより、オーバーフローやアンダーフローを発生させてしまう場合があった。このため、これらのオーバーフローやアンダーフローの発生を回避するために、高速動作するシステム側の動作周波数を低下させる必要が生じ、結果的にシステム全体の動作速度を低下させてしまうという問題があった。
【0020】
本発明は上記問題点を解決するためになされたものであって、その目的はシステム全体の性能を維持しながらデータのオーバーフロー及びアンダーフローの発生を確実に防止することのできるFIFOメモリ及びそのFIFOメモリを備えた半導体装置を提供することにある。
【0021】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載の発明によれば、満杯フラグ制御手段は、現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させる。これにより、メモリが満杯状態となった場合の満杯フラグの発生を高速化させることが可能であり、書き込みクロックが高い周波数である場合にも、その周波数を維持したままオーバーフローの発生を確実に防止することができる。また、空フラグ制御手段は、現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させる。これにより、メモリが空状態となった場合の空フラグの発生を高速化させることが可能であり、読み出しクロックが高い周波数である場合にも、その周波数を維持したままアンダーフローの発生を確実に防止することができる。
【0022】
請求項2に記載の発明によれば、満杯フラグ制御手段は、現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる書き込みクロックに同期して満杯フラグを解除する。これにより、満杯フラグの発生/解除を迅速に行うことができる。また、空フラグ制御手段は、現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる読み出しクロックに同期して空フラグを解除する。これにより、空フラグの発生/解除を迅速に行うことができる。
【0023】
請求項3に記載の発明によれば、第1の比較手段は、現在の読み出しポインタと次の書き込みポインタを比較して、次の書き込みクロックでメモリが満杯状態になることを予め検出する。これにより、満杯フラグ制御手段は、第1の比較手段の出力信号を参照して満杯フラグを発生させる。また、第2の比較手段は、現在の書き込みポインタと次の読み出しポインタを比較して、次の読み出しクロックでメモリが空状態になることを予め検出する。これにより、空フラグ制御手段は、第2の比較手段の出力信号を参照して空フラグを発生させる。
【0024】
請求項4に記載の発明によれば、第3の比較手段は、現在の書き込みポインタと現在の読み出しポインタを比較して、それら2つのポインタが不一致である場合を検出する。これにより、満杯フラグ制御手段及び空フラグ制御手段は、第3の比較手段の出力信号を参照して満杯フラグ,空フラグをそれぞれ解除する。
【0025】
請求項5に記載の発明によれば、満杯フラグ制御手段は、第1の比較手段から出力される信号を満杯フラグにより制御された書き込みクロックに同期して取り込むための比較結果判定手段を備えている。また、空フラグ制御手段は、第2の比較手段から出力される信号を前記空フラグにより制御された読み出しクロックに同期して取り込むための比較結果判定手段を備えている。
【0026】
請求項6に記載の発明によれば、満杯フラグ制御手段は、第3の比較手段から出力される信号を書き込みクロックに同期して取り込むための比較結果判定手段をさらに備えている。また、空フラグ制御手段は、第3の比較手段から出力される信号を読み出しクロックに同期して取り込むための比較結果判定手段をさらに備えている。
【0027】
請求項7に記載の発明によれば、メモリは、書き込みカウンタから出力される現在の書き込みポインタに応答して書き込み動作を行い、読み出しカウンタから出力される現在の読み出しポインタに応答して読み出し動作を行う。
【0028】
請求項8に記載の発明によれば、メモリには、書き込みカウンタから出力される次の書き込みポインタと読み出しカウンタから出力される次の読み出しポインタとが入力される。そして、メモリは、満杯フラグにより制御された書き込みクロックに同期して、予め入力された書き込みポインタに対応するメモリセルにデータを書き込み、空フラグにより制御された読み出しクロックに同期して、予め入力された読み出しポインタに対応するメモリセルのデータを読み出す。これにより、書き込み動作及び読み出し動作がより高速化される。
【0029】
請求項9に記載の発明によれば、メモリは、複数のメモリセルと、満杯フラグにより制御された書き込みクロックに同期してメモリセルを順次選択する第1シフトレジスタと、該選択されたメモリセルにデータを書き込む書き込み回路と、空フラグにより制御された読み出しクロックに同期してメモリセルを順次選択する第2シフトレジスタと、該選択されたメモリセルのデータを読み出す読み出し回路とを備えている。これにより、書き込み動作及び読み出し動作が高速化されるとともに、FIFOメモリの回路規模を小さくすることが可能である。
【0030】
請求項10に記載の発明によれば、請求項1乃至9の何れか一項記載のFIFOメモリを備えた半導体装置では、システムの性能を維持したまま、且つ、データのオーバーフロー及びアンダーフローを確実に防止しながらデータ転送を行うことが可能である。
【0031】
【発明の実施の形態】
(第一実施形態)
以下、本発明を具体化した第一実施形態を図1〜図12に従って説明する。
【0032】
図1は、本実施形態のFIFOメモリの構成を示すブロック回路図である。
このFIFOメモリ11は、例えばデータ転送を行う図示しない2つのシステム間に設けられている。尚、FIFOメモリ11に接続される各システム(データ送信側のシステムとデータ受信側のシステム)の動作周波数は互いに異なり、双方のシステムはそれぞれ非同期で動作する。
【0033】
FIFOメモリ11は、メモリ12と、書き込みカウンタ13と、読み出しカウンタ14と、第1〜第3の比較手段としての第1〜第3の比較回路15〜17と、満杯フラグ制御手段としての満杯フラグ発生/解除回路18と、空フラグ制御手段としての空フラグ発生/解除回路19とを備える。尚、同図では、FIFOメモリ11の初期設定を行うための初期化回路と初期化信号(リセット信号)は省略されている。
【0034】
メモリ12は、書き込みポートと読み出しポート(何れも図示略)を持つ2ポートメモリである。このメモリ12は、一方(データ送信側)のシステムが出力するデータを書き込みポートを介して書き込み、該メモリ12に格納されているデータをそれが書き込まれた順に読み出して読み出しポートから他方(データ受信側)のシステムに供給する。
【0035】
書き込みカウンタ13は、データ送信側のシステムの動作周波数を持つ書き込みクロックWCKを入力し、データ書き込み時のメモリ12のアドレスを示す現在の書き込みポインタWQAと、次のデータ書き込み時のメモリ12のアドレスを示す次の書き込みポインタWQCを生成する。
【0036】
詳しくは、書き込みカウンタ13は、書き込みクロックWCKの入力毎に現在の書き込みポインタWQAと次の書き込みポインタWQCをそれぞれインクリメントし、現在の書き込みポインタWQAをメモリ12に供給する。これにより、メモリ12は、現在の書き込みポインタWQAに対応するアドレスのメモリセル(図示略)にデータを書き込む。
【0037】
同様に、読み出しカウンタ14は、データ受信側のシステムの動作周波数を持つ読み出しクロックRCKを入力し、データ読み出し時のメモリ12のアドレスを示す現在の読み出しポインタRQAと、次のデータ読み出し時のメモリ12のアドレスを示す次の読み出しポインタRQCを生成する。
【0038】
詳しくは、読み出しカウンタ14は、読み出しクロックRCKの入力毎に現在の読み出しポインタRQAと次の読み出しポインタRQCをそれぞれインクリメントし、現在の読み出しポインタRQAをメモリ12に供給する。これにより、メモリ12は、現在の読み出しポインタRQAに対応するアドレスのメモリセル(図示略)からデータを読み出す。
【0039】
ここで、上記書き込みカウンタ13は、所定数の書き込みポインタWQAを出力した後、再び最初の書き込みポインタWQAを出力するリングカウンタである。同様に、読み出しカウンタ14は、所定数の読み出しポインタRQAを出力した後、再び最初の読み出しポインタRQAを出力するリングカウンタである。(但し、各カウンタ13,14でのカウント数は同じ)。
【0040】
第1の比較手段としての第1の比較回路15は、書き込みカウンタ13から出力される次の書き込みポインタWQCと読み出しカウンタ14から出力される現在の読み出しポインタRQAとを比較し、各ポインタWQC,RQAが互いに一致する状態を検出する。
【0041】
第2の比較回路16は、書き込みカウンタ13から出力される現在の書き込みポインタWQAと読み出しカウンタ14から出力される次の読み出しポインタRQCとを比較し、各ポインタWQA,RQCが互いに一致する状態を検出する。
【0042】
第3の比較回路17は、書き込みカウンタ13から出力される現在の書き込みポインタWQAと読み出しカウンタ14から出力される現在の読み出しポインタRQAとを比較し、各ポインタWQA,RQAが互いに一致しない状態を検出する。
【0043】
満杯フラグ発生/解除回路18は、第1及び第3の比較回路15,17から出力される信号に基づいて、メモリ12に格納されているデータが満杯状態であることを示す満杯フラグFFの発生/解除を行う。
【0044】
詳しくは、満杯フラグ発生/解除回路18は、次の書き込みポインタWQCと現在の読み出しポインタRQAとの一致状態を示す信号が第1の比較回路15から出力されている状態で書き込みクロックWCKが入力されると、それに応答して満杯フラグFFを生成する。また、満杯フラグ発生/解除回路18は、現在の書き込みポインタWQAと現在の読み出しポインタRQAとの不一致状態を示す信号が第3の比較回路17から出力されている状態で書き込みクロックWCKが入力されると、それに応答して満杯フラグFFを解除する(即ち満杯フラグFFの出力を停止する)。
【0045】
空フラグ発生/解除回路19は、第2及び第3の比較回路16,17から出力される信号に基づいて、メモリ12に格納されているデータが空状態であることを示す空フラグEFの発生/解除を行う。
【0046】
詳述すると、空フラグ発生/解除回路19は、次の読み出しポインタRQCと現在の書き込みポインタWQAとの一致状態を示す信号が第2の比較回路16から出力されている状態で読み出しクロックRCKが入力されると、それに応答して空フラグEFを生成する。また、空フラグ発生/解除回路19は、現在の書き込みポインタWQAと現在の読み出しポインタRQAとの不一致状態を示す信号が第3の比較回路17から出力されている状態で読み出しクロックRCKが入力されると、それに応答して空フラグEFを解除する(即ち空フラグEFの出力を停止する)。
【0047】
以下、FIFOメモリ11を構成する各回路について詳述する。
図2は、書き込みカウンタ13の一構成例を示すブロック回路図である。尚、読み出しカウンタ14は、書き込みカウンタ13と同様な構成であるため、ここでは詳細な説明は省略する。
【0048】
本実施形態において、書き込みカウンタ13は、例えば4ビットのアドレスを示す各ポインタ(現在の書き込みポインタWQA及び次の書き込みポインタWQC)を生成する。この書き込みカウンタ13は、クロック制御回路21と、第1〜第4フリップフロップ回路22〜25と、カウントアップ論理回路26とを含む。
【0049】
クロック制御回路21は、書き込みクロックWCK及び満杯フラグ発生/解除回路18から出力される満杯フラグFFを入力し、該満杯フラグFFにより書き込みクロックWCKを制御した書き込み制御クロックWCK2を生成する。尚、本実施形態において、書き込みクロックWCKは、自走式クロック(free running clock)であって(読み出しクロックRCKも同様である)、クロック制御回路21は、満杯フラグFFが発生している間は書き込みクロックWCKを停止するように書き込み制御クロックWCK2を生成する。
【0050】
第1〜第4フリップフロップ回路22〜25は、クロック入力端子CLKに書き込み制御クロックWCK2を入力し、リセット入力端子RESにFIFOリセット信号RSを入力し、データ入力端子Dにカウントアップ論理回路26の出力信号を入力する。各フリップフロップ回路22〜25は、書き込み制御クロックWCK2に応答してカウントアップ論理回路26から出力されるポインタ信号QCを取り込み、データ出力端子Qからポインタ信号QAを出力する。そして、書き込みカウンタ13は、これらのポインタ信号QAからなる4ビットのアドレスを現在の書き込みポインタWQAとして出力する。
【0051】
カウントアップ論理回路26は、フリップフロップ回路22〜25から出力される各ポインタ信号QAを入力し、現在の書き込みポインタWQA(即ちアドレス)をインクリメントするように生成した各ポインタ信号QCを出力する。そして、書き込みカウンタ13は、これらのポインタ信号QCからなる4ビットのアドレスを次の書き込みポインタWQCとして出力する。
【0052】
この書き込みカウンタ13は、各フリップフロップ回路22〜25にFIFOリセット信号RSが入力されることで初期化される。また、上記したように、この書き込みカウンタ13はリングカウンタとして構成され、所定数の書き込みポインタWQAを出力した後、再び先頭の書き込みポインタWQAを出力する。
【0053】
次に、第1〜第3の比較回路15〜17の構成について説明する。
図3は、第1の比較回路15の一構成例を示す回路図である。この第1の比較回路15は、第1〜第4イー・オア(Exclusive OR)回路31〜34と、ノア回路35とを含む。
【0054】
各イー・オア回路31〜34には、書き込みカウンタ13から出力される次の書き込みポインタWQCと読み出しカウンタ14から出力される現在の読み出しポインタRQAの各対応するビット位置のポインタ信号WQC[0]〜[3],RQA[0]〜[3]がそれぞれ入力される。そして、各イー・オア回路31〜34は、互いのポインタ信号WQC[0]〜[3],RQA[0]〜[3]が一致する場合にLレベルの信号を出力し、逆に一致しない場合にHレベルの信号を出力する。
【0055】
ノア回路35は、各イー・オア回路31〜34から出力される信号が全てLレベルの信号である場合にHレベルの信号を出力する。即ち、第1の比較回路15は、次の書き込みポインタWQCと現在の読み出しポインタRQAが一致する場合にHレベルの信号を出力する。逆に、ノア回路35は、各イー・オア回路31〜34から出力される信号のうち少なくとも何れか1つがHレベルの信号である場合にLレベルの信号を出力する。即ち、第1の比較回路15は、次の書き込みポインタWQCと現在の読み出しポインタRQAが不一致である場合にLレベルの信号を出力する。
【0056】
第2の比較回路16は、第1の比較回路15と同様な構成である。即ち、第2の比較回路16は、現在の書き込みポインタWQAと次の読み出しポインタRQCが一致する場合にHレベルの信号を出力し、逆に、それら2つのポインタWQA,RQCが一致しない場合にLレベルの信号を出力する。
【0057】
第3の比較回路17は、第1の比較回路15を構成するノア回路35に替えてオア回路(図示略)を備えた構成である。即ち、第3の比較回路17は、現在の書き込みポインタWQAと現在の読み出しポインタRQAが不一致である場合にHレベルの信号を出力し、逆に、それら2つのポインタWQA,RQAが一致する場合にLレベルの信号を出力する。
【0058】
図4は、満杯フラグ発生/解除回路18の一構成例を示すブロック回路図である。この満杯フラグ発生/解除回路18は、クロック制御回路41と、比較結果判定手段としての第1及び第2比較結果判定回路42,43と、フラグ制御回路44と、フラグ出力回路45とを含む。
【0059】
クロック制御回路41は、上記書き込みカウンタ13が備えるクロック制御回路21と同様な構成であり、満杯フラグFFが発生している間は書き込みクロックWCKを停止するように書き込み制御クロックWCK2を生成する。
【0060】
第1比較結果判定回路42は、書き込み制御クロックWCK2に同期して第1の比較回路15からの出力信号を取り込む。詳しくは、第1比較結果判定回路42は、次の書き込みポインタWQCと現在の読み出しポインタRQAの一致を示す信号(具体的には第1の比較回路15から出力されるHレベルの信号)が入力される状態で書き込み制御クロックWCK2が入力されると、フラグセット信号FSを出力する。
【0061】
第2比較結果判定回路43は、書き込みクロックWCKに同期して第3の比較回路17からの出力信号を取り込む。詳しくは、第2比較結果判定回路43は、現在の書き込みポインタWQAと現在の読み出しポインタRQAの不一致を示す信号(具体的には第3の比較回路17から出力されるHレベルの信号)が入力される状態で書き込みクロックWCKが入力されると、フラグリセット信号FRを出力する。
【0062】
フラグ制御回路44は、フラグセット信号FS及びフラグリセット信号FRをフラグ出力回路45に出力する。このフラグ制御回路44は、FIFOリセット信号RSによって初期化される。また、フラグ制御回路44は、空フラグ発生/解除回路19から出力される空フラグEFによってフラグセット信号FS及びフラグリセット信号FRの出力を停止する。即ち、フラグ制御回路44は、空フラグ発生/解除回路19から空フラグEFが出力される場合に、満杯フラグ発生/解除回路18から満杯フラグFFが出力されないようにする。
【0063】
フラグ出力回路45は、フラグ制御回路44から出力されるフラグセット信号FSに応答して満杯フラグFFを出力する。そして、この状態において、フラグ出力回路45は、フラグ制御回路44からフラグリセット信号FRが出力されると、それに応答して満杯フラグFFの出力を停止する。
【0064】
図5は、第1比較結果判定回路42の具体的構成を示すブロック回路図である。尚、第2比較結果判定回路43は、第1比較結果判定回路42と同様な構成であるため、ここでは詳細な説明は省略する。
【0065】
第1比較結果判定回路42は、フリップフロップ回路51と、遅延回路52とを含む。フリップフロップ回路51は、クロック入力端子CLKに書き込み制御クロックWCK2を入力し、データ入力端子Dに第1の比較回路15からの出力信号を入力する。また、リセット入力端子RESには、データ出力端子Qから出力される信号が遅延回路52を介して入力される。従って、第1比較結果判定回路42は、次の書き込みポインタWQCと現在の読み出しポインタRQAの一致信号が入力される状態で書き込み制御クロックWCK2が入力されると、遅延回路52の遅延時間に対応したパルス幅を持つHレベルのフラグセット信号FSを比較結果判定信号として出力する。
【0066】
図6は、フラグ出力回路45の具体的構成を示すブロック回路図である。
フラグ出力回路45は、セット入力端子SET及びリセット入力端子RESを持つ一般的なフリップフロップ回路で構成され、セット入力端子SETにフラグセット信号FSを入力し、リセット入力端子RESにフラグリセット信号FRを入力する。このフリップフロップ回路のクロック入力端子CLK及びデータ入力端子Dには、例えばLレベルの信号が入力される。従って、フラグ出力回路45は、Hレベルのフラグセット信号FSに応答して満杯フラグFFを出力する(フリップフロップ回路からHレベルの信号が出力される)。そして、この状態において、フラグ出力回路45は、Hレベルのフラグリセット信号FRに応答して満杯フラグFFを解除する(フリップフロップ回路からLレベルの信号が出力される)。
【0067】
図7は、空フラグ発生/解除回路19の一構成例を示すブロック回路図である。この空フラグ発生/解除回路19は、クロック制御回路61と、比較結果判定手段としての第1及び第2比較結果判定回路62,63と、フラグ制御回路64と、フラグ出力回路65とを含む。尚、空フラグ発生/解除回路19の動作は上述した満杯フラグ発生/解除回路18の動作と同様であるため、ここでは詳細な説明を一部省略する。
【0068】
即ち、空フラグ発生/解除回路19は、次の読み出しポインタRQCと現在の書き込みポインタWQAの一致を示す信号(具体的には第2の比較回路16から出力されるHレベルの信号)が入力される状態で読み出し制御クロックRCK2が入力されると、空フラグEFを出力する。逆に、空フラグ発生/解除回路19は、現在の読み出しポインタRQAと現在の書き込みポインタWQAの不一致を示す信号(具体的には第3の比較回路17から出力されるHレベルの信号)が入力される状態で読み出しクロックRCKが入力されると、空フラグEFの出力を停止する。
【0069】
次に、このFIFOメモリ11の作用について説明する。
図9は、満杯フラグ発生/解除回路18の動作波形図である。尚、この動作波形図は、空フラグEFが発生されない場合について示したものである。
【0070】
今、タイミングtaの書き込みクロックWCKの立ち上がりに応答して、書き込み制御クロックWCK2が立ち上がる。この書き込み制御クロックWCK2の立ち上がりに応答して、書き込みカウンタ13は、現在の書き込みポインタWQA及び次の書き込みポインタWQCをインクリメントし、値“D”を持つ現在の書き込みポインタWQA及び値“E”を持つ次の書き込みポインタWQCをそれぞれ出力する。これにより、メモリ12は、値“D”を持つ現在の書き込みポインタWQAに対応するアドレスのメモリセルにデータを書き込む。
【0071】
また、その際、現在の読み出しポインタRQAは値“E”であり、メモリ12は、それに対応するアドレスのメモリセルからデータを読み出している。従って、次の書き込みポインタWQC(“E”)と現在の読み出しポインタRQA(“E”)が一致し、第1の比較回路15は、それらの一致状態(WQC=RQA)を検出してHレベルの信号を出力する。
【0072】
次いで、タイミングtbの書き込みクロックWCKの立ち上がりに応答して、書き込み制御クロックWCK2が立ち上がる。この書き込み制御クロックWCK2の立ち上がりに応答して、満杯フラグ発生/解除回路18の第1比較結果判定回路42は所定のパルス幅を持つフラグセット信号FSを出力し、フラグ制御回路44はそのフラグセット信号FSをフラグ出力回路45のセット入力端子SETに出力する。従って、フラグ出力回路45は満杯フラグFFを出力する(即ちフラグ出力回路45はHレベルの信号を出力する)。
【0073】
また、この書き込み制御クロックWCK2の立ち上がりに応答して、書き込みカウンタ13は、現在の書き込みポインタWQA及び次の書き込みポインタWQCをインクリメントし、値“E”を持つ現在の書き込みポインタWQA及び値“F”を持つ次の書き込みポインタWQCをそれぞれ出力する。これにより、メモリ12は、値“E”を持つ現在の書き込みポインタWQAに対応するアドレスのメモリセルにデータを書き込む。
【0074】
その後、読み出しクロックRCKの立ち上がりに応答して、読み出し制御クロックRCK2が立ち上がる。この読み出し制御クロックRCK2に応答して、読み出しカウンタ14は、現在の読み出しポインタRQA及び次の読み出しポインタRQCをインクリメントし、値“F”を持つ現在の読み出しポインタRQAと値“G”を持つ次の読み出しポインタRQCをそれぞれ出力する。これにより、メモリ12は、値“F”を持つ現在の読み出しポインタRQAに対応するアドレスのメモリセルからデータを読み出す。
【0075】
次いで、タイミングtcにおいて、満杯フラグFFが発生している状態(即ちフラグ出力回路45からHレベルの信号が出力されている状態)で書き込みクロックWCKが入力される。このとき、書き込みカウンタ13のクロック制御回路21は、書き込み制御クロックWCK2の出力を停止する。従って、現在の書き込みポインタWQA(“E”)及び次の書き込みポインタWQC(“F”)は更新されず、書き込み動作は行われない。
【0076】
また、このタイミングtcにおいて、現在の書き込みポインタWQA(“E”)と現在の読み出しポインタRQA(“F”)は一致していない。このとき、第3の比較回路17は、それらの不一致状態(WQA≠RQA)を検出してHレベルの信号を出力している。従って、満杯フラグ発生/解除回路18の第2比較結果判定回路43は、書き込みクロックWCKの立ち上がりに応答して所定のパルス幅を持つフラグリセット信号FRを出力し、フラグ制御回路44はそのフラグリセット信号FRをフラグ出力回路45のリセット入力端子RESに出力する。従って、フラグ出力回路45は満杯フラグFFを解除する(即ちフラグ出力回路45はLレベルの信号を出力する)。
【0077】
このように、満杯フラグFFは、次の書き込みポインタWQCと現在の読み出しポインタRQAが一致する状態で書き込み制御クロックWCK2が入力されると発生する。そして、発生した満杯フラグFFは、現在の書き込みポインタWQAと現在の読み出しポインタRQAが不一致の状態で書き込みクロックWCKが入力されると解除される。従って、満杯フラグFFの出力遅延は満杯フラグ発生/解除回路18での遅延のみによって決定される。
【0078】
図10は、満杯フラグ発生/解除回路18の別の動作波形図である。尚、この動作波形図は、読み出しクロックRCKの周波数が上述した図9に示す読み出しクロックRCKの周波数よりも低い場合を示すものであり、この場合には、満杯フラグFFの発生時間が長くなる(即ち書き込み動作が禁止される時間が長くなる)。このような場合にも、前記と同様に、満杯フラグFFの出力遅延は満杯フラグ発生/解除回路18での遅延のみによって決定される。
【0079】
図11は、空フラグ発生/解除回路19の動作波形図である。尚、この動作波形図は、満杯フラグFFが発生されない場合について示したものである。
本実施形態において、空フラグ発生/解除回路19の動作は上述した図9に示す満杯フラグ発生/解除回路18の動作と同様である。従って、ここでは詳細な説明を一部省略する。
【0080】
即ち、図11に示すように、空フラグEFは、次の読み出しポインタRQCと現在の書き込みポインタWQAが一致する状態で読み出し制御クロックRCK2が入力されると発生する(図中、例えばタイミングtfにおける読み出しクロックRCKの入力時)。そして、発生した空フラグEFは、現在の書き込みポインタWQAと現在の読み出しポインタRQAが不一致の状態で読み出しクロックRCKが入力されると解除される(図中、例えばタイミングtgにおける読み出しクロックRCKの入力時)。従って、空フラグEFの出力遅延は空フラグ発生/解除回路19での遅延のみによって決定される。
【0081】
図12は、空フラグ発生/解除回路19の別の動作波形図である。尚、この動作波形図は、書き込みクロックWCKの周波数が上述した図11に示す書き込みクロックWCKの周波数よりも低い場合を示すものであり、この場合には、空フラグEFの発生時間が長くなる(即ち読み出し動作が禁止される時間が長くなる)。このような場合にも、前記と同様に、空フラグEFの出力遅延は空フラグ発生/解除回路19での遅延のみによって決定される。
【0082】
尚、本実施形態のFIFOメモリ11において、満杯フラグ発生/解除回路18に備えられる第1比較結果判定回路42は、図8に示すように変更して構成してもよい。また、ここでは詳細な説明を省略するが、その他の第2比較結果判定回路43及び空フラグ発生/解除回路19に備えられる第1及び第2比較結果判定回路62,63の構成を同様にして変更してもよい。
【0083】
図8に示すように、この比較結果判定回路42aは、フリップフロップ回路51と、遅延回路52と、初期化手段としてのクロック立下り検出回路71と、オア回路72とで構成される。
【0084】
クロック立下り検出回路71は、書き込み制御クロックWCK2の立ち下がりを検出してパルス信号を発生させる。オア回路72は、このクロック立下り検出回路71からパルス信号が出力されると、遅延回路52から出力される信号に依らず、フリップフロップ回路51を強制的にリセットさせるための信号をリセット入力端子RESに出力する。
【0085】
このような比較結果判定回路42aでは、フリップフロップ回路51が仮にメタステーブル状態(出力が発振或いは中間電位で固定する等の不安定になる状態)となる場合にも、その状態が次のクロック(書き込み制御クロックWCK2)の立ち上がりまで続くことが防止される。これにより、比較結果判定回路42aの動作を安定させることができ、FIFOメモリ11の誤動作を確実に防止することができる。
【0086】
詳述すると、フリップフロップ回路51が書き込み制御クロックWCK2の立ち上がりに同期して第1の比較回路15の出力信号(次の書き込みポインタWQCと現在の読み出しポインタRQAの一致状態を示す信号)を取り込む際には、その第1の比較回路15から出力される信号が変化中である可能性がある。
【0087】
即ち、高速動作するシステムと低速動作するシステム間で行われるデータ転送では、上記したように、データの書き込み動作と読み出し動作とが非同期で行われる。このため、次の書き込みポインタWQCと現在の読み出しポインタRQAは、書き込みクロックWCKあるいは読み出しクロックRCKの何れによっても一致する状態となり得る。従って、フリップフロップ回路51が書き込み制御クロックWCK2の立ち上がりに同期して第1の比較回路15の出力信号を取り込む際には、次の書き込みポインタWQCと現在の読み出しポインタRQAが一致する状態、或いはその逆の状態に変化中である可能性がある。このような状態の信号をフリップフロップ回路51が取り込む場合、フリップフロップ回路51は出力が不安定となりメタステーブル状態となる。
【0088】
上述した図8に示す比較結果判定回路42aでは、こうしたメタステーブル状態になった場合にも、次の書き込み制御クロックWCK2の立ち下がりでフリップフロップ回路51が強制的にリセットされる。これにより、フリップフロップ回路51は、その後の書き込み制御クロックWCK2の立ち上がりでは安定して動作することができる。
【0089】
以上記述したように、本実施形態によれば、以下の効果を奏する。
(1)満杯フラグ発生/解除回路18は、次の書き込みポインタWQCと現在の読み出しポインタRQAが一致する状態で書き込み制御クロックWCK2が入力されると、それに応答して満杯フラグFFを生成する。これにより、満杯フラグFFの出力遅延は、満杯フラグ発生/解除回路18での遅延のみとなるため、メモリ12が満杯状態となった場合には満杯フラグFFを迅速に発生させることができる。従って、書き込みクロックWCKの周波数(即ちデータ送信側のシステムの動作周波数)を高い周波数に維持しながら、オーバーフローの発生を確実に防止することができる。
【0090】
(2)満杯フラグ発生/解除回路18は、現在の読み出しポインタRQAと現在の書き込みポインタWQAとが一致していない状態で書き込みクロックWCKが入力されると、それに応答して満杯フラグFFを解除する。従って、満杯フラグFFの解除も迅速に行うことができる。
【0091】
(3)空フラグ発生/解除回路19は、次の読み出しポインタRQCと現在の書き込みポインタWQAが一致する状態で読み出し制御クロックRCK2が入力されると、それに応答して空フラグEFを生成する。これにより、空フラグEFの出力遅延は、空フラグ発生/解除回路19での遅延のみとなるため、メモリ12が空状態となった場合には空フラグEFを迅速に発生させることができる。従って、読み出しクロックRCKの周波数(即ちデータ受信側のシステムの動作周波数)を高い周波数に維持しながら、アンダーフローの発生を確実に防止することができる。
【0092】
(4)空フラグ発生/解除回路19は、現在の読み出しポインタRQAと現在の書き込みポインタWQAとが一致していない状態で読み出しクロックRCKが入力されると、それに応答して空フラグEFを解除する。従って、空フラグEFの解除も迅速に行うことができる。
【0093】
(第二実施形態)
以下、本発明を具体化した第二実施形態を図13に従って説明する。
図13は、第二実施形態のFIFOメモリを示すブロック回路図である。尚、本実施形態のFIFOメモリ81は、第一実施形態のFIFOメモリ11におけるメモリ12をクロック同期型のメモリ82に変更して構成し、クロック制御回路83,84を追加した構成である。従って、同様な構成部分には同一符号を付してそれらの詳細な説明を省略する。
【0094】
クロック制御回路83は、満杯フラグFFに基づいて生成した書き込み制御クロックWCK2をメモリ82内部に設けられた図示しない第1アドレスデコーダに供給する。第1アドレスデコーダは、その書き込み制御クロックWCK2に応答してデータの書き込みを行うアドレス(メモリセル)を選択する。
【0095】
同様に、クロック制御回路84は、空フラグEFに基づいて生成した読み出し制御クロックRCK2をメモリ82内部に設けられた図示しない第2アドレスデコーダに供給する。第2アドレスデコーダは、その読み出し制御クロックRCK2に応答してデータの読み出しを行うアドレス(メモリセル)を選択する。
【0096】
メモリ82の書き込みポート(図示略)には、書き込みカウンタ13により生成される次の書き込みポインタWQCが入力され、読み出しポート(図示略)には、読み出しカウンタ14により生成される次の読み出しポインタRQCが入力される。
【0097】
詳述すると、書き込みカウンタ13は、書き込み制御クロックWCK2の入力に応答して現在の書き込みポインタWQAと次の書き込みポインタWQCを生成し、該生成した次の書き込みポインタWQCをメモリ82の第1アドレスデコーダに出力する。即ち、書き込みカウンタ13は、現在の書き込み動作のサイクル中に、あらかじめメモリ82に次の書き込みポインタWQCを通知する。これにより、メモリ82は、該通知された次の書き込みポインタWQCに対応するアドレスのメモリセルにその次のサイクルでデータを書き込むための準備をする。
【0098】
その後、書き込み制御クロックWCK2が入力されると、メモリ82は、予め通知された前記ポインタWQCに対応するアドレスのメモリセルにデータを書き込み、それと同時に書き込みカウンタ13は、同様にして次の書き込みポインタWQCをメモリ82に出力する。尚、ここでは、書き込み動作について説明したが、読み出し動作についても同様である。
【0099】
従って、本実施形態によれば、以下の効果を奏する。
(1)書き込み動作の遅延時間(メモリ82へのデータの書き込みが完了するまでの時間)を、第1アドレスデコーダにより予め選択したアドレスのメモリセルにデータを書き込む際の時間のみとすることができる。即ち、本実施形態では、書き込み動作は、書き込みカウンタ13での遅延時間及び第1アドレスデコーダでの遅延時間に影響されない。従って、書き込み動作を高速に行うことができる。
【0100】
(2)読み出し動作時の遅延時間(メモリ82からのデータの読み出しが完了するまでの時間)を、第2アドレスデコーダにより予め選択したアドレスのメモリセルからデータを読み出す際の時間のみとすることができる。即ち、本実施形態では、読み出し動作が、読み出しカウンタ14での遅延時間及び第2アドレスデコーダでの遅延時間に影響されない。従って、読み出し動作を高速に行うことができる。
【0101】
(第三実施形態)
以下、本発明を具体化した第三実施形態を図14に従って説明する。
図14は、第三実施形態のFIFOメモリを示すブロック回路図である。尚、本実施形態のFIFOメモリ91は、第2実施形態のFIFOメモリ81におけるメモリ82の構成を一部変更したものである。従って、同様な構成部分には同一符号を付してそれらの詳細な説明を省略する。
【0102】
同図に示すように、本実施形態のメモリ92は、複数のメモリセル101と、書き込み回路102と、読み出し回路103と、第1及び第2シフトレジスタ104,105とを含む。
【0103】
このようなメモリ92では、書き込み動作において、第1シフトレジスタ104は、書き込み制御クロックWCK2に同期してメモリセル101を順次選択し、書き込み回路102は、選択されたメモリセル101にデータを書き込む。一方、読み出し動作において、第2シフトレジスタ105は、読み出し制御クロックRCK2に同期してメモリセル101を順次選択し、読み出し回路103は、選択されたメモリセル101からデータを読み出す。
【0104】
従って、本実施形態によれば、以下の効果を奏する。
(1)本実施形態では、データの書き込み及び読み出しを行う際にメモリ92のアドレスを選択するためのアドレスデコーダを該メモリ92から省略することができる。このため、書き込み動作及び読み出し動作を高速に行うことが可能である。また、シフトレジスタ104,105は、一般にアドレスデコーダに比べて回路面積が小さいため、FIFOメモリ11の回路規模を小さくすることができる。
【0105】
尚、上記各実施形態は、以下の態様で実施してもよい。
・各実施形態では、書き込み制御クロックWCK2や読み出し制御クロックRCK2の立ち上がりに同期して満杯フラグFFや空フラグEFを発生させる構成としたが、各クロックWCK2,RCK2の立ち下がりに同期して満杯フラグFFや空フラグEFを発生させる構成としてもよい。
【0106】
・満杯フラグFFや空フラグEFを各クロックWCK2,RCK2の立ち下がりに同期して発生させる場合には、それらのクロックWCK2,RCK2の次の立ち上がりエッジを検出するクロック立上り検出回路をクロック立下り検出回路71の替わりに備える構成とすればよい。
【0107】
・書き込みカウンタ13,読出しカウンタ14の構成は各実施形態の構成のみに限定されない。
・また、第1〜第3の比較回路15〜17の構成は各実施形態の構成に限定されるものではない。即ち、各比較回路15〜17は各々入力される2つのポインタ(アドレス)が一致するか否かを検出することのできる構成であればよい。
【0108】
上記各実施形態の特徴をまとめると以下のようになる。
(付記1) 書き込みクロックに従って書き込みポインタを更新する書き込みカウンタと、読み出しクロックに従って読み出しポインタを更新する読み出しカウンタと、前記書き込みポインタに対応するメモリセルにデータを書き込む書き込み動作及び前記読み出しポインタに対応するメモリセルのデータを読み出す読み出し動作を行うメモリと、を備えるFIFOメモリであって、
現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させる満杯フラグ制御手段と、
現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させる空フラグ制御手段と
を備えることを特徴とするFIFOメモリ。(1)
(付記2) 書き込みクロックに従って書き込みポインタを更新する書き込みカウンタと、読み出しクロックに従って読み出しポインタを更新する読み出しカウンタと、前記書き込みポインタに対応するメモリセルにデータを書き込む書き込み動作及び前記読み出しポインタに対応するメモリセルのデータを読み出す読み出し動作を行うメモリと、を備えるFIFOメモリであって、
現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる書き込みクロックに同期して前記満杯フラグを解除する満杯フラグ制御手段と、
現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる読み出しクロックに同期して前記空フラグを解除する空フラグ制御手段と
を備えることを特徴とするFIFOメモリ。(2)
(付記3) 現在の読み出しポインタと次の書き込みポインタを比較し、該2つのポインタが一致する場合に前記満杯フラグを発生させるための信号を出力する第1の比較手段と、
現在の書き込みポインタと次の読み出しポインタを比較し、該2つのポインタが一致する場合に前記空フラグを発生させるための信号を出力する第2の比較手段と
を備えることを特徴とする付記1又は2記載のFIFOメモリ。(3)
(付記4) 現在の読み出しポインタと現在の書き込みポインタとを比較し、該2つのポインタが不一致である場合に前記満杯フラグ或いは前記空フラグを解除させるための信号を出力する第3の比較手段を備えることを特徴とする付記1乃至3の何れか一記載のFIFOメモリ。(4)
(付記5) 前記満杯フラグ制御手段は、前記第1の比較手段から出力される信号を前記満杯フラグにより制御された書き込みクロックに同期して取り込むための比較結果判定手段を備え、
前記空フラグ制御手段は、前記第2の比較手段から出力される信号を前記空フラグにより制御された読み出しクロックに同期して取り込むための比較結果判定手段を備える、ことを特徴とする付記3又は4記載のFIFOメモリ。(5)
(付記6) 前記満杯フラグ制御手段は、前記第3の比較手段から出力される信号を書き込みクロックに同期して取り込むための比較結果判定手段を備え、
前記空フラグ制御手段は、前記第3の比較手段から出力される信号を読み出しクロックに同期して取り込むための比較結果判定手段を備える、ことを特徴とする付記4又は5記載のFIFOメモリ。(6)
(付記7) 前記比較結果判定手段は、データ出力端子から出力される信号がリセット入力端子に帰還され所定の遅延時間に対応したパルス幅を持つようにパルス信号を生成するフリップフロップ回路を含むことを特徴とする付記5又は6記載のFIFOメモリ。
(付記8) 前記比較結果判定手段は、前記フリップフロップ回路が信号を取り込むときの書き込みクロック又は読み出しクロックのエッジと逆のエッジを検出して該フリップフロップ回路をリセットさせるための信号を生成する初期化手段を備えることを特徴とする付記7記載のFIFOメモリ。
(付記9) 前記書き込みカウンタは、
前記満杯フラグにより制御された書き込みクロックに同期して現在の書き込みポインタを生成する複数のフリップフロップ回路と、
前記複数のフリップフロップ回路から出力される信号に基づいて該現在の書き込みポインタをインクリメントした次の書き込みポインタを生成するカウントアップ論理回路と
を含むことを特徴とする付記1乃至8の何れか一記載のFIFOメモリ。
(付記10) 前記読み出しカウンタは、
前記空フラグにより制御された読み出しクロックに同期して現在の読み出しポインタを生成する複数のフリップフロップ回路と、
前記複数のフリップフロップ回路から出力される信号に基づいて該現在の読み出しポインタをインクリメントした次の読み出しポインタを生成するカウントアップ論理回路と
を含むことを特徴とする付記1乃至8の何れか一記載のFIFOメモリ。
(付記11) 前記メモリは、前記書き込みカウンタから出力される現在の書き込みポインタに応答して書き込み動作を行い、前記読み出しカウンタから出力される現在の読み出しポインタに応答して読み出し動作を行うことを特徴とする付記1乃至10の何れか一記載のFIFOメモリ。(7)
(付記12) 前記メモリは、前記書き込みカウンタから出力される次の書き込みポインタを予め入力して前記満杯フラグにより制御された書き込みクロックに同期して書き込み動作を行い、前記読み出しカウンタから出力される次の読み出しポインタを予め入力して前記空フラグにより制御された読み出しクロックに同期して読み出し動作を行うことを特徴とする付記1乃至10の何れか一記載のFIFOメモリ。(8)
(付記13) 前記メモリは、
複数のメモリセルと、
前記満杯フラグにより制御された書き込みクロックに同期して前記メモリセルを順次選択する第1シフトレジスタと、
該第1シフトレジスタにより選択されたメモリセルにデータを書き込む書き込み回路と、
前記空フラグにより制御された読み出しクロックに同期して前記メモリセルを順次選択する第2シフトレジスタと、
該第2シフトレジスタにより選択されたメモリセルのデータを読み出す読み出し回路と
を備えることを特徴とする付記1乃至10の何れか一記載のFIFOメモリ。(9)
(付記14) 付記1乃至13の何れか一記載のFIFOメモリを備えたことを特徴とする半導体装置。(10)
【0109】
【発明の効果】
以上詳述したように、本発明によれば、システム全体の性能を維持しながらデータのオーバーフロー及びアンダーフローの発生を確実に防止することのできるFIFOメモリ及びそのFIFOメモリを備えた半導体装置を提供することができる。
【図面の簡単な説明】
【図1】第一実施形態のFIFOメモリを示すブロック回路図である。
【図2】カウンタを示すブロック回路図である。
【図3】比較回路を示す回路図である。
【図4】満杯フラグ発生/解除回路を示すブロック回路図である。
【図5】比較結果判定回路を示すブロック回路図である。
【図6】フラグ出力回路を示すブロック回路図である。
【図7】空フラグ発生/解除回路を示すブロック回路図である。
【図8】別の比較結果判定回路を示すブロック回路図である。
【図9】満杯フラグ発生/解除回路の動作波形図である。
【図10】満杯フラグ発生/解除回路の動作波形図である。
【図11】空フラグ発生/解除回路の動作波形図である。
【図12】空フラグ発生/解除回路の動作波形図である。
【図13】第二実施形態のFIFOメモリを示すブロック回路図である。
【図14】第三実施形態のFIFOメモリを示すブロック回路図である。
【図15】従来のFIFOメモリを示すブロック回路図である。
【符号の説明】
12,82,92 メモリ
13 書き込みカウンタ
14 読み出しカウンタ
15 第1の比較手段としての第1の比較回路
16 第2の比較手段としての第2の比較回路
17 第3の比較手段としての第3の比較回路
18 満杯フラグ制御手段としての満杯フラグ発生/解除回路
19 空フラグ制御手段としての空フラグ発生/解除回路
EF 空フラグ
FF 満杯フラグ
RCK 読み出しクロック
RCK2 空フラグにより制御された読み出しクロックとしての読み出し制御クロック
RQA 現在の読み出しポインタ
RQC 次の読み出しポインタ
WCK 書き込みクロック
WCK2 満杯フラグにより制御された書き込みクロックとしての書き込み制御クロック
WQA 現在の書き込みポインタ
WQC 次の書き込みポインタ

Claims (10)

  1. 書き込みクロックに従って書き込みポインタを更新する書き込みカウンタと、読み出しクロックに従って読み出しポインタを更新する読み出しカウンタと、前記書き込みポインタに対応するメモリセルにデータを書き込む書き込み動作及び前記読み出しポインタに対応するメモリセルのデータを読み出す読み出し動作を行うメモリと、を備えるFIFOメモリであって、
    現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させる満杯フラグ制御手段と、
    現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させる空フラグ制御手段と
    を備えることを特徴とするFIFOメモリ。
  2. 書き込みクロックに従って書き込みポインタを更新する書き込みカウンタと、読み出しクロックに従って読み出しポインタを更新する読み出しカウンタと、前記書き込みポインタに対応するメモリセルにデータを書き込む書き込み動作及び前記読み出しポインタに対応するメモリセルのデータを読み出す読み出し動作を行うメモリと、を備えるFIFOメモリであって、
    現在の読み出しポインタと次の書き込みポインタが一致する状態で与えられる書き込みクロックに同期して満杯フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる書き込みクロックに同期して前記満杯フラグを解除する満杯フラグ制御手段と、
    現在の書き込みポインタと次の読み出しポインタが一致する状態で与えられる読み出しクロックに同期して空フラグを発生させ、現在の読み出しポインタと現在の書き込みポインタが一致していない状態で与えられる読み出しクロックに同期して前記空フラグを解除する空フラグ制御手段と
    を備えることを特徴とするFIFOメモリ。
  3. 現在の読み出しポインタと次の書き込みポインタを比較し、該2つのポインタが一致する場合に前記満杯フラグを発生させるための信号を出力する第1の比較手段と、
    現在の書き込みポインタと次の読み出しポインタを比較し、該2つのポインタが一致する場合に前記空フラグを発生させるための信号を出力する第2の比較手段と
    を備えることを特徴とする請求項1又は2記載のFIFOメモリ。
  4. 現在の読み出しポインタと現在の書き込みポインタとを比較し、該2つのポインタが不一致である場合に前記満杯フラグ或いは前記空フラグを解除させるための信号を出力する第3の比較手段を備えることを特徴とする請求項1乃至3の何れか一項記載のFIFOメモリ。
  5. 前記満杯フラグ制御手段は、前記第1の比較手段から出力される信号を前記満杯フラグにより制御された書き込みクロックに同期して取り込む比較結果判定手段を備え、
    前記空フラグ制御手段は、前記第2の比較手段から出力される信号を前記空フラグにより制御された読み出しクロックに同期して取り込む比較結果判定手段を備える、ことを特徴とする請求項3又は4記載のFIFOメモリ。
  6. 前記満杯フラグ制御手段は、前記第3の比較手段から出力される信号を書き込みクロックに同期して取り込む比較結果判定手段を備え、
    前記空フラグ制御手段は、前記第3の比較手段から出力される信号を読み出しクロックに同期して取り込む比較結果判定手段を備える、ことを特徴とする請求項4又は5記載のFIFOメモリ。
  7. 前記メモリは、前記書き込みカウンタから出力される現在の書き込みポインタに応答して書き込み動作を行い、前記読み出しカウンタから出力される現在の読み出しポインタに応答して読み出し動作を行うことを特徴とする請求項1乃至6の何れか一項記載のFIFOメモリ。
  8. 前記メモリは、前記書き込みカウンタから出力される次の書き込みポインタを予め入力して前記満杯フラグにより制御された書き込みクロックに同期して書き込み動作を行い、前記読み出しカウンタから出力される次の読み出しポインタを予め入力して前記空フラグにより制御された読み出しクロックに同期して読み出し動作を行うことを特徴とする請求項1乃至6の何れか一項記載のFIFOメモリ。
  9. 前記メモリは、
    複数のメモリセルと、
    前記満杯フラグにより制御された書き込みクロックに同期して前記メモリセルを順次選択する第1シフトレジスタと、
    該第1シフトレジスタにより選択されたメモリセルにデータを書き込む書き込み回路と、
    前記空フラグにより制御された読み出しクロックに同期して前記メモリセルを順次選択する第2シフトレジスタと、
    該第2シフトレジスタにより選択されたメモリセルのデータを読み出す読み出し回路と
    を備えることを特徴とする請求項1乃至6の何れか一項記載のFIFOメモリ。
  10. 請求項1乃至9の何れか一項記載のFIFOメモリを備えたことを特徴とする半導体装置。
JP2002221613A 2002-07-30 2002-07-30 Fifoメモリ及び半導体装置 Withdrawn JP2004062630A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002221613A JP2004062630A (ja) 2002-07-30 2002-07-30 Fifoメモリ及び半導体装置
US10/629,805 US20040022099A1 (en) 2002-07-30 2003-07-30 FIFO memory and semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002221613A JP2004062630A (ja) 2002-07-30 2002-07-30 Fifoメモリ及び半導体装置

Publications (1)

Publication Number Publication Date
JP2004062630A true JP2004062630A (ja) 2004-02-26

Family

ID=31184868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002221613A Withdrawn JP2004062630A (ja) 2002-07-30 2002-07-30 Fifoメモリ及び半導体装置

Country Status (2)

Country Link
US (1) US20040022099A1 (ja)
JP (1) JP2004062630A (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100411382C (zh) * 2004-03-04 2008-08-13 华为技术有限公司 一种先进先出处理芯片及其数据更新方法
US7464287B2 (en) * 2004-03-31 2008-12-09 Intel Corporation Strategy to verify asynchronous links across chips
US7457913B2 (en) * 2006-03-22 2008-11-25 Infineon Technologies Ag Finding a data pattern in a memory
US7454559B2 (en) * 2006-03-22 2008-11-18 Infineon Technologies Ag Filtering bit position in a memory
US7415569B2 (en) * 2006-03-22 2008-08-19 Infineon Technologies Ag Memory including a write training block
US7565466B2 (en) * 2006-03-22 2009-07-21 Infineon Technologies Ag Memory including an output pointer circuit
US9807161B2 (en) * 2013-09-16 2017-10-31 Axis Ab Distributed events in an access control system
US9880961B2 (en) 2013-11-27 2018-01-30 Arm Limited Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
US9595308B1 (en) * 2016-03-31 2017-03-14 Altera Corporation Multiple-die synchronous insertion delay measurement circuit and methods
US10923175B2 (en) 2018-01-31 2021-02-16 Samsung Electronics Co., Ltd. Memory device adjusting duty cycle and memory system having the same
JP6988863B2 (ja) * 2019-08-08 2022-01-05 横河電機株式会社 プロトコルコンバータ、データ伝送方法、データ伝送プログラム、及び、データ伝送システム
CN111783167B (zh) * 2020-07-24 2024-10-01 Oppo广东移动通信有限公司 Fifo读写控制电路、芯片、电子设备及数据传输方法
CN112416823B (zh) * 2020-11-15 2024-05-03 珠海一微半导体股份有限公司 一种突发模式下的传感器数据读写控制方法、系统及芯片
CN113867681B (zh) * 2021-09-30 2024-03-08 海光信息技术股份有限公司 数据处理方法及装置、数据处理设备和存储介质
US11960731B2 (en) * 2022-06-02 2024-04-16 Micron Technology, Inc. FIFO memory error condition detection

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5121346A (en) * 1989-03-31 1992-06-09 Sgs-Thomson Microelectronics, Inc. Difference comparison between two asynchronous pointers and a programmable value
US5526306A (en) * 1994-02-10 1996-06-11 Mega Chips Corporation Semiconductor memory device and method of fabricating the same
US6745265B1 (en) * 2000-03-21 2004-06-01 Agere Systems Inc. Method and apparatus for generating status flags in a memory device
JP3803246B2 (ja) * 2000-12-05 2006-08-02 松下電器産業株式会社 非同期fifo回路
US6795360B2 (en) * 2001-08-23 2004-09-21 Integrated Device Technology, Inc. Fifo memory devices that support all four combinations of DDR or SDR write modes with DDR or SDR read modes

Also Published As

Publication number Publication date
US20040022099A1 (en) 2004-02-05

Similar Documents

Publication Publication Date Title
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
KR100337052B1 (ko) 동기화된 독출 포인터 및 기록 포인터를 갖는 2 중 포트 fifo
US5365485A (en) Fifo with fast retransmit mode
US6366529B1 (en) Fast FiFo memory storage system
JP2004062630A (ja) Fifoメモリ及び半導体装置
US8001409B2 (en) Synchronization device and methods thereof
JP3645584B2 (ja) データ転送同期装置
US5857005A (en) Method and apparatus for synchronizing transfer of data between memory cells
US6802036B2 (en) High-speed first-in-first-out buffer
US5781802A (en) First-in-first-out (FIFO) controller for buffering data between systems which are asynchronous and free of false flags and internal metastability
US8176353B2 (en) Method for the data transfer between at least two clock domains
US6286072B1 (en) System and method for synchronizing data communication between asynchronous buses
US7870310B2 (en) Multiple counters to relieve flag restriction in a multi-queue first-in first-out memory system
US5488712A (en) Memory circuit with pipeline processing
US7136309B2 (en) FIFO with multiple data inputs and method thereof
EP1317085B1 (en) A method and circuit for initializing a de-skewing buffer in a clock forwarded system
US7130984B2 (en) First-in first-out memory system with shift register fill indication
US7523232B2 (en) Mark/re-read and mark/re-write operations in a multi-queue first-in first-out memory system
US9880961B2 (en) Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
US11532338B1 (en) Mediating between asynchronous clock domains while preventing false indications of FIFO occupancy
JP4696003B2 (ja) データ転送回路
JP4757582B2 (ja) データ転送動作終了検知回路及びこれを備える半導体記憶装置
JP4825065B2 (ja) クロック乗せ換え回路
JP2005321933A (ja) データ入出力装置およびデータ入出力方法
JP3119793B2 (ja) クロック乗せ換え回路

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20051004