(57)【特許請求の範囲】
【請求項１】
クロック信号に同期して、読み出しアドレスを生成する読み出しアドレス生成回路と、
前記読み出しアドレスを前記クロック信号に同期させて遅延することにより、書き込みアドレスを生成するアドレス遅延回路と、
前記クロック信号に同期して、前記読み出しアドレスで指定されたアドレスにデータを入力し、前記書き込みアドレスで指定されたアドレスからデータを出力する記憶素子と
を備えるＦＩＦＯ型記憶装置。
【請求項２】
前記読み出しアドレスは循環的に生成され、
前記アドレス遅延回路の遅延量は前記クロック信号の１周期分である、請求項１記載のＦＩＦＯ型記憶装置。
【請求項３】
前記アドレス遅延回路は、前記読み出しアドレスを構成するビット数と同数のＤフリップフロップを有し、
前記Ｄフリップフロップのいずれのクロック入力端にも共通して前記クロック信号が与えられ、
前記Ｄフリップフロップのデータ入力端には前記読み出しアドレスの各ビットが与えられる、請求項２記載のＦＩＦＯ型記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は記憶装置に関し、特にＦＩＦＯ（先入れ先出し）型の記憶装置に関する。
【０００２】
【従来の技術】
図５は、従来のＦＩＦＯ型の記憶装置２００の構成例を示す回路図である。記憶装置２００は例えばデジタル伝送や通信用装置に使用される。
【０００３】
記憶装置２００は、書き込み及び読み出しが独立して行える２ポート型のＲＡＭ１０１と、３ビットの読み出しアドレス２１を生成する読み出しアドレス生成回路２０２と、３ビットの書き込みアドレス２２を生成する書き込みアドレス生成回路２０３とを備えている。
【０００４】
ＲＡＭ１０１は、クロック端ＣＬＲに与えられた信号の立ち下がりに同期して、読み出しアドレス端子ＲＡ＜２：０＞に入力された読み出しアドレス２１が指定するアドレスに記憶されたデータを、データ出力端ＤＯ＜３：０＞からデータＤｏｕｔ＜３：０＞として出力する（読み出し動作）。またＲＡＭ１０１は、クロック端ＣＬＷに与えられた信号の立ち上がりに同期して、書き込みアドレス端子ＷＡ＜２：０＞に入力された書き込みアドレス２２が指定するアドレスへ、データ入力端ＤＩ＜３：０＞に入力したデータＤｉｎ＜３：０＞を記憶する（書き込み動作）。但し、読み出しクロック端ＣＬＲ及び書き込みクロック端ＣＬＷのいずれにもクロックＣＬＫが与えられている。
【０００５】
かかる構成の記憶装置２００において、書き込みアドレス２２が読み出しアドレス２１よりも常に一定時間遅れて同じアドレス値を採って、ＦＩＦＯ型のデータの入出力が行われる。図６及び図７はそれぞれ読み出しアドレス生成回路２０２及び書き込みアドレス生成回路２０３の構成を例示する回路図である。
【０００６】
図６においてリセット信号ＲＳＴが“Ｌ”の状態にあれば、ゲート４０，４６，４７の出力は常にそれぞれ“Ｈ”，“Ｌ”，“Ｌ”となっている。よってクロックＣＬＫが何回立ち上がっても、Ｄフリップフロップ４３，４８，４９のＱ出力はそれぞれ“Ｈ”，“Ｌ”，“Ｌ”のままである。そしてその後、リセット信号ＲＳＴが“Ｈ”となれば、インバータ４１によって反転されたＤフリップフロップ４３のＱ出力がＤフリップフロップ４３のＤ入力となり、クロックＣＬＫが立ち上がる度にＤフリップフロップ４３のＱ出力が“０”と“１”との値を交互に採る。これを受けて半加算器４４，４５の和出力ＳがそれぞれＤフリップフロップ４８，４９のＤ入力を与える。但し、Ｄフリップフロップ４８，４９のＤ入力はそれぞれ半加算器４５，４４の加算入力Ａとなるので、Ｄフリップフロップ４９，４８のＱ出力はそれぞれクロックＣＬＫを２分周及び４分周することになる。従って、“Ｈ”を“１”、“Ｌ”を“０”として考えれば、Ｄフリップフロップ４８，４９，４３のＱ出力をこの順に高いビット位置に配して、００１，０１０，０１１，…，１１１，０００，００１，…と循環する読み出しアドレス２１を生成することができる。
【０００７】
図７においてリセット信号ＲＳＴが“Ｌ”の状態にあれば、ゲート４２，４６，４７の出力は常にそれぞれ“Ｌ”，“Ｌ”，“Ｌ”となっている。よってアドレス生成回路２０２と同様にして、０００，００１，０１０，…，１１０，１１１，０００，…と循環する書き込みアドレス２２を生成することができる。
【０００８】
【発明が解決しようとする課題】
以上のように、従来の記憶装置２００では非常に似通った回路を一対準備し、ゲート４０とゲート４２の相違のみで読み出しアドレス２１よりも書き込みアドレス２２を常にクロックＣＬＫの１周期分遅らせることにより、（総アドレス数−１）周期分（ここでは２3−１＝７）だけ遅延させてデータを伝送させていた。このためアドレス生成に必要な回路の規模が大きいという問題点があった。
【０００９】
本発明は上記問題点を解決するためになされたもので、小さな規模の回路で、ＦＩＦＯ型の記憶装置を提供することを目的としている。
【００１０】
【課題を解決するための手段】
この発明のうち請求項１にかかるものは、クロック信号に同期して、読み出しアドレスを生成する読み出しアドレス生成回路と、前記読み出しアドレスを前記クロック信号に同期させて遅延することにより、書き込みアドレスを生成するアドレス遅延回路と、前記クロック信号に同期して、前記読み出しアドレスで指定されたアドレスにデータを入力し、前記書き込みアドレスで指定されたアドレスからデータを出力する記憶素子とを備えるＦＩＦＯ型記憶装置である。
【００１１】
この発明のうち請求項２にかかるものは、請求項１記載のＦＩＦＯ型記憶装置であって、前記読み出しアドレスは循環的に生成され、前記アドレス遅延回路の遅延量は前記クロック信号の１周期分である。
【００１２】
この発明のうち請求項３にかかるものは、請求項２記載のＦＩＦＯ型記憶装置であって、前記アドレス遅延回路は、前記読み出しアドレスを構成するビット数と同数のＤフリップフロップを有し、前記Ｄフリップフロップのいずれのクロック入力端にも共通して前記クロック信号が与えられ、前記Ｄフリップフロップのデータ入力端には前記読み出しアドレスの各ビットが与えられる。
【００１３】
【発明の実施の形態】
図１は、本発明の一つの実施の形態にかかるＦＩＦＯ型の記憶装置１００の構成を示す回路図である。記憶装置１００は、書き込み及び読み出しが独立して行える２ポート型のメモリであるＲＡＭ１０１と、３ビットの読み出しアドレス２１を生成する読み出しアドレス生成回路１０２と、読み出しアドレス２１を遅延させて３ビットの書き込みアドレス２２を生成するアドレス遅延回路１０３とを備えている。
【００１４】
２ポート型のＲＡＭ１０１は、４ビットのデータＤｉｎ＜３：０＞が入力される４ビットのデータ入力端ＤＩ＜３：０＞、４ビットのデータＤｏｕｔ＜３：０＞が出力される４ビットのデータ出力端ＤＯ＜３：０＞、３ビットの読み出しアドレス２１が入力される読み出しアドレス端子ＲＡ＜２：０＞、３ビットの書き込みアドレス２２が入力される書き込みアドレス端子ＷＡ＜２：０＞、読み出し及び書き込みのタイミングを決定するクロック信号が与えられる読み出しクロック端ＣＬＲ及び書き込みクロック端ＣＬＷを有している。
【００１５】
ＲＡＭ１０１からのデータＤｏｕｔ＜３：０＞の読み出しはクロック端ＣＬＲに与えられた信号の立ち下がりに同期して行われ、ＲＡＭ１０１へのデータＤｉｎ＜３：０＞の書き込みはクロック端ＣＬＷに与えられた信号の立ち上がりに同期して行われる。ここでは読み出しクロック端ＣＬＲ及び書き込みクロック端ＣＬＷのいずれにもクロックＣＬＫが与えられている。
【００１６】
アドレス遅延回路１０３は、読み出しアドレス２１よりも常に一定時間遅れて同じアドレス値を採る書き込みアドレス２２を出力するので、従来の記憶装置２００と同様にしてＦＩＦＯ型のデータの入出力を行うことができる。しかも、アドレス遅延回路１０３は従来の記憶装置２００において使用されていた書き込みアドレス生成回路２０３と比較して、以下に示すように回路の規模は小さくなる。
【００１７】
図２はアドレス遅延回路１０３の構成を示す回路図である。アドレス遅延回路１０３は一般には読み出しアドレス２１及び書き込みアドレス２２のビット数と同数のＤフリップフロップで構成され、ここではアドレス２１，２２が３ビットの場合に用いられる態様が示されている。即ち、アドレス遅延回路１０３はＤフリップフロップ３１，３２，３３を備えており、これらのＤ入力端にはそれぞれ読み出しアドレス２１のうちの下位から数えて第１乃至第３ビット２１１，２１２，２１３が読み出しアドレス生成回路１０２から与えられる。Ｄフリップフロップ３１，３２，３３のいずれのクロック入力端ＴにもクロックＣＬＫが与えられているので、Ｄフリップフロップ３１，３２，３３のＱ出力端からは、それぞれ読み出しアドレス２１の第１乃至第３ビット２１１，２１２，２１３をクロックＣＬＫの１周期分遅延させて得られる、書き込みアドレス２２の第１乃至第３ビット２２１，２２２，２２３が得られる。これらは書き込みアドレス２２としてＲＡＭ１０１へと与えられる。
【００１８】
このように、アドレス遅延回路１０３の構成は、図７に示されたアドレス生成回路２０３と比較して、ＡＮＤゲート３個、インバータ１個、半加算器２個分だけ回路の規模が小さくなっている。勿論、回路規模の制約が緩ければ、更にＤフリップフロップを追加して、クロックＣＬＫの２周期分以上の遅延をさせることができる。しかし読み出しアドレス２１が（したがって書き込みアドレス２２も）循環的に発生することを前提として、クロックＣＬＫの１周期分だけ遅延させる方がＦＩＦＯ型の記憶装置１００のデータを遅延させる量（即ちデータの蓄積量）を多く稼ぐことができる。
【００１９】
しかもアドレス遅延回路１０３は、自身に入力された読み出しアドレス２１を遅延させて書き込みアドレス２２を生成するので、読み出しアドレス生成回路１０２が生成する読み出しアドレス２１が複雑なパターンを発生させる場合であっても、それに整合させて１周期分ずれたパターンを生成するための回路を別途設計する必要もない。即ち読み出しアドレス生成回路１０２に対する汎用性が非常に高い。
【００２０】
図３は読み出しアドレス生成回路１０２の構成を例示する回路図である。読み出しアドレス生成回路１０２はＤフリップフロップ４３，４８，４９、半加算器４４，４５、二入力のＡＮＤゲート４２，４６，４７及びインバータ４１で構成されており、Ｄフリップフロップ４３，４９，４８はそれぞれ読み出しアドレス２１の第１乃至第３ビット２１１，２１２，２１３を出力する。これらは読み出しアドレス２１としてＲＡＭ１０１及びアドレス遅延回路１０３へと与えられる。
【００２１】
ＡＮＤゲート４２，４６，４７のそれぞれの一方の入力端にはリセット信号ＲＳＴが入力している。ＡＮＤゲート４２，４６，４７の他方の入力端には、それぞれインバータ４１の出力、半加算器４５の和出力Ｓ、半加算器４４の和出力Ｓが与えられる。また、ＡＮＤゲート４２，４６，４７の出力端は、それぞれＤフリップフロップ４３，４８，４９のＤ入力端に接続されている。
【００２２】
Ｄフリップフロップ４３，４８のＱ出力端は、それぞれ半加算器４４，４５の一方の入力端に接続され、Ｄフリップフロップ４９のＱ出力端は半加算器４４の他方の入力端に接続される。Ｄフリップフロップ４３，４８，４９のいずれのクロック入力端ＴにもクロックＣＬＫが与えられている。
【００２３】
そして半加算器４５の他方の入力端には半加算器４４の桁上げ出力Ｃが与えられ、インバータ４１の入力端にはＤフリップフロップ４３のＱ出力端が接続されている。
【００２４】
リセット信号ＲＳＴが“Ｌ”の状態にあれば、ＡＮＤゲート４２，４６，４７の出力は常にそれぞれ“Ｌ”，“Ｌ”，“Ｌ”となっている。よってクロックＣＬＫが何回立ち上がっても、Ｄフリップフロップ４３，４８，４９のＱ出力はそれぞれ“Ｌ”，“Ｌ”，“Ｌ”のままである。そしてその後、リセット信号ＲＳＴが“Ｈ”となれば、インバータ４１によって反転されたＤフリップフロップ４３のＱ出力がＤフリップフロップ４３のＤ入力となり、クロックＣＬＫが立ち上がる度にＤフリップフロップ４３のＱ出力が“０”と“１”との値を交互に採る。そしてＤフリップフロップ４９，４８のＱ出力はそれぞれクロックＣＬＫを２分周及び４分周することになる。従って、“Ｈ”を“１”、“Ｌ”を“０”として考えれば、Ｄフリップフロップ４３，４９，４８のＱ出力、即ち読み出しアドレス２１の第１乃至第３ビット２１１，２１２，２１３を、この順に下位から配すれば、０００，００１，０１０，…，１１１，０００，…と循環する読み出しアドレス２１を生成することができる。
【００２５】
既述のように、アドレスのビット数が増加しても、アドレス遅延回路１０３の構成においてＤフリップフロップの数を対応させて設ければ、本発明を実現することができる。図４は読み出しアドレス２１及び書き込みアドレス２２がいずれも４ビットである場合の本発明の動作を示すタイミングチャートである。図４において記号Ｄ1，Ｄ2，…は記憶装置１００に入出力するデータの値を示し、記号Ａ1，Ａ2，…，Ａ9，Ａa，Ａb，…，Ａf，Ａ0は１６個のアドレスの値を示す。また、記号ＮＣは値が定まっていないことを示している。時刻ｔ0においてクロックＣＬＫがパルスを発生し始める。このクロックＣＬＫの立ち上がりに同期して、ＲＡＭ１０１のデータ入力端ＤＩには順次データＤ1，Ｄ2，…が与えられる。時刻ｔ0においてはまだリセット信号ＲＳＴは“Ｌ”のままである。時刻ｔ0においてＲＡＭ１０１の読み出しアドレス端子ＲＡには値Ａ1を採る読み出しアドレス２１が与えられているが、まだ書き込みアドレス２２の値は不定のままである。そして時刻ｔ1におけるクロックＣＬＫの立ち下がりによって、ＲＡＭ１０１がアドレスＡ1に記憶しているデータがデータ出力端ＤＯへと読み出されるが、アドレスＡ1に対する書き込み動作がまだ行われていないので、読み出されたデータの値は不定である。
【００２６】
次に時刻ｔ2においてクロックＣＬＫの立ち上がっても、リセット信号ＲＳＴが“Ｌ”のままであるので、読み出しアドレス２１は値Ａ1を採り続ける。その一方、アドレス遅延回路１０３の動作によって書き込みアドレス２２も値Ａ1を採る。そして時刻ｔ2における更新によって得られたデータＤ2がＲＡＭ１０１のアドレスＡ1へと書き込まれる。しかし、ＲＡＭ１０１の書き込み動作には１周期分の時間が必要なので、時刻ｔ3においてクロックＣＬＫが立ち下がっても、アドレスＡ1から読み出されるデータは不定のままである。
【００２７】
更に時刻ｔ4においてクロックＣＬＫが立ち上がっても、リセット信号ＲＳＴが“Ｌ”のままであるので、読み出しアドレス２１及び書き込みアドレス２２のいずれも値Ａ1を採る。そして時刻ｔ4における更新によって得られたデータＤ3がＲＡＭ１０１のアドレスＡ1へと書き込まれる。但し、時刻ｔ5においてクロックＣＬＫが立ち下がると、時刻ｔ4においてＲＡＭ１０１のアドレスＡ1へと書き込まれたデータＤ3ではなく、時刻ｔ2においてＲＡＭ１０１のアドレスＡ1へと書き込まれていたデータＤ2が読み出される。上述のように、ＲＡＭ１０１の書き込み動作にはクロックＣＬＫの１周期分の時間が必要だからである。時刻ｔ6においてクロックＣＬＫが立ち上がるとアドレスＡ1にはデータＤ4が書き込まれ、以降はリセット信号ＲＳＴが“Ｈ”に遷移するまで同様の動作が行われる。つまりＦＩＦＯ型の動作としては、１周期分しか遅延していないことになる。
【００２８】
その後、リセット信号ＲＳＴが“Ｈ”となった後の最初のクロックＣＬＫの立ち上がりによって読み出しアドレスの値がＡ2へと更新される（時刻ｔ11）。そしてその直後のクロックＣＬＫの立ち下がりが生じる時刻ｔ7において、ＲＡＭ１０１がアドレスＡ2において記憶していたデータが読み出される。しかし、リセット信号ＲＳＴが“Ｈ”となる以前にはアドレスＡ1への書き込み動作しか行われていなかったので、読み出されたデータの値は不定である。以降、同様にして読み出しアドレス２１の値が更新され続け、時刻ｔ8まではデータ出力端ＤＯから得られるデータは不定のままである。
【００２９】
時刻ｔ8においてアドレスＡ1から読み出されるデータは、リセット信号ＲＳＴが“Ｈ”となった直後に、時刻ｔ11においてアドレスＡ1に書き込まれたデータＤ6である。そして時刻ｔ12，ｔ13においてそれぞれアドレスＡ2，Ａ3に書き込まれていたデータＤ7，Ｄ8が、それぞれ時刻ｔ9，ｔ10において読み出される。このようにして、時刻ｔ8以降は、（２4−１）周期分遅延するＦＩＦＯ型の動作が行われることになる。
【００３０】
【発明の効果】
この発明のうち請求項１にかかる記憶装置によれば、読み出しアドレスを遅延させて書き込みアドレスを生成するので、書き込みアドレスを生成するのに必要な回路規模を低減してＦＩＦＯ型の動作を実現することができる。
【００３１】
この発明のうち請求項２にかかる記憶装置によれば、ＦＩＦＯ動作において最も長く、即ち循環的に発生される読み出しアドレスのパターンの数よりも１だけ小さいクロック周期分で、データの遅延、即ち蓄積を行うことができる。
【００３２】
この発明のうち請求項３にかかる記憶装置によれば、Ｄフリップフロップのデータ出力端から、書き込みアドレスを構成する各ビットを得ることができる。
【図面の簡単な説明】
【図１】  本発明の実施の形態にかかる記憶装置の構成を示す回路図である。
【図２】  アドレス遅延回路の構成を示す回路図である。
【図３】  読み出しアドレス生成回路の構成を例示する回路図である。
【図４】  本発明の動作を示すタイミングチャートである。
【図５】  従来の技術を示す回路図である。
【図６】  従来の技術を示す回路図である。
【図７】  従来の技術を示す回路図である。
【符号の説明】
２１  読み出しアドレス、２２  書き込みアドレス、３１〜３３  Ｄフリップフロップ、１００  記憶装置、１０１  ＲＡＭ、１０２  読み出しアドレス生成回路、１０３  アドレス遅延回路、ＣＬＫ  クロック信号。
【図１】
0004107716.tif 000002
【図２】
0004107716.tif 000003
【図３】
0004107716.tif 000004
【図４】
0004107716.tif 000005
【図５】
0004107716.tif 000006
【図６】
0004107716.tif 000007
【図７】
0004107716.tif 000008