Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >TI C6000系列 TMS320C6678+Kintex-7——FPGA案例开发资料(上)

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

原创
作者头像
创龙科技Tronlong
发布于 2022-08-14 12:28:37
发布于 2022-08-14 12:28:37
1.4K0
举报

前 言

本文主要介绍基于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-软件资料\Demo\FPGA_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进行闪烁。

关键代码

顶层文件为"project\led_flash.srcs\sources_1\imports\hdl\led_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状态改变一次。

关键代码

顶层文件为"project\key_test.srcs\sources_1\imports\hdl\key_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

关键代码

顶层文件为"project\ibert_eyescan.srcs\sources_1\imports\hdl\ibert_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-软件资料\Tools\Windows\”目录下的网络调试工具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模块源码为"project\udp_10g_echo.srcs\sources_1\imports\hdl\cdcm61002_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模块源码为"project\udp_10g_echo.srcs\sources_1\imports\udp_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

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Magisk/面具安装教程
目前Magisk只适配了骁龙处理器、联发科处理器的手机,其他处理器请不要操作。安卓11、10、9、8通用。操作前建议备份数据!
kenvie
2022/01/20
19.2K0
Magisk/面具安装教程
🤖️ 如何逐步关闭 MIUI 无处不在的广告
最近需要给长辈置换一下手机,在有限的预算内,经过多次比较发现还是小米的硬件配置更好一些,最后也是下单了小米。
卤代烃
2022/11/08
3.8K0
🤖️ 如何逐步关闭 MIUI 无处不在的广告
A/B分区系统提取boot文件(payload.bin解包boot.img)
1.在电脑下载系统包(全量包)小米参考:如何获取MIUI最新系统包 - kenvie(其他品牌请自行到官网下载)
kenvie
2022/01/20
15.5K0
A/B分区系统提取boot文件(payload.bin解包boot.img)
MIUI 12系统应用精简列表与功能
> 1.由于工信部政策,相同系统版本包含的应用在不同机型上有区别,一般2017年7月后发布的手机有较多可被卸载的应用,会被标注为“新机可卸”。
幻影网络
2022/11/08
6.2K0
小米手机四种刷机方法,总一种你喜欢的。
首先声明我不是给小米打广告,我也不是小米的人,只是最近有很多人问我怎么刷小米,我就把这篇还不错的刷小米的文章写在这里,方便那些需要的人。  
知识与交流
2023/10/31
11.3K0
小米手机四种刷机方法,总一种你喜欢的。
MIUI开启状态栏歌词(需要root/magisk)
系统:解锁小米手机BL锁,root/magisk环境Magisk/面具安装教程,MIUI12.5版本(其他手机及版本不支持)
kenvie
2022/01/20
3.3K0
MIUI开启状态栏歌词(需要root/magisk)
实用贴:hadoop系统下载安装教程
在前几篇的文章中分别就虚拟系统安装、LINUX系统安装以及hadoop运行服务器的设置等内容写了详细的操作教程,本篇分享的是hadoop的下载安装步骤。
用户3392176
2018/10/29
8830
小米 K30 PRO 刷机 MIUI 12.5 海外版
我手里这台 K30 Pro 是 5G 版本,去年年中买回来后,刷了海外版的 MIUI 作为备机使用 ,整体体验还是不错的。
soulteary
2021/10/27
3.2K0
手把手教大家学习,全网最详细的手机全机型 刷机教程
通俗来讲刷机就是给手机重装系统。刷机可以使手机的功能更加完善并且可以使手机还原到原始状态。一般情况下Android手机出现系统被损坏造成功能失效或无法开机也通常通过刷机来解决。一般Andriod手机刷机分为线刷卡刷。
知识与交流
2024/05/07
8.2K0
手把手教大家学习,全网最详细的手机全机型 刷机教程
国内小米手机如何刷国际版MIUI及相关问题
miui国际版,是miui针对国外用户开发的系统,预置了全套的谷歌应用,有很多针对国外的功能优化,没有广告,没有广告,比国内miui用起来真的爽很多。但是没有root权限和小米自带的小米应用商店,需要VPN才能在手机上享受google服务。 看完了介绍,如果你决定安装miui国际版,那么往下看吧。 1、备份。备份很重要,手机设置——更多设置——备份和重置——本地备份。 2、三清。1)需要“三清”的话首先需要重启至Recovery,重启至Recovery的方法有2种:①在关机状态下,同时按住音量上+电源进入
小歪
2018/04/04
8.1K0
国内小米手机如何刷国际版MIUI及相关问题
玩机汇总(六):MIUI主题拆包
(8).com.android.settings模块—设置(自定义设置名字、设置内容图标等)。
kif
2023/03/10
3.4K0
玩机汇总(三):刷入第三方rec 与magisk、Edx安装
本文介绍手机第三方rec刷入和magisk、Edxp的安装 有变砖风险。 玩机有风险,搞机需谨慎。
kif
2023/03/10
7.6K0
小米手机-解BL锁+开ROOT权限
想要开启ROOT权限,必须要把系统变为开发版,具体可以参考:https://miuiver.com/how-to-flash-developer-rom/
全栈程序员站长
2022/06/29
4.3K0
【MIUI】小米5S抢鲜体验MIUI9 – 快如闪电的系统
8月14日 小米5S作为第二批MIUI9的机型推送了MIUI9内测包 内测包当然只能睾贵的内测粉丝组才能体验了 没事 通过第三方REC和泄露包我们一样能体验到最新的MIUI9 准备工具 1.ZCX的MIUI TWRP REC ZCX MIUI TWRP 2.MIUI9泄露包一份 密码:MIUI Step 1 下载上面两份文件 留在桌面备用 备份手机数据 1.备份好之后 解压REC 打开 电脑PC端刷入Recovery.bat 2.手机关机 按住 音量- 和 电源键 插入USB 刷入REC 3.刷
Hyejeong小DD
2018/06/25
8390
使用ADB卸载MIUI系统应用
但是系统里出现了两个相册(一个小米的、一个Google的)、没用的Mi Video等一堆没啥卵用但是不能卸载的应用。
Ant丶
2022/09/07
15.1K0
使用ADB卸载MIUI系统应用
Tinker:技术的初心与坚持
张绍文
2017/07/17
4K1
Tinker:技术的初心与坚持
小米 12 PRO 刷 MIUI 14 海外版(Android 12)
最近看到手机能刷 MIUI 14 了,想起来之前给媳妇换机后,因为容量小、应用适配卡顿、“万物追焦”玄学失灵、发热离谱而被闲置的小米 12 Pro,想试试看最新的 Android 12 到底是不是“有改观”,于是趁着周末折腾了下刷机。
soulteary
2023/03/05
3.2K0
小米 12 PRO 刷 MIUI 14 海外版(Android 12)
小米5(gemini:双子座)刷机
底包的出现是因为早期的手机bootloader被官方锁住,玩家无法对内核进行修改,只能基于官方的内核做ROM修改,玩家在刷机前必须先刷入对应版本的官方ROM,而底包相当于一个纯净版或内核版的系统包。
云深无际
2020/08/12
3.3K0
小米5(gemini:双子座)刷机
小米5 MIUI 10系统完全Root教程 (Root思想通用所有机型)
  虽然手机在完全root后存在一定风险,但是可以从事一些具有探索性的工作如修改手机游戏、修改APP权限要求、编写按键脚本等。此外,完全root非常适合那些拥有两个手机的人。这篇帖子以小米5 最新MIUI 10开发版系统完全root过程为例,介绍了一种通用的小米机型完全Root办法。
全栈程序员站长
2022/09/05
4.3K0
OnePlus 7 Pro 刷KOSP教程
所需工具 PC或Mac一台 一加手机(已解锁BootLoader) USB连接线
vincentKo
2022/09/19
1.6K0
OnePlus 7 Pro 刷KOSP教程
推荐阅读
相关推荐
Magisk/面具安装教程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档