网站首页 > 技术文章 正文
前 言
本文主要介绍基于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处理器设计。核心板内部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开发界面。
在进行本文如下操作前,请先按照开发环境搭建文档安装Xilinx Vivado开发工具包。本文默认使用创龙科技的TL-DLC10下载器进行操作演示。
将BOOTSET拨码开关拨至XXXX0(1~5),ON为1,相反为0,X代表任意值,此档位为FPGA的SPI FLASH启动模式(此模式可进行程序在线加载、固化并离线启动),并将评估板通过下载器正确连接至PC机。
led_flash案例
案例功能
案例功能:控制评估底板LED3、LED4每隔0.5s将状态翻转一次。
操作说明
请运行程序,此时可看到评估底板的LED3、LED4进行闪烁。
关键代码
顶层文件为"project\led_flash.srcs\sources_1\imports\hdl\led_flash.v",关键代码说明如下。
- 使用STARTUPE2原语提供的CFGMCLK(65MHz)作为LED的参考时钟。
- 使用CFGMCLK进行计数,使LED以0.5s的周期进行状态转换。
RTL原理图如下所示:
key_test案例
案例功能
案例功能:通过按键SW3(FPGA USER1)控制评估底板的LED5状态。
操作说明
请运行程序,此时每按下SW3一次,LED5状态改变一次。
关键代码
顶层文件为"project\key_test.srcs\sources_1\imports\hdl\key_test.v",关键代码说明如下。
- 使用STARTUPE2原语提供的CFGMCLK(65MHz)作为系统时钟。
- 对按键进行消抖处理。
- 通过按下按键产生对应标志,对LED状态进行控制。
RTL原理图如下所示:
ibert_eyescan案例
案例功能
案例功能:基于SFP+光口测试高速串行总线GTX的通信速率与误码率,并通过眼图查看信号传输质量。
操作说明
将两个SFP+多模双纤光模块分别接入SFP1、SFP2光口,使用光纤线缆将两个光模块各自的RX与TX相连接,形成外部回环。
SFP1光口使用GTX Quad 116的MGTXRX_0、MGTXTX_0引脚,SFP2光口使用GTX Quad 116的MGTXRX_1、MGTXTX_1引脚。
核心板板载时钟芯片输出的100MHz时钟被用作GTX参考时钟,与GTX Quad 116的MGTX_REFCLK1引脚相连接。
请运行程序,此时将会在Vivado的Hardware界面扫描到GTX设备。其中MGT_X0Y4、MGT_X0Y5为SFP+光口,速率均为10Gbps,请点击"Auto-detect links"。
可在Serial I/O Links窗口查看GTX通信速率与误码率。由下图可见在10Gbps速率下,SFP+光口的误码率为0。
点击Serial I/O Scans窗口,并点击"Create scan"创建眼图扫描。
在弹出的界面中设置眼图扫描参数。点击Link选择待扫描的GTX,分别设置Horizontal increment(水平增量)和Vertical increment(垂直增量),数值越小则眼图越精细,但扫描时间也越长,参数详细说明请查看下表。
将Horizontal increment和Vertical increment均设置为8时,测得MGT_X0Y4眼图如下图所示。眼图的两个关键指标为Open area(眼图张开区域点数)和Open UI %(眼图张开百分比),此两个数值越大,表示信号传输质量越好。
将Horizontal increment和Vertical increment均设置为2时,测得MGT_X0Y4眼图如下图所示。
关键代码
顶层文件为"project\ibert_eyescan.srcs\sources_1\imports\hdl\ibert_eyescan.v",关键代码说明如下。
定义GTX Quad 116端口。
例化2个GTX专用差分时钟Buffer,用于将差分时钟转换为单端时钟。
使能SFP+接口。
调用IBERT IP核。
RTL原理图如下所示:
IP核配置
本案例使用IBERT IP核测试GTX信号传输质量。
IBERT IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg132-ibert-7series-gtx.pdf》和《ug908-vivado-programming-debugging.pdf》,具体配置说明如下。
设置协议数量为1,设置通信速率为10Gbps,选择参考时钟为100MHz(需与实际参考时钟一致)。
使用QUAD_116的GTX,参考时钟设置为MGTREFCLK1 116。
系统时钟设置为QUAD116 1,即MGTREFCLK1 116。
udp_10g_echo案例
案例功能
案例功能:评估板通过SFP+光口接收上位机数据后,将数据重新发送至上位机(PC),以验证基于SFP+光口的10G UDP网络通信功能。评估板作为UDP Server,上位机作为UDP Client。
操作说明
请将ZBNET的万兆网卡MCX311插入PC机的PCIe插槽中,并将一个SFP+多模双纤光模块接入万兆网卡,将另一个SFP+多模双纤光模块接入评估板SFP1光口。使用两根光纤线缆分别将SFP1的RX与万兆网卡的TX相连接,SFP1的TX与万兆网卡的RX相连接。SFP1光口使用GTX Quad 116的MGTXRX_0、MGTXTX_0引脚。
评估板IP地址已通过udp_ip_10g模块配置为192.168.0.25。请设置PC机IP地址与评估板IP地址处于同一网段。此处将PC机IP地址设置为192.168.0.88,子网掩码设为255.255.254.0。
请运行程序,此时PC机将会识别网络连接状态为10Gbps。
由于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 //查看添加状态
双击打开产品资料“4-软件资料\Tools\Windows\”目录下的网络调试工具SocketTool_NoAD.exe,在弹出的界面中点击“UDP Client -> 创建”,在“对方IP”中输入评估板IP地址,再点击确定。
在“数据发送窗口”中输入需发送至评估板的数据,再点击“发送数据”。“数据接收及提示窗口”中将打印由PC机发送至评估板,以及由评估板发送至PC机的数据。
模块/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。
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核包含共享逻辑。
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\"。
udp_ip_10g模块具体配置说明如下。
设置链路速率为10Gbps。
设置评估板MAC地址为00-23-20-21-22-23,IP地址为192.168.0.25,子网掩码为255.255.254.0。
由于篇幅问题,文章分为上下两篇,感兴趣的可以查阅观看,本文为上。
猜你喜欢
- 2024-11-24 「论文集锦」激光技术应用——《电子技术应用》优秀论文集锦
- 2024-11-24 基于MCAPI的多核软件开发方法
- 2024-11-24 硬件工程师必读!多款ARM、FPGA、DSP开发板/核心板测试使用大全
- 2024-11-24 基于多核DSP互联架构的SAR处理研究与设计
- 2024-11-24 基于TL6678F-EasyEVM评估板——DSP算法案例开发手册
- 2024-11-24 「方案分享」基于C6678+Zynq-7045 目标追踪视觉技术
- 2024-11-24 SAR成像的距离多普勒算法(RDA)的硬件实现
- 2024-11-24 AD9361、AD9613高速AD采集处理开发案例,基于C6678+Kintex-7
- 2024-11-24 基于TMS320C6678开发板的ZYNQ PS + PL异构多核案例开发手册(3)
- 2024-11-24 TMS320C6678开发板 ZYNQ PS + PL异构多核案例开发手册(4)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- oraclesql优化 (66)
- 类的加载机制 (75)
- feignclient (62)
- 一致性hash算法 (71)
- dockfile (66)
- 锁机制 (57)
- javaresponse (60)
- 查看hive版本 (59)
- phpworkerman (57)
- spark算子 (58)
- vue双向绑定的原理 (68)
- springbootget请求 (58)
- docker网络三种模式 (67)
- spring控制反转 (71)
- data:image/jpeg (69)
- base64 (69)
- java分页 (64)
- kibanadocker (60)
- qabstracttablemodel (62)
- java生成pdf文件 (69)
- deletelater (62)
- com.aspose.words (58)
- android.mk (62)
- qopengl (73)
- epoch_millis (61)
本文暂时没有评论,来添加一个吧(●'◡'●)