作者:Kathy Ren
在 Versal新一代ACAP器件上,除了延续之前Ultrascale/Ultrascale+系列器件上已有的DDR4 IP之外,还配置了最新的DDR4/LPDDR4 硬核控制器(NOC IP). 它的性能更高,并且不额外占用其他的可编程逻辑资源(PL)。使用它的时候,在硬件设计方面和设计流程上,和之前的软核控制器(DDR4 IP)也有着很大的不同。今天我们来介绍一下I/O planning方面的设计考虑和实现流程。
在原理图设计之前,需要先新建一个测试小工程。在block design中添加NOC IP。

在IP wizard中,根据memory 容量,位宽,带宽等要求完成相关配置。
总体上来讲,DDR4/LPDDR4的管脚有2种分配模式—Flipped和Non-flipped,模式的选择可以通过使能或者关闭NOC IP中 “Flipped pinout”的选项来实现。

Versal器件上每个NOC IP对应3个IO bank的管脚,它们都位于同一个triplet之中。一个NOC IP对应的所有DDR4/LPDDR4接口管脚都必须放置在这3个IO bank之中。在对block design进行综合之后,打开synthesized design,在I/O ports窗口中点击 “Open advanced I/O planner” ,按照bank或者nibble为单位指定所有管脚的位置。

在此之后,地址、控制和时钟管脚的位置就被固定了下来。数据管脚在Byte以内和Byte之间可以进行微调,具体的调整规则可以参考pg313中Pinout Rules相关章节。