Vivado约束添加方法:一文全面解析IO和时序约束

这篇具有很好参考价值的文章主要介绍了Vivado约束添加方法:一文全面解析IO和时序约束。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FPGA开发离不开IO约束和时序约束,IO约束用于确定输入/输出端口的物理端口和电气特性,与芯片和电路设计有关。而时序约束则用于设定FPGA设计中的时序特性,以确保系统能够在预期时钟频率下正常运行。本文将介绍vivado中常见的设置约束的方法。

一、IO约束

IO约束,实际上是将工程的输入输出端口与芯片的引脚关联起来,所以需要参考芯片手册和实际电路设计。在vivado中通常有两种加入IO约束的方式:

1、通过GUI界面设置IO约束

(1)创建vivado工程,并添加HDL文件。

(2)点击“Run Synthesis”,执行综合,等待综合完成。

Vivado约束添加方法:一文全面解析IO和时序约束

​(3)点开 “Open Synthesized Design”,等待打开综合结果。

Vivado约束添加方法:一文全面解析IO和时序约束

​(4)点开vivado菜单栏右上角的,窗口选择“I/O Planning”。

Vivado约束添加方法:一文全面解析IO和时序约束

​(5)vivado出现“IO Ports”窗口,根据电路图和芯片手册,定义引脚位置和电气标准。

Vivado约束添加方法:一文全面解析IO和时序约束

Vivado约束添加方法:一文全面解析IO和时序约束

​(6)设置完后,按快捷键“ctrl + s”保存,填入约束文件名。

Vivado约束添加方法:一文全面解析IO和时序约束

Vivado约束添加方法:一文全面解析IO和时序约束

​(7)在“source”窗口,点开“Constraint”下的“constrs_1”可看到创建的约束文件,点开即可看到约束的内容。

Vivado约束添加方法:一文全面解析IO和时序约束

Vivado约束添加方法:一文全面解析IO和时序约束

2、直接创建xdc文件并加入IO约束

可通过点击“source”窗口的“+”创建xdc文件。

Vivado约束添加方法:一文全面解析IO和时序约束

​(1)引脚分配设置

“pin name”是芯片的引脚,ports是工程中定义的模块名

set_property PACKAGE_PIN <pin name> [get_ports <ports>]

(2)引脚电气标准设置

“IOSTANDARD”是电气标准,如LVCMOS18、LVCMOS12、LVCMOS33

set_property IOSTANDARD <IO standard> [get_ports <ports>]

(3)引脚驱动能力设置

set_property DRIVE <2 4 6 8 12 16 24> [get_ports <ports>]

(4)引脚抖动设置

set_property SLEW <SLOW|FAST> [get_ports <ports>]

(5)引脚上拉设置

set_property PULLUP true [get_ports <ports>]

(6)引脚下拉设置

set_property PULLDOWN true [get_ports <ports>]

二、时序约束

FPGA时序与资源的平衡是永恒的话题,时序约束是非常重要的,实际上是设定整个FPGA工程的时序特性,比如整个工程模块的运行的时钟频率,这样就能让编译器根据设定约束在FPGA中布线,如果时序不满足,整个FPGA系统可能运行的状态不稳定,达不到设计要求。

1、通过GUI界面设置时序约束

(1)点开 “Open Synthesized Design”,等待打开综合结果,再点开“Open Synthesized Design”选项,单击“Edit Timing Constraints”。

Vivado约束添加方法:一文全面解析IO和时序约束

​(2)打开了“Timing Constraints”,点击“+”。

Vivado约束添加方法:一文全面解析IO和时序约束

​(3)弹出“create clock”,单击“source objects”右侧“ … ”按钮。

Vivado约束添加方法:一文全面解析IO和时序约束

​(4)弹出“specify clock source objects”,点击”find”。在“result”窗口中选择“clk”,单击右侧的“→”,将其添加到“selected”窗口中,再点击set。

Vivado约束添加方法:一文全面解析IO和时序约束

​(5)返回“create clock”,设置时钟周期和占空比,点击“OK”。

Vivado约束添加方法:一文全面解析IO和时序约束

​(6)按“Ctrl + s”保存,再打开top_io.xdc的窗口,可看到新增了时序约束。

Vivado约束添加方法:一文全面解析IO和时序约束

2、直接创建xdc文件并加入时序约束

时序约束命令

create_clock -period 10.000 -waveform {0.000 5.000} [get_ports clk]

三、总结

本文介绍了常用的设置IO约束与时序约束的方法,大家可以参考下,掌握配置约束文件的方法,使用正确的I/O约束方法和语法可以确保FPGA设计的正确性和可靠性。


本文将不断定期更新中,码字不易,点⭐️赞,收⭐️藏一下,不走丢哦

本文由FPGA狂飙原创,有任何问题,都可以在评论区和我交流哦

