JP2597041B2 - FIFO memory device - Google Patents

FIFO memory device

Info

Publication number
JP2597041B2
JP2597041B2 JP2244889A JP24488990A JP2597041B2 JP 2597041 B2 JP2597041 B2 JP 2597041B2 JP 2244889 A JP2244889 A JP 2244889A JP 24488990 A JP24488990 A JP 24488990A JP 2597041 B2 JP2597041 B2 JP 2597041B2
Authority
JP
Japan
Prior art keywords
data
input
fifo
memory cell
signal
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
Application number
JP2244889A
Other languages
Japanese (ja)
Other versions
JPH04121890A (en
Inventor
稔裕 猪岡
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2244889A priority Critical patent/JP2597041B2/en
Publication of JPH04121890A publication Critical patent/JPH04121890A/en
Application granted granted Critical
Publication of JP2597041B2 publication Critical patent/JP2597041B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION 【産業上の利用分野】[Industrial applications]

本発明は、たとえば演算処理装置間の通信用バッファ
として用いるFIFO(ファーストイン・ファーストアウ
ト)メモリ装置に関する。
The present invention relates to a first-in first-out (FIFO) memory device used as a buffer for communication between arithmetic processing units, for example.

【従来の技術】[Prior art]

FIFOメモリ装置は演算処理装置間のデータの受け渡し
あるいはデータ伝送路の途中にバッファとして挿入し
て、伝送スピードの調整等に使用する装置である。 第5図は従来のFIFOメモリ装置(以下、「FIFO」とい
う。)のブロック図であり、101はメモリセル、102は上
記メモリセル101へのデータの入力を制御する入力制御
回路、103は上記メモリセル101からのデータの出力を制
御する出力制御回路、104は上記メモリセル101へデータ
を書き込む位置に指定し、上記データの書き込み毎にイ
ンクリメントするレジスタからなる書き込みポインタ、
105は上記メモリセル101からデータを読み出す位置を指
定し、上記データの読み出し毎にインクリメントするレ
ジスタからなる読み出しポインタ、201は上記FIFO内の
データの蓄積の状態を検出する検出ロジックである。上
記検出ロジック201は上記メモリセル101が満ぱいである
時すなわち上記FIFOがフルである時にはフル信号を出力
する。また、上記検出ロジック201は、上記メモリセル1
01の蓄積データ量が零になった時すなわち上記FIFOがエ
ンプティになった時にはエンプティ信号を出力する。11
5は上記書き込みポインタ104および上記読み出しポイン
タ105をリセットするリセットロジックである。 第6図は上記FIFOの使用例を示す。この使用例では、
FIFO303を演算処理部301と演算処理部302の間に接続し
ている。そして、上記演算処理部301からのデータを上
記演算処理部302へ伝送するためのバッファとして上記F
IFO303を使用している。まず、上記FIFO303にデータを
入力する場合を説明する。上記演算処理部301はデータ
をDI線に出力すると共に、シフトインパルスをSI線に出
力して、上記データを上記FIFO303内に伝送する。ここ
で、上記FIFO303のデータのビット長が複数ビットで
も、同様の動作を行う。そして、上記FIFO303は、上記
書き込みポインタ104が指定するメモリセル101の位置に
上記データを書き込む。そして、上記書き込みポインタ
104はインクリメントする。ここで、例えば、上記メモ
リセル101がリングバッファからなる場合には、上記書
き込みポインタ104を構成するレジスタの値に1を加え
た値と、上記読み出しポインタ105を構成するレジスタ
の値とが一致していれば、上記検出ロジック201は上記
バッファとしてのFIFO303がフルであると判断して、フ
ル信号を演算処理部301に出力する。また、上記FIFO303
がフルでない場合には、上記入力制御回路102が、上記F
IFO303へデータを入力することが可能であることを示す
インプットレディ信号を上記演算処理部301に出力す
る。したがって、上記演算処理部301は、データを上記F
IFO303に入力する前には必ず、上記フル信号または上記
インプットレディ信号をチェックして、上記FIFO303へ
のデータ入力が可能であることを確認する必要がある。
そして、上記フル信号がアクティブになるまで、あるい
は上記インプットレディ信号がインアクティブになるま
では、上記FIFO303にデータを入力することができる。
次に、上記FIFO303から上記演算処理部302へデータを出
力する場合を説明する。まず、上記演算処理部301がリ
セット信号を上記FIFO303へ出力すると、上記FIFO303の
リセットロジック115は上記書き込みポインタ104および
上記読み出しポインタ105をリセットして、上記書き込
みポインタ104および上記読み出しポインタ105の示す値
は零となり、上記FIFOの内部にはデータがなくなる(初
期化状態)。そして、上記書き込みポインタ104と上記
読み出しポインタ105の示す値が一致したときには、上
記検出ロジック201は、上記FIFO303の内部にはデータが
ないと判断して、エンプティ信号を上記演算処理部302
へ出力する。次に、上記演算処理部301が上記FIFO303に
データを入力すると、上記書き込みポインタ104がイン
クリメントする。すると、上記検出ロジック201は、エ
ンプティ信号をインアクティブにする。また、上記FIFO
303がDO線にデータを出力しているときには、上記出力
制御回路103はアウトプットレディ信号をアクティブに
する。そして上記演算処理部302は、上記FIFO303のデー
タのアンダーフローを避けるために、上記FIFO303から
データを読み出す前には必らず、上記エンプティ信号が
インアクティブであることまたは上記アウトプットレデ
ィ信号がアクティブであることを確認する必要がある。
そして、上記演算処理部302は上記FIFO303がDO線に出力
したデータを読み出した後に、シフトアウトパルスをSO
線に出力する。すると、上記FIFO303の読み出しポイン
タ105がインクリメントし、上記FIFO303は次のデータを
DO線に出力する。このようにして、上記演算処理部301
から上記FIFO303に最初に書き込んだデータを、上記演
算処理部302は、上記FIFO303から最初に読み出すことが
できる。 ところで、一般に、演算処理部では8ビットや16ビッ
トのプロセッサを使用しているため、複数ビット長の伝
送符号を生成する。第8図(a)は複数ビット長の伝送
符号のうち固定長符号の一例を示す図である。上記固定
長符号は、符号語1,2,3,4,5に対して夫々2進数の伝送
符号を割り当てている。上記伝送符号が25以内に限定
されている場合は上記伝送符号の伝送符号長は最長でも
5ビットであり、演算処理部内で一般的に使用している
8ビットあるいは16ビットの伝送符号を全ビット伝送す
る必要はない。よって、演算処理部は上記8ビットある
いは16ビットの伝送符号のうち下位5ビットだけシフト
アウトする処理を行なえばよい。また、第8図(b)は
複数ビット長の伝送符号のうち可変長符号の一例を示す
図である。上記可変長符号は、符号語1,2,3,4,5に対し
て、夫々第8図(b)に示すような伝送符号を割り当て
ている。例えば2という符号語を伝送したいときは、こ
の符号語を01(2進数)という伝送符号に変換して伝送
し、4という符号語を伝送したいときは、この符号語を
0001(2進数)という伝送符号に変換して伝送する。こ
のように、可変長符号では、伝送したい符号語に応じて
伝送路に送る伝送符号の伝送符号長を変えている。そし
て、一般に出現頻度の高い符号語に短い伝送符号を割り
当てて、全体としての伝送符号長を短くする工夫をして
いる。また、複数ビット長の伝送符号を生成するために
は、一般にテーブル変換という手法を用いる。第5図
(c)は、上記テーブル変換の一例を示す図である。テ
ーブル変換は、符号語をアドレスとしたメモリ内に、上
記符号語に対応する伝送符号(b7〜b0)と伝送符号長
(b15〜b8)をあらかじめ記憶しておくことによっ
て、符号語を伝送符号と伝送符号長に変換する。
The FIFO memory device is a device used for transferring data between arithmetic processing units or inserting a buffer in the middle of a data transmission path to adjust the transmission speed. FIG. 5 is a block diagram of a conventional FIFO memory device (hereinafter, referred to as "FIFO"). Reference numeral 101 denotes a memory cell; 102, an input control circuit for controlling data input to the memory cell 101; An output control circuit that controls the output of data from the memory cell 101; 104 designates a position where data is to be written to the memory cell 101;
Reference numeral 105 designates a position from which data is read from the memory cell 101, and a read pointer consisting of a register which is incremented each time the data is read, and 201 is a detection logic for detecting the state of accumulation of data in the FIFO. The detection logic 201 outputs a full signal when the memory cell 101 is full, that is, when the FIFO is full. The detection logic 201 is connected to the memory cell 1
When the stored data amount of 01 becomes zero, that is, when the FIFO becomes empty, an empty signal is output. 11
A reset logic 5 resets the write pointer 104 and the read pointer 105. FIG. 6 shows an example of use of the FIFO. In this use case,
The FIFO 303 is connected between the arithmetic processing unit 301 and the arithmetic processing unit 302. Then, as a buffer for transmitting data from the arithmetic processing unit 301 to the arithmetic processing unit 302,
IFO303 is used. First, a case where data is input to the FIFO 303 will be described. The arithmetic processing unit 301 outputs the data to the DI line, outputs the shift impulse to the SI line, and transmits the data into the FIFO 303. Here, the same operation is performed even when the bit length of the data in the FIFO 303 is a plurality of bits. Then, the FIFO 303 writes the data at the position of the memory cell 101 specified by the write pointer 104. And the write pointer
104 is incremented. Here, for example, when the memory cell 101 is a ring buffer, the value obtained by adding 1 to the value of the register forming the write pointer 104 matches the value of the register forming the read pointer 105. If so, the detection logic 201 determines that the FIFO 303 as the buffer is full, and outputs a full signal to the arithmetic processing unit 301. In addition, the above-mentioned FIFO303
Is not full, the input control circuit 102
An input ready signal indicating that data can be input to the IFO 303 is output to the arithmetic processing unit 301. Therefore, the arithmetic processing unit 301 converts the data into the F
Before inputting to the IFO 303, it is necessary to check the full signal or the input ready signal to confirm that data input to the FIFO 303 is possible.
Then, data can be input to the FIFO 303 until the full signal becomes active or the input ready signal becomes inactive.
Next, a case where data is output from the FIFO 303 to the arithmetic processing unit 302 will be described. First, when the arithmetic processing unit 301 outputs a reset signal to the FIFO 303, the reset logic 115 of the FIFO 303 resets the write pointer 104 and the read pointer 105 to a value indicated by the write pointer 104 and the read pointer 105. Becomes zero, and there is no data inside the FIFO (initialized state). Then, when the value indicated by the write pointer 104 and the value indicated by the read pointer 105 match, the detection logic 201 determines that there is no data inside the FIFO 303, and outputs an empty signal to the arithmetic processing unit 302.
Output to Next, when the arithmetic processing unit 301 inputs data to the FIFO 303, the write pointer 104 is incremented. Then, the detection logic 201 makes the empty signal inactive. Also, the above FIFO
When the 303 is outputting data to the DO line, the output control circuit 103 activates the output ready signal. In order to avoid an underflow of the data in the FIFO 303, the arithmetic processing unit 302 is not necessarily required to read the data from the FIFO 303, and the empty signal is inactive or the output ready signal is active. You need to make sure that
After reading the data output from the FIFO 303 to the DO line, the arithmetic processing unit 302 outputs the shift-out pulse to the SO
Output to line. Then, the read pointer 105 of the FIFO 303 is incremented, and the FIFO 303 stores the next data.
Output to DO line. Thus, the arithmetic processing unit 301
Thus, the arithmetic processing unit 302 can first read the data written in the FIFO 303 from the FIFO 303 first. By the way, generally, an arithmetic processing unit uses an 8-bit or 16-bit processor, and thus generates a transmission code having a plurality of bit lengths. FIG. 8A is a diagram showing an example of a fixed-length code among transmission codes of a plurality of bit lengths. In the fixed length code, a binary transmission code is assigned to each of the code words 1, 2, 3, 4, and 5. When the transmission code is limited to 25 or less, the transmission code length of the transmission code is at most 5 bits, and the transmission code of 8 bits or 16 bits generally used in the arithmetic processing unit is used. There is no need to transmit bits. Therefore, the arithmetic processing unit may perform the process of shifting out the lower 5 bits of the 8-bit or 16-bit transmission code. FIG. 8 (b) is a diagram showing an example of a variable length code among transmission codes of a plurality of bit lengths. In the variable length codes, transmission codes as shown in FIG. 8B are assigned to the code words 1, 2, 3, 4, and 5, respectively. For example, when transmitting a code word of 2, this code word is converted into a transmission code of 01 (binary number) and transmitted. When transmitting a code word of 4, this code word is transmitted.
It is converted to a transmission code of 0001 (binary number) and transmitted. As described above, in the variable length code, the transmission code length of the transmission code to be transmitted to the transmission path is changed according to the code word to be transmitted. In general, a short transmission code is assigned to a code word having a high frequency of appearance, so that the overall transmission code length is shortened. In addition, in order to generate a transmission code having a plurality of bits, a method called table conversion is generally used. FIG. 5 (c) is a diagram showing an example of the table conversion. Table conversion, the code word and the inside in the memory address, by storing a transmission code (b 7 ~b 0) and the transmission code length corresponding to the code words (b 15 ~b 8) in advance, code Convert words to transmission code and transmission code length.

【発明が解決しようとする課題】[Problems to be solved by the invention]

ところで、第7図に示すように、伝送制御部402と演
算処理部401との間のデータバッファとして上記従来のF
IFO303を用いる場合には、上記演算処理部401では8ビ
ットまたは16ビットのプロセッサを使用しているため、
データ処理を複数ビットで一括処理する方が効率が良
く、上記FIFO303としては複数ビット構成のFIFOが望ま
れる。ところが、上記伝送制御部402は、一般にシリア
ルデータを取り扱うため、上記FIFO303は1ビット毎に
データを入出力する1ビット構成のものを使用してい
る。このため、上記演算処理部401は、複数ビット長の
伝送符号を、伝送する符号長分だけ順次シフトしシリア
ルデータに変換するというパラレル・シリアル変換を行
う必要がある。そして、このようなパラレル・シリアル
変換を演算処理部401で行なうと演算処理部401の入出力
処理が繁雑になり、演算処理部401のデータ処理スピー
ドが低下するという問題がある。また、外づけのROMに
よって、演算処理装置401が生成する複数ビット長の伝
送符号のパラレル・シリアル変換を行うようにすると、
上記ROMとFIFOとのインターフェイスのための回路規模
が大きくなるという問題がある。 そこで、本発明の目的は、入力制御回路がパラレルイ
ン・シリアルアウト機能を有し、入力側に接続した演算
処理部がパラレル・シリアル変換を行う必要がないよう
にして、上記演算処理部のデータ処理速度を低下させな
いFIFOメモリ装置を提供することにある。
By the way, as shown in FIG. 7, the conventional F is used as a data buffer between the transmission control unit 402 and the arithmetic processing unit 401.
When the IFO 303 is used, since the arithmetic processing unit 401 uses an 8-bit or 16-bit processor,
It is more efficient to collectively process data processing with a plurality of bits, and a FIFO having a plurality of bits is desired as the FIFO 303. However, since the transmission control unit 402 generally handles serial data, the FIFO 303 uses a one-bit configuration that inputs and outputs data on a bit-by-bit basis. For this reason, the arithmetic processing unit 401 needs to perform parallel-to-serial conversion in which a transmission code of a plurality of bits is sequentially shifted by the transmission code length and converted into serial data. When such parallel / serial conversion is performed by the arithmetic processing unit 401, the input / output processing of the arithmetic processing unit 401 becomes complicated, and there is a problem that the data processing speed of the arithmetic processing unit 401 is reduced. Also, if an external ROM is used to perform parallel-to-serial conversion of a transmission code having a multiple bit length generated by the arithmetic processing unit 401,
There is a problem that the circuit scale for the interface between the ROM and the FIFO becomes large. Therefore, an object of the present invention is to provide an input control circuit having a parallel-in / serial-out function so that an arithmetic processing unit connected to the input side does not need to perform parallel-to-serial conversion. An object of the present invention is to provide a FIFO memory device that does not reduce the processing speed.

【課題を解決するための手段】[Means for Solving the Problems]

上記目的を達成するため、本発明のFIFOメモリ装置
は、メモリセルと、上記メモリセルへのデータの入力を
制御する入力制御回路と、上記メモリセルへ入力するデ
ータの上記メモリセルへの書き込み位置を指定し、上記
データを書き込む毎にインクリメントする書き込みポイ
ンタと、上記メモリセルからのデータの出力を制御する
出力制御回路と、上記メモリセルから出力するデータの
上記メモリセルからの読み出し位置を指定し、上記デー
タを読み出す毎にインクリメントする読み出しポインタ
と、上記メモリセル内のデータ量が満杯であることを検
出して、データフルを示すフル信号を出力する検出ロジ
ックとを備えたFIFOメモリ装置において、上記入力制御
回路は、シフトイン信号を受けて、パラレル入力データ
をラッチすると共に、クロック信号を受けて、ラッチさ
れたパラレル入力データを順次シフトするシフトレジス
タと、シフトイン信号を受けて、上記メモリセルに入力
すべきデータの個数を表わすデータをラッチすると共
に、上記クロック信号を受けてカウントダウンするダウ
ンカウンタと、上記ダウンカウンタが出力するボロウ信
号と上記検出ロジックが出力するフル信号を受けて、上
記メモリセルが満杯である場合および上記ダウンカウン
タのカウンタ値が零である場合に、上記クロック信号を
上記シフトレジスタとダウンカウンタに入力しないよう
にするクロック制御回路を備えて、上記シフトレジスタ
がラッチしたパラレル入力データを、上記ダウンカウン
タがラッチしたデータが表わす個数だけ、上記メモリセ
ル内に順次シフトインして、入力データ長を任意に変更
可能なパラレルイン・シリアルアウト機能を有すること
を特徴としている。
In order to achieve the above object, a FIFO memory device of the present invention comprises a memory cell, an input control circuit for controlling input of data to the memory cell, and a write position of data to be input to the memory cell to the memory cell. A write pointer that increments each time the data is written, an output control circuit that controls the output of data from the memory cell, and a read position of the data that is output from the memory cell from the memory cell. A read pointer that increments each time the data is read, and a FIFO memory device that includes a detection logic that detects that the amount of data in the memory cell is full and outputs a full signal indicating data full. The input control circuit receives the shift-in signal, latches the parallel input data, and A shift register that sequentially shifts the latched parallel input data in response to a clock signal; latches data indicating the number of data to be input to the memory cell in response to a shift-in signal; A down counter that receives and counts down, receives a borrow signal output by the down counter and a full signal output by the detection logic, and when the memory cell is full and when the counter value of the down counter is zero. A clock control circuit for preventing the clock signal from being input to the shift register and the down counter, the parallel control circuit latching the parallel input data latched by the shift register by the number represented by the data latched by the down counter. To the input data length. It has a parallel-in / serial-out function that can be freely changed.

【作用】[Action]

パラレル入力データはシフトイン信号を受けたシフト
レジスタにラッチされる。また、メモリセルに入力すべ
きデータの個数を表わすデータはシフトイン信号を受け
たダウンカウンタにラッチされる。そして、上記メモリ
セルが満杯でなく、かつ上記ダウンカウンタのカウンタ
値が零でない場合にだけ、クロック制御回路の制御でク
ロック信号が上記ダウンカウンタと上記シフトレジスタ
に入力される。すると、上記シフトレジスタにラッチさ
れたパラレル入力データは、上記クロック信号に基づい
て、上記ダウンカウンタにラッチされたデータが表わす
個数だけ1ビットずつ上記メモリセル内にシフトインさ
れる。すなわち、入力側のデータ長を任意に変更でき、
固定長データのパラレル・シリアル変換およびバッファ
リングだけでなく、1符号毎に異なる符号長を持つ可変
長符号のパラレル・シリアル変換およびバッファリング
が可能になる。
The parallel input data is latched in the shift register that has received the shift-in signal. Data representing the number of data to be input to the memory cell is latched by the down counter receiving the shift-in signal. Only when the memory cell is not full and the counter value of the down counter is not zero, a clock signal is input to the down counter and the shift register under the control of the clock control circuit. Then, the parallel input data latched by the shift register is shifted into the memory cell by one bit by the number represented by the data latched by the down counter, based on the clock signal. In other words, the data length on the input side can be arbitrarily changed,
This enables not only parallel-serial conversion and buffering of fixed-length data, but also parallel-serial conversion and buffering of variable-length codes having different code lengths for each code.

【実施例】【Example】

以下、本発明を図示の実施例により詳細に説明する。 第1図は本発明の実施例のFIFOのブロック図である。
この実施例は、入力制御回路120以外の部分は第5図に
示す従来のFIFOと同一であるので、同一の部分には同一
の番号を付し、入力制御回路120に関する部分のみを重
点的に説明する。 第1図において、121はnビットのパラレル入力デー
タDInをシフトイン信号としてのシフトインパルスSIの
立ち上りでラッチし、クロック信号としてのダウンパル
ス信号/DOWNの立ち上りで、上記ラッチしたパラレル入
力データDInをシフトするシフトレジスタである。上記
シフトレジスタ121は、制御信号SHが高レベルのとき出
力端子Qnから出力端子Qa側に上記パラレル入力データDI
nをシフトする一方、制御信号SHが低レベルのとき出力
端子Qa側から出力端子Qn側に上記パラレル入力データDI
nをシフトする。124は上記シフトレジスタ121がシフト
したデータを取り出す位置を上記データのシフト方向に
よって切り変えるデータセレクタである。122はmビッ
トのシフト数を示す入力データCImを上記シフトインパ
ルスSIの立ち上がりでラッチし、上記ダウンパルス信号
/DOWNの立ち上がりでカウントダウンするダウンカウン
タである。このダウンカウンタ122は、このダウンカウ
ンタ122のカウンタ値が零になったときに、ボロウ信号/
BORROWを低レベルにする。また、リセット時には、リセ
ット信号を受けたリセットロジック115が上記シフトレ
ジスタ121,ダウンカウンタ122および書き込みポインタ1
04,読み出しポインタ105を初期化する。原発振クロック
信号は上記FIFOの内部回路の動作タイミングを作るため
の信号である。第2図は上記FIFOの入力側の信号のタイ
ミング図である。第2図に示すように、シフトレジスタ
121への入力データDInを5,ダウンカウンタ122への入力
データCImを3に設定し、シフトインパルスSIをシフト
レジスタ121とダウンカウンタ122に入力すると、上記シ
フトインパルスSIの立ち上りで、上記ダウンカウンタ12
2のカウンタ値は3となり、上記シフトレジスタ121の出
力データは5となる。このとき、上記ダウンカウンタ12
2のカウンタ値が零でなくなるため、ボロウ信号/BORROW
が高レベルになる。そして、上記ボロウ信号/BORROWと
上記原発振クロック信号との同期を取るために、フリッ
プフロップ123とアンドゲート125によりボロウ−B信号
/BORROW−Bを作っている。(上記シフトインパルスSI
と上記原発振クロック信号が同期関係にある場合には、
上記ボロウ−B信号/BORROW−Bを作る必要はない。)
そして、アンドゲート126により、上記ボロウ−B信号/
BORROW−Bと上記原発振クロック信号とのアンドをと
り、クロック信号としてのダウンパルス信号/DOWNを作
っている。このダウンパルス信号/DOWNは、上記シフト
レジスタ121のシフトクロックおよび上記ダウカウンタ1
22のダウンパルスとして機能する。そして、上記FIFOが
フルのときには、メモリセル101内にデータをシフトイ
ンしないようにするために、上記ダウンパルス信号/DOW
Nを、検出ロジック201が出力するフル信号でゲートし
て、上記FIFOがフルのときには上記ダウンパルス信号/D
OWNを上記シフトレジスタ121と上記ダウンカウンタ122
に入力しないようにしている。上記フリップフロップ12
3と上記アンドゲート125とアンドゲート126とでクロッ
ク制御回路を構成している。 上記構成において、上記クロック制御回路からダウン
パルス信号/DOWNのパルスが1個発生すると、上記シフ
トレジスタ121は、上記パルスの立ち上がりで、書き込
みポインタ104が示すメモリセル101の位置に、上記シフ
トレジスタ121の出力端子Qaにあるデータを、データセ
レクタ124を介して書き込む。同時に、上記書き込みポ
インタ104はインクリメントする。また、この時上記ダ
ウンカウンタ122はディクリメントして、そのカウンタ
長が2になると共に、上記シフトレジスタ121は、この
シフトレジスタ121のデータを1ビットシフトし、出力
端子Qbにあるデータを出力端子Qaにシフトする。こうし
て、上記クロック制御回路からダウンパルス信号/DOWN
のパルスが1個発生する毎に、上記シフトレジスタ121
が持つデータを1ビットずつ上記メモリセル101にシフ
トインするようにしている。そして、上記ダウンカウン
タ122のカウンタ値が零になったときはボロウ信号/BORR
OWが低レベルになり、上記ダウンパルス信号/DOWNのパ
ルスは発生しなくなり、上記シフトレジスタ121が持つ
データはメモリセル101へシフトインしなくなる。ま
た、上記ボロウ信号/BORROWとフル信号は、オアゲート1
27によって、インプットレディ信号を作っている。この
インプットレディ信号は入力制御回路120へのデータ入
力が可能であることを示す。 第3図は上記FIFOの使用例を示す。この使用例では、
FIFO701を演算処理部702と伝送制御部703の間に接続し
て、上記FIFO701の入力側に10ビットの固定長データを
入力する。上記FIFO701の端子Ci0、Ci2およびCi4〜Cin
を接地し、端子Ci1と端子Ci3を+5Vの電源に接続して、
上記FIFO701のダウンカウンタへの入力データCImを10に
固定している。また、上記FIFO701にシフトインするデ
ータは16ビットのうち下位10ビットのみなので、上記FI
FO701のデータバスDi0〜Di9のみを演算処理部702のデー
タバスD0〜D9に接続している。この接続状態におい
て、上記演算処理部702は、インプットレディ信号がア
クティブになると、シフトインパルスSIを上記FIFO701
に出力する。すると、上記演算処理部702のデータバス
0〜D9に有るデータが上記FIFO701のデータバスDi0
Di9にシフトインする。そして、上記FIFO701は上記デー
タバスDi0〜Di9に有るパラレルデータをシリアルデータ
に変換して、DO端子から伝送制御部703に出力すること
ができる。 第4図に上記FIFOの今一つの使用例を示す。この使用
例では、FIFO801を演算処理部802と伝送制御部803の間
に接続して、上記FIFO801の入力側に8ビット以内の可
変長データを入力する。上記FIFO801のダウンカウンタ
が1から8までカウントできるように、上記FIFO801の
端子Ci0〜Ci3を上記演算処理部802のデータバスD8〜D
11に接続している。上記FIFOの端子Ci4〜Cinは接地して
いる。また、上記FIFO801のシフトレジスタに8ビット
までの可変長データを入力できるように、上記FIFO801
のデータバスDi0〜Di7を上記演算処理部802のデータバ
スD0〜D7に接続している。この接続状態において、演
算処理部802は、インプットレディ信号がアクティブに
なると、シフトインパルスSIを上記FIFO801に出力す
る。すると、上記演算処理部802は、第8図(c)に示
すような可変長データの変換メモリ内容(データバスD
8〜D15に対応する上位バイトb8〜b15が伝送符号長を
表し、データバスD0〜D7に対応する下位バイトb0
7が伝送符号を表している。)を、直接に上記FIFO801
にパラレル入力できる。そして、上記FIFO801は上記パ
ラレル入力されたデータをシリアルデータに変換して、
DO端子から伝送制御部803に出力することができる。
Hereinafter, the present invention will be described in detail with reference to the illustrated embodiments. FIG. 1 is a block diagram of a FIFO according to an embodiment of the present invention.
In this embodiment, the parts other than the input control circuit 120 are the same as the conventional FIFO shown in FIG. 5, so the same parts are assigned the same numbers, and only the parts related to the input control circuit 120 are emphasized. explain. In FIG. 1, 121 latches n-bit parallel input data DIn at the rise of a shift impulse SI as a shift-in signal, and at the rise of a down pulse signal / DOWN as a clock signal, converts the latched parallel input data DIn. This is a shift register for shifting. When the control signal SH is at a high level, the shift register 121 outputs the parallel input data DI from the output terminal Qn to the output terminal Qa.
n while the control signal SH is at a low level, the parallel input data DI is transferred from the output terminal Qa to the output terminal Qn.
Shift n. Reference numeral 124 denotes a data selector for switching a position from which the shift register 121 takes out the shifted data in accordance with a shift direction of the data. 122 latches input data CIm indicating the number of shifts of m bits at the rising edge of the shift impulse SI and outputs the down pulse signal
This is a down counter that counts down at the rising edge of / DOWN. When the count value of the down counter 122 becomes zero, the down counter 122
Set BORROW to low level. At the time of reset, the reset logic 115 receiving the reset signal outputs the shift register 121, the down counter 122, and the write pointer 1
04, the read pointer 105 is initialized. The original oscillation clock signal is a signal for generating operation timing of the internal circuit of the FIFO. FIG. 2 is a timing chart of signals on the input side of the FIFO. As shown in FIG.
When the input data DIn to the counter 121 is set to 5, the input data CIm to the down counter 122 is set to 3, and the shift impulse SI is input to the shift register 121 and the down counter 122, the down counter 12 is set at the rise of the shift impulse SI.
The counter value of 2 becomes 3, and the output data of the shift register 121 becomes 5. At this time, the down counter 12
Since the counter value of 2 is not zero, the borrow signal / BORROW
Becomes a high level. In order to synchronize the borrow signal / BORROW with the original oscillation clock signal, the flip-flop 123 and the AND gate 125 control the borrow-B signal.
I am making / BORROW-B. (The above shift impulse SI
And the original oscillation clock signal are in a synchronous relationship,
There is no need to generate the borrow-B signal / BORROW-B. )
Then, the borrow-B signal /
An AND between BORROW-B and the original oscillation clock signal is taken to generate a down pulse signal / DOWN as a clock signal. The down pulse signal / DOWN is supplied to the shift clock of the shift register 121 and the down counter 1
Functions as 22 down pulses. When the FIFO is full, the down pulse signal / DOW is used to prevent data from shifting into the memory cell 101.
N is gated with the full signal output by the detection logic 201, and when the FIFO is full, the down pulse signal / D
OWN is stored in the shift register 121 and the down counter 122.
I try not to enter it. The above flip-flops 12
3 and the AND gate 125 and the AND gate 126 constitute a clock control circuit. In the above configuration, when one pulse of the down pulse signal / DOWN is generated from the clock control circuit, the shift register 121 moves the shift register 121 to the position of the memory cell 101 indicated by the write pointer 104 at the rise of the pulse. The data at the output terminal Qa is written via the data selector 124. At the same time, the write pointer 104 is incremented. At this time, the down counter 122 is decremented so that the counter length becomes 2, and the shift register 121 shifts the data of the shift register 121 by 1 bit, and outputs the data at the output terminal Qb to the output terminal Qb. Shift to Qa. Thus, the down pulse signal / DOWN is output from the clock control circuit.
Each time one pulse is generated, the shift register 121
Is shifted into the memory cell 101 one bit at a time. When the counter value of the down counter 122 becomes zero, the borrow signal / BORR
OW becomes low level, the pulse of the down pulse signal / DOWN does not occur, and the data of the shift register 121 does not shift into the memory cell 101. The borrow signal / BORROW and the full signal are OR gate 1
27 makes an input ready signal. This input ready signal indicates that data input to the input control circuit 120 is possible. FIG. 3 shows an example of use of the FIFO. In this use case,
The FIFO 701 is connected between the arithmetic processing unit 702 and the transmission control unit 703, and 10-bit fixed-length data is input to the input side of the FIFO 701. The terminals Ci 0 , Ci 2 and Ci 4 to Ci n of the FIFO 701
Is grounded, and terminals Ci 1 and Ci 3 are connected to a + 5V power supply.
The input data CIm to the down counter of the FIFO 701 is fixed at 10. Since only the lower 10 bits of the 16 bits are shifted into the FIFO 701, the data
Only the data buses Di 0 to Di 9 of the FO 701 are connected to the data buses D 0 to D 9 of the arithmetic processing unit 702. In this connection state, when the input ready signal becomes active, the arithmetic processing unit 702 transmits the shift impulse SI to the FIFO 701.
Output to Then, the data on the data buses D 0 to D 9 of the arithmetic processing unit 702 is stored in the data buses Di 0 to Di 0 of the FIFO 701.
Shift into Di 9 . The FIFO 701 can convert the parallel data on the data buses Di 0 to Di 9 into serial data and output the serial data to the transmission control unit 703 from the DO terminal. FIG. 4 shows another usage example of the FIFO. In this usage example, the FIFO 801 is connected between the arithmetic processing unit 802 and the transmission control unit 803, and variable-length data of 8 bits or less is input to the input side of the FIFO 801. The terminals Ci 0 to Ci 3 of the FIFO 801 are connected to the data buses D 8 to D of the arithmetic processing unit 802 so that the down counter of the FIFO 801 can count from 1 to 8.
Connected to 11 . Terminal Ci 4 ~Ci n of the FIFO is grounded. Also, the FIFO 801 is controlled so that variable length data of up to 8 bits can be input to the shift register of the FIFO 801.
A data bus Di 0 -DI 7 of connecting to a data bus D 0 to D 7 of the processing unit 802. In this connection state, when the input ready signal becomes active, the arithmetic processing unit 802 outputs a shift impulse SI to the FIFO 801. Then, the arithmetic processing unit 802 outputs the contents of the variable-length data conversion memory (data bus D) as shown in FIG.
8 High Byte b 8 ~b 15 corresponding to to D 15 represents the transmission code length, lower byte b 0 corresponding to the data bus D 0 to D 7 ~
b 7 represents a transmission code. ), Directly above FIFO801
Parallel input. Then, the FIFO 801 converts the parallel input data into serial data,
The signal can be output from the DO terminal to the transmission control unit 803.

