DDR中关于时钟配置的讲解

DDR配置中有很多时钟的配置,防止混淆,整理了一下:

1、Clock Period:这个是总线频率,也就是DDR3的工作时钟,这个速率与FPGA速度等级有关

这里设置为1875ps(533.33MHz),那么DDR的传输速率为 533.33 * 2 = 1,066Mb/s (双边沿,一个周期传输两次)

 

 2、PHY to Controller Clock Ratio配比设置为4:1,通过这个参数来配置IP核的用户时钟ui_clk频率,也就是说这个ui_clk是MIG输出给UI的时钟, 此时ui_clk时钟频率就是 533.33/4 = 133.33MHz。

 3、Input Clock Period: 这个是输入给MIG IP核的时钟,比如我这里FPGA给Mig的时钟是200M,那么MIG内部会自己调用PLL或MMCM来产生它自己的工作时钟,像上面的533Mhz

4、System Clock 和 Reference Clock

这里的System Clock就是设置上一步输入时钟属性的,可以是单端、差分、no buffer(有什么区别?--->在后面讲了),也就是说FPGA提供给MIG的输入时钟是什么样的。

Reference Clock是设置MIG的参考时钟(为啥要用这个参考,有点搞不明白?)值得注意的是,如果System Clock的频率在199-201Mhz之间,这里会有个use system clock的选项,意思是用系统时钟作为参考时钟。

这里就好奇,MIG为什么需要设置参考时钟?

参考,参考,顾名思义,作为一个标准来使用的。上面说到,FPGA会给MIG一个输入时钟,然后MIG内部会调用PLL或MMCM来产生mig自己的工作时钟。这个时候,参考时钟的作用就是给PLL或MMCM来做倍频或除频的,也就是说我的200M参考时钟是稳定且精确的,你PLL就按照我的标准来倍频产生时钟。

然后这里参考时钟选择use system clock就是说,参考时钟我也懒得重新给你了,图方便,你就用FPGA给你提供的那200M作为参考吧。

附:

1、时钟属性: Single_Ended(单端)、Differential( 差分)、 no buffer(无缓冲), 三者有什么区别?

无显著区别,根据场景来进行选择。

单端:单根信号线来传输时钟信号,成本低、简单,但是抗干扰差、信号质量不如差分、时钟容易抖动。

差分:双线传输。差分对增强抗干扰能力,时钟抖动小。

无缓冲:时钟信号直接接到mig,也就是FPGA PLL产生的时钟直接拉到MIG了。这种直接传输的方式速度快,适用于短距离、干扰要求不高的场景,但由于没有缓冲器的保护,时钟信号容易受到干扰和失真。

3、MIG配置界面中Memory Address Mapping Selecting的 两种排列方式有何不同,比如一个是ROW/BANK/COLUMN, 另一个是BANK/ROW/COLUMN?

MIG中地址映射选择默认是第二种BRC,这是一种最常规的DDR3寻址方式,即要指定某个地址,先指定bank,再指定行,最后指定列,这样就确定了一个具体的地址。这样的寻址方式有利于降低功耗但读写效率不如第一种RBC。(为啥RBC效率高,是因为它减少了读取数据时的行激活和预充电操作的开销)

当我们在处理视频流或图像等大数据块时,就选择第一种RBC;当数据需要被随机访问或并行访问时就选择BRC。

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值