CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 IDT723614 Integrated Device Technology, Inc. • • • • • • • • • Microprocessor interface control logic EFA, FFA, AEA, and AFA flags synchronized by CLKA EFB, FFB, AEB, and AFB flags synchronized by CLKB Passive parity checking on each port Parity generation can be selected for each port Low-power advanced BiCMOS technology Supports clock frequencies up to 67 MHz Fast access times of 10 ns Available in 132-pin plastic quad flat package (PQF) or space-saving 120-pin thin quad flat package (TQFP) • Industrial temperature range (-40°C to +85°C) is available, tested to military electrical specifications FEATURES: • Free-running CLKA and CLKB can be asynchronous or coincident (simultaneous reading and writing of data on a single clock edge is permitted) • Two independent clocked FIFOs (64 x 36 storage capacity each) buffering data in opposite directions • Mailbox bypass Register for each FIFO • 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 FUNCTIONAL BLOCK DIAGRAM CLKA Port-A Control Logic MBF1 Write Pointer FFA AFA Output Register 36 Read Pointer EFB AEB Status Flag Logic FIFO1 36 FS0 FS1 A0 - A35 Programmable Flag Offset Register B0-B35 FIFO2 EFA AEA FFB AFB Status Flag Logic Parity Generation Output Register Read Pointer 64 x 36 SRAM PGA Parity Gen/Check PEFA Write Pointer 36 Input Register EVEN Device Control Bus Matching & Byte Swapping ODD/ PGB Parity Generation RST Input Register Mail 1 Register 64 x 36 SRAM PEFB Parity Gen/Check Byte Matching & Byte Swapping CSA W/RA ENA MBA Mail 2 Register Port-B Control Logic MBF2 CLKB CSB W/RB ENB BE SIZ0 SIZ1 SW0 SW1 3146 drw 01 The IDT logo is a registered trademark and SyncBiFIFO is a trademark of Integrated Device Technology, Inc. COMMERCIAL TEMPERATURE RANGE 1997 Integrated Device Technology, Inc For latest information contact IDT's web site at www.idt.com or fax-on-demand at 408-492-8391. MAY 1997 DSC-3146/4 1 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 DESCRIPTION: COMMERCIAL TEMPERATURE RANGE with any bus size selection. 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. Parity is checked passively 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 can be used in parallel to create wider data paths. The IDT723614 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 continuous (free-running) port clock by enable signals. The clocks for each port are independent of one another and can be asyn- The IDT723614 is a monolithic, high-speed, low-power BiCMOS bidirectional clocked FIFO memory. It supports clock frequencies up to 67MHz and has read access times as fast as 10ns. Two independent 64 x 36 dual-port SRAM FIFOs on board 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. FIFO data on port B can be input and 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 CSB FFB AFB PGB VCC W/RB CLKB ENB GND PEFB MBF1 SW1 SW0 SIZ1 SIZ0 GND BE RST ENA CLKA W/R A VCC PGA PEFA GND MBF2 * 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 GND AEB EFB 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 VCC A24 A25 A26 GND A27 A28 A29 VCC A30 A31 A32 GND A33 A 34 A35 GND B35 B34 B33 GND B32 B31 B 30 VCC B29 B28 B27 GND B26 B25 B24 VCC 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 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 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 AFA FFA CSA AEA EFA 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 GND MBA FS1 FS0 ODD/EVEN PIN CONFIGURATIONS 3146 drw 02 * Electrical pin 1 in center of beveled edge. Pin 1 identifier in corner. PQFP (PQ132-1, order code: PQF) TOP VIEW NOTES: 1. NC - No internal connection. 2. Uses Yamaichi socket IC51-1324-828. 2 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE writes data to its array. The empty flag (EFA, EFB) and almostempty (AEA, AEB) flag of a FIFO are two stage synchronized to the port clock that reads data from its array. The IDT723614 is characterized for operation from 0°C to 70°C. chronous or coincident. The enables for each port are arranged to provide a simple bidirectional interface between microprocessors and/or buses controlled by a synchronous interface. The full flag (FFA, FFB) and almost-full flag (AFA, AFB) of a FIFO are two-stage synchronized to the port clock that 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 (CONT.) 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 EFB AEB AFB CSB FFB PGB VCC W/RB CLKB ENB MBF1 PEFB BE SW1 SW0 SIZ1 SIZ0 GND RST ODD/EVEN PEFA MBF2 ENA CLKA W/RA VCC PGA MBA FS1 FS0 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 EFA AEA 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 AFA FFA CSA 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 3146 drw 03 TQFP (PN120-1, order code: PF) TOP VIEW 3 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE PIN DESCRIPTION Symbol Name A0-A35 Port A Data AEA AEB AFA AFB B0-B35 BE Port A Almost-Empty Flag Port B Almost-Empty Flag Port A Almost-Full Flag Port B Almost-Full Flag Port B Data. Big-endian select I/O I/O Description 36-bit bidirectional data port for side A. O Programmable almost-empty flag synchronized to CLKA. It is LOW when (Port A) the number of 36-bit words in FIFO2 is less than or equal to the value in the offset register, X. O Programmable almost-empty flag synchronized to CLKB. It is LOW when the (Port B) number of 36-bit words in FIFO1 is less than or equal to the value in the offset register, X. O Programmable almost-full flag synchronized to CLKA. It is LOW when the (Port A) number of 36-bit empty locations in FIFO1 is less than or equal to the value in the offset register, X. O Programmable almost-full flag synchronized to CLKB. It is LOW when the (Port B) number of 36-bit empty locations in FIFO2 is less than or equal to the value in the offset register, X. I/O I CLKA Port A Clock I CLKB Port B Clock I CSA Port A Chip Select I CSB Port B Chip Select I EFA Port A Empty Flag EFB Port B Empty Flag ENA Port A Enable ENB Port B Enable FFA Port A Full Flag FFB Port B Full Flag 36-bit bidirectional data port for side B. Selects the bytes on port B used during byte or word data transfer. A LOW on BE selects the most significant bytes on B0-B35 for use, and a HIGH selects the least significant bytes CLKA is a continuous clock that synchronizes all data transfers through port A and can be asynchronous or coincident to CLKB. EFA, FFA, AFA, and AEA are synchronized to the LOW-to-HIGH transition of CLKA. 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. EFB, FFB, AFB, and AEB are synchronized to the LOW-to-HIGH transition of CLKB. 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 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. O EFA is synchronized to the LOW-to-HIGH transition of CLKA. When EFA is (Port A) LOW, FIFO2 is empty, and reads from its memory are disabled. Data can be read from FIFO2 to the output register when EFA is HIGH. EFA is forced LOW when the device is reset and is set HIGH by the second LOW-to-HIGH transition of CLKA after data is loaded into empty FIFO2 memory. O EFB is synchronized to the LOW-to-HIGH transition of CLKB. When EFB is (Port B) LOW, the FIFO1 is empty, and reads from its memory are disabled. Data can be read from FIFO1 to the output register when EFB is HIGH. EFB 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 FIFO1 memory. I ENA must be HIGH to enable a LOW-to-HIGH transition of CLKA to read or write data on port A. I ENB must be HIGH to enable a LOW-to-HIGH transition of CLKB to read or write data on port B. O FFA is synchronized to the LOW-to-HIGH transition of CLKA. When FFA is (Port A) LOW, FIFO1 is full, and writes to its memory are disabled. FFA is forced LOW when the device is reset and is set HIGH by the second LOW-to-HIGH transition of CLKA after reset. O FFB is synchronized to the LOW-to-HIGH transition of CLKB. When FFB is (Port B) LOW, FIFO2 is full, and writes to its memory are disabled. FFB is forced LOW when the device is reset and is set HIGH by the second LOW-to-HIGH transition of CLKB after reset. 4 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE PIN DESCRIPTION (CONTINUED) Symbol Name `FS1, FS0 Flag-Offset Selects MBA I/O I Port A Mailbox Select I MBF1 Mail1 Register Flag O MBF2 Mail2 Register Flag O Odd/Even Parity Select I ODD/ EVEN PEFA PEFB Port A Parity Error Flag Port B Parity Error Flag PGA Port A Parity Generation PGB Port B Parity Generation RST Reset SIZ0, SIZ1 Port B bus size selects Description The LOW-to-HIGH transition of RST latches the values of FS0 and FS1, which selects one of four preset values for the almost-full flag and almost-empty flag offset. 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. 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 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 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 readoperation. O When any byte applied to terminals A0-A35 fails parity, PEFA is LOW. Bytes are (Port A) organized as A0-A8, A9-A17, A18-A26, and A27-A35, with the most significant bit of each byte serving as the parity bit. The type of parity checked is deter mined 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 parity generation is setup by having W/RA LOW, MBA HIGH, and PGA HIGH, the PEFA flag is forced HIGH regardless of the A0-A35 inputs. O When any valid byte applied to terminals B0-B35 fails parity, PEFB is LOW. Bytes (Port B) are organized as B0-B8, B9-B17, B18-B26, 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 sharedby the mail 1 register to generate parity if parity generation isselected by PGB. Therefore, if a mail1 read with parity generation is setup by having 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. I Parity is generated for data reads from port A when PGA is HIGH. The type of parity generated is selected by the state of the ODD/EVEN input. Bytes are organized as A0-A8, A9-A17, A18-A26, and A27-A35. The generated parity bits are output in the most significant bit of each byte. 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. I To reset the device, four LOW-to-HIGH transitions of CLKA and four LOW-toHIGH transitions of CLKB must occur while RST is LOW. This sets the AFA, AFB, MBF1, and MBF2 flags HIGH and the EFA, EFB, AEA, AEB, FFA, and FFB flags LOW. The LOW-to-HIGH transition of RST latches the status of the FS1 and FS0 inputs to select almost-full and almost-empty flag offsets I A LOW-to-HIGH transition of CLKB latches the states of SIZ0, SIZ1, and BE, and (Port B) 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 reegisters for a port B 36-bit write or read. 5 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE PIN DESCRIPTION (CONTINUED) Symbol Name SW0, SW1 Port B byte swap Select W/RA W/RB Port A Write/Read Select Port B Write/Read Select I/O Description I At the beginning of each long word transfer, one of four modes of byte-order (Port B) 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. 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. 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. SIGNAL DESCRIPTIONS RESET The IDT723614 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 each FIFO and forces the full flags (FFA, FFB) LOW, the empty flags (EFA, EFB) LOW, the almost-empty flags (AEA, AEB) LOW and the almost-full flags (AFA, AFB) HIGH. A reset also forces the mailbox flags (MBF1, MBF2) HIGH. After a reset, FFA is set HIGH after two LOW-to-HIGH transitions of CLKA and FFB is set HIGH after two LOW-to-HIGH transitions of CLKB. 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 values selected by the flag-select (FS0, FS1) inputs. The values that can be loaded into the registers are shown in Table 1. FIFO WRITE/READ OPERATION The state of 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 FIFO1 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. 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 EFA is HIGH (see Table 2). The port B control signals are identical to those of port A. 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 loaded into FIFO2 from the B0-B35 inputs on a LOW-to-HIGH transition of CLKB when CSB is LOW, W/RB is HIGH, ENB is HIGH, EFB is HIGH, and either SIZ0 or SIZ1 is LOW. 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 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 chip select and write/read select can change states during the setup and hold time window of the cycle. SYNCHRONIZED FIFO FLAGS Each FIFO is synchronized to its port clock through two flip-flop stages. This is done to improve flag reliability by reducing the probability of metastable events on the output when CLKA and CLKB operate asynchronously to one another. EFA, AEA, FFA, and AFA are synchronized to CLKA. EFB, AEB, FFB, and AFB are synchronized to CLKB. Tables 4 and 5 show the relationship of each port flag to FIFO1 and FIFO2. EMPTY FLAGS (EFA, EFB) The empty flag of a FIFO is synchronized to the port clock that reads data from its array. When the empty flag is HIGH, new data can be read to the FIFO output register. When the empty flag is LOW, the FIFO is empty and attempted FIFO reads are ignored. When reading FIFO1 with a byte or word size on port B, EFB is set LOW when the fourth byte or second word of the last long word is read. The read pointer of a FIFO is incremented each time a new word is clocked to the output register. The state machine that controls an empty flag monitors a write-pointer and readpointer comparator that indicates when the FIFO SRAM status is empty, empty+1, or empty+2. A word written to a FIFO can be read to the FIFO output register in a minimum of three cycles of the empty flag synchronizing clock. Therefore, an empty flag is LOW if a word in memory is the next data to be sent to the FIFO output register and two cycles of the port 6 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 clock that reads data from the FIFO have not elapsed since the time the word was written. The empty flag of the FIFO is set HIGH by the second LOW-to-HIGH transition of the synchronizing clock, and the new data word can be read to the FIFO output register in the following cycle. A LOW-to-HIGH transition on an empty flag synchronizing clock begins the first synchronization cycle of a write if the clock transition occurs at time tSKEW1 or greater after the write. Otherwise, the subsequent clock cycle can be the first synchronization cycle (see Figure 13 and 14). 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 COMMERCIAL TEMPERATURE RANGE FULL FLAG (FFA, FFB) The full flag of a FIFO is synchronized to the port clock that writes data to its array. When the full flag is HIGH, a memory location is free in the SRAM to receive new data. No memory locations are free when the full flag is LOW and attempted writes to the FIFO are ignored. Each time a word is written to a FIFO, the write pointer is incremented. The state machine that controls a full 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, the previous memory location is ready to be written in a minimum of three cycles of the full flag synchronizing clock. Therefore, a full flag is LOW if less than two cycles of the full flag synchronizing clock have elapsed since the next memory write location has been read. The second LOW-to-HIGH transition on the full flag synchronization clock after the read sets the full flag HIGH and the data can be written in the following clock cycle. A LOW-to-HIGH transition on a full flag synchronizing clock 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 15 and 16). TABLE 2: PORT-A ENABLE FUNCTION TABLE CSA W/RA ENA MBA CLKA A0-A35 Outputs Port Functions 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 FIFO1 Write L H H H ↑ In High-Impedance State Mail1 Write L L L L X Active, FIFO2 Output Register None L L H L ↑ Active, FIFO2 Output Register FIFO2 Read L L L H X Active, Mail2 Register None L L H H ↑ Active, Mail2 Register Mail2 Read (Set MBF2 HIGH) TABLE 3: PORT-B ENABLE FUNCTION TABLE CSB W/RB ENB SIZ1, SIZ0 CLKB B0-B35 Outputs Port Functions 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 FIFO2 Write L H H Both HIGH ↑ In High-Impedance State Mail2 Write L L L One, both LOW X Active, FIFO1 Output Register None L L H One, both LOW ↑ Active, FIFO1 Output Register FIFO1 read L L L Both HIGH X Active, Mail1 Register None L L H Both HIGH ↑ Active, Mail1 Register Mail1 Read (Set MBF1 HIGH) 7 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 ALMOST EMPTY FLAGS (AEA, AEB) The almost-empty flag of a FIFO is synchronized to the port clock that reads data from its array. The state machine that controls an almost-empty flag monitors a write-pointer and a 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). An almost-empty 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 of the almost-empty flag synchronizing clock are required after a FIFO write for the almost-empty flag to reflect the new level of fill. Therefore, the almost-empty flag of a FIFO containing (X+1) or more long words remains LOW if two cycles of the synchronizing clock have not elapsed since the write that filled the memory to the (X+1) level. An almost-empty flag is set HIGH by the second LOW-to-HIGH transition of the synchronizing clock after the FIFO write that fills memory to the (X+1) level. A LOW-toHIGH transition of an almost-empty flag synchronizing clock 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 synchronizing clock cycle can be the first synchronization cycle (see Figure 17 and 18). COMMERCIAL TEMPERATURE RANGE more long words in memory and is HIGH when the FIFO contains [64-(X+1)] or less long words. Two LOW-to-HIGH transitions of the almost-full flag synchronizing clock are required after a FIFO read for the almost-full flag to reflect the new level of fill. Therefore, the almost-full flag of a FIFO containing [64-(X+1)] or less words remains LOW if two cycles of the synchronizing clock have not elapsed since the read that reduced the number of long words in memory to [64-(X+1)]. An almost-full flag is set HIGH by the second LOW-to-HIGH transition of the synchronizing clock after the FIFO read that reduces the number of long words in memory to [64-(X+1)]. A LOW-to-HIGH transition of an almost-full flag synchronizing clock 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 synchronizing clock cycle can be the first synchronization cycle (see Figure 19 and 20). ALMOST FULL FLAGS (AFA, AFB) The almost-full flag of a FIFO is synchronized to the port clock that writes data to its array. The state machine that controls an almost-full flag monitors a write-pointer and readpointer comparator that indicates when the FIFO SRAM status is almost full, almost full-1, or almost full-2. The almostfull state is defined by the value of the almost-full and almostempty offset register (X). This register is loaded with one of four preset values during a device reset (see Reset above). An almost-full flag is LOW when the FIFO contains (64-X) or MAILBOX REGISTERS Each FIFO has a 36-bit bypass register to pass command and control information between port A and port B without putting it in queue. The mailbox-select (MBA, MBB) inputs choose between a mail register and a FIFO for a port data transfer operation. A LOW-to-HIGH transition on CLKA writes A0-A35 data to the mail1 register when a port A write is selected by CSA, W/RA, and ENA with MBA HIGH. A LOWto-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 with both SIZ1 and SIZ0 HIGH. Writing data to a mail register sets the corresponding flag (MBF1 or MBF2) LOW. Attempted writes to a mail register are ignored while the mail flag is LOW. When the port A data outputs (A0-A35) are active, the data on the bus comes from the FIFO2 output register when MBA is LOW and from the mail2 register when MBA is HIGH. When the port B data outputs (B0-B35) are active, the data on the bus comes from the FIFO1 output register when either one TABLE 4: FIFO1 FLAG OPERATION TABLE 5: FIFO2 FLAG OPERATION Synchronized Number of 36-Bit to CLKB Synchronized to CLKA Synchronized Number of 36-Bit to CLKA Synchronized to CLKB Words in the FIFO1(1) EFB AEB AFA FFA Words in the FIFO2(1) EFA AEA AFB FFB 0 L L H H 0 L L H H 1 to X H L H H 1 to X H L H H (X+1) to [64-(X+1)] H H H H (X+1) to [64-(X+1)] H H H H (64-X) to 63 H H L H (64-X) to 63 H H L H 64 H H L L 64 H H L L NOTE: 1. X is the value in the almost-empty flag and almost-full flag offset register. 8 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE ABSOLUTE MAXIMUM RATINGS OVER OPERATING FREE-AIR TEMPERATURE RANGE (UNLESS OTHERWISE NOTED)(1) Symbol VCC (2) VI VO (2) Rating Commercial Unit -0.5 to 7 V Input Voltage Range -0.5 to VCC+0.5 V Output Voltage Range -0.5 to VCC+0.5 V Supply Voltage Range IIK Input Clamp Current, (VI < 0 or VI > VCC) ±20 mA IOK Output Clamp Current, (VO < 0 or VO > VCC) ±50 mA IOUT Continuous Output Current, (VO = 0 to VCC) ±50 mA ICC Continuous Current Through VCC or GND ±500 mA TA Operating Free Air Temperature Range 0 to 70 °C TSTG 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 VCC Parameter Min. Supply Voltage 4.5 Max. Unit 5.5 V VIH HIGH Level Input Voltage 2 – V VIL LOW-Level Input Voltage – 0.8 V IOH HIGH-Level Output Current – -4 mA IOL LOW-Level Output Current – 8 mA TA Operating Free-air Temperature 0 70 °C ELECTRICAL CHARACTERISTICS OVER RECOMMENDED OPERATING FREE-AIR TEMPERATURE RANGE (UNLESS OTHERWISE NOTED) Parameter Test Conditions Min. 2.4 Typ.(1) Max. Unit VOH VCC = 4.5V, IOH = -4 mA V VOL VCC = 4.5 V, IOL = 8 mA 0.5 V II VCC = 5.5 V, VI = VCC or 0 ±50 µA IOZ VCC = 5.5 V, VO = VCC or 0 ±50 µA ICC VCC = 5.5 V, IO = 0 mA, 1 mA CIN VI = 0, f = 1 MHz 4 pF COUT VO = 0, f = 1 MHZ 8 pF VI = VCC or GND NOTE: 1 . All typical values are at VCC = 5 V, TA = 25°C. 9 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE DC ELECTRICAL CHARACTERISTICS OVER RECOMMENDED RANGES OF SUPPLY VOLTAGE AND OPERATING FREE-AIR TEMPERATURE (See Figures 4 through 26) Symbol IDT723614L15 IDT723614L20 IDT723614L30 Min. Max. Min. Max. Min. Max. Parameter fS Clock Frequency, CLKA or CLKB – tCLK Clock Cycle Time, CLKA or CLKB tCLKH Pulse Duration, CLKA and CLKB HIGH tCLKL tDS 66.7 – 15 – 20 – 30 – ns 6 – 8 – 12 – ns Pulse Duration, CLKA and CLKB LOW 6 – 8 – 12 – ns Setup Time, A0-A35 before CLKA↑ and B0-B35 before CLKB↑ 4 – 5 – 6 – ns 5 – 5 – 6 – ns Setup Time, CSA, W/RA, ENA and MBA before CLKA↑; CSB,W/RB and ENB before CLKB↑ tENS 50 – 33.4 Unit MHz tSZS Setup Time, SIZ0, SIZ1,and BE before CLKB↑ 4 – 5 – 6 – ns tSWS Setup Time, SW0 and SW1 before CLKB↑ 5 – 7 – 8 – ns tPGS Setup Time, ODD/EVEN and PGA before 4 – 5 – 6 – ns CLKA↑; ODD/EVEN and PGB before CLKB↑ (1) tRSTS Setup Time, RST LOW before CLKA↑ or CLKB↑(2) 5 – 6 – 7 – ns tFSS Setup Time, FS0 and FS1 before RST HIGH 5 – 6 – 7 – ns 1 – 1 – 1 – ns 1 – 1 – 1 – ns Hold Time, A0-A35 after CLKA↑ and B0-B35 after CLKB↑ tDH Hold Time, CSA, W/RA, ENA and MBA after CLKA↑; CSB, W/RB, and ENB after CLKB↑ tENH tSZH Hold Time, SIZ0, SIZ1, and BE after CLKB↑ 2 – 2 – 2 – ns tSWH Hold Time, SW0 and SW1 after CLKB↑ 0 – 0 – 0 – ns tPGH Hold Time, ODD/EVEN and PGA after CLKA↑; ODD/EVEN and PGB after CLKB↑(1) 0 – 0 – 0 – ns 5 – 6 – 7 – ns 4 – 4 – 4 – ns Skew Time, between CLKA↑ and CLKB↑ for EFA, EFB, FFA, and FFB 8 – 8 – 10 – ns tSKEW2(3) Skew Time, between CLKA↑ and CLKB↑ for AEA, AEB, AFA, and AFB 9 – 16 – 20 – ns Hold Time, RST LOW after CLKA↑ or CLKB↑(2) tRSTH Hold Time, FS0 and FS1 after RST HIGH tFSH tSKEW1 (3) NOTES: 1. Only applies for a clock edge that does a FIFO read. 2. Requirement to count the clock edge as one of at least four needed to reset a FIFO. 3. Skew time is not a timimg constraint for proper device operation and is only included to illustrate the timing relationship between CLKA cycle and CLKB cycle. 10 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE SWITCHING CHARACTERISTICS OVER RECOMMENDED RANGES OF SUPPLY VOLTAGE AND OPERATING FREE-AIR TEMPERATURE, CL = 30pF (See Figures 4 through 26) Symbol tA tWFF tREF tPAE tPAF tPMF tPMR tPPE(3) tMDV tPDPE tPOPE tPOPB(4) tPEPE tPEPB(4) tRSF tEN tDIS Parameter Access Time, CLKA↑ to A0-A35 and CLKB↑ to B0-B35 Propagation Delay Time, CLKA↑ to FFA and CLKB↑ to FFB Propagation Delay Time, CLKA↑ to EFA and and CLKB↑ to EFB Propagation Delay Time, CLKA↑ to AEA and CLKB↑ to AEB Propagation Delay Time, CLKA↑ to AFA and CLKB↑ to AFB Propagation Delay Time, CLKA↑ to MBF1 LOW or MBF2 HIGH and CLKB↑ to MBF2 LOW or MBF1 HIGH Propagation Delay Time, CLKA↑ to B0-B35(1) and CLKB↑ to A0-A35(2) Propagation delay time, CLKB↑ to PEFB Propagation Delay Time, MBA to A0-A35 valid and SIZ1, SIZ0 to B0-B35 valid Propagation Delay Time, A0-A35 valid to PEFA valid; B0-B35 valid to PEFB valid Propagation Delay Time, ODD/EVEN to PEFA and PEFB Propagation Delay Time, ODD/EVEN to parity bits (A8, A17, A26, A35) and (B8, B17, B26, B35) Propagation Delay Time, CSA, ENA,W/RA, MBA, or PGA to PEFA; CSB, ENB, W/RB, SIZ1, SIZ0, or PGB to PEFB 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) Propagation Delay Time, RST to (MBF1, MBF2) HIGH Enable Time, CSA and W/RA LOW to A0-A35 active and CSB LOW and W/RB HIGH to B0-B35 active 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 IDT723614L15 IDT723614L20 IDT723614L30 Min. Max. Min. Max. Min. Max. Unit 2 10 2 12 2 15 ns 2 10 2 12 2 15 ns 2 10 2 12 2 15 ns 2 10 2 12 2 15 ns 2 10 2 12 2 15 ns 1 9 1 12 1 15 ns 3 11 3 13 3 15 ns 2 11 2 12 2 13 ns 1 11 1 11. 5 1 12 ns 3 10 3 11 3 13 ns 3 11 3 12 3 14 ns 2 11 2 12 2 14 ns 1 11 1 12 1 14 ns 3 12 3 13 3 14 ns 1 15 1 20 1 30 ns 2 10 2 12 2 14 ns 1 8 1 9 1 11 ns NOTES: 1. Writing data to the mail1 register when the B0-B35 outputs are active and SIZ1, SIZ0 are HIGH. 2. Writing data to the mail2 register when the A0-A35 outputs are active and MBA is HIGH. 3. Only applies when a new port B bus size is implemented by the rising CLKB edge. 4. Only applies when reading data from a mail register. 11 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 A35—A27 BYTE ORDER ON PORT A: BE SIZ1 X L SIZ0 A26—A18 COMMERCIAL TEMPERATURE RANGE A17—A9 A8—A0 A B C D B35—B27 B26—B18 B17—B9 B8—B0 A B C D L Write to FIFO1/ Read From FIFO2 Read from FIFO1/ Write to FIFO2 (a) LONG WORD SIZE BE SIZ1 SIZ0 L L H B35—B27 B26—B18 A B B35—B27 B26—B18 C D B17—B9 B8—B0 1st: Read from FIFO1/ Write to FIFO2 B17—B9 B8—B0 2nd: Read from FIFO1/ Write to FIFO2 (b) WORD SIZE — BIG ENDIAN BE SIZ1 SIZ0 H L H B35—B27 B35—B27 B26—B18 B26—B18 B17—B9 B8—B0 C D B17—B9 B8—B0 A B 1st: Read from FIFO1/ Write to FIFO2 2nd: Read from FIFO1/ Write to FIFO2 (c) WORD SIZE — LITTLE ENDIAN B35—B27 BE SIZ1 SIZ0 L H L B26—B18 B17—B9 B8—B0 1st: Read from FIFO1/ Write to FIFO2 A B35—B27 B26—B18 B17—B9 B8—B0 2nd: Read from FIFO1/ Write to FIFO2 B B35—B27 B26—B18 B17—B9 B8—B0 3rd: Read from FIFO1/ Write to FIFO2 C B35—B27 B26—B18 B17—B9 B8—B0 4th: Read from FIFO1/ Write to FIFO2 D (d) BYTE SIZE — BIG ENDIAN 3146 drw fig 01 Figure 1. Dynamic Bus Sizing 12 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 BE H SIZ1 H SIZ0 L B35—B27 B26—B18 B17—B9 COMMERCIAL TEMPERATURE RANGE B8—B0 D B35—B27 B26—B18 B17—B9 B8—B0 C B35—B27 B26—B18 B17—B9 B26—B18 B17—B9 2nd: Read from FIFO1/ Write to FIFO2 B8—B0 B B35—B27 1st: Read from FIFO1/ Write to FIFO2 3rd: Read from FIFO1/ Write to FIFO2 B8—B0 A 4th: Read from FIFO1/ Write to FIFO2 (d) BYTE SIZE — LITTLE ENDIAN 3146 drw fig 01a Figure 1. Dynamic Bus Sizing (continued) DESCRIPTION (CONTINUED) or both SIZ1 and SIZ0 are LOW and from the mail2 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 is selected by CSB, W/RB, and ENB with both SIZ1 and SIZ0 HIGH. The mail2 register flag (MBF2) is set HIGH by a LOWto-HIGH transition on CLKA when port A read is selected by CSA, W/RA, and ENA and MBA is HIGH. The data in the 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 9-bit byte format for data read from FIFO1 or written to FIFO2. 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 1. Only 36-bit long-word data is written to or read from the two FIFO memories on the IDT723614. Bus-matching operations are done after data is read from the FIFO1 RAM and before data is written to the FIFO2 RAM. Port B bus sizing does not apply to mail register operations. BUS-MATCHING FIFO1 READS Data is read from the FIFO1 RAM in 36-bit long word increments. If a long word bus size is implemented, the entire long word immediately shifts to the FIFO1 output register. If byte or word size is implemented on port B, only the first one or two bytes appear on the selected portion of the FIFO1 output register, with the rest of the long word stored in auxiliary registers. In this case, subsequent FIFO1 reads with the same bus-size implementation output the rest of the long word to the FIFO1 output register in the order shown by Figure1. Each FIFO1 read with a new bus-size implementation automatically unloads data from the FIFO1 RAM to its output register and auxiliary registers. Therefore, implementing a new port B bus size and performing a FIFO1 read before all bytes or words stored in the auxiliary registers have been read results in a loss of the unread long word data. When reading data from FIFO1 in byte or word format, the unused B0-B35 outputs remain inactive but static, with the unused FIFO1 output register bits holding the last data value to decrease power consumption. BUS-MATCHING FIFO2 WRITES Data is written to the FIFO2 RAM in 36-bit long word increments. FIFO2 writes, with a long-word bus size, immediately store each long word in FIFO2 RAM. Data written to FIFO2 with a byte or word bus size stores the initial bytes or words in auxiliary registers. The CLKB rising edge that writes the fourth byte or the second word of long word to FIFO2 also stores the entire long word in FIFO2 RAM. The bytes are arranged in the manner shown in Figure 1. Each FIFO2 write with a new bus-size implementation resets the state machine that controls the data flow from the auxiliary registers to the FIFO2 RAM. Therefore, implementing a new bus size and performing a FIFO2 write before bytes or words stored in the auxiliary registers have been loaded to FIFO2 RAM results in a loss of data. 13 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 PORT-B MAIL REGISTER ACCESS In addition to selecting port-B bus sizes for FIFO reads and writes, 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 bussizing operation that may 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 2 shows the previous bussize 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. BYTE SWAPPING The byte-order arrangement of data read from FIFO1 or data written to FIFO2 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 FIFO1 or writes a new long word to FIFO2. The byte order chosen on the first byte or first word of a new long COMMERCIAL TEMPERATURE RANGE word read from FIFO1 or written to FIFO2 is maintained until the entire long word is transferred, regardless of the SW0 and SW1 states during subsequent writes or reads. Figure 3 is an example of the byte-order swapping available for long words. Performing a byte swap and bus size simultaneously for a FIFO1 read first rearranges the bytes as shown in Figure 3, then outputs the bytes as shown in Figure 1. Simultaneous bus-sizing and byte-swapping operations for FIFO2 writes, first loads the data according to Figure 1, then swaps the bytes as shown in Figure 3 when the long word is loaded to FIFO2 RAM. PARITY CHECKING The port A inputs (A0-A35) and port B 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 parity error flag (PEFA). A parity failure on one or more bytes of the port B data input 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, CLKB G1 MUX 1 SIZ0 SIZ1 BE •• 1 D Q • • • SIZ0 Q SIZ1 Q BE Q 3146 drw fig 02 Figure 2. Logic Diagrams for SIZ0, SIZ1, and BE Register 14 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 A35—A27 SW1 L L SW0 L L A26—A18 COMMERCIAL TEMPERATURE RANGE A17—A9 A8—A0 A B C D A B C D B35—B27 B26—B18 B17—B9 B8—B0 A17—A9 A8—A0 (a) NO SWAP A35—A27 SW1 SW0 L H A26—A18 A B C D D C B A B35—B27 B26—B18 B17—B9 B8—B0 (b) BYTE SWAP A35—A27 SW1 SW0 H L A26—A18 A17—A9 A8—A0 A B C D C D A B B35—B27 B26—B18 B17—B9 B8—B0 (c) WORD SWAP A35—A27 SW1 SW0 H H A26—A18 A17—A9 A8—A0 A B C D B A D C B35—B27 B26—B18 B17—B9 B8—B0 (d) BYTE-WORD SWAP 3146 drw fig 03 Figure 3. Byte Swapping (Long Word Size Example) 15 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 A18-A26, and A27-A35. Port B bytes are arranged as B0-B8, B9-B17, 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 the 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 IDT723614 to generate parity bits for port reads from a FIFO or mailbox register. Port A bytes are arranged as A0-A8, A9-A17, A1826, and A27-A35, with the most significant bit of each byte used as the parity bit. Port B bytes are arranged as B0-B8, B9B17, B18-B26, and B27-B35, with the most significant bit of COMMERCIAL TEMPERATURE RANGE 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 have setup and hold-time constraints to the port B clock (CLKB). These timing constraints only apply for a rising clock edge used to read a new 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, write/read select (W/RA, W/RB) input is LOW, the mail register is selected (MBA is 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. 16 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKA tRSTH CLKB tRSTS tFSS tFSH RST FS1,FS0 0,1 tWFF tWFF FFA tREF EFA tWFF FFB tREF EFB MBF1, MBF2 AEA AFA AEB AFB tWFF tRSF tPAE tPAF tPAE tPAF 3146 drw 04 Figure 4. Device Reset Loading the X Register with the Value of Eight 17 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKA FFA HIGH tENH tENS CSA tENS tENH tENS tENH tENS tENH W/RA MBA tENS tENH tENS tENH ENA tDH tDS A0 - A35 W1(1) No Operation W2(1) ODD/ EVEN PEFA tPDPE Valid tPDPE Valid 3146 drw 05 NOTE: 1. Written to FIFO1. Figure 5. Port-A Write Cycle Timing for FIFO1 18 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB FFB HIGH t ENS CSB t ENS W/RB t ENS tENH tSWS tSWH tENS tENH ENB SW1, SW0 BE tSZS tSZH tSZS SIZ1, SIZ0 tSZH (0,0) (0,0) tDS NOT (1,1)(1) tDH B0-B35 ODD/ EVEN tPPE PEFB tPDPE VALID VALID 3146 drw 06 NOTE: 1. SIZ0 = HIGH and SIZ1 = HIGH writes data to the mail2 register DATA SWAP TABLE FOR LONG-WORD WRITES TO FIFO2 SWAP MODE DATA WRITTEN TO FIFO2 DATA READ FROM FIFO2 SW1 SW0 B35-27 B26-18 B17-B9 B8-B0 A35-27 A26-A18 A17-A9 A8-A0 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 A B C D Figure 6. Port-B Long-Word Write Cycle Timing for FIFO2 19 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB FFB HIGH tENH tENS CSB tENS W/RB tENS tENH tSWS tSWH tENH tENS ENB SW1, SW0 tSZS tSZH tSZS tSZH tSZS tSZH tSZS tSZH BE SIZ1, SIZ0 Little Endian NOT (1,1) (1) (0, 1) (0, 1) tDS tDH tDS tDH B0-B17 Big Endian B18-B35 ODD/EVEN tPPE PEFB tPDPE VALID VALID NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH writes data to the mail2 register. 2. PEFB indicates parity error for the following bytes: B35-B27 and B26-B18 for big-endian bus, and B17-B9 and B-8-B0 for little-endian bus. 3146 drw 07 DATA SWAP TABLE FOR WORD WRITES TO FIFO2 SWAP MODE WRITE NO. SW1 SW0 L L H H L H L H DATA WRITTEN TO FIFO2 BIG ENDIAN DATA READ FROM FIFO2 LITTLE ENDIAN B35-27 B26-18 B17-B9 B8-B0 A35-27 A26-A18 A17-A9 A8-A0 1 A B C D A B C D 2 C D A B 1 D C B A A B C D 2 B A D C 1 C D A B A B C D 2 A B C D 1 B A D C A B C D 2 D C B A Figure 7. Port-B Word Write Cycle Timing for FIFO2 20 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB FFB HIGH tENS tENH CSB tENS W/RB tENS tENH tSWS tENH tSZS tSZH tSZS tSZH tSZS tSZH tSZS tSZH tENS tENH ENB SW1, SW0 BE SIZ1, SIZ0 Little Endian Big Endian B0B8 (1,0) (1,0) (1,0) tDS tDH tDS tDH (1,0) Not (1,1)(1) B27B35 ODD/EVEN tPDPE tPDPE tPPE PEFB Valid tPDPE Valid Valid Valid 3146 drw 08 NOTES: 1. SIZ0 = HIGH amd SIZ1 = HIGH writes data to the mail2 register. 2. PEFB indicates parity error for the following bytes: B35—B27 for big-endian bus and B17—B9 for little-endian bus. Figure 8. Port-B Byte Write Cycle Timing for FIFO2 21 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE DATA SWAP TABLE FOR BYTE WRITES TO FIFO2 SWAP MODE SW1 L L H H WRITE NO. SW0 L H L H DATA WRITTEN TO FIFO2 BIG LITTLE ENDIAN ENDIAN B35-B27 B8-80 1 A D 2 B C 3 C B 4 D A 1 D A 2 C B 3 B C 4 A D 1 C B 2 D A 3 A D 4 B C 1 B C 2 A D 3 D A 4 C B DATA READ FROM FIFO2 A35-A27 A26-A18 A17-A9 A8-A0 A B C D A B C D A B C D A B C D Figure 8. Port-B Byte Write Cycle Timing for FIFO2 (continued) 22 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB EFB HIGH CSB W/RB tENS tENH tSWS tSWH tENS tENH ENB No Operation SW1, SW0 BE tSZS tSZH tSZS SIZ1, SIZ0 tSZH (0,0) NOT (1,1)(1) tPGS PGB, ODD/ EVEN NOT (1,1)(1) (0,0) tEN tPGH B0-B35 tDIS tA tA Previous Data (2) W1 W2 (2) 3146 drw 09 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B0-B35. 2. Data read from FIFO1. DATA SWAP TABLE FOR FIFO LONG-WORD READS FROM FIFO1 DATA WRITTEN TO FIFO1 SWAP MODE DATA READ FROM FIFO1 A35-A27 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 9. Port-B Long-Word Read Cycle Timing for FIFO1 23 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB EFB HIGH CSB W/RB tENS tENH tSWS tSWH ENB No Operation SW1, SW0 BE tSZS tSZH tSZS SIZ1, SIZ0 tSZH (0,1) NOT (1,1)(1) tPGS PGB, ODD/ EVEN tEN Little Endian(2) Big Endian(2) NOT (1,1)(1) (0,1) tPGH tDIS tA B0-B17 tA Previous Data Read 1 B18-B35 tA Previous Data Read 1 Read 2 tA tDIS Read 2 3146 drw 10 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B0-B35. 2. Unused word B0-B17 or B18-B35 holds last FIFO1 output register data for word-size reads. DATA SWAP TABLE FOR WORD READS FROM FIFO1 DATA READ FROM FIFO1 DATA WRITTEN TO FIFO1 A35-A27 A26-A18 A17-A9 SWAP MODE A8-A0 SW1 READ NO. BIG ENDIAN B35-B27 B26-B18 A B C D SW0 LITTLE ENDIAN B17-B9 C A B8-B0 D B A B C D L L 1 2 A B C D L H 1 2 D B C A B D A C A B C D H L 1 2 C A D B A C B D A B C D H H 1 2 B D A C D B C A Figure 10. Port-B Word Read Cycle Timing for FIFO1 24 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKB EFB HIGH CSB W/RB tENS tENH tSWS tSWH ENB No Operation SW1, SW0 BE tSZH tSZS tSZH tSZS SIZ1, SIZ0 (1,0) (1,0) (1) Not (1,1) tPGS PGB, ODD/ EVEN tEN B0-B8 Not (1,1) (1) tPGH tA Previous Data tA tA Read 1 Read 2 tA tA tA Read 1 Read 2 Read 3 tA B27-B35 Not (1,1) (1) (1,0) (1,0) Not (1,1)(1) Previous Data tA Read 3 tDIS Read 4 tDIS Read 4 NOTES: 1. SIZ0 = HIGH and SIZ1 = HIGH selects the mail1 register for output on B0-B35. 2. Unused bytes hold last FIFO1 output regisger data for byte-size reads. 3146 drw 11 DATA SWAP TABLE FOR BYTE READS FROM FIFO1 DATA READ FROM FIFO 1 DATA WRITTEN TO FIFO 1 A35-A27 A A A A A26-A18 B B B B A17-A9 C C C C SWAP MODE A8-A0 D D D D SW1 L L H H READ NO. BIG ENDIAN LITTLE ENDIAN 1 2 3 4 B35-B27 A B C D B8-B0 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 SW0 L H L H Figure 11. Port-B Byte Read Cycle Timing for FIFO1 25 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKA EFA HIGH CSA W/RA MBA tENH tENS tENS tENH tENS tENH ENA tMDV A0 - A35 tA tEN Previous Data tPGS tPGH tA Word 1(1) tPGS No Operation tDIS Word 2(1) tPGH PGA, ODD/ EVEN 3146 drw 12 NOTE: 1. Read from FIFO2.. Figure 12. Port-A Read Cycle Timing for FIFO2 26 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKA CSA LOW WRA HIGH tENS tENH tENS tENH MBA ENA FFA HIGH tDS A0 - A35 tDH W1 (1) tSKEW1 CLKB tCLK tCLKH tCLKL 1 2 tREF EFB tREF FIFO1 Empty CSB LOW W/RB LOW SIZ1, SIZ0 LOW tENS tENH ENB tA W1 B0 -B35 3146 drw 13 NOTES: 1. tSKEW1 is the minimum time between a rising CLKA edge and a rising CLKB edge for EFB 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 EFB HIGH may occur one CLKB cycle later than shown. 2. Port-B size of long word is selected for FIFO1 read by SIZ1 = LOW, SIZ0 = LOW. If port-B size is word or byte, EFB is set LOW by the last word or byte read from FIFO1, respectively. Figure13. EFB Flag Timing and First Data Read when FIFO1 is Empty 27 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKB CSB LOW WRB HIGH tENS tENH tENS tENH SIZ1, SIZ0 ENB FFB HIGH tDS B0 - B35 tDH W1 (1) tSKEW1 CLKA tCLK tCLKH tCLKL 1 2 tREF EFA tREF FIFO2 Empty CSA LOW W/RA LOW MBA LOW tENS tENH ENA tA W1 A0 -A35 3146 drw 14 NOTES: 1. tSKEW1 is the minimum time between a rising CLKB edge and a rising CLKA edge for EFA 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 EFA HIGH may occur one CLKA cycle later than shown. 2. Port B size of long word is selected for FIFO2 write by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte tSKEW1 is referenced to the rising CLKB edge that writes the last word or byte of the long word, respectively. Figure 14. EFA Flag Timing and First Data Read when FIFO2 is Empty 28 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKB CSB LOW W/RB LOW SIZ1, SIZ0 LOW tENS tENH ENB EFB B0 - B35 HIGH tA Previous Word in FIFO1 Output Register Next Word From FIFO1 (1) tSKEW1 tCLK tCLKH 1 CLKA tCLKL 2 tWFF tWFF FFA FIFO1 Full CSA LOW WRA HIGH tENH tENS MBA tENS tENH ENA tDS tDH A0 - A35 To FIFO1 3146 drw 15 NOTES: 1. tSKEW1 is the minimum time between a rising CLKB edge and a rising CLKA edge for FFA 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 FFA may transition HIGH one CLKA cycle later than shown. 2. Port B size of long word is selected for FIFO1 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 15. FFA Flag Timing and First Available Write when FIFO1 is Full. 29 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE tCLK tCLKH tCLKL CLKA CSA LOW W/RA LOW MBA LOW tENS tENH ENA EFA A0 - A35 HIGH tA Previous Word in FIFO2 Output Register Next Word From FIFO2 (1) tSKEW1 tCLK tCLKH 1 CLKB 2 tWFF tWFF FFB FIFO2 Full CSB LOW WRB HIGH SIZ1, SIZ0 tCLKL tENH tENS tENS tENH ENB tDS tDH B0 - B35 To FIFO2 3146 drw 16 NOTES: 1. tSKEW1 is the minimum time between a rising CLKA edge and a rising CLKB edge for FFB 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 FFB may transition HIGH one CLKB cycle later than shown. 2. Port B size of long word is selected for FIFO2 write by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, FFB is set LOW by the last word or byte write of the long word, respectively. Figure 16. FFB Flag Timing and First Available Write when FIFO2 is Full 30 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE CLKA tENS tENH ENA (1) tSKEW2 1 CLKB 2 tPAE tPAE AEB X Long Word in FIFO1 (X+1) Long Words in FIFO1 tENS tENH ENB 3146 drw 17 NOTES: 1. tSKEW2 is the minimum time between a rising CLKA edge and a rising CLKB edge for AEB 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 AEB may transition HIGH one CLKB cycle later than shown. 2. FIFO1 Write (CSA = LOW, W/RA = HIGH, MBA = LOW), FIFO1 read (CSB = LOW, W/RB = LOW, MBB = LOW). 3. Port B size of long word is selected for FIFO1 read by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, AEB is set LOW by the last word or byte read of the long word, respectively. Figure 17. Timing for AEB when FIFO1 is Almost Empty CLKB tENH tENS ENB (1) tSKEW2 1 CLKA 2 tPAE tPAE AEA X Long Words in FIFO2 (X+1) Long Words in FIFO2 tENS tENH ENA 3146 drw 18 NOTES: 1. tSKEW2 is the minimum time between a rising CLKB edge and a rising CLKA edge for AEA to transition HIGH in the next CLKA cycle. If the time between the rising CLKB edge and rising CLKA edge is less than tSKEW2, then AEA may transition HIGH one CLKA cycle later than shown. 2. FIFO2 Write (CSB = LOW, W/RB = HIGH, MBB = LOW), FIFO2 read (CSA = LOW, W/RA = LOW, MBA = LOW). 3. Port B size of long word is selected for FIFO2 write by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, tSKEW2 is referenced from the rising CLKB edge that writes the last word or byte of the long word, respectively. Figure 18. Timing for AEA when FIFO2 is Almost Empty 31 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE (1) tSKEW2 1 CLKA tENS 2 tENH ENA tPAF AFA [64-(X+1)] Long Words in FIFO1 tPAF (64-X) Long Words in FIFO1 CLKB tENS tENH ENB 3146 drw 19 NOTES: 1. tSKEW2 is the minimum time between a rising CLKA edge and a rising CLKB edge for AFA 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 AFA may transition HIGH one CLKB cycle later than shown. 2. FIFO1 Write (CSA = LOW, W/RA = HIGH, MBA = LOW), FIFO1 read (CSB = LOW, W/RB = LOW, MBB = LOW). 3. Port B size of long word is selected for FIFO1 read by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, tSKEW2 is referenced from the last word or byte read of the long word, respectively. Figure 19. Timing for AFA when FIFO1 is Almost Full (1) tSKEW2 1 CLKB tENS 2 tENH ENB tPAF AFB [64-(X+1)] Long Words in FIFO2 tPAF (64-X) Long Words in FIFO2 CLKA tENS tENH ENA 3146 drw 20 NOTES: 1. tSKEW2 is the minimum time between a rising CLKB edge and a rising CLKA edge for AFB to transition HIGH in the next CLKB cycle. If the time between the rising CLKB edge and rising CLKA edge is less than tSKEW2, then AFB may transition HIGH one CLKA cycle later than shown. 2. FIFO2 Write (CSB = LOW, W/RB = HIGH, MBB = LOW), FIFO2 read (CSA = LOW, W/RA = LOW, MBA = LOW). 3. Port B size of long word is selected for FIFO2 write by SIZ1 = LOW, SIZ0 = LOW. If port B size is word or byte, AFB is set LOW by the last word or byte read of the long word, respectively. Figure 20. Timing for AFB when FIFO2 is Almost Full 32 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 CLKA COMMERCIAL TEMPERATURE RANGE tENH tENS CSA W/RA MBA ENA tDS W1 A0 - A35 tDH CLKB tPMF MBF1 tPMF CSB W/RB SIZ1, SIZ0 tENS tENH ENB tMDV tEN tDIS tPMR B0 - B35 W1 (Remains valid in Mail1 Register after read) FIFO1 Output Register 3146 drw 21 NOTE: 1. Port B parity generation off (PGB = LOW). Figure 21. Timing for Mail1 Register and MBF1 Flag 33 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 CLKB COMMERCIAL TEMPERATURE RANGE tENH tENS CSB W/RB tSZS SIZ1, SIZ0 tSZH ENB tDS W1 B0 - B35 tDH CLKA tPMF MBF2 tPMF CSA W/RA MBA tENS tENH ENA tEN tMDV tDIS tPMR W1 (Remains valid in Mail2 Register after read) A0 - A35 FIFO2 Output Register 3146 drw 22 NOTE: 1. Port-A parity generation off (PGA = LOW). Figure 22. Timing for Mail2 Register and MBF2 Flag 34 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE ODD/ EVEN W/RA MBA PGA tPOPE PEFA Valid tPEPE tPOPE Valid Valid tPEPE Valid 3146 drw 23 Figure 23. 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 3146 drw 24 Figure 24. ODD/EVEN. W/RB, SIZ1, SIZ0, and PGB to PEFB Timing 35 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE ODD/ EVEN CSA LOW W/RA MBA PGA tEN tPEPB tMDV A8, A17, A26, A35 tPOPB Generated Parity tPEPB Generated Parity Mail2 Data Mail2 Data 3146 drw 25 NOTE: 1. ENA is HIGH. Figure 25. 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 is HIGH. tPEPB tMDV tPOPB Generated Parity tPEPB Generated Parity Mail1 Data Mail1 Data 3146drw 26 Figure 26. Parity Generation Timing when Reading from the Mail1 Register 36 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE TYPICAL CHARACTERISTICS SUPPLY CURRENT vs CLOCK FREQUENCY 400 I CC(f) – Supply Current – mA V CC ==5.5 5.5 VV VV CC CC= 5.5V 350 f data = 1/2 f s T A = 25° C 300 C L = 0 pF VCC = 5 V VCC = 4.5 V 250 200 150 100 50 0 0 10 20 30 40 50 60 70 80 f s – Clock Frequency – MHz 3146 drw 27 Figure 27 CALCULATING POWER DISSIPATION The ICC(f) current for the graph in Figure 27 was taken while simultaneously reading and writing the FIFO on the IDT723614 with CLKA and CLKB set to fs. All data 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 28, the maximum power dissipation (PT) of the IDT723614 can be calculated by: PT = VCC x ICC(f) + ∑(CL x VOH2 x fo) where: CL = fo = VOH = output capacitance load switching frequency of an output output high level voltage When no reads or writes are occurring on the IDT723614, the power dissipated by a single clock (CLKA or CLKB) input running at frequency fs is calculated by: PT=VCC x fs x 0.290 mA/MHz 37 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE PARAMETER MEASUREMENT INFORMATION 5V 1.1 k Ω From Output Under Test 30 pF 680 Ω (1) LOAD CIRCUIT 3V Timing Input 1.5 V High-Level Input GND tS 1.5 V th 3V 1.5 V 1.5 V GND tW 3V Data, Enable Input 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 tPZL GND ≈3 V 1.5 V Low-Level Output 1.5 V tPHZ VOLTAGE WAVEFORMS ENABLE AND DISABLE TIMES Input VOL tPZH VOH High-Level Output 3V 1.5 V ≈ OV 3V 1.5 V 1.5 V tPD tPD GND VOH In-Phase Output 1.5 V 1.5 V VOL VOLTAGE WAVEFORMS PROPAGATION DELAY TIMES 3146 drw 28 NOTE: 1. Includes probe and jig capacitance. Figure 28. Load Circuit and Voltage Waveforms 38 IDT723614 CMOS SyncBiFIFO WITH BUS MATCHING AND BYTE SWAPPING 64 x 36 x 2 COMMERCIAL TEMPERATURE RANGE ORDERING INFORMATION IDT 723614 Device Type X Power XX Speed X Package X Process/ Temperature Range BLANK Commercial (0°C to +70°C) PF PQF Thin Quad Flat Pack (TQFP, PN120-1) Plastic Quad Flat Pack (PQFP, PQ132-1) 15 20 30 L Commercial Only Clock Cycle Time (tCLK) Speed in Nanoseconds Low Power 723614 64 x 36 x 2 SyncBiFIFO 3146 drw 29 39