vivado里那些看不懂的原语

这篇具有很好参考价值的文章主要介绍了vivado里那些看不懂的原语。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

遇到一段代码

                GLOBAL sw_clk(
                        .in                     (SWCLK),
                        .out                    (swck)
                );

是Intel风格的,可以用xilinx的BUFG进行替代
// BUFG 分配时钟专用资源,指定信号走专门的时钟布线

修改为

			 BUFG sw_clk(
                        .I	(SWCLK),
                        .O	(swck)
                );

布线时候报错

[Place 30-574] Poor placement for routing between an IO pin and BUFG. If this sub optimal condition is acceptable for this design, you may use the CLOCK_DEDICATED_ROUTE constraint in the .xdc file to demote this message to a WARNING. However, the use of this override is highly discouraged. These examples can be used directly in the .xdc file to override this clock rule.
	< set_property CLOCK_DEDICATED_ROUTE FALSE [get_nets SWCLK_IBUF] >

	SWCLK_IBUF_inst (IBUF.O) is locked to IOB_X0Y7
	 and SWCLK_IBUF_BUFG_inst (BUFG.I) is provisionally placed by clockplacer on BUFGCTRL_X0Y0

具体原因未知,只能先把功能打通,所以把相关的部分注释掉。

下面是收集的一些资料,来源都做了标注。

【FPGA】xilinx IOBUF的用法

inout类型的接口,主动添加IOBUF

IOBUF #(
      .DRIVE(12), // Specify the output drive strength
      .IBUF_LOW_PWR("TRUE"),  // Low Power - "TRUE", High Performance = "FALSE"
      .IOSTANDARD("DEFAULT"), // Specify the I/O standard
      .SLEW("SLOW") // Specify the output slew rate
   ) IOBUF_inst (
      .O(O),     // Buffer output
      .IO(IO),   // Buffer inout port (connect directly to top-level port)
      .I(I),     // Buffer input
      .T(T)      // 3-state enable input, high=input, low=output
   );

Reference文章来源地址https://www.toymoban.com/news/detail-403324.html

xilinx FPGA全局时钟资源的使用

1.什么是xilinx fpga全局时钟资源
  时钟对于一个系统的作用不言而喻,就像人体的心脏一样,如果系统时钟的抖动、延迟、偏移过大,会导致系统的工作频率降低,严重时甚至会导致系统的时序错乱,实现不了预期的逻辑功能。xilinx fpga内的全局时钟资源可以很好的优化时钟的性能,因此在设计时要尽可能多的使用fpga内部的时钟资源。xilinx fpga内部的全局时钟采用全铜工艺实现,配合专用时钟缓冲和驱动结构,可以使进入全局时钟网络的时钟到达fpga内部各个逻辑单元的抖动和延迟最小。全局时钟资源是专用布线资源,存在于全铜布线层上,使用全局时钟资源不会影响芯片的其他布线资源。最好的全局时钟解决方案是:让时钟从全铜工艺的全局时钟输入管脚进入fpga,然后经内部的全局时钟缓冲单元去控制各个触发器。xilinx常用的全局时钟资源原语有:全局时钟缓冲IBUFG、差分全局时钟缓冲IBUFGDS、全局缓冲BUFG、数字时钟管理单元DCM、锁相环PLL。

2.全局时钟资源的使用方法
  IBUFG是从全局时钟输入管脚输入的单端时钟的第一级缓冲,IBUFGDS是指的是差分时钟的缓冲。只要是从全局时钟管脚的输入的时钟必须要经过IBUFG,如果不经过,那么ise在布局布线时就会报错,反之如果使用了IBUFG,那么信号一定是从全局时钟输入管脚输入的,这是因为IBUFG和IBUFGDS的输入只和fpga的全局时钟输入引脚有物理上的连接,与普通的IO和内部逻辑块CLB没有物理上的连接。BUFG是全局缓冲,BUFG的输出到达fpga内部各个逻辑单元的时钟延迟与抖动都是最小的。BUFG不但可以驱动IBUFG和DCM的输出,还可以驱动其他普通的片内信号和普通io,当某个信号扇出很大时,而且要求的抖动延迟最小时,可以用BUFG驱动该信号,普通IO和普通的片内逻辑信号进入全局时钟布线层有一个固定的延迟,一般在10ns左右,即普通信号或普通IO从输入到BUFG的输出有一个约10ns左右的固有延迟,但BUFG的输出到片内所有的单元(IOB,CLB,选择性块RAM)的延时可以忽略不计。时钟资源原语的使用方法主要有以下四种:
  
