文章目录

  • 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. WCF入门(一)——简单的示例
  2. java中异常回收_理解Java垃圾回收
  3. PADS Layout VX.2.3 修改层名
  4. Unidirectional Link Detection Protocol
  5. java joptionpanel_JOptionPane用法--java
  6. 设置tomcat的默认jdk
  7. iOS工作笔记(十二)
  8. [递归][DP]n条直线最多分平面为几部分?
  9. 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
  10. 20165323 第五周学习总结
  11. Color Cube – 国产的优秀配色取色工具
  12. Zabbix-1.8.14 安装
  13. 程序员需要鼓励师吗?我觉得写代码的时候更需要这个!
  14. latex 目录层次设置
  15. java web项目编译_Java三种编译方式: 前端编译 JIT编译 AOT编译
  16. 【HenCoder Plus】第四期终于来了
  17. mybatis-plus批量insert效率低下怎么办(mysql)
  18. 主分区、扩展分区、逻辑分区和活动分区的区别与联系
  19. windows 取消开机自检
  20. 如何清除360网站服务器缓存,360安全浏览器怎样清除缓存360浏览器缓存清理

热门文章

  1. ssh_config sshd_config 详解ssh_config sshd_config 详解
  2. python snap7 简书_SnapKit真好用
  3. html获取cookie_知了汇智《XSS攻击-盗取cookie实战》课程文档讲解
  4. java script中==和===_Java Script与CSS的问题
  5. 舵机弹跳机器人_这个小小的机器人外形呆萌 弹跳能力绝对比你好
  6. 截断 四舍五入 进位php,PHP取整,四舍五入取整、向上取整、向下取整、小数截取 四舍五入是什么意思 四舍五入就是一个亿 excel数值四舍五...
  7. php 对数据转换成tree,PHP 把返回的數據集轉換成Tree樹
  8. 在Python中读取MATLAB的数据文件
  9. 几款高压、高阻电阻测试
  10. 基于MM32F3273的MicroPython实验电路板 - 工作并不是正常