: Spartan-3 FPGA XAPP454 (v1.1.1) 2007 6 11 Spartan-3 FPGA DD2 SDAM : Karthikeyan Palanisamy Spartan -3 DD2 SDAM Micron DD2 SDAM DD2 SDAM DD2 SDAM DD2 SDAM DD2 SDAM DD SDAM DD2 SDAM DD SDAM DD2 SDAM SSTL 1.8V I/O DD2 SDAM DD SDAM ( ) (DQS) DQS DD2 SDAM DQS DD2 SDAM DD2 SDAM 1 3 2004-2007 Xilinx, Inc. All rights reserved. Xilinx http://japan.xilinx.com/legal.htm : Xilinx Xilinx Xilinx XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 1
Spartan-3 FPGA DD2 SDAM User Interface Implementation Layer Infrastructure Data Path Control Physical Layer xapp549_02_113004 1 : DD2 SDAM 2 Spartan-3 DD2 SDAM 4 ddr2_top user_clk Infrastructure user_data Data Path IOBS DD2_IF Command & Address Controller xapp549_03_113004 2 : DD2 SDAM 4 3 4 CAS Load Mode EM(2) EM(3) DD2 SDAM 2 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM FPGA XAPP768c Spartan-3 166 MHz 333 Mb/s DD SDAM FPGA DD2 SDAM 90 270 DD2 SDAM FPGA FPGA (DCM) XAPP768c IOBS FPGA IOBS IOBS XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 3
Spartan-3 FPGA DD2 SDAM 1 DD2 SDAM 1 : dip1 DD2 SDAM ( Low) rst_dqs_div_in DD2 SDAM dqs_div flop reset_in user_input_data[(2n-1):0] DD2 SDAM n user_input_address[addwidth:0] DD2 SDAM user_bank_address[bankaddwidth:0] DD2 SDAM user_config_reg1[14:0] DD2 SDAM 1 user_config_reg2[12:0] DD2 SDAM 2 user_command_reg[3:0] DD2 SDAM burst_done Done rst_dqs_div_out rst_dqs_div_in dqs_div flop user_output_data[(2n-1):0] DD2 SDAM user_data_valid DD2 SDAM ( Low) user_cmd_ack user_command user_odt_ack ODT init_val DD2 SDAM ar_done DD2 SDAM auto-refresh clk_int DD2 SDAM clk90_int DD2 SDAM 90 sys_rst sys_rst90 90 sys_rst180 180 sys_rst270 270 : 1. DD2 SDAM 4 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM user_input_data[(2n-1):0] DD2 SDAM DD2 SDAM n DD2 SDAM DD2 SDAM user_input_address[addwidth:0] DD2 SDAM user_input_address user_bank_address[bankaddwidth:0] DD2 SDAM user_config_reg1[14:0] DD2 SDAM Load Mode user_config_reg1 14 13 11 10 9 7 6 4 3 2 0 PD W TM es Cas_latency BT Burst_length Burst_length[2:0] 4 BT Cas_latency [6:4] [6:4] CAS DD2 SDAM 3 4 CAS es [9:7] [9:7] TM Load Mode TM W [13:11] Load Mode W (Write ecovery) PD Load Mode PD (Power Down Mode) Load Mode Micron DD2 SDAM XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 5
Spartan-3 FPGA DD2 SDAM user_config_reg2[12:0] Extended Mode DD2 SDAM user_config_reg2 12 11 10 9 7 6 4 3 2 1 0 OUT DQS DQS OCD Posted CAS TT ODS es Extended Mode Micron DD2 SDAM user_command_reg[3:0] DD2 SDAM 2 2 : user_command_reg[3:0] 0000 0010 (DD2 SDAM) 0011 0100 0101 (Load Mode ) 0110 burst_done 2 DD2 SDAM 1 1 1 DD2 SDAM user_output_data[(2n-1):0] DD2 SDAM DD2 SDAM DD2 SDAM DD SDAM SD 2n n DD2 SDAM user_data_valid user_output_data[(2n-1):0] user_cmd_ack DD2 SDAM DD2 SDAM init_val DD2 SDAM DD2 SDAM 6 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM ar_done DD2 SDAM DD2 SDAM 1 : 3 3 : ddr_dq[(datawidth 1):0] DD2 SDAM ddr_dqs[(dqswidth-1):0] DD2 SDAM ddr_cke DD2 SDAM ddr_csb Low ddr_rasb Low ddr_casb Low ddr_web Low ddr_dm ddr_ba ddr_address ( ) ddr2_clk* ddr_odt[4:0] DD2 SDAM DD2 SDAM DD2 SDAM Mode egister Extended Mode user_config_reg1 [14:0] user_config_reg2 [12:0] DD2 SDAM DD2 SDAM init_val 3 sys_clk sys_clkb user_config_reg1(14:0) user_config_reg2(12:0) user_command_reg init_val 1 2 Init 3 Configuration Data Configuration Data 4 Cmd xapp549_09_120804 3 : DD2 SDAM XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 7
Spartan-3 FPGA DD2 SDAM 1. command_reg [2:0] 2 user_config_reg1[14:0] user_config_reg2[12:0] 2. command_reg [2:0] 3. user_config_reg1[14:0] user_config_reg2[12:0] 4. init_val DD2 SDAM 4 4 DD2 SDAM 2 DD2 SDAM 1 DD2 SDAM SYS_CLKb user_cmd_ack user_cmd_ack 2.5 user_input_address[addwidth:0] user_input_address SYS_CLK clk90_int_val user_input_address 2 4 user_input_data[(2n-1):0] 2 DD2 SDAM burst_done SYS_CLK 2 burst_done 2 DD2 SDAM user_cmd_ack sys_clk sys_clkb clk90_int_val 1 user_command_reg[3:0] Write Command user_cmd_ack 2 6 2.5 clks 4 user_input_address[21:0] Addr 1 Addr 2 3 user_input_data[(2n-1):0] Data 1 Data 2 Data 3 Data 4 burst_done 5 xapp549_05_120604 4 : 4 DD2 SDAM 1. DD2 SDAM SYS_CLK 2. DD2 SDAM SYS_CLKb user_cmd_ack 8 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM 3. user_input_address user_input_data clk90_int_val signal 4. user_cmd_ack 2.5 user_input address [21:0] user_input_address SYS_CLK 5. last user_input_address 2 burst_done 6. DD2 SDAM user_cmd_ack DD2 SDAM 5 4 2 DD2 SDAM SYS_CLK DD2 SDAM SYS_CLKb user_cmd_ack user_cmd_ack 2.5 user_input_address[addwdth:0] user_input_address SYS_CLK DD2 SDAM clk90_int_val user_output_data user_output_data user_data_valid DD SDAM SD 2n n DD2 SDAM 4 DD2 SDAM 2 DD2 SDAM 2n burst_done SYS_CLK 2 burst_done DD2 SDAM user_cmd_ack sys_clk sys_clkb clk90_int_val 1 user_command_reg[3:0] ead Command user_cmd_ack 2 2.5 clks 3 7 user_input_address[21:0] Address 1 Address 2 burst_done 6 4 user_valid_data 5 user_output_data[(2n-1):0] Data 1 Data 2 Data 3 Data 4 5 : 4 DD2 SDAM XAPP549_07_120604 XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 9
Spartan-3 FPGA DD2 SDAM 1. SYS_CLK 2. DD2 SDAM SYS_CLKb user_cmd_ack 3. user_cmd_ack 2.5 user_input_address [21:0] user_input_address SYS_CLK 4. user_output_data user_data_valid 5. DD2 SDAM user_output_data user_output_data clk90_int_val DD SDAM SD 2n n DD2 SDAM 4 DD2 SDAM 2 6. burst_done SYS_CLK 2 burst_done 7. DD2 SDAM user_cmd_ack DD2 SDAM Auto_efresh DD2 SDAM auto_refresh auto_refresh SYS_CLK auto_refresh DD2 SDAM SYS_CLKb ar_done DD2 SDAM XAPP768c DD SDAM DD2 SDAM XAPP768c 4 : (ps) Tclock 6000 Tclock_phase 3000 Tdcd 250 Tdata_period 2750 Tclock_phase-Tdcd Tclock_skew 50 50 50 Tpackage_skew 90 90 90 Tsetup 350 350 0 ( ) 10 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM 4 : () (ps) Thold 350 0 350 Tphase_offset_error 140 140 140 DCM Tjitter 0 0 0 DCM Total uncertainties 980 630 630 Window 1490 630 2120 1490ps 5 : (ps) Tclock 6000 Tclock_phase 3000 Tclock_duty_cycle_dist 300 0 0 Tdata_period 2700 clock_phase-tdcd Tdqsq 350 350 0 Tpackage_skew 90 90 90 Tds 452 452 0 Tdh -35 0-35 Tjitter 100 0 0 Tlocal_clock_line 20 20 20 Tpcb_layout_skew 50 50 50 Tqhs 450 0 450 Spartan-3-5 Spartan-3-5 DQ Total uncertainties 962 575 Window for DQS position for normal case 1163 962 2125 1163ps : 1. Tdqsq Tqhs Micron MT47H64M4FT-37E ev C 05/04 EN 2. Spartan-3 5 1.33 XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 11
Spartan-3 FPGA DD2 SDAM 6 : (ps) Tclock 6000 Tclock_skew 50 50 50 Tpackage_skew 90 90 65 Tsetup 500 500 0 Thold 500 0 500 Tphase_offset_error 140 140 140 Tduty_cycle_distortion 0 0 0 Tjitter 0 0 0 Total uncertainties 780 755 Command window 3025 2220 5245 3025ps 12 japan.xilinx.com XAPP454 (v1.1.1) 2007 6 11
Spartan-3 FPGA DD2 SDAM Spartan-3 DD2 SDAM COE Generator MIG (Memory Interface Generator) IP http://japan.xilinx.com/xlnx/xil_sw_updates_home.jsp XAPP768 Spartan-3 166 MHz 333 Mb/s DD SDAM Micron MT47H16M16FG-37E http://www.micron.com/products/dram/ddr2sdram/partlist.aspx?density=256mb Spartan-3 FPGA DD2 SDAM (Synplicity ) Project Navigator 2004/12/06 1.0 2007/06/07 1.1 MIG 2007/06/11 1.1.1 XAPP454 (v1.1.1) 2007 6 11 japan.xilinx.com 13