FPGA时序约束--进阶篇(主时钟约束)

这篇具有很好参考价值的文章主要介绍了FPGA时序约束--进阶篇(主时钟约束)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。

本文将重点讲解主时钟约束设置,给出详细的约束命令,并介绍了在Vivado中如何写入主时钟约束。

一、主时钟约束

主时钟是FPGA电路中最基础的时钟,其稳定性和精确性对电路的稳定运行有着至关重要的作用。在时序约束中,我们需要准确地定义主时钟的时钟约束,以确保电路的时序约束得以实现。

在Vivado中,我们可以使用create_clock命令来定义主时钟的时钟约束,其语法如下:

create_clock -name <clock_name> -period <clk_period> [ -waveform {<rise_time> <fall_time>} ] [get_ports <input_port>]

参数

含义

-name

用于给时钟命名

-period

用于定义时钟周期

-waveform

波形参数,可以理解为占空比,一个周期时间内,rise_time表示第一个上升沿时刻,fall_time表示第一个下降沿时刻。
不设置,则表示默认为50%的占空比

get_ports

指定工程里的模块时钟信号名

这里需要注意的是使用create_clock创建的时钟必须是主时钟primary clock。

FPGA中的主时钟通常有两种来源:

  • 由外部时钟源(晶振)提供,通过引脚进入。

  • 带高速收发器(GT)FPGA芯片型号,有GT时钟RXOUTCLK或TXOUTCLK。

对于Xilinx 7系列FPGA,需要对GT的两个时钟都添加约束,但对于UltraScale以及以上系列FPGA,只需对GT的输入时钟约束即可。

1、外部输入的单端主时钟信号

设定从引脚clk输入外部时钟,时钟周期为12ns,占空比50%,相移为0,则主时钟约束如下所示:

create_clock -period 12 [get_ports clk]

如果存在相移为90,则主时钟约束变为

create_clock -period 12 -waveform {3 9} [get_ports clk]

2、外部输入的差分时钟信号

PGA差分时钟是指通过时钟管脚的P端和N端共同进来的时钟信号。通常应用于高频或精度要求较高的场合,它的作用是消除共模噪声,从而提高系统性能。

只需要约束差分时钟的P端即可,不能同时约束P端和N端,N端可以被软件自动识别到。

比如差分时钟sys_clk_p和sys_clk_n,时钟周期为6.667ns,则约束为:

create_clock -name sys_clk -period 6.667 [get_ports sys_clk_p]

3、高速收发器GT时钟信号

FPGA高速收发器GT时钟信号,是指在FPGA中使用高速收发器GT(Gigabit Transceiver)进行信号收发时,需要使用与其速率相匹配的时钟信号进行同步传输。这样做可以确保信号稳定地传输,避免了数据传输中可能出现的误码情况。

比如时钟源由高速收发器gt0提供,则时序约束为:

create_clock -name rx0_outclk -period 3.333 [get_pins gt0/RXOUTCLK]
create_clock -name tx0_outclk -period 3.333 [get_pins gt0/TXOUTCLK]

二、Vivado添加时序约束

1、新建XDC文件,或添加已有的XDC文件

FPGA时序约束--进阶篇(主时钟约束)

点击“+”号,选择“add or create constras”,点击下一步。

FPGA时序约束--进阶篇(主时钟约束)

选择“create file”,填入时序文件名即可。

2、添加时序约束

(1)方法1

直接打开XDC文件,写入时序约束语句即可

(2)方法2

在将工程综合Synthesis完成后,点开“Open Synthesized Design”,等待打开完成后,直接在TCL console窗口中输入时序约束语句,回车即可。

(3)方法3

在将工程综合Synthesis完成后,点开“Edit Timing Constraints”,等待打开GUI界面。

FPGA时序约束--进阶篇(主时钟约束)

在“分类区”选中要创建的约束类型,点击“+”号,创建约束,弹出约束创建界面。

FPGA时序约束--进阶篇(主时钟约束)

点击source objects右侧的“...”,打开模块接口搜索界面,并点击find按钮,选中“sys_clk”信号,点击“右箭头”,最后点击set即可。

FPGA时序约束--进阶篇(主时钟约束)

最后输入时钟名,时钟周期,和波形参数即可,点击ok,并“ctrl + S”保存即可。

FPGA时序约束--进阶篇(主时钟约束)

三、总结

主时钟约束是FPGA中常见的操作,必须掌握,本文已经详细介绍了操作命令和操作示范,希望可以帮助到大家学习并掌握这个知识。


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

