DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios

DDR2用作代码和数据区。TSE采用10/100/1000BASE SGMII模式。web server 模板运行顺利。

两个输入时钟,其中一个通过PLL生成系统时钟100MHz,以及IO时钟10MHz;另一个直接给DDR2做参考时钟输入,DDR2 memory clock frequency为300MHz。

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios_第1张图片

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios_第2张图片

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios_第3张图片

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios_第4张图片

DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios_第5张图片

DDR2的参考时钟需要直接从专用时钟引脚送入,不用指定为全局时钟,其内部PLL(实例 pll0)满足约束:

set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to "nios_core:core_inst|nios_core_ddr2:ddr2|nios_core_ddr2_pll0:pll0|altpll:upll_memphy|altpll_esc3:auto_generated|clk[1]"
set_instance_assignment -name GLOBAL_SIGNAL "GLOBAL CLOCK" -to "nios_core:core_inst|nios_core_ddr2:ddr2|nios_core_ddr2_pll0:pll0|altpll:upll_memphy|altpll_esc3:auto_generated|clk[2]"
set_instance_assignment -name GLOBAL_SIGNAL "DUAL-REGIONAL CLOCK" -to "nios_core:core_inst|nios_core_ddr2:ddr2|nios_core_ddr2_pll0:pll0|altpll:upll_memphy|altpll_esc3:auto_generated|clk[3]"
set_instance_assignment -name GLOBAL_SIGNAL "DUAL-REGIONAL CLOCK" -to "nios_core:core_inst|nios_core_ddr2:ddr2|nios_core_ddr2_pll0:pll0|altpll:upll_memphy|altpll_esc3:auto_generated|clk[5]"
set_instance_assignment -name GLOBAL_SIGNAL "DUAL-REGIONAL CLOCK" -to "nios_core:core_inst|nios_core_ddr2:ddr2|nios_core_ddr2_pll0:pll0|altpll:upll_memphy|altpll_esc3:auto_generated|clk[6]"

DDR IO约束:

set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_dq
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to DDR2_dq
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to DDR2_dq
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_dqs
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to DDR2_dqs
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to DDR2_dqs
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_dqsn
set_instance_assignment -name INPUT_TERMINATION "PARALLEL 50 OHM WITH CALIBRATION" -to DDR2_dqsn
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to DDR2_dqsn
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_ck
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITHOUT CALIBRATION" -to DDR2_ck
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_ckn
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITHOUT CALIBRATION" -to DDR2_ckn
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_addr
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_addr
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_ba
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_ba
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_csn
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_csn
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_wen
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_wen
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_casn
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_casn
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_rasn
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_rasn
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_odt
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_odt
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_cke
set_instance_assignment -name CURRENT_STRENGTH_NEW "MAXIMUM CURRENT" -to DDR2_cke
set_instance_assignment -name IO_STANDARD "SSTL-18 CLASS I" -to DDR2_dm
set_instance_assignment -name OUTPUT_TERMINATION "SERIES 50 OHM WITH CALIBRATION" -to DDR2_dm
set_instance_assignment -name MEM_INTERFACE_DELAY_CHAIN_CONFIG FLEXIBLE_TIMING -to DDR2_dq
set_instance_assignment -name MEM_INTERFACE_DELAY_CHAIN_CONFIG FLEXIBLE_TIMING -to DDR2_dm
set_instance_assignment -name MEM_INTERFACE_DELAY_CHAIN_CONFIG FLEXIBLE_TIMING -to DDR2_dqs
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[0]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[1]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[2]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[3]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[4]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[5]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[6]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dq[7]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[8]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[9]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[10]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[11]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[12]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[13]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[14]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dq[15]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[16]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[17]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[18]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[19]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[20]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[21]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[22]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dq[23]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[24]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[25]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[26]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[27]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[28]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[29]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[30]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dq[31]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[32]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[33]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[34]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[35]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[36]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[37]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[38]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dq[39]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[40]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[41]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[42]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[43]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[44]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[45]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[46]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dq[47]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[48]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[49]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[50]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[51]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[52]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[53]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[54]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dq[55]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[56]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[57]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[58]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[59]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[60]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[61]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[62]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dq[63]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[0] -to DDR2_dm[0]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[1] -to DDR2_dm[1]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[2] -to DDR2_dm[2]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[3] -to DDR2_dm[3]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[4] -to DDR2_dm[4]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[5] -to DDR2_dm[5]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[6] -to DDR2_dm[6]
set_instance_assignment -name DQ_GROUP 9 -from DDR2_dqs[7] -to DDR2_dm[7]


你可能感兴趣的:(DDR2 sodimm + Flash + Triple-Speed Ethernet + IO in nios)