2017-06-13 107 views
0

我正在使用MAX10 FPGA并具有接口DDR3内存。我注意到,与片上存储器相比,我的DDR3内存运行缓慢。我开始了解这一点,因为我写了一个闪烁的LED程序,并且与片上存储器具有相同的延迟功能,与DDR3存储器相比,它的工作速度更快。可以做什么来提高速度?什么可能是错误的?我的系统时钟运行在50MHz。 P.S.我的系统中没有指令或数据缓存。与FPGA中的片上存储器相比,为什么接口DDR3存储器工作速度较慢?

回答

1

首先,你的函数不是流水线函数作为你的描述。因为你对内存做了一些事情,然后闪烁LED。每一样东西都按顺序运行。

在这种情况下,您应该估计响应时间和整个内存。例如,您从内存中读取数据,然后执行add函数,并执行此操作10次。如果您总是在添加函数后读取内存,你的总和时间消耗约为10 *响应时间+ 10添加功能时间。

不同之处在于内存响应时间。内存RAM的响应时间可以是50MHz时的1个周期。但DDR3内存应该是80纳秒左右。这是不同的。

但是你可以改变你的模块为流水线模式。读/写数据并做你的其他功能parallel.and r/w DDR提前。这就像在PC中的缓存。这可以节省一些时间。

顺便说一下,DDR的全程高度取决于你的功能模式。如果你在顺序地址处读写数据,那么你会在整个过程中变得更大。

毕竟,外部存储器的整个和响应时间永远不会超过内部存储器。

原谅我的英语。

相关问题