Reference

Vivado使用心得(二)BUFG,IBUFG,BUFGP,IBUFGDS等含义以及使用

全局时钟资源的使用方法(五种)

  1. IBUFG + BUFG的使用方法:
    IBUFG后面连接BUFG的方法是最基本的全局时钟资源使用方法,由于IBUFG组合BUFG相当于BUFGP,所以在这种使用方法也称为BUFGP方法。

  2. IBUFGDS + BUFG的使用方法:
    当输入时钟信号为差分信号时,需要使用IBUFGDS代替IBUFG。

  3. IBUFG + DCM + BUFG的使用方法:
    这种使用方法最灵活,对全局时钟的控制更加有效。通过DCM模块不仅仅能对时钟进行同步、移相、分频和倍频等变换,而且可以使全局时钟的输出达到无抖动延迟。

  4. Logic + BUFG的使用方法:
    BUFG不但可以驱动IBUFG的输出,还可以驱动其它普通信号的输出。当某个信号(时钟、使能、快速路径)的扇出非常大,并且要求抖动延迟最小时,可以使用BUFG驱动该信号,使该信号利用全局时钟资源。但需要注意的是,普通IO的输入或普通片内信号进入全局时钟布线层需要一个固有的延时,一般在10ns左右,即普通IO和普通片内信号从输入到BUFG输出有一个约10ns左右的固有延时,但是BUFG的输出到片内所有单元(IOB、CLB、选择性块RAM)的延时可以忽略不计为“0”ns。

  5. Logic + DCM + BUFG的使用方法:
    DCM同样也可以控制并变换普通时钟信号,即DCM的输入也可以是普通片内信号。使用全局时钟资源的注意事项全局时钟资源必须满足的重要原则是:使用IBUFG或IBUFGDS的充分必要条件是信号从专用全局时钟管脚输入。换言之,当某个信号从全局时钟管脚输入,不论它是否为时钟信号,都必须使用IBUFG或IBUFGDS;如果对某个信号使用了IBUFG或IBUFGDS硬件原语,则这个信号必定是从全局时钟管脚输入的。如果违反了这条原则,那么在布局布线时会报错。这条规则的使用是由FPGA的内部结构决定的:IBUFG和IBUFGDS的输入端仅仅与芯片的专用全局时钟输入管脚有物理连接,与普通IO和其它内部CLB等没有物理连接。另外,由于BUFGP相当于IBUFG和BUFG的组合,所以BUFGP的使用也必须遵循上述的原则。

Reference

Xilinx FPGA输入输出缓冲 BUF 的使用

Reference

UltraScale Architecture Libraries Guide (UG974)

Reference

