11
IDT72V3612 3.3V, CMOS SyncBiFIFOTM
64 x 36 x 2
COMMERCIALTEMPERATURERANGE
X)ormorewordsinmemoryandisHIGHwhentheFIFOcontains[64-(X+1)]
or less words.
Two LOW-to-HIGH transitions of the Almost-Full flag synchronizing
clock are required after a FIFO read for the Almost-Full flag to reflect the new
level of fill. Therefore, the Almost-Full flag of a FIFO containing [64-(X+1)]
or less words remains LOW if two cycles of the synchronizing clock have not
elapsed since the read that reduced the number of words in memory to
[64-(X+1)]. An Almost-Full flag is set HIGH by the second LOW-to-HIGH
transition of the synchronizing clock after the FIFO read that reduces the
number of words in memory to [64-(X+1)]. A second LOW-to-HIGH
transition of an Almost-Full flag synchronizing clock begins the first synchro-
nization cycle if it occurs at time tSKEW2 or greater after the read that reduces
the number of words in memory to [64-(X+1)]. Otherwise, the subsequent
synchronizing clock cycle can be the first synchronization cycle (see Figure
13 and 14).
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. A LOW-to-HIGH transition on CLKA
writes A0-A35 data to the mail1 register when a port A write is selected by
CSA, W/RA, and ENA and MBA HIGH. A LOW-to-HIGH transition on CLKB
writes B0-B35 data to the mail2 register when a port B write is selected by
CSB, W/RB, and ENB and MBB is HIGH. Writing data to a mail register sets
the corresponding flag (MBF1 or MBF2) LOW. Attempted writes to a mail
register are ignored while the mail flag is LOW.
When a port's data outputs are active, the data on the bus comes from
the FIFO output register when the port Mailbox select input (MBA, MBB) is
LOW and from the mail register when the port mailbox select input is HIGH.
The Mail1 register Flag (MBF1) is set HIGH by a LOW-to-HIGH transition
on CLKB when a port B read is selected by CSB, W/RB, and ENB and MBB
is HIGH. The Mail2 register Flag (MBF2) is set HIGH by a LOW-to-HIGH
transition on CLKA when port A read is selected by CSA, W/RA, and ENA
and MBA is HIGH. The data in a mail register remains intact after it is read
and changes only when new data is written to the register. Mail register and
Mail Register Flag timing can be found in Figure 15 and Figure 16.
PARITY CHECKING
The port A inputs (A0-A35) and port B inputs (B0-B35) each have four
paritytreestochecktheparityofincoming(oroutgoing)data. Aparityfailure
on one or more bytes of the input bus is reported by a LOW level on the port
ParityErrorFlag(PEFA,PEFB).Oddorevenparitycheckingcanbeselected,
and the Parity Error Flags can be ignored if this feature is not desired.
Parity status is checked on each input bus according to the level of the
Odd/Evenparity(ODD/EVEN)selectinput. Aparityerrorononeormorebytes
of a port is reported by a LOW level on the corresponding port Parity Error
Flag(PEFA,PEFB)output. PortAbytesarearrangedasA0-A8,A9-A17,A18-
A26,andA27-A35withthemostsignificantbitofeachbyteusedastheparity
bit. PortBbytesarearrangedasB0-B8,B9-B17,B18-B26,andB27-B35,with
themostsignificantbitofeachbyteusedastheparitybit. Whenodd/evenparity
is selected, a port Parity Error Flag (PEFA, PEFB) is LOW if any byte on the
port has an odd/even number of LOW levels applied to the bits.
ThefourparitytreesusedtochecktheA0-A35inputsaresharedbythe
mail2registerwhenparitygenerationisselectedforportAreads(PGA=HIGH).
WhenaportAreadfromthemail2registerwithparitygenerationisselectedwith
W/RA LOW, CSA LOW, ENA HIGH, MBA HIGH, and PGA HIGH, the port A
Parity Error Flag (PEFA) is held HIGH regardless of the levels applied to the
A0-A35inputs. Likewise,theparitytreesusedtochecktheB0-B35inputsare
sharedbythemail1registerwhenparitygenerationisselectedforportBreads
(PGB=HIGH). WhenaportBreadfromthemail1registerwithparitygeneration
isselectedwithW/RBLOW,CSBLOW,ENBHIGH,MBBHIGH,andPGBHIGH,
theportBParityErrorFlag(PEFB)isheldHIGHregardlessofthelevelsapplied
to the B0-B35 inputs (see Figure 17 and Figure 18).
PARITY GENERATION
A HIGH level on the port A Parity Generate select (PGA) or port B
Parity Generate select (PGB) enables the IDT72V3612 to generate parity
bits for port reads from a FIFO or mailbox register. Port A bytes are arranged
as A0-A8, A9-A17, A18-26, and A27-A35, with the most significant bit of
each byte used as the parity bit. Port B bytes are arranged as B0-B8, B9-
B17, B18-B26, and B27-B35, with the most significant bit of each byte used
as the parity bit. A write to a FIFO or mail register stores the levels applied
to all thirty-six inputs regardless of the state of the Parity Generate select
(PGA, PGB) inputs. When data is read from a port with parity generation
selected, the lower eight bits of each byte are used to generate a parity bit
according to the level on the ODD/EVEN select. The generated parity bits
are substituted for the levels originally written to the most significant bits of
each byte as the word is read to the data outputs.
Parity bits for FIFO data are generated after the data is read from
SRAM and before the data is written to the output register. Therefore, the
port A Parity Generate select (PGA) and Odd/Even parity select (ODD/
EVEN) have setup and hold time constraints to the port A Clock (CLKA) and
the port B Parity Generate select (PGB) and ODD/EVEN have setup and
hold-time constraints to the port B Clock (CLKB). These timing constraints
only apply for a rising clock edge used to read a new word to the FIFO output
register.
The circuit used to generate parity for the mail1 data is shared by the
port B bus (B0-B35) to check parity and the circuit used to generate parity
for the mail2 data is shared by the port A bus (A0-A35) to check parity. The
shared parity trees of a port are used to generate parity bits for the data in
a mail register when the port Write/Read select (W/RA, W/RB) input is LOW,
the port Mail select (MBA, MBB) input is HIGH, Chip Select (CSA, CSB) is
LOW, Enable (ENA, ENB) is HIGH, and port Parity Generate select (PGA,
PGB) is HIGH. Generating parity for mail register data does not change the
contents of the register (see Figure 19 and Figure 20).