【発明の効果】【The invention's effect】

以上の説明より明らかなように、本発明のFIFOメモリ
装置は、クロック制御回路が制御するクロック信号に基
づき、メモリセルが満杯でない場合にのみ、シフトレジ
スタにラッチしたパラレル入力データを、ダウンカウン
タにラッチしたデータが表わす個数だけ、上記メモリセ
ルに順次シフトインできる。したがって、本発明によれ
ば、入力側のデータ長を任意に変更でき、固定長データ
のパラレル・シリアル変換およびバッファリングだけで
なく、1符号毎に異なる符号長を持つ可変長符号のパラ
レル・シリアル変換およびバッファリングができる。こ
のため、本発明によれば、従来と異なり、入力側に接続
した演算処理部が、パラレル・シリアル変換する必要性
が生じなくて、従来に較べて上記演算処理部のデータ処
理速度を向上させることができる。
As apparent from the above description, the FIFO memory device of the present invention uses the clock signal controlled by the clock control circuit to transfer the parallel input data latched in the shift register to the down counter only when the memory cell is not full. As many as the number represented by the latched data can be sequentially shifted into the memory cells. Therefore, according to the present invention, the data length on the input side can be arbitrarily changed, and not only parallel-serial conversion and buffering of fixed-length data, but also parallel-serial Conversion and buffering are possible. For this reason, according to the present invention, unlike the related art, the arithmetic processing unit connected to the input side does not need to perform parallel-to-serial conversion, and improves the data processing speed of the arithmetic processing unit as compared with the related art. be able to.

