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

news/2024/10/21 23:00:34/

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

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




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]



http://www.ppmy.cn/news/729481.html

相关文章

UDIMM、RDIMM、SODIMM区别

UDIMM,Unbuffered DIMM,定位于 桌面市场,指地址和控制信号没有经过缓冲器,没有做任何时序调整(缓冲器延迟是有的),直接到达DIMM上的DRAM芯片。而Registered内存模组则对地址和控制信号等进行寄存&#xff…

内存规格的解释(Unbuffered DIMM,Registered DIMM和SODIMM)

常见的[内存]模组有三种:Unbuffered DIMM,Registered DIMM和SODIMM。 首先解释DIMM的含义,DIMM指Dual Inlined Memory Module,即双列直插式[内存]模组。 Unbuffered DIMM:指没有经过缓冲,定位在桌面市场&a…

【内存】UDIMM、RDIMM、SODIMM以及LRDIMM的区别

说明 转载自【精品博文】UDIMM、RDIMM、SODIMM以及LRDIMM的区别。 DIMM简介 DIMM(Dual Inline Memory Module,双列直插内存模块)与SIMM(single in-line memory module,单边接触内存模组)相当类似,不同的只是DIMM的金…

Micron:DDR2 SDRAM与SODIMM

最近研究了Mircon的DDR2 SDRAM和SODIMM存储结构,于是记录下自己的一点小发现。 SODIMM:Small Outline Dual In-line Memory Module,即小型双列直插式内存模块,也就是大家口中的内存条。在介绍SODIMM之前,我们先来了解一…

xdisplay报错解决

按照网上教程安装xdisplay,即可实现iPad与电脑的连接 但是我出现了一些错误,现在整理一下我出现的错误 xdisplay官网:https://www.splashtop.cn/cn/wiredxdisplay 简而言之手机/平板可以扩展成为电脑的额外屏幕,重点是扩展的屏幕是…

序列化对象

1:对象序列化 以内存为基准,把内存中的对象存储到磁盘文件中去,称为对象序列化。使用到的流是对象字节输出流:ObjectOutputStream 2:对象要序列化,必须实现Serializable序列化接口 2:对象反序…

服务器和普通电脑有什么区别?

目前使用服务器的人很多,可能有人会觉得他们差不多。从表面上看,服务器和我们日常使用的电脑是由CPU、内存、硬盘等组成的。那么,服务器和普通电脑有什么区别呢?   1.服务器CPU设计为长时间连续运行,基本设计为全年连…

单片机和 电脑 pc 的区别

随着社会的发展和需求的提高,计算机也在不断地更新与发展。由于计算机的产生是应数值计算而产生的,因此长期以来电子计算机技术都是沿着满足大量高速数值计算而发展的,直到20世纪70年代,电子计算机在数字逻辑运算、推理、自动控制…