到了这里,关于vivado里那些看不懂的原语的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • github开源推荐,基于whisper的字幕生成和字幕翻译工具——再也没有看不懂的片啦

    GitHub - qinL-cdy/auto_ai_subtitle github上开源的一款字幕生成和字幕翻译的整合工具,可以根据视频中提取到的音频来转换成字幕,再根据需要将字幕进行翻译,基于whisper 1)安装ffmpeg 安装ffmpeg的教程比较多,就不详细介绍了,Windows上安装完成后记得添加环境变量,最后在cmd中输入

    2024年02月13日
    浏览(78)
  • Android上传手机图片到服务器(这篇你要是看不懂,全网没你可以看懂的了!!!)

    通过安卓app选取本地图片然后上传到服务器的整体流程步骤如下: 样式 布局代码 id:iv_image用于呈现选择的图片 id:xz用于选择图片的按钮 id:sc用于上传的按钮 流程:点击“选择图片”在本机选取图片然后呈现到ImageView中 (这个操作过程是不需要申请任何权限的) (1)获

    2023年04月16日
    浏览(47)
  • 力扣链表OJ面试题,那些你不懂的全新版本解法

    孤独的时候看世界更清晰  前言 数据结构的逻辑性是非常强的,所以单单看代码很难搞懂,这里博主对每一道题目都进行了非常细致的图文详解,每一道题目都是非常经典的面试OJ题,每一道题我都附上了对应的力扣链接,本文主要是 较为简单 的题目, 比较难的题目 将会在

    2024年02月04日
    浏览(46)
  • VIVADO 工具原语的代码调用

    vivado 内部调用原语的verilog 代码位置如下:  例如需要调用一个OSERDESE2 ,直接在打开Language Templates 中寻找,不同的芯片系列有不同的原语verilog 代码,调用的时候需要注意。    

    2024年02月07日
    浏览(40)
  • 一步步带你搭建Elasticsearch环境,还看不懂?

    1.2 Kibana安装 1.2.1 Kibana安装 1.2.2 Kibana插件安装 1.3 Logstash安装 1.3.1 Logstash安装 1.3.2 Logstash导入数据 磨刀不误砍柴工,要学习Elasticsearch,首先要搭建起来一套学习环境,本文为手把手教你在MacOS上面搭建Elasticsearch学习环境。 Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分

    2024年04月14日
    浏览(33)
  • 连ChatGPT都不懂的五一调休,到底怎么来的?

    今天是周几? 你上了几天班了? 还要上几天班放假? 五一啥安排? 出行的票抢到了吗? 调休到底是谁发明的?! 五一劳动节是要劳动吗? 为什么昨天是周一,今天还是周一? 相信这一周的打工人,无时无刻不在发出这样的灵魂质问,毕竟有这么条热搜是#打工人的怨气可

    2024年02月01日
    浏览(47)
  • SpringBoot-Run启动流程(源码分析)—看不懂来揍我

    目录 前言 Run()方法 1、实例化SpringApplication对象 1、加载容器 2、装配初始化器 3、装配监听器  4、加载主类 2、执行Run()方法 1、设置headless 2、启用SpringApplicationListener 3、加载Banner 1、图片Banner 2、文本Banner 4、异常报告类加载 5、准备上下文         6、刷新上下文 7、系统

    2024年02月14日
    浏览(39)
  • 看不懂微信小程序中的文件都是什么?

    小程序的主体部分由3个文件组成,这3个文件必须放在项目的主目录中,文件名也是固定的,负责小程序的整体配置。 整个小程序的入口文件,通过调用APP()函数来启动整个程序。主要用来注册小程序全局实例,编译时会和其他页面的逻辑文件打包成一个JavaScript文件。项目中

    2024年02月08日
    浏览(45)
  • 3年测试技术面一题都看不懂,字节面试真的变态.....

    最近我的一个读者朋友去了字节面试,来给我发信息吐槽,说字节的面试太困难了,像他这种三年经验的测试员,在技术面,居然一题都答不上来,这要多高的水平才能有资格去面试字节的测试岗位。 确实,字节作为国内互联网一线巨头企业,程序员追求的大厂,面试难点也

    2024年02月05日
    浏览(44)
  • 调试C++代码遇到的那些坑

    最近翻看以前的学习笔记,重温了不少之前调试C++代码遇到的坑,顿时觉得,记笔记真是程序开发工作中必备可少的环节。现将部分内容分享一下: VS调试程序时,提示缺少ucrtbased.dll 当在VS下调试程序时,如果缺少ucrtbased.dll,一般会出现如下几种错误提示: 1)程序无法启动

    2024年02月06日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包