JPH10112178A - Fifoメモリおよびその製造方法 - Google Patents

Fifoメモリおよびその製造方法

Info

Publication number
JPH10112178A
JPH10112178A JP8281331A JP28133196A JPH10112178A JP H10112178 A JPH10112178 A JP H10112178A JP 8281331 A JP8281331 A JP 8281331A JP 28133196 A JP28133196 A JP 28133196A JP H10112178 A JPH10112178 A JP H10112178A
Authority
JP
Japan
Prior art keywords
control unit
location flag
data
circuit
read
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.)
Pending
Application number
JP8281331A
Other languages
English (en)
Inventor
Hirosuke Terakago
博裕 寺籠
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing Co 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP8281331A priority Critical patent/JPH10112178A/ja
Publication of JPH10112178A publication Critical patent/JPH10112178A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)

Abstract

(57)【要約】 【課題】 ハードマクロモジュールを用いた構成にして
設計作業を単純化する。 【解決手段】 異なるクロックで動作する第1の回路1
から第2の回路2へ、デジタルデータを転送する際に、
データの受け渡しを行う機能をもったFIFOメモリ1
0を設計する。複数の記憶部11a〜11fからなるメ
モリモジュール11と、複数の制御部12a〜12fか
らなる制御モジュール12とを配置する。各制御部に
は、書込場所を示すフラグW(論理値1)および読出場
所を示すフラグR(論理値1)を格納する機能と、書込
処理および読出処理が完了するたびに、これらのフラグ
を後段の制御部へ転送する機能とを設ける。フラグRに
フラグWが追いついたら、満状態を示す信号FULLを
送信し、フラグWにフラグRが追いついたら、空状態を
示す信号EMPTYを送信する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はFIFOメモリに関
し、特に、動作速度の異なる2つの回路間でデジタルデ
ータを転送する際に、両回路の間でデータの受け渡しを
行う機能をもったFIFOメモリに関する。
【0002】
【従来の技術】互いに動作速度の異なる回路間でデジタ
ルデータの転送を行う場合、両者のクロック周波数が異
なるため、データを一時的に蓄積して受け渡しを媒介す
るFIFO(First In First Out)メモリを中間に設け
る必要がある。すなわち、第1のクロックで動作する第
1の回路から転送すべきデータが出力された場合、第2
のクロックで動作する第2の回路は、このデータを直ち
に取り込むことができないので、FIFOメモリを用い
てデータを一時的に蓄積しておく必要がある。FIFO
メモリに蓄積されたデータは、蓄積された順に、第2の
クロックに同期して第2の回路へと取り込まれる。
【0003】従来のFIFOメモリとしては、デュアル
ポートSRAMを利用したものが一般的である。第1の
回路から第1のクロックに同期して出力されたデータ
は、デュアルポートSRAM内の第1のポートを介して
所定のアドレスへと書き込まれ、書き込まれたデータ
は、第2のポートを介して第2のクロックに同期して第
2の回路へと読み出される。このデュアルポートSRA
Mに対する書込アドレスと読出アドレスとは別個に管理
され、それぞれのアドレスについてポインタが設けられ
る。第1の回路からデータが出力されると、このデータ
は書込ポインタが示すアドレスに書き込まれ、書き込み
後に書込ポインタの値は更新される。一方、第2の回路
へは、読出ポインタが示すアドレスからデータが読み出
され、読み出し後に読出ポインタの値は更新される。こ
うして、両回路を媒介するFIFOメモリでは、データ
の先入れ先出し処理が行われることになる。
【0004】また、一般的なFIFOメモリには、第1
の回路に対してメモリが満状態であることを示す信号F
ULLを送信する機能と、第2の回路に対してメモリが
空状態であることを示す信号EMPTYを送信する機能
とが備わっている。これは、第2の回路へのデータ取り
込み処理が遅延した場合には、第1の回路から次々に出
力されたデータによってFIFOメモリが満状態となる
ので、信号FULLを第1の回路へ送信して、データの
出力処理を中断させ、逆に、第1の回路からのデータ出
力処理が遅延した場合には、第2の回路が取り込むべき
データがFIFOメモリ内には存在しない空状態となる
ので、信号EMPTYを第2の回路へ送信して、データ
の取り込み処理を中断させるためである。信号FULL
や信号EMPTYは、書込ポインタの値と読出ポインタ
の値との差に基づいて発生させることができる。
【0005】
【発明が解決しようとする課題】上述したように、従来
の一般的なFIFOメモリは、デュアルポートSRAM
を利用したものであるが、このデュアルポートSRAM
へのアクセスを統括制御するために、専用のコントロー
ル部が必要になる。この専用のコントロール部は、書込
ポインタや読出ポインタの管理や、信号FULLや信号
EMPTYを発生する処理などを行うための回路であ
る。ところが、一般的なデュアルポートSRAMは、ハ
ードマクロモジュールとして、セルライブラリに用意さ
れている既製のものを利用して設計することができる
が、専用のコントロール部は、このようなセルライブラ
リ内の汎用モジュールを利用することはできず、カウン
タ、比較器、組み合わせ論理回路、などの部品を組み合
わせたソフトマクロモジュール(ネットリストモジュー
ル)として、その都度、新たに設計せざるを得ない。近
年では、ICの設計を、自動マスクレイアウトツールを
用いた自動配置配線によって効率的に行うのが主流であ
るが、セルライブラリ内に用意された既製のモジュール
だけを用いた設計を行うことができないと、このような
効率的な設計作業を行う上で大きな支障となる。
【0006】たとえば、設計者は、FIFOメモリを組
み込んだ回路の論理設計を行う段階で、FIFOメモリ
の遅延特性を見積もった設計を行う必要がある。しか
も、この論理設計に基づいて、自動マスクレイアウトツ
ールを用いた自動配置配線を行った結果、実際のレイア
ウトにおける遅延特性が見積もりと大きく異なった場合
には、再び、論理設計をやり直す必要がある。もちろ
ん、このような再設計を行わざるを得ない事態を避ける
ために、遅延特性の見積もりに十分に余裕をみた論理設
計を行うことも可能であるが、余裕をみればみるほど、
本来の実効能力よりも劣った論理設計しかできないこと
になる。
【0007】特に、近年では、ASIC(Application
Specific Integrated Circuit :特定用途向け集積回
路)の需要が高まってきており、SOG−GA(Sea Of
Gate- Gate Array:ゲート敷き詰め型のゲートアレ
イ)を利用してASICを設計することが広く行われる
ようになってきている。このようなSOG−GAを利用
して設計された回路では、任意のビット数、任意のワー
ド数をもったFIFOメモリが要求されることになる
が、このように任意の記憶容量をもったFIFOメモリ
を、ソフトマクロモジュールとして設計する作業は多大
な労力と時間を要する作業になる。特に、2のべき乗で
表される数(2,4,8,16,32,…)以外のワー
ド数をもったFIFOメモリを実現する必要がある場
合、アドレスポインタを単なるカウンタによって構成す
ることができず、論理設計は非常に複雑な作業にならざ
るを得ない。
【0008】そこで本発明は、設計作業を単純化させる
ことができるFIFOメモリおよびその製造方法を提供
することを目的とする。
【0009】
【課題を解決するための手段】
(1) 本発明の第1の態様は、第1のクロックで動作す
る第1の回路から、第2のクロックで動作する第2の回
路へ、デジタルデータを転送する際に、両回路の間でデ
ータの受け渡しを行う機能をもったFIFOメモリにお
いて、転送すべきデータのビット数に応じた容量をもつ
記憶部を、複数M個配置してなるメモリモジュールと、
各記憶部に対応して設けられたM個の制御部からなる制
御モジュールと、を用意し、各制御部には、書込場所フ
ラグWおよび読出場所フラグRを格納する機能と、これ
らのフラグを後段の制御部へ転送する機能とを設け、リ
セット信号が与えられたときに、書込場所フラグWおよ
び読出場所フラグRが、初段となる所定の制御部に格納
されるようにし、第1の回路から第1のクロックに同期
してデータが出力されたら、メモリモジュールは、その
時点において書込場所フラグWが格納されている制御部
に対応する記憶部に、この出力されたデータを書き込む
処理を行い、書込場所フラグWを格納していた制御部
は、この書込場所フラグWを後段の制御部へと転送する
処理を行い、第2の回路から第2のクロックに同期した
データ入力の要求があったら、メモリモジュールは、そ
の時点において読出場所フラグRが格納されている制御
部に対応する記憶部から、データを読出して第2の回路
へ与える処理を行い、読出場所フラグRが格納されてい
た制御部は、この読出場所フラグRを後段の制御部へ転
送する処理を行い、各制御部が、読出場所フラグRを格
納しているときに、前段から書込場所フラグWの転送を
受けたときに、第1の回路に対してFIFOメモリが満
状態であることを示す信号FULLを送信し、逆に、書
込場所フラグWを格納しているときに、前段から読出場
所フラグRの転送を受けたときに、第2の回路に対して
FIFOメモリが空状態であることを示す信号EMPT
Yを送信する処理を行うようにしたものである。
【0010】(2) 本発明の第2の態様は、上述の第1
の態様に係るFIFOメモリにおいて、1ビットの記憶
素子を縦方向にL個並べて配置することによりLビット
の容量をもった記憶部を構成し、この記憶部を横方向に
M個並べて配置することによりLビットMワードの容量
をもったメモリモジュールを構成し、制御部を記憶部と
同じピッチで横方向にM個並べて配置することにより制
御モジュールを構成し、各記憶部とこれに対応する各制
御部とが互いに隣接配置されるようにしたものである。
【0011】(3) 本発明の第3の態様は、上述の第2
の態様に係るFIFOメモリにおいて、リセット信号が
与えられたときに、書込場所フラグWおよび読出場所フ
ラグRのいずれも生成しない第1の制御部と、リセット
信号が与えられたときに、書込場所フラグWおよび読出
場所フラグRの双方を生成する第2の制御部と、を用意
し、第1の制御部を(M−1)個配置するとともに、第
2の制御部を1個配置することにより、制御モジュール
を構成するようにしたものである。
【0012】(4) 本発明の第4の態様は、上述の第2
または第3の態様に係るFIFOメモリにおいて、各制
御部が、書込場所フラグWを格納しているときに、対応
する記憶部内の記憶素子に対して書込許可信号WWを出
力し、読出場所フラグRを格納しているときに、対応す
る記憶部内の記憶素子に対して読出許可信号RRを出力
するようにしたものである。
【0013】(5) 本発明の第5の態様は、上述の第2
の態様に係るFIFOメモリの製造方法において、各記
憶素子および各制御部を、それぞれハードマクロモジュ
ールとしてライブラリに登録されたセルの形式で用意
し、記憶素子についてのセルを、縦方向にL個、横方向
にM個配列することにより、LビットMワードの容量を
もったメモリモジュールを構成し、制御部についてのセ
ルを、記憶素子についてのセルと同じピッチで横方向に
M個並べて配置することにより制御モジュールを構成す
るようにしたものである。
【0014】
【発明の実施の形態】以下、本発明を図示する実施形態
に基づいて説明する。
【0015】§1. 従来の一般的なFIFOメモリ はじめに、従来の一般的なFIFOメモリの構造を簡単
に説明する。図1は、互いに動作速度の異なる第1の回
路1および第2の回路2間で、デジタルデータの転送を
行う場合に、両者を媒介するために用いられる一般的な
FIFOメモリ3を示す概念図である。第1の回路1は
第1のクロックCK1で動作し、第2の回路2は第2の
クロックCK2で動作するため、両回路は非同期動作を
行うことになり、両者間でデータ転送を行う場合には、
時間差を吸収するためのFIFOメモリ3を媒介させる
必要がある。ここに示すFIFOメモリ3には、転送す
べきデータのビット数に応じた容量をもつ記憶部が合計
6個設けられている。たとえば、転送すべきデータが8
ビットのデータである場合には、6個の記憶部A〜F
は、いずれも8ビットのデータを格納する記憶容量を有
しており、このFIFOメモリ3は、8ビット6ワード
の容量をもったメモリとして機能する。
【0016】ここで、第1の回路1から第2の回路2
へ、デジタルデータX1,X2,X3,…を転送する場
合は、次のような処理が行われる。まず、第1の回路1
からは、第1のクロックCK1に同期したタイミング
で、転送すべきデータX1,X2,X3が順次出力され
る。これらのデータは、FIFOメモリ3内の空いてい
る記憶部へと順次格納されてゆく。一方、第2の回路2
からのデータの取り込み要求があると、FIFOメモリ
3内に格納されたデータが格納された順に、第2のクロ
ックCK2に同期したタイミングで順次読み出される。
このような先入れ先出しの処理を行うために、書込ポイ
ンタPwrite と読出ポインタPreadとが利用される。書
込ポインタPwrite は、第1の回路1から出力されたデ
ータを書き込むべき記憶部を指し示すポインタであり、
読出ポインタPreadは、第2の回路へとデータを読み出
すべき記憶部を指し示すポインタである。たとえば、図
1に示す例では、記憶部A,B,Cには、既にデータX
1,X2,X3が書き込まれており、書込ポインタPwr
ite は次にデータを書き込むべき記憶部Dを指し示して
いる。第1の回路1から次のデータX4が出力される
と、このデータX4は書込ポインタPwrite が指し示し
ている記憶部Dに書き込まれることになり、書込ポイン
タPwrite は次の記憶部Eを指し示すように更新され
る。一方、第2の回路2へデータを読み出す場合には、
まず、読出ポインタPreadが指し示している記憶部Aか
らデータX1が読み出されることになり、読出ポインタ
Preadは次の記憶部Bを指し示すように更新される。
【0017】このFIFOメモリ3には、全記憶部が満
状態になったことを示す信号FULLを第1の回路1へ
送信する機能と、全記憶部が空状態になったことを示す
信号EMPTYを第2の回路2へ送信する機能と、が備
わっている。たとえば、図1に示す状態において、デー
タ読出しが行われることなしに、新たなデータX4,X
5,X6が書き込まれると、全記憶部が満状態となるの
で、第1の回路1に対して信号FULLが送信される。
第1の回路1は、この信号FULLが送信された場合に
は、データ転送処理を一時休止する。逆に、図1に示す
状態において、更なるデータ書き込みが行われることな
しに、格納されていた全データX1,X2,X3が読み
出されると、全記憶部が空状態となるので、第2の回路
2に対して信号EMPTYが送信される。第2の回路2
は、この信号EMPTYが送信された場合には、データ
取込処理を一時休止する。
【0018】このような機能をもったFIFOメモリを
実現するために、従来は、デュアルポートSRAMが用
いられていた。図2は、従来のFIFOメモリの一般的
な構成を示すブロック図である。このFIFOメモリの
主たる構成要素は、デュアルポートSRAM4とコント
ロール部5である。デュアルポートSRAM4は、書込
ポートと読出ポートとを有し、第1の回路1が出力した
データは、第1のクロックCK1に同期したタイミング
で、書込ポートから書き込まれ、第2の回路2へ取り込
むデータは、第2のクロックCK2に同期したタイミン
グで、読出ポートから読み出される。コントロール部5
は、書込ポートに対して書込アドレスを指示するととも
に、読出ポートに対して読出アドレスを指示する機能を
有する。これらのアドレスは、図1における書込ポイン
タPwrite および読出ポインタPreadに相当するもので
あり、書込ポートに与えられたデータは、書込アドレス
によって指定されるSRAM内のアドレス場所に格納さ
れ、読出ポートから取り出されるデータは、読出アドレ
スによって指定されるSRAM内のアドレス場所から取
り出されることになる。コントロール部5は、書込処理
あるいは読出処理が行われるごとに、書込アドレスある
いは読出アドレスを更新する処理を行い、両アドレスの
差が所定の条件を満たした場合には、信号FULLある
いは信号EMPTYを生成して送信する処理を行う。
【0019】このような従来のFIFOメモリを設計す
る場合、デュアルポートSRAM4については、ハード
マクロモジュールとしてセルライブラリ内に用意されて
いる汎用のデュアルポートSRAMをそのまま利用すれ
ばよいが、コントロール部5については、カウンタ、比
較器、組み合わせ論理回路、などの部品を組み合わせた
ソフトマクロモジュールとして、その都度、新たに設計
せざるを得ない。このため、設計作業に多大な労力と時
間が必要になることは既に述べたとおりである。
【0020】§2. 本発明に係るFIFOメモリ 本発明に係るFIFOメモリ10の基本構成を、図3の
ブロック図に示す。このFIFOメモリ10の主たる構
成要素は、メモリモジュール11と制御モジュール12
である。メモリモジュール11は、転送すべきデータの
ビット数に応じた容量をもつ記憶部を、複数M個配置し
てなるモジュールであり、図示の例では、8ビットの容
量をもつ6個の記憶部11a〜11fにより、メモリモ
ジュール11が構成されている。一方、制御モジュール
12は、これら各記憶部に対応して設けられたM個の制
御部からなるモジュールであり、図示の例では、6個の
記憶部11a〜11fにそれぞれ対応して設けられた6
個の制御部12a〜12fにより、制御モジュール12
が構成されている。
【0021】第1の回路1から出力された8ビットのデ
ータX1,X2,X3,…は、メモリモジュール11内
の6個の記憶部11a〜11fのいずれかに書き込まれ
ることになり、格納されたデータX1,X2,X3は、
格納された順に、第2の回路2へと読み出されることに
なるが、このとき、制御モジュール12によって、どの
記憶部へ書き込みを行うか、あるいはどの記憶部から読
出しを行うか、が指示される。このような指示を行うた
めに、各制御部12a〜12fには、それぞれ書込場所
フラグWおよび読出場所フラグRを格納する領域が設け
られている。図示の例では、各制御部は破線で上下の領
域に分割されており、上部が書込場所フラグWを格納す
る領域、下部が読出場所フラグRを格納する領域であ
る。ここでは、書込場所フラグWも読出場所フラグRも
いずれもビット“1”によって表されており、ビット
“0”が記された領域はフラグが格納されていない状態
を示し、ビット“1”が記された領域はフラグが格納さ
れている状態を示している。
【0022】具体的には、図3に示されている例では、
書込場所フラグWは制御部12dに格納されており、読
出場所フラグRは制御部12aに格納されている。書込
場所フラグWは、第1の回路1からデータが出力された
場合に、このデータを書き込むべき場所を示しており、
読出場所フラグRは、第2の回路2へデータを取り込む
場合に、データを読み込むべき場所を示している。
【0023】第1の回路1から第1のクロックCK1に
同期してデータが出力されると、メモリモジュール11
は、その時点において書込場所フラグWが格納されてい
る制御部に対応する記憶部に、この出力されたデータを
書き込む処理を行い、書込場所フラグWを格納していた
制御部は、この書込場所フラグWを後段の制御部へと転
送する処理を行う。たとえば、図示の状態において、第
1の回路1からデータX4が出力された場合、このデー
タX4は、現在、書込場所フラグWが格納されている制
御部12dに対応する記憶部11dに書き込まれること
になる。そして、書込場所フラグWは、制御部12dか
ら後段の制御部12eへと転送される(制御部12dの
上部がビット“0”になり、制御部12eの上部がビッ
ト“1”になる)。
【0024】一方、第2の回路2から第2のクロックC
K2に同期してデータ入力の要求があると、メモリモジ
ュール11は、その時点において読出場所フラグRが格
納されている制御部に対応する記憶部から、データを読
出して第2の回路へ与える処理を行い、読出場所フラグ
Rを格納していた制御部は、この読出場所フラグRを後
段の制御部へ転送する処理を行う。たとえば、図示の状
態において、第2の回路2へデータを取り込む場合、現
在、読出場所フラグRが格納されている制御部12aに
対応する記憶部11aに格納されているデータX1が第
2の回路2へと読み出されることになる。そして、読出
場所フラグRは、制御部12aから後段の制御部12b
へと転送される(制御部12aの下部がビット“0”に
なり、制御部12bの下部がビット“1”になる)。
【0025】このように、書込場所フラグWおよび読出
場所フラグRは、常に、制御モジュール12を構成する
各制御部12a〜12fのいずれか1つに格納され、第
1のクロックCK1に同期した書込処理が実行されるた
びに書込場所フラグWは後段の制御部へと転送され、第
2のクロックCK2に同期した読出処理が実行されるた
びに読出場所フラグRは後段の制御部へと転送される。
図示の例では、図の左から右へ、位置A,B,C,D,
E,Fの順に各段が定義されており、各フラグは、制御
部12a,12b,12c,12d,12e,12fの
順に転送されることになる(図では、ビット“1”が1
ますずつ右へ移動してゆくことになる)。ただし、位置
Fの後段として位置Aが定義されており、制御部12f
から転送されたフラグは制御部12aへと戻るような循
環ループが形成されることになる。
【0026】なお、このFIFOメモリ10を最初に利
用する場合には、リセット信号を与えることにより初期
設定を行う。すなわち、このFIFOメモリ10にリセ
ット信号を与えると、書込場所フラグWおよび読出場所
フラグRは、いずれも初段となる制御部12aに格納さ
れた状態になる(図では、一番左の上下のますにそれぞ
れビット“1”が記入され、他のすべてのますにビット
“0”が記入された状態になる)。もっとも、初段の位
置は必ずしも位置Aにする必要はなく、任意の位置に定
義してかまわない。この初期設定の状態では、メモリモ
ジュール11を構成するすべての記憶部11a〜11f
は空として扱われる。
【0027】リセットを行った後に、第1の回路1から
出力された最初のデータX1は、その時点で書込場所フ
ラグWが格納されている制御部12aに対応した記憶部
11aに書き込まれ、書込場所フラグWは次の制御部1
2bへと転送される。続いて、第1の回路1から出力さ
れたデータX2は、その時点で書込場所フラグWが格納
されている制御部12bに対応した記憶部11bに書き
込まれ、書込場所フラグWは次の制御部12cへと転送
される。更に、第1の回路1からデータX3が出力され
ると、このデータX3は、その時点で書込場所フラグW
が格納されている制御部12cに対応した記憶部11c
に書き込まれ、書込場所フラグWは次の制御部12dへ
と転送される。図3に示す各フラグの状態は、このとき
の状態を示すものである。このように、制御モジュール
12内に格納された書込場所フラグWおよび読出場所フ
ラグRによって、データの書込場所および読出場所を決
定するようにすれば、先入れ先出しによるデータの受け
渡しが可能になる。
【0028】また、このFIFOメモリ10では、全記
憶部11a〜11fが満状態になると、信号FULLが
第1の回路1へと送信され、全記憶部11a〜11fが
空状態になると、信号EMPTYが第2の回路2へと送
信される。これは、各制御部12a〜12fが次のよう
な機能を有しているためである。すなわち、各制御部1
2a〜12fは、読出場所フラグRを格納しているとき
に、前段から書込場所フラグWの転送を受けると、第1
の回路1に対して信号FULLを送信し、逆に、書込場
所フラグWを格納しているときに、前段から読出場所フ
ラグRの転送を受けると、第2の回路2に対して信号E
MPTYを送信する機能を有する。
【0029】この機能を、図3の例に基づいて具体的に
説明しよう。たとえば、図3に示す状態において、第2
の回路2へのデータ読出しが行われることなしに、第1
の回路1から新たなデータX4,X5,X6が出力され
ると、記憶部11d,11e,11fに、それぞれデー
タX4,X5,X6が書き込まれることになり、全記憶
部が満状態になる。このとき、データX6が記憶部11
fに書き込まれた時点で、制御部12fに格納されてい
た書込場所フラグWが後段へと転送される処理が行わ
れ、書込場所フラグWは循環して制御部12aへと転送
されることになる。すると、制御部12aは、読出場所
フラグRを格納しているときに、前段から書込場所フラ
グWの転送を受けたことになるので、第1の回路1に対
して信号FULLを送信する。第1の回路1は、この信
号FULLの送信を受けると、データ転送処理を一時休
止することになる。これにより、FIFOメモリ10が
オーバーフローすることを防ぐことができる。
【0030】逆に、図3に示す状態において、更なるデ
ータ書き込みが行われることなしに、格納されていた全
データX1,X2,X3が第2の回路2へと読み出され
ると、全記憶部が空状態となる。このとき、データX3
が記憶部11cから読み出された時点で、制御部12c
に格納されていた読出場所フラグRが後段へと転送され
る処理が行われ、読出場所フラグRは制御部12dへと
転送されることになる。すると、制御部12dは、書込
場所フラグWを格納しているときに、前段から読出場所
フラグRの転送を受けたことになるので、第2の回路2
に対して信号EMPTYを送信する。第2の回路2は、
この信号EMPTYの送信を受けると、データ取込処理
を一時休止することになる。これにより、FIFOメモ
リ10から誤ったデータ読出しが行われることを防ぐこ
とができる。
【0031】§3. 本発明に係るFIFOメモリの設
計方法 上述した本発明に係るFIFOメモリ10のメリット
は、メモリモジュール11および制御モジュール12
を、いずれもセルライブラリ内に用意されたハードマク
ロモジュールの組み合わせとして構成でき、設計作業を
単純化させることができる点にある。以下、この設計方
法を説明する。
【0032】まず、セルライブラリ内に用意された1ビ
ットの記憶素子21のセルを、図4に示すように、Mワ
ード分だけ横方向に配置し、その一端に書込データバッ
ファ22および読出データバッファ23のセルを配置
し、単位行ユニット20を形成する。ここで、1ビット
の記憶素子のセル21、書込データバッファのセル2
2、読出データバッファのセル23は、いずれも汎用性
のあるセルであり、一般的なセルライブラリに既存のも
のをそのまま利用することができる(これら各セルとし
ては、図の縦方向の寸法が同じものを用いるようにす
る)。続いて、図5に示すように、この単位行ユニット
20を縦方向にL個分だけ配置すれば、LビットMワー
ドの記憶容量をもったメモリモジュールを構成すること
ができる。ここで、縦方向に並んだ各列ごとのL個の記
憶素子のセル21によって、1つの記憶部が形成される
ことになる(たとえば、図5の第1列目に並んだL個の
記憶素子のセル21によって、図3に示す記憶部11a
が形成される)。
【0033】続いて、図6に示すように、M個の制御部
のセル31を用意し、これらを、第1列目から第M列目
までのM個の記憶部と同じピッチで並べて配置すれば制
御モジュールを構成することができ、各記憶部とこれに
対応する各制御部とが互いに隣接配置されるようにな
る。個々の制御部のセル31は、§2で述べた機能をも
つ素子であり、もちろん、従来から利用されている既存
の一般的なセルライブラリには用意されていない。した
がって、本発明を実施する上では、このような機能をも
つ制御部のセル31を新たなセルとして設計し、これを
セルライブラリに新規登録しておくとよい。各制御部の
セル31は、いずれも同一の機能を有するので(リセッ
ト信号によって、書込場所フラグWおよび読出場所フラ
グRを初期設定する場合には、初期設定機能をもった特
別なセルを用意する必要があるが、これについては、後
述する実施例で述べる)、実際に設計するFIFOメモ
リのワード数にかかわらず、単一の制御部のセル31を
ライブラリに登録しておけばよい。
【0034】最後に、図7に示すように、M個の制御部
のセル31から構成される制御モジュールに対して、第
1の回路1で用いる第1のクロック信号CK1を、書込
用クロックWCLKとして与え、第2の回路2で用いる
第2のクロック信号CK2を、読出用クロックRCLK
として与え、各制御部のセル31から送信される信号F
ULLを第1の回路1へ与え、各制御部のセル31から
送信される信号EMPTYを第2の回路2へ与えるよう
にし、必要に応じて、リセット信号RESETを与える
ようにすれば、本発明に係るFIFOメモリの設計は完
了である。
【0035】このような方法で設計を行えば、任意のビ
ット数L、任意のワード数MをもったFIFOメモリ
を、セルライブラリとして供給されるハードマクロモジ
ュールにより設計することができるので、セルを縦横に
並べる単純な配置作業と、セル相互の単純な配線作業に
よって設計を行うことが可能になり、設計作業の負担は
大幅に軽減されることになる。
【0036】
【実施例】図8および図9に、本発明に用いることがで
きる制御部の具体的な回路の回路図を示す。図8に示す
制御部100は、Mワードの記憶容量をもつFIFOメ
モリの第n列目(1≦n≦M−1)に用いられるセルで
あり、図9に示す制御部200は、Mワードの記憶容量
をもつFIFOメモリの第M列目(最上位ワード)に用
いられるセルである。両者の相違は、リセット信号RE
SETが与えられたときの動作のみである。すなわち、
図8に示す制御部100は、リセット信号RESETが
与えられると、右側の端子W(n),R(n)に論理値
“0”(フラグなしを示すビット)が出力されるのに対
し、図9に示す制御部200は、リセット信号RESE
Tが与えられると、右側の端子W(M),R(M)に論
理値“1”(フラグありを示すビット)が出力される。
別言すれば、リセット信号RESETが与えられたと
き、図8に示す制御部100では、書込場所フラグWお
よび読出場所フラグRのいずれもが生成されないのに対
し、図9に示す制御部200では、書込場所フラグWお
よび読出場所フラグRの双方が生成されることになる。
具体的には、たとえば、図3に示すように、6ワードの
記憶容量(M=6)をもつFIFOメモリを構成する場
合、制御部12a〜12eまでの5つの制御部として
は、図8に示す制御部100が用いられ、最後の制御部
12fとして、図9に示す制御部200が用いられるこ
とになる。
【0037】図8および図9に示す回路は、いずれも論
理ゲートと順序回路との組み合わせによって構成されて
いる。図10〜図12は、これらの回路に用いられてい
る3種類の順序回路(各図(a) )とその真理値表(各図
(b) )を示すものである。真理値表の「X」は、任意の
論理値を示し、「Latch 」は直前の論理値が保持される
ことを示す。
【0038】制御部100,200は、許可信号出力部
110,210、書込場所フラグ格納部120,22
0、満空信号発生部130,230、読出場所フラグ格
納部140,240の4つの部分から構成されている。
ここで、書込場所フラグ格納部120,220は、図3
に示す各制御部12a〜12fの上部のますに相当する
機能を果たし、読出場所フラグ格納部140,240
は、図3に示す各制御部12a〜12fの下部のますに
相当する機能を果たす。
【0039】すなわち、書込場所フラグ格納部120,
220内の順序回路は、論理値“0”もしくは“1”を
一時的に保持し、第1の回路側から与えられる第1のク
ロック信号(書込クロック信号WCLK)に同期して、
保持した論理値を図の左から右へと転送する処理を実行
する。たとえば、図8に示す制御部100では、前段か
ら転送されてきた論理値W(n−1)が、書込クロック
信号WCLKの立ち下がりエッジに同期して第1段目の
順序回路に取り込まれ、続く立上がりエッジに同期して
第2段目の順序回路に取り込まれ、次の立ち下がりエッ
ジに同期して、論理値W(n)として後段へと転送され
ることになる。なお、第M列目に設けられた図9に示す
制御部200から出力された論理値W(M)は、第1列
目に設けられた図8に示す制御部100へ、論理値W
(n−1)として戻されることになる。
【0040】同様に、読出場所フラグ格納部140,2
40内の順序回路は、論理値“0”もしくは“1”を一
時的に保持し、第2の回路側から与えられる第2のクロ
ック信号(読出クロック信号RCLK)に同期して、保
持した論理値を図の左から右へと転送する処理を実行す
る。たとえば、図8に示す制御部100では、前段から
転送されてきた論理値R(n−1)が、読出クロック信
号RCLKの立ち下がりエッジに同期して第1段目の順
序回路に取り込まれ、続く立上がりエッジに同期して第
2段目の順序回路に取り込まれ、次の立ち下がりエッジ
に同期して、論理値R(n)として後段へと転送される
ことになる。なお、第M列目に設けられた図9に示す制
御部200から出力された論理値R(M)は、第1列目
に設けられた図8に示す制御部100へ、論理値R(n
−1)として戻されることになる。
【0041】前述したように、これらの回路にリセット
信号RESETが与えられると、図8に示す制御部10
0は、論理値W(n),R(n)としてビット“0”を
生成して後段へと転送する処理を行うが、図9に示す制
御部200は、論理値W(M),R(M)としてビット
“1”を生成して後段へと転送する処理を行う。したが
って、リセット信号を与えた直後の初期設定状態では、
第1列目の制御部100内に、書込場所フラグWおよび
読出場所フラグRが保持された状態、すなわち、順序回
路に論理値“1”が保持された状態となり、第2列目〜
第(M−1)列目の制御部100および第M列目の制御
部200内の各順序回路に論理値“0”が保持された状
態となる。以後、書込場所フラグ格納部120,220
内に保持された論理値“1”(書込場所フラグW)は、
書込クロック信号WCLKの1クロック周期ごとに後段
へと転送されてゆき、読出場所フラグ格納部140,2
40内に保持された論理値“1”(読出場所フラグR)
は、読出クロック信号RCLKの1クロック周期ごとに
後段へと転送されてゆく。
【0042】許可信号出力部110,210は、書込場
所フラグWを格納しているとき、すなわち、書込場所フ
ラグ格納部120,220内の順序回路が論理値“1”
を保持しているときに、書込許可信号WW(n),WW
(M)を出力し、読出場所フラグRを格納していると
き、すなわち、読出場所フラグ格納部140,240内
の順序回路が論理値“1”を保持しているときに、読出
許可信号RR(n),RR(M)を出力する機能を有す
る。書込許可信号WW(n),WW(M)および読出許
可信号RR(n),RR(M)は、対応する列の記憶部
内のメモリ素子へと供給され、その列(ワード)に対す
る書き込みもしくは読出し処理が実行されることにな
る。許可信号出力部110,210内に設けられたバッ
ファは、メモリ素子に対するドライブバッファとして機
能し、これらのバッファの駆動能力は、各記憶部のビッ
ト数Lに応じて定める必要がある。
【0043】また、満空信号発生部130,230は、
読出場所フラグRを格納しているときに、前段から書込
場所フラグWの転送を受けたときに信号FULLを発生
し、逆に、書込場所フラグWを格納しているときに、前
段から読出場所フラグRの転送を受けたときに信号EM
PTYを発生する処理を行う。別言すれば、読出場所フ
ラグ格納部140,240内の順序回路が論理値“1”
を保持している状態のときに、書込場所フラグ格納部1
20,220へ前段から論理値“1”が転送されてきた
場合に、信号FULLを発生し、書込場所フラグ格納部
120,220内の順序回路が論理値“1”を保持して
いる状態のときに、読出場所フラグ格納部140,24
0へ前段から論理値“1”が転送されてきた場合に、信
号EMPTYを発生する機能を有する。なお、リセット
信号RESETを与えた直後にも、信号EMPTYが発
生する。
【0044】図13は、上述した制御部100,200
を用いて構成したFIFOメモリの動作を示すタイミン
グチャートである。時刻t1においてリセット信号RE
SETを与えた直後は、いずれの記憶部にもデータは書
き込まれておらず、信号EMPTYが論理“1”となり
活性化される。期間T1,T2は、データData
(W)の書込動作タイミングを示しており、書込クロッ
ク信号WCLKの立ち上がりエッジに相当する時刻t2
に同期して書き込みが行われている。データが正確に書
き込まれるように、時刻t2の前に準備時間(setup ti
me)として期間T1が確保され、時刻t2の後に保持時
間(hold time )として期間T2が確保されている。ま
た、図示の例では、この書き込みにより、FIFOメモ
リは満状態となっており、信号FULLが論理“1”と
なり活性化されている。続く期間T3では、満状態にな
ったFIFOメモリから、データData(R)の読出
しが実行されたため、時刻t3において、信号FULL
が論理“0”となり不活性化されている。また、時刻t
4では、全データが読み出された結果、再び信号EMP
TYが論理“1”となり活性化されているが、続く時刻
t5において、次のデータData(W)の書き込みが
行われ、信号EMPTYは論理“0”となり不活性化さ
れている。
【0045】図14は、図8に示す制御部100に対応
するセルを(M−1)個配置するとともに、図9に示す
制御部200に対応するセルを1個配置することによ
り、制御モジュールを構成した例を示すブロック図であ
る。制御部100および制御部200のセルの横幅を、
各記憶素子のセル幅に等しくしておけば、各記憶素子の
セルと各制御部のセルとを同じピッチで横方向に配置す
ることができる。また、各記憶素子における書込許可信
号WWおよび読出許可信号RRの入力端子位置と、各制
御部における書込許可信号WWおよび読出許可信号RR
の出力端子位置とが一致するようにしておけば、配線は
非常に単純化される(単に、セルを隣接配置するだけで
よい)。また、書込場所フラグWを転送するための端子
W(n)や、読出場所フラグRを転送するための端子R
(n)の縦方向位置は、個々の制御部で共通のため、こ
れらの端子の相互接続も非常に単純化される(やはり、
セルを隣接配置するだけでよい)。各クロック信号WC
LK,RCLKや、信号FULL,信号EMPTYにつ
いての配線も同様である。ただ、第M列目の制御部の端
子W(M)を、第1列目の制御部の端子W(0)へ接続
し、第M列目の制御部の端子R(M)を、第1列目の制
御部の端子R(0)へ接続する配線は別途必要になる。
【0046】
【発明の効果】以上のとおり本発明によれば、複数M個
の記憶部からなるメモリモジュールと、複数M個の制御
部からなる制御モジュールと、によってFIFOメモリ
を構成するようにしたため、設計作業を単純化させるこ
とができるようになる。
【図面の簡単な説明】
【図1】一般的なFIFOメモリを用いたデータ転送の
原理を示すブロック図である。
【図2】従来のFIFOメモリの一般的な構成を示すブ
ロック図である。
【図3】本発明に係るFIFOメモリの基本構成を示す
ブロック図である。
【図4】図3に示すFIFOメモリを設計する第1のプ
ロセスを示す図である。
【図5】図3に示すFIFOメモリを設計する第2のプ
ロセスを示す図である。
【図6】図3に示すFIFOメモリを設計する第3のプ
ロセスを示す図である。
【図7】図3に示すFIFOメモリを設計する第4のプ
ロセスを示す図である。
【図8】本発明に係るFIFOメモリに第1の制御部と
して用いる回路の一例を示す回路図である。
【図9】本発明に係るFIFOメモリに第2の制御部と
して用いる回路の一例を示す回路図である。
【図10】図8および図9に示す回路図に用いられてい
る第1の順序回路およびその真理値表を示す図である。
【図11】図8および図9に示す回路図に用いられてい
る第2の順序回路およびその真理値表を示す図である。
【図12】図8および図9に示す回路図に用いられてい
る第3の順序回路およびその真理値表を示す図である。
【図13】図8および図9に示す回路を用いて構成した
FIFOメモリの動作を示すタイミングチャートであ
る。
【図14】図8および図9に示す制御部を配置すること
により構成した制御モジュールを示すブロック図であ
る。
【符号の説明】
1…第1の回路 2…第2の回路 3…FIFOメモリ 4…デュアルポートSRAM 5…コントロール部 10…FIFOメモリ 11…メモリモジュール 11a〜11f…記憶部 12…制御モジュール 12a〜12f…制御部 20…単位行ユニット 21…1ビットの記憶素子のセル 22…書込データバッファのセル 23…読出データバッファのセル 31…制御部のセル 100…第1の制御部 110…許可信号出力部 120…書込場所フラグ格納部 130…満空信号発生部 140…読出場所フラグ格納部 200…第2の制御部 210…許可信号出力部 220…書込場所フラグ格納部 230…満空信号発生部 240…読出場所フラグ格納部 A〜F…データを格納する位置/記憶部 EMPTY…空状態を示す信号 FULL…満状態を示す信号 Pread…読出ポインタ Pwrite …書込ポインタ RCLK…読出クロック信号 RESET…リセット信号 R(n−1),R(n),R(M−1),R(M)…転
送される読出場所フラグ RR(n),RR(M)…読出許可信号 WCLK…書込クロック信号 W(n−1),W(n),W(M−1),W(M)…転
送される書込場所フラグ WW(n),WW(M)…書込許可信号 X1〜X3…転送すべきデータ X(1),X(L)…転送すべきデータの各ビット

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 第1のクロックで動作する第1の回路か
    ら、第2のクロックで動作する第2の回路へ、デジタル
    データを転送する際に、両回路の間でデータの受け渡し
    を行う機能をもったFIFOメモリにおいて、 転送すべきデータのビット数に応じた容量をもつ記憶部
    を、複数M個配置してなるメモリモジュールと、 前記各記憶部に対応して設けられたM個の制御部からな
    る制御モジュールと、 を備え、 前記各制御部には、書込場所フラグWおよび読出場所フ
    ラグRを格納する機能と、これらのフラグを後段の制御
    部へ転送する機能とを設け、リセット信号が与えられた
    ときに、前記書込場所フラグWおよび前記読出場所フラ
    グRが、初段となる所定の制御部に格納されるように
    し、 第1の回路から第1のクロックに同期してデータが出力
    されたら、メモリモジュールは、その時点において書込
    場所フラグWが格納されている制御部に対応する記憶部
    に、この出力されたデータを書き込む処理を行い、書込
    場所フラグWを格納していた制御部は、この書込場所フ
    ラグWを後段の制御部へと転送する処理を行い、 第2の回路から第2のクロックに同期したデータ入力の
    要求があったら、メモリモジュールは、その時点におい
    て読出場所フラグRが格納されている制御部に対応する
    記憶部から、データを読出して第2の回路へ与える処理
    を行い、読出場所フラグRが格納されていた制御部は、
    この読出場所フラグRを後段の制御部へ転送する処理を
    行い、 各制御部は、読出場所フラグRを格納しているときに、
    前段から書込場所フラグWの転送を受けたときに、第1
    の回路に対してFIFOメモリが満状態であることを示
    す信号FULLを送信し、逆に、書込場所フラグWを格
    納しているときに、前段から読出場所フラグRの転送を
    受けたときに、第2の回路に対してFIFOメモリが空
    状態であることを示す信号EMPTYを送信する機能を
    有することを特徴とするFIFOメモリ。
  2. 【請求項2】 請求項1に記載のFIFOメモリにおい
    て、 1ビットの記憶素子を縦方向にL個並べて配置すること
    によりLビットの容量をもった記憶部を構成し、この記
    憶部を横方向にM個並べて配置することによりLビット
    Mワードの容量をもったメモリモジュールを構成し、 制御部を前記記憶部と同じピッチで横方向にM個並べて
    配置することにより制御モジュールを構成し、 各記憶部とこれに対応する各制御部とが互いに隣接配置
    されるようにしたことを特徴とするFIFOメモリ。
  3. 【請求項3】 請求項2に記載のFIFOメモリにおい
    て、 リセット信号が与えられたときに、書込場所フラグWお
    よび読出場所フラグRのいずれも生成しない第1の制御
    部と、リセット信号が与えられたときに、書込場所フラ
    グWおよび読出場所フラグRの双方を生成する第2の制
    御部と、を用意し、第1の制御部を(M−1)個配置す
    るとともに、第2の制御部を1個配置することにより、
    制御モジュールを構成したことを特徴とするFIFOメ
    モリ。
  4. 【請求項4】 請求項2または3に記載のFIFOメモ
    リにおいて、 各制御部は、書込場所フラグWを格納しているときに、
    対応する記憶部内の記憶素子に対して書込許可信号WW
    を出力し、読出場所フラグRを格納しているときに、対
    応する記憶部内の記憶素子に対して読出許可信号RRを
    出力することを特徴とするFIFOメモリ。
  5. 【請求項5】 請求項2に記載のFIFOメモリの製造
    方法において、 各記憶素子および各制御部を、それぞれハードマクロモ
    ジュールとしてライブラリに登録されたセルの形式で用
    意し、 前記記憶素子についてのセルを、縦方向にL個、横方向
    にM個配列することにより、LビットMワードの容量を
    もったメモリモジュールを構成し、 前記制御部についてのセルを、前記記憶素子についての
    セルと同じピッチで横方向にM個並べて配置することに
    より制御モジュールを構成することを特徴とするFIF
    Oメモリの製造方法。
