TI C6000系列 TMS320C6678+Kintex-7——FPGA案例开发资料(上)

2022-08-14 20:28:37 浏览数 (1)

前 言

本文主要介绍基于Vivado的FPGA案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4。其中案例包括led_flash案例、key_test案例、ibert_eyescan案例、udp_10g_echo案例、fmc_ad9706_ad9613案例、bram_srio_target案例。

本次测试板卡为TMS320C6678+Kintex-7 的FPGA高端异核开发板,它采用TI KeyStone架构C6000系列TMS320C6678八核C66x定点/浮点DSP以及Xilinx Kintex-7 FPGA处理器设计。

TMS320C6678+Kintex-7开发板资源图解TMS320C6678+Kintex-7开发板资源图解

核心板内部DSP与FPGA通过SRIO、EMIF16、I2C通信总线连接,并通过工业级高速B2B连接器引出千兆网口、PCIe、HyperLink、EMIF16、GTX等高速通信接口。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

FPGA案例位于产品资料“4-软件资料DemoFPGA_Demo”的FPGA-HDL-demos和FPGA-BlockDesign-demos目录中。案例包含project和bin两个目录,其中project目录下包含案例工程文件,bin目录下含有案例.bit和.bin格式可执行文件。.bit格式文件用于在线加载,.bin格式文件用于固化至SPI FLASH。

表 1

FPGA-HDL-demos目录下的案例使用Verilog语言进行开发,FPGA-BlockDesign-demos目录下的案例使用Block Design Verilog语言方式进行开发。FPGA-HDL-demos目录下的i2c_slave、bram_emifa案例,以及FPGA-BlockDesign-demos目录下的fmc_ad9613_srio、fmc_cameralink_mono_srio案例,请查看DSP FPGA通信案例开发手册。

可在Vivado界面点击"IP INTEGRATOR -> Open Block Design"打开BLOCK DESIGN开发界面。

图 1

在进行本文如下操作前,请先按照开发环境搭建文档安装Xilinx Vivado开发工具包。本文默认使用创龙科技的TL-DLC10下载器进行操作演示。

将BOOTSET拨码开关拨至XXXX0(1~5),ON为1,相反为0,X代表任意值,此档位为FPGA的SPI FLASH启动模式(此模式可进行程序在线加载、固化并离线启动),并将评估板通过下载器正确连接至PC机。

图 1

led_flash案例

案例功能

案例功能:控制评估底板LED3、LED4每隔0.5s将状态翻转一次。

图 2

操作说明

请运行程序,此时可看到评估底板的LED3、LED4进行闪烁。

关键代码

顶层文件为"projectled_flash.srcssources_1importshdlled_flash.v",关键代码说明如下。

  1. 使用STARTUPE2原语提供的CFGMCLK(65MHz)作为LED的参考时钟。
  2. 使用CFGMCLK进行计数,使LED以0.5s的周期进行状态转换。

图 3

RTL原理图如下所示:

图 4

key_test案例

案例功能

案例功能:通过按键SW3(FPGA USER1)控制评估底板的LED5状态。

图 5

图 6

操作说明

请运行程序,此时每按下SW3一次,LED5状态改变一次。

关键代码

顶层文件为"projectkey_test.srcssources_1importshdlkey_test.v",关键代码说明如下。

  1. 使用STARTUPE2原语提供的CFGMCLK(65MHz)作为系统时钟。
  2. 对按键进行消抖处理。
  3. 通过按下按键产生对应标志,对LED状态进行控制。

图 7

图 8

RTL原理图如下所示:

图 9

ibert_eyescan案例

案例功能

案例功能:基于SFP 光口测试高速串行总线GTX的通信速率与误码率,并通过眼图查看信号传输质量。

操作说明

将两个SFP 多模双纤光模块分别接入SFP1、SFP2光口,使用光纤线缆将两个光模块各自的RX与TX相连接,形成外部回环。

图 10

SFP1光口使用GTX Quad 116的MGTXRX_0、MGTXTX_0引脚,SFP2光口使用GTX Quad 116的MGTXRX_1、MGTXTX_1引脚。

核心板板载时钟芯片输出的100MHz时钟被用作GTX参考时钟,与GTX Quad 116的MGTX_REFCLK1引脚相连接。

图 11

图 12 GTX参考时钟

请运行程序,此时将会在Vivado的Hardware界面扫描到GTX设备。其中MGT_X0Y4、MGT_X0Y5为SFP 光口,速率均为10Gbps,请点击"Auto-detect links"。

图 13

可在Serial I/O Links窗口查看GTX通信速率与误码率。由下图可见在10Gbps速率下,SFP 光口的误码率为0。

图 14

图 15

点击Serial I/O Scans窗口,并点击"Create scan"创建眼图扫描。

图 16

在弹出的界面中设置眼图扫描参数。点击Link选择待扫描的GTX,分别设置Horizontal increment(水平增量)和Vertical increment(垂直增量),数值越小则眼图越精细,但扫描时间也越长,参数详细说明请查看下表。

图 17

将Horizontal increment和Vertical increment均设置为8时,测得MGT_X0Y4眼图如下图所示。眼图的两个关键指标为Open area(眼图张开区域点数)和Open UI %(眼图张开百分比),此两个数值越大,表示信号传输质量越好。

