IDT72801 IDT72811 IDT72821 IDT72831 IDT72841 DUAL CMOS SyncFIFO Integrated Device Technology, Inc. FEATURES: • The 72801 is equivalent to two 72201 256 x 9 FIFOs • The 72811 is equivalent to two 72211 512 x 9 FIFOs • The 72821 is equivalent to two 72221 1024 x 9 FIFOs • The 72831 is equivalent to two 72231 2048 x 9 FIFOs • The 72841 is equivalent to two 72241 4096 x 9 FIFOs • Offers optimal combination of large capacity, high speed, design flexibility and small footprint • Ideal for prioritization, bidirectional, and width expansion applications • 15 ns read/write cycle time FOR THE 72801/72811 • 20 ns read/write cycle time FOR THE 72821/72831/72841 • Separate control lines and data lines for each FIFO • Separate empty, full, programmable almost-empty and almost-full flags for each FIFO • Enable puts output data lines in high-impedance state • Space-saving 64-pin Thin Quad Flat Pack (TQFP) • Industrial temperature range (-40OC to +85OC) is available, tested to military electrical specifications DESCRIPTION: 72801/72811/72821/72831/72841 are dual synchronous 64 63 62 61 60 59 58 57 56 55 54 53 52 51 50 49 QA0 GND QB8 QB7 QB6 QB5 QB4 QB3 QB2 QB1 FFA EFA OEA RENA2 RCLKA RENA1 PIN CONFIGURATION (clocked) FIFOs. The device is functionally equivalent to two 72201/72211/72221/72231/72241 FIFOs in a single package with all associated control, data, and flag lines assigned to separate pins. Each of the two FIFOs (designated FIFO A and FIFO B) contained in the 72801/72811/72821/72831/72841 has a 9bit input data port (DA0 - DA8), DB0 - DB8) and a 9-bit output data port (QA0 - QA8, QB0 - QB8). Each input port is controlled by a free-running clock(WCLKA, WCLKB), and two write enable pins (WENA1, WENA2, WENB1, WENB2). Data is written into each of the two arrays on every rising clock edge of the write clock (WCLKA WCLKB) when the appropriate write enable pins are asserted. The output port of each FIFO bank is controlled by its associated clock pin (RCLKA, RCLKB) and two read enable pins (RENA1, RENA2, RENB1, RENB2). The read clock can be tied to the write clock for single clock operation or the two clocks can run asynchronous of one another for dual clock operation. An output enable pin (OEA, OEB) is provided on the read port of each FIFO for three-state output control . Each of the two FIFOs has two fixed flags, empty (EFA, EFB) and full (FFA, FFB). Two programmable flags, almost-empty (PAEA, PAEB) and almost-full (PAFA, PAFB), are provided for WENA2/LDA WCLKA WENA1 RSA PN64-1 TQFP, TOP VIEW 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 QB0 FFB EFB OEB RENB2 RCLKB RENB1 GND VCC PAEB PAFB DB0 DB1 DB2 DB3 DB4 DB8 DB7 DB6 DB5 DA5 DA4 DA3 DA2 DA1 DA0 PAFA PAEA WENB2/LDB WCLKB WENB1 RSB DA8 DA7 DA6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 QA1 QA2 QA3 QA4 QA5 QA6 QA7 QA8 VCC 3034 drw 01 SyncFIFO is a trademark and the IDT logo is a registered trademark of Integrated Device Technology, Inc. COMMERCIAL TEMPERATURE RANGE 1996 Integrated Device Technology, Inc NOVEMBER 1996 For latest information contact IDT's web site at www.idt.com or fax-on-demand at 408-492-8391. 5.15 DSC-3034/1 1 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE each FIFO bank to improve memory utilization. If not programmed, the programmable flags default to empty+7 for PAEA and PAEB, and full-7 for PAFA and PAFB. The 72801/72811/72821/72831/72841 architecture lends itself to many flexible configurations such as: • 2-level priority data buffering • Bidirectional operation • Width expansion • Depth expansion This FIFO is fabricated using IDTs high-performance submicron CMOS technology. FUNCTIONAL BLOCK DIAGRAM WCLKB WCLKA DA0 - DA8 DB0 - DB8 WENA2 WENB2 INPUT REGISTER WRITE CONTROL LOGIC WRITE POINTER RAM ARRAY 256 x 9, 512 x 9, 1024 x 9, 2048 x 9, 4096 x 9 INPUT REGISTER OFFSET REGISTER FLAG LOGIC WRITE CONTROL LOGIC READ POINTER WRITE POINTER OFFSET REGISTER FLAG LOGIC RAM ARRAY 256 x 9, 512 x 9, 1024 x 9, 2048 x 9, 4096 x 9 READ CONTROL LOGIC READ POINTER READ CONTROL LOGIC OUTPUT REGISTER OUTPUT REGISTER RESET LOGIC RESET LOGIC QA0 - QA8 RCLKB RCLKA QB0 - QB8 3034 drw 01A 5.15 2 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE PIN DESCRIPTIONS The 72801/72811/72821/72831/72841s two FIFOs, referred to as FIFO A and FIFO B, are identical in every respect. The following description defines the input and output signals for Symbol Name I/O Description DA0-DA8 A Data Inputs DB0-DB8 B Data Inputs I RSA, RSB Reset I Write Clock I WENA1 WENB1 Write Enable 1 I WENA2/LDA WENB2/LDB Write Enable 2/ Load I QA0-QA8 A Data Outputs O QB0-QB8 B Data Outputs O WCLKA WCLKB RCLKA RCLKB I Read Clock I RENA1 RENB1 Read Enable 1 I RENA2 RENB2 Read Enable 2 I Output Enable I Empty Flag O Programmable Almost-Empty Flag O OEA OEB EFA EFB PAEA PAEB PAFA PAFB FFA FFB Programmable O Almost-Full Flag Full Flag FIFO A. The corresponding signal names for FIFO B are provided in parentheses. O 9-bit data inputs to RAM array A. 9-bit data inputs to RAM array B. When RSA (RSB) is set LOW, the associated internal read and write pointers of array A (B) are set to the first location; FFA (FFB) and PAFA (PAFB) go HIGH, and PAEA (PAEB) and EFA (EFB) go LOW. After power-up, a reset of both FIFOs A and B is required before an initial WRITE. Data is written into the FIFO A (B) on a LOW-to-HIGH transition of WCLKA (WCLKB) when the write enable(s) are asserted. If FIFO A (B) is configured to have programmable flags, WENA1 (WENB1) is the only write enable pin that can be used. When WENA1 (WENB1) is LOW, data A (B) is written into the FIFO on every LOW-to-HIGH transition WCLKA (WCLKB). If the FIFO is configured to have two write enables, WENA1 (WENB1) must be LOW and WENA2 (WENB2) must be HIGH to write data into the FIFO. Data will not be written into the FIFO if FFA (FFB) is LOW. FIFO A (B) is configured at reset to have either two write enables or programmable flags. If LDA (LDB) is HIGH at reset, this pin operates as a second write enable. If WENA2/LDA (WENB2/LDB) is LOW at reset this pin operates as a control to load and read the program mable flag offsets for its respective array. If the FIFO is configured to have two write enables, WENA1 (WENB1) must be LOW and WENA2 (WENB2) must be HIGH to write data into FIFO A (B). Data will not be written into FIFO A (B) if FFA (FFB) is LOW. If the FIFO is configured to have programmable flags, LDA(LDB) is held LOW to write or read the programmable flag offsets. 9-bit data outputs from RAM array A. 9-bit data outputs from RAM array B. Data is read from FIFO A (B) on a LOW-to-HIGH transition of RCLKA (RCLKB) when RENA1 (RENB1) and RENA2 (RENB2) are asserted. When RENA1 (RENB1) and RENA2 (RENB2) are LOW, data is read from FIFO A (B) on every LOW-to-HIGH transition of RCLKA (RCLKB). Data will not be read from Array A (B) if EFA (EFB) is LOW. When RENA1 (RENB1) and RENA2 (RENB2) are LOW, data is read from the FIFO A (B) on every LOW-to-HIGH transition of RCLKA (RCLKB). Data will not be read from array A (B) if the EFA (EFB) is LOW. When OEA (OEB) is LOW, outputs DA0-DA8 (DB0-DB8) are active. If OEA (OEB) is HIGH, the outputs DA0-DA8 (DB0-DB8) will be in a high-impedance state. When EFA (EFB) is LOW, FIFO A (B) is empty and further data reads from the output are inhibited. When EFA (EFB) is HIGH, FIFO A (B) is not empty. EFA (EFB) is synchronized to RCLKA (RCLKB). When PAEA (PAEB) is LOW, FIFO A (B) is almost empty based on the offset programmed into the appropriate offset register. The default offset at reset is Empty+7. PAEA (PAEB) is synchro nized to RCLKA (RCLKB). When PAFA (PAFB) is LOW, FIFO A (B) is almost full based on the offset programmed into the appropriate offset register. The default offset at reset is Full-7. PAFA (PAFB) is synchronized to WCLKA (WCLKB). When FFA (FFB) is LOW, FIFO A (B) is full and further data writes into the input are inhibited. When FFA (FFB) is HIGH, FIFO A (B) is not full. FFA (FFB) is synchronized to WCLKA (WCLKB). VCC Power +5V power supply pin. GND Ground 0V ground pin. 3034 tbl 01 5.15 3 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE ABSOLUTE MAXIMUM RATINGS(1) Symbol Rating Terminal Voltage with VTERM Respect to GND Operating Temperature TA Temperature Under Bias TBIAS TSTG IOUT Storage Temperature DC Output Current RECOMMENDED OPERATING CONDITIONS Commercial –0.5 to +7.0 Unit V 0 to +70 –55 to +125 °C °C –55 to +125 50 °C mA Symbol VCC GND VIH VIL Parameter Supply Voltage Supply Voltage Input High Voltage Input Low Voltage Min. 4.5 0 2.0 — Typ. 5.0 0 — — Max. 5.5 0 — 0.8 Unit V V V V 3034 tbl 03 3034 tbl 02 NOTE: 1. Stresses greater than those listed under ABSOLUTE MAXIMUM RATINGS may cause permanent damage to the device. This is a stress rating only and functional operation of the device at these or any other conditions above those indicated in the operational sections of the specification is not implied. Exposure to absolute maximum rating conditions for extended periods may affect reliability. CAPACITANCE (TA = +25°C, f = 1.0MHz) Symbol Parameter (2) CIN Input Capacitance (1,2) Output Capacitance COUT Conditions Max. Unit VIN = 0V 10 pF VOUT = 0V 10 pF 3034 tbl 04 NOTE: 1. With output deselected (OEA, OEB = HIGH). DC ELECTRICAL CHARACTERISTICS (Commercial: VCC = 5V ± 10%, TA = 0°C to +70°C) IDT72801 IDT72811 Symbol Parameter Min. Commercial tCLK = 15, 20, 25, 35ns Typ. Max. Unit Input Leakage Current (Any Input) –1 — –1 µA ILO(2) Output Leakage Current –10 — 10 µA VOH Output Logic “1” Voltage, IOH = –2 mA 2.4 — — V VOL Output Logic “0” Voltage, IOL = 8 mA — — 0.4 V ICC(3) Active Power Supply Current — — 270 ILI (1) mA 3034 tbl 05 IDT72821 IDT72831 IDT72841 Symbol Parameter Min. Commercial tCLK = 20, 25, 35 ns Typ. Max. Unit Input Leakage Current (Any Input) –1 — –1 µA ILO(2) Output Leakage Current –10 — 10 µA VOH Output Logic “1” Voltage, IOH = –2 mA 2.4 — — V VOL Output Logic “0” Voltage, IOL = 8 mA — — 0.4 V ICC(3) Active Power Supply Current — — 300 ILI (1) mA 3034 tbl 06 NOTES: 1. Measurements with 0.4 ≤ VIN ≤ VCC. 2. OEA, OEB ≥ VIH, 0.4 ≤ VOUT ≤ VCC. 3. Measurements are made with outputs open. Tested at fCLK = 20MHz. Icc limits applicable when using both banks of FIFOs simultaneously. 5.15 4 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE AC ELECTRICAL CHARACTERISTICS (Commercial: VCC = 5V ± 10%, TA = 0°C to +70°C) Commercial IDT72801L12 IDT72801L15 IDT72801L20 IDT72801L25 IDT72801L35 IDT72811L12 IDT72811L15 IDT72811L20 IDT72811L25 IDT72811L35 IDT72821L12 IDT72821L15 IDT72821L20 IDT72821L25 IDT72821L35 IDT72831L12 IDT72831L15 IDT72831L20 IDT72831L25 IDT72831L35 IDT72841L12 IDT72841L15 IDT72841L20 IDT72841L25 IDT72841L35 Symbol Parameter Min. Max. Min. Max. Min. Max. Min. Max. Min. Max. Unit fS Clock Cycle Frequency — 83.3 — 66.7 — 50 — 40 — tA Data Access Time 2 8 2 10 2 12 3 15 3 20 ns tCLK Clock Cycle Time 12 — 15 — 20 — 25 — 35 — ns tCLKH Clock High Time 5 — 6 — 8 — 10 — 14 — ns tCLKL Clock Low Time 5 — 6 — 8 — 10 — 14 — ns tDS Data Set-up Time 3 — 4 — 5 — 6 — 8 — ns tDH Data Hold Time 0 — 1 — 1 — 1 — 2 — ns tENS Enable Set-up Time 3 — 4 — 5 — 6 — 8 — ns tENH Enable Hold Time 0 — 1 — 1 — 1 — 2 — ns tRS Reset Pulse Width(1) 12 — 15 — 20 — 25 — 35 — ns tRSS Reset Set-up Time 12 — 15 — 20 — 25 — 35 — ns tRSR Reset Recovery Time 12 — 15 — 20 — 25 — 35 — ns tRSF Reset to Flag Time and Output Time — 12 — 15 — 20 — 25 — 35 ns tOLZ Output Enable to Output in Low-Z(2) 0 — 0 — 0 — 0 — 0 — ns tOE Output Enable to Output Valid 3 7 3 8 3 10 3 13 3 15 ns tOHZ Output Enable to Output in High-Z(2) 3 7 3 8 3 10 3 13 3 15 ns tWFF Write Clock to Full Flag — 8 — 10 — 12 — 15 — 20 ns tREF Read Clock to Empty Flag — 8 — 10 — 12 — 15 — 20 ns tPAF Write Clock to Programmable — 8 — 10 — 12 — 15 — 20 ns Almost-Empty Flag — 8 — 10 — 12 — 15 — 20 ns tSKEW1 Skew Time Between Read Clock and Write Clock for Empty Flag and Full Flag 5 — 6 — 8 — 10 — 12 — ns tSKEW2 Skew Time Between Read Clock and Write Clock for Programmable Almost-Empty Flag and Programmable Almost-Full Flag 22 — 28 — 35 — 40 — 42 — ns Almost-Full Flag tPAE 28.6 MHz Read Clock to Programmable NOTES: 1. Pulse widths less than minimum values are not allowed. 2. Values guaranteed by design, not currently tested. 3034 tbl 07 5V 1.1K AC TEST CONDITIONS In Pulse Levels Input Rise/Fall Times D.U.T. GND to 3.0V 30pF* 3ns Input Timing Reference Levels 1.5V Output Reference Levels 1.5V Output Load 680Ω 3034 drw 03 or equivalent circuit See Figure 1 3034 tbl 08 5.15 Figure 1. Output Load *Includes jig and scope capacitances. 5 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE SIGNAL DESCRIPTIONS FIFO A and FIFO B are identical in every respect. The following description explains the interaction of input and output signals for FIFO A. The corresponding signal names for FIFO B are provided in parentheses. INPUTS: Data In (DA0 – DA8, DB0 – DB8) — DA0 - DA8 are the nine data inputs for memory array A. DB0 - DB8 are the nine data inputs for memory array B. CONTROLS: Reset (RSA, RSB) — Reset of FIFO A (B) is accomplished whenever RSA (RSB) input is taken to a LOW state. During reset, the internal read and write pointers associated with the FIFO are set to the first location. A reset is required after power-up before a write operation can take place. The Full Flag FFA (FFB) and Programmable Almost-Full Flag PAFA (PAFB) will be reset to HIGH after tRSF. The Empty Flag EFA (EFB) and Programmable Almost-Empty Flag PAEA (PAEB) will be reset to LOW after tRSF. During reset, the output register is initialized to all zeros and the offset registers are initialized to their default values. Write Clock (WCLKA, WCLKB) — A write cycle to Array A (B) is initiated on the LOW-to-HIGH transition of WCLKA (WCLKB). Data set-up and hold times must be met with respect to the LOW-to-HIGH transition of WCLKA (WCLKB). The Full Flag FFA (FFB) and Programmable Almost-Full Flag PAFA (PAFB) are synchronized with respect to the LOW-toHIGH transition of the write clock WCLKA (WCLKB). The write and read clocks can be asynchronous or coincident. Write Enable 1 (WENA1, WENB1) — If FIFO A (B) is configured for programmable flags, WENA1 (WENB1) is the only enable control pin. In this configuration, when WENA1 (WENB1) is LOW, data can be loaded into the input register of RAM Array A (B) on the LOW-to-HIGH transition of every write clock WCLKA (WCLKB). Data is stored in Array A (B) sequentially and independently of any on-going read operation. In this configuration, when WENA1 (WENB1) is HIGH, the input register holds the previous data and no new data is allowed to be loaded into the register. If the FIFO is configured to have two write enables, which allows for depth expansion. See Write Enable 2 paragraph below for operation in this configuration. To prevent data overflow, FFA (FFB) will go LOW, inhibiting further write operations. Upon the completion of a valid read cycle, the FFA (FFB) will go HIGH after tWFF, allowing a valid write to begin. WENA1 (WENB1) is ignored when FIFO A (B) is full. Read Clock (RCLKA, RCLKB) — Data can be read from Array A (B) on the the LOW-to-HIGH transition of RCLKA (RCLKB). The Empty Flag EFA (EFB) and Programmable Almost-Empty Flag PAEA (PAEB) are synchronized with respect to the LOW-to-HIGH transition of RCLKA (RCLKB). The write and read clock can be asynchronous or coincident. Read Enables (RENA1, RENA2, RENB1, RENB2) — When both Read Enables RENA1, RENA2 (RENB1, RENB2) are LOW, data is read from Array A (B) to the output register on the LOW-to-HIGH transition of the read clock RCLKA (RCLKB). When either of the two Read Enable RENA1, RENA2 (RENB1, RENB2) associated with FIFO A (B) is HIGH, the output register holds the previous data and no new data is allowed to be loaded into the register. When all the data has been read from FIFO A (B), the Empty Flag EFA (EFB) will go LOW, inhibiting further read operations. Once a valid write operation has been accomplished, EFA (EFB) will go HIGH after tREF and a valid read can begin. The Read Enables RENA1, RENA2 (RENB1, RENB2) are ignored when FIFO A (B) is empty. Output Enable (OEA, OEB) — When Output Enable OEA (OEB) is enabled (LOW), the parallel output buffers of FIFO A (B) receive data from their respective output register. When Output Enable OEA (OEB) is disabled (HIGH), the QA (QB) output data bus is in a high-impedance state. Write Enable 2/Load (WENA2/LDA, WENB2/LDB) — This is a dual-purpose pin. FIFO A (B) is configured at Reset to have programmable flags or to have two write enables, which allows depth expansion. If WENA2/LDA (WENB2/LDB) is set HIGH at Reset RSA = LOW (RSB = LOW), this pin operates as a second write enable pin. If FIFO A (B) is configured to have two write enables, when Write Enable 1 WENA1 (WENB1) is LOW and WENA2/LDA (WENB2/LDB) is HIGH, data can be loaded into the input register and RAM array on the LOW-to-HIGH transition of every write clock WCLKA (WCLKB). Data is stored in the array sequentially and independently of any on-going read operation. In this configuration, when WENA1 (WENB1) is HIGH and/ or WENA2/LDA (WENB2/LDB) is LOW, the input register of Array A holds the previous data and no new data is allowed to be loaded into the register. To prevent data overflow, the Full Flag FFA (FFB) will go LOW, inhibiting further write operations. Upon the completion of a valid read cycle, FFA (FFB) will go HIGH after tWFF, allowing a valid write to begin. WENA1, (WENB1) and WENA2/ LDA (WENB2/LDB) are ignored when the FIFO is full. FIFO A (B) is configured to have programmable flags when the WENA2/LDA (WENB2/LDB) is set LOW at Reset RSA = LOW (RSB = LOW). Each FIFO contains four 8-bit offset registers which can be loaded with data on the inputs, or read on the outputs. See Figure 3 for details of the size of the registers and the default values. 5.15 6 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 LDA WENA1 LDB WENB1 0 COMMERCIAL TEMPERATURE WCLKA(1) OPERATION ON FIFO A WCLKB(1) OPERATION ON FIFO B 0 Empty Offset (LSB) Empty Offset (MSB) Full Offset (LSB) Full Offset (MSB) 0 1 No Operation 1 0 Write Into FIFO 1 1 No Operation NOTE: 3034 drw 04 1. The same selection sequence applies to reading from the registers. RENA1 and RENA2 (RENB1 and RENB2) are enabled and read is performed on the LOW-to-HIGH transition of RCLKA (RCLKB). Figure 2. Writing to Offset Registers for FIFOs A and B If FIFO A (B) is configured to have programmable flags, when the WENA1 (WENB1) and WENA2/LDA (WENB2/LDB) 72801 - 256 x 9 x 2 8 0 8 0 7 Default Value 007H Default Value 007H Default Value 007H 7 0 1 8 8 0 8 (MSB) 0 00 0 8 7 Full Offset (LSB) 1 8 0 Full Offset (LSB) Reg. Default Value 007H Default Value 007H 0 0 1 (MSB) 7 72831 - 2048 x 9 x 2 0 8 0 1 (MSB) (MSB) 0 00 72841 - 4096 x 9 x 2 7 0 8 0 7 Empty Offset (LSB) Reg. Empty Offset (LSB) Default Value 007H Default Value 007H 0 2 3 8 0 (MSB) (MSB) 000 0000 7 0 8 Default Value 007H 0 2 0 7 Full Offset (LSB) Full Offset (LSB) Reg. Default Value 007H 8 0 Empty Offset (LSB) Reg. 8 8 7 Empty Offset (LSB) 0 8 8 Empty Offset (LSB) Reg. Full Offset (LSB) Reg. Default Value 007H 8 72821 - 1024 x 9 x 2 72811 - 512 x 9 x 2 7 8 8 are set LOW, data on the DA (DB) inputs are written into the Empty (Least Significant Bit) offset register on the first LOWto-HIGH transition of the WCLKA (WCLKB). Data are written into the Empty (Most Significant Bit) offset register on the second LOW-to-HIGH transition of WCLKA (WCLKB), into the Full (Least Significant Bit) offset register on the third transition, and into the Full (Most Significant Bit) offset register on the fourth transition. The fifth transition of WCLKA (WCLKB) again writes to the Empty (Least Significant Bit) offset register. However, writing all offset registers does not have to occur at one time. One or two offset registers can be written and then by bringing LDA (LDB) HIGH, FIFO A (B) is returned to normal read/write operation. When LDA (LDB) is set LOW, and WENA1 (WENB1) is LOW, the next offset register in sequence is written. The contents of the offset registers can be read on the QA (QB) outputs when WENA2/LDA (WENB2/LDB) is set LOW and both Read Enables RENA1, RENA2 (RENB1, RENB2) are set LOW. Data can be read on the LOW-to-HIGH transition of the read clock RCLKA (RCLKB). A read and write should not be performed simultaneously to the offset registers. 3 8 0 (MSB) (MSB) 000 0000 3034 drw 05 Figure 3. Offset Register Formats and Default Values for the A and B FIFOs 5.15 7 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE writes to the 72831's FIFO A (B), or (4096-m) writes to the 72841's FIFO A (B). FFA (FFB) is synchronized with respect to the LOW-toHIGH transition of the write clock WCLKA (WCLKB). The offset “m” is defined in the Full Offset Registers. If there is no Full offset specified, PAFA (PAFB) will go LOW at Full-7 words. PAFA (PAFB) is synchronized with respect to the LOW-toHIGH transition of the write clock WCLKA (WCLKB). OUTPUTS: Full Flag (FFA, FFB) — FFA (FFB) will go LOW, inhibiting further write operations, when Array A (B) is full. If no reads are performed after reset, FFA (FFB) will go LOW after 256 writes to the 72801's FIFO A (B), 512 writes to the 72811's FIFO A (B), 1024 writes to the 72821's FIFO A (B), 2048 writes to the 72831's FIFO A (B), or 4096 writes to the 72841's FIFO A (B). FFA (FFB) is synchronized with respect to the LOW-toHIGH transition of the write clock WCLKA (WCLKB). Programmable Almost–Empty Flag (PAEA, PAEB) — PAEA (PAEB) will go LOW when the read pointer is "n+1" Empty Flag (EFA, EFB) — EFA (EFB) will go LOW, inhibiting further read operations, when the read pointer is equal to the write pointer, indicating that Array A (B) is empty. EFA (EFB) is synchronized with respect to the LOW-toHIGH transition of the read clock RCLKA (RCLKB). locations less than the write pointer. The offset "n" is defined in the Empty Offset Registers. If no reads are performed after reset, PAEA (PAEB) will go HIGH after "n+1" writes to FIFO A (B). If there is no Empty offset specified, PAEA (PAEB) will go LOW at Empty+7 words. PAEA (PAEB) is synchronized with respect to the LOW-toHIGH transition of the read clock RCLKA (RCLKB). Programmable Almost–Full Flag (PAFA, PAFB) — PAFA (PAFB) will go LOW when the amount of data in Array A (B) reaches the Almost-Full condition. If no reads are performed after reset, PAFA (PAFB) will go LOW after (256-m) writes to the 72801's FIFO A (B), (512-m) writes to the 72811's FIFO A (B), (1024-m) writes to the 72821's FIFO A (B), (2048-m) Data Outputs (QA0 – QA8, QB0 – QB8 ) — QA0 - QA8 are the nine data outputs for memory array A, QB0 - QB8 are the nine data outputs for memory array B. TABLE 1: STATUS FLAGS FOR A AND B FIFOS FFA FFB NUMBER OF WORDS IN ARRAY A NUMBER OF WORDS IN ARRAY B 72801 72811 72821 0 0 0 1 to n(1) 1 to (n+1) to (256-(m+1)) (256-m)(2) n(1) 1 to (n+1) to (512-(m+1)) (512-m)(2) to 255 256 n(1) (n+1) to (1024-(m+1)) (1024-m)(2) to 511 512 to 1023 1024 PAEA PAEB H H L L H H L H H H H H NUMBER OF WORDS IN ARRAY B EFA EFB H L H H L L H H PAFA PAFB PAEA PAEB FFA FFB NUMBER OF WORDS IN ARRAY A 72831 PAFA PAFB EFA EFB 72841 0 0 H H L L 1 to n(1) 1 to n(1) H H L H (n+1) to (2048-(m+1)) (n+1) to (4096-(m+1)) H H H H (2048-m)(2) to 2047 (4096-m)(2) to 4095 H L H H 2048 4096 L L H NOTES: 1. n = Empty Offset (n = 7 default value) 2. m = Full Offset (m = 7 default value) H 3034 tbl 09 5.15 8 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE tRS RSA (RSB) tRSS tRSR tRSS tRSR tRSS tRSR RENA1, RENA2 (RENB1, RENB2) WENA1 (WENB1) WENA2/LDA (1) (WENB2/LDB) tRSF EFA, PAEA (EFB, PAEB) tRSF FFA, PAFA (FFA, PAFA) tRSF OEA (OEB) = 1(2) QA0 - QA8 (QB0 - QB8 ) OEA (OEB) = 0 3034 drw 06 NOTES: 1. Holding WENA2/LDA (WENB2/LDB) HIGH during reset will make the pin act as a second write enable pin. Holding WEN2/LDA (WENB2/LDB) LOW during reset will make the pin act as a load enable for the programmable flag offset registers. 2. After reset, QA0 - QA8 (QB0 - QB8) will be LOW if OEA (OEB) = 0 and tri-state if OEA (OEB) = 1. 3. The clocks RCLKA, WCLKA (RCLKB, WCLKB) can be free-running during reset. Figure 4. Reset Timing 5.15 9 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE tCLK tCLKH tCLKL WCLKA (WCLKB) tDH tDS (DA0 - DA8 DB0 - DB8 ) DATA IN VALID tENS WENA1 (WENB1) tENH NO OPERATION WENA2 (WENB2) (If Applicable) NO OPERATION tWFF tWFF FFA (FFB) tSKEW1(1) RCLKA (RCLKB) RENA1, RENA2 (RENB1, RENB2) 3034 drw 07 NOTE: 1. tSKEW1 is the minimum time between a rising RCLKA (RCLKB) edge and a rising WCLKA (WCLKB) edge for FFA (FFB) to change during the current clock cycle. If the time between the rising edge of RCLKA (RCLKB) and the rising edge of WCLKA (WCLKB) is less than tSKEW1, then FFA (FFB) may not change state until the next WCLKA (WCLKB) edge. Figure 5. Write Cycle Timing 5.15 10 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE tCLK tCLKL tCLKH RCLKA (RCLKB) tENH RENA1, RENA2 (RENB1, RENB2) tENS NO OPERATION tREF tREF EFA (EFB) tA QA0 - QA8 (QB0 - QB8) VALID DATA tOLZ tOHZ tOE OEA (OEB) tSKEW1(1) WCLKA, WCLKB WENA1 (WENB1) WENA2 (WENB2) 3034 drw 08 NOTE: 1. tSKEW1 is the minimum time between a rising WCLKA (WCLKB) edge and a rising RCLKA (RCLKB) edge for EFA (EFB) to change during the current clock cycle. If the time between the rising edge of RCLKA (RCLKB) and the rising edge of WCLKA (WCLKB) is less than tSKEW1, then EFA (EFB) may not change state until the next RCLKA (RCLKB) edge. Figure 6. Read Cycle Timing 5.15 11 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE WCLKA (WCLKB) tDS DA0 - DA8 (DB0 - DB8) D1 D2 D3 D0 (First Valid WENA1 (WENB1) tENS WENA2 (WENB2) (If Applicable) tFRL(1) tSKEW1 RCLKA (RCLKB) tREF EFA (EFB) RENA1, RENA2 (RENB1, RENB2) tA QA0 - QA8 (QB0 - QB8) tA D0 D1 tOLZ tOE OEA (OEB) 3034 drw 09 NOTE: 1. When tSKEW1 ≥ minimum specification, tFRL = tCLK + tSKEW1 When tSKEW1 < minimum specification, tFRL = 2tCLK + tSKEW1 or tCLK + tSKEW1 The Latency Timings apply only at the Empty Boundary (EFA, EFB = LOW). Figure 7. First Data Word Latency Timing 5.15 12 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE NO WRITE NO WRITE WCLKA (WCLKB) tDS tSKEW1 tDS tSKEW1 DATA WRITE DA0 - DA8 (DB0 - DB8) tWFF tWFF tWFF FFA (FFB) WENA1 (WENB1) WENA2 (WENB2) (If Applicable) RCLKA (RCLKB) tENS tENH tENS tENH RENA1 (RENB2) OEA (OEB) tA LOW tA QA0 - QA8 (QB0 - QB8) DATA IN OUTPUT REGISTER DATA READ NEXT DATA READ 3034 drw 10 Figure 8. Full Flag Timing 5.15 13 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE WCLKA (WCLKB) tDS tDS DA0 - DA8 (DB0 - DB8) DATA WRITE 1 DATA WRITE 2 tENH tENH tENS tENS WENA1, (WENB1) tENS tENH tENS tENH WENA2 (WENB2) (If Applicable) (1) (1) tFFL tFRL tSKEW1 tSKEW1 RCLKA (RLCKB) tREF tREF tREF EFA (EFB) RENA1, RENA2 (RENB1, RENB2) OEA (OEB) QA0 - QA8 (QB0 - QB8) LOW tA DATA READ DATA IN OUTPUT REGISTER 3034 drw 11 NOTE: 1. When tSKEW1 ≥ minimum specification, tFRL maximum = tCLK + tSKEW1 When tSKEW1 < minimum specification, tFRL maximum = 2tCLK + tSKEW1 or tCLK + tSKEW1 The Latency Timings apply only at at the Empty Boundary (EFA, EFB = LOW). Figure 9. Empty Flag Timing 5.15 14 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 tCLKH COMMERCIAL TEMPERATURE tCLKL (4) WCLKA (WCLKB) tENS tENH tENS tENH WENA1 (WENB1 WENA2 (WENB2) (If Applicable) tPAF (1) PAFA (PAFB) Full - (m+1) words in FIFO Full - m words in FIFO tSKEW2 (2) (3) tPAF RCLKA (RCLKB) tENS tENH RENA1, RENA2 (RENB1, RENB2) 3034 drw 12 Notes: 1. PAF offset = m. 2. (256-m) words for the 72801, (512-m) words the 72811, (1024-m) words for the 72821, (2048-m) words for the 72831, or (4096-m) words for the 72841. 3. tSKEW2 is the minimum time between a rising RCLKA (RCLKB) edge and a rising WCLKA (WCLKB) edge for PAFA (PAFB) to change during that clock cycle. If the time between the rising edge of RCLKA (RCLKB) and the rising edge of WCLKA (WCLKB) is less than tSKEW2, then PAFA (PAFB) may not change state until the next WCLKA (WCLKB) rising edge. 4. If a write is performed on this rising edge of the write clock, there will be Full - (m-1) words in FIFO A (B) when PAFA (PAFB) goes LOW. Figure 10. Programmable Full Flag Timing 5.15 15 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 tCLKH COMMERCIAL TEMPERATURE tCLKL WCLKA (WCLKB) tENS tENH tENS tENH WENA1 (WENB1) WENA2 (WENB2) (If Applicable) (1) PAEA, PAEB n+1 words in FIFO n words in FIFO tSKEW2(2) tPAE tPAE (3) RCLKA (RCLKB) tENS tENH RENA1, RENA2 (RENB1, RENB2) 3034 drw 13 NOTES: 1. PAE offset = n. 2. tSKEW2 is the minimum time between a rising WCLKA (WCLKB) edge and a rising RCLKA (RCLKB) edge for PAEA (PAEB) to change during that clock cycle. If the time between the rising edge of WCLKA (WCLKB) and the rising edge of RCLKA (RCLKB) is less than tSKEW2, then PAEA (PAEB) may not change state until the next RCLKA (RCLKB) rising edge. 3. If a read is performed on this rising edge of the read clock, there will be Empty + (n-1) words in FIFO A (B) when PAEA (PAEB) goes LOW. Figure 11. Programmable Empty Flag Timing 5.15 16 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE tCLK tCLKH tCLKL WCLKA (WCLKB) tENH tENS LDA (LDB) tENS WENA1 (WENB1) tDS tDH DA0 - DA7 (DB0 - DB7) PAE OFFSET (LSB) PAE OFFSET (MSB) PAF OFFSET (LSB) PAF OFFSET (MSB) 3034 drw 14 Figure 12. Write Offset Register Timing tCLK tCLKH tCLKL RCLKA (RCLKB) tENS tENH LDA (LDB) tENS RENA1, RENA2 (RENB1, RENB2) tA QA0 - QA7 (QB0 - QB7) DATA IN OUTPUT REGISTER EMPTY OFFSET (LSB) EMPTY OFFSET (MSB) FULL OFFSET (LSB) FULL OFFSET (MSB) 3034 drw 15 Figure 13. Read Offset Register Timing 5.15 17 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE OPERATING CONFIGURATIONS SINGLE DEVICE CONFIGURATION — When FIFO A (B) is in a Single Device Configuration, the Read Enable 2 RENA2 (RENB2) control input can be grounded (see Figure 14). In this configuration, the Write Enable 2/Load WENA2/LDA (WENB2/LDB) pin is set LOW at Reset so that the pin operates as a control to load and read the programmable flag offsets. RSA (RSB) WCLKA (WCLKB) RCLKA (RCLKB) WENA1 (WENB1) RENA1 (RENB1) IDT 72801 72811 72821 72831 72841 WENA2/LDA (WENB2/LDB) DA0 - DA8 (DB0 - DB8) FFA (FFB) OEA (OEB) QA0 - QA8 (QB0 - QB8) EFA (EFB) FIFO A (B) PAFA (PAFB) PAEA (PAEB) RENA2 (RENB2) 3034 drw 16 Figure 14. Block Diagram of One of the 72801/72811/72821/72831/72841's two FIFOs configured as a single device WIDTH EXPANSION CONFIGURATION — Word width may be increased simply by connecting the corresponding input control signals of FIFOs A and B. A composite flag should be created for each of the end-point status flags EFA and EFB, also FFA and FFB). The partial status flags PAEA, PAFB, PAEA and PAFB can be detected from any one device. Figure 15 demonstrates an 18-bit word width using the two FIFOs contained in one IDT72801/72811/72821/72831/72841. Any word width can be attained by adding additional IDT2801/ 72811/72821/72831/72841s. When the IDT2801/72811/72821/72831/72841 is in a Width Expansion Configuration, the Read Enable 2 (RENA2 and RENB2) control inputs can be grounded (see Figure 15). In this configuration, the Write Enable 2/Load (WENA2/LDA, WENB2/LDB) pins are set LOW at Reset so that the pin operates as a control to load and read the programmable flag offsets. 9 RESET • RSA DATA IN 18 • 9 DA0 - DA8 WRITE CLOCK WCLKA WRITE ENABLE WENA1 WRITE ENABLE/LOAD WENA2/LDA FULL FLAG FFA FFB DB0 - DB8 RAM ARRAY RCLKA A WCLKB RENA1 RSB RAM ARRAY B 256x9 WENB1 256x9 512x9 OEA1 512x9 1024x9 2WENB2/LDB 1024x9 2048x9 2048x9 4096x9 4096x9 RENA2 QA0 - QA8 9 EFA EFB EMPTY FLAG RCLKB READ CLOCK RENB1 READ ENABLE OEB QB0 - QB8 OUTPUT ENABLE 9 • 18 DATA OUT RENB2 3034 drw 17 Figure 15. Block diagram of the two FIFOs contained in one 72801/72811/72821/72831/72841configured for an 18-bit width-expansion 5.15 18 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE TWO PRIORITY DATA BUFFER CONFIGURATION The two FIFOs contained in the IDT2801/72811/72821/ 72831/72841 can be used to prioritize two different types of data shared on a system bus. When writing from the bus to the FIFO, control logic sorts the intermixed data according to type, sending one kind to FIFO A and the other kind to FIFO B. Then, at the outputs, each data type is transferred to its appropriate destination. Additional IDT2801/72811/72821/ 72831/72841s permit more than two priority levels. Priority buffering is particularly useful in network applications. Image Processing Card RAM ARRAY A RCLKA WCLKA VCC Data 9 DA0-DA8 QA0-QA8 WENA2 RENA2 WENB1 9 DB0-DB8 9 WENB2 RENB2 I/O Data Voice Processing Card Clock OEB2 RENB1 QB0-QB8 Control Data RAM ARRAY B WCLKB RCLKB RAM Address 9 Control Logic Control OEA RENA IDT 72801 72811 72821 72831 72841 9-bit bus Address Control Logic Processor Clock Control Logic 9 WENA1 Clock Address Control I/O Data Data 9 3034 drw 18 VCC Figure 16. Block Diagram of Two Priority Configuration 5.15 19 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE BIDIRIECTIONAL CONFIGURATION The two FIFOs of the IDT2801/72811/72821/72831/72841 can be used to buffer data flow in two directions. In the RAM ARRAY A WENA2 RENA2 VCC WCLKA WENA1 9 RAM ARRAY B Control Logic DMA Clock 9-bit bus Data Peripheral Controller 9 9-bit bus Control OEA RENA1 IDT 72801 72811 72821 72831 72841 Control Logic Address RCLKA DA0-DA8 QA0-QA8 9 Processor Clock example that follows, a processor can write data to a peripheral controller via FIFO A, and, in turn, the peripheral controller can write the processor via FIFO B. Address Control I/O Data Data 9 WENB1 RENB1 OEB WCLKB RCLKB RAM 9 9 QB0-QB8 DB0-DB8 RENB2 WENB2 9 3034 drw 19 VCC Figure 17. Block Diagram of Bidirectional Configuration 5.15 20 72801/72811/72821/72831/72841 DUAL CMOS SyncFIFO 256 x 9, 512 x 9, 1024 x 9, 2048 x 9 and 4096 x 9 COMMERCIAL TEMPERATURE DEPTH EXPANSION — IDT2801/72811/72821/72831/ 72841 can be adapted to applications that require greater than 256/512/1024/2048/4096 words. The existence of double enable pins on the read and write ports allow depth expansion. The Write Enable 2/Load (WENA2, WENB2) pins are used as a second write enables in a depth expansion configuration, thus the Programmable flags are set to the default values. Depth expansion is possible by using one enable input for system control while the other enable input is controlled by expansion logic to direct the flow of data. A typical application would have the expansion logic alternate data access from one device to the next in a sequential manner. The IDT2801/ 72811/72821/72831/72841 operates in the Depth Expansion configuration when the following conditions are met: 1. WENA2/LDA and WENB2/LDB pins are held HIGH during Reset so that these pins operate as second Write Enables. 2. External logic is used to control the flow of data. Please see the Application Note" DEPTH EXPANSION OF IDT'S SYNCHRONOUS FIFOs USING THE RING COUNTER APPROACH" for details of this configuration. ORDERING INFORMATION IDT XXXXX Device Type L Power XX Speed PF Package Process/ Temperature Range BLANK Commercial (0°C to +70°C) Thin Quad Flat Pack (TQFP) 12 15 20 25 35 Clock Cycle Time(tCLK), speed in Nanoseconds Low Power 72801 72811 72821 72831 72841 5.15 256 x 9 DUAL FIFO 512 x 9 DUAL FIFO 1024 x 9 DUAL FIFO 2048 x 9 DUAL FIFO 4096 x 9 DUAL FIFO 3034 drw 20 21