【図面の簡単な説明】[Brief description of the drawings]

第1図は本発明のFIFOメモリ装置の一実施例のブロック
図、第2図は上記実施例の入力側の信号のタイミング
図、第3,4図は上記実施例の使用例の説明図、第5図は
従来のFIFOメモリ装置のブロック図、第6,7図は従来のF
IFOメモリ装置の使用例の説明図、第8図は複数ビット
長の伝送符号を説明する図である。 101……メモリセル、102,120……入力制御回路、103…
…出力制御回路、104……書き込みポインタ、105……読
み出しポインタ、115……リセットロジック、121……シ
フトレジスタ、122……ダウンカウンタ。
FIG. 1 is a block diagram of an embodiment of a FIFO memory device according to the present invention, FIG. 2 is a timing diagram of signals on the input side of the above embodiment, FIGS. FIG. 5 is a block diagram of a conventional FIFO memory device, and FIGS.
FIG. 8 is a diagram illustrating an example of use of the IFO memory device, and FIG. 8 is a diagram illustrating a transmission code having a plurality of bits. 101 ... memory cells, 102, 120 ... input control circuit, 103 ...
... output control circuit, 104 ... write pointer, 105 ... read pointer, 115 ... reset logic, 121 ... shift register, 122 ... down counter.

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】メモリセルと、上記メモリセルへのデータ
の入力を制御する入力制御回路と、上記メモリセルへ入
力するデータの上記メモリセルへの書き込み位置を指定
し、上記データを書き込む毎にインクリメントする書き
込みポインタと、上記メモリセルからのデータの出力を
制御する出力制御回路と、上記メモリセルから出力する
データの上記メモリセルからの読み出し位置を指定し、
上記データを読み出す毎にインクリメントする読み出し
ポインタと、上記メモリセル内のデータ量が満杯である
ことを検出して、データフルを示すフル信号を出力する
検出ロジックとを備えたFIFOメモリ装置において、 上記入力制御回路は、 シフトイン信号を受けて、パラレル入力データをラッチ
すると共に、クロック信号を受けて、ラッチされたパラ
レル入力データを順次シフトするシフトレジスタと、 シフトイン信号を受けて、上記メモリセルに入力すべき
データの個数を表わすデータをラッチすると共に、上記
クロック信号を受けてカウントダウンするダウンカウン
タと、 上記ダウンカウンタが出力するボロウ信号と上記検出ロ
ジックが出力するフル信号を受けて、上記メモリセルが
満杯である場合および上記ダウンカウンタのカウンタ値
が零である場合に、上記クロック信号を上記シフトレジ
スタとダウンカウンタに入力しないようにするクロック
制御回路を備えて、 上記シフトレジスタがラッチしたパラレル入力データ
を、上記ダウンカウンタがラッチしたデータが表わす個
数だけ、上記メモリセル内に順次シフトインして、入力
データ長を任意に変更可能なパラレルイン・シリアルア
ウト機能を有することを特徴とするFIFOメモリ装置。
A memory cell, an input control circuit for controlling input of data to the memory cell, a write position of data to be input to the memory cell to the memory cell, and each time the data is written A write pointer to increment, an output control circuit for controlling the output of data from the memory cell, and a read position from the memory cell for data output from the memory cell,
A FIFO memory device comprising: a read pointer that increments each time the data is read; and detection logic that detects that the amount of data in the memory cell is full and outputs a full signal indicating data full. An input control circuit receives a shift-in signal, latches parallel input data, and receives a clock signal to sequentially shift the latched parallel input data. Latching data representing the number of data to be input to the memory, receiving a clock signal and counting down; receiving a borrow signal output by the down counter and a full signal output by the detection logic; If the cell is full and the down counter A clock control circuit for preventing the clock signal from being input to the shift register and the down counter when the data value is zero, the parallel input data latched by the shift register being converted to data latched by the down counter. A FIFO memory device having a parallel-in / serial-out function capable of arbitrarily changing the input data length by sequentially shifting in the memory cells by the number represented by.
JP2244889A 1990-09-12 1990-09-12 FIFO memory device Expired - Fee Related JP2597041B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2244889A JP2597041B2 (en) 1990-09-12 1990-09-12 FIFO memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2244889A JP2597041B2 (en) 1990-09-12 1990-09-12 FIFO memory device

