CY7C43644
CY7C43664
CY7C43684
Document #: 38-06022 Rev. *B Page 7 of 39
transition of CLKA (for FIFO1) and CLKB (for FIFO2) will select
FWFT mode. This mode uses the Output Ready function
(ORA, ORB) to indicate whether or not there is valid data at
the da ta output s (A0–35 or B0–35). It also uses the Input Ready
function (IRA, IRB) to indicate whether or not the FIFO
memory has any free space for writing. In the FWFT mode, the
first word written to an empty FIFO goes directly to data
outputs, no read request necessary. Subsequent words must
be ac cessed by performing a formal read operation.
Following Master Reset, the level applied to the BE/FWFT
input to choose the desired timing mode must remain static
through out the FIFO opera tio n.
Programming the Almost Empty and Almost Full Flags
Four registers in the CY7C436X4 are used to hold the offset
values for th e Almo st Emp ty and Almost F ull fl ags. Th e Port B
Almost Empty flag (AEB) offset register is labeled X1 and the
Port A Almost Empty flag (AEA) offset register is labeled X2.
The Port A Almost Full flag (AFA) offset register is labeled Y1
and the Port B Almost Full flag (AFB) offset reg is ter is la bel ed
Y2. The index of each register name corresponds with preset
values during the reset of a FIFO, programmed in parallel
using the FIFO’s Port A data inputs, or programmed in serial
using the Serial Data (SD) input (see Table 1).
To l oad a FIFO’s Almost Emp ty flag and Al most Full fl ag offs et
registers with one of the three preset values listed in Table 1.
The Serial Program Mode (SPM) and at least one of the
flag-select inputs must be HIGH during the LOW-to-HIGH
transition of its Master Reset input (MRS1 and MRS2). For
example, to load the preset value of 64 into X1 and Y1, SPM,
FS0 and FS1 must be HIGH when FIFO1 reset (MRS1) returns
HIGH. Flag-offse t regi st ers ass oc ia ted w i th FIF O2 are l oad ed
with one of the preset values in the same way with Master
Reset (MRS2). When using one of the preset values for the
flag offsets, the FIFOs can be reset simultaneously or at
different times.
To program the X1, X2, Y1, and Y2 registers from Port A,
perform a Master Reset on both FIFOs simultaneously with
SPM HIGH and FS0 and FS1 LOW during the LOW-to-HIGH
trans ition o f MRS1 a nd MR S2. After this reset is com plete, the
first fo ur writes to FIFO1 do no t store da ta in RA M but load the
offs et registers in the order Y1, X1, Y2, X2. The Port A data
inputs used by the offset registers are (A0–9), (A0–11), or
(A0–13), for the CY7C436X4, respectively. The highest
numbered input is used as the most significant bit of the binary
number in each case. Valid programming values for the
registers range from 0 to 1023 for the CY7C43644; 0 to 4095
for the CY7C43664; 0 to 16383 fo r the CY7C43684. After all
the offset registers are programmed from Port A, the Port B
Full/In put Ready (FFB/IRB) is set HIG H and both F IFOs beg in
normal operation.
To pro gram the X1, X2, Y1, and Y2 registers seria lly, initiate a
Master Reset with SPM LOW, FS0/SD LOW, and FS1/SEN
HIGH during the LOW-to-HIGH transition of MRS1 and MRS2.
After this reset is complete, the X and Y register values are
loaded bit-wise through the FS0/SD input on each
LOW-to-HIGH transition of CLKA that the FS1/SEN input is
LOW. Forty, forty-eight, or fifty-six bit writes are needed to
comple te th e pr ogra mmin g for t he CY7 C436 X4, resp ect ively.
The four registers are written in the order Y1, X1, Y2, and,
finally, X2. The first-bit write stores the most significant bit of
the Y1 regis ter and the last-b it write stores the le ast significant
bit of the X2 reg ister. Each register valu e can be pro grammed
from 0 to 1023 for the CY7C43644; 0 to 4095 for the
CY7C43664; 0 to 16383 for the CY7C43684.
When the option to program the offset registers serially is
chosen, the Port A Full/Input Ready (FFA/IRA) flag remains
LOW until all regi ster bits are written. F FA/IRA is set HIGH by
the LOW -to-HIGH transition of CLKA after the last bit is loaded
to allow normal FIFO1 operation. The Port B Full/Input ready
(FFB/IRB) flag also remains LOW throughout the serial
programming process, until all register bits are written.
FFB/IRB is set HIGH by the LO W-to-HIGH transitio n of C LKB
after the last bit is loaded to allow normal FIFO2 operation.
SPM, FS0/SD, and FS1/SEN function the same way in both
CY Standa rd and FWFT mode s.
FIFO Write/Read Operation
The state of the Port A data (A0–35) lines is controlled by Port
A Chip Select (CSA) and Port A Write/Read Select (W/RA).
The A0–35 lines are in the high-impedance state when either
CSA or W/RA is HIGH. The A0–35 lines are active outputs
when both CSA and W/RA are LOW.
Data is loaded into FIFO1 from the A0–35 inputs on a
LOW-to -HIGH transition of CLKA when CSA is LOW, W/RA is
HIGH, ENA is HIGH, MBA is LOW , and FF A/IRA is HIGH. Data
is read from FIFO2 to the A0–35 outputs by a LOW-to-HIGH
tran si t io n of CL K A w h en C SA is LOW, W/RA is LOW, ENA is
HIGH, MBA is LOW, and EFA/ORA is HIGH (see Table 2).
FIFO reads and writes on Port A are independent of any
concurrent Port B operation.
The Port B c ont rol s ig nal s a r e i den tic al to those of Port A with
the exception that the Port B Write/Read select (W/RB) is the
inverse of the Port A Write/Read select (W/RA). The state of
the Port B data (B0–35) lines is controlled by the Port B Chip
Select (CSB) and Po rt B Write/ Read select (W/RB). The B0–35
lines are in the high-impedance state when either CSB is HIGH
or W/RB is LOW. The B0–35 lines are active outputs whe n CSB
is LOW and W/RB is HIGH.
Data is loaded into FIFO2 from the B0–35 inputs on a
LOW-to -HIGH transition of CLKB when CSB is LOW, W/RB is
LOW , ENB is HIGH, MBB is LOW , and FFB/IRB is HIGH. Data
is read from FIFO1 to the B0–35 outputs by a LOW-to-HIGH
transiti on of CL KB when CSB is LOW, W/RB is HIGH, ENB is
HIGH, MBB is LOW, and EFB/ORB is HIGH (see Table 3).
FIFO reads and writes on Port B are independent of any
concurrent Port A operation.
The set-u p and hold tim e con st r ain t s to the po rt clocks for the
port Ch ip Select s and Wr ite/Read se lects are only for enab ling
write and read operations and are not related to
high-im pe dance control of t he d at a outputs. If a p ort e nab le i s
LOW during a clock cycle, the port’s Chip Select and
Write/Read select may change states during the set-up and
hold time window of the cycle.
When operating the FIFO in FWFT Mode and the Output
Ready flag is LOW, the next word w ritten is a utoma ticall y se nt
to the FIFO’s output regist er by the LOW -to-HIGH trans ition of
the port clock that sets the Output Ready flag HIGH, data
residing in the FIFO’s memory array is clocked to the output
register only when a read is selected using the port’s Chip
Select, Write/Read select, Enable, and Mailbox select.
When op erating the FIFO in CY S ta ndard mod e, regardle ss of
whether the Empty Flag is LOW or HIGH, data residing in the
FIFO’s memory array is clocked to the output register only