Preliminary AN1016 SigmaDDR-IIIe DQ ODT Control Background SigmaQuad-IIIe and SigmaDDR-IIIe ECCRAMs utilize differential amplifiers to receive all high-speed input signals, where one input of the diff-amp is connected to the signal itself and the other input is connected to a reference voltage (VREF) typically equal to half the I/O voltage (VDDQ); that is, VREF = VDDQ/2. These ECCRAMs also implement symmetric pull-up (to VDDQ) and pulldown (to VSS) on-die termination (ODT) on all high-speed input and I/O signals. Therefore, when the ODT is enabled it will pull an undriven/floating input to VDDQ/2 = VREF. This situation should be avoided, because if both inputs of the diff-amp are driven/ pulled to the same voltage (in this case, VDDQ/2), the diff-amp can enter a metastable state and consume significantly more current than it would otherwise. For terminated input-only (i.e. uni-directional) signals, this situation is easily avoided by having the ECCRAM Controller (i.e. ASIC, FPGA, etc.), henceforth referred to simply as the “Controller”, keep its corresponding output drivers enabled and driving the signals Low or High at all times. However, for terminated I/O (i.e. bi-directional) signals, this situation is not so easily avoided, because the Controller must disable its corresponding output drivers when it uses the signals to receive information from the ECCRAM. The only terminated I/O signals implemented in SigmaQuad-IIIe and SigmaDDR-IIIe ECCRAMs are the data I/O signals (DQs) in SigmaDDR-IIIe devices. These signals function as inputs when the ECCRAM is receiving (write) data from the Controller, and they function as outputs when the ECCRAM is sending (read) data to the Controller. For the purposes of this document, it is assumed that, like the ECCRAM, the Controller also implements symmetric pull-up and pull-down ODT on its DQs. Consequently: • The ECCRAM must enable its DQ ODT and disable its DQ drivers, and the Controller must disable its DQ ODT and enable its DQ drivers, when the Controller is sending (write) data to the ECCRAM. • The ECCRAM must disable its DQ ODT and enable its DQ drivers, and the Controller must enable its DQ ODT and disable its DQ drivers, when the Controller is receiving (read) data from the ECCRAM. A methodology has been developed for these SigmaDDR-IIIe ECCRAMs (and for the Controllers designed to operate them) to ensure that the DQ bus is never pulled to VDDQ/2 = VREF, neither by the ECCRAM ODT nor by the Controller ODT, during Readto-Write and Write-to-Read transitions. The fundamental concept of the methodology is - both the ECCRAM and the Controller drive the DQ bus Low (with their respective DQ ODT disabled) at all times except: 1. When a particular device is driving the DQ bus with valid data, and 2. From shortly before to shortly after a particular device is receiving valid data on the DQ bus, during which time the receiving device enables its DQ ODT. And, during Write-to-Read and Read-to-Write transitions, each device enables and disables its DQ ODT while the other device is driving DQ Low, thereby ensuring that the DQ bus is never pulled to VDDQ/2. Rev: 1.03 5/2011 1/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology Preliminary AN1016 In order for this methodology to work as described, the Controller must have the ability to: 1. Place the ECCRAM into “DQ Drive Low Mode” at the appropriate times (i.e. before and after the ECCRAM drives valid Read Data), and 2. Place the ECCRAM into “DQ ODT Mode” at the appropriate times (i.e. before, during, and after the ECCRAM receives valid Write Data). That ability is provided via the existing R/W control pin. When the ECCRAM samples R/W High (regardless of the state of the LD control pin), it disables its DQ termination, and drives the DQ bus Low except while driving valid Read Data in response to Read operations. When the ECCRAM samples R/W Low (regardless of the state of LD), it disables its DQ drivers, and enables its DQ termination. Note that NOPs initiated with R/W High and LD High are referred to as “NOPr” operations. Note that NOPs initiated with R/W Low and LD High are referred to as “NOPw” operations. This extended definition of the R/W control pin enables the Controller to: • • • • Place the ECCRAM in DQ ODT Mode, via NOPw operations, before initiating Write operations. Keep the ECCRAM in DQ ODT Mode, via NOPw operations, after initiating Write operations. Place the ECCRAM in DQ Drive Low Mode, via NOPr operations, before initiating Read operations. Keep the ECCRAM in DQ Drive Low Mode, via NOPr operations, after initiating Read operations. DQ Truth Table - Read Latency (RL) = 2 cycles LD R/W Current Operation DQ State CK (tn) CK (tn) (tn) CK (tn+2) 1 0 NOPw ODT Enabled 0 0 Write ODT Enabled 1 1 NOPr ODT Disabled, Drive Low 0 1 Read ODT Disabled, Drive Read Data DQ Truth Table - Read Latency (RL) = 3 cycles LD R/W Current Operation DQ State CK (tn) CK (tn) (tn) CK (tn+2) CK (tn+3) 1 0 NOPw ODT Enabled --- 0 0 Write ODT Enabled --- 1 1 NOPr ODT Disabled, Drive Low --- 0 1 Read ODT Disabled, Drive Low Drive Read Data Note: For RL=3 case, when a Read operation is initiated in cycle “n”, R/W must be “High” at CK of cycle “n+1” (i.e. a Read operation must always be followed by a Read or NOPr operation). In that case, the DQ state in cycle “n+3” is “Drive Read Data”, as indicated in the table above. Rev: 1.03 5/2011 2/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology Preliminary AN1016 Controlling Write-to-Read and Read-to-Write Transitions The Write-to-Read and Read-to-Write transition requirements outlined below are a function of several factors: • ECCRAM Cycle Time (tCYC). tCYC varies by application. • ECCRAM Write Latency (WL) - The number of cycles from Write Command input to (first) Write Data input. WL is fixed to 1 cycle in SigmaDDR-IIIe. • ECCRAM Read Latency (RL) - The number of cycles from Read Command input to (first) Read Data output. RL is programmable to 2 or 3 cycles in SigmaDDR-IIIe. • ECCRAM DQ ODT Enable/Disable Latency (ZTL) - The number of cycles from Write/NOPw Command input to DQ ODT enabled, and the number of cycles from Read/NOPr Command input to DQ ODT disabled. ZTL is fixed to 2 cycles in SigmaDDR-IIIe. • ECCRAM Input Clock to DQ State Transition (tKQ) - In the cycle in which a DQ State Transition occurs, it is the amount of time from CK to DQ Driver Enable/Disable/Low->High Transition/High->Low Transition, and from CK to DQ ODT Enable/Disable. tKQ equals -0.4ns / 0.0ns / +0.4ns min/typ/max in SigmaDDR-IIIe. • Propagation Delay between Controller and ECCRAM (tPD). tPD varies by application. Write 1. The Controller initiates one or more Write operations. Prior to Step 1 (see Step 6 below for how this occurs): • The Controller is driving DQ Low. • The ECCRAM is in DQ ODT Mode. During Step 1: • The Controller stops driving DQ Low and begins driving valid Write Data 0.75 cycles after initiating the first Write operation, in order to meet the ECCRAM WL requirements. Write-to-Read Transition Immediately after initiating the Write operations, the Controller could initiate one or more NOPw operations to keep the ECCRAM in DQ ODT Mode for some amount of time after the Controller stops driving valid Write Data. However, it is not necessary, because ECCRAM ZTL (2 cycles) is always greater than WL (1 cycle). If the Controller initiates a NOPr or Read operation immediately after a Write operation, the ECCRAM will remain in DQ ODT Mode for at least “1.25*tCYC + tKQ.min” after the Controller stops driving valid Write Data (calculated at the ECCRAM pins). Consequently, no intervening NOPw operations are necessary. 2. The Controller initiates NOPr operations, to put the ECCRAM in DQ Drive Low Mode some amount of time before it begins driving valid Read Data. During Step 2: • The Controller stops driving valid Write Data and begins driving DQ Low 0.75 cycles after initiating the first NOPr operation (or after initiating the first Read operation, if no NOPr are initiated in Step 2). The Controller drives DQ Low in order to prevent the ECCRAM DQ ODT from pulling the DQ bus to VDDQ/2. • The ECCRAM disables its DQ ODT and begins driving DQ Low ZTL = 2 cycles after detecting the first NOPr operation. The ECCRAM drives DQ Low in order to prevent the Controller DQ ODT (when it is enabled in Step 3) from pulling the DQ bus to VDDQ/2. Typically, the ECCRAM should be put in DQ Drive Low Mode “m” = 1~3 cycles before it begins driving valid Read Data. In order to put the ECCRAM in DQ Drive Low Mode “m” cycles before it begins driving valid Read Data, the Controller must initiate “n” = “m + ZTL - RL” = “m + 2 - RL” NOPr operations in Step 2. For example, if m = 2 and RL = 3, then n = 1. Rev: 1.03 5/2011 3/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology Preliminary AN1016 The integer value of “m”, and therefore the number “n” of NOPr operations needed in Step 2, is a function of tCYC, tKQ, and tPD. Specifically, “m” must be > 0.5 + ((tKQ.max + 2*tPD) / tCYC) (and therefore “m” must be 1). This ensures that the Controller stops driving DQ Low and enables its DQ ODT (as described in Step 3 below) after the ECCRAM disables its DQ ODT and begins driving DQ Low, and before the ECCRAM stops driving DQ Low and begins driving valid Read Data. The former is required because if the Controller were to enable its DQ ODT before the ECCRAM disables its DQ ODT, both devices would be enabling their DQ ODT simultaneously, pulling the DQ bus to VDDQ/2. Note: SigmaDDR-IIIe devices must be controlled such that they drive DQ Low for at least one cycle before driving valid Read Data. When RL = 2, the equation “n” = “m + ZTL - RL” results in n 1 when (as required) m 1, and n 1 ensures that the ECCRAM drives DQ Low for at least one cycle before driving valid Read Data, meeting the requirement. When RL = 3, the equation “n” = “m + ZTL - RL” results in n 0 when (as required) m 1. But, the ECCRAM will always drive DQ Low for RL - ZTL = 3 - 2 = 1 cycle before driving valid Read Data, meeting the requirement even when n = 0. Read 3. The Controller initiates one or more Read operations. During Step 3: • The Controller stops driving DQ Low and enables its DQ ODT “RL - 0.5” cycles after initiating the first Read operation. That equates to at least “(m - 0.5)*tCYC - (tKQ.max + 2*tPD)” after the ECCRAM enters DQ Drive Low Mode (calculated at the Controller pins), where “m” is the value calculated in Step 2. And, that equates to at least “0.5*tCYC + tKQ.min” before the ECCRAM begins driving valid Read Data (calculated at the ECCRAM pins). • When RL=2, the ECCRAM stops driving DQ Low and begins driving valid Read Data RL = 2 cycles after detecting the first Read operation. • When RL=3, the ECCRAM either continues to disable its DQ ODT and drive DQ Low (if one or more NOPr were initiated in Step 2), or disables its DQ ODT and begins driving DQ Low (if no NOPr were initiated in Step 2), ZTL = 2 cycles after detecting the first Read operation. Subsequently, the ECCRAM stops driving DQ Low and begins driving valid Read Data RL = 3 cycles after detecting the first Read operation. Read-to-Write Transition 4. The Controller initiates “RL - ZTL” = “RL - 2” NOPr operations, to ensure that the ECCRAM drives valid Read Data properly in response to the last Read operation initiated in Step 3. 5. The Controller initiates more NOPr operations, to put the ECCRAM in DQ Drive Low Mode for some amount of time after it stops driving valid Read Data. During Step 5: • The ECCRAM stops driving valid Read Data and begins driving DQ Low ZTL = 2 cycles after detecting the first NOPr operation. The ECCRAM drives DQ Low in order to prevent the Controller DQ ODT from pulling the DQ bus to VDDQ/2. Typically, the ECCRAM should be put in DQ Drive Low Mode for “p” = 1~3 cycles after it stops driving valid Read Data. In order to put the ECCRAM in DQ Drive Low Mode for “p” cycles after it stops driving valid Read Data, the Controller must initiate “q” = “p” NOPr operations in Step 5. The integer value of “p”, and therefore the number “q” of NOPr operations needed in Step 5, is a function of tCYC, tKQ, and tPD. Specifically, “p” must be > 0.5 + ((tKQ.max + 2*tPD) / tCYC) (and therefore “p” must be 1). This ensures that the Controller disables its DQ ODT and begins driving DQ low (as described in Step 6 below) after the ECCRAM stops driving valid Read Data and begins driving DQ Low, and before the ECCRAM stops driving DQ Low and enables its DQ ODT. The latter is required because if the Controller were to disable its DQ ODT after the ECCRAM enables its DQ ODT, both devices would be enabling their DQ ODT simultaneously, pulling the DQ bus to VDDQ/2. Note: SigmaDDR-IIIe devices must be controlled such that they drive DQ Low for at least one cycle after driving valid Read Data. This requirement is met because q = p, and (as required) p 1. Rev: 1.03 5/2011 4/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology Preliminary AN1016 6. The Controller initiates NOPw operations, to put the ECCRAM in DQ ODT Mode some amount of time before the Controller begins driving valid Write Data. During Step 6: • The Controller disables its DQ ODT and begins driving DQ Low 1.5 cycles after initiating the first NOPw operation. That equates to at least “(p - 0.5)*tCYC - (tKQ.max + 2*tPD)” after ECCRAM enters DQ Drive Low Mode (calculated at the Controller pins), where “p” is the value calculated in Step 5. And that equates to at least “0.5*tCYC + tKQ.min” before the ECCRAM enters DQ ODT Mode (calculated at the ECCRAM pins). The Controller drives DQ Low in order to prevent the ECCRAM DQ ODT from pulling the DQ bus to VDDQ/2. • The ECCRAM stops driving DQ Low and enables its DQ ODT ZTL = 2 cycles after detecting the first NOPw operation. Typically, the ECCRAM should be put in DQ ODT Mode 0.75~2.75 cycles before the Controller begins driving valid Write Data. In order to put the ECCRAM in DQ ODT Mode “r - 0.25” cycles before the Controller begins driving valid Write Data, the Controller must initiate “s” = “r + 1” NOPw operations in Step 6. For example, if r = 2, s = 2 + 1 = 3. The integer value of “r”, and therefore the number “s” of NOPw operations needed in Step 6, is a function of tCYC, tKQ, and tPD. Specifically, “r” must be > 0.25 + ((tKQ.max + 2*tPD) / tCYC) (and therefore “r” must be 1). This ensures that the Controller stops driving DQ Low and begins driving valid Write Data (as described in Step 7 below) after the ECCRAM stops driving DQ Low and enables its DQ ODT. Write 7. The Controller initiates one or more Write operations. During Step 7: • The Controller stops driving DQ Low and begins driving valid Write Data 0.75 cycles after initiating the first Write operation. That equates to at least “(r - 0.25)*tCYC - (tKQ.max + 2*tPD)” after the ECCRAM enters DQ ODT Mode (calculated at the Controller), where “r” is the value calculated in Step 6. Rev: 1.03 5/2011 5/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology Preliminary AN1016 Advantages Over Conventional Implementations In conventional SRAMs (specifically, in DDR-II+ devices) that implement ODT on bidirectional Data I/O signals, the SRAM DQ ODT is always enabled, except from 0.5 cycles before the SRAM begins driving valid Read Data to 0.5 cycles after the SRAM stops driving valid Read Data. During most of the time SRAM DQ ODT is enabled (i.e., during non-Read operations), the Controller can drive DQ Low or High in order to prevent the SRAM ODT from pulling the DQ bus to VDDQ/2 = VREF. However, during non-Read to Read transitions, the Controller must stop driving DQ Low or High and enable its DQ ODT before receiving the Read Data. If the Controller does this before the SRAM disables its ODT, then the DQ bus will be pulled to VDDQ/2 = VREF by both devices’ ODT until the SRAM disables its ODT, and will continue to be pulled to VDDQ/2 = VREF by the Controller’s ODT until the SRAM begins driving valid Read Data. And if the Controller does this after the SRAM disables its ODT (difficult to implement, since the window in which this could occur is <0.5 cycles), then the DQ bus will be pulled to VDDQ/2 = VREF by the Controller’s ODT until the SRAM begins driving valid Read Data. Either way, the DQ bus will be pulled to VDDQ/2 = VREF for some amount of time before the SRAM begins driving Read Data. For similar reasons, the DQ bus will be pulled to VDDQ/2 = VREF for some amount of time during Read to non-Read transitions, after the SRAM stops driving valid Read Data, as well. The primary advantage of the SigmaDDR-IIIe DQ ODT Control methodology (and the reason it was developed in the first place) is that it prevents the DQ bus from being pulled to VDDQ/2 = VREF at ALL times, including during non-Read to Read, and Read to non-Read, transitions. A secondary advantage of the SigmaDDR-IIIe DQ ODT Control methodology is that it reduces power consumption compared to the conventional SRAM methodology. The reason this is true is that, in the SigmaDDR-IIIe methodology, the “idle/NOP” state (i.e. when no Reads or Writes are occurring) of both the ECCRAM and the Controller is “DQ Drive Low”. In which case there will be no DC current through either device’s DQs during this time. Whereas in the conventional SRAM methodology, the “idle/NOP” state of the Controller is “DQ Drive Low or High” and the “idle/NOP” state of the SRAM is “DQ ODT”. In which case there will be DC current through both device’s DQs during this time. Timing Diagrams The following page shows timing diagrams for SigmaDDR-IIIe, for both RL = 2 and RL = 3. The diagrams depict signals at both the Controller and ECCRAM pins, to help illustrate why the methodology has been defined in the manner described. In the timing diagrams: • “DQ Driver Low.en” is the internal signal in the Controller or ECCRAM that enables/disables its DQ Driver pull-down transistors (“1” = enable). • “DQ Driver High.en” is the internal signal in the Controller or ECCRAM that enables/disables its DQ Driver pull-up transistors (“1” = enable). • “DQ ODT.en” is the internal signal in the Controller or ECCRAM that enables/disables its DQ ODT pull-down and pull-up transistors (“1” = enable). • The “dummy0” states shown on the DQ bus before and after Read Data are depicted as a green line at a Low level greater than Vss, and equal to that resulting from the ECCRAM DQ Drivers driving Low into the Controller DQ ODT. • The “dummy0” states shown on the DQ bus before and after Write Data are depicted as an orange line at a Low level greater than Vss, and equal to that resulting from the Controller DQ Drivers driving Low into the ECCRAM DQ ODT. • The “Vss” states shown on the DQ bus between “dummy0” states are depicted as a purple line at a Low level equal to Vss, and resulting from both the ECCRAM and Controller DQ Drivers driving Low simultaneously. Rev: 1.03 5/2011 6/7 Specifications cited are subject to change without notice. For latest documentation see http://www.gsitechnology.com. © 2009, GSI Technology SigmaDDR-IIIe. RL = 2. tKQ = 0ns. tPD = 0.5 cycles. Signals at Controller Write NOPr1 NOPr2 Read NOPr1 NOPr2 NOPw1 NOPw2 NOPw3 Write NOPr1 Clock R/W# LD# DQ Driver Low.en DQ Driver High.en DQ ODT.en =1.5cyc - tKQ 2*tPD =1.25cyc + tKQ + 2*tPD DQ Data Wr Data A11 dummy0 Wr Data A12 =1.5cyc - tKQ 2*tPD =0.5cyc + tKQ + 2*tPD dummy0 Rd Data A21 Rd Data A22 =0.5cyc + tKQ + 2*tPD =1.75cyc - tKQ - 2*tPD dummy0 dummy0 Vss Wr Data A31 Wr Data A32 Vss Signals at ECCRAM Write NOPr1 NOPr2 Read NOPr1 NOPr2 NOPw1 NOPw2 NOPw3 Write NOPr1 Clock R/W# LD# DQ Driver Low.en DQ Driver High.en DQ ODT.en =1.25cyc + tKQ DQ Data Wr Data A11 =1.5cyc - tKQ dummy0 Wr Data A12 =1.5cyc - tKQ =0.5cyc + tKQ dummy0 Rd Data A21 Rd Data A22 =0.5cyc + tKQ =1.75cyc - tKQ dummy0 dummy0 Vss Wr Data A31 Wr Data A32 Vss SigmaDDR-IIIe. RL = 3. tKQ = 0ns. tPD = 0.5 cycles. Signals at Controller Write NOPr1 Read NOPr1 NOPr2 NOPr3 NOPw1 NOPw2 NOPw3 Write NOPr1 Clock R/W# LD# DQ Driver Low.en DQ Driver High.en DQ ODT.en =1.25cyc + tKQ + 2*tPD DQ Data Wr Data A11 =1.5cyc - tKQ 2*tPD dummy0 Wr Data A12 =1.5cyc - tKQ 2*tPD =0.5cyc + tKQ + 2*tPD dummy0 Rd Data A21 Rd Data A22 =0.5cyc + tKQ + 2*tPD =1.75cyc - tKQ - 2*tPD dummy0 dummy0 Vss Wr Data A31 Wr Data A32 Vss Signals at ECCRAM Write NOPr1 Read NOPr1 NOPr2 NOPr3 NOPw1 NOPw2 NOPw3 Write NOPr1 Clock R/W# LD# DQ Driver Low.en DQ Driver High.en DQ ODT.en =1.25cyc + tKQ DQ Data Wr Data A11 Wr Data A12 =1.5cyc - tKQ dummy0 dummy0 Vss =1.5cyc - tKQ =0.5cyc + tKQ Rd Data A21 Rd Data A22 =0.5cyc + tKQ =1.75cyc - tKQ dummy0 dummy0 Vss Wr Data A31 Wr Data A32