
CY7C43643AV
CY7C43663AV/CY7C43683AV
22
PRELIMINARY
synchronizing clock. Therefore, an Empty flag is LOW if a word
in memory is the next data to be sent to the FIFO output reg-
ister and two cycles have not elapsed since the time the word
was written. The Empty flag of the FIFO remains LOW until the
second LOW-to-HIGH transition of the synchronizing clock oc-
curs, forcing the Empty flag HIGH; only then can data be read.
A LOW-to-HIGH transition on an Empty/Output Ready flag
synchronizing clock begins the first synchronization cycle of a
write if the clock transition occurs at time t
SKEW1
or greater
after the write. Otherwise, the subsequent clock cycle can be
the first synchronization cycle.
Full/Input Ready Flags (FF/IR)
This is a dual-purpose flag. In FWFT Mode, the Input Ready
(IR) function is selected. In CY Standard Mode, the Full Flag
(FF) function is selected. For both timing modes, when the
Full/Input Ready flag is HIGH, a memory location is free in the
SRAM to receive new data. No memory locations are free
when the Full/Input Ready flag is LOW and attempted writes
to the FIFO are ignored.
The Full/Input Ready flag of a FIFO is synchronized to the port
clock that writes data to its array. For both FWFT and CY Stan-
dard modes, each time a word is written to a FIFO, its write
pointer is incremented. The state machine that controls a Full/
Input Ready flag monitors a write pointer and read pointer
comparator that indicates when the FIFO SRAM status is full,
full
–
1, or full
–
2. From the time a word is read from a FIFO, its
previous memory location is ready to be written to in a mini-
mum of two cycles of the Full/Input Ready flag synchronizing
clock. Therefore, a Full/Input Ready flag is LOW if less than
two cycles of the Full/Input Ready flag synchronizing clock
have elapsed since the next memory write location has been
read. The second LOW-to-HIGH transition on the Full/Input
Ready flag synchronizing clock after the read sets the Full/
Input Ready flag HIGH.
A LOW-to-HIGH transition on a Full/Input Ready flag synchro-
nizing clock begins the first synchronization cycle of a read if
the clock transition occurs at time t
SKEW1
or greater after the
read. Otherwise, the subsequent clock cycle can be the first
synchronization cycle.
Almost Empty Flags (AE)
The Almost Empty flag of a FIFO is synchronized to the port
clock that reads data from its array. The state machine that
controls an Almost Empty flag monitors a write pointer and
read pointer comparator that indicates when the FIFO SRAM
status is almost empty, almost empty+1, or almost empty+2.
The Almost Empty state is defined by the contents of register
X for AE. These registers are loaded with preset values during
a FIFO reset, programmed from Port A, or programmed seri-
ally (see Almost Empty flag and Almost Full flag offset pro-
gramming above). An Almost Empty flag is LOW when its FIFO
contains X or less words and is HIGH when its FIFO contains
(X+1) or more words. A data word present in the FIFO output
register has been read from memory.
Two LOW-to-HIGH transitions of the Almost Empty flag syn-
chronizing clock are required after a FIFO write for its Almost
Empty flag to reflect the new level of fill. Therefore, the Almost
Full flag of a FIFO containing (X+1) or more words remains
LOW if two cycles of its synchronizing clock have not elapsed
since the write that filled the memory to the (X+1) level. An
Almost Empty flag is set HIGH by the second LOW-to-HIGH
transition of its synchronizing clock after the FIFO write that
fills memory to the (X+1) level. A LOW-to-HIGH transition of an
Almost Empty flag synchronizing clock begins the first syn-
chronization cycle if it occurs at time t
SKEW2
or greater after
the write that fills the FIFO to (X+1) words. Otherwise, the sub-
sequent synchronizing clock cycle may be the first synchroni-
zation cycle.
Almost Full Flags (AF)
The Almost Full flag of a FIFO is synchronized to the port clock
that writes data to its array. The state machine that controls an
Almost Full flag monitors a write pointer and read pointer com-
parator that indicates when the FIFO SRAM status is almost
full, almost full
–
1, or almost full
–
2. The Almost Full state is
defined by the contents of register Y for AF. These registers
are loaded with preset values during a FIFO reset, pro-
grammed from Port A, or programmed serially (see Almost
Empty flag and Almost Full flag offset programming above). An
Almost Full flag is LOW when the number of words in its FIFO
is greater than or equal to (1024
–
Y), (4096
–
Y), or (16384
–
Y),
for the CY7C436X3AV respectively. An Almost Full flag is
HIGH when the number of words in its FIFO is less than or
equal to [1024
–
(Y+1)], [4096
–
(Y+1)], or [16384
–
(Y+1)], for the
CY7C436X3AV respectively. Note that a data word present in
the FIFO output register has been read from memory.
Two LOW-to-HIGH transitions of the Almost Full flag synchro-
nizing clock are required after a FIFO read for its Almost Full
flag to reflect the new level of fill. Therefore, the Almost Full
flag of a FIFO containing [1024/4096/16384
–
(Y+1)] or less
words remains LOW if two cycles of its synchronizing clock
have not elapsed since the read that reduced the number of
words in memory to [1024/4096/16384
–
(Y+1)]. An Almost Full
flag is set HIGH by the second LOW-to-HIGH transition of its
synchronizing clock after the FIFO read that reduces the num-
ber of words in memory to [1024/4096/16384
–
(Y+1)]. A LOW-
to-HIGH transition of an Almost Full flag synchronizing clock
begins the first synchronization cycle if it occurs at time t
SKEW2
or greater after the read that reduces the number of words in
memory to [1024/4096/16384
–
(Y+1)]. Otherwise, the subse-
quent synchronizing clock cycle may be the first synchroniza-
tion cycle.
Mailbox Registers
Each FIFO has a 36-bit bypass register to pass command and
control information between Port A and Port B without putting
it in queue. The Mailbox Select (MBA, MBB) inputs choose
between a mail register and a FIFO for a port data transfer
operation. The usable width of both the Mail1 and Mail2 regis-
ters matches the selected bus size for Port B.
A LOW-to-HIGH transition on CLKA writes A
0
35
data to the
Mail1 Register when a Port A write is selected by CSA, W/RA,
and ENA with MBA HIGH. If the selected Port A bus size is
also 36 bits, then the usable width of the Mail1 Register em-
ploys data lines A
0
35
. If the selected Port A bus size is 18 bits,
then the usable width of the Mail1 Register employs data lines
A
0
17
. (In this case, A
18
35
are don
’
t care inputs.) If the select-
ed Port A bus size is 9 bits, then the usable width of the Mail1
Register employs data lines A
0
–
8
. (In this case, A
9
35
are
“
Don
’
t Care
”
inputs.)
A LOW-to-HIGH transition on CLKB writes B
0
35
data to the
Mail2 Register when a Port B write is selected by CSB, W/RB,
and ENB with MBB HIGH. If the selected Port B bus size is
also 36 bits, then the usable width of the Mail2 Register em-