文章目录

  • 写在前面
  • IP核定制页面预览
  • IP核定制详解
    • lane width
    • Line Rate
    • GT REFCLK (MHz)
    • INIT clk (MHz)
    • DRP clk (MHz)
    • Dataflow Mode
    • Interface
    • Flow control
    • Back Channel
    • GT selection
  • 写在最后
  • 同行邀请
  • 参考资料

写在前面

很久没有在夜里写博客了,现在是凌晨3点多,写这篇博客,夜真的太静了,这种感觉是真的好。为什么要在夜里写博客呢?
原因是通过这一段时间的学习,我发现白天我真的特别容易分心,夜里状态极好(读研期间养成的臭毛病之一),当然并不是推荐这种做法,毕竟以后工作还是白天,只是有特别需要完成的任务时(导师给的项目代码,但看懂还是需要自己通过定制类似的IP核实践一下,触类旁通),坚持一下还是很有必要的。

这篇博客讲的是Aurora IP核的定制问题,说实话,IP核的定制谁都会,随便选选都能用,但是我觉得还是有必要认真去了解特定的IP核定制,特别是其重要细节的选择,只要了解了,才能进行后面的仿真。
废话不多说,开始吧。(声明:有耐心的推荐阅读数据手册)
对了,这是上一篇博客,有助于这一篇博客的理解。
FPGA设计心得(3)Aurora IP core 的理论学习记录

IP核定制页面预览

第一页,物理层以及链路层信息选择:

第二页,选择IP核使用的GTX 通道以及那个MGT BANK等:

第三页:共享逻辑的位置,例如时钟以及复位等逻辑,是在核内还是在例子工程内(一般较为复杂的IP核,赛灵思会提供例子程序供学习以及修改作为自己的工程),为了灵活使用时钟等,个人倾向于在例子内:

IP核定制详解

lane width


物理层参数之一,数据手册给出的解释是:
选择该IP核中使用的收发器(Transceiver)的字节宽度。此参数定义收发器的TXDATA / RXDATA宽度以及用户接口数据总线的宽度。 有效值为2和4。
默认值为2;
对于用户接口,我们在定制页面给出对比:
当lane width为2时:
当lane width为4时,

Line Rate


在0.5(Gb / s)到6.6(Gb / s)的有效范围内输入以吉比特/秒为单位的线速率值。
线速率这个参数值是未编码的比特率,通过串行链路以该比特率传输数据。 该核的总数据速率为:
(0.8 x 线速率)x Aurora 8B / 10B通道数。
线速率受所选设备的速度等级和封装的限制(也即不同的设备以及封装等具有不同的限速率)。

GT REFCLK (MHz)

从下拉列表中选择收发器的参考时钟频率。 参考时钟频率取决于所选的线路速率。 为了获得最佳结果,请选择可以实际应用于目标设备的参考时钟输入的最高速率。
默认值为:125.000 MHz

INIT clk (MHz)

字面意思是初始化时钟,也没啥好解释的,Aurora协议中需要初始化的东西很多吧,默认时钟50M,给就完事了。

DRP clk (MHz)

DRP的英文应该是dynamic reconfiguration port,意思是动态可重配置端口,那么drp clk到底是个什么呢?在IP核中用来干嘛的?
你听说过在线配置属性吗?(例如:GTX可以工作在不同线速率,用户可能需要通过更改内部属性来实现,这就需要DRP时钟了。)也许做过GTX/GTH的朋友,有意无意都听说过,那这个drp clk就是用于此的。(也许你不需要用,但是如果例子程序需要给的话,给相应的时钟就好了。)

默认时钟也为50M。

Dataflow Mode

字面意思是:数据流模式,如下定制页面:

可以选择为全双工,以及只收单工,只发单工三种模式。
不必多说,如果你需要有收有发,自然全双工模式。

Interface

用户端接口,可以选择的协议格式有framing以及streaming,博文:Aurora IP core 的理论学习记录就介绍过。
streaming接口格式比framing格式要简洁的多。

选择用于核的数据路径接口的类型。 选择Framing使用AXI4-Stream接口,该接口允许封装任何长度的数据帧。 选择流传输则使用简单的AXI4-Stream接口通过Aurora 8B / 10B通道流传输数据。

Flow control


选择所需的选项以将流量控制添加到核。

用户流控制(UFC)允许应用程序通过Aurora 8B / 10B通道发送简短的高优先级消息。

本机流控制(NFC)允许全双工接收器调节发送给它们的数据的速率。

立即模式允许将空闲代码插入数据帧内,

而完成模式仅将空闲代码插入完整数据帧之间。

当然这是针对数据路径接口格式为framing时的流控制,如果选择streaming格式,则此选项不需要。

Back Channel

仅仅对应于单工模式,字面意思是后通道,至于干啥用的,我还真不知道。
用实践来说话吧,或者提出你的见解?

可选的值为;

GT selection

GT selection需要配置的有两个东西,一个是lanes,也就是通道数量,使用几个通道,就像去一个目的地,有很多条路,你需要选择你的车队分别做哪几条路线。
事实上,在FPGA中,GT Bank是有限的,不同类型的FPGA以及不同的封装等都有不同数量的MGT Bank,而一个MGT BANK上有4个通道叫channels,在这里叫lanes,四个channels加上一个共有的QPLL,组成一个Quad。
以前也讲过这东西:
Aurora IP core 的理论学习记录

GTX/GTH 物理层结构分析

如下:

