首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

关于Spartan6中MCB硬核的一些问题(2)

关于Spartan6中MCB硬核的一些问题(2)

2u_pll_adv模块就是XilinxPLL核,并没有什么特殊之处,而MCB只用了其中的4个时钟输出,其中一个还是提供给用户逻辑使用,因此完全可以对该PLL3个时钟输出做自定义,这样可以减少系统所用PLL个数。



对于自定义的PLL输出根据需要最好加上BUFG


然后将这些时钟添加到模块输出项,经顶层模块输出。
(3) 对于BUFPLL_MCB的详细解释,读者可参见ug382手册.输出文件和对应的关系图如下:





打开作为顶层文件的DDR667,可以看到在IP设置时所选择的参数都在这里了
,如果需要做改动,可以在这里的parameter下修改。这里的参数有最高的权限,会覆盖所调用模块的默认值。


三, IP的使用
(1)par文件夹下面有系统默认的UCF(约束文件),默认情况下会使用该UCF文件。


笔者在使用中发现一个奇怪的问题,就是在自己重新定义UCF,且确认所有的管脚都映射正确后,在MAP阶段一直报错,主要是报DQSUDQSDQS_NUDQS_N这四个pin脚的分布有问题,尝试了很多办法都无效。


最终的解决办法是从工程中移除顶层的DDR2_test.XCO文件(备注:这里DDR2_test是笔者为IP所取的名字),手动添加所有的RTL源文件,编译后顺利通过map,不知道是bug还是其他的什么原因。

(2) 由于spartan6系统是最新的FPGAxilinx官方一直在更新ISE软件,FPGA的内核也会有所变动,在期间选型时需要留意DS162文件中不同器件所需要的软件版本。


同时,对于使用-2速度的朋友需要注意下在XCN10024XILINXMCB的性能做了一些小小的修正,在内核电压较低(1.14~1.26)的情况下,速度由原来的667降低至625.



(3)由于系统默认是将整个DDR8bit来重新对地址编码,这样对于X16X8X4就需要根据下图经行重新的映射,具体可以参看UG388


(4)在设置FIFO的位宽时,需要注意几个速度问题。比如DDR3-800,如果器件是X8模式的,那么每个时钟可以触发16bit数据(DDR是双沿触发),假设FIFO64bit,那么系统时钟至少需要(16/64*400=100MHZ才能跟上DDR的速度,同理如果是32bitFIFO,那么至少需要200MHZ的系统时钟,这个在系统规划时需要注意。另外FIFO最多可以到64级,每一级大小等于位宽。


5)由于整个IP中定义的参数和系统调用模块比较多,为了防止软件将一些信号优化掉,需要设置Hierarchysoft



6)如果系统中不止一个DDR,可以参考XAPP496中相关设计思路。
继承事业,薪火相传
返回列表