文章目录

  • in_system_ibert IP定制要点
    • 串行收发器的位置
  • 如何例化in_system_ibert?
  • 结尾

in_system_ibert IP定制要点

串行收发器的位置

在ISI定制中,需要选择所使用的串行收发器的位置,如下:

对应的IP端口处也会出现相应的端口,例如上图选择了2个Quad,也就是8个通道的串行收发器,那么对应的drp接口就有8个。

但这个对应关系让人很迷惑,具体的通道和drp端口信号是如何对应的呢?

如果有着严格的对应关系,那么数据手册或者其他形式有必要给出必要的说明,而不是让用户去猜测!
人们常常犯着经验主义的错误,认为既然让你选择了Quad和通道,那么就应该对应连接?
我在拿不准的时候也听过如此的论调,并信以为然,这花费了我很多的时间去寻找对应关系,并最终一无所获,当你使用了大量的通道,例如几十个,那么这种对应关系的寻找会更加消耗你的时间,特别是当项目中需要被测眼图的transceiver一方,有着混乱的通道使用!
不管是什么原因,为了原理图布线方面也好,或者是任性使用,例如:
如下定义的rx:

input [31:0] rx;

每4位使用一个Quad,也就是4个通道,对应关系如下:
rx[0] 对应通道x1y39
rx[1] 对应通道x1y38
rx[2] 对应通道x1y37
rx[3] 对应通道x1y36

rx[4] 对应通道x1y35
rx[5] 对应通道x1y34
rx[6] 对应通道x1y33
rx[7] 对应通道x1y32

看起来已经有点意思了,这种还是倒过来约束的,还行,能接受。
如果是下面这种对应关系:
rx[0] 对应通道x1y36
rx[1] 对应通道x1y37
rx[2] 对应通道x1y38
rx[3] 对应通道x1y39

rx[4] 对应通道x1y32
rx[5] 对应通道x1y33
rx[6] 对应通道x1y34
rx[7] 对应通道x1y35

这就必须谴责了。
如果有几十个通道,你说怎么玩吧,如果in_system_ibert又需要严格的通道对应关系,那么信号的连接将变得十分不直观,让接盘开发者面临青筋暴裂的危险。

还是去看数据手册吧,那么一个不起眼的IP核,拿不准的时候也需要阅读数据手册!如果有现场支持工程师,这种问题也不要问了,因为他很可能自家的数据手册都没有阅读,就按照惯性思维告诉你,如果不需要严格通道对应,人家IP核让你选择干嘛,然后你深信不疑,胡乱猜测,呃呃呃,gt1对应x1y39,或者gt1对应x1y0,白白浪费时间,项目做到最后,还对自己隐隐怀疑。或者最后结果没有问题,还以为,自己的运气是好的,选择是对的,并输出文档,告诉队友,就得这样干,我试过!!!

来看数据手册:
The ISI core has no transceiver location constraints, nor are any attributes updated for selected transceivers. The selected transceiver information is only used to create an ISI template and group/display the selected transceiver in the Serial IO analyzer after downloading the bit file.

翻译一下:

ISI内核没有收发器位置约束,也没有为所选收发器更新任何属性。所选的收发器信息仅用于创建ISI模板,并在下载bit文件后在串行IO分析器中分组/显示所选的收发器。

很明显了,没有位置约束,所选择的收发器信息仅仅用于创建例化模板。
告诉你有多少个gt,你接进去就完事了。

总结:最接近真理的地方在数据手册上,我们(除了制定者,设计者)外都是阅读者,各色各样的阅读者容易忽略部分信息,或者根据惯性思维来判断,因此,带着问题去数据手册寻找答案。

如何例化in_system_ibert?

由于这个IP没有提供例子程序,所以要正确无误地使用这个IP,还有一定的疑惑点?
这个时候谁也别问,因为你可能问的人也只是听说过,或者见过,真正手把手体验过,实践过的人,也许很难精确遇到。
如果你问了,他们会告诉你,把drp接口连接上去就好了,然后你看看你自己的应用场景,已经定制好的aurora,或者jesd,srio等等,我了个去,怎么没有drp端口,如何和in-system-ibert的drp接口连接?
当你找不到drp接口的时候,他们也许又会告诉你,在ip核内部有,引出来?你若怀疑,甚至还怪你资历不够的意思?

我来告诉你,IP核是不要轻易改动的,或者说不要改动,如果你找不到drp接口,可以尝试看看数据手册,或者试试去掉某些选项,或者添加某些选项,但我建议还是看看收据手册,数据手册会有那个接口的描述,你会得到答案。

