CY7C007 A CY7C017 A32K/16 K x 8, 32 K x 9 Dual-Po rt Static RAM 1 CY7C006A, CY7C007A CY7C016A, CY7C017A 32K/16K x8, 32K/16K x9 Dual-Port Static RAM • Automatic power-down • Expandable data bus to 16/18 bits or more using Master/Slave chip select when using more than one device • On-chip arbitration logic • Semaphores included to permit software handshaking between ports • INT flags for port-to-port communication • Pin select for Master or Slave • Commercial temperature range • Available in 68-pin PLCC (CY7C006A, CY7C007A and CY7C017A), 64-pin TQFP (CY7C006A), and in 80-pin TQFP (CY7C007A and CY7C016A) • Pin-compatible and functionally equivalent to IDT7006 and IDT7007 Features • True dual-ported memory cells which allow simultaneous access of the same memory location • 16K x 8 organization (CY7C006A) • 32K x 8 organization (CY7C007A) • 16K x 9 organization (CY7C016A) • 32K x 9 organization (CY7C017A) • 0.35-micron CMOS for optimum speed/power • High-speed access: 12[1]/15/20 ns • Low operating power — Active: ICC = 180 mA (typical) — Standby: ISB3 = 0.05 mA (typical) • Fully asynchronous operation Logic Block Diagram R/WL R/WR CEL CER OEL OER [2] 8/9 [2] 8/9 I/O0L–I/O7/8L I/O0R–I/O7/8R I/O Control [4] A0L–A13/14L [4] 14/15 Address Decode Address Decode True Dual-Ported RAM Array 14/15 14/15 [4] A0R–A 13/14R 14/15 A0L–A13/14L CEL OEL R/WL SEM L I/O Control [4] A0R–A 13/14R CER OE R Interrupt Semaphore Arbitration [3] [3] BUSYL INTL R/WR SEM R BUSYR INT R M/S Notes: 1. See page 7 for Load Conditions. 2. I/O0–I/O7 for x8 devices; I/O0–I/O8 for x9 devices. 3. BUSY is an output in master mode and an input in slave mode. 4. A0–A13 for 16K; A0–A14 for 32K devices. For the most recent information, visit the Cypress web site at www.cypress.com Cypress Semiconductor Corporation • 3901 North First Street • San Jose • CA 95134 • 408-943-2600 January 10, 2001 CY7C006A, CY7C007A CY7C016A, CY7C017A Each port has independent control pins: Chip Enable (CE), Read or Write Enable (R/W), and Output Enable (OE). Two flags are provided on each port (BUSY and INT). BUSY signals that the port is trying to access the same location currently being accessed by the other port. The Interrupt flag (INT) permits communication between ports or systems by means of a mail box. The semaphores are used to pass a flag, or token, from one port to the other to indicate that a shared resource is in use. The semaphore logic is comprised of eight shared latches. Only one side can control the latch (semaphore) at any time. Control of a semaphore indicates that a shared resource is in use. An automatic power-down feature is controlled independently on each port by a Chip Select (CE) pin. Functional Description The CY7C006A, CY7C007A, CY7C016A, and CY7C017A are low-power CMOS 32K x 8/9 and 16K x 8/9 dual-port static RAMs. Various arbitration schemes are included on the devices to handle situations when multiple processors access the same piece of data. Two ports are provided, permitting independent, asynchronous access for reads and writes to any location in memory. The devices can be utilized as standalone 8/9-bit dual-port static RAMs or multiple devices can be combined in order to function as a 16/18-bit or wider master/slave dual-port static RAM. An M/S pin is provided for implementing 16/18-bit or wider memory applications without the need for separate master and slave devices or additional discrete logic. Application areas include interprocessor/multiprocessor designs, communications status buffering, and dual-port video/graphics memory. The CY7C006A, CY7C007A, and CY7C017A are available in 68-pin PLCC packages, the CY7C006A is also available in 64-pin TQFP, and the CY7C007A and CY7C016A are also available in 80-pin TQFP packages. 2 CY7C006A, CY7C007A CY7C016A, CY7C017A Pin Configurations I/O2L I/O3L I/O4L 10 I/O5L GND I/O6L I/O7L 13 A9L A8L A7L A6L 64 63 62 61 VCC 68 67 A11L A10L A14L A13L 2 1 65 CEL 3 A12L SEML 4 66 R/WL 5 [6] I/O0L NC(I/O8L[5]) OEL 7 6 I/O1L 12 I/O2R VCC 21 22 23 24 A5L A4L 58 A3L A2L A1L 56 55 CY7C006A (16K x 8) CY7C007A (32K x 8) CY7C017A (32K x 9) 16 17 18 60 59 57 14 15 GND I/O0R I/O1R 19 INTL 53 BUSYL GND M/S 51 50 49 48 47 42 43 BUSYR INTR A0R A1R A2R A3R A4R A6R A5R 41 40 A8R A7R A9R 38 39 36 37 A11R A10R A12R 35 GND A 14R A13R 32 33 34 31 CER [6] 30 44 SEMR 26 29 46 45 OER R/WR 25 27 28 A0L 54 52 20 I/O7R I/O3R I/O4R I/O5R I/O6R 8 11 NC(I/O8R[5] ) VCC 9 68-Pin PLCC Top View NC NC 61 A10L 67 A6L A11L 68 63 62 A12L 69 A7L VCC 70 A8L [6] A13L 64 A14L 72 71 A9L CE L NC 74 66 65 SEM L 75 73 R/W L 76 NC OE L 78 77 1 79 NC I/O 2L I/O 3L 80 I/O1L I/O0L 80-Pin TQFP Top View 60 NC A5L A4L 2 59 I/O 4L 3 4 58 57 I/O 5L 5 56 A3L A2L GND I/O 6L 6 55 A1L 7 54 A0L I/O 7L 8 53 V CC 9 10 52 51 50 INTL BUSYL GND M/S 49 BUSYR NC GND I/O0R I/O1R CY7C007A (32K x 8) CY7C016A (16K X 9) 11 12 Notes: 5. This pin is I/O for CY7C017A only. 6. A14 is a no connect pin for 16K devices. 3 38 39 40 NC NC A5R 37 A6R A7R 35 36 A8R 34 A9R GND [6] A 14R OER NC I/O7R 33 NC 32 41 A11R A10R 20 31 NC A12R A4R 29 30 43 42 A13R 18 19 28 I/O 5R I/O 6R 27 44 26 17 NC 46 45 25 15 16 I/O 3R I/O 4R CER V CC A0R A1R SEMR 47 23 24 14 R/WR INTR I/O2R 22 48 21 13 A2R A3R NC CY7C006A, CY7C007A CY7C016A, CY7C017A Pin Configurations (continued) A6L A5L 49 54 A7L A12L 56 55 A8L VCC 57 51 50 CEL A13L A9L SEML 59 52 R/WL 60 53 OEL 62 61 A11L A10L I/O0L 63 58 I/O1L 64 64-Pin TQFP Top View I/O2L 1 48 A4L I/O3L I/O4L 2 47 3 4 46 45 A3L A2L 5 44 A0L I/O6L I/O7L 6 43 7 42 INTL BUSYL GND M/S I/O5L GND CY7C006A (16K x 8) A1L 36 A0R A1R I/O3R I/O4R 14 15 35 34 A2R I/O5R 16 33 A4R 32 A6R A5R 30 31 41 A7R A8R A9R A11R A10R A12R GND CER A13R SEMR R/WR OER I/O6R I/O7R 29 13 28 VCC 27 37 25 26 12 24 INTR I/O2R 23 38 22 11 21 40 39 19 20 9 10 18 8 17 VCC GND I/O0R I/O1R BUSYR A3R C006-3 Selection Guide CY7C006A CY7C007A CY7C016A CY7C017A -12[1] CY7C006A CY7C007A CY7C016A CY7C017A -15 CY7C006A CY7C007A CY7C016A CY7C017A -20 Maximum Access Time (ns) 12 15 20 Typical Operating Current (mA) 195 190 180 Typical Standby Current for ISB1 (mA) (Both Ports TTL Level) Typical Standby Current for ISB3 (mA) (Both Ports CMOS Level) 4 55 50 45 0.05 0.05 0.05 CY7C006A, CY7C007A CY7C016A, CY7C017A Pin Definitions Left Port Right Port Description CEL CER Chip Enable R/WL R/WR Read/Write Enable OEL OER Output Enable A0L–A14L A0R–A14R Address I/O0L–I/O 8L I/O0R–I/O 8R Data Bus Input/Output (I/O0–I/O7 for x8 devices and I/O 0–I/O8 for x9) SEML SEMR Semaphore Enable INTL INTR Interrupt Flag BUSYL BUSYR Busy Flag M/S Master or Slave Select VCC Power GND Ground NC No Connect Output Current into Outputs (LOW)............................. 20 mA Maximum Ratings Static Discharge Voltage .......................................... >2001V (Above which the useful life may be impaired. For user guidelines, not tested.) Latch-Up Current .................................................... >200 mA Storage Temperature .................................–65°C to +150°C Operating Range Ambient Temperature with Power Applied.............................................–55°C to +125°C Supply Voltage to Ground Potential ............... –0.3V to +7.0V DC Voltage Applied to Outputs in High Z State ............................................... –0.5V to +7.0V Range Ambient Temperature VCC Commercial 0°C to +70°C 5V ± 10% –40°C to +85°C 5V ± 10% Industrial DC Input Voltage[7] ........................................ –0.5V to +7.0V 5 CY7C006A, CY7C007A CY7C016A, CY7C017A Electrical Characteristics Over the Operating Range CY7C006A CY7C007A CY7C016A CY7C017A -12[1] Parameter Min. Description VOH Output HIGH Voltage (VCC = Min., IOH = –4.0 mA) VOL Output LOW Voltage (VCC = Min., IOH = +4.0 mA) VIH Input HIGH Voltage VIL Input LOW Voltage IOZ Output Leakage Current ICC Operating Current (VCC = Max., IOUT = 0 mA) Outputs Disabled Com’l. Standby Current (Both Ports TTL Level) CEL & CER ≥ VIH, f = fMAX Com’l. Standby Current (One Port TTL Level) CEL | CER ≥ VIH, f = fMAX Com’l. Standby Current (Both Ports CMOS Level) CEL & CER ≥ VCC − 0.2V, f=0 Com’l. Standby Current (One Port CMOS Level) CEL | CER ≥ VIH, f = fMAX[7] Com’l. ISB1 ISB2 ISB3 ISB4 Typ. -15 Max. 2.4 Min. Typ. -20 Max. 2.4 10 –10 325 75 Ind. 125 205 Ind. 0.05 0.5 Ind. 115 185 Ind. 10 190 280 215 305 50 70 65 95 120 180 135 205 0.05 0.5 0.05 0.5 110 160 125 175 Unit V V 0.8 Ind. 55 0.4 2.2 0.8 195 Max. V 0.4 2.2 –10 Typ. 2.4 0.4 2.2 Min. 0.8 –10 180 V 10 µA 275 mA mA 45 65 mA mA 110 160 mA mA 0.05 0.5 mA mA 100 140 mA mA Capacitance[9] Parameter Description CIN Input Capacitance COUT Output Capacitance Test Conditions TA = 25°C, f = 1 MHz, VCC = 5.0V Max. Unit 10 pF 10 pF Notes: 7. Pulse width < 20 ns. 8. fMAX = 1/tRC = All inputs cycling at f = 1/tRC (except output enable). f = 0 means no address or control lines change. This applies only to inputs at CMOS level standby ISB3. 9. Tested initially and after any design or process changes that may affect these parameters. 6 CY7C006A, CY7C007A CY7C016A, CY7C017A AC Test Loads and Waveforms 5V 5V R1 = 893Ω RTH = 250Ω OUTPUT OUTPUT R1 = 893Ω OUTPUT C = 30 pF C = 30 pF R2 = 347Ω C = 5 pF R2 = 347Ω VTH = 1.4V (a) Normal Load (Load 1) (c) Three-State Delay (Load 2) (Used for tLZ, tHZ, tHZWE, & tLZWE including scope and jig) (b) Thévenin Equivalent (Load 1) AC Test Loads (Applicable to -12 only)[10] Z 0 = 50Ω ALL INPUT PULSES R = 50Ω OU TPUT 3.0V C 10% GND 90% 10% 90% ≤ 3 ns ≤ 3 ns VTH = 1.4V (a) Load 1 (-12 only) 1 .00 0.90 ∆ (ns) for all -12 access times 0.80 0.70 0.60 0.50 0.40 0.30 0.20 0.1 0 0.00 10 15 20 25 Capacitance (pF) (b) Load Derating Curve Note: 10. Test Conditions: C = 10 pF. 7 30 35 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Characteristics Over the Operating Range[11] CY7C006A CY7C007A CY7C016A CY7C017A –12[1] Parameter Description Min. –15 Max. Min. –20 Max. Min. Max. Unit READ CYCLE tRC Read Cycle Time tAA Address to Data Valid tOHA Output Hold From Address Change tACE[12] CE LOW to Data Valid tDOE OE LOW to Data Valid tLZOE[13, 14, 15] OE LOW to Low Z tHZOE[13, 14, 15] tLZCE[13, 14, 15] tHZCE[13, 14, 15] tPU[15] tPD[15] OE HIGH to High Z 12 15 12 3 3 12 3 CE HIGH to High Z 10 3 0 CE HIGH to Power-Down ns 12 ns ns 12 10 12 20 3 0 ns ns 12 0 15 ns ns 3 10 10 CE LOW to Power-Up 3 3 10 ns 20 15 8 3 CE LOW to Low Z 20 15 ns ns 20 ns WRITE CYCLE tWC Write Cycle Time 12 15 20 ns tSCE[12] CE LOW to Write End 10 12 15 ns tAW Address Valid to Write End 10 12 15 ns tHA Address Hold From Write End 0 0 0 ns tSA[12] Address Set-Up to Write Start 0 0 0 ns tPWE Write Pulse Width 10 12 15 ns tSD Data Set-Up to Write End 10 10 15 ns tHD[18] tHZWE[14, 15] tLZWE[14, 15] tWDD[16] tDDD[16] Data Hold From Write End 0 0 0 ns R/W LOW to High Z 10 R/W HIGH to Low Z 3 10 3 12 3 ns ns Write Pulse to Data Delay 25 30 45 ns Write Data Valid to Read Data Valid 20 25 30 ns [17] BUSY TIMING tBLA BUSY LOW from Address Match 12 15 20 ns tBHA BUSY HIGH from Address Mismatch 12 15 20 ns tBLC BUSY LOW from CE LOW 12 15 20 ns tBHC BUSY HIGH from CE HIGH 17 ns tPS Port Set-Up for Priority 12 5 15 5 5 ns Notes: 11. Test conditions assume signal transition time of 3 ns or less, timing reference levels of 1.5V, input pulse levels of 0 to 3.0V, and output loading of the specified I OI/IOH and 30-pF load capacitance. 12. To access RAM, CE = L, SEM = H. To access semaphore, CE = H and SEM = L. Either condition must be valid for the entire tSCE time. 13. At any given temperature and voltage condition for any given device, tHZCE is less than tLZCE and tHZOE is less than tLZOE. 14. Test conditions used are Load 3. 15. This parameter is guaranteed but not tested. 16. For information on port-to-port delay through RAM cells from writing port to reading port, refer to Read Timing with Busy waveform. 17. Test conditions used are Load 2. 18. For 15 ns industrial parts tHD Min. is 0.5 ns. 8 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Characteristics Over the Operating Range[11] (continued) CY7C006A CY7C007A CY7C016A CY7C017A –12[1] Parameter Description Min. –15 Max. Min. –20 Max. Min. Max. Unit tWB R/W HIGH after BUSY (Slave) 0 0 0 ns tWH R/W HIGH after BUSY HIGH (Slave) 11 13 15 ns tBDD[19] BUSY HIGH to Data Valid 12 15 20 ns [17] INTERRUPT TIMING tINS INT Set Time 12 15 20 ns tINR INT Reset Time 12 15 20 ns SEMAPHORE TIMING tSOP SEM Flag Update Pulse (OE or SEM) 10 10 10 ns tSWRD SEM Flag Write to Read Time 5 5 5 ns tSPS SEM Flag Contention Window 5 5 5 ns tSAA SEM Address Access Time 12 15 20 ns Timing Data Retention Mode Data Retention Mode The C Y7C 006A, C Y7C 007A, C Y7C 016A, and C Y7C 017A are designed w ith battery backup in m ind. D ata retention voltage and supply current are guaranteed over tem perature. The follow ing rules ensure data retention: VCC 1. C hip Enable (C E) m ust be held H IG H during data retention, w ithin V CC to V C C – 0.2V. 4.5V VCC > 2.0V 4.5V VCC to VCC – 0.2V CE tRC V IH 2. C E m ust be kept betw een V C C – 0.2V and 70% of V C C during the pow er-up and pow er-dow n transitions. Parameter 3. The R AM can begin operation >tR C after V C C reaches the m inim um operating voltage (4.5 volts). ICC DR1 Test Conditions[20] @ VCCDR = 2V Switching Waveforms Read Cycle No. 1 (Either Port Address Access)[21, 22, 23] tRC ADDRESS tAA tOHA DATA OUT tOHA PREVIOUS DATA VALID DATA VALID Notes: 19. tBDD is a calculated parameter and is the greater of tWDD–tPWE (actual) or tDDD–tSD (actual). 20. CE = VCC, Vin = GND to VCC, TA = 25°C. This parameter is guaranteed but not tested. 21. R/W is HIGH for read cycles. 22. Device is continuously selected CE = VIL. This waveform cannot be used for semaphore reads. 23. OE = VIL. 9 Max. Unit 1.5 mA CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Read Cycle No. 2 (Either Port CE/OE Access)[21, 24, 25] tACE CE tHZCE tDOE OE tHZOE tLZOE DATA VALID DATA OUT tLZCE tPU tPD ICC CURRENT ISB Read Cycle No. 3 (Either Port)[21, 23, 24, 25] tRC ADDRESS tAA tOHA tLZCE tABE CE tHZCE tACE tLZCE DATA OUT Notes: 24. Address valid prior to or coincident with CE transition LOW. 25. To access RAM, CE = VIL, SEM = VIH. To access semaphore, CE = VIH, SEM = VIL. 10 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Write Cycle No. 1: R/W Controlled Timing [26, 27, 28, 29] tWC ADDRESS tHZOE [31] OE CE tAW [30] tPWE[29] tSA tHA R/W tHZWE[31] DATA OUT tLZWE NOTE 32 NOTE 32 tSD tHD DATA IN Write Cycle No. 2: CE Controlled Timing [26, 27, 28, 33] tWC ADDRESS tAW CE [30] tSA tSCE tHA R/W tSD tHD DATA IN Notes: 26. R/W or CE must be HIGH during all address transitions. 27. A write occurs during the overlap (t SCE or tPWE) of a LOW CE or SEM. 28. tHA is measured from the earlier of CE or R/W or (SEM or R/W) going HIGH at the end of write cycle. 29. If OE is LOW during a R/W controlled write cycle, the write pulse width must be the larger of tPWE or (tHZWE + tSD) to allow the I/O drivers to turn off and data to be placed on the bus for the required tSD. If OE is HIGH during an R/W controlled write cycle, this requirement does not apply and the write pulse can be as short as the specified tPWE. 30. To access RAM, CE = VIL, SEM = VIH. 31. Transition is measured ±500 mV from steady state with a 5-pF load (including scope and jig). This parameter is sampled and not 100% tested. 32. During this period, the I/O pins are in the output state, and input signals must not be applied. 33. If the CE or SEM LOW transition occurs simultaneously with or after the R/W LOW transition, the outputs remain in the high-impedance state. 11 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Semaphore Read After Write Timing, Either Side[34] tAA A 0–A 2 VALID ADRESS VALID ADRESS tAW tACE tHA SEM tOHA tSCE tSOP tSD I/O0 DATAIN VALID tSA tPWE DATAOUT VALID tHD R/W tSWRD tDOE tSOP OE WRITE CYCLE READ CYCLE Timing Diagram of Semaphore Contention[35, 36, 37] A0L –A 2L MATCH R/WL SEM L tSPS A 0R –A 2R MATCH R/WR SEM R Notes: 34. CE = HIGH for the duration of the above timing (both write and read cycle). 35. I/O0R = I/O0L = LOW (request semaphore); CER = CEL = HIGH. 36. Semaphores are reset (available to both ports) at cycle start. 37. If tSPS is violated, the semaphore will definitely be obtained by one side or the other, but which side will get the semaphore is unpredictable. 12 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Timing Diagram of Read with BUSY (M/S=HIGH)[38] tWC ADDRESSR MATCH tPWE R/WR tHD tSD DATA INR VALID tPS ADDRESSL MATCH tBLA tBHA BUSYL tBDD tDDD DATA OUTL VALID tWDD Write Timing with Busy Input (M/S=LOW) tPWE R/W BUSY tWB tWH Note: 38. CEL = CER = LOW. 13 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Busy Timing Diagram No. 1 (CE Arbitration)[39] CELValid First: ADDRESS L,R ADDRESS MATCH CEL tPS CER tBLC tBHC BUSYR CER Valid First: ADDRESS L,R ADDRESS MATCH CER tPS CE L tBLC tBHC BUSY L Busy Timing Diagram No. 2 (Address Arbitration)[39] Left Address Valid First: tRC or tWC ADDRESS L ADDRESS MATCH ADDRESS MISMATCH tPS ADDRESSR tBLA tBHA BUSY R Right Address Valid First: tRC or tWC ADDRESSR ADDRESS MATCH ADDRESS MISMATCH tPS ADDRESSL tBLA tBHA BUSY L Note: 39. If tPS is violated, the busy signal will be asserted on one side or the other, but there is no guarantee to which side BUSY will be asserted. 14 CY7C006A, CY7C007A CY7C016A, CY7C017A Switching Waveforms (continued) Interrupt Timing Diagrams Left Side Sets INTR: tWC ADDRESSL WRITE 7FFF tHA [40] CE L R/W L INT R tINS [41] Right Side Clears INTR: tRC READ 7FFF ADDRESSR CE R tINR [41] R/WR OE R INTR Right Side Sets INT L: tWC ADDRESSR WRITE 7FFE tHA[40] CE R R/W R INT L [41] tINS Left Side Clears INTL: tRC ADDRESSR READ 7FFE CE L tINR[41] R/W L OE L INT L Notes: 40. tHA depends on which enable pin (CEL or R/WL) is deasserted first. 41. tINS or tINR depends on which enable pin (CEL or R/WL) is asserted last. 15 CY7C006A, CY7C007A CY7C016A, CY7C017A address match occurs within tPS of each other, the busy logic will determine which port has access. If tPS is violated, one port will definitely gain permission to the location, but it is not predictable which port will get that permission. BUSY will be asserted tBLA after an address match or tBLC after CE is taken LOW. Architecture The CY7C006A, CY7C007A, CY7C016A and CY7C017A consist of an array of 32K/16K words of 8 bits and 32K words of 9 bits each of dual-port RAM cells, I/O and address lines, and control signals (CE, OE, R/W). These control pins permit independent access for reads or writes to any location in memory. To handle simultaneous writes/reads to the same location, a BUSY pin is provided on each port. Two Interrupt (INT) pins can be utilized for port-to-port communication. Two Semaphore (SEM) control pins are used for allocating shared resources. With the M/S pin, the devices can function as a master (BUSY pins are outputs) or as a slave (BUSY pins are inputs). The devices also have an automatic power-down feature controlled by CE. Each port is provided with its own Output Enable control (OE), which allows data to be read from the device. Master/Slave A M/S pin is provided in order to expand the word width by configuring the device as either a master or a slave. The BUSY output of the master is connected to the BUSY input of the slave. This will allow the device to interface to a master device with no external components. Writing to slave devices must be delayed until after the BUSY input has settled (tBLC or tBLA), otherwise, the slave chip may begin a write cycle during a contention situation. When tied HIGH, the M/S pin allows the device to be used as a master and, therefore, the BUSY line is an output. BUSY can then be used to send the arbitration outcome to a slave. Functional Description Semaphore Operation Write Operation The CY7C006A, CY7C007A, CY7C016A and CY7C017A provide eight semaphore latches, which are separate from the dual-port memory locations. Semaphores are used to reserve resources that are shared between the two ports. The state of the semaphore indicates that a resource is in use. For example, if the left port wants to request a given resource, it sets a latch by writing a zero to a semaphore location. The left port then verifies its success in setting the latch by reading it. After writing to the semaphore, SEM or OE must be deasserted for tSOP before attempting to read the semaphore. The semaphore value will be available tSWRD + tDOE after the rising edge of the semaphore write. If the left port was successful (reads a zero), it assumes control of the shared resource, otherwise (reads a one) it assumes the right port has control and continues to poll the semaphore. When the right side has relinquished control of the semaphore (by writing a one), the left side will succeed in gaining control of the semaphore. If the left side no longer requires the semaphore, a one is written to cancel its request. Data must be set up for a duration of tSD before the rising edge of R/W in order to guarantee a valid write. A write operation is controlled by either the R/W pin (see Write Cycle No. 1 waveform) or the CE pin (see Write Cycle No. 2 waveform). Required inputs for non-contention operations are summarized in Table 1. If a location is being written to by one port and the opposite port attempts to read that location, a port-to-port flowthrough delay must occur before the data is read on the output; otherwise the data read is not deterministic. Data will be valid on the port tDDD after the data is presented on the other port. Read Operation When reading the device, the user must assert both the OE and CE pins. Data will be available tACE after CE or tDOE after OE is asserted. If the user wishes to access a semaphore flag, then the SEM pin must be asserted instead of the CE pin, and OE must also be asserted. Semaphores are accessed by asserting SEM LOW. The SEM pin functions as a chip select for the semaphore latches (CE must remain HIGH during SEM LOW). A0–2 represents the semaphore address. OE and R/W are used in the same manner as a normal memory access. When writing or reading a semaphore, the other address pins have no effect. Interrupts The upper two memory locations may be used for message passing. The highest memory location (7FFF) is the mailbox for the right port and the second-highest memory location (7FFE) is the mailbox for the left port. When one port writes to the other port’s mailbox, an interrupt is generated to the owner. The interrupt is reset when the owner reads the contents of the mailbox. The message is user defined. When writing to the semaphore, only I/O 0 is used. If a zero is written to the left port of an available semaphore, a one will appear at the same semaphore address on the right port. That semaphore can now only be modified by the side showing zero (the left port in this case). If the left port now relinquishes control by writing a one to the semaphore, the semaphore will be set to one for both sides. However, if the right port had requested the semaphore (written a zero) while the left port had control, the right port would immediately own the semaphore as soon as the left port released it. Table 3 shows sample semaphore operations. Each port can read the other port’s mailbox without resetting the interrupt. The active state of the busy signal (to a port) prevents the port from setting the interrupt to the winning port. Also, an active busy to a port prevents that port from reading its own mailbox and, thus, resetting the interrupt to it. If an application does not require message passing, do not connect the interrupt pin to the processor’s interrupt request input pin. When reading a semaphore, all data lines output the semaphore value. The read value is latched in an output register to prevent the semaphore from changing state during a write from the other port. If both ports attempt to access the semaphore within tSPS of each other, the semaphore will definitely be obtained by one side or the other, but there is no guarantee which side will control the semaphore. The operation of the interrupts and their interaction with Busy are summarized in Table 2. Busy The CY7C006A, CY7C007A, CY7C016A and CY7C017A provide on-chip arbitration to resolve simultaneous memory location access (contention). If both ports’ CEs are asserted and an 16 CY7C006A, CY7C007A CY7C016A, CY7C017A Table 1. Non-Contending Read/Write Inputs Outputs I/O0–I/O8 CE R/W OE SEM H X X H High Z Deselected: Power-Down H H L L Data Out Read Data in Semaphore Flag X X H X High Z I/O Lines Disabled X L Data In Write into Semaphore Flag H Operation L H L H Data Out Read L L X H Data In Write L X X L Not Allowed Table 2. Interrupt Operation Example (assumes BUSYL=BUSYR=HIGH) Left Port Function Right Port R/WL CEL OEL A0L–14L INTL R/WR CER OER A0R–14R INTR Set Right INTR Flag L L X 7FFF X X X X X L[43] Reset Right INTR Flag X X X X X X L L 7FFF H[42] Set Left INTL Flag X X X X L[42] L L X 7FFE X [43] X X X X X Reset Left INTL Flag X L L 7FFE H Table 3. Semaphore Operation Example I/O0–I/O8 Left I/O0–I/O8Right No action 1 1 Semaphore free Left port writes 0 to semaphore 0 1 Left Port has semaphore token Right port writes 0 to semaphore 0 1 No change. Right side has no write access to semaphore Left port writes 1 to semaphore 1 0 Right port obtains semaphore token Left port writes 0 to semaphore 1 0 No change. Left port has no write access to semaphore Right port writes 1 to semaphore 0 1 Left port obtains semaphore token Left port writes 1 to semaphore 1 1 Semaphore free Right port writes 0 to semaphore 1 0 Right port has semaphore token Right port writes 1 to semaphore 1 1 Semaphore free Left port writes 0 to semaphore 0 1 Left port has semaphore token Left port writes 1 to semaphore 1 1 Semaphore free Function Notes: 42. If BUSYR = L, then no change. 43. If BUSYL= L, then no change. 17 Status CY7C006A, CY7C007A CY7C016A, CY7C017A Ordering Information 16K x8 Asynchronous Dual-Port SRAM Speed (ns) Ordering Code Package Name Package Type Operating Range 12[1] CY7C006A-12AC 15 CY7C006A-15AI A65 64-Pin Thin Quad Flat Pack Industrial CY7C006A-15JC J81 68-Pin Plastic Leaded Chip Carrier Commercial 20 A65 64-Pin Thin Quad Flat Pack Commercial CY7C006A-12JC J81 68-Pin Plastic Leaded Chip Carrier Commercial CY7C006A-15AC A65 64-Pin Thin Quad Flat Pack Commercial CY7C006A-15JI J81 68-Pin Plastic Leaded Chip Carrier Industrial CY7C006A-20AC A65 64-Pin Thin Quad Flat Pack Commercial CY7C006A-20JC J81 68-Pin Plastic Leaded Chip CarrieR Commercial 32K x8 Asynchronous Dual-Port SRAM Speed (ns) 12[1] 15 20 Ordering Code Package Name Package Type Operating Range CY7C007A-12AC A80 80-Pin Thin Quad Flat Pack Commercial CY7C007A-12JC J81 68-Pin Plastic Leaded Chip Carrier Commercial CY7C007A-15AC A80 80-Pin Thin Quad Flat Pack Commercial CY7C007A-15AI A80 80-Pin Thin Quad Flat Pack Industrial CY7C007A-15JC J81 68-Pin Plastic Leaded Chip Carrier Commercial CY7C007A-15JI J81 68-Pin Plastic Leaded Chip Carrier Industrial CY7C007A-20AC A80 80-Pin Thin Quad Flat Pack Commercial CY7C007A-20JC J81 68-Pin Plastic Leaded Chip CarrieR Commercial 16K x9 Asynchronous Dual-Port SRAM Speed (ns) Ordering Code Package Name Package Type Operating Range 12[1] CY7C016A-12AC 15 CY7C016A-15AC A80 80-Pin Plastic Leaded Chip Carrier Commercial CY7C016A-15IC A80 80-Pin Plastic Leaded Chip Carrier Industrial CY7C016A-20AC A80 80-Pin Plastic Leaded Chip Carrier Commercial 20 A80 80-Pin Plastic Leaded Chip Carrier Commercial 32K x9 Asynchronous Dual-Port SRAM Speed (ns) Ordering Code Package Name Package Type Operating Range 12[1] CY7C017A-12JC J81 68-Pin Plastic Leaded Chip Carrier Commercial 15 CY7C017A-15JC J81 68-Pin Plastic Leaded Chip Carrier Commercial CY7C017A-15JI J81 68-Pin Plastic Leaded Chip Carrier Industrial 20 CY7C017A-20JC J81 68-Pin Plastic Leaded Chip Carrier Commercial Document #: 38-00831-*C 18 CY7C006A, CY7C007A CY7C016A, CY7C017A Package Diagrams 64-Lead Thin Plastic Quad Flat Pack (14 x 14 x 1.4 mm) A65 51-85046-B 19 CY7C006A, CY7C007A CY7C016A, CY7C017A Package Diagrams (continued) 80-Pin Thin Plastic Quad Flat Pack A80 51-85065-B 68-Lead Plastic Leaded Chip Carrier J81 51-85005-A © Cypress Semiconductor Corporation, 2001. The information contained herein is subject to change without notice. Cypress Semiconductor Corporation assumes no responsibility for the use of any circuitry other than circuitry embodied in a Cypress Semiconductor product. Nor does it convey or imply any license under patent or other rights. Cypress Semiconductor does not authorize its products for use as critical components in life-support systems where a malfunction or failure may reasonably be expected to result in significant injury to the user. The inclusion of Cypress Semiconductor products in life-support systems application implies that the manufacturer assumes all risk of such use and in doing so indemnifies Cypress Semiconductor against all charges.