本文主要介绍说明XQ6657Z35-EVM 高速数据处理评估板例程的功能、使用步骤以及各个例程的运行效果。
(基于TI KeyStone架构C6000系列TMS320C6657双核C66x 定点/浮点DSP以及Xilinx Zynq-7000系列SoC处理器XC7Z035-2FFG676I设计的异构多核评估板,由核心板与评估底板组成。)

ZYNQ7035 PL SFP光口通信例程

1.1.1例程位置
ZYNQ例程保存在资料盘中的Demo\ZYNQ\PL\aurora_8b10b_0_ex文件夹下。

1.1.2功能简介
使用Aurora 8B/10B IP核生成后带的例子工程,稍作修改。

FRAME_GEN: 本地并行数据发送模块
功能:本地产生GTX并行发送数据
接口说明:
// User Interface
output [0:15] TX_D; //发送数据
output TX_REM; //最后一个16bits数据的高低字节有效标识,0表示,表示TX_D[0:7]有效;1表示TX_D[0:15]有效。
output TX_SOF_N; //发送开始标识,低电平有效
output TX_EOF_N; //发送结束标识,低电平有效
output TX_SRC_RDY_N; //发送数据源端准备好标志,低有效
input TX_DST_RDY_N; //发送数据目的端准备好标,为0时才允许发送数据

// System Interface
input              USER_CLK;//用户时钟,由Aurora IP核提供,数据发送模块用此时钟作为同步时钟
input              RESET;//复位,高有效

input CHANNEL_UP;//GTX通道初始化完成标志,为1时表示完成

数据发送模块只有在RESET=0、CHANNEL_UP=1和TX_DST_RDY_N=0时,才允许发送数据。

FRAME_CHECK: 本地并行数据接收检测模块
功能:本地接收GTX并行数据,并检测数据是否存在误码
接口说明:
// User Interface
input [0:15] RX_D; //接收数据
output RX_REM; //最后一个16bits数据的高低字节有效标识,0表示,表示RX_D[0:7]有效;1表示RX_D[0:15]有效。
output RX_SOF_N; //接收开始标识,低电平有效
output RX_EOF_N; //接收结束标识,低电平有效
input RX_SRC_RDY_N; //接收数据有效,低电平有效

// System Interface
input              USER_CLK; //用户时钟,由Aurora IP核提供,数据发送模块用此时钟作为同步时钟
input              RESET; //复位,高有效
input              CHANNEL_UP; //GTX通道初始化完成标志,为1时表示完成
output  [0:7]      ERR_COUNT; //接收数据错误个数

Aurora 8B10B IP核参数设置如下图所示:

Aurora 8B10B IP核显示最高只支持6.6Gbps,这里我们将线速率设置为5Gbps,参考时钟设置为100MHz。
1.1.3管脚约束
ZYNQ PL工程管脚约束如下图所示:

1.1.4例程使用
1.1.4.1连接光纤模块
将光模块插入光模块笼子,并使用光纤线缆将光模块的收、发端口自环对接:

1.1.4.2加载运行ZYNQ程序
1.1.4.2.1打开Vivado工程
打开Vivado示例工程:

工程打开后界面及工程主要模块说明如下图所示:

1.1.4.2.2下载ZYNQ PL程序
下载bit流文件aurora_8b10b_0_exdes.bit,并且配套aurora_8b10b_0_exdes.ltx调试文件,如下图下载界面所示:

1.1.4.3运行结果说明
ZYNQ PL端提供的ILA调试窗口,可以实时抓取采集GTX收发本地并行信号以及错误检测信号的时序波形。
ILA抓取波形如下图所示:

ILA抓取信号说明如下:
ERR_COUNT[0:7]:接收数据错误个数,接收模块分析接收数据是否正确;
tx_d_i[0:15]:发送数据;
tx_rem_i:最后一个发送数据的高低字节有效标识,0表示,表示tx_d_i[0:7]有效,1表示tx_d_i[0:15]有效;
tx_src_rdy_n_i:发送数据源端准备好标志,结合tx_dst_rdy_n_i使用,都为0时表示可以发送数据,
tx_sof_n_i:发送开始标识,低电平有效;
tx_eof_n_i:发送结束标识,低电平有效;
tx_dst_rdy_n_i:发送数据目的端准备好标志;
rx_d_i[0:15]:接收数据
rx_rem_i:最后一个接收数据的高低字节有效标识,0表示,表示rx_d_i[0:7]有效,1表示rx_d_i[0:15]有效;
rx_src_rdy_n_i:接收数据源端准备好标志;
rx_sof_n_i:接收开始标识,低电平有效;
rx_eof_n_i:接收结束标识,低电平有效;
CHANNEL_UP:为1表示GTX通道完成正常初始化;
LANE_UP:指示GTX每个lane是否正常初始化成功,这里只有1个Lane;
SOFT_ERR、HARD_ERR:软、硬件错误指示,正常情况应该为0
tx_lock_i_ila:GTX时钟锁定指示,正常情况应该为1
pll_not_locked_ila:GTX时钟失锁指示,正常情况应该为0

VIO虚拟IO界面如下图所示:

