Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices November 2002, ver. 2.0 Introduction Application Note 212 Typical I/O architectures transmit a single data word on each positive clock edge and are limited to the associated clock speed. To achieve a 400-megabits per second (Mbps) transfer rate, a system requires a 400-MHz clock. Many new applications have introduced a double data rate I/O (DDRIO) architecture to enhance single data rate (SDR) architectures, which allows for faster throughput. While SDR architectures capture data on one edge of a clock. The DDR architectures captures data on both edges of the clock, doubling the throughput for a given clock and accelerating performance. For example, a 200-MHz clock can capture a 400-Mbps data stream, enhancing system performance and simplifying board design. StratixTM and Stratix GX devices feature dedicated DDR I/O circuitry. This circuitry allows you to build applications that use DDR signaling, such as memory interfaces including DDR SDRAM, fast cycle random access memory (FCRAM), and quad data rate static random access memory (QDR) as well as implement high-speed interface standards. This application note describes the DDR I/O capabilities of Stratix and Stratix GX devices, including I/O element (IOE) details and DDR I/O implementation using the Quartus II software. DDR I/O Elements Each IOE contains six registers and one latch. Two registers and a latch are used for input, two registers are used for output, and two registers are used for output enable control. The functionality of these registers is described below for input, output, and bidirectional pin configuration. Input Configuration When the IOE is configured as an input pin, input registers AI, BI, and latch CI implement the input path for DDR I/O. Figure 1 shows an IOE configured for DDR inputs for a Stratix or Stratix GX device. Altera Corporation AN-212-2.0 1 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 1. Input DDR I/O Path Configuration DFF dataout_l D INPUT Q Input Reg A I DFF Data_in Logic Array LALatch TCH dataout_h neg_reg_out D Q D Q ENA Input Reg B I Latch C I inclock On the rising edge of the clock, the positive-edge triggered register (AI) acquires the first bit of data. On the corresponding falling edge of the clock, the negative-edge triggered register (BI) acquires the second bit of data. For a successful data transfer to the logic array, the latch (CI) synchronizes the data from register BI to the positive edge of the clock. Output Configuration The dedicated output registers for Stratix and Stratix GX devices are labeled AO and BO. These positive-edge triggered registers and a multiplexer are used for implementing the output path for DDR I/O. Figure 2 shows the IOE configuration for DDR outputs in Stratix and Stratix GX devices. 2 Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 2. Output DDR I/O Path Configuration DFF oe D Q OE Reg A OE (2) OR2 DFF D Logic Array Q OE Reg B OE (1) DFF datain_l D Q TRI Output Reg Ao 0 1 OUTPUT dataout DFF datain_h D outclock Q Output Reg Bo Notes to Figure 2: (1) (2) Register BOE generates the delayed enable signal for DDR SDRAM applications. Register AOE generates the enable signal for general-purpose DDR I/O applications. On the positive edge of the clock, two consecutive data bits are captured in registers Ao and Bo. The outputs of these two registers are fed to the inputs of a 2-to-1 multiplexer, which uses the output register clock as its control signal. A high clock selects the data in register Bo, and a low level of the clock selects the data in register Ao. This process doubles the data rate. Altera Corporation 3 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Bidirectional Configuration Input and output registers are independent and enable the bidirectional DDR I/O path can be implemented entirely in the I/O element. The bidirectional configuration includes an input path, an output path, and two output enable registers. The bidirectional path consists of two data flow paths: input path active and output path active. When the input path is active, the output enable disables the tri-state buffer, which prevents data from being sent out on the output path. Disabling the tri-state buffer prevents contention at the I/O pin. The input path behaves like the input configuration as shown in Figure 1 on page 2. During output transactions, the output enable register Aoe controls the flow of data from the output registers. During outgoing transactions, the bidirectional configuration behaves like the output configuration as shown in Figure 2. The DDR I/O input registers can be bypassed in the bidirectional dataflow. For example, the output registers may be used while the input pin drives into the logic array, bypassing the input registers. The second output enable register (BOE) is used for DDR SDRAM interfaces. This negative-edge register extends the high-impedance state of the pin by a half clock cycle. This feature is enabled by using the altddio_bidir megafunction in the Quartus II software. Figure 3 shows the bidirectional DDR I/O configuration for Stratix and Stratix GX devices. f 4 For more information on DDR I/O megafunctions, see the “DDR I/O Megafunctions” on page 7. Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 3. Bidirectional DDR I/O Path Configuration DFF oe D Q OE Reg A OE OR2 DFF D Q OE Reg B OE (1) DFF datain_l D Q 0 1 Output Reg Ao TRI I/O Pin DFF Logic Array datain_h D Q Output Reg Bo outclock DFF dataout_l Q D Input Reg A I Latch TCH LA dataout_h Q D DFF neg_reg_out Q D ENA Latch C I Input Reg B I inclock Note to Figure 3: (1) Register BOE generates the delayed enable signal for DDR SDRAM applications. Altera Corporation 5 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices f For more information about clock signals and output enable signals for Stratix or Stratix GX devices, see the Stratix Device Family Data Sheet or the Stratix GX FPGA Family Data Sheet. DDR I/O Timing Figure 4 shows the functional timing waveform for the input path. The signal names are the port names used in the altddio_in megafunction. The signal data_in is the input from the pin to the DDR circuitry. neg_reg_out is the output of register BI. dataout_h is the output of latch CI and dataout_l is the output of register AI. dataout_h and dataout_l feed the core and illustrate the conversion of the data from a DDR implementation to positive-edge triggered data. Figure 4. DDR I/O Input Timing Waveform inclock data_in neg_reg_out XX D0 XX E0 D1 E1 D2 D1 D0 D3 E2 D2 dataout_h XX D0 D1 dataout_l XX E0 E1 D3 D2 E2 The functional timing waveform for the output path is shown in Figure 5. The output enable oe can be driven from a pin or internal logic. The oe signal feeds the output enable register (Aoe) and output enable register (BOE). When oe is high, the output is tristated. The data signals datain_l and datain_h are driven from the logic array to output registers Ao and Bo. The signal data_out is the output from the DDR circuitry to the pin. Figure 5. DDR I/O Output Timing Waveform outclock oe mux control signal datain_l XX D0 datain_h XX E0 dataout 6 XX E0 D1 D2 E1 D0 E1 D3 E3 E2 D1 ZZ Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices DDR I/O Megafunctions You can implement DDR I/O interfaces in the Quartus II software using the altddio_in, altddio_out, and altddio_bidir megafunctions. The megafunction altddio_in is used for the DDR I/O input path, altddio_out is used for the DDR I/O output path, and altddio_bidir is used for the DDR I/O bidirectional path. These megafunctions allow you to customize DDR I/O parameters. altddio_in The altddio_in megafunction configures the Stratix or Stratix GX IOE for DDR inputs. Tables 1, 2, and 3 show the port names and parameters for altddio_in. The options listed in these tables are valid for Stratix and Stratix GX devices. Other ports and parameters are available if you select a different device family. Table 1. altddio_in Input Ports Name Required Description Comments data_in[] Yes DDR input data port. Input port WIDTH wide. The data_in port should be directly fed from an input pin in the top level design. inclock Yes Clock signal to sample the DDR The data_in port is sampled on each input. clock edge of the inclock signal. inclocken No Clock enable for the data clock. aclr No Asynchronous clear input. The aclr port and the aset port cannot be connected at the same time. aset No Asynchronous preset input. The aclr port and the aset port cannot be connected at the same time. Table 2. altddio_in Output Ports Name Altera Corporation Required Description dataout_h[] Yes Data sampled from the data_in[] port at the falling edge of the inclock signal. dataout_l[] Yes Data sampled from the data_in[] port at the rising edge of the inclock signal. 7 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Table 3. altddio_in Parameters Type Required Description WIDTH Parameter Integer Yes Width of the data_in, dataout_h, and dataout_l ports POWER_UP_HIGH String No When both the aset and aclr ports are unused, the POWER_UP_HIGH parameter can specify the powerup state of the output ports. Values are ON and OFF. The default setting is OFF. INTENDED_DEVICE_FAMILY String No This parameter is used for modeling and behavioral simulation. Create the altddio_in megafunction with the MegaWizard® Plug-in Manager to calculate the value for this parameter. altddio_out The altddio_out megafunction configures the Stratix or Stratix GX IOE for DDR outputs. Tables 4, 5, and 6 show the port names and parameters for altddio_out. The options listed in these tables are valid for Stratix and Stratix GX devices. Other ports and parameters can be available if you select a different device family. Table 4. altddio_out Input Ports Required Description datain_h[] Name Yes Input data, which is output on the high level of the outclock port. Input port WIDTH wide. datain_l[] Yes Input data, which is output on the low level of the outclock port. Input port WIDTH wide. outclock Yes Clock signal to register the data output. The dataout port outputs the DDR data on each level of the outclock signal. outclocken No Clock enable for the outclock port. aclr No Asynchronous clear input. The aclr port and the aset port cannot be connected at the same time. aset No Asynchronous set input. The aclr port and the aset port cannot be connected at the same time. oe No Output enable for the dataout port. Active-low signal. 8 Comments Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Table 5. altddio_out Output Ports Name dataout[] Required Yes Description Comments DDR output data port. Output port WIDTH wide. The dataout port should directly feed an output pin in the top-level design. Table 6. altddio_out Parameters Type Required Comments WIDTH Parameter Integer Yes This parameter sets the width of the datain_h, datain_l, and dataout ports. POWER_UP_HIGH String No If both the aset and aclr ports are unused, the POWER_UP_HIGH parameter is available to specify the power-up state of the output ports. Values are ON and OFF. The default setting is OFF. INTENDED_DEVICE_FAMILY String No This parameter is used for modeling and behavioral simulation. Create the altddio_out megafunction with the MegaWizard Plug-in Manager to calculate the value for this parameter. OE_REG String No This specifies whether the oe port is registered. Values are REGISTERED, UNREGISTERED, and UNUSED. The default setting is UNUSED. EXTEND_OE_DISABLE String No This specifies whether the second oe register should be used. When the second oe register is used, the output pin is held at high impedance for an extra half clock cycle after the oe port goes high. Values are ON, OFF, and UNUSED. The default setting is UNUSED. This option is used to implement DDR memory interfaces. altddio_bidir The altddio_bidir megafunction configures the Stratix or Stratix GX IOE for bidirectional DDR inputs and outputs. Tables 7, 8, and 9 show the port names and parameters for altddio_bidir. The options listed in these tables are valid when targeting Stratix and Stratix GX devices. Other ports and parameters are available if you select a different device family. Altera Corporation 9 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Table 7. altddio_bidir Input Ports Name Required Description Comments datain_h[] Yes Input data to be output to the padio port at the falling edge of the outclock port. Input port WIDTH wide. datain_l[] Yes Input data to be output to the Input port WIDTH wide. padio port at the rising edge of the outclock port. inclock Yes Clock signal to sample the DDR input. inclocken No Clock enable for the inclock port. outclock Yes Clock signal to register the data output. outclocken No Clock enable for the outclock port. aclr No Asynchronous clear input. The aclr port and the aset port cannot be connected at the same time. aset No Asynchronous set input. The aclr port and the aset port cannot be connected at the same time. oe No Output enable for the bidirectional If oe is not selected, then the padio padio port. port is an output port. This signal is active low. The padio port is sampled on each clock edge of the inclock signal. The padio port outputs the DDR data on each level of the outclock signal. Table 8. altddio_bidir Output Ports Name Required Description dataout_h[] Yes Data sampled from the padio port at the falling edge of the inclock signal. dataout_l[] Yes Data sampled from the padio port at the rising edge of the inclock signal. combout No Combinatorial data from the padio port to the logic array. padio Yes Bidirectional DDR port that should The DDR data is transmitted and directly feed a bidirectional pin in the received on this bidirectional port. top-level design. 10 Comments Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Table 9. altddio_bidir Parameters Type Required WIDTH Name Integer Yes Width of the datain_h, datain_l, dataout_h, dataout_l, and padio ports. POWER_UP_HIGH String No When both the aset and aclr ports are unused, the POWER_UP_HIGH parameter is available to specify the power-up state of the output ports. Values are ON, and OFF. The default setting is OFF. INTENDED_DEVICE_FAMILY String No This parameter is used for modeling and behavioral simulation purposes. Create the altddio_bidir megafunction with the MegaWizard Plug-in Manager to calculate the value for this parameter. OE_REG String No Specifies whether the oe port is registered. Values are REGISTERED, UNREGISTERED, and UNUSED. The default setting is UNUSED. IMPLEMENT_INPUT_IN_LCELL String No Specifies whether the input channels should be implemented using logic cells. Values are ON, OFF, and UNUSED. The default setting is UNUSED. EXTEND_OE_DISABLE String No Specifies whether the second oe register should be used. When the second oe register is used, the output pin is held at high impedance for an extra half clock cycle after the oe port goes high. Values are ON, OFF, and UNUSED. The default setting is UNUSED. This option is used to implement DDR memory interfaces. Using DDR I/O Megafunctions Comments This section describes how to implement DDR I/O megafunctions in a design. Figure 6 shows a simple implementation of the altddio_in and altddio_out megafunctions. Verilog HDL & VHDL DDR I/O Megafunctions Examples Altera provides design files (in Verilog HDL and VHDL) for the sample designs described in this section. You can download the design files from the Altera website at http://www.altera.com. for The files provided with this application note implement the designs shown in Figure 6 and Figure 8 in both Verilog HDL and VHDL. These files show how to instantiate the DDR I/O megafunctions in Verilog HDL and VHDL. Altera Corporation 11 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 6. Sample Design using the altddio_in & altddio_out Megafunctions divide8 ddrin8 DDRIN8_IN[7..0] CLK INPUT VCC INPUT VCC datain[7..0] clk inclock DDIO Input dataout_h[7..0] DDRIN8_OUT_H[7..0] dataout_i[7..0] DDRIN8_OUT_L[7..0] quotient[7..0] numer[7..0] quotient[7..0] denom[7..0] remain[7..0] remain[7..0] clk Power up Low Numer is UNSIGNED Denom is UNSIGNED Pipeline length of 3 inst1 DDRIN8_OUT_H[7..0] DDRIN8_OUT_L[7..0] ddrout8 quotient[7..0] datain_h[7..0] remain[7..0] datain_I[7..0] dataout[7..0] DDROUT8_OUT[7..0] DDIO Input outclock Power up Low quotient[7..0] REG_DDROUT8_IN_H[7..0] remain[7..0] REG_DDROUT8_IN_L[7..0] In this design, data is received at double the clock rate through pins DDRIN8_IN[7..0] of the DDRIN8 megafunction. The input data is fed to a simple divide circuit. The DDRIN8_OUT_H[7..0] signals are the numerator and the DDRIN8_OUT_L[7..0] signals are the denominator. The equation below describes the function of the sample design in Figure 6. DDRIN8_OUT_H[7..0]/DDRIN8_OUT_L[7..0] = quotient[7..0] R remain[7..0] These sets of signals are passed into the library of parameterized modules (LPM) function divide8 where the quotient and remainder are calculated. The divider calculates the quotient and remainder through a three-stage pipeline. The quotient and remainder are then fed via signals quotient[7..0] and remain[7..0] into the DDRIN8 megafunction. The DDRIN8 megafunction then drives the data out through pins DDROUT8_OUT[7..0] at double the data rate. Figure 7 shows the functional waveform for the sample design. 12 Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 7. Timing Results for Sample Design Using altddio_in & altddio_out 1. The numerator (100) and denominator (5) are captured at 200 Mbps through pin DDRIN8_IN. 2. On the rising edge of clk at 7.5 ns, the numerator (100) drives onto the signal DDRIN8_OUT_H and the denominator (5) drives onto the signal DDRIN8_OUT_L. 3. At 27.5 ns, the quotient (20) and the remainder (0) are calculated and driven onto signals REG_DDROUT8_IN_H and REG_DDROUT8_IN_L. 4. The high level of clk, starting at 37.5 ns, selects the quotient (20) to drive the DDROUT8_OUT pin, and the low level of clk selects the remainder (0) to drive the same pin. 5. The waveform contains calculations for two more sets of numbers. The latency (7.5 ns to 37.5 ns) exists because of a three-stage pipeline in the divider. Figure 8 shows a simple implementation of the ddr_bidir8 megafunction. Altera Corporation 13 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 8. Sample Design Using the altddio_bidir Megafunction divide8 DDRBIDIR8_OUT_H[7..0] DDRBIDIR8_OUT_L[7..0] clk INPUT VCC numer[7..0] denom[7..0] clk ddr_bidir8 quotient[7..0] remain[7..0] Numer is UNSIGNED Denom is UNSIGNED Pipeline length of 3 quotient[7..0] remain[7..0] datain_h[7..0] datain_I[7..0] dataout_h[7..0] DDRBIDIR8_OUT_H[7..0] ddio bidir dataout_i[7..0] DDRBIDIR8_OUT_L[7..0] oe oe padio[7..0] inclock BIDIR VCC DDR_BIDIR8[7..0] outclock inst Power up Low inst1 oe INPUT VCC oe DDRBIDIR8_OUT_H[7..0] DDRBIDIR8_OUT_H[7..0] DDRBIDIR8_OUT_L[7..0] DDRBIDIR8_OUT_L[7..0] quotient[7..0] REG_DDRBIDIR8_IN_H[7..0] remain[7..0] REG_DDRBIDIR8_IN_L[7..0] This design implements the same divider example as shown in Figure 8, but instead the functionality of altddio_in and altddio_out are implemented in a single megafunction altddio_bidir. The bidirectional pins DDR_BIDIR8[7..0] receive data at double the clock rate. The DDRBIDIR8_OUT_H[7..0] signals are the numerator and the DDRBIDIR8_OUT_L[7..0] signals are the denominator. These two sets of signals are passed into divide8 where the quotient and remainder are calculated. The divider calculates the quotient and remainder through a three-stage pipeline. The quotient and remainder are then fed via signals quotient[7..0] and remain[7..0] back into the altddio_bidir megafunction. The altddio_bidir megafunction then drives the data out through pins DDR_BIDIR8[7..0] at double the data rate. Figure 9 shows the functional waveform for the sample design. Figure 9. Timing Results for a Sample Design Using the altddio_bidir Megafunction 14 Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices In Figure 9, three sets of numerators and denominators are brought in through the bidirectional pin DDR_BIDIR8. After three sets of data are brought in, the oe signal enables the answers to be driven out on the same bidirectional pin DDR_BIDIR8. The flow of the first set of data is as follows: 1. The numerator (100) and denominator (5) are captured at 200 Mbps through pin DDRBIDIR8. 2. On the rising edge of clk at 7.5 ns, the numerator (100) drives onto the signal DDRBIDIR8_OUT_H and the denominator (5) drives onto the signal DDRIN8_OUT_L. 3. At 27.5 ns, the quotient (20) and the remainder (0) are calculated and driven to signals REG_DDRBIDIR8_IN_H and REG_DDRBIDIR8_IN_L. 4. At 30 ns, the oe signal goes low, allowing the calculated quotient and remainder to be driven out on the bidirectional pin. 5. The high level of clk starting at 37.5 ns, selects the quotient (20) to drive out the DDROUT8_OUT pin and the low level of clk selects the remainder (0) to drive out on the same pin. Two more sets of numbers show the flow of the design. To allow the data to be driven out of the bidirectional pin in the simulation, make sure the input signal part of the bidirectional pin is set to a weak unknown, which allows the simulation to overwrite the value at the specific time interval. The Quartus II software creates an additional signal to emulate the output part of the bidirectional pin. This signal is named <pin name>~result. A three-stage pipeline causes latency (7.5 ns to 37.5 ns) in the divider. DDR I/O Applications This section provides information on the following DDR I/O applications: Altera Corporation 15 ■ ■ ■ DDR RAM QDR SRAM High-speed interface applications AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices DDR RAM DDR RAM can write and read data at twice the clock rate by capturing data on both the positive and negative edge of a clock. DDR RAM interfaces include DDR SRAM, DDR SDRAM, and FCRAM. DDR SRAM and DDR SDRAM are JEDEC standards and the FCRAM standard is being developed by Fujitsu and Toshiba. FCRAM uses a proprietary pipeline method and precharge to help reduce random access cycle times. These DDR memory interfaces use SSTL-II or LVCMOS as the standard for transferring data. f See the DDR SDRAM Controller White Paper for more information. QDR SRAM The QDR SRAM standard is defined jointly by Cypress, IDT and Micron. QDR SRAMs have separate DDR read and write ports that can pass data concurrently. The combination of concurrent transactions and DDR signaling allow for data to be passed four times faster than conventional SRAMs. The I/O standards used for QDR SRAMs are HSTL class I and II. f For more information on QDR SRAM, see AN 211: QDR SRAM Controller Reference Design for Stratix & Stratix GX Devices. High-Speed Interface Applications High-speed interface applications can use various differential standards such as LVDS, LVPECL, PCML, or Hypertransport as the transfer medium. These standards often use DDR data. Stratix and Stratix GX devices can implement high-speed standards either by using the dedicated differential I/O SERDES blocks or by bypassing SERDES and using the DDR I/O circuitry SERDES bypass mode. DDR I/O megafunctions, PLLs, and shift registers are all used in SERDES functionality. f 16 For more information about the differential I/O capabilities and SERDES bypass, see AN 201: Using Selectable I/O Standards in Stratix Devices and AN 202: Using High Speed Differential I/O Interfaces in Stratix Devices. Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Implementing Megafunctions The Quartus II software allows you to easily and quickly instantiate megafunctions using the MegaWizard Plug-In Manager. To implement a megafunction, follow the below steps: 1. Launch the MegaWizard Plug-In Manager by choosing MegaWizard Plug-In Manager (Tools menu) in the Quartus II software. 2. Select Create a new custom megafunction variation and click Next. See Figure 10. Figure 10. Create a New Megafunction Variation Altera Corporation 3. Click the + icon next to I/O to expand the I/O megafunction list. 4. Choose a DDR I/O megafunction under I/O. See Figure 11. 17 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 11. Select a DDR I/O Megafunction 5. Select an output file type and enter the desired name of the megafunction. You can choose AHDL (.tdf), VHDL (.vhd), or Verilog HDL (.v) as the output file type. Along with these HDL files, the MegaWizard plug-in manager creates an include file (.inc), a VHDL Component Declaration File (.cmp) and a Block Symbol File (.bsf). The following sections describe the options that are available for the DDR I/O megafunction. altddio_in Configuration The altddio_in wizard provides customizable parameters for device family, data bus width, type of reset, and the clock enable option. Figure 12 shows the wizard. 18 Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 12. altddio_in Megafunction All Stratix and Stratix GX IOEs have the six registers that are required to implement DDR I/O. Only the number of I/O pins available per Stratix or Stratix GX device limits the data bus width. Stratix and Stratix GX devices support the asynchronous clear (aclr) and asynchronous preset (aset) asynchronous resets. The asynchronous resets are exclusive and cannot be used together. If an asynchronous reset is not implemented, you must specify the state of the registers (high or low) when powering up. You can add a clock enable port can be added to control when data is clocked in. This signal prevents data from being passed through. f For more information regarding the ports for this megafunction see “altddio_in” on page 7. altddio_out Configuration The altddio_out wizard provides customizable parameters for device family, data bus width, and type of reset. Other available options include a clock enable port, an output enable port with the option to register the port, and extending the tri-state output for a half clock cycle. Figure 13 shows the wizard. Altera Corporation 19 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Figure 13. altddio_out Megafunction You can add an output enable port to the megafunction. This port prevents data from driving out of the device. The option to register the output enable port uses register Aoe described in the DDR I/O Architecture section. The Delay switch-on by a half clock cycle option is used to interface with DDR memory. This option uses the BOE register. All I/O elements in Stratix and Stratix GX devices have the six registers needed to implement DDR I/O. Only the number of I/O pins available per Stratix or Stratix GX device limits the data bus width. Stratix and Stratix GX devices support the asynchronous clear (aclr) and asynchronous preset (aset) asynchronous resets. The asynchronous resets are exclusive and cannot be used together. If an asynchronous reset is not implemented, you must specify the state of the registers (high or low) when powering up. You can add a clock enable port to control when data is clocked in. This signal prevents data from being passed through. 20 Altera Corporation AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices altddio_bidir Configuration The altddio_bidir megafunction combines altddio_in and altddio_out into a single megafunction, which instantiates bidirectional DDR ports. Figure 14 shows the altddio_bidir wizard. Figure 14. altddio_bidir Megafunction Configuration Panel The options for altddio_bidir are the same as altddio_out with include the following additions: ■ ■ An option for an unregistered data port, comb_out, is included. The comb_out port sends data to the core bypassing the DDR I/O input registers. The input path of the altddio_bidir megafunction can be implemented in logic elements. For more information about the altddio_bidir megafunction, see “altddio_bidir” on page 9. Altera Corporation 21 AN 212: Implementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices Conclusion Modern systems require faster interfaces to memory and other high-speed applications. With faster system and I/O speeds, interfaces have become a bottleneck. DDR I/O architecture helps increase the speed of these interfaces by allowing them to communicate with system logic at a higher data rate. The DDR I/O circuitry in Stratix and Stratix GX devices enables a robust, push-button solution to enhance system performance. Revision History The information contained in AN 212: Inplementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices version 2.0 supersedes information published in previous versions. The following change was made in AN 212: Inplementing Double Data Rate I/O Signaling in Stratix & Stratix GX Devices version 2.0: added Stratix GX devices throughout the document. 101 Innovation Drive San Jose, CA 95134 (408) 544-7000 http://www.altera.com Applications Hotline: (800) 800-EPLD Literature Services: lit_req@altera.com 22 Copyright © 2002 Altera Corporation. All rights reserved. Altera, The Programmable Solutions Company, the stylized Altera logo, specific device designations, and all other words and logos that are identified as trademarks and/or service marks are, unless noted otherwise, the trademarks and service marks of Altera Corporation in the U.S. and other countries. All other product or service names are the property of their respective holders. Altera products are protected under numerous U.S. and foreign patents and pending applications, maskwork rights, and copyrights. Altera warrants performance of its semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service described herein except as expressly agreed to in writing by Altera Corporation. Altera customers are advised to obtain the latest version of device specifications before relying on any published information and before placing orders for products or services. Altera Corporation