AMD Versal产品从2018年发布,至今已有6年多。从最初的数据中心和5G应用,到越来越多进入各行各业FPGA工程师的指尖;公众号相关文章也从NOC/CIPS理论架构学习,到AMD VM180/VCK190开发板操作和例程演示,再到基于Versal芯片的实际设计。本文以国内用户群体最多的Versal AI Edge VE2302为例,分享一些实际工程设计的细节和经验。
一、VE2302的Bank架构和XPIO资源
图1 VE2302的Bank架构
表1 VE2302的XPIO资源
二、VE2302的DDRMC硬核介绍
在Versal器件中,有两种DDR4/LPDDR4控制器。一种是,它是通过配置NOC IP生成;另一种则是通过软核soft DDR4 memory controller IP生成。DDRMC硬核的性能更高,并且不额外占用其他的可编程逻辑资源(PL)。
2.1、DDRMC硬核中的资源
每个DDRMC硬核都有三个与之关联的XPIO存储体(称为一个Triplet)包括二十七个差分引脚对(L0P/N至L26P/N)。有九个Nibbles在一个Bank和每个Nibble都有六个引脚。
图2 XPIO的资源
如图2,在总共的218个XPIO中, Y表示(DDRMC only,N表示(access to all I/O logic resources。Bank700和Bank 701共108个DDRMC only,Bank 702有24个DDRMC only,DDR ONLY共计132个;Bank 702有30个PL only,Bank 703有54个PL only,PL only共计84个。
2.2、DDRMC硬核的管脚定义
封装引脚名称IO_NiPj_MxPy描述了字段,如下所列。
NiPj:Ni是Bank中的Nibble数(其中i=0到8)
Pj是Nibble内的引脚号(其中j=0到5)。
•MxPy:Mx是DDRMC的Triplet编号(其中x=0到(DDRMC总数-1))
Py是Triplet中的引脚号(其中y=0到161)
•MxP0至MxP53是Triplet第一组中的引脚。
•MxP54至MxP107是Triplet第二组中的引脚。
•MxP108至MxP161是Triplet第三列中的引脚。
例如,M0P53 IO_L26N_N8P5是Triplet第一组中,Nibble 8的最后一个引脚。
2.3、DDRMC硬核的布线
• All Command, Address, Control, Clocks are fixed
• Allow swap of DQ bits within a nibble for x4 based DDR4
• Allow swap of DQ bits within byte for x8 based DDR4
• Allow swap of DQ bits within byte for LP4
•. DDR4 DQ nibble/byte swap:
2.4、DDRMC硬核的翻转
支持的配置都有两个版本的引脚;非翻转和翻转。这个由于以下原因,可以使用翻转版本的引脚:
• 提供释放尽可能多不在收发器下方的引脚的选项以及用于用户系统设计的处理器系统。
• 为PCB布局工程师提供灵活性,以实现更好的信号布线。
• 为用户系统设计提供连续XPIO组的选项
72-bit Multi-Rank L/RDIMM with ECC的Nibble利用,配置如下图3所示。DQ表示数据Nibble;AC表示地址/命令/控制Nibble;sys_clk表示包括系统时钟对,RESET_n, and ALERT_n.,
图3 72-bit Multi-Rank L/RDIMM with ECC的Nibble(非翻转)
图4 72-bit Multi-Rank L/RDIMM with ECC的Nibble(翻转)
三、VE2302的DDRMC硬核实战
3.1、 DDR4 Component类型
本设计采样4片1GB的DDR4芯片,型号为MT40A512M16LY-062E, 4片DDR4挂在BANK700,701和702的XPIO上,组成64位数据总线带宽和4GB的容量。
表2 VE2302采样的DDR4参数
3.2、 DDRMC硬核配置(64位)
Versal的DDR4是通过NoC访问,因此需要添加NoC IP进行DDRMC硬核的配置。
VE2302的DDRMC硬核控制器,共连接4颗16bit DDR4。
图5数据位宽为64位的DDR4MC硬核的配置
数据位宽为64位的DDR4MC硬核共占用115个XPIO DDR only pins。具体分类如下:
1、数据线,
1)DQ[0:63]:2)DQS_t/DQS_c(0-7):2组差分数据选通。
3)DM(0-7):8根数据掩码。数据掩码只支持x8和x16。
2、地址线,
1)A[15:0] :其中WE_n/A13, CAS_n/A14, RAS_n/A15可功能复用。
2)BA[1:0] :bank地址线,bank是DDR4 SDRAM芯片内部的存储阵列,注意和rank区分。
3)BG[0] :bank group地址线。
3、时钟,
1)CK_t/CK_c:一组差分时钟信号。
2)CKE:时钟使能信号。
4、命令
1)CS_n:片选。
2)ACT_n:激活命令输入。
3)RAS_n/A15、CAS_n/A14、WE_n/A13:命令输入。ACT为低,RAS、CAS和WE作为行地址;ACT为高,RAS、CAS和WE作为命令。
4)PAR:校验位,使能后可以校验命令和地址线数据。
5)ODT(On-die termination):片内端接。将端接电阻移植到芯片内部,防止CPU发出的信号不能被电路终端完全吸收,形成反射,影响后面信号。ODT应用在DQ、DM、DQS引脚。
6)ZQ:ZQ校准。
7)RESET_n:芯片复位信号。
3.3、 DDRMC硬核配置(72位)
图6 数据位宽为72位的DDR4MC硬核的配置
本设计中,数据位宽为72位的DDR4MC硬核共占用126个XPIO DDR only pins。
后续,基于VE2302的AI Edge和Vitis AI的示例工程也将于2024年Q4陆续发布,希望本文对广大工程师有所帮助。
欢迎读者联系我们进行沟通和讨论
simonyang@comtech.cn
charlesxu@comtech.cn
【直播预告】返回搜狐,查看更多