这里就已经可能解决很多疑惑了,但是还不够,没有个示例来参考,又没有例子工程,我会不放心我连接的对不对,或者说对这个IP核使用的对不对,因为我一旦例化进去,并生成bit流,工程大了会消耗大量的时间,怎么办呢?
为了提高成功率还是要找到一个这个ip核使用的例子程序来研究研究,这里建议可以使用transceiver IP,内部有例化in-system-ibert的选项,你勾选之后随便生成一个例子程序,就可以看到这个ip核到底怎么使用的,照葫芦画瓢,是最直接的方式。

例如:

生成例子程序:

对着程序看看如何无误地使用in-system-ibert,并且如何配合VIO IP核来使用,都可以清晰地看到解决办法!

这些都是需要自己去发现的,而不是去问xxx。

结尾

这里只是告诉自己,也告诉迷茫的你方法,而没有提供一个具体的实例,自己去探索吧,数据手册,求知欲,才是王道。

FPGA设计心得(12)如何正确使用 in_system_ibert ?相关推荐

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

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

  2. FPGA设计心得(4)Aurora IP core 的定制详情记录

    文章目录 写在前面 IP核定制页面预览 IP核定制详解 lane width Line Rate GT REFCLK (MHz) INIT clk (MHz) DRP clk (MHz) Datafl ...

  3. FPGA设计心得(8)Verilog中的编译预处理语句

    文章目录 写在前面 正文 宏定义 文件包含 条件编译 条件生成语句问题 回顾 参考资料 交个朋友 写在前面 相关博文 博客首页 注:学习交流使用! 正文 看稍微复杂一点的IP Core以及模块等 ,都 ...

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

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

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

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

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

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

  7. FPGA设计心得(2)边沿检测的问题进一步说明(仿真中一定能得到上升沿的设计)

    文章目录 背景 新检测方法 旧检测方法 改进旧检测方法 设计介绍 设计代码 仿真情况 仿真图 最后想提出的问题 同行邀请 工程分享 背景 关于边沿检测,写过的博文也很多,不下于4篇了,当然都是学习过程 ...

  8. FPGA设计心得(1)真双口RAM使用及其仿真问题记录

    文章目录 前言 设计介绍 关于仿真 老生常谈 最后想说的话 前言 RAM是一个好东西,FIFO也是,关键是适应你的设计场景,本文是一个记录性质的博文,所以也没必要什么都交代清楚了,只是在项目开发中,有 ...

  9. FPGA设计心得(10)关于行为仿真的一点观点

    文章目录 前言 实践分析 推荐的仿真设计 总结 前言 提前给出一些观点: 仿真是为了仿真,所以不要设置极限情况,例如在时钟上升沿通过阻塞赋值给数据,应该避免这种情况: 各种不同的仿真软件对时钟上升沿通 ...

最新文章

  1. ack strom 保证只有一次_Storm容错机制(一):ACK机制
  2. Jquery获得控件值的方法
  3. elasticsearch 结构化搜索_在案例中实战基于range filter来进行范围过滤
  4. 9月全球浏览器份额之争:IE领先Chrome21.73%
  5. ALGO-22 数的划分(DFS,经典剪枝)
  6. vmware centos7 扩展容量
  7. 基于.NetCore3.1搭建项目系列 —— 使用Swagger做Api文档(上篇)
  8. php session 效率,大量php session临时文件带来的服务器效率问题
  9. mysql uroot p f_Mysql 5.7安装
  10. 删除oracle怎么快,如何快速删除Oracle的好方法
  11. 如何获取登录token值_Token认证,如何快速方便获取用户信息
  12. “众矢之的”马库斯回应14个问题,将深度学习质疑到底
  13. 在Linux中使用cURL进行HTTP POST和GET [复制]
  14. python中大于0的元素全部转化为1,小于0的元素全部转化为0的代码
  15. 反射--笔记(第一篇)
  16. linux下opendir的使用
  17. Connection terminated as request was larger than XXX
  18. 国庆长假自驾游推荐路线
  19. android 自动连接WiFi
  20. axis调用java实现webservice实例

热门文章

  1. oracle ora 14452,ORA-14452的出现原因解析及解决方法
  2. 电容和频率的关系_为什么会有直流电和交流电?频率为什么是50hz?白话科普专业知识...
  3. python server page_python web-server
  4. 建立数据库时连接出错_PHP的福音!支持多数据库连接,高性能的开源MySQL连接池...
  5. 字符串 拼接方法,公司内部的方法,用集合转换成拼接的字符串
  6. linux snmp磁盘io,cacti利用snmpdiskio 监控服务器磁盘
  7. 大连评职称英语计算机,假如 职称英语和中级职称的工商管理、经济基础都考过了,辞职了还有地方给评中级经济师吗?大连的...
  8. oracle exp导出分区表,【实验】【PARTITION】exp导出分区表数据
  9. 一个中等规模的七段数码数据库以及利用它训练的识别网络
  10. 应用函数修饰符@来改变AI Studio的输出信息