Free-Running CLKA and CLKB Can Be
Asynchronous or Coincident
D
Two Independent 512 × 36 Clocked FIFOs
Buffering Data in Opposite Directions
D
Mailbox-Bypass Register for Each FIFO
D
Programmable Almost-Full and
Almost-Empty Flags
D
Microprocessor Interface Control Logic
D
IRA, ORA, AEA, and AFA Flags
Synchronized by CLKA
description
The SN54ACT3632 is a high-speed, low-power CMOS clocked bidirectional FIFO memory. It supports clock
frequencies up to 50 MHz and has read access times as fast as 11 ns. Two independent 512 × 36 dual-port
SRAM FIFOs on the chip buffer data in opposite directions. Each FIFO has flags to indicate empty and full
conditions and two programmable flags (almost full and almost empty) to indicate when a selected number of
words is stored in memory. Communication between each port can bypass the FIFOs via two 36-bit mailbox
registers. Each mailbox register has a flag to signal when new mail has been stored. Two or more devices can
be used in parallel to create wider data paths.
D
Released as DESC SMD (Standard
Microcircuit Drawing) 5962-9562801QYA
D
IRB, ORB, AEB, and AFB Flags
Synchronized by CLKB
D
Low-Power 0.8-µm Advanced CMOS
Technology
D
Supports Clock Frequencies up to 50 MHz
D
Fast Access Times of 13 ns
D
Packaged in 132-Pin Ceramic Quad Flat
Package
The SN54ACT3632 is a clocked FIFO, which means each port employs a synchronous interface. All data
transfers through a port are gated to the low-to-high transition of a port clock by enable signals. The clocks for
each port are independent of one another and can be asynchronous or coincident. The enables for each port
are arranged to provide a simple bidirectional interface between microprocessors and/or buses with
synchronous control.
The input-ready (IRA, IRB) flag and almost-full (AFA
port clock that writes data to its array. The output-ready (ORA, ORB) flag and almost-empty (AEA
of a FIFO are two-stage synchronized to the port clock that reads data from its array. Offset values for the
almost-full and almost-empty flags of both FIFOs can be programmed from port A.
The SN54ACT3632 is characterized for operation over the full military temperature range of –55°C to 125°C.
For more information on this device family, see the following application reports:
D
FIFO Mailbox-Bypass Registers: Using Bypass Registers to Initialize DMA Control
(literature number SCAA007)
D
Interfacing TI Clocked FIFOs With TI Floating-Point Digital Signal Processors
D
Metastability Performance of Clocked FIFOs
, AFB) flag of a FIFO are two-stage synchronized to the
, AEB) flag
(literature number SCAA005)
(literature number SCZA004)
Please be aware that an important notice concerning availability, standard warranty, and use in critical applications of
Texas Instruments semiconductor products and disclaimers thereto appears at the end of this data sheet.
PRODUCTION DATA information is current as of publication date.
Products conform to specifications per the terms of Texas Instruments
standard warranty. Production processing does not necessarily include
testing of all parameters.
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
Copyright 1998, Texas Instruments Incorporated
On products compliant to MIL-PRF-38535, all parameters are tested
unless otherwise noted. On all other products, production
processing does not necessarily include testing of all parameters.
A0–A35I/OPort-A data. The 36-bit bidirectional data port for side A.
AEA
AEB
AFA
AFB
B0–B35I/OPort-B data. The 36-bit bidirectional data port for side B.
CLKAI
CLKBI
CSA
CSB
ENAIPort-A enable. ENA must be high to enable a low-to-high transition of CLKA to read or write data on port A.
ENBIPort-B enable. ENB must be high to enable a low-to-high transition of CLKB to read or write data on port B.
FS1, FS0I
IRA
IRB
MBAI
MBBI
MBF1
MBF2
ORA
I/ODESCRIPTION
O
(port A)
(port B)
(port A)
(port B)
(port A)
(port B)
(port A)
Port-A almost-empty flag. Programmable flag synchronized to CLKA. AEA is low when the number of words in FIFO2
is less than or equal to the value in the almost-empty A offset register , X2.
O
Port-B almost-empty flag. Programmable flag synchronized to CLKB. AEB is low when the number of words in FIFO1
is less than or equal to the value in the almost-empty B offset register , X1.
O
Port-A almost-full flag. Programmable flag synchronized to CLKA. AFA is low when the number of empty locations
in FIFO1 is less than or equal to the value in the almost-full A offset register , Y1.
O
Port-B almost-full flag. Programmable flag synchronized to CLKB. AFB is low when the number of empty locations
in FIFO2 is less than or equal to the value in the almost-full B offset register , Y2.
Port-A clock. CLKA is a continuous clock that synchronizes all data transfers through port A and can be
asynchronous or coincident to CLKB. IRA, ORA, AFA
CLKA.
Port-B clock. CLKB is a continuous clock that synchronizes all data transfers through port B and can be
asynchronous or coincident to CLKA. IRB, ORB, AFB
CLKB.
Port-A chip select. CSA must be low to enable a low-to-high transition of CLKA to read or write data on port A. The
I
A0–A35 outputs are in the high-impedance state when CSA
Port-B chip select. CSB must be low to enable a low-to-high transition of CLKB to read or write data on port B. The
I
B0–B35 outputs are in the high-impedance state when CSB
Flag-offset selects. The low-to-high transition of a FIFO reset input latches the values of FS0 and FS1. If either FS0
or FS1 is high when a reset input goes high, one of three preset values is selected as the offset for the FIFO almost-full
and almost-empty flags. If both FIFOs are reset simultaneously and both FS0 and FS1 are low when RST1
go high, the first four writes to FIFO1 program the almost-full and almost-empty offsets for both FIFOs.
Input-ready flag. IRA is synchronized to the low-to-high transition of CLKA. When IRA is low, FIFO1 is full and writes
O
to its array are disabled. IRA is set low when FIFO1 is reset and is set high on the second low-to-high transition of
CLKA after reset.
Input-ready flag. IRB is synchronized to the low-to-high transition of CLKB. When IRB is low, FIFO2 is full and writes
O
to its array are disabled. IRB is set low when FIFO2 is reset and is set high on the second low-to-high transition of
CLKB after reset.
Port-A mailbox select. A high level on MBA chooses a mailbox register for a port-A read or write operation. When
the A0–A35 outputs are active, a high level on MBA selects data from the mail2 register for output and a low level
selects FIFO2 output-register data for output.
Port-B mailbox select. A high level on MBB chooses a mailbox register for a port-B read or write operation. When
the B0–B35 outputs are active, a high level on MBB selects data from the mail1 register for output and a low level
selects FIFO1 output-register data for output.
Mail1 register flag. MBF1 is set low by the low-to-high transition of CLKA that writes data to the mail1 register. W rites
to the mail1 register are inhibited while MBF1
O
port-B read is selected and MBB is high. MBF1
Mail2 register flag. MBF2 is set low by the low-to-high transition of CLKB that writes data to the mail2 register. W rites
to the mail2 register are inhibited while MBF2
O
port-A read is selected and MBA is high. MBF2
Output-ready flag. ORA is synchronized to the low-to-high transition of CLKA. When ORA is low, FIFO2 is empty
O
and reads from its memory are disabled. Ready data is present on the output register of FIFO2 when ORA is high.
ORA is forced low when FIFO2 is reset and goes high on the third low-to-high transition of CLKA after a word is loaded
to empty memory.
, and AEA are all synchronized to the low-to-high transition of
, and AEB are synchronized to the low-to-high transition of
is low. MBF1 is set high by a low-to-high transition of CLKB when a
is set high when FIFO1 is reset.
is low. MBF2 is set high by a low-to-high transition of CLKA when a
also is set high when FIFO2 is reset.
is high.
is high.
and RST2
4
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
SN54ACT3632
512 × 36 × 2
CLOCKED BIDIRECTIONAL FIRST-IN, FIRST-OUT MEMORY
SGBS310A – SEPTEMBER 1996 – REVISED APRIL 1998
Terminal Functions (Continued)
TERMINAL
NAME
ORB
RST1
RST2
W/RA
W/RB
I/ODESCRIPTION
Output-ready flag. ORB is synchronized to the low-to-high transition of CLKB. When ORB is low, FIFO1 is empty
O
(port B)
and reads from its memory are disabled. Ready data is present on the output register of FIFO1 when ORB is high.
ORB is forced low when FIFO1 is reset and goes high on the third low-to-high transition of CLKB after a word is loaded
to empty memory.
FIFO1 reset. To reset FIFO1, four low-to-high transitions of CLKA and four low-to-high transitions of CLKB must
occur while RST1
I
selection. FIFO1 must be reset upon power up before data is written to its RAM.
FIFO2 reset. To reset FIFO2, four low-to-high transitions of CLKA and four low-to-high transitions of CLKB must
occur while RST2
I
selection. FIFO2 must be reset upon power up before data is written to its RAM.
Port-A write/read select. A high on W/RA selects a write operation and a low selects a read operation on port A for
I
a low-to-high transition of CLKA. The A0–A35 outputs are in the high-impedance state when W/R
Port-B write/read select. A low on W/RB selects a write operation and a high selects a read operation on port B for
I
a low-to-high transition of CLKB. The B0–B35 outputs are in the high-impedance state when W
is low. The low-to-high transition of RST1 latches the status of FS0 and FS1 for AF A and AEB offset
is low. The low-to-high transition of RST2 latches the status of FS0 and FS1 for AFB and AEA offset
A is high.
/RB is low.
detailed description
reset
The FIFO memories of the SN54ACT3632 are reset separately by taking their reset (RST1
for at least four port-A clock (CLKA) and four port-B clock (CLKB) low-to-high transitions. The reset inputs can
switch asynchronously to the clocks. A FIFO reset initializes the internal read and write pointers and forces the
input-ready flag (IRA, IRB) low, the output-ready flag (ORA, ORB) low, the almost-empty flag (AEA
and the almost-full flag (AFA
, AFB) high. Resetting a FIFO also forces the mailbox flag (MBF1, MBF2) of the
parallel mailbox register high. After a FIFO is reset, its input-ready flag is set high after two clock cycles to begin
normal operation. A FIFO must be reset after power up before data is written to its memory.
, RST2) inputs low
, AEB) low,
A low-to-high transition on a FIFO reset (RST1
, RST2) input latches the value of the flag-select (FS0, FS1)
inputs for choosing the almost-full and almost-empty offset programming method.
almost-empty flag and almost-full flag offset programming
Four registers in the SN54ACT3632 are used to hold the offset values for the almost-empty and almost-full flags.
The port-B almost-empty flag (AEB
register is labeled X2. The port-A almost-full flag (AFA
flag (AFB
) offset register is labeled Y2. The index of each register name corresponds to its FIFO number . The
) offset register is labeled X1 and the port-A almost-empty flag (AEA) offset
) offset register is labeled Y1 and the port-B almost-full
offset registers can be loaded with preset values during the reset of a FIFO or they can be programmed from
port A (see Table 1).
Table 1. Flag Programming
FS1FS0RST1 RST2X1 AND Y1 REGISTERS†X2 AND Y2 REGISTERS
HH↑X64X
HHX↑X64
HL↑X16X
HLX↑X16
LH↑X8X
LHX↑X8
LL↑↑Programmed from port AProgrammed from port A
†
X1 register holds the offset for AEB; Y1 register holds the offset for AFA.
almost-empty flag and almost-full flag offset programming (continued)
To load the almost-empty flag and almost-full flag offset registers of a FIFO with one of the three preset values
listed in Table 1, at least one of the flag-select inputs must be high during the low-to-high transition of its reset
input. For example, to load the preset value of 64 into X1 and Y1, FS0 and FS1 must be high when FIFO1 reset
(RST1
) returns high. Flag-offset registers associated with FIFO2 are loaded with one of the preset values in the
same way with FIFO2 reset (RST2
be reset simultaneously or at different times.
To program the X1, X2, Y1, and Y2 registers from port A, both FIFOs should be reset simultaneously with FS0
and FS1 low during the low-to-high transition of the reset inputs. After this reset is complete, the first four writes
to FIFO1 do not store data in RAM but load the offset registers in the order Y1, X1, Y2, X2. Each offset register
uses port-A (A8–A0) inputs, with A8 as the most-significant bit. Each register value can be programmed from
1 to 508. After all the offset registers are programmed from port A, the port-B input-ready flag (IRB) is set high
and both FIFOs begin normal operation.
FIFO write/read operation
). When using one of the preset values for the flag offsets, the FIFOs can
The state of the port-A data (A0–A35) outputs is controlled by the port-A chip select (CSA
write/read select (W/R
high. The A0–A35 outputs are active when both CSA
A). The A0–A35 outputs are in the high-impedance state when either CSA or W/RA is
and W/RA are low.
Data is loaded into FIFO1 from the A0–A35 inputs on a low-to-high transition of CLKA when CSA
) and the port-A
is low, W/RA
is high, ENA is high, MBA is low, and IRA is high. Data is read from FIFO2 to the A0–A35 outputs by a low-to-high
transition of CLKA when CSA
is low, W/RA is low , ENA is high, MBA is low , and ORA is high (see T able 2). FIFO
reads and writes on port A are independent of any concurrent port-B operation.
The port-B control signals are identical 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–B35) outputs is
controlled by the port-B chip select (CSB
the high-impedance state when either CSB
) and the port-B write/read select (W/RB). The B0–B35 outputs are in
is high or W/RB is low. The B0–B35 outputs are active when CSB
is low and W/RB is high.
Data is loaded into FIFO2 from the B0–B35 inputs on a low-to-high transition of CLKB when CSB
is low, W/RB
is low, ENB is high, MBB is low , and IRB is high. Data is read from FIFO1 to the B0–B35 outputs by a low-to-high
transition of CLKB when CSB
is low, W/RB is high, ENB is high, MBB is low , and ORB is high (see T able 3). FIFO
reads and writes on port B are independent of any concurrent port-A operation.
The setup- and hold-time constraints to the port clocks for the port-chip selects and write/read selects are only
for enabling write and read operations and are not related to high-impedance control of the data outputs. If a
port enable is low during a clock cycle, the port-chip select and write/read select may change states during the
setup- and hold-time window of the cycle.
When a FIFO output-ready flag is low, the next data word is sent to the FIFO output register automatically by
the low-to-high transition of the port clock that sets the output-ready flag high. When the output-ready flag is
high, an available data word is clocked to the FIFO output register only when a FIFO read is selected by the
port’s chip select, write/read select, enable, and mailbox select.
synchronized FIFO flags
Each FIFO is synchronized to its port clock through at least two flip-flop stages. This is done to improve
flag-signal reliability by reducing the probability of metastable events when CLKA and CLKB operate
asynchronously to one another. ORA, AEA
, IRA, and AFA are synchronized to CLKA. ORB, AEB, IRB, and AFB
are synchronized to CLKB. Tables 4 and 5 show the relationship of each port flag to FIFO1 and FIFO2.
Table 4. FIFO1 Flag Operation
NUMBER OF WORDS
0LLHH
1 to X1HLHH
(X1 + 1) to [512 – (Y1 + 1)]HHHH
(512 – Y1) to 511HHLH
512HHLL
†
X1 is the almost-empty offset for FIFO1 used by AEB. Y1 is the almost-full
offset for FIFO1 used by AFA
of FIFO1 or programmed from port A.
‡
When a word loaded to an empty FIFO is shifted to the output register , its
previous FIFO memory location is free.
X2 is the almost-empty offset for FIFO2 used by AEA
offset for FIFO2 used by AFB
of FIFO2 or programmed from port A.
‡
When a word loaded to an empty FIFO is shifted to the output register , its
previous FIFO memory location is free.
SYNCHRONIZED
TO CLKA
ORAAEAAFBIRB
. Both X2 and Y2 are selected during a reset
SYNCHRONIZED
TO CLKB
. Y2 is the almost-full
output-ready flags (ORA, ORB)
The output-ready flag of a FIFO is synchronized to the port clock that reads data from its array. When the
output-ready flag is high, new data is present in the FIFO output register. When the output-ready flag is low , the
previous data word is present in the FIFO output register and attempted FIFO reads are ignored.
A FIFO read pointer is incremented each time a new word is clocked to its output register. The state machine
that controls an output-ready flag monitors a write-pointer and read-pointer comparator that indicates when the
FIFO SRAM status is empty , empty+1, or empty+2. From the time a word is written to a FIFO, it can be shifted
to the FIFO output register in a minimum of three cycles of the output-ready flag synchronizing clock; therefore,
an output-ready flag is low if a word in memory is the next data to be sent to the FIFO output register and three
cycles of the port clock that reads data from the FIFO have not elapsed since the time the word was written.
The output-ready flag of the FIFO remains low until the third low-to-high transition of the synchronizing clock
occurs, simultaneously forcing the output-ready flag high and shifting the word to the FIFO output register.
A low-to-high transition on an output-ready flag synchronizing clock begins the first synchronization cycle of a
write if the clock transition occurs at time t
, or greater, after the write. Otherwise, the subsequent clock cycle
sk1
can be the first synchronization cycle (see Figures 7 and 8).
input-ready flags (IRA, IRB)
The input-ready flag of a FIFO is synchronized to the port clock that writes data to its array . When the input-ready
flag is high, a memory location is free in the SRAM to receive new data. No memory locations are free when
the input-ready flag is low and attempted writes to the FIFO are ignored.
Each time a word is written to a FIFO, its write pointer is incremented. The state machine that controls an
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 in a minimum of two cycles of the input-ready flag synchronizing clock; therefore, an input-ready
flag is low if less than two cycles of the input-ready flag synchronizing clock have elapsed since the next memory
write location has been read. The second low-to-high transition on the input-ready flag synchronizing clock after
the read sets the input-ready flag high.
A low-to-high transition on an input-ready flag synchronizing clock begins the first synchronization cycle of a
read if the clock transition occurs at time t
, or greater, after the read. Otherwise, the subsequent clock cycle
sk1
can be the first synchronization cycle (see Figures 9 and 10).
8
POST OFFICE BOX 655303 • DALLAS, TEXAS 75265
Loading...
+ 17 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.