VIO界面上标识Input的为采集信号,用户只能查看对应信号当前的逻辑电平值,1表示高电平,0表示低电平;VIO界面上标识Output的为用户控制信号,用于控制用户逻辑的,用户可以在Value一栏输入0/1电平值,从而达到控制用户逻辑的目的。VIO界面主要用于复位用户逻辑,以及查看通道是否链接成功,VIO界面可以不用操作。
1.1.4.4退出实验
Vivado调试界面Hardware Manager窗口,右键单击localhost(1),在弹出的菜单中点击Close Server,断开ZYNQ JTAG仿真器与板卡的连接:

最后,关闭板卡电源,实验结束。

Xlinx Zynq7035 PL SFP光口通信例程相关推荐

  1. 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例

    前言 自著名华人物理学家高锟先生提出"光传输理论",实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程.本世纪初期,ASON/OADM ...

  2. FPGA基于SFP光口实现1G千兆网UDP通信 1G/2.5G Ethernet PCS/PMA or SGMII替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

  3. FPGA基于SFP光口实现10G万兆网UDP通信 10G Ethernet Subsystem替代网络PHY芯片 提供工程源码和技术支持

    目录 1.前言 2.我这里已有的UDP方案 3.详细设计方案 4.vivado工程详解 5.上板调试验证并演示 6.福利:工程代码的获取 1.前言 目前网上的fpga实现udp基本生态如下: 1:ve ...

  4. can口通信的软件测试,RT1052+8、CAN通信例程测试

    通过对开发板CAN通信例程的学习来掌握CAN的使用,首先,先跑开发板例程,开发板CAN通信例程有三个 , 这次学习其中两个程序. 程序文件列表图片: 1.png (2.44 KB, 下载次数: 17) ...

  5. 【STC15】 STC15W408AS SBUS通信例程

    STC15 SBUS通信例程 相关单片机外设介绍 SBUS协议介绍 代码部分 程序文件 相关单片机外设介绍 1.STC15W408AS内部晶振频率最高可以设置为35MHz ,本demo设置为24MHz ...

  6. 倍福EL6021使用Modbus RTU通信例程

    EL6021简介 EL6021是倍福推出的RS422/485串口通信模块,一般用作Modbus RTU通信的主站,EL6021是单口RS422/485模块,EL6022是双口(DB9)RS422/48 ...

  7. 上位机使用C++通过ADS协议与倍福PLC通信例程-字符串变量读取

    前言 建议初学者先看这一章节内容,里面包括一些基础的环境配置和项目建立流程,以后开发项目这些流程是通用的,务必掌握并熟练. 链接: 上位机使用C++通过ADS协议与倍福PLC通信例程-布尔变量的读取 ...

  8. Zynq 7000 PL和PS通信——使用BRAM

    Zynq 7000 PL和PS通信--使用BRAM 介绍 1 准备工作 2 PL搭建BRAM 3 下载PL程序 4 编写Linux应用程序 5 问题 5.1 BRAM的寻址的问题 5.2 PS地址映射 ...

  9. 龙芯1B:串口通信例程

    文章目录 前言 一.串口通信? 1.串口通信的基础与分类 2.波特率 3.单工.半双工和全双工 4.起始位.数据位.奇偶校验位.停止位 5.TXD,RXD,GND 二.龙芯UART串口介绍 三.程序代 ...

最新文章

  1. Xamarin XAML语言教程通过数据绑定使用Progress属性
  2. 使用three.js实现机器人手臂的运动效果
  3. Linux 库函数与系统调用的关系与区别
  4. Android魔术——手把手教你实现水晶球波浪进度条
  5. linux 安装RedisLive
  6. GIL、进/线程池、同/异步、阻/非阻塞
  7. mac自动生成路径问题
  8. Android Http请求失败解决方法
  9. RHCSA试题+答案
  10. 生物信息学软件_高通量测序技术|生信的发展,常用数据格式及分析软件
  11. android编程歌词显示,Android 音乐播放器实现歌词显示
  12. 电压比较器的介绍和工作原理
  13. 今日头条笔试 机器人跳跃问题
  14. KETTLE:通过代码运行本地ktr文件
  15. 前端实现扫码数据展示
  16. 智能家居-电热水器工作原理(转载)
  17. OnTriggerEnter与OnCollisionEnter详解
  18. Android 求时间差
  19. 经纬财富:银价继续承压 今晚关注消费者指数 东莞
  20. 东方财富股吧标题爬取分析

热门文章

  1. android-图书购买APP
  2. Android上的模拟点击
  3. App推广方式:怎样有效找渠道、引流
  4. java基于springboot+vue的学生考勤请假打卡管理系统 elementui
  5. 盘点几个B2B网站功能
  6. 2021-2027全球及中国视觉效果软件行业研究及十四五规划分析报告
  7. 京东商城:已经没有上市机会
  8. 基于51单片机的课程设计(毕业设计)——电子贺卡
  9. Linux多线程下载神器XDMv8.0 中文汉化设置,替代idm
  10. Win10怎么在桌面添加备忘录 Win10桌面添加备忘录方法