CY7C401/CY7C403
CY7C402/CY7C404
4
Operational Descrip tion
Concept
Unlike traditional FI FO s, these devices are designed usi ng a
dual-port memory, read and write pointer, and control logic.
The read and write pointers are inc remented by the SO and SI
respe ctively. The availability of a n empty space to shift in data
is indicated by the IR signal, while the presence of data at the
output is indicated by th e OR signal. The con ventional concept
of bubble-through is absent. Inst ead, t he delay for input data
to appear at the output is the time required t o move a pointer
and propagate an OR signal. The output enable (OE) sig nal
provides the capability to OR tie multiple FIFOs together on
a co mm o n b u s.
Resetti ng the FI FO
Upon power-up, the FIFO must be reset with a master reset
(MR) signal. This caus es th e FIFO to enter an empty condition
signified by the OR signal being LOW at the same time the IR
signal is HIGH. In this condition, the data outputs (DO0 – DOn)
will be in a LOW s tate.
Shifting D ata In
Data is shifted in on the rising edge of the SI signal. This loads
inpu t data into the first word location of the F IFO. On the falling
edge of the SI signal, the write pointer is moved to the next
word position and the IR signal goes HIGH, indicating the
readiness to accept new data. If the FIFO is full, the IR will
remain LOW until a word of data is shifted out.
Shifting D ata Out
Data is shifted out of the FIFO on the falling edge of the SO
sign al. This cause s the internal read pointer to be advanced t o
the next word location. If data is present, valid d ata will a ppear
on the outputs and the OR signal will go HIGH. If data is not
present, the OR signal will stay LOW indicating the FIFO is
empty. Upon the rising edge of SO, the OR signal goes LOW.
The data outputs of the FIFO should be sampled with
edge-sensitive ty pe D flip-f lops (or eq ui val ent), u si ng the SO
signal a s the clock input to the flip-flop.
Bubble-Through
Two bubble-through condit ions exist. The first is when the de-
vice is empty. After a word is sh ifted into an empty dev ice, the
data pr opagates to the output. After a delay, the OR flag goes
HIGH, indicating valid data at the output.
The second bubble-through condition occurs whe n the device
is full. Shif ting data out create s an empty location th at propa-
gates to the input. After a delay, the IR flag goes HIGH. If the
SI signal is HIGH at this time, data on the input will be shift ed
in.
Possible Minimum Pulse Width Violation at the Boundary
Conditions
If the handshaking signals IR an d OR are not properly used to
generate the SI and SO signals, it is possible to violate the
minimum (effective) SI and SO positive pulse widths at the full
and em pty boundarie s.
When this violation occurs, the operation of the FIFO is unp re-
dictable. It must t h en be reset, and all dat a is l ost.
Application of the 7C403–25/7C404–25 at 25 MHz
Application of the CY7C403 or CY7C404 Cypress CMOS
FIFOs requires knowledge of characteristics that are not easily
specified i n a datasheet, but which are necessary for reliable
operation under all condit ions, so we will specify them here.
When a n empty FIFO is fi lled with initial i nformation at maxi-
mum “shift in” S I f requency, fo llowed by immediate shifting out
of the data also at maximum “ shift out” SO fr equency, the de-
signer must be aware of a window of time which follows the
initial r ising edge of the OR signal , d uring which time the S O
signal is not recognized. This condition exists only at
high-speed operation where more than one SO may be gen-
erated inside the prohibited window. This condition does not
inhibit the operation of the FIFO at full-frequency operation,
but rather dela ys t he full 25-MHz operation until after the win-
dow has passed.
There are several implementation techniques for managing
the window so that all SO signals are recognized:
1. The first involves delaying SO op eration such that it does
not occur in the critical window. This c an be accomplished
by causing a fixed delay o f 4 0 ns “initiated by the SI signal
only when t he FIFO is empty” to i nhibit or gate the SO ac-
tivity. However, this requires th at t he SO operation be at
least temporarily synchronized with the i nput SI operation.
In synchronous applications this may well be possible and
a valid solution.
2. Another sol ution not uncommon in synchronous appli ca-
tions is to on ly begin sh ifting data out of the FIFO when it is
more than half full. This is a common method of FI FO ap-
plicat ion, as ear lier FIFOs could not be operated at maxi-
mum frequency when near full or empty. Although Cypress
FIFO s do not have this limi tation, an y s ystem d esi gned i n
this manner will n ot encounter the window condition de-
scribed above.
3. The windo w may also be managed b y not allowing the f irst
SO s ign al t o occur until the window in question has pass ed.
This can be accom plished by delaying the SO 40 ns from
the rising edge of the initial OR signal. This however in-
volves the requirement that this only occurs on the first oc-
curren ce of data being loaded into the FIFO from an empty
condition and therefore requires th e knowledge of IR and
SI conditions as well as SO.
4. Handshaking w ith the OR signal is a third method of avoid-
ing the window i n questio n. W ith this technique the rising
edge of SO, or the fact t hat SO signal is HIGH, will cause
the OR signal to go LOW. The SO signal is no t taken LOW
again, advancin g the internal pointer to the next data, until
the OR signal goes LOW. This ensur es that the SO pulse
that is initiated in the window will be automatically extended
long enough to be recognized.
5. There r emains the decision as to what signal will be used
to latch the data from the output o f the FIFO into the receiv-
ing source. The leading ed ge of t he SO signal is most ap-
propriate because data is guaranteed to be sta ble prior to
and after the SO le ading edge f or each FIFO. This is a
solution for a ny number of FIFOs in parallel.
Any of the above solutions will ensure the correct operation o f
a Cypress FIFO at 25 MHz. The specific implementation is left
to the designer and is dependent on the specific application
needs.