一、为上下两层4 对称拓扑
Electricalconstraint set中设置
CK设置及方法
将CPU的CK引脚到4片对应时钟引脚设置为4个pin pair;
针对每对pin pair设置一个match group,该群组包括该对pin pair;
在每个时钟群组中需将pin pair设置为global全局,delta:tolerance为0mil:10mil;
最后将时钟4个群组设置为一个时钟约束ddrclk。
控制线等长设置及方法
将CPU的地址线引脚到4片对应地址线引脚设置为4个pin pair;
针对每对pin pair设置一个match group,该群组包括该对pin pair;
在每个地址线群组中需将pin pair设置为global全局,delta:tolerance为0mil:250mil;
最后将地址线4个群组设置为一个地址线约束ddrcom。
控制线1等长设置及方法
将CPU的ODT引脚到4片对应ODT引脚设置为4个pin pair;
针对每对pin pair设置一个match group,该群组包括该对pin pair;
在每个ODT群组中需将pin pair设置为global全局,delta:tolerance为0mil:250mil;
最后将ODT 4个群组设置为一个ODT约束ddrcom1。
地址线等长设置及方法
将CPU的地址线引脚到4片对应地址线引脚设置为4个pin pair;
针对每对pin pair设置一个match group,该群组包括该对pin pair;
在每个地址线群组中需将pin pair设置为global全局,delta:tolerance为0mil:300mil;
最后将地址线4个群组设置为一个地址线约束ddrS_A。
数据线等长设置及方法
将CPU的数据线引脚到4片对应数据线引脚设置为4个pin pair;
针对每对pin pair设置一个match group,该群组包括该对pin pair;
在每个数据线群组中需将pin pair设置为global全局,delta:tolerance为0mil:50mil;
最后将数据线4个群组设置为一个数据线约束ddrS_D0、ddrS_D1、ddrS_D2、 ddrS_D3。
NET中设置
CLK-DQS-U2的matchgroup的对象用于U2上时钟差分对和数据采用差分对的等长匹配。
在2对差分对网络线创建4个pin pair对象;
创建包含以上4个pin pair对象的match group对象;
以数据采样差分对中的某条线设置为Target,并选择为global;
在match group对象中的pin pair选择栏设置为all drivers/all receivers, delta:tolerance为0mil:250mil。即数据线和时钟线的长度在±250mil内。
CLK-DQS-U3、CLK-DQS-U4、CLK-DQS-U5设置方法与上相同。
上图所示,两个差分对共4个pin pair对象。同时也可以采用如下图进行设置:
即也可以使用net对象,再在pin pairs栏中选择all Drivers/All Recevers也可以达到同样效果。
DDRCOM1-U2的matchgroup的对象用于U2上odt和数据采用差分对的等长匹配。
在2对差分对网络线创建4个pin pair对象;
创建包含以上4个pin pair对象的match group对象;
以数据采样差分对中的某条线设置为Target,并选择为global;
在match group对象中的pin pair选择栏设置为all drivers/all receivers, delta:tolerance为0mil:250mil。即数据线和时钟线的长度在±250mil内。
DDRCOM1-U3、DDRCOM1-U4、DDRCOM1-U5设置方法与上相同。
(此处设置多余)
DDRDATA0-DQS0的matchgroup对象用于U2上的字节内数据线等长匹配。
单字节内数据线创建11个pin pair对象;
创建包含以上11个pin pair对象的match group对象;
以数据采样差分对中的某条线设置为Target,并选择为global;
在match group对象中的pin pair选择栏设置为all drivers/all receivers,delta:tolerance 为0mil:50mil,差分对另一条线为0mil:10mil。
DDRDATA1-DQS1、DDRDATA2-DQS2、DDRDATA3-DQS3设置方法与上相同。
U1-U2的matchgroup对象用于U2中地址线与时钟线的等长匹配。
单字节内数据线创建27个pin pair对象;
创建包含以上27个pin pair对象的match group对象;
将时钟线设置为Target,并选择为global;
在match group对象中的pin pair选择栏设置为all drivers/all receivers,delta:tolerance 为0mil:250mil。
U1-U3、U1-U4、U1-U5设置方法与上相同。
U2-CLK-COM的matchgroup对象用于U2中控制线(已被地址线包括,意义不大)与时钟线的等长匹配。
单字节内数据线创建15个pin pair对象;
创建包含以上15个pin pair对象的match group对象;
将SCKE设置为Target,并选择为global;
在match group对象中的pin pair选择栏设置为all drivers/all receivers,delta:tolerance 为0mil:250mil。
U3-CLK-COM、U4-CLK-COM、U5-CLK-COM设置方法与上相同。
DDRCLK的BUS对象用于约束时钟到4片DDR3分叉线等长
先建立CK和CK#的XNET;
再在以上两个网络将从CPU U1到4片DDR3的时钟引脚建立4个pin pair对;
将设置好的时钟pin pair约束进行时钟ddrclk约束,以使4条时钟分叉线等长。
上图使用DDRCLK约束对BUS对象进行设置,该BUS无法对4个时钟分叉线等长进行约束。
ddrclk约束只能作为用于给同类BUS成员快速设置pin pair对象使用,如下图所示:
正确的等长约束方法如下:
先设置差分对约束,设置静态相位差为10mil以约束等长。
再将时钟差分对设置为差分对对象,而不是BUS对象,再将对应约束付之即可。
DDRCOM的BUS对象用于约束地址线到4片DDR3分叉线等长
先建立SA0-SA14、SBA0-SBA2、SCAS、SCK0、SCKE0、SRAS、SWE的4根分叉线对应的4个pin pair对;
将设置好的地址线pin pair约束进行地址线DDRCOM约束,以使4条地址线分叉线等长。
DDRCOM1的BUS对象用于约束地址线到4片DDR3分叉线等长
先建立DSCKE1、DSCS0、DSODT0、DSODT1的4根分叉线对应的4个pin pair对;
将设置好的地址线1 pin pair约束进行地址线DDRCOM1约束,以使4条地址线分叉线等长。
总结:
通过对全志A20的PCB约束设置分析,CPU挂4片DDR3的约束比较复杂。
1.每片DDR数据线长度使用DDRDATA0-DQS0match group对象约束;
2.DDR3间数据线长度约束实质为数据线与差分时钟线长度关系,使用CLK-DQS-U2match group对象约束;
3.每片DDR地址线和控制线长度约束实质为地址/控制线与差分时钟线长度关系,使用U1-U2match group对象约 束;
4.DDR3间地址线和控制线长度约束使用DDRCOM和DDRCOM1 BUS对象约束,该总线使用DDRCOM和 DDRCOM1进行约束;
5.DDR3时钟差分对长度约束使用DDRCLK BUS对象约束,该总线使用DDRCLK进行约束。
这里就涉及到match group和BUS对象的使用方法问题。
1.一般matchgroup主要用于长度匹配问题,常和pinpair配合起来进行长度约束。在约束配置中常用于IC内数据线、地址线和控制线的等长约束。
2.BUS用于将等具有同类型或同拓扑结构的NET成员进行同步约束,以提高约束效率。在约束配置中常用于同类型IC间的时钟线、地址线和控制线的等长约束,时钟线设置为差分对与BUS不同。
对于如时钟线、地址线和控制线等常挂载多个DDR3负载,在使用BUS对象进行约束管理时往往还涉及到其分叉线的长度匹配。
多负载分叉线长度匹配方法如下:
1.在net栏目中先选择地址线SA0的网络,然后建立该网络涉及的4个
Pinpair对象,如:U1.K3:U2.W4、U3.K3:U2.W4、U4.K3:U2.W4、U6.K3:U2.W4;
2.创建使用U1.K3:U2.W4、U3.K3:U2.W4、U4.K3:U2.W4、U6.K3:U2.W4 Pin pair对象的4个DDR3的match group对象:U1-U2、U1-U3、U1-U4和U1-U5.
3.选择SA0后进入sigxplorer,将该网络拓扑导入到CM中以生成包含以上pin pair约束和match group约束的总地 址约束Ecset;
Ecset即是所用地址线BUS的约束。本人称之为拓扑约束法,此在涉及时钟或地址分叉拓扑结构时将会起到非常高效的设计作用。
以上约束设置方法需要在实际过程中进行运用和仔细体会。