##Site: V30 -- Bank 14
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[0].u_oserdes_cpt"
LOC = "OLOGIC_X0Y101";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[0].u_odelay_cpt"
LOC = "IODELAY_X0Y101";
##Site: V34 -- Bank 14
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[1].u_oserdes_cpt"
LOC = "OLOGIC_X0Y99";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[1].u_odelay_cpt"
LOC = "IODELAY_X0Y99";
##Site: V28 -- Bank 14
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[2].u_oserdes_cpt"
LOC = "OLOGIC_X0Y97";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[2].u_odelay_cpt"
LOC = "IODELAY_X0Y97";
##Site: AE34 -- Bank 13
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[3].u_oserdes_cpt"
LOC = "OLOGIC_X0Y63";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[3].u_odelay_cpt"
LOC = "IODELAY_X0Y63";
##Site: AD30 -- Bank 13
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[4].u_oserdes_cpt"
LOC = "OLOGIC_X0Y61";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[4].u_odelay_cpt"
LOC = "IODELAY_X0Y61";
##Site: AE33 -- Bank 13
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[5].u_oserdes_cpt"
LOC = "OLOGIC_X0Y59";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[5].u_odelay_cpt"
LOC = "IODELAY_X0Y59";
##Site: AG27 -- Bank 12
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[6].u_oserdes_cpt"
LOC = "OLOGIC_X0Y21";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[6].u_odelay_cpt"
LOC = "IODELAY_X0Y21";
##Site: AF30 -- Bank 12
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[7].u_oserdes_cpt"
LOC = "OLOGIC_X0Y19";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[7].u_odelay_cpt"
LOC = "IODELAY_X0Y19";
INST "u_infrastructure/u_mmcm_adv" LOC = "MMCM_ADV_X0Y2"; #Banks 13, 23, 33
在生成 MIG 核的时候,按照设计的原理图(14,23 BANK 连接了 DCI 阻抗,23 BANK 为地址与控制,34 BANK 为系统时钟,12、13、14 BANK 为数据 BANK,我选取了 14 BANK 为主 BANK)。
以上约束为生成核后自动生成的约束文件里的内容,我看 UG406 里相关的介绍,貌似是捕获时钟的约束,UG406 里的约束介绍看得半懂不懂得,不知道这些约束是不是必要的?
现在的问题是:
1.什么样的 BANK 才能作为主 BANK?
2.以上列出的约束是不是必须的的?由于原理图上,BANK 14 的 V28 管脚被占用作为 DQS[3] 脚,所以
##Site: V28 -- Bank 14
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[2].u_oserdes_cpt"
LOC = "OLOGIC_X0Y97";
INST "u_memc_ui_top/u_mem_intfc/phy_top0/u_phy_read/u_phy_rdclk_gen/gen_ck_cpt[2].u_odelay_cpt"
LOC = "IODELAY_X0Y97";
这个约束根本过不去,我试着将以上的约束全部屏蔽后,布局布线过去了,但是用 Chipscope 捕获的时候提示没有时钟。
3.如果这些约束是必须的,那怎样改动才能让满足?是不是将 gen_ck_cpt[2] 信号换个管脚呢?还是换 BANK ?可以换到哪个管脚和 BANK ?