学习资料分享,github开源代码:“FPGA知识库”

您的支持是我持续创作的最大动力!如果本文对您有帮助,请给一个鼓励,谢谢。文章来源地址https://www.toymoban.com/news/detail-431763.html

到了这里,关于Vivado约束添加方法:一文全面解析IO和时序约束的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Vivado时序约束基础

          今天这篇博客,笔者向大家简单介绍Xilinx FPGA中的Vivado时序约束基础知识,也为后续的学习打好铺垫。 Xilinx Design Constraints (XDC) 概述 • XDC 在本质上就是Tcl 语言,但其仅支持基本的Tcl 语法,如变量、列表和运算符等等,对其他复杂的循环以及文件I/O 等语法可以通过在

    2024年02月10日
    浏览(43)
  • FPGA时序约束--实战篇(读懂Vivado时序报告)

    目录 一、新建工程 二、时序报告分析 1、打开时序报告界面 2、时序报告界面介绍 3、时序路径分析 三、总结 FPGA开发过程中,vivado和quartus等开发软件都会提供时序报告,以方便开发者判断自己的工程时序是否满足时序要求。 本文将详细介绍如何读懂Vivado时序报告,包括报告

    2024年02月12日
    浏览(43)
  • Vivado操作之时序约束介绍

    目录 一、前言 二、时序约束界面 三、时序约束介绍 四、参考        任何一个FPGA工程都需要设置相关的时序约束,下面将介绍Vivado中如何进行时序约束操作以及各种约束的使用方法。          在一个工程运行到IMPLEMENTATION后,进入到左侧的Flow Navigator窗口,点击IMPL

    2024年02月05日
    浏览(52)
  • tcl学习之路(五)(Vivado时序约束)

      主时钟通常是FPGA器件外部的板机时钟或FPGA的高速收发器输出数据的同步恢复时钟信号等。下面这句语法大家一定不会陌生。该语句用于对主时钟的名称、周期、占空比以及对应物理引脚进行约束。   在设计中,未约束的时钟可以通过时钟网络报告和时钟确认报告查看

    2024年02月12日
    浏览(44)
  • Vivado XDC约束与时序优化(一)

    摘要:有关xdc约束、时序优化的文章很多,并不重头开始介绍,仅仅记录一下在实际工程中遇到的情况。时序不好是非常正常的现象,此时需要进行大量的约束。我认为时序约束的难点其实更多的是在,有时候约束一条路径之后导致了功能出现异常。此时不得不采取其它的方

    2023年04月14日
    浏览(79)
  • FPGA的时序分析、约束和收敛(6)----如何读懂vivado下的时序报告?

    目录 写在前面 1、建立工程与添加时序约束 2、时序报表         在之前的文章中写了一些时序分析的基础概念,同时还说了文章中提到的公式根本就不需要记忆,因为综合工具vivado会帮你把所有时序路径都做详尽的分析,你所需要做的就是理解概念。         光说不

    2024年02月12日
    浏览(51)
  • Vivado时序约束之—— set_max_delay、set_min_dealy(最大最小延迟约束)

    1. set_max_delay、set_min_delay约束的目的 最大最小延迟约束主要是为了解决异步信号之间的时序路径进行时序约束的问题。最大延迟约束(set_max_delay)将默认覆盖建立时间分析中的最大路径延迟;最小延迟约束(set_min_delay)将默认覆盖保持时间分析中的最小路径延迟。所谓的最

    2023年04月09日
    浏览(37)
  • Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。

    Vivado时序约束TCL命令——获取引脚(get_pins)在FPGA设计中起着重要作用。本文将为大家详细介绍get_pins命令的语法和使用方法。 get_pins命令用于获取指定对象(Object)的引脚(Pin)列表。我们可以使用get_pins来获取具有特定命名约定的引脚(如CLOCK、RESET等),并通过对这些引

    2024年02月05日
    浏览(47)
  • 【FPGA异步时钟域约束方法】——Vivado时钟组约束

    【FPGA异步时钟域约束方法】——Vivado时钟组约束 在 FPGA 设计过程中,由于存在多时钟域的情况,需要采取一定的策略来处理时序约束问题。其中,异步时钟域是一种常见的设计需求,为了保证设计时序的正确性和稳定性,我们需要使用 Vivado 提供的时钟组约束方法来对异步时

    2024年02月04日
    浏览(45)
  • Vivado使用技巧:时钟的约束方法

            数字设计中,“时钟”表示在寄存器之间可靠地传输数据所需的参考时间;Vivado的时序引擎利用时钟特征来计算时序路径需求,通过计算时间裕量(Slack)的方法报告设计的时序空余;时钟必须被正确定义以最佳精度获得最大的时序路径覆盖范围,包含如下特性: ●

    2024年02月08日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包