知识分享|XDC时钟约束的详细说明

server/2024/11/15 0:59:51/

在FPGA设计中,时钟约束是确保设计满足时序要求的关键。Xilinx Design Constraints (XDC) 文件允许设计者对时钟、输入/输出(I/O)和跨时钟域(CDC)路径进行精确的时序约束。以下是XDC文件中时钟约束的详细说明:

时钟约束的重要性

时钟约束必须最早创建,因为它们是设计实现的基础。在Vivado工具中,精简而准确的时序约束是时序收敛的必要条件。过约束往往只会阻碍时序收敛,因此避免过度约束是实现高性能设计的关键。

XDC时钟约束分类

XDC的时钟约束可以分为以下几类:

  1. 主时钟创建:使用create_clock命令创建主时钟。对于7系列FPGA,所有端口进来的时钟和GT的输入RXCLK都必须由用户创建为主时钟。

     

    create_clock -name clk_200 -period 5 [get_ports clk200_p]

  2. 衍生时钟:Vivado可以自动推导MMCM/PLL/BUFR的输出作为衍生时钟,无需用户创建。但用户可以指定衍生时钟的名字,让Vivado自动推导其余频率等信息。

     

    create_generated_clock -name my_clk_name [get_pins mmcm0/CLKOUT] \ -source [get_pins mmcm0/CLKIN] \ master_clock main_clk

  3. 用户自定义衍生时钟:对于工具不能自动推导出的衍生时钟,如使用寄存器和组合逻辑搭建的分频器,必须由用户使用create_generated_clock来创建。

     

    create_generated_clock -name clk2 [get_pins REGA/Q] \ -source [get_ports CKP1] -divide_by 2

  4. 同步与异步时钟:在XDC中,所有时钟默认视为相关。设计人员需要通过约束明确指出哪些路径无需分析,哪些时钟域之间是异步的。

     

    set_clock_groups -name sys_ss_async –asynchronous \ -group [get_clocks -include_generated_clocks sysclk] \ -group [get_clocks -include_generated_clocks ssclkin]

  5. 重叠时钟:重叠时钟指多个时钟共享相同的时钟传输网络。建议在输出端创建重叠的衍生时钟,并将其时钟关系约束为-physically_exclusive,表示不可能同时通过。

     

    set_clock_groups –physically_exclusive \ -group clk125_bufgctrl \ -group clk250_bufgctrl

通过以上约束,可以确保Vivado工具能够正确地分析和优化设计,满足必要的时序要求。时钟约束的正确设置对于实现高性能、低功耗的FPGA设计至关重要。


http://www.ppmy.cn/server/41809.html

相关文章

业务上云--从Container+BuildKitd打镜像到在Kubernetes上部署LNMP

一、背景 在基于kubeasz部署kubernetes高可用集群-CSDN博客文章部署的kubernetes集群上部署LNMP 1.1、Kubernetes环境 1.2、Harbor环境 【docker基础】使用Harbor搭建私有仓库-docker-compose使用示例--第二周作业_harbor docker-compose-CSDN博客 Harbor环境升级&#xff…

音视频-H264编码封装- MP4格式转Annex B格式

目录 1:H264语法结构回顾 2:H264编码补充介绍 3:MP4模式转Annex B模式输出到文件示例 1:H264语法结构回顾 在之前文章里介绍过H264的语法结构。 传送门: 视音频-H264 编码NALU语法结构简介 2:H264编码补充介绍 H…

什么是Java中的设计模式?请列举几种常见的设计模式

一、引言 在软件开发中,设计模式是解决特定设计问题的最佳实践或通用解决方案。Java作为一种广泛使用的编程语言,其设计模式在软件设计和架构中起着至关重要的作用。设计模式不仅提高了代码的可读性和可维护性,还使得代码更加灵活和可扩展。…

IT行业的现状与未来发展趋势:探索无限可能

随着技术的不断进步,IT行业已成为推动全球经济和社会发展的关键力量。从云计算、大数据、人工智能到物联网、5G通信和区块链,这些技术正在重塑我们的生活和工作方式。在本篇博客中,我们将探讨IT行业的现状以及未来发展趋势,展望这…

Git篇——Git提交指定文件编码

背景:项目中有些老工程的代码编码格式不统一,可以通过以下方式强行指定提交时的文件编码,可以将所有上传到git的文件的编码格式统一。 在Git中,可以通过设置.gitattributes文件来指定文件编码。在项目根目录下创建一个名为.gitat…

ros 中配置launch启动文件

本文参考这篇博客:点击链接 一、roslaunch是一个至关重要的工具,它能够帮助我们高效地启动ROS节点、参数服务器和其他必要的组件。 二、在ROS中,一个复杂的机器人项目通常由多个节点(Node)组成,每个节点负责…

Python 全栈体系【四阶】(四十三)

第五章 深度学习 九、图像分割 3. 常用模型 3.4 DeepLab 系列 3.4.1 DeepLab v1(2015) 3.4.1.1 概述 图像分割和图像分类不一样,要对图像每个像素进行精确分类。在使用CNN对图像进行卷积、池化过程中,会导致特征图尺寸大幅度下降、分辨率降低&…

Python学习-Numpy-3

Numpy数字统计函数 np.sum所有元素的和np.prod所有元素的乘积np.cumsum元素的累积加和(前1,前2..元素累加)np.cumprod元素的累积乘积(前1,前2..元素累乘)np.min最小值np.max最大值np.percentile0-100百分位…