JP8281331A 1996-10-02 1996-10-02 Fifoメモリおよびその製造方法 Pending JPH10112178A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP8281331A JPH10112178A (ja) 1996-10-02 1996-10-02 Fifoメモリおよびその製造方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP8281331A JPH10112178A (ja) 1996-10-02 1996-10-02 Fifoメモリおよびその製造方法

Publications (1)

Publication Number Publication Date
JPH10112178A true JPH10112178A (ja) 1998-04-28

Family

ID=17637622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8281331A Pending JPH10112178A (ja) 1996-10-02 1996-10-02 Fifoメモリおよびその製造方法

Country Status (1)

Country Link
JP (1) JPH10112178A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6090222A (en) * 1998-11-16 2000-07-18 Seh-America, Inc. High pressure gas cleaning purge of a dry process vacuum pump
KR20020052669A (ko) * 2000-12-26 2002-07-04 윤종용 선입 선출 메모리 및 이 메모리의 플래그 신호 발생방법
US6880050B1 (en) * 2000-10-30 2005-04-12 Lsi Logic Corporation Storage device, system and method which can use tag bits to synchronize queuing between two clock domains, and detect valid entries within the storage device
CN115865584A (zh) * 2022-11-29 2023-03-28 中国星网网络应用有限公司 基带数据流的处理方法、装置、设备及存储介质

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6090222A (en) * 1998-11-16 2000-07-18 Seh-America, Inc. High pressure gas cleaning purge of a dry process vacuum pump
US6189176B1 (en) 1998-11-16 2001-02-20 Seh-America, Inc. High pressure gas cleaning purge of a dry process vacuum pump
US6880050B1 (en) * 2000-10-30 2005-04-12 Lsi Logic Corporation Storage device, system and method which can use tag bits to synchronize queuing between two clock domains, and detect valid entries within the storage device
KR20020052669A (ko) * 2000-12-26 2002-07-04 윤종용 선입 선출 메모리 및 이 메모리의 플래그 신호 발생방법
CN115865584A (zh) * 2022-11-29 2023-03-28 中国星网网络应用有限公司 基带数据流的处理方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
JP2916045B2 (ja) Fifoモジュール
US5079693A (en) Bidirectional FIFO buffer having reread and rewrite means
US4553203A (en) Easily schedulable horizontal computer
US4809161A (en) Data storage device
US4884192A (en) Information processor capable of data transfer among plural digital data processing units by using an active transmission line having locally controlled storage of data
JPH07312078A (ja) Ramベースのfifoメモリを直列から並列へおよび並列から直列へ変換する構造
US4521874A (en) Random access memory device
JPH04301290A (ja) 先入れ先出しメモリ回路
US6463000B2 (en) First-in first-out memory device and method of generating flag signal in the same
JPS5921055B2 (ja) デ−タバツフアメモリ
US7386689B2 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
EP0421627B1 (en) Memory device
US5663994A (en) Two cycle asynchronous FIFO queue
JPH10112178A (ja) Fifoメモリおよびその製造方法
US6961280B1 (en) Techniques for implementing address recycling in memory circuits
JPH06124584A (ja) 順次メモリとデータ単位を順次記憶する方法
JPH0256048A (ja) データ転送方法及びデータバッファ装置
JPH07182849A (ja) Fifoメモリ
JP2000341256A (ja) エラスティック回路および集積回路
JPH113209A (ja) 動的な資源利用機能を備えたデータ処理システム
JPS633392B2 (ja)
JPS59188753A (ja) パリテイ生成方法
JPH0668055A (ja) ディジタル信号処理装置
JPH05100820A (ja) Fifoレジスタ装置
JP2002005997A (ja) テスト回路を有する自己同期型論理回路