本文由FPGA入门到精通原创,有任何问题,都可以在评论区和我交流哦

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

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

到了这里,关于FPGA时序约束--进阶篇(主时钟约束)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • FPGA时序分析与约束(10)——生成时钟

            最复杂的设计往往需要多个时钟来完成相应的功能。当设计中存在多个时钟的时候,它们需要相互协作或各司其职。异步时钟是不能共享确定相位关系的时钟信号,当多个时钟域交互时,设计中只有异步时钟很难满足建立和保持要求。我们将在后面的内容中介绍这部

    2024年02月21日
    浏览(44)
  • FPGA时序分析与约束(3)——时钟不确定性

            在之前的文章中,我们介绍了组合电路的时序和时序电路的时序问题,在阅读本文章之前,强烈推荐先阅读完本系列之前的文章,因为这是我们继续学习的理论的理论基础,前文链接: FPGA时序分析与约束(2)——时序电路时序         本文我们将介绍时钟相关

    2024年02月10日
    浏览(42)
  • 【ug903】FPGA时序约束学习(4)-如何约束跨时钟域(Clock domain crossing,CDC)

    时序约束系列: 如何约束时钟 主时钟、虚拟时钟、生成时钟、时钟组、时钟不确定性 如何约束输入输出延迟 输入延迟、输出延迟 如何约束时序例外 多周期路径、输入输出延迟、虚假路径、最大最小延迟 如何约束跨时钟域 总线偏斜 跨时钟域(Clock Domain Crossing,CDC)约束适用

    2024年02月08日
    浏览(41)
  • FPGA的时序分析、约束和收敛(8)----关于时序路径、时钟悲观度和建立时间/保持时间的一些问题

    目录 写在前面 1、为什么同一条时序路径在报表里的值不一样?

    2024年02月12日
    浏览(57)
  • FPGA设计时序约束二、输入延时与输出延时

    目录 一、背景 二、set_input_delay 2.1 set_input_delay含义 2.2 set_input_delay参数说明 2.3 使用样例 三、set_output_delay 3.1 set_output_delay含义 3.2 set_output_delay参数说明 3.3 使用样例 四、样例工程 4.1 工程代码 4.2 时序报告 五、参考资料     为了在设计中准确的模拟信号从FPGA传输到外部或

    2024年02月07日
    浏览(39)
  • 【FPGA】Verilog:时序电路设计 | 二进制计数器 | 计数器 | 分频器 | 时序约束

    前言: 本章内容主要是演示Vivado下利用Verilog语言进行电路设计、仿真、综合和下载 示例:计数器与分频器   ​​ 功能特性: 采用 Xilinx Artix-7 XC7A35T芯片  配置方式:USB-JTAG/SPI Flash 高达100MHz 的内部时钟速度  存储器:2Mbit SRAM   N25Q064A SPI Flash(样图旧款为N25Q032A) 通用

    2024年02月02日
    浏览(62)
  • FPGA设计进阶3--FPGA物理约束

    Reference: Xilinx FPGA权威设计指南         Xilinx Vivado集成开发环境为设计者提供了通过设置FPGA内对象的属性实现对FPGA内对象进行约束的物理约束。这些约束包括: (1)I/O约束,如位置和I/O标准 (2)布局约束,如单元的位置 (3)布线约束,如固定的布线 (4)配置约束,

    2023年04月24日
    浏览(49)
  • 【数字IC/FPFA】时序约束--时钟约束

    时钟周期约束,顾名思义,就是我们对时钟的周期进行约束,这个约束是我们用的最多的约束了,也是最重要的约束。 下面我们以vivado中的时钟约束为例,介绍时钟约束的相关内容。 在Vivado中我们通过使用create_clock来创建时钟周期约束。使用方法如下: 其中,参数name为创建

    2024年02月03日
    浏览(44)
  • 基于Xlinx的时序分析、约束和收敛(4)----主时钟约束

    目录 主时钟约束语法 例1:引脚输入的主时钟约束 例2:高速收发器GT的恢复时钟

    2023年04月17日
    浏览(40)
  • FPGA时序分析与时序约束(四)——时序例外约束

    目录 一、时序例外约束 1.1 为什么需要时序例外约束 1.2 时序例外约束分类 二、多周期约束 2.1 多周期约束语法 2.2 同频同相时钟的多周期约束 2.3 同频异相时钟的多周期约束 2.4 慢时钟域到快时钟域的多周期约束 2.5 快时钟域到慢时钟域的多周期约束 三、虚假路径约束 四、最

    2024年01月20日
    浏览(44)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包