DDR IP多个例化

XILINX FPGA型号:xc7k325t  ffg900-2

工具版本:vivado 2016.4

DDR3:芯片数据位宽16bit,DDR工作频率533M;

需求是例化两个DDR3的控制器;每个控制器的数据位宽32bit,

1)  问题描述:

例化1个DDR3控制器,然后在顶层调用两次使用;在编译时报错如下:

[DRC 23-20] Rule violation (PLIDC-3)IDELAYCTRLs in same group have conflicting connections - IDELAYCTRLcells'u0_ddr_arbitrage/u0_ddr3_core/u_ddr3_core_mig/u_iodelay_ctrl/u_idelayctrl_200'and 'u1_ddr_arbitrage/u0_ddr3_core/u_ddr3_core_mig/u_iodelay_ctrl/u_idelayctrl_200'

have same IODELAY_GROUP'DDR3_CORE_IODELAY_MIG0' but their REFCLK signals are different

或此以下报错

[DRC 23-20] Rule violation (PLIDC-3)IDELAYCTRLs in same group have conflicting connections - IDELAYCTRL cells'u0_ddr_arbitrage/u0_ddr3_core/u_ddr3_core_mig/u_iodelay_ctrl/idelayctrl_gen_1.u_idelayctrl_300_400'and 'u1_ddr_arbitrage/u0_ddr3_core/u_ddr3_core_mig/u_iodelay_ctrl/idelayctrl_gen_1.u_idelayctrl_300_400'have same IODELAY_GROUP 'DDR3_CORE_IODELAY_MIG1' but their REFCLK signals aredifferent

 

问题原因:

2个DDR3控制器是重复调用,在每次调用时都会例化一次IODELAY_GROUP,但只有1个IODELAY_GROUP可供使用,故在编译时会爆冲突;

解决方法:

在例化DDR3控制器IP时,直接选择一次例化两个控制器,这样例化的话,工具就会自动只例化一个IODELAY_GROUP,两个DDR控制器共用;

如果只例化1个DDR3 控制器,想调用两次,也可以通过修改DDR的代码,把其中一个IODELAY_GROUP注销,把控制器的ready信号直接引入使用;

         注意此问题同样会出现在FPGA的节温控制模块调用;也需要做相同的修改才能不报错;

 

2)  这个型号的FPGA,DDR3的数据速率最高是1600M,但只能在HP BANK布线,就是FPGA的bank32、bank33和bank34;而使用HR BANK,数据速率最高只有1066M,在bank12、bank13、bank14、bank15、bank16、bank17和bank18;

5)  需注意在生成DDR IP时,IP会自动生成XDC约束文件,在编译过程中,vivado会调用此xdc文件进行布局布线;如果在工程使用的xdc文件中,对DDR相同的管脚进行约束,有时候会爆冲突的错误,或在生成bit文件时,爆出几个引脚无法分配,但实际是这几个管脚已经正确分配并布线完成。
--------------------- 
作者:Duncan_Lv 
来源:CSDN 
原文:https://blog.csdn.net/Duncan_Lv/article/details/78077840 
版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
DDR IP多次例化时,可能会遇到一些问题。其中一个可能的问题是引用\[1\]中提到的规则违例。这个规则违例是指在同一组中的IDELAYCTRL单元存在冲突的连接。具体来说,两个IDELAYCTRL单元具有相同的IODELAY_GROUP,但其REFCLK信号不同。这可能会导致布线冲突和错误。 另一个问题是引用\[2\]中提到的时序参数tRCD。tRCD是指从行有效到读/写命令发出之间的延迟周期。在DDR IP多次例化时,需要确保每个实例的tRCD参数正确设置,以满足设计要求。 此外,引用\[3\]中提到了在生成DDR IP时自动生成的XDC约束文件。在使用自定义XDC约束文件时,需要注意避免对DDR相同的管脚进行重复约束,以免引起冲突和错误。 因此,在DDR IP多次例化时,需要注意遵循规则和时序参数的设置,并确保正确使用约束文件,以避免潜在的冲突和错误。 #### 引用[.reference_title] - *1* *3* [DDR IP多个例化](https://blog.csdn.net/msrgr/article/details/83343708)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [关于DDR协议的一些操作的理解2](https://blog.csdn.net/juvenilexhq/article/details/128161020)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值