IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 FEATURES: • • • • • • • • • • • • • • • Free-running CLKA and CLKB may be asynchronous or coincident (permits simultaneous reading and writing of data on a single clock edge) 64 x 36 storage capacity FIFO buffering data from Port A to Port B Mailbox bypass registers in each direction Dynamic Port B bus sizing of 36 bits (long word), 18-bits (word), and 9 bits (byte) Selection of Big- or Little-Endian format for word and byte bus sizes Three modes of byte-order swapping on Port B Programmable Almost-Full and Almost-Empty flags Microprocessor interface control logic FF, AF flags synchronized by CLKA EF, AE flags synchronized by CLKB Passive parity checking on each Port Parity Generation can be selected for each Port • Supports clock frequencies up to 67 MHz Fast access times of 10 ns Available in 132-pin quad flatpack (PQFP) or space-saving 120-pin thin quad flatpack (TQFP) Industrial temperature range (–40°°C to +85°°C) is available DESCRIPTION: The IDT723613 is a monolithic, high-speed, low-power, CMOS synchronous (clocked) FIFO memory which supports clock frequencies up to 67 MHz and has read-access times as fast as 10 ns. The 64 x 36 dual-port SRAM FIFO buffers data from port A to port B. The FIFO has flags to indicate empty and full conditions, and two programmable flags, Almost-Full (AF) and Almost-Empty (AE), to indicate when a selected number of words is stored in memory. FIFO data on port B can be output in 36-bit, 18-bit, and 9-bit formats with a choice of big- or Little-Endian configurations. Three modes of byte-order swapping are possible with any bus-size selection. Communication between each port can bypass the FIFO via two 36-bit mailbox registers. Each mailbox register has a flag to signal when new mail has been stored. Parity is checked passively FUNCTIONAL BLOCK DIAGRAM RAM ARRAY 64 x 36 36 Write Pointer FF AF Output Register PGB Parity Generation ODD/ EVEN Device Control MBF1 PEFB Parity Gen/Check Mail 1 Register Input Register RST Port-A Control Logic Bus-Matching Outputand Byte Swapping Register CLKA CSA W/RA ENA MBA 36 64 x 36 Read Pointer B0 - B35 Status Flag Logic EF AE CLKB CSB W/RB ENB BE SIZ0 SIZ1 SW0 SW1 FIFO FS0 FS1 A0 - A35 Programmable Flag Offset Registers PGA PEFA MBF2 Parity Gen/Check Port-B Port-B Control Control Logic Logic Mail 2 Register 3145 drw01 IDT and the IDT logo are registered trademarks of Integrated Device Technology Inc. SyncFIFO is a trademark of Integrated Device Technology, Inc. COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES MARCH 2002 1 © 2002 Integrated Device Technology, Inc. All rights reserved. Product specifications subject to change without notice. DSC-3145/1 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 DESCRIPTION (CONTINUED) another and can be asynchronous or coincident. The enables for each port are arranged to provide a simple interface between microprocessors and/or buses with synchronous interfaces. The Full Flag (FF) and Almost-Full (AF) flag of the FIFO are two-stage synchronized to the port clock (CLKA) that writes data into its array. The Empty Flag (EF) and Almost-Empty (AE) flag of the FIFO are two-stage synchronized to the port clock (CLKB) that reads data from its array. The IDT723613 is characterized for operation from 0°C to 70°C. on each port and may be ignored if not desired. Parity generation can be selected for data read from each port. Two or more devices may be used in parallel to create wider data paths. The IDT723613 is a synchronous (clocked) FIFO, meaning each port employs a synchronous interface. All data transfers through a port are gated to the LOW-to-HIGH transition of a continuous (free-running) port clock by enable signals. The continuous clocks for each port are independent of one 120 119 118 117 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 A24 A25 A26 VCC A27 A28 A29 GND A30 A31 A32 A33 A34 A35 GND B35 B34 B33 B32 B31 B30 GND B29 B28 B27 VCC B26 B25 B24 B23 PIN CONFIGURATIONS 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 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 B22 B21 GND B20 B19 B18 B17 B16 B15 B14 B13 B12 B11 B10 GND B9 B8 B7 VCC B6 B5 B4 B3 GND B2 B1 B0 EF AE NC AF FF CSA ENA CLKA W/RA VCC PGA PEFA MBF2 MBA FS1 FS0 ODD/EVEN RST GND BE SW1 SW0 SIZ1 SIZ0 MBF1 PEFB PGB VCC W/RB CLKB ENB CSB NC 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 A23 A22 A21 GND A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 GND A9 A8 A7 VCC A6 A5 A4 A3 GND A2 A1 A0 NC NC NOTE: 1. NC = No internal connection. TQFP (PN120-1, ORDER CODE: PF) TOP VIEW 2 3145 drw02 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES * 116 115 114 113 112 111 110 109 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 VCC A24 A25 A26 GND A27 A28 A29 VCC A30 A31 A32 GND A33 A34 A35 GND B35 B34 B33 GND B32 B31 B30 VCC B29 B28 B27 GND B26 B25 B24 VCC GND NC NC A0 A1 A2 GND A3 A4 A5 A6 VCC A7 A8 A9 GND A10 A11 VCC A12 A13 A14 GND A15 A16 A17 A18 A19 A20 GND A21 A22 A23 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 AF FF CSA ENA CLKA W/RA VCC PGA PEFA GND MBF2 MBA FS1 FS0 ODD/EVEN RST GND BE SW1 SW0 SIZ1 SIZ0 MBF1 GND PEFB PGB VCC W/RB CLKB ENB CSB NC NC PIN CONFIGURATIONS (CONTINUED) * Electrical pin 1 in center of beveled edge. Pin 1 identifier in corner. PQFP(2) (PQ132-1, ORDER CODE: PQF) TOP VIEW NOTES: 1. NC = No internal connection. 2. Uses Yamaichi socket IC51-1324-828. 3 GND AE EF B0 B1 B2 GND B3 B4 B5 B6 VCC B7 B8 B9 GND B10 B11 VCC B12 B13 B14 GND B15 B16 B17 B18 B19 B20 GND B21 B22 B23 3145 drw03 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 PIN DESCRIPTION Symbol Name I/O I/O Description A0-A35 Port A Data AE Almost-Empty Flag O Port B Programmable Almost-Empty flag synchronized to CLKB. It is LOW when Port B the number of 36-bit words in the FIFO is less than or equal to the value in the offset register, X. AF Almost-Full Flag O Port A Programmable Almost-Full flag synchronized to CLKA. It is LOW when the number of 36-bit empty location in the FIFO is less than or equal to the value in the offset register, X. B0-B35 Port B Data BE Big-Endian Select I Selects the bytes on port B used during byte or word FIFO reads. A LOW on BE selects the most significant bytes on B0-B35 for use, and a HIGH selects the least significant bytes. CLKA Port A Clock I CLKA is a continuous clock that synchronizes all data transfers through port A and can be asynchronous or coincident to CLKB. FF and AF are synchronized to the LOW-to-HIGH transition of CLKA. CLKB Port B Clock I CLKB is a continuous clock that synchronizes all data transfers through port B and can be asynchronous or coincident to CLKA. Port-B byte swapping and data port sizing operations are also synchronous to the LOW-to-HIGH transition of CLKB. EF and AE are synchronized to the LOW-to-HIGH transition of CLKB. CSA Port A Chip Select I CSA must be LOW to enable a LOW-to-HIGH transition of CLKA to read or write data on port A. The A0-A35 outputs are in the high-impedance state when CSA is HIGH. CSB Port B Chip Select I CSB must be LOW to enable a LOW-to-HIGH transition of CLKB to read or write data on port B. The B0-B35 outputs are in the high-impedance state when CSB is HIGH. EF Empty Flag ENA Port A Enable I ENA must be HIGH to enable a LOW-to-HIGH transition of CLKA to read or write data on port A. ENB Port B Enable I ENB must be HIGH to enable a LOW-to-HIGH transition of CLKB to read or write data on port B. FF Full Flag FS1, FS0 Flag Offset Selects I The LOW-to-HIGH transition of RST latches the values of FS0 and FS1, which loads one of four preset values into the Almost-Full flag and Almost-Empty flag offsets. MBA Port A Mailbox Select I A high level on MBA chooses a mailbox register for a port A read or write operation. When the A0-A35 outputs are active, mail2 register data is output. MBF1 Mail1 Register Flag O MBF1 is set LOW by a LOW-to-HIGH transition of CLKA that writes data to the mail1 register. Writes to the mail1 register are inhibited while MBF1 is set LOW. MBF1 is set HIGH by a LOW-to-HIGH transition of CLKB when a port B read is selected and both SIZ1 and SIZ0 are HIGH. MBF1 is set HIGH when the device is reset. MBF2 Mail2 Register Flag O MBF2 is set LOW by a LOW-to-HIGH transition of CLKB that writes data to the mail2 register. Writes to the mail2 register are inhibited while MBF2 is set LOW. MBF2 is set HIGH by a LOW-to-HIGH transition of CLKA when a port A read is selected and MBA is HIGH. MBF2 is set HIGH when the device is reset. ODD/ EVEN Odd/Even Parity Select I Odd parity is checked on each port when ODD/EVEN is HIGH, and even parity is checked when ODD EVEN is LOW. ODD/EVEN also selects the type of parity generated for each port if parity generation is enabled for a read operation. PEFA Port A Parity Error Flag O When any byte applied to terminals A0-A35 fails parity, PEFA is LOW. Bytes are organized as A0-A8, A9-A17, (Port A) A18-A26, and A27-A35, with the most significant bit of each byte serving as the parity bit. The type of parity checked is determined by the state of the ODD/EVEN input. The parity trees used to check the A0-A35 inputs are shared by the mail2 register to generate parity if parity generation is selected by PGA. Therefore, if a mail2 read with parity generation is set up by having CSA LOW, ENA HIGH, W/RA LOW, MBA HIGH and PGA HIGH, the PEFA flag is forced HIGH regardless of the state of the A0-A35 inputs. PEFB Port B Parity Error Flag O (PortB) I/O O Port B O Port A 36-bit bidirectional data port for side A. 36-bit bidirectional data port for side B EF is synchronized to the LOW-to-HIGH transition of CLKB. When EF is LOW, the FIFO is empty, and reads from its memory are disabled. Data can be read from the FIFO to its output register when EF is HIGH. EF is forced LOW when the device is reset and is set HIGH by the second LOW-to-HIGH transition of CLKB after data is loaded into empty FIFO memory. FF is synchronized to the LOW-to-HIGH transition of CLKA. When FF is LOW, the FIFO is full, and writes to its memory are disabled. FF is forced LOW when the device is reset and is set HIGH by the second LOW-to-HIGH transition of CLKA after reset. When any valid byte applied to terminals B0-B35 fails parity, PEFB is LOW. Bytes are organized as B 0-B8, B9-B17, B18-B26, and B27-B35, with the most significant bit of each byte serving as the parity bit. A byte is valid when it is used by the bus size selected for port B. The type of parity checked is determined by the state of the ODD/EVEN input. The parity trees used to check the B0-B35 inputs are shared by the mail1 register to generate parity if parity generation is selected by PGB. Therefore, if a mail1 read with parity generation is set up by having CSB LOW, ENB HIGH, W/RB LOW, SIZ1 and SIZ0 HIGH and PGB HIGH, the PEFB flag is forced HIGH regardless of the state of the B0-B35 inputs. 4 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES PIN DESCRIPTION (CONTINUED) Symbol Name I/O Description PGA Port A Parity Generation I Parity is generated for data reads from the mail2 register when PGA is HIGH. The type of parity generated is selected by the state of the ODD/EVEN input. Bytes are organized at A0-A8, A9-A17, A18-A26, and A27-A35. The generated parity bits are output in the most significant bit of each byte. PGB Port B Parity I Parity is generated for data reads from port B when PGB is HIGH. The type of parity generated is selected by the state of the ODD/EVEN input. Bytes are organized as B0-B8, B9-B17, B18-B26, and B27-B35. The generated parity bits are output in the most significant bit of each byte. RST Reset I To reset the device, four LOW-to-HIGH transitions of CLKA and four LOW-to-HIGH transitions of CLKB must occur while RST is LOW. This sets the AF, MBF1, and MBF2 flags HIGH and the EF, AE, and FF flags LOW. The LOW-to-HIGH transition of RST latches the status of the FS1 and FS0 inputs to select Almost-Full flag and Almost-Empty flag offset. SIZ0, SIZ1 Port B Bus Size Selects I (Port B) A LOW-to-HIGH transition of CLKB latches the states of SIZ0, SIZ1, and BE, and the following LOW-to HIGH transition of CLKB implements the latched states as a port B bus size. Port B bus sizes can be long word, word, or byte. A HIGH on both SIZ0 and SIZ1 accesses the mailbox registers for a port B 36-bit write or read. SW0, SW1 Port B Byte Swap Selects I (Port B) At the beginning of each long word FIFO read, one of four modes of byte-order swapping is selected by SW0 and SW1. The four modes are no swap, byte swap, word swap, and byte-word swap. Byte order swapping is possible with any bus-size selection. W/RA Port A Write/Read Select Select I A HIGH selects a write operation and a LOW selects a read operation on port A for a LOW-to-HIGH transition of CLKA. The A0-A35 outputs are in the high-impedance state when W/RA is HIGH. W/RB Port B Write/Read Select I A HIGH selects a write operation and a LOW selects a read operation on port B for a LOW-to-HIGH transition of CLKB. The B0-B35 outputs are in the high-impedance state when W/RB is HIGH. 5 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 ABSOLUTE MAXIMUM RATINGS OVER OPERATING FREE-AIR TEMPERATURE RANGE (UNLESS OTHERWISE NOTED)(1) Symbol V CC VI Rating Supply Voltage Range (2) Commercial Unit –0.5 to 7 V Input Voltage Range –0.5 to VCC+0.5 V V O (2) Output Voltage Range –0.5 to VCC+0.5 V I IK Input Clamp Current, (VI < 0 or VI > VCC) ±20 mA I OK Output Clamp Current, (VO < 0 or VO > VCC) ±50 mA I OUT Continuous Output Current, (VO = 0 to VCC) ±50 mA I CC Continuous Current Through VCC or GND ±500 mA T STG Storage Temperature Range –65 to 150 °C NOTES: 1. Stresses beyond those listed under "Absolute Maximum Ratings" may cause permanent damage to the device. These are stress ratings only and functional operation of the device at these or any other conditions beyond those indicated under "Recommended Operating Conditions" is not implied. Exposure to absolute-maximum-rated conditions for extended periods may affect device reliability. 2. The input and output voltage ratings may be exceeded provided the input and output current ratings are observed. RECOMMENDED OPERATING CONDITIONS Symbol Parameter V CC Supply Voltage V IH High-Level Input Voltage Min. Max. Unit 4.5 5.5 V 2 — V VIL Low-Level Input Voltage — 0.8 V I OH High-Level Output Current — –4 mA I OL Low-Level Output Current — 8 mA TA Operating Free-Air Temperature 0 70 °C ELECTRICAL CHARACTERISTICS OVER RECOMMENDED OPERATING FREEAIR TEMPERATURE RANGE (UNLESS OTHERWISE NOTED) IDT723613 Commercial & Industrial(1) TA = 15, 20 ns Min. Typ.(2) Max. 2.4 — — Parameter V OH VCC = 4.5V, IOH = –4 mA VOL VCC = 4.5V, IOL = 8 mA — — 0.5 V II VCC = 5.5V, VI = VCC or 0 — — ±50 µA VCC = 5.5V, VO = VCC or 0 — — ±50 µA I OZ I CC (3) Test Conditions VI = VCC or GND Unit V VCC = 5.5V, IO = 0 mA, — — 1 mA Ci VI = 0 f = 1 MHz — 4 — pF Co VO = 0, f = 1 MHz — 8 — pF NOTES: 1. Industrial temperature range product for 20ns is available as a standard device. All other speed grades are available by special order. 2. All typical values are at VCC = 5V, TA = 25°C. 3. For additional ICC information, see the following page. 6 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES 400 VCC = 5.5V fdata = 1/2 fS 350 TA = 25°C CL = 0 pF ICC(f) Supply Current mA 300 250 VCC = 5V 200 VCC = 4.5V 150 100 50 0 0 10 20 30 40 50 60 fS Clock Frequency MHz 70 80 3145 drw04 Figure 1. Typical Characteristics: Supply Current vs Clock Frequency CALCULATING POWER DISSIPATION The ICCf current for the graph in Figure 1 was taken while simultaneously reading and writing the FIFO on the IDT723613 with CLKA and CLKB set to fS. All date inputs and data outputs change state during each clock cycle to consume the highest supply current. Data outputs were disconnected to normalize the graph to a zero-capacitance load. Once the capacitive lead per data-output channel is known, the power dissipation can be calculated with the equation below. With ICC(f) taken from Figure 1, the maximum power dissipation (PT) of the IDT723613 may be calculated by: PT = VCC x ICC(f) + Σ[CL x (VOH – VOL)2 x fo) where: = output capacitive load CL fo = switching frequency of an output VOH = output high-level voltage VOL = output high-level voltage When no reads or writes are occurring on the IDT723613, the power dissipated by a single clock (CLKA or CLKB) input running at frequency fS is calculated by: PT = VCC x fS x 0.29mA/MHz 7 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 AC ELECTRICAL CHARACTERISTICS OVER RECOMMENDED RANGES OF SUPPLY VOLTAGE AND OPERATING FREE-AIR TEMPERATURE (Commercial: VCC = 5.0V ±10%, TA = 0°C to +70°C; Industrial; VCC = 5.0V ± 10%,TA = 40°C to +85°C) Commercial IDT723613L15 Symbol Parameter Min. Max. Com’l & Ind’l(1) IDT723613L20 Min. Max. Unit fS Clock Frequency, CLKA or CLKB – 66.7 – 50 MHz tCLK Clock Cycle Time, CLKA or CLKB 15 – 20 – ns t CLKH Pulse Duration, CLKA and CLKB HIGH 6 – 8 – ns t CLKL Pulse Duration, CLKA and CLKB LOW 6 – 8 – ns t DS Setup Time, A0-A35 before CLKA↑ and B0-B35 before CLKB↑ 4 – 5 – ns tENS Setup Time, CSA, W/RA, ENA, and MBA before CLKA↑; CSB,W/RB, and ENB before CLKB↑ 5 – 5 – ns t SZS Setup Time, SIZ0, SIZ1,and BE before CLKB↑ 4 – 5 – ns t SWS Setup Time, SW0 and SW1 before CLKB↑ 5 – 7 – ns t PGS Setup Time, ODD/EVEN and PGB before CLKB↑(2) 4 – 5 – ns t RSTS Setup Time, RST LOW before CLKA↑ or CLKB↑ 5 – 6 – ns t FSS Setup Time, FS0 and FS1 before RST HIGH 5 – 6 – ns tDH Hold Time, A0-A35 after CLKA↑ and B0-B35 after CLKB↑ 1 – 1 – ns tENH Hold Time, CSA W/RA, ENA and MBA after CLKA↑; CSB, W/RB, and ENB after CLKB↑ 1 – 1 – ns t SZH Hold Time, SIZ0, SIZ1, and BE after CLKB↑ 2 – 2 – ns tSWH Hold Time, SW0 and SW1 after CLKB↑ 0 – 0 – ns (3) (2) t PGH Hold Time, ODD/EVEN and PGB after CLKB↑ 0 – 0 – ns t RSTH Hold Time, RST LOW after CLKA↑ or CLKB↑ 5 – 6 – ns t FSH Hold Time, FS0 and FS1 after RST HIGH 4 – 4 – ns 8 – 8 – ns 14 – 16 – ns t SKEW1 (3) (4) Skew Time, between CLKA↑ and CLKB↑ for EF and FF t SKEW2(4) Skew Time, between CLKA↑ and CLKB↑ for AE and AF NOTES: 1. Industrial temperature range product for 20ns speed grade is available as a standard device. All other speed grades are available by special order. 2. Only applies for a clock edge that does a FIFO read. 3. Requirement to count the clock edge as one of at least four needed to reset a FIFO. 4. Skew time is not a timing constraint for proper device operation and is only included to illustrate the timing relationship between CLKA cycle and CLKB cycle. 8 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES SWITCHING CHARACTERISTICS OVER RECOMMENDED RANGES OF SUPPLY VOLTAGE AND OPERATING FREE-AIR TEMPERATURE, CL = 30PF (Commercial: VCC = 5.0V ±10%, TA = 0°C to +70°C; Industrial; VCC = 5.0V ± 10%,TA = 40°C to +85°C) Commercial Symbol Parameter Com’l & Ind’l(1) IDT723613L15 IDT723613L20 Min. Min. Max. Max. Unit tA Access Time, CLKA↑ to A0-A35 and CLKB↑to B0-B35 2 10 2 12 ns tWFF Propagation Delay Time, CLKA↑ to FF 2 10 2 12 ns tREF Propagation Delay Time, CLKB↑ to EF 2 10 2 12 ns tPAE Propagation Delay Time, CLKB↑ to AE 2 10 2 12 ns tPAF Propagation Delay Time, CLKA↑ to AF 2 10 2 12 ns tPMF Propagation Delay Time, CLKA↑ to MBF1 LOW or MBF2 HIGH and CLKB↑ to MBF2 LOW or MBF1 HIGH 1 9 1 12 ns tPMR Propagation Delay Time, CLKA↑ to B0-B35(2) and CLKB↑ to A0-A35(3) 3 11 3 12 ns tPPE Propagation delay time, CLKB↑ to PEFB 2 11 2 12 ns tMDV Propagation Delay Time, SIZ1, SIZ0 to B0-B35 valid 1 11 1 11.5 ns tPDPE Propagation Delay Time, A0-A35 valid to PEFA valid; B0-B35 valid to PEFB valid 3 10 3 11 ns tPOPE Propagation Delay Time, ODD/EVEN to PEFA and PEFB 3 11 3 12 ns tPOPB(5) Propagation Delay Time, ODD/EVEN to parity bits (A8, A17, A26, A35) and (B8, B17, B26, B35) 2 12 2 13 ns tPEPE Propagation Delay Time, CSA, ENA, W/RA, MBA, or PGA to PEFA; CSB, ENB, W/RB, SIZ1, SIZ0, or PGB to PEFB 1 11 1 12 ns tPEPB(5) Propagation Delay Time, CSA, ENA, W/RA, MBA, or PGA to parity bits (A8, A17, A26, A35); CSB, ENB, W/RB, SIZ1, SIZ0, or PGB to parity bits (B8, B17, B26, B35) 3 12 3 13 ns tRSF Propagation Delay Time, RST to AE, EF LOW and AF, MBF1, MBF2 HIGH 1 15 1 20 ns tEN Enable Time, CSA and W/RA LOW to A0-A35 active and CSB LOW and W/RB HIGH to B0-B35 active 2 10 2 12 ns tDIS Disable Time, CSA or W/RA HIGH to A0-A35 at high impedance and CSB HIGH or W/RB LOW to B0-B35 at high impedance 1 8 1 9 ns (4) NOTES: 1. Industrial temperature range product for 20ns speed grade is available as a standard device. All other speed grades are available by special order. 2. Writing data to the mail1 register when the B0-B35 outputs are active and SIZ1 and SIZ0 are HIGH. 3. Writing data to the mail2 register when the A0-A35 outputs are active. 4. Only applies when a new port-B bus size is implemented by the rising CLKB edge. 5. Only applies when reading data from a mail register. 9 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 FUNCTIONAL DESCRIPTION RESET (RST) The IDT723613 is reset by taking the Reset (RST) input LOW for at least four port A Clock (CLKA) and four port B Clock (CLKB) LOW-to-HIGH transitions. The Reset input can switch asynchronously to the clocks. A device reset initializes the internal read and write pointers of the FIFO and forces the Full Flag (FF) LOW, the Empty Flag (EF) LOW, the Almost-Empty flag (AE) LOW, and the Almost-Full flag (AF) HIGH. A reset also forces the Mailbox Flags (MBF1, MBF2) HIGH. After a reset, FF is set HIGH after two LOW-to-HIGH transitions of CLKA. The device must be reset after power up before data is written to its memory. A LOW-to-HIGH transition on the RST input loads the Almost-Full and Almost-Empty Offset register (X) with the value selected by the Flag Select (FS0, FS1) inputs. The values that can be loaded into the register are shown in Table 1. FIFO WRITE/READ OPERATION The state of the port A data (A0-A35) outputs is controlled by the port-A Chip Select (CSA) and the port-A Write/Read select (W/RA). The A0-A35 outputs are in the high-impedance state when either CSA or W/RA is HIGH. The A0-A35 outputs are active when both CSA and W/RA are LOW. Data is loaded into the FIFO from the A0-A35 inputs on a LOW-to-HIGH transition of CLKA when CSA is LOW, W/RA is HIGH, ENA is HIGH, MBA is LOW, and FFA is HIGH (see Table 2). The state of the port B data (B0-B35) outputs is controlled by the port B Chip Select (CSB) and the port B Write/Read select (W/RB). The B0-B35 outputs are in the high-impedance state when either CSB or W/RB is HIGH. The B0-B35 outputs are active when both CSB and W/RB are LOW. Data is read from the TABLE 1 FLAG PROGRAMMING FS1 FS0 RST Almost-Full and Almost-Empty Flag Offset Register (X) H H ↑ 16 H L ↑ 12 L H ↑ 8 L L ↑ 4 FIFO to the B0-B35 outputs by a LOW-to-HIGH transition of CLKB when CSB is LOW, W/RB is LOW, ENB is HIGH, EFB is HIGH, and either SIZ0 or SIZ1 is LOW (see Table 3). The setup and hold-time constraints to the port clocks for the port Chip Selects (CSA, CSB) and Write/Read selects (W/RA, W/RB) 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’s Chip Select and Write/Read select can change states during the setup and hold time window of the cycle. SYNCHRONIZED FIFO FLAGS Each FIFO flag is synchronized to its port clock through two flip-flop stages. This is done to improve the flags’ reliability by reducing the probability of metastable events on their outputs when CLKA and CLKB operate asynchronously to one another. FF and AF are synchronized to CLKA. EF and AE are synchronized to CLKB. Table 4 shows the relationship of each port flag to the level of FIFO fill. EMPTY FLAG (EF) The FIFO Empty Flag is synchronized to the port clock that reads data from its array (CLKB). When the EF is HIGH, new data can be read to the FIFO output register. When the EF is LOW, the FIFO is empty and attempted FIFO reads are ignored. When reading the FIFO with a byte or word size on port B, EF is set LOW when the fourth byte or second word of the last long word is read. The FIFO read pointer is incremented each time a new word is clocked to its output register. The state machine that controls the EF monitors a write-pointer and read-pointer comparator that indicates when the FIFO SRAM status is empty, empty+1, or empty+2. A word written to the FIFO can be read to the FIFO output register in a minimum of three port B clock (CLKB) cycles. Therefore, an EF is LOW if a word in memory is the next data to be sent to the FIFO output register and two CLKB cycles have not elapsed since the time the word was written. The EF of the FIFO is set HIGH by the second LOW-to-HIGH transition of CLKB, and the new data word can be read to the FIFO output register in the following cycle. A LOW-to-HIGH transition on CLKB begins the first synchronization cycle of a write if the clock transition occurs at time tSKEW1 or greater after the write. Otherwise, the subsequent CLKB cycle can be the first synchronization cycle (see Figure 10). TABLE 2 PORT A ENABLE FUNCTION TABLE CSA W/RA ENA MBA CLKA A0-A35 Outputs Port Function H X X X X In high-impedance state None L H L X X In high-impedance state None L H H L ↑ In high-impedance state FIFO write L H H H ↑ In high impedance state Mail1 write L L L L X Active, mail2 register None L L H L ↑ Active, mail2 register None L L L H X Active, mail2 register None L L H H ↑ Active, mail2 register Mail2 read (set MBF2 HIGH) 10 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES TABLE 3 PORT B ENABLE FUNCTION TABLE CSB W/RB ENB SIZ1, SIZ0 CLKB B0-B35 Outputs Port Function H X X X X In high-impedance state None L H L X X In high-impedance state None L H H One, both LOW ↑ In high-impedance state None L H H Both HIGH ↑ In high-impedance state Mail2 write L L L One, both LOW X Active, FIFO output register None L L H One, both LOW ↑ Active, FIFO output register FIFO read L L L Both HIGH X Active, mail1 register None L L H Both HIGH ↑ Active mail1 register Mail1 read (set MBF1 HIGH) a FIFO write for the AE flag to reflect the new level of fill. Therefore, the AE flag of a FIFO containing (X+1) or more long words remains LOW if two CLKB cycles have not elapsed since the write that filled the memory to the (X+1) level. The AE flag is set HIGH by the second CLKB LOW-to-HIGH transition after the FIFO write that fills memory to the (X+1) level. A LOW-to-HIGH transition of CLKB begins the first synchronization cycle if it occurs at time tSKEW2 or greater after the write that fills the FIFO to (X+1) long words. Otherwise, the subsequent CLKB cycle can be the first synchronization cycle (see Figure 12). FULL FLAG (FF) The FIFO Full Flag is synchronized to the port clock that writes data to its array (CLKA). When the FF is HIGH, a SRAM location is free to receive new data. No memory locations are free when the FF is LOW and attempted writes to the FIFO are ignored. Each time a word is written to the FIFO, its write-pointer is incremented. The state machine that controls the FF monitors a write-pointer and readpointer comparator that indicates when the FIFO SRAM status is full, full-1, or full-2. From the time a word is read from the FIFO, its previous memory location is ready to be written in a minimum of three CLKA cycles. Therefore, a FF is LOW if less than two CLKA cycles have elapsed since the next memory write location has been read. The second LOW-to-HIGH transition on the FF synchronizing clock after the read sets the FF HIGH and data can be written in the following clock cycle. A LOW-to-HIGH transition on CLKA begins the first synchronization cycle of a read if the clock transition occurs at time tSKEW1 or greater after the read. Otherwise, the subsequent clock cycle can be the first synchronization cycle (see Figure 11). ALMOST FULL FLAG (AF) The FIFO Almost-Full flag is synchronized to the port clock that writes data to its array (CLKA). The state machine that controls an AF flag monitors a write-pointer and read-pointer comparator 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 value of the Almost-Full and Almost-Empty Offset register (X). This register is loaded with one of four preset values during a device reset (see reset above). The AF flag is LOW when the FIFO contains (64-X) or more long words in memory and is HIGH when the FIFO contains [64-(X+1)] or less long words. Two LOW-to-HIGH transitions on the port A Clock (CLKA) are required after a FIFO read for the AF flag to reflect the new level of fill. Therefore, the AF flag of a FIFO containing [64-(X+1)] or less words remains LOW if two CLKA cycles have not elapsed since the read that reduced the number of long words in memory to [64-(X+1)]. The AF flag is set HIGH by the second CLKA LOW-to-HIGH transition after the FIFO read that reduces the number of long words in memory to [64-(X+1)]. A LOW-to-HIGH transition on CLKA begins the first synchronization cycle if it occurs at time tSKEW2 or greater after the read that reduces the number of long words in memory to [64-(X+1)]. Otherwise, the subsequent CLKA cycle can be the first synchronization cycle (see Figure 13). ALMOST-EMPTY FLAG (AE) The FIFO Almost-Empty flag is synchronized to the port clock that reads data from its array (CLKB). The state machine that controls the AE 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 value of the Almost-Full and Almost-Empty Offset register (X). This register is loaded with one of four preset values during a device reset (see reset above). The AE flag is LOW when the FIFO contains X or less long words in memory and is HIGH when the FIFO contains (X+1) or more long words. Two LOW-to-HIGH transitions on the port B Clock (CLKB) are required after MAILBOX REGISTERS Two 36-bit bypass registers (mail1, mail2) are on the IDT723613 to pass command and control information between port A and port B without putting it in queue. 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 (with 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 both SIZ0 and SIZ1 are HIGH). Writing data to a mail register sets its corresponding flag (MBF1 or MBF2) LOW. Attempted writes to a mail register are ignored while its mail flag is LOW. When the port B data (B0-B35) outputs are active, the data on the bus comes from the FIFO output register when either one or both SIZ1 and SIZ0 are LOW and from the mail1 register when both SIZ1 and SIZ0 are HIGH. The Mail1 Register Flag (MBF1) is set HIGH by a rising CLKB edge when a port B read TABLE 4 FIFO FLAG OPERATION Number of 36-Bit Words in the FIFO(1) 0 Synchronized to CLKB Synchronized to CLKA EF AE AF FF L L H H 1 to X H L H H (X + 1) to [64 – (X + 1)] H H H H (64 – X) to 63 H H L H 64 H H L L NOTE: 1. X is the value in the Almost-Empty flag and Almost-Full flag Offset register. 11 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 is selected by CSB, W/RB, and ENB, (and both SIZ1 and SIZ0 HIGH). The Mail2 Register Flag (MBF2) is set HIGH by a rising CLKA edge when a port A read is selected by CSA, W/RA, and ENA (with MBA HIGH). The data in a mail register remains intact after it is read and changes only when new data is written to the register. DYNAMIC BUS SIZING The port B bus can be configured in a 36-bit long word, 18-bit word, or 9bit byte format for data read from the FIFO. Word- and byte-size bus selections can utilize the most significant bytes of the bus (Big-Endian) or least significant bytes of the bus (Little-Endian). Port B bus-size can be changed dynamically and synchronous to CLKB to communicate with peripherals of various bus widths. The levels applied to the port B bus-size select (SIZ0, SIZ1) inputs and the Big-Endian select (BE) input are stored on each CLKB LOW-to-HIGH transition. The stored port B bus-size selection is implemented by the next rising edge on CLKB according to Figure 2. Only 36-bit long-word data is written to or read from the FIFO memory on the IDT723613. Bus-matching operations are done after data is read from the FIFO RAM. Port B bus sizing does not apply to mail register operations. BUS-MATCHING FIFO READS Data is read from the FIFO RAM in 36-bit long-word increments. If a longword bus-size is implemented, the entire long word immediately shifts to the FIFO output register upon a read. If byte or word size is implemented on port B, only the first one or two bytes appear on the selected portion of the FIFO output register, with the rest of the long word stored in auxiliary registers. In this case, subsequent FIFO reads with the same bus-size implementation output the rest of the long word to the FIFO output register in the order shown by Figure 2. Each FIFO read with a new bus-size implementation automatically unloads data from the FIFO RAM to its output register and auxiliary registers. Therefore, implementing a new port B bus-size and performing a FIFO read before all bytes or words stored in the auxiliary registers have been read results in a loss of the unread data in these registers. When reading data from FIFO in byte or word format, the unused B0-B35 outputs remain inactive but static, with the unused FIFO output register bits holding the last data value to decrease power consumption. BYTE SWAPPING The byte-order arrangement of data read from the FIFO can be changed synchronous to the rising edge of CLKB. Byte-order swapping is not available for mail register data. Four modes of byte-order swapping (including no swap) can be done with any data port size selection. The order of the bytes are rearranged within the long word, but the bit order within the bytes remains constant. Byte arrangement is chosen by the port B Swap select (SW0, SW1) inputs on a CLKB rising edge that reads a new long word from the FIFO. The byte order chosen on the first byte or first word of a new long word read from the FIFO is maintained until the entire long word is transferred, regardless of the SW0 and SW1 states during subsequent reads. Figure 4 is an example of the byte-order swapping available for long word reads. Performing a byte swap and bus-size simultaneously for a FIFO read first rearranges the bytes as shown in Figure 4, then outputs the bytes as shown in Figure 2. PORT-B MAIL REGISTER ACCESS In addition to selecting port B bus sizes for FIFO reads, the port B bus Size select (SIZ0, SIZ1) inputs also access the mail registers. When both SIZ0 and SIZ1 are HIGH, the mail1 register is accessed for a port B long-word read and the mail2 register is accessed for a port B long-word write. The mail register is accessed immediately and any bus-sizing operation that can be underway is unaffected by the mail register access. After the mail register access is complete, the previous FIFO access can resume in the next CLKB cycle. The logic diagram in Figure 3 shows the previous bus-size selection is preserved when the mail registers are accessed from port B. A port B bus-size is implemented on each rising CLKB edge according to the states of SIZ0_Q, SIZ1_Q, and BE_Q. PARITY CHECKING The port A data inputs (A0-A35) and port B data inputs (B0-B35) each have four parity trees to check the parity of incoming (or outgoing) data. A parity failure on one or more bytes of the port A data bus is reported by a low level on the port A Parity Error Flag (PEFA). A parity failure on one or more bytes of the port B data inputs that are valid for the bus-size implementation is reported by a low level on the port B Parity Error Flag (PEFB). Odd or Even parity checking can be selected, 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/Even parity (ODD/EVEN) select input. A parity error on one or more valid bytes of a port is reported by a LOW level on the corresponding port Parity Error Flag (PEFA, PEFB) output. Port A bytes are arranged as A0-A8, A9-A17, A18-A26, and A27-A35, and port B bytes are arranged as B0-B8, B9B17, B18-B26, and B27-B35, and its valid bytes are those used in a port B bus size implementation. When Odd/Even parity 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 its bits. The four parity trees used to check the A0-A35 inputs are shared by the mail2 register when parity generation is selected for port-A reads (PGA = HIGH). When a port A read from the mail2 register with parity generation is selected with CSA LOW, ENA HIGH, W/RA LOW, MBA HIGH, and PGA HIGH, the port A Parity Error Flag (PEFA) is held HIGH regardless of the levels applied to the A0-A35 inputs. Likewise, the parity trees used to check the B0-B35 inputs are shared by the mail1 register when parity generation is selected for port B reads (PGB = HIGH). When a port B read from the mail1 register with parity generation is selected with CSB LOW, ENB HIGH, W/RB LOW, both SIZ0 and SIZ1 HIGH, and PGB HIGH, the port B Parity Error Flag (PEFB) is held HIGH regardless of the levels applied to the B0-B35 inputs. PARITY GENERATION A HIGH level on the port A Parity Generate select (PGA) or port B Parity Generate select (PGB) enables the IDT723613 to generate parity bits for port reads from a FIFO or mailbox register. Port A bytes are arranged as A0A8, A9-A17, A18-A26, 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 nine inputs of a byte 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 select have setup and hold time 12 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 BYTE ORDER ON PORT A: BE X SIZ1 L SIZ0 L COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES A35A27 A26A18 A B B35 B27 B26 B18 A B A17A9 A8A0 D C B17B9 Write to FIFO B8B0 D C Read from FIFO (a) LONG WORD SIZE BE L SIZ1 L SIZ0 H B35B27 B26B18 A B B35B27 B26B18 C D B17B9 B8B0 1st: Read from FIFO B17B9 B8B0 2nd: Read from FIFO (b) WORD SIZE BIG-ENDIAN BE H B35B27 B26B18 SIZ1 SIZ0 L H B35B27 B26B18 B17B9 B8B0 C D B17B9 B8B0 A B 1st: Read from FIFO 2nd: Read from FIFO (c) WORD SIZE LITTLE-ENDIAN BE L B35B27 SIZ1 H SIZ0 L B26B18 B17B9 B8B0 A B35B27 1st: Read from FIFO B26B18 B17B9 B8B0 2nd: Read from FIFO B B35B27 B26B18 B17B9 B8B0 C B35B27 3rd: Read from FIFO B26B18 B17B9 B8B0 D 4th: Read from FIFO (d) BYTE SIZE BIG-ENDIAN BE H SIZ1 H SIZ0 L B35B27 B26B18 B17B9 B8B0 D B35B27 B26B18 B17B9 B8B0 C A35A27 A26A18 A17A9 B26B18 B17B9 2nd: Read from FIFO A8A0 B B35B27 1st: Read from FIFO 3rd: Read from FIFO B8B0 A 4th: Read from FIFO (d) BYTE SIZE LITTLE-ENDIAN 3145 fig01 Figure 2. Dynamic Bus Sizing 13 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 constraints to the port B Clock (CLKB). These timing constraints only apply for a rising clock edge used to read a new long 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 Chip Select (CSA, CSB) is LOW, Enable (ENA, ENB) is HIGH, and Write/Read select (W/RA, W/RB) input is LOW, the mail register is selected (MBA HIGH for port A; both SIZ0 and SIZ1 are HIGH for port B), and port Parity Generate select (PGA, PGB) is HIGH. Generating parity for mail register data does not change the contents of the register. CLKB G1 SIZ0 SIZ1 BE •• MUX 1 D Q 1 • • • 3145 fig02 Figure 3. Logic Diagram for SIZ0, SIZ1, and BE Register 14 SIZ0 Q SIZ1 Q BE Q IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 SW1 L L SW0 L L COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES A35A27 A26A18 A17A9 A8A0 A B C D A B C D B26B18 B17B9 B8B0 B35B27 (a) NO SWAP SW1 SW0 L H A35A27 A26A18 A17A9 A8A0 A B C D D C B A B26B18 B17B9 B8B0 B35B27 (b) BYTE SWAP SW1 SW0 H L A35A27 A26A18 A17A9 A8A0 A B C D C D A B B35B27 B26B18 B17B9 B8B0 (c) WORD SWAP SW1 SW0 H H A35A27 A26A18 A17A9 A8A0 A B C D B A D C 3145 fig03 (d) BYTE-WORD SWAP Figure 4. Byte Swapping for FIFO Reads (Long-Word Size Example) 15 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 CLKA tRSTH CLKB tRSTS tFSS tFSH RST FS1,FS0 0,1 tWFF tWFF FF tREF EF tPAE AE tPAF AF tRSF MBF1, MBF2 3145 drw05 Figure 5. Device Reset Loading the X Register with the Value of Eight tCLKH tCLK tCLKL CLKA FFA HIGH tENS tENH tENS tENH tENS tENH tENS tENH tDS W1 (1) tDH CSA W/RA MBA tENS tENH tENS tENH ENA A0 - A35 ODD/ EVEN PEFA W2 (1) tPDPE No Operation tPDPE Valid Valid 3145 drw06 NOTE: 1. Written to the FIFO. Figure 6. FIFO Write Cycle Timing 16 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES CLKB EF HIGH CSB W/RB tENS tENH tSWS tSWH tENH tENS ENB SW1, SW0 tSZS No Operation tSZH BE SIZ1, SIZ0 tSZS (0,0) tSZH (0,0) NOT (1,1)(1) tPGS PGB, ODD/ EVEN tEN NOT (1,1)(1) tPGH tA Previous Data B0-B35 tDIS tA W1(2) W2(2) 3145 drw07 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B 0-B35. 2. Data read from FIFO1. DATA SWAP TABLE FOR FIFO LONG-WORD READS FIFO Data Write A35-A27 Swap Mode FIFO Data Read A26-A18 A17-A9 A8-A0 SW1 SW0 B35-B27 B26-B18 B17-B9 B8-B0 A B C D L L A B C D A B C D L H D C B A A B C D H L C D A B A B C D H H B A D C Figure 7. FIFO Long-Word Read Cycle Timing 17 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 CLKB EF HIGH CSB W/RB tENS tENH tSWS tSWH ENB SW1, SW0 tSZS tSZH tSZS (0,1) tSZH No Operation BE SIZ1, SIZ0 PGB, ODD/ EVEN Little Endian (2) Big Endian (2) (0,1) NOT (1,1) (1) tPGS NOT (1,1) (1) tPGH tEN B0-B17 tA Previous Data B18-B35 tA Previous Data tA tDIS Read 1 Read 2 tA tDIS Read 1 Read 2 3145 drw08 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B 0-B35. 2. Unused word B0-B17 or B18-B35 holds last FIFO1 output register data for word-size reads. DATA SWAP TABLE FOR FIFO WORD READS FIFO Data Write Swap Mode FIFO Data Read Read No. A35-A27 A26-A18 A17-A9 A8-A0 SW1 SW0 A B C D L L 1 2 A B C D L H A B C D H A B C D H Big-Endian B35-B27 Little-Endian B26-B18 B17-B9 B8-B0 A C B D C A D B 1 2 D B C A B D A C L 1 2 C A D B A C B D H 1 2 B D A C D B C A Figure 8. FIFO Word Read-Cycle Timing 18 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES CLKB EF HIGH CSB W/RB tENS tENH tSWS tSWH ENB No Operation SW1, SW0 tSZS tSZH BE tSZS SIZ1, SIZ0 tSZH (1,0) (1,0) PGB, ODD/ EVEN tEN B0-B8 Not (1,1) (1) tA Read 1 tA Previous Data tA B27-B35 Not (1,1) (1) (1,0) (1,0) Not (1,1) (1) tPGH Not (1,1)(1) tPGS Read 2 tA Read 3 tA Read 1 Previous Data Read 2 tDIS tA tA Read 4 tDIS tA Read 4 Read 3 3145 drw09 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B 0-B35. 2. Unused bytes hold last FIFO output register data for byte-size reads. DATA SWAP TABLE FOR FIFO BYTE READS FIFO Data Read FIFO Data Write A35-A27 A A A A A26-A18 B B B B Swap Mode A17-A9 C C C C A8-A0 SW1 D L D L D H D H Read No. SW0 L H L H Figure 9. FIFO Byte Read-Cycle Timing 19 BigEndian LittleEndian B35-B27 B8-B0 1 2 3 4 A B C D D C B A 1 2 3 4 D C B A A B C D 1 2 3 4 C D A B B A D C 1 2 3 4 B A D C C D A B COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 tCLK tCLKH tCLKL CLKA CSA LOW WRA HIGH tENS tENH tENS tENH tDS tDH MBA ENA FF HIGH A0 - A35 W1 tSKEW1(1) CLKB tCLKH 1 tCLK tCLKL 2 tREF EF tREF FIFO Empty CSB LOW W/RB LOW SIZ1, LOW SIZ0 tENS tENH ENB tA W1 B0 -B35 3145 drw10 NOTES: 1. tSKEW1 is the minimum time between a rising CLKA edge and a rising CLKB edge for EF to transition HIGH in the next CLKB cycle. If the time between the rising CLKA edge and rising CLKB edge is less than tSKEW1, then the transition of EF HIGH may occur one CLKB cycle later than shown. 2. Port B size of long word is selected for the FIFO read by SIZ1 = LOW, SIZ0 = LOW. If port-B size is word or byte, EF is set LOW by the last word or byte read from the FIFO, respectively. Figure 10. EF Flag Timing and First Data Read when the FIFO is Empty 20 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 tCLKH tCLK COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES tCLKL CLKB CSB LOW W/RB LOW SIZ1, LOW SIZ0 tENH tENS ENB EF HIGH B0 -B35 tA Previous Word in FIFO Output Register Next Word From FIFO tSKEW1(1) tCLKH tCLK tCLKL 1 CLKA 2 tWFF tWFF FF FIFO Full CSA LOW WRA HIGH tENS tENH tENS tENH tDS tDH MBA ENA A0 - A35 To FIFO 3145 drw11 NOTES: 1. tSKEW1 is the minimum time between a rising CLKB edge and a rising CLKA edge for EF to transition HIGH in the next CLKA cycle. If the time between the rising CLKB edge and rising CLKA edge is less than tSKEW1, then the transition of EF HIGH may occur one CLKA cycle later than shown. 2. Port B size of long word is selected for the FIFO read by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, tSKEW1 is referenced from the rising CLKB edge that reads the last word or byte of the long word, respectively. Figure 11. FF Flag Timing and First Available Write when the FIFO is Full CLKA tENS tENH ENA tSKEW2(1) CLKB 1 2 tPAE AE X Long Words in FIFO tPAE (X+1) Long Words in FIFO tENH tENS ENB 3145 drw12 NOTES: 1. tSKEW2 is the minimum time between a rising CLKA edge and a rising CLKB edge for AE to transition HIGH in the next CLKB cycle. If the time between the rising CLKA edge and rising CLKB edge is less than tSKEW2, then AE may transition HIGH one CLKB cycle later than shown. 2. FIFO write (CSA = LOW, W/RA = HIGH, MBA = LOW), FIFO read (CSB = LOW, W/RB = LOW, MBB = LOW). 3. Port B size of long word is selected for the FIFO read by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, t SKEW2 is referenced to the last word or byte of the long word, respectively. Figure 12. Timing for AE when the FIFO is Almost-Empty 21 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 tSKEW2(1) 1 CLKA tENS 2 tENH ENA tPAF tPAF AF (64-X) Long Words in FIFO [64-(X+1)] Long Words in FIFO CLKB tENH tENS ENB 3145 drw13 NOTES: 1. tSKEW2 is the minimum time between a rising CLKA edge and a rising CLKB edge for AF to transition HIGH in the next CLKA cycle. If the time between the rising CLKA edge and rising CLKB edge is less than tSKEW2, then AF may transition HIGH one CLKB cycle later than shown. 2. FIFO write (CSA = L0W, W/RA = HIGH, MBA = LOW), FIFO read (CSB = LOW, W/RB = LOW, MBB = LOW). 3. Port-B size of long word is selected for FIFO read by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, t SKEW2 is referenced from the last word or byte read of the long word, respectively. Figure 13. Timing for AF when the FIFO is Almost Full CLKA CSA tENS tENH tENS tENH tENS tENH tENS tENH W/RA MBA ENA tDS W1 A0 - A35 tDH CLKB tPMF tPMF MBF1 CSB W/RB SIZ1, SIZ0 tENS tENH ENB tEN B0 - B35 tMDV FIFO Output Register tPMR tDIS W1 (Remains valid in Mail1 Register after read) 4661 drw14 NOTE: 1. Port-B parity generation off (PGB = LOW). Figure 14. Timing for Mail1 Register and MBF1 Flag 22 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES CLKB CSB tENS tENH tENS tENH tSZS tSZH W/RB SIZ1, SIZ0 tENS tENH ENB tDS W1 B0 - B35 tDH CLKA tPMF tPMF MBF2 CSA W/RA MBA tENS tENH ENA tEN tPMR tDIS W1 (Remains valid in Mail2 Register after read) A0 - A35 3145 drw15 NOTE: 1. Port-A parity generation off (PGA = LOW). Figure 15. Timing for Mail2 Register and MBF2 Flag ODD/ EVEN W/RA MBA PGA PEFA Valid tPEPE tPOPE tPOPE Valid tPEPE Valid Valid 3145 drw16 NOTE: 1. CSA = LOW and ENA = HIGH. Figure 16. ODD/EVEN, W/RA, MBA, and PGA to PEFA Timing ODD/ EVEN W/RB SIZ1, SIZ0 PGB tPOPE PEFB Valid tPEPE tPOPE Valid Valid tPEPE Valid 3145 drw17 NOTE: 1. CSB = LOW and ENB = HIGH. Figure 17. ODD/EVEN, W/RB, SIZ1, SIZ0, and PGB to PEFB Timing 23 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 ODD/ EVEN CSA LOW W/RA MBA PGA tEN A8, A17, A26, A35 tPEPB tPOPB Generated Parity Mail2 Data tPEPB Generated Parity Mail2 Data 3145 drw18 NOTE: 1. ENA = HIGH. Figure 18. Parity Generation Timing when Reading from the Mail2 Register ODD/ EVEN CSB LOW W/RB SIZ1, SIZ0 PGB tEN B8, B17, B26, B35 NOTE: 1. ENB = HIGH. tPEPB tMDV tPOPB Generated Parity tPEPB Generated Parity Mail1 Data Mail1 Data 3145 drw19 Figure 19. Parity Generation Timing when Reading from the Mail1 Register 24 IDT723613 CMOS CLOCKED FIFO WITH BUS-MATCHING AND BYTE SWAPPING 64 x 36 COMMERCIAL AND INDUSTRIAL TEMPERATURE RANGES PARAMETER MEASUREMENT INFORMATION 5V 1.1kΩ From Output Under Test 30 pF (1) 680Ω PROPAGATION DELAY LOAD CIRCUIT 3V Timing Input 1.5 V GND tS 3V High-Level Input 1.5 V th 3V Data, Enable Input 3V Low-Level Input GND VOLTAGE WAVEFORMS SETUP AND HOLD TIMES 1.5 V 1.5 V GND VOLTAGE WAVEFORMS PULSE DURATIONS 3V Output Enable 1.5 V tPLZ 1.5 V GND tPZL ≈3 V Input 1.5 V Low-Level Output VOL tPZH VOH High-Level Output GND tW 1.5 V 1.5 V 1.5 V 1.5 V tPHZ 3V 1.5 V 1.5 V tPD tPD GND VOH In-Phase Output 1.5 V 1.5 V ≈ OV VOLTAGE WAVEFORMS ENABLE AND DISABLE TIMES VOLTAGE WAVEFORMS PROPAGATION DELAY TIMES Figure 20. Load Circuit and Voltage Waveforms 25 VOL 3145 drw20 ORDERING INFORMATION IDT XXXXXX Device Type X Power XX Speed X Package X Process/ Temperature Range BLANK I(1) Commercial (0°C to +70°C) Industrial (40°C to +85°C) PF PQF Thin Quad Flat Pack (TQFP, PN120-1) Plastic Quad Flat Pack (PQFP, PQ132-1) 15 20 Commercial Only Com’l & Ind’l L Low Power 723613 64 x 36 SyncFIFO Clock Cycle Time (tCLK) Speed in Nanoseconds 3145 drw21 NOTE: 1. Industrial temperature range product for 20ns speed grade is available as a standard device. All other speed grades are available by special order. DATASHEET DOCUMENT HISTORY 03/05/2002 pgs. 1, 6, 8, 9, 24 and 26. CORPORATE HEADQUARTERS 2975 Stender Way Santa Clara, CA 95054 for SALES: 800-345-7015 or 408-727-6116 fax: 408-492-8674 www.idt.com 26 for Tech Support: e-mail: [email protected]