xilinx FPGA IOB约束使用以及注意事项

这篇具有很好参考价值的文章主要介绍了xilinx FPGA IOB约束使用以及注意事项。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、什么是IOB约束

在xilinx FPGA中,IOB是位于IO附近的寄存器,是FPGA上距离IO最近的寄存器,同时位置固定。当你输入或者输出采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的走线延迟最短,同时由于IO的位置是固定的,即存在于IO附近,所以每一次编译都不会造成输入或者输出的时序发生改变。

二、为什么要使用IOB约束

考虑一个场景,当你用FPGA写了一个spi模块,将时钟、片选和数据线绑定到FPGA的IO管脚,如果没有加IOB约束的话,综合工具在布局布线的时候直接将FPGA内部寄存器输出连到IO上,但是这样存在一定的问题,每次修改逻辑重新编译的时候,输出寄存器的位置有可能发生改变,那么从寄存器输出到IO之间的布线长度就会发生变化,造成寄存器输出到达IO之间的走线延迟发生改变,每一次编译都会使得spi的输出时序不确定。

为了解决这个问题,需要加入IOB约束,将模块输出端口的最后一级寄存器放在IOB上,这样最后一级输出的寄存器位置就固定下来了,每次编译都不会造成输出时序发生改变。

IOB约束使用方法如下:

1、在约束文件中加入下面约束:

set_property  IOB true [get_ports {port_name}]
set_property  IOB true [get_cells {cell_name}]

2、直接在代码中加约束,

在寄存器前加入下面约束,需要注意的是,对于输入IOB约束,这里的寄存器是第一级寄存器,对于输出IOB约束,这里的寄存器是最后一级寄存器,且寄存器输出不能再作为组合逻辑输入。

(*IOB = "TRUE"*) output  reg[7:0] gmii_txd;
(*IOB = "TRUE"*) output  reg      gmii_txen;

三、IOB约束使用注意事项

对于输出IOB约束,在使用的时候有一些限制:

1、约束的端口必需是寄存器输出,因为IOB约束本质上是约束最后一级寄存器的位置,将最后一级寄存器的位置放在IOB上,而不是增加一级寄存器。所以你必须要是寄存器输出,才能进行IOB约束,这是前提。

2、最后一级寄存器的输出不能再作为输入反馈到内部逻辑中,必需是开路的文章来源地址https://www.toymoban.com/news/detail-764646.html

到了这里,关于xilinx FPGA IOB约束使用以及注意事项的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 紫光FPGA DDR3 IP使用和注意事项(axi4协议)

    紫光DDR3 IP使用 对于紫光ddr3 IP核的使用需要注意事情。 阅读ddr ip手册: 1、注意:对于写地址通道,axi_awvalid要一直拉高,axi_awready才会拉高。使用的芯片型号时PG2L100H-6FBG676,不同的型号IP核接口和axi的握手协议也不一样(一定要注意),这点要注意,这也给我挖了一个很大的

    2024年04月12日
    浏览(39)
  • sed中使用正则表达式进行替换以及注意事项

    sed中使用正则表达式进行替换的时候,一定要注意,有些特殊字符在使用时要转义,目前发现的有: 用于分组的小括号:(),在使用时要用进行转义,但是匹配字符串中真正的小括号时,无需转义; 表示前面的表达式出现次数的{},也要转义; 表示前面的表达式出现1次或多

    2023年04月22日
    浏览(35)
  • std::map使用方式以及注意事项(关于相同key的问题)

    std::map的使用在C++开发中也是经常会用到的一些东西,这里进行一些简单的使用记录,包括如何插入、删除以及修改等。 map的插入使用的是insert的方式,一个map包含了key与value两个值。首先需要对两个值进行赋值,然后对map执行insert操作,简单代码如下: 注意在map中,key值是

    2024年02月15日
    浏览(35)
  • 如何使用Vscode开发Uni-app项目以及注意事项详解

    哟,大牛来了!!! 前言 :想必大家敲代码用的编辑器大多数都是Vscode吧,随着技术的更新,uni-app成为了前端不可或缺的一项技术,但是呢,官方推荐使用的HBuilderX编辑器让习惯了使用Vscode的我们不太习惯,虽然HBuilderX编辑器对uni-app极度的友好,但还是让在座的各位大牛以及

    2024年02月05日
    浏览(47)
  • 详细stm32驱动SDRAM的注意事项以及在keil中的使用

    容量:SDRAM的容量是指其可以存储的数据量,通常以兆字节(MB)或千兆字节(GB)为单位。 时钟频率:SDRAM的时钟频率指的是其内部时钟的速度,通常以兆赫(MHz)为单位。时钟频率越高,SDRAM的数据传输速度越快。 CAS延迟:CAS延迟是指SDRAM在接收到读取请求后,需要多长时

    2024年02月10日
    浏览(30)
  • 微信小程序wx.getFuzzyLocation获取经纬度的成功使用示例,以及注意事项

    注意事项: 1. 微信小程序基础库必须在 2.25.0及以上 才可以用这个接口,并且微信开发者工具也要是最新的 2.这个定位接口在编译器中报错,只有在 真机中好用 (偶尔在编译器中也好用),可以使用真机调试进行开发查看效果 上代码。 第一步:先在小程序公众平台    开发

    2024年02月11日
    浏览(32)
  • 【游戏】任天堂Nintendo Switch超详细购买/使用指南以及注意事项(根据自己使用持续更新中...)

    相信90后对于上面这张图片里的东西都很熟悉吧,各种游戏卡:超级玛丽,忍者龙剑传,忍者神龟,魂斗罗,热血篮球,冒险岛,双截龙,绿色兵团,洛克人,炸弹人,松鼠大战,赤色要塞等等。那时候一个超级玛丽,一玩就能玩一天,而超级玛丽就是任天堂开发的,而现在

    2024年02月10日
    浏览(29)
  • Unity学习笔记--File.ReadAllLines和File.ReadAllText的使用以及注意事项(一定要看到最后!!!)

    最近在做文件存储以及读取的时候,需要用到C#给我们提供的类: File 具体使用方法可以看官方文档:C# File 类 这篇文章只会说 File.ReadAllLines 和 File.ReadAllText 的使用以及注意事项 Tips:(一定要看到最后!!!) 一、File.ReadAllLines 重载 操作 ReadAllLines(String) 打开一个文本文件

    2024年02月02日
    浏览(27)
  • 一篇博客学会系列(1) —— C语言中所有字符串函数以及内存函数的使用和注意事项

    目录 1、求字符串长度函数 1.1、strlen 2、字符串拷贝(cpy)、拼接(cat)、比较(cmp)函数 2.1、长度不受限制的字符串函数 2.1.1、strcpy 2.1.2、strcat 2.1.3、strcmp 2.2、长度受限制的字符串函数 2.2.1、strncpy 2.2.2、strncat 2.2.3、strncmp 3、字符串查找函数 3.1、strstr 3.2、strtok 4、错误信息报告函数

    2024年02月08日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包