这里就是配置这些的。
最后是GT Refclk1和Gt Refclk2,选择参考时钟,例如上图GTXQ0,是不是就是选择GTX中的QPLL了呢?
我想应该是的,这样的话,时钟质量是最好的。(当然还需要斟酌)。
我想定制过程大概就这样结束了,后面紧接着要进行仿真,通过仿真去更清楚的认识Aurora传输数据的过程。
先使用简单的streaming用户接口格式,在使用framing用户接口数据格式,这是很有必要的,因为实战中我发现还是很多都自用framing。

写在最后

在定制完成IP核后,就可以生成IP核了。
等综合完成之后,
通过右击定制的IP核可以选择声称该例子程序,这是我们程序设计的起点。下一篇博客见!

同行邀请

不仅是一个群,同时也是交个朋友。

参考资料

Aurora 8b/10b IP 数据手册

FPGA设计心得(3)Aurora IP core 的理论学习记录

GTX/GTH物理层结构分析

FPGA设计心得(4)Aurora IP core 的定制详情记录相关推荐

  1. FPGA设计心得(6)Aurora IP核例子简析与仿真(framing版)

    文章目录 背景 定制framing接口的IP核 生成示例工程并分析 GEN模块分析 CHECK模块分析 示例工程仿真 总体仿真 发送模块仿真 接收模块仿真 参考资料 交个朋友 写在最后 工程分享 背景 ...

  2. FPGA设计心得(5)Aurora 例子工程分析与仿真实例分析(streaming版)

    文章目录 背景 例子工程预览 例子程序用户模块逻辑分析 收(CHECK) 发(GEN) 例子程序仿真文件分析 写在最后 工程分享 参考资料 交个朋友 背景 熬夜写完了上两篇博客: Aurora IP ...

  3. FPGA零基础学习:IP CORE 之 PLL设计

    FPGA零基础学习:IP CORE 之 PLL设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子. ...

  4. FPGA零基础学习:IP CORE 之 FIFO设计

    FPGA零基础学习:IP CORE 之 FIFO设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子 ...

  5. FPGA零基础学习:IP CORE 之 RAM设计

    FPGA零基础学习:IP CORE 之 RAM设计 本系列将带来FPGA的系统性学习,从最基本的数字电路基础开始,最详细操作步骤,最直白的言语描述,手把手的"傻瓜式"讲解,让电子. ...

  6. FPGA设计心得(3)Aurora IP core 的理论学习记录

    文章目录 Aurora IP核介绍 整体介绍 大小端 Framing or Streaming User Interface framing 接口介绍 framing 结构 几个frame的例子 st ...

  7. FPGA设计心得(13)aurora的线速率及其用户时钟之间的关系?

    文章目录 长话短说 aurora的用户时钟频率是多少? aurora的用户时钟的来源? 总结 长话短说 由于工作很忙,所以一直没有时间来胡乱写写,需要注意的是文章内容不涉及任何秘密,纯粹来源自公开的数 ...

  8. FPGA设计心得(11)关于FIFO IP核使用的一点注意事项

    文章目录 前言 位宽转换 分布式ram资源的FIFO不能变换位宽 Block RAM资源可以变化位宽 Builtin FIFO资源不能变化位宽 FIFO 安全电路 FIFO消耗资源 输出延迟 Read ...

  9. FPGA设计心得(9)基于DDS IP核的任意波形发生器设计

    博文目录 写在前面 正文 设计要求 IP核配置 定制输出数据位宽 定制相位位宽(或频率分辨率) 输出频率 输出正余弦选择以及数据格式 其他设置 电路设计 行为仿真 参考资料 交个朋友 写在前面 数据手 ...

最新文章

  1. 代替国足踢决赛?马宁当选卡日大战第四官员
  2. python简单程序代码-简单python代码
  3. js事件之event.preventDefault()与event.stopPropagation()用法区别
  4. Reference, List, and Completion of javascript
  5. 前端做后台管理系统有前途吗_关于后台管理系统前端项目的思考
  6. 最大公约数(Greatest Common Divisor)
  7. python计算思维的概念_用Python学计算思维turtle详解
  8. matlab2c使用c++实现matlab函数系列教程-rand函数
  9. windows 安装 mysql5.7.17
  10. 【C#语言学习】学习一门语言
  11. TimeLine下载地址
  12. double类型的数值转为小数点2位
  13. 二级计算机excel以宏保存,excel宏保存 设置宏保存位置的操作方法
  14. 软考中级 真题 2018年下半年 系统集成项目管理工程师 基础知识 上午试卷
  15. 观察 | 经济学诺奖的启示:金融科技的核心任务是什么?
  16. ui-bootstrap-tpls 中文 现在还不全的啊~,组件太多了,有空就更新
  17. python实现视频压缩
  18. 强制关闭无法关闭的进程的方法
  19. 仓储管理之计价方法——个别计价法
  20. 如何组装深度学习的计算机

热门文章

  1. VS2010数据库项目不能正常工作解决方案
  2. [ZZ]好的测试应该具备哪些特质?
  3. php 去除中英文空格,php去除字符串首尾中英文空格程序-PHP源码
  4. 单片机怎么跳出循环_自学单片机第二十七篇:矩阵按键的硬件测试
  5. a b c d java_java中数组String array{a,b,c,d,c,d,e}如何能把字段相同的分到另外的数组中...
  6. float gpu 加速_tensorflow - GPU 加速
  7. findwindowex子窗口类型有哪几种_光学玻璃有哪几种类别?一文告诉你
  8. oracle exp导出分区表,【实验】【PARTITION】exp导出分区表数据
  9. ESP32 One-Wire驱动功能
  10. 智能车竞赛技术报告 | 单车拉力组-大连海事大学-同舟拾队