当前位置:首页 > 生活 > 正文

sdram和ddr sdram的差别在哪些方面(SDRAM和DDR专题课问题汇总贴)

【问题1.1】DDR3那个课程,一般线速率能跑到多少?答:本课程的DDR3内容,是基于XILINX K7芯片,使用的是VIVADO平台。DDR3的时钟频率是800M。用户侧时钟是200M。

【问题1.2】SDRAM和DDR3课程,使用是什么平台?

答:SDRAM部分使用的是QUARTUS平台,着重于讲解SDRAM时序和SDRAM的接口设计。

DDR3部分,使用的是VIVADO平台,着重于DDR3 IP的生成和上板验证流程。

DDR3的理论部分,基本上不涉及,建议可以参考SDRAM的理论部分。

【问题1.3】 使用DDR3 IP一定需要读地址FIFO,读数据FIFO,写地址FIFO,写数据FIFO来先进行数据缓存吗?

答:这个理解是不对的。这里没有跨时间域的信号传输的。因为IP核会产生一个本地时钟,这个本地时钟是可以直接采集数据的,假设为clk_ddr_local。

用户可以直接使用clk_ddr_local来往IP核传输数据。

好了,接下来再考虑一个场景:我有一组数据A,产生于时钟域clk;A要写到DDR,DDR的时钟域是clk_ddr_local。

自然地,A要跟时钟域到clk_ddr_local,然后才能写到DDR中,这就需要用到FIFO。

接下来考虑另一个场景:我有一组数据B,产生于时钟域clk_ddr_local;B要写到DDR,DDR的时钟是clk_ddr_local。

由于两个时钟域相同,直接写就好了。(通常来说,这已经不属于DDR的知识了,而是属于跨时钟域处理的知识,是FPGA工程师都应该知道的概念)。

【问题1.4】用户逻辑控制DDR3读写的程序不是需要自己写吗?答:官方一般提供了DDR3的IP核。

答:用户可以通过DDR3 IP核来进行DDR3芯片的读写。但是用户需要写逻辑来控制DDR3 IP核。

【问题1.5】课程里会讲如何通过DDR3 IP像写入图像吗?

答:课程中的SDRAM部分,会有例子讲如何写入图像到SDRAM中,DDR3/4也是类似的。但由于每人的项目不同,所以需要学员根据自己情况来移植。

【问题1.6】如何知道ddr3里不空,可以读取了?

答:DDR3和RAM一样,是一个存储器件,它的每个内部单元都存储了当前的数据状态值。

但DDR3和RAM本身,是没有“空”、“存有数据”,“数据满”等概念的。只要给地址,它就会把当前地址的数据给到总线上,

而且这个地址可以读很多次。在设计的时候,是由设计师用自己写逻辑来判断DDR3是否为空。

【问题1.7】请问这个sdram的自动刷新命令发送后,是不是刷新的是所有bank的同一行都在执行刷新呀?也就是说刷新的是不同bank的同一行,是不是这样理解

答:是的。发送一个自动刷新命令,所有BANK同一行都会刷新。

【问题1.8】请问有ddr3的IP核手册吗?(altera的)


答:IP核不同,界面会所不同,但一般都会提供下载链接的。VIVADO、ISE等,也是同样的情况


【问题1.9】做一个用到ddr4的项目,有一个ddr3的例程,不知道怎么改成ddr4?

答:百度搜索找资料,按流程配置就好,这个我们没有教程,只能看数据手册

【问题1.10】下图中的自刷新有啥区别?

答:上电后,要经过初始化,初始化中要有两次刷新动作;当初始化完成后,才是每隔一段时间,要自刷新一次

【问题1.11】如下图所示,为什么在接口中,一般要锁存住地址addr、写数据wdata等?不锁存不行吗?

答:如上图所示,假设在第2~6时钟时刻,addr的值为2,表示此时要写地址2。本模块收到此请求后,会在后面如第7~10时钟,产生写地址为“2”的时序。

但注意,在第7~10,addr的值还是不是2呢?可能不是了。

【问题1.12】请问连接ddr3 ip核与mem_burst时,有些端口未定义。内些未定义的端口怎么办?

答:

1. 本课程提示的案例,经过上板验证是可以的,如果不可以,请及时向老师反映。

2. 本例程验证过是可以的,因此例化时未连接的信号,就说明对本例程来说不用关心,不用使用。

3. 如果您要想关心这些信号,可以阅读数据手册,了解该信号含义。