最近有个项目用到Xilinx公司KU系列的板子开发SATA3.0接口与SSD进行高速数据传输。鉴于工程有点复杂,借此博客做些记录,也供大家共同进步。
Xilinx公司有提供了GTP、GTH、GTX、GTZ、GTY多种高速串并转换口,在建立Vivado工程选择芯片具体型号时就可以看到各个芯片所具有的资源数量。我使用的是xcku060-ffva1156-2-e型号具有28个GTHE3可调用高速串并转换收发器。
万事开头难,首先在Xilinx官网上找到了pg182与ug576支持文档,又在AD巨头提供的资源中找到了一个用在AD9371例程中调用GTHE3的开源IP Core,文末会给出资源链接。
之前使用过GTP,所以深知此类IP Core的Example Design的重要性。果然在pg182中就花费了大片篇幅讲解Example Design中提供的模块使用方法。废话不多说,分析如下:

1. Reset Controller Helper Block

该模块主要用于简化复位与初始化串并收发器的工作。该模块包含三个状态机:发送复位,接收复位与全复位。发送与接收是相互独立的,既可以由外部信号触发控制也可以由全复位状态机触发控制。
发送复位与接收复位都可以选择1、复位相关的PLL与相关数据链路2、只复位相关的数据链路。在复位成功后各自有一个User Indicator信号应该置高。

2. Transmitter User Clocking Network Helper Block

该模块用于管理单个或多个收发器中发送通道的TXUSRCLK与TXUSRCLK2时钟。内部会例化BUFG_GT原语(带分频功能的全局时钟Buffer)。

3. Receiver User Clocking Network Helper Block

该模块用于管理单个或多个收发器中接收通道的RXUSRCLK与RXUSRCLK2时钟,内部也会例化BUFG_GT原语。

4. User Data Width Sizing Helper Block

该模块用于简化用户接口与收发器数据接口之间的对接过程。每个收发通道的TXDATA与RXDATA都为128bits,未配置使用的位则被tied off或悬空。该模块分为发送与接收两部分,模块实现都是用wire型信号assign实现,未使用组合逻辑或时序逻辑

4.1 Transmitter Module

该模块中的 gtwiz_userdata_tx_in信号宽度等于用户数据宽度*使能通道数,经过转换,该信号的最低有效位对应在XY网格位置中最低通道的最低有效位。在用户数据宽度为20、40、80、160bits时,还负责驱动每个收发器的TXCTRL0与TXCTRL1端口中的某些位,并处理解缠绕情况。但在其他位宽的情况中则不由该模块进行驱动上述端口。

4.2 Receiver Module

同发送模块

5. Transmitter Buffer Bypass Controller Helper Block

在发送通道的buffer未启用的情况下,该模块用于自动处理buffer bypass,处理完成后会提供一个done信号与一个error信号。

6. Receiver Buffer Bypass Controller Helper Block

同发送模块

7. Transceiver Common Primitive

用于例化Transceiver Common原语模块,可以放在IP CORE之内或之外,可以使用一个Transceiver Common模块配置多个Transceiver Channel模块(共享模式),但该使用方法对新手不友好,若想使用,可以参照AR#65228

8.Design Flow Steps

IP Core参数设置界面分为Basic、Physical Resource、Optional Features、
Structure Options,此处不再详细分析,后续再行细说。

9. Constraining the Core

在Hierarchy界面可以看到一个在IP Core之外的xdc约束文件,其中有对GTHE3启用的参考时钟进行周期约束和位置约束,对free run clock进行周期约束,还将需要用户约束的信号以注释的方式提前给出,
在IP Core内部还可以看到一个*_0.xdc文件,其中对启用的GTHE3通道的位置做了约束,其他是一些set_false_path的约束,不懂~

pg182 https://www.xilinx.com/support/documentation/ip_documentation/gtwizard_ultrascale/v1_7/pg182-gtwizard-ultrascale.pdf
ug565 https://www.xilinx.com/support/documentation/user_guides/ug576-ultrascale-gth-transceivers.pdf
AD公司FPGA支持库 https://github.com/analogdevicesinc/hdl/tree/master

GTHE3开发记录1相关推荐

  1. Anytime项目开发记录0

    Anytime,中文名:我很忙. 开发者:孤独的猫咪神. 这个项目会持续更新,直到我决定不再维护这个APP. 2014年3月10日:近日有事,暂时断更.希望可以会尽快完事. 2014年3月27日:很抱 ...

  2. CozyRSS开发记录3-标题栏再加强

    CozyRSS开发记录3-标题栏再加强 1.更精炼的标题栏 接下来,我们把窗口的边框和默认的标题栏给去掉,让Cozy看起来更像一个平板应用. 在主窗口的属性里,修改下列两个属性: 效果一目了然: 2. ...

  3. CozyRSS开发记录19-窗口标题栏交互

    CozyRSS开发记录19-窗口标题栏交互 1.谈谈对mvvm解耦的看法 在使用mvvm时,如何操作窗口,这是一个问题.这个问题的关键点是:mvvm是把view和viewmodel解耦了的,很多写法一 ...

  4. TMS320F28335项目开发记录9_28335之中断系统

    TMS320F28335项目开发记录9_28335之中断系统 2014年11月08日 12:00:12 阅读数:3104 28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统.C28 ...

  5. 转:修改Content Server管理员密码 - [Documentum 实施开发记录]

    修改Content Server管理员密码 - [Documentum 实施开发记录] 2010-02-25 Tag: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http:// ...

  6. CozyRSS开发记录8-解析一份RSS

    CozyRSS开发记录8-解析一份RSS 1.使用Rss20FeedFormatter解析RSS 使用Rss20FeedFormatter配合XmlReader来解析RSS非常的简单,几行搞定: 来试 ...

  7. 前端radio单选框默认选中_开发记录篇前端内容1

    有段时间没有更新文章了,因为是用的公司电脑,没有虚拟机,所以就没法演示hadoop相关的东西了,而且大数据篇的东西需要花费一些时间和精力去收集整理内容,那大数据篇就先暂停一下.最近这段时间的话我可能会 ...

  8. DTS开发记录(5)-- 挑战增量导出

    增量导出恐怕是DTS系统中最艰难的部分了,我们曾考虑过很多方案,最后都因为需要表大纲做一定的假设而不具备通用性而放弃.有很多效率较高的方案,由于为了追求通用性而无法实现,因为现实的情况比我们理想的要复 ...

  9. 五.开发记录之ubuntu系统安装各个软件

    专栏系列文章如下: 一.开发记录之AHRS.惯导传感器SBG-Ellipse-N传感器配置和使用_goldqiu的博客-CSDN博客_sbg传感器数据格式 二.开发记录之派勤工控机远程使用和ubunt ...

最新文章

  1. 互联网体系结构(网络基础).教案
  2. 【Google Play】创建并设置应用 ( 访问权限 | 内容分级 | 受众群体 | 类别及联系方式 | 商品详情 )
  3. 递归方法计划销售订单的计划物料成本
  4. DataTables怎么给某一列加上click事件
  5. “页面制作人员”?“页面工程师”?“页面架构师”?滚一边去!
  6. c语言如何输入未知数据类型的_C语言新手踩坑记!大坑小坑全部都是你的!
  7. 【数据分享】全国POI数据分享(持续更新中)
  8. ffmpeg下载视频
  9. 记使用springboot过程中遇到的一个问题
  10. bam文件读取_sam和bam文件处理
  11. 登陆远程kvm_通过IPMI kvm控制台远程重装服务器系统
  12. 高通 QSD MSM APQ区别
  13. 【NAND文件系统】UBI介绍
  14. 12月组队学习——JoyfulPandas第二章思维导图
  15. C# Bitmap GetPixel 效率太低,太慢的替代方法
  16. Python 雪球API 股票价格监控预警程序脚本
  17. [动态规划] leetcode 416. 分割等和子集
  18. xxe漏洞原理与防御
  19. 我的读书笔记 - 《暗时间》
  20. kindeditor 上传图片返回带 当前网址的图片地址

热门文章

  1. ISE开发流程——软件操作
  2. CMU-15445 课程和实验介绍
  3. 阿贝尔分布求和法的应用(四)
  4. CentOS7设置定时任务 每隔30秒执行一次命令详解
  5. DB2 错误码解析
  6. 【深度学习】A model-based gait recognition method with body pose and human prior knowledge
  7. c语言教学理念和思路,基于CDIO理念的《C语言程序设计》教学改革探索
  8. Java学习第五天,增强for,方法重载,可变参数,数组定义及稀疏数组。
  9. android矢量地图引擎,GitHub - UbiroutingDevelop/UbiMap-Android-Demo: 使用识途UbiMap矢量图引擎显示地图Demo及文档...
  10. 网络管理必备工具软件精解(Windows版)---转载及个人见解