Publications (2)

Publication Number Publication Date
JPH04121890A JPH04121890A (en) 1992-04-22
JP2597041B2 true JP2597041B2 (en) 1997-04-02

Family

ID=17125493

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2244889A Expired - Fee Related JP2597041B2 (en) 1990-09-12 1990-09-12 FIFO memory device

Country Status (1)

Country Link
JP (1) JP2597041B2 (en)

Also Published As

Publication number Publication date
JPH04121890A (en) 1992-04-22

Similar Documents

Publication Publication Date Title
US5365485A (en) Fifo with fast retransmit mode
US5524270A (en) System for transferring data between asynchronous data buses with a data buffer interposed in between the buses for synchronization of devices timed by different clocks
US4593393A (en) Quasi parallel cyclic redundancy checker
KR100434833B1 (en) Serial/parallel conversion circuit, data transfer control device and electronic equipment
US5375092A (en) First-in first-out memory device
JPH03238686A (en) Method and device for generating state flag
JP3645584B2 (en) Data transfer synchronization device
US5459855A (en) Frequency ratio detector for determining fixed frequency ratios in a computer system
JP2927359B2 (en) Data packer
WO2002017494A2 (en) Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
US5539739A (en) Asynchronous interface between parallel processor nodes
EP0217486B1 (en) A synchronizing system
EP0390309B1 (en) Data unpacker
JPH0713898A (en) Semiconductor integrated circuit device
JP2597041B2 (en) FIFO memory device
JPH11163864A (en) Cell buffer circuit
US11005642B1 (en) Output circuit for a source device with arbitrary access time
US5200647A (en) High-speed signal multiplexing circuit for multiplexing high-speed signals
JPH0721103A (en) Data transfer device
JP3190800B2 (en) Asynchronous transfer circuit with transfer speed switching function
JPS58170117A (en) Serial/parallel-parallel/serial converting circuit
JP3592169B2 (en) Asynchronous data transfer control device and asynchronous data transfer control method
JP3471275B2 (en) Synchronization circuit
CN118606233A (en) FIFO circuit, method, chip and device based on register output of dual-port RAM
KR930007593Y1 (en) Control signal oscillating circuit for data input & output between apparatus

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080109

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090109

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees