FPGA结构分析——IDELAY2,网口储备点3

这篇具有很好参考价值的文章主要介绍了FPGA结构分析——IDELAY2,网口储备点3。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

写在前面:IDELAY2有4种工作模式( FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE),本篇主要对“FIXED”模式即固定数值延迟模式进行说明,后面择机再出一篇聊聊剩余的3种模式,先解决“从无到有”的问题,再想着“从有到优”的问题。

本篇所说的IDELAY2与前代的IDELAY存在一些差异,具体可在Virtex-4 User Guide 中查阅

还是像之前一样,先抛出几个问题:
1.什么是 IDELAY2?IDELAY2的作用是什么?使用场景?
2. IDELAY2结构是什么样?都有哪些端口?端口属性都是什么?
3. IDELAY2原语结构,参数属性说明?
4. IDELAYCTRL
5. IDELAY2时序是什么样?

1.什么是 IDELAY2?IDELAY2的作用是什么?使用场景?

IDELAY2也即 input delay,用于在信号通过引脚进入FPGA芯片内部之前,进行延时调节,如下图,信号由PAD通过IOB后,经过IDELAY2后到达ILOGIC再到达FPGA内部或直接到达FPGA内部,用于由于器件差异或PCB走线较差导致的时钟和数据未对齐问题,从而进行微调。
FPGA结构分析——IDELAY2,网口储备点3

2.IDELAY2结构是什么样?都有哪些端口?端口属性都是什么?

IDELAY2结构如下图:
FPGA结构分析——IDELAY2,网口储备点3
端口说明:
C、REGRST、LD、CE、INC、CINVCTRL、CNTVALUE[4:0]、LDPIPEEN、CNTVALUEOUT[4:0]共9个端口用于VARIABLE,、VAR_LOAD,、VAR_LOAD_PIPE模式下,本篇不讨论;
IDATAIN:从IOB输出的延迟输入管脚;
DATAIN:从FPGA fabric侧输出的延迟输入管脚;
DATAOUT:延迟输出管脚。

3.IDELAY2原语结构,参数属性说明?

IDELAY原语如下:

   (* IODELAY_GROUP = <iodelay_group_name> *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL

   IDELAYE2 #(
      .CINVCTRL_SEL("FALSE"),          // Enable dynamic clock inversion (FALSE, TRUE)
      .DELAY_SRC("IDATAIN"),           // Delay input (IDATAIN, DATAIN)
      .HIGH_PERFORMANCE_MODE("FALSE"), // Reduced jitter ("TRUE"), Reduced power ("FALSE")
      .IDELAY_TYPE("FIXED"),           // FIXED, VARIABLE, VAR_LOAD, VAR_LOAD_PIPE
      .IDELAY_VALUE(0),                // Input delay tap setting (0-31)
      .PIPE_SEL("FALSE"),              // Select pipelined mode, FALSE, TRUE
      .REFCLK_FREQUENCY(200.0),        // IDELAYCTRL clock input frequency in MHz (190.0-210.0, 290.0-310.0).
      .SIGNAL_PATTERN("DATA")          // DATA, CLOCK input signal
   )
   IDELAYE2_inst (
      .CNTVALUEOUT(CNTVALUEOUT), // 5-bit output: Counter value output
      .DATAOUT(DATAOUT),         // 1-bit output: Delayed data output
      .C(C),                     // 1-bit input: Clock input
      .CE(CE),                   // 1-bit input: Active high enable increment/decrement input
      .CINVCTRL(CINVCTRL),       // 1-bit input: Dynamic clock inversion input
      .CNTVALUEIN(CNTVALUEIN),   // 5-bit input: Counter value input
      .DATAIN(DATAIN),           // 1-bit input: Internal delay data input
      .IDATAIN(IDATAIN),         // 1-bit input: Data input from the I/O
      .INC(INC),                 // 1-bit input: Increment / Decrement tap delay input
      .LD(LD),                   // 1-bit input: Load IDELAY_VALUE input
      .LDPIPEEN(LDPIPEEN),       // 1-bit input: Enable PIPELINE register to load data input
      .REGRST(REGRST)            // 1-bit input: Active-high reset tap-delay input
   );

参数说明:
IDELAY_TYPE:用于设置四种延迟模式的一种,默认FIXED,即固定延迟模式;
DELAY_SRC:用于选择延迟输入源端口,是IDATAIN或 DATAIN,默认IDATAIN;
IDELAY_VALUE:延迟数据,对于不同的参考时钟,每一拍代表的延迟时间不同;
HIGH_PERFORMANCE_MODE:TRUE用于减少抖动,FALSE用于减少功耗,默认TRUE;
SIGNAL_PATTERN:延迟输入信号类型,时钟或数据,默认为数据;
REFCLK_FREQUENCY:延迟数值IDELAY_VALUE的参考时钟,默认200MHz,即1个tap为78ps,具体参考7系列FPGA的数据手册;
CINVCTRL_SEL:动态改变时钟极性,默认FALSE;
PIPE_SEL:在VAR_LOAD_PIPE模式下,选择pipeline mode。

4.IDELAYCTRL:

IDELAYCTRL 和 IDELAYE 需要同时使用,IDELAYCTRL用于对 IDELAYE 延时进行校准:
FPGA结构分析——IDELAY2,网口储备点3
REFCLK:参考时钟输入引脚,实际参考时钟频率与IDELAY_VALUE应相同;
RST:复位引脚;
RDY:校准完成信号。

原语:

   (* IODELAY_GROUP = <iodelay_group_name> *) // Specifies group name for associated IDELAYs/ODELAYs and IDELAYCTRL

   IDELAYCTRL IDELAYCTRL_inst (
      .RDY(RDY),       // 1-bit output: Ready output
      .REFCLK(REFCLK), // 1-bit input: Reference clock input
      .RST(RST)        // 1-bit input: Active high reset input
   );

通过IODELAY_GROUP将IDELAY和IDELAYCTRL关联起来

5.IDELAY2时序

FPGA结构分析——IDELAY2,网口储备点3
Clock event 1:LD拉高,相当于复位IDELAY,输入直接到DATAOUT,未进行延迟;
Clock event 2:CE和INC同时拉高,tap值加1,即DATAOUT延迟于输入1拍;
Clock event 3:继续保持Clock event 2后的延迟拍数。

注意:在FIXED模式下,延迟tap数在一开始就被 IDELAY_VALUE配置后定下来,不可改动,所以我们可以在VARIABLE或VAR_LOAD模式下进行动态调整,当调整结束后,再使用FIXED模式将程序固定下来。文章来源地址https://www.toymoban.com/news/detail-409726.html

到了这里,关于FPGA结构分析——IDELAY2,网口储备点3的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于FPGA的视频接口之千兆网口(三UDP搭建)

            相信网络上对于FPGA驱动网口的开发板、博客、论坛数不胜数,为何博主需要重新手敲一遍呢,而不是做一个文抄君呢!因为目前博主感觉网络上描述的多为应用层上的开发,非从底层开始说明,本博主的思虑还是按照老规矩,按照硬件、底层、应用等关系,使用

    2024年02月07日
    浏览(41)
  • FPGA 20个例程篇:12.千兆网口实现MDIO接口读写

           千兆网口是我们日常生活中经常见到的外设接口,在后面三个例程中,我们将会一起去动手实现千兆网口实现MDIO接口读写、ARP通信协议、ICMP和UDP通信协议等,这三个例程有一定的难度,通过实际分析、动手编码、模块划分、上板调试大家可以学到很多内容,涵盖了

    2024年02月01日
    浏览(91)
  • FPGA 20个例程篇:13.千兆网口实现ARP通信协议(下)

            完成了RGMII接口和GMII接口转换的代码设计,接下来我们来设计以太网帧的报文解析模块,为了兼顾下一个例程中ICMP和UDP报文的解析,我们把ARP报文解析分成以太网首部解析和ARP数据解析两部分,这样以太网首部解析模块还可以再用到下一个例程当中提高了代码的复用

    2024年02月13日
    浏览(49)
  • FPGA 20个例程篇:14.千兆网口实现ICMP、UDP通信协议(上)

           UDP是一种面向无连接的传输层协议,属于TCP/IP协议族的一种,UDP具有消耗资源少、通信效率高等优点,一般性地用来传输音频或者视频等对实时性要求高的场合。         ICMP是TCP/IP协议族的一个IP层子协议,包含在IP数据报里,主要用于IP主机、路由器之间传递控制消

    2024年02月03日
    浏览(45)
  • ANC-ZKUXT2系列FPGA隔离卡网闸版DPDK虚拟kni网口

    1. 环境配置及依赖工具,在DPDK使用方法一文中已经介绍,不再重复 2. DPDK 源码编译  2.1 解压DPDK 2.2 打FPGA卡的补丁,让DPDK可以识别 2.3 设置RTE参数并编译DPDK 2.4编译kni 3 测试 3.1  加载uio ,igb_uio,rte_kni驱动,配置大页内存 3.2 FPGA网卡的设备名 3.3 绑定FPGA网卡的接口到igb_uio 3.4 启

    2024年02月14日
    浏览(35)
  • 【计算机网络 01】说在前面 信息服务 因特网 ISP RFC技术文档 边缘与核心 交换方式 定义与分类 网络性能指标 计算机网络体系结构 章节小结

    说在前面 本博客专栏都是基于B站上的湖科大计算机网络课程的课程笔记,主要是由于我发现无法从课程网站获得清晰PDF作为复习资料,所以制作此笔记同时也方便其他同学复习回顾,并且有少量补充参考 https://www.jianshu.com/u/5807cd8caf1d 同学的笔记 1.1 计算机网络 信息时代作用

    2024年02月16日
    浏览(54)
  • MQTT资料储备

    1、官网 https://mqtt.org/ MQTT 5.0官方协议 https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html 说明:官网可以获取到好多资料(比如常用软件、协议、usecase等) 2、安装部署EMQX 当前有好多MQTT服务器,初步选择了EMQX 选择原因 1)MQTT官方推荐 2)国产 3)支持serverless(没找到如何安装)和

    2024年02月13日
    浏览(27)
  • 知识储备--基础算法篇-矩阵

    第一题上来就跪了,看了官方答案感觉不是很好理解,找了一个比较容易理解的。 还有一个暴力方法,其中有几个知识点, list的[]中有三个参数,用冒号分割 list[param1:param2:param3] param1,相当于start_index,可以为空,默认是0 param2,相当于end_index,可以为空,默认是list.size p

    2024年02月10日
    浏览(32)
  • 知识储备--基础算法篇-动态规划

    第一次接触动态规划,不知道具体什么意思,做了题才发现动态规划就是把大问题变成小问题,并解决了小问题重复计算的方法称为动态规划。比如上楼梯,一次上一阶或二阶,求有多少种算法,就可以拆成最后一阶的方法数等于前一阶的方法数加前两阶的方法数,这就是递

    2024年02月11日
    浏览(41)
  • 国庆NOIP储备营讲课笔记

    例题1 给定一个数 (x) ,判断 (x) 是不是质数。 朴素算法:枚举 ([2,x-1]) 之间所有的整数 (i) ,逐个判断 (x) 是否被 (i) 整除,若都不能整除则 (x) 是质数,时间复杂度 (O(x)) ,搞个 (10^9) 直接卡过。该怎么优化呢? 优化枚举范围:只需枚举到 (sqrt{x}) 即可 例题2

    2024年02月08日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包