图 18

图 19

将Horizontal increment和Vertical increment均设置为2时,测得MGT_X0Y4眼图如下图所示。

图 20

图 21

关键代码

顶层文件为"projectibert_eyescan.srcssources_1importshdlibert_eyescan.v",关键代码说明如下。

定义GTX Quad 116端口。

图 22

例化2个GTX专用差分时钟Buffer,用于将差分时钟转换为单端时钟。

图 23

使能SFP 接口。

图 24

调用IBERT IP核。

图 25

RTL原理图如下所示:

图 26

IP核配置

本案例使用IBERT IP核测试GTX信号传输质量。

IBERT IP核开发文档为产品资料“6-开发参考资料Xilinx官方参考文档”目录下的《pg132-ibert-7series-gtx.pdf》和《ug908-vivado-programming-debugging.pdf》,具体配置说明如下。

设置协议数量为1,设置通信速率为10Gbps,选择参考时钟为100MHz(需与实际参考时钟一致)。

图 27

使用QUAD_116的GTX,参考时钟设置为MGTREFCLK1 116。

图 28

系统时钟设置为QUAD116 1,即MGTREFCLK1 116。

图 29

udp_10g_echo案例

案例功能

案例功能:评估板通过SFP 光口接收上位机数据后,将数据重新发送至上位机(PC),以验证基于SFP 光口的10G UDP网络通信功能。评估板作为UDP Server,上位机作为UDP Client。

图 30 程序功能框图

操作说明

请将ZBNET的万兆网卡MCX311插入PC机的PCIe插槽中,并将一个SFP 多模双纤光模块接入万兆网卡,将另一个SFP 多模双纤光模块接入评估板SFP1光口。使用两根光纤线缆分别将SFP1的RX与万兆网卡的TX相连接,SFP1的TX与万兆网卡的RX相连接。SFP1光口使用GTX Quad 116的MGTXRX_0、MGTXTX_0引脚。

图 31

图 32

评估板IP地址已通过udp_ip_10g模块配置为192.168.0.25。请设置PC机IP地址与评估板IP地址处于同一网段。此处将PC机IP地址设置为192.168.0.88,子网掩码设为255.255.254.0。

图 33

请运行程序,此时PC机将会识别网络连接状态为10Gbps。

图 34

由于udp_ip_10g模块不支持ARP(Address Resolution Protocol)地址解析协议,因此需通过添加评估板IP地址和MAC地址的静态映射关系。请以管理员身份打开Windows PowerShell,并执行如下命令。

Windows# arp -s 192.168.0.25 00-23-20-21-22-23 //添加评估板IP地址和MAC地址的静态映射关系

Windows# arp -a //查看添加状态

图 35

双击打开产品资料“4-软件资料ToolsWindows”目录下的网络调试工具SocketTool_NoAD.exe,在弹出的界面中点击“UDP Client -> 创建”,在“对方IP”中输入评估板IP地址,再点击确定。

图 36

在“数据发送窗口”中输入需发送至评估板的数据,再点击“发送数据”。“数据接收及提示窗口”中将打印由PC机发送至评估板,以及由评估板发送至PC机的数据。

图 37

模块/IP核配置

cdcm61002_cfg模块

本案例使用cdcm61002_cfg模块配置CDCM61002输出156.25MHz时钟,作为GTX Quad 116的参考时钟。

时钟芯片具体配置方式请查阅“6-开发参考资料数据手册核心板元器件CLOCK”目录下的《cdcm61002.pdf》。cdcm61002_cfg模块源码为"projectudp_10g_echo.srcssources_1importshdlcdcm61002_cfg.v",具体配置说明如下。

配置cdcm61002_cfg模块的OD为"011",PR为"10",即配置GTX参考时钟为156.25MHz。

图 38

图 39

图 40

图 41

10G Ethernet PCS/PMA IP核

本案例使用10G Ethernet PCS/PMA IP核实现物理层(PCS与PMA)功能。

10G Ethernet PCS/PMA IP核开发文档为产品资料“6-开发参考资料Xilinx官方参考文档”目录下的《pg068-ten-gig-eth-pcs-pma.pdf》,具体配置说明如下。

勾选Shared Logic的"Include Shared Logic in core",配置10G Ethernet PCS/PMA IP核包含共享逻辑。

图 42

udp_ip_10g模块

本案例使用udp_ip_10g模块实现10G UDP协议栈与MAC层。

udp_ip_10g模块开发文档为产品资料“6-开发参考资料其他参考文档”目录下的《udp_ip_10g.pdf》。udp_ip_10g模块源码为"projectudp_10g_echo.srcssources_1importsudp_ip_10g_stack"。

图 43 udp_ip_10g模块主要特性

图 44 udp_ip_10g模块逻辑框架

udp_ip_10g模块具体配置说明如下。

图 45

设置链路速率为10Gbps。

图 46

图 47

设置评估板MAC地址为00-23-20-21-22-23,IP地址为192.168.0.25,子网掩码为255.255.254.0。

图 48

图 49

图 50

由于篇幅问题,文章分为上下两篇,感兴趣的可以查阅观看,本文为上。

0 人点赞