作者:Chen Yang,AMD工程师;来源:AMD开发者社区
Alveo板卡使用有两种流程,Vitis flow和Vivado flow。比较常见的是Vitis flow,运行在固定的platform(官方提供的平台)上面,优点是比较方便使用开发,不用考虑底层的硬件情况。与之对应的即是Vivado flow,对于RTL的设计者来说,这种流程更加熟悉。但是对于定制化的板卡,它的接口和管脚已经固定,相关的电气参数也是固定的。例如U50主要的物理接口有:1). PCI Express Gen3 x16, 2 x Gen4 x8, CCIX 2). Network Interfaces 1x QSFP28 (100GbE) 等。
如果使用Vivado flow,现在的Vivado 自带的board并不包含Alveo板卡的board file,也不能在Vivado中从Gihub上下载board files。所以首先需要在下面链接中单独下载U50的XDC文件和Boad file AMD Alveo™ U50 Data Center Accelerator Card 。然后把U50的board file 解压并放到<install_dir>/Vivado/<version>/data/boards/board_files安装目录下,这样在新建Vivado工程中选择board的时候就可以看到U50了。
Alveo有多种的时钟用于PCIe,QSFP等,U50的XDC文件已经帮用户定义好了相应的时钟管脚和电平参数,当然还有一些其他接口,如I2C等具体可参考(Introduction • Alveo U50 Data Center Accelerator Card User Guide (UG1371) • Reader • AMD Technical Information Portal)。所以在Vivado的Add Sources添加该XDC文件是有必要的。
当这些都设置好后,就可以进行设计了。创建block design,添加例如100G Ethernet IP,配置IP的时候就可以看到Board下有GT_BANK_INTERFACE和GT_REF_CLK的配置,可以选择对应的qsfp 4x和qsfp 161mhz。
随后就可以在此基础上进行自己所需的设计了,当然如果不需要PCIe等功能也可以不用添加该IP。Vivado flow相对于Vitis flow,灵活性大大提高。