JP3790158B2 - Fifo回路 - Google Patents
Fifo回路 Download PDFInfo
- Publication number
- JP3790158B2 JP3790158B2 JP2001396356A JP2001396356A JP3790158B2 JP 3790158 B2 JP3790158 B2 JP 3790158B2 JP 2001396356 A JP2001396356 A JP 2001396356A JP 2001396356 A JP2001396356 A JP 2001396356A JP 3790158 B2 JP3790158 B2 JP 3790158B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- clock
- pointer
- circuit
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Synchronisation In Digital Transmission Systems (AREA)
Description
【発明の属する技術分野】
この発明はFIFO(先入れ先出し)回路に関し、特に、入力側と出力側とのクロック信号が相互に同期していない場合に、データの入出力を効率よく行うFIFO回路に関する。
【0002】
【従来の技術】
パーソナルコンピュータと他の機器とを接続するとき、互いのクロック信号が同期している必要がある。もし、両者のクロック信号が同期していない場合には、データを転送することができない。このため、互いのクロック信号を同期させるためにFIFO回路が用いられている。
【0003】
そのようなFIFO回路として、たとえば特開2001−222407号公報に記載されている。図5はそのFIFO回路のブロック図である。
【0004】
図5において、FIFO回路210には入力制御回路211と出力制御回路202とが接続されている。入力データ端子131から入力されたデータはデュアルポートメモリ110に与えられ、出力データ端子132を介して出力制御回路202に出力される。入力制御回路211の入力要求端子121から入力要求信号と、入力クロック端子101から入力クロック信号とが入力ポインタ生成回路141に与えられる。
【0005】
入力ポインタ生成回路141は入力要求信号に応じて、入力クロック信号に同期した入力ポインタを生成してデュアルポートメモリ110の入力ポインタ181に与えるとともに、クロック乗換回路162に与える。入力ポインタ181は入力クロックに同期してデュアルポートメモリ110のどこに格納するかを示している。クロック乗換回路162は入力ポインタ生成回路141で生成された入力ポインタを出力クロック信号に同期させて減算器172に与える。
【0006】
一方、出力制御回路202の出力要求端子122から出力要求信号と、出力クロック端子102から出力クロック信号とが出力ポインタ生成回路142に与えられる。出力ポインタ生成回路142は出力要求信号に応じて、出力クロック信号に同期した出力ポインタ22を生成してデュアルポートメモリ110の出力ポインタ182に与えるとともに、クロック乗換回路161に与える。出力ポインタ182は出力クロック信号に同期しかつ出力要求信号にしたがってデュアルポートメモリ110のどこからデータを出力するのかを示している。クロック乗換回路161は出力ポインタ生成回路142で生成された出力ポインタを出力クロック信号に同期させて減算器171に与える。
【0007】
減算器172はクロック乗換回路162の出力の入力ポインタから出力ポインタ生成回路142の出力の出力ポインタを減算し、出力可能数を出力クロック同期端子112から出力制御回路202に出力する。また、減算器171はクロック乗換回路161の出力の出力ポインタから入力ポインタ生成回路141の出力の入力ポインタを減算し、そのうちのMSBを1ビットインバータ118で反転し、入力可能数を入力クロック同期端子111から出力する。
【0008】
このFIFO回路は入力クロックから出力クロックへの乗換は、一般にビット幅の大きなデータではなく、ビット幅の小さなポインタを通して行なわれるため、より少ない回路規模でクロックの乗換が可能となるという特徴がある。
【0009】
【発明が解決しようとする課題】
しかしながら、図5に示したFIFO回路では、ポインタというビット幅の小さなクロック乗換となっているが、複数ビットであるため、各ビット分のクロック乗換回路が必要となるため、規模が大きくなるという欠点がある。
【0010】
それゆえに、この発明の主たる目的は回路面積の縮小を図ったFIFO回路を提供することである。
【0011】
【課題を解決するための手段】
この発明は、記憶手段と、入力クロックに同期した入力ポインタを生成する入力側用入力ポインタ生成回路と、入力要求信号を出力クロックに同期させる出力側用クロック乗換回路と、出力側用クロック乗換回路によって出力クロックに同期された入力要求信号によって出力側入力ポインタを生成する出力側入力ポインタ生成回路と、出力クロックに同期した出力ポインタを生成する出力側出力ポインタ生成回路と、出力側要求信号を入力クロックに同期させる入力側用クロック乗換回路と、出力側用クロック乗換回路によって入力クロックに同期された出力要求信号によって入力側出力ポインタを生成する入力側出力ポインタ生成回路と、入力クロックに同期した入力ポインタと入力クロックに同期する出力ポインタから入力クロック同期のFIFO状態を生成する入力クロック同期FIFO状態生成回路と、出力クロック同期の入力ポインタと出力クロック同期の出力ポインタとから出力クロックに同期したFIFO状態を生成する出力クロック同期FIFO状態生成回路と、入力クロック同期FIFO状態生成回路の指示に応じて記憶手段にデータを入力する入力部と、出力クロック同期FIFO状態生成回路の指示に応じて記憶手段からデータを出力する出力部とを備えて構成される。
【0012】
【発明の実施の形態】
図1はこの発明の一実施形態のFIFO回路を示すブロック図である。図1において、図示しないがFIFO回路の入力側には図5に示した入力制御回路211が接続されており、出力側には出力制御回路202が接続されている。
【0013】
入力データ1はたとえばデュアルポートメモリなどのメモリ2に与えられ、メモリ2から出力データ3が出力される。入力クロック信号4はクロック乗換回路5と入力ポインタ生成回路6と出力ポインタ生成回路7とクロック乗換回路17とに与えられる。クロック乗換回路5は出力要求信号15を入力クロック信号4に同期させて出力する。
【0014】
入力ポインタ生成回路6は入力クロック信号4に同期し、入力要求信号10に応じてメモリ2のどの領域に入力データ1を格納するかを示すポインタである。出力ポインタ生成回路7は出力要求信号15をクロック乗換回路5で入力クロック信号4に同期させた信号に応じて、入力クロック信号4に同期してメモリ2のどの領域から出力データ3を出力するかを示すポインタである。入力ポインタ生成回路6の出力と出力ポインタ生成回路7の出力は減算器8に与えられる。減算器8は出力ポインタ生成回路7の出力値から入力ポインタ生成回路6の出力値を減算して入力可能数を示す信号9を入力制御回路211に出力する。
【0015】
出力制御回路202から与えられる出力クロック信号16は出力ポインタ生成回路11と入力ポインタ生成回路12とクロック乗換回路5とクロック乗換回路17とに与えられる。クロック乗換回路17は入力要求信号10を出力クロック信号16に同期させて出力させる。出力ポインタ生成回路11は出力クロック信号16に同期し、出力要求信号15に応じてメモリ2のどの領域からデータを出力するのかを示すポインタである。入力ポインタ生成回路12は入力要求信号10をクロック乗換回路17で出力クロック信号16に同期させた信号にしたがって、出力クロック信号16に同期してメモリ2のどの領域へ入力データ1を格納するのかを示すポインタである。出力ポインタ生成回路11の出力と入力ポインタ生成回路12の出力は減算器13に与えられる。減算器13は入力ポインタ生成回路12の出力から出力ポインタの出力を減算して出力可能数を示す信号14を出力する。
【0016】
次に、この発明の一実施形態の動作について説明する。
(初期状態)
初期状態において、入力ポインタ生成回路6と、出力ポインタ生成回路11の出力値は共に0である。すなわち、入力クロック信号4に同期した入力ポインタおよび出力ポインタの値は共に0であるので、減算器8の出力の入力可能数は2nであり、減算器13の出力の出力可能数は0である。
(FIFOへのデータ入力)
入力側の減算器8の出力である入力可能数が0のときはメモリ2が一杯であるので外部からのFIFOへの入力は禁止される。次に、FIFO外部からの入力要求が禁止されていないときに、メモリ2への入力データ1が入力され、入力要求信号10がアサートされたとする。次の入力クロック信号4が入力されると、入力ポインタ生成回路6の出力値として指定されたメモリ2内の領域に入力データ1が書込まれ、併せて入力ポインタ生成回路6が出力する入力ポインタの値がインクリメントされる。
【0017】
一方、出力側のクロック乗換回路17は、入力要求信号10を出力クロック信号16に同期させて、入力ポインタ生成回路12に与える。入力ポインタ生成回路12は出力クロック信号16に同期して出力側の入力ポインタを生成する。
(FIFOからのデータ出力)
出力可能数信号14が0のときはメモリ2が空であるので、FIFO回路外部からの出力要求は禁止される。
【0018】
次に、FIFO回路外部からの出力要求が禁止されていないときに、出力要求信号15がアサートされたとする。次の出力クロック信号16によって、出力ポインタ生成回路11の出力値として指定されたメモリ2内のアドレスのメモリセルから出力データ3が出力され、併せて出力側の出力ポインタ生成回路11が出力する出力ポインタの値がインクリメントされる。
【0019】
また、入力側用のクロック乗換回路5は、出力要求信号15を入力クロック信号4に同期させて、入力側の出力ポインタ生成回路7に与える。出力ポインタ生成回路7は入力クロック信号4に同期して入力側の出力ポインタを生成する。
【0020】
なお、上述の説明では、説明の都合上初期状態における入力ポインタ生成回路6の出力値および出力ポインタ生成回路11の出力値は0としたが、これは実装上任意に決定してもよい。
【0021】
また、入力ポインタ生成回路6および出力ポインタ生成回路11は、それぞれ入力要求および出力要求がアサートされたときにインクリメントされるものとしたが、デクリメントされるように実装してもよいのはもちろんである。
【0022】
上述のごとく、この実施形態のFIFO回路によれば、異なるクロック周期を有する機器間を接続するFIFOとしての動作を実現できる。そして、図示しない入力制御回路は入力ポインタのクロック乗換を待たずに入力クロック信号4ごとに入力要求を出し得るので、FIFO回路の転送性能は、入力クロック信号4と出力クロック信号16のうち、周波数の低い方で律速される。これは従来のFIFO回路の転送性能と比べて、2倍の転送性能となる。
【0023】
なお、従来は2^n語のFIFOに対して、nビットのポインタを用いていたため、入力ポインタと出力ポインタとの一致検出のみによってFIFOの状態を生成することができなかった。これは、入力ポインタと出力ポインタとが一致する状況として、FIFOが空きである場合と、FIFOが一杯である場合の2通りの場合があり得るからである。
【0024】
図2は図1に示したクロック乗換回路としてのプロテクテッド・ハンドシェイク回路を示す図である。図2において、ラッチ31〜34はハンドシェイク回路を構成しており、その詳細はたとえば「Desiging ASICS」 トライエックス刊の130頁(第5章)の図5.2、131頁の説明に記載されているものであり、ラッチ31と32との間にDタイプラッチ35が接続され、禁止ラインの途中にDタイプラッチ36が接続されている。そして、要求信号のクロック乗換回路としてこれを利用して同期システムの内部状態を保護することにより、相互に非同期入出力クロックに対しても全く安全にFIFOを機能させることができる。
【0025】
図3は図1に示したクロック乗換回路としてのTタイプ・サービス・ラッチを持つハンドシェイク回路を示す図である。
【0026】
図3において、図2と同様にしてラッチ31〜34はハンドシェイク回路を構成しており、ラッチ31と32との間にTタイプラッチ37を接続したものである。これを用いることにより、データ転送後すぐにリクエストラッチを使用することが可能になり、転送スループットが向上する。
【0027】
図4は図1に示した入力要求信号および出力要求信号のクロック乗換回路としてのジェントルマン・アグリーメント回路を示す図である。図4において、サービスラッチ31と、リクエストラッチ32と、ラッチ33,34によってハンドシェイク回路が構成され、サービスラッチ31とリクエストラッチ32との間にプロテクションラッチ38が接続され、禁止ラインの途中にもプロテクションラッチ39が接続されている。
【0028】
これを用いることにより、FIFO全体を同期要素のみによって実現することが可能になる。また、データ有効は出力せず、さらにリクエスト要求入力と禁止ラインはインバータを介して接続されている。
【0029】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【0030】
【発明の効果】
以上のように、この発明によれば、送信側と受信側とで相互にクロック周波数が相違する機器、システムでの接続用に使用されるFIFO回路において、データの転送の必要が生じた際には転送レートが高く、入力制御および出力制御に対してディップスティックを提供でき、しかも回路規模の小さい回路を実現できる。
【図面の簡単な説明】
【図1】 この発明の一実施形態におけるFIFO回路のブロック図である。
【図2】 図1に示したクロック乗換回路としてのプロテクテッド・ハンドシェイク回路を示す図である。
【図3】 図1に示したクロック乗換回路としてのTタイプ・サービス・ラッチを持つハンドシェイク回路を示す図である。
【図4】 図1に示したクロック乗換回路としてのジェントルマン・アグリーメント回路を示す図である。
【図5】 従来のFIFO回路を示すブロック図である。
【符号の説明】
1 入力データ、2 メモリ、3 出力データ、4 入力クロック信号、5,17 クロック乗換回路、6,12 入力ポインタ生成回路、7,11 出力ポインタ生成回路、8,13 減算器、9 入力可能数信号、10 入力要求信号、14 出力可能数信号、15 出力要求信号、16 出力クロック信号。
Claims (1)
- 記憶手段と、
入力クロックに同期した入力ポインタを生成する入力側用入力ポインタ生成回路と、
入力要求信号を出力クロックに同期させる出力側用クロック乗換回路と、
前記出力側用クロック乗換回路によって出力クロックに同期された入力要求信号によって出力側入力ポインタを生成する出力側入力ポインタ生成回路と、
出力クロックに同期した出力ポインタを生成する出力側出力ポインタ生成回路と、
前記出力側要求信号を入力クロックに同期させる入力側用クロック乗換回路と、
前記出力側用クロック乗換回路によって入力クロックに同期された出力要求信号によって入力側出力ポインタを生成する入力側出力ポインタ生成回路と、
前記入力クロックに同期した入力ポインタと前記入力クロックに同期する出力ポインタから入力クロック同期のFIFO状態を生成する入力クロック同期FIFO状態生成回路と、
前記出力クロック同期の入力ポインタと前記出力クロック同期の出力ポインタとから前記出力クロックに同期したFIFO状態を生成する出力クロック同期FIFO状態生成回路と、
前記入力クロック同期FIFO状態生成回路の指示に応じて前記記憶手段にデータを入力する入力部と、
前記出力クロック同期FIFO状態生成回路の指示に応じて前記記憶手段からデータを出力する出力部とを備えた、FIFO回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001396356A JP3790158B2 (ja) | 2001-12-27 | 2001-12-27 | Fifo回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001396356A JP3790158B2 (ja) | 2001-12-27 | 2001-12-27 | Fifo回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003198518A JP2003198518A (ja) | 2003-07-11 |
JP3790158B2 true JP3790158B2 (ja) | 2006-06-28 |
Family
ID=27602472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001396356A Expired - Fee Related JP3790158B2 (ja) | 2001-12-27 | 2001-12-27 | Fifo回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3790158B2 (ja) |
-
2001
- 2001-12-27 JP JP2001396356A patent/JP3790158B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003198518A (ja) | 2003-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6260152B1 (en) | Method and apparatus for synchronizing data transfers in a logic circuit having plural clock domains | |
JP2610213B2 (ja) | 同期装置及び同期方法 | |
US6134155A (en) | Synchronized circuit for coordinating address pointers across clock domains | |
JP5379826B2 (ja) | 混合された非同期および同期システム用少待ち時間fifo回路 | |
JP3156813B2 (ja) | バッファ制御回路 | |
JP3645584B2 (ja) | データ転送同期装置 | |
JP3580242B2 (ja) | シリアル/パラレル変換回路、データ転送制御装置及び電子機器 | |
JPH09222988A (ja) | コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路 | |
US7352836B1 (en) | System and method of cross-clock domain rate matching | |
US6249875B1 (en) | Interface circuit using plurality of synchronizers for synchronizing respective control signals over a multi-clock environment | |
US20100322365A1 (en) | System and method for synchronizing multi-clock domains | |
US5539739A (en) | Asynchronous interface between parallel processor nodes | |
TW569087B (en) | Efficient clock start and stop apparatus for clock forwarded system I/O | |
JP3429994B2 (ja) | セルバッファ回路 | |
JP3790158B2 (ja) | Fifo回路 | |
US6952791B2 (en) | Method and circuit for initializing a de-skewing buffer in a clock forwarded system | |
WO2006056904A2 (en) | Globally asynchronous locally synchronous systems | |
US9715914B1 (en) | Polyphase buffer for rate-conversion | |
EP3739463B1 (en) | Circuit for asynchronous data transfer | |
JP3475857B2 (ja) | ソースシンクロナス転送方式 | |
JP3138865B2 (ja) | 非同期式先入先出メモリ装置の制御回路 | |
US6956788B1 (en) | Asynchronous data structure for storing data generated by a DSP system | |
US7899955B2 (en) | Asynchronous data buffer | |
JP2001222407A (ja) | Fifo回路 | |
JP3592169B2 (ja) | 非同期データ転送制御装置および非同期データ転送制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040618 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051207 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060322 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060330 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090407 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100407 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110407 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120407 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130407 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |