Chapter 6 :CDC Constraints(ug903)

news2024/10/5 14:42:39

6.1  About CDC Constraints
        跨时钟域(CDC)约束适用于具有不同发射和捕获时钟的时序路径。根据发射和捕获时钟的关系以及在CDC路径上设置的时序异常,有同步CDC和异步CDC。例如,同步时钟之间但被错误路径约束覆盖的CDC路径不定时,因此被视为异步CDC。
        异步CDC路径可以是安全的,也可以是不安全的。异步CDC路径的安全和不安全术语与用于时钟间时序分析的术语不同(请参见report_clock_interaction)。当异步CDC路径使用同步电路来防止捕获时序单元的亚稳态时,它被认为是安全的。
        有关更多信息,请参阅Vivado Design Suite User Guide: Design Analysis and Closure Techniques (UG906)。
        CDC路径的时序分析可以通过使用set_false_path或set_clock_groups约束来完全忽略,或者通过使用set_max_delay-datapath_only来部分分析。
        此外,可以使用set_bus_skew约束来约束多位CDC路径捕获时间扩展。

6.2 Constraining Bus Skew
6.2.1 About Bus Skew Constraints
        总线偏斜约束用于设置几个异步CDC路径之间的最大偏斜要求。总线偏斜不是与时序路径相关联的传统时钟偏斜。相反,它对应于由相同的set_bus_skew约束覆盖的所有路径上的最大捕获时间差。总线偏斜要求适用于快速和慢速转换区域,但不在转换区域进行分析。
        总线偏斜约束的目的是限制可以发射数据并由单个目的时钟边沿捕获的源时钟边沿的数量。容差取决于用于受约束路径的CDC同步方案。总线偏斜约束通常用于以下CDC拓扑:
        •格雷码总线传输,例如在异步FIFO中
        •使用CE、MUX或MUX Hold电路实现的多位CDC
        •配置寄存器
        尽管set_bus_skew命令不能阻止在安全定时同步CDC上设置总线偏斜约束,但不需要这样的约束。setup和hold检查已经确保了两个安全定时同步CDC路径之间的安全传输。总线偏斜约束的CDC场景为:
        •由set_clock_groups覆盖的异步CDC
        •异步CDC完全覆盖了set_false_path和/或set_max_delay - datapath_only
        •由set_false_path和/或set_max_delay - datapath_only覆盖的同步CDC路径
        总线偏斜约束不是时序例外;相反,这是一个时间断言。因此,它不会干扰时序异常(set_clock_group、set_false_path、set_max_delay、set_max_delay-datapath_only和set_multycle_path)及其优先级。
        总线偏斜约束仅通过route_design命令进行优化。要报告set_bus_skew约束,请从命令行使用report_bus_skew命令,或从GUI界面使用Reports → Timing → Report Bus Skew 。时序摘要报告(report_Timing_Summary)中未报告总线偏斜约束

6.2.2  Syntax of the set_bus_skew Command
带有基本选项的set_bus_skew命令的语法为:

set_bus_skew [-from <args>] [-to <args>] [-through <args>] <value>

        -from选项的对象列表应该是有效起点的列表。set_bus_skew的有效起始点是时钟,或者是诸如寄存器或RAM之类的时序元件的时钟引脚。set_bus_skew不支持输入(或输入输出)端口。
        -to选项的节点列表应该是有效端点的列表。set_bus_skew的有效端点是时钟或顺序单元的数据引脚。set_bus_skew不支持输出(或inout)端口。
        through选项的节点列表应该是有效引脚或网络的列表。尽管-from和-to命令行选项可以引用时钟,但Xilinx建议您更加具体,并为每个约束指定一个有限的起点和终点列表。这将确保每个约束不会覆盖太多路径,并且可以合理地满足每个约束。
        注意:在指定总线偏斜约束时,必须同时指定-from和-to选项。
        注意:Xilinx建议在没有扇出的路径上设置总线偏斜约束
        此外,每个总线偏斜约束必须覆盖至少两个起点和两个端点。总线偏斜值必须现实合理。Xilinx建议使用一个大于源和目标时钟最小周期一半的值。总线偏斜的推荐值也取决于CDC拓扑结构,如以下示例所示。
6.2.2.1 set_bus_skew Example One
        在本例中,CDC是握手机制的一部分。当数据可用于采样时,源时钟域生成发送信号。目标时钟域对发送信号使用4级同步器。在4级同步器之后,该信号驱动CDC目标寄存器的时钟使能引脚。在这种时钟使能控制CDC结构中,总线偏斜必须调整到CE路径上的级数,因为它表示数据有效的目的地时钟周期的数量。
        如果源时钟周期为5ns,目标时钟周期为2.5ns,则CDC路径上的总线偏斜应设置为10ns(4×2.5ns)。

set_bus_skew -from [get_cells src_hsdata_ff_reg*] -to [get_cells
dest_hsdata_ff_reg*] 10.000


注意:为了完整性,CDC需要额外的set_max_delay约束,以确保源寄存器和目标寄存器不会放置得太远

set_max_delay -datapath_only -from [get_cells src_hsdata_ff_reg*] -to
[get_cells dest_hsdata_ff_reg*] 10.000

6.2.2.2 set_bus_skew Example Two
        在这个例子中,CDC是格雷编码总线。系统必须确保目标时钟域同时只捕获格雷码总线的一个转换。如果源时钟周期为5ns,而目的时钟周期为2.5ns,则CDC路径上的总线偏斜应设置为2.5ns(目的时钟周期)。

set_bus_skew -from [get_cells src_gray_ff_reg*] -to [get_cells
{dest_graysync_ff_reg[0]*}] 2.500
set_max_delay -datapath_only -from [get_cells src_gray_ff_reg*] -to
[get_cells
{dest_graysync_ff_reg[0]*}] 5.000


注意:为了完整性,CDC需要额外的set_max_delay约束,以确保源寄存器和目标寄存器不会放置得太远。这种情况下,最大延迟被设置为源时钟周期,因为CDC在较慢的时钟和较快的时钟之间,并且目标时钟域应该只捕获总线的一个转换:

set_max_delay -datapath_only -from [get_cells src_gray_ff_reg*] -to
[get_cells
{dest_graysync_ff_reg[0]*}] 5.000

 6.2.3Set Bus Skew Dialog Box
在Vivado®IDE中,可以通过多种方式设置总线偏斜约束:
(1)通过 Timing Constraints Editor。选择Window → Timing Constraint → Assertion →
Set Bus Skew.
从“ Timing Constraints Editor”中,可以添加、删除或修改总线扭曲偏斜。注意:无法编辑锁定的IP总线偏斜约束。
(2)通过Through the Report CDC GUI.选择 Reports → Timing → Report CDC.
        在“CDC Details”表中,必须选择一行或多行,以至少包括两个或多个起点和两个或更多个端点。右键单击并选择“Set Bus Skew”时,有两个选项:
        •起点到终点:在所选行中包括的起点和终点之间设置总线偏斜约束。
        •源时钟到目标时钟:在起点和终点的时钟域之间设置总线偏斜约束。
        注意:通常不建议在时钟域之间设置总线偏斜约束,因为它将应用于比需要更多的路径。这将导致更长的实现运行时间和不可能的时序收敛。

        注意:Vivado不会验证在选定对象上设置总线偏斜约束的有效性。必须确保总线扭曲约束对选定对象有意义。在“ Set Bus Skew ”对话框中,可以设置总线偏斜值、起点和终点,如下图所示。


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/464279.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

活动目录域服务

域用户能够使用[username]csk.cn进行登录。 创建一个名为“CSK”的OU&#xff0c;并新建以下域用户和组&#xff1a; sa01-sa20&#xff0c;请将该用户添加到sales用户组。 ma01-ma10&#xff0c;请将该用户添加到manager用户组。 除manager 组以外的所有用户隐藏C盘。 除…

深入理解 Linux 内核

文章目录 前言一、内存寻址1、内存地址2、硬件中的分段&#xff08;1&#xff09;段选择符 3、Linux 中的分段&#xff08;1&#xff09;Linux GDT&#xff08;2&#xff09;Linux LDT 4、硬件中的分页5、Linux 中的分页&#xff08;1&#xff09;进程页表&#xff08;2&#x…

CRLF注入漏洞、URL重定向、资源处理拒绝服务详细介绍(附实例)

目录 一、CRLF注入漏洞 漏洞简介 演示介绍 漏洞检测工具&#xff1a;CRLFuzz 二、URL重定向漏洞 漏洞简介 漏洞相关业务 演示介绍 创建重定向虚假钓鱼网站 三、WEB 拒绝服务 简介 漏洞相关业务 演示介绍 一、CRLF注入漏洞 漏洞简介 CRLF 注入漏洞&#xff0c;是因…

centos7 firewall-cmd主机之间端口转发

目录 1. firewalld1.1 firewalld守护进程1.2 控制端口/服务1.3 伪装IP1.4 端口转发 2. 案例2.1 配置ServerA2.2 安装nginx测试 &#xff08;可选&#xff09;2.3 开启端口2.4 伪装IP2.5 端口转发2.6 配置ServerB2.7 修改nginx页面显示内容2.8 访问ServerB2.9 访问ServerA 1. fi…

低代码是开发的未来,还是只能解决边角问题的鸡肋?

随着互联网行业寒冬期的到来&#xff0c;降本增效、开源节流几乎成为了全球互联网厂商共同的应对措施&#xff0c;甚至高薪酬程序员的“35岁危机”一下子似乎变成了现实。程序员的高薪吸引了各行各业的“跨界选手”&#xff0c;是编程门槛降低了吗&#xff1f;不全是&#xff0…

搭建linux邮件服务器

参考&#xff1a;企业级邮件服务器实战_哔哩哔哩_bilibili Linux 平台开源免货的邮件服务器包括: Sendmail、Postix、Omail ; 邮件服务器构成了电子邮件系统的核心&#xff0c;每个收信人都有一个位于某个邮件服务器上的邮箱(mailbox)&#xff0c;一个邮件消息的典型旅程是从…

管道命令(cut、grep、sort、wc、uniq、tee、tr、col、join、paste、expand/unexpand、split、xargs)

文章目录 管道命令(pipe)选取命令&#xff1a;cut、grepcut使用案例cut的优点缺点 grep使用案例 排序命令&#xff1a;sort、wc、uniqsort使用案例 uniq使用案例 wc使用案例 双向重定向&#xff1a;tee使用案例 字符转换命令&#xff1a;tr、col、join、paste、expandtr使用案例…

非量表数据应该如何分析?

问卷中的非量表数据应该怎么分析&#xff1f; 样本特征分析 对于非量表题的描述可以使用频数分析或者可视化图形进行描述&#xff0c;比如单选题也可以使用柱形图等进行展示&#xff0c;通过结果展示了解样本的基本情况&#xff0c;最后结合分析结果提出建议等。差异分析 除此之…

mybatis中进行时间范围查询

一 oracle数据库 数据库时间类型为DATE TO_CHAR 把日期或数字转换为字符串 TO_DATE 把字符串转换为数据库中的日期类型 TO_DATE(char, ‘格式’) TO_NUMBER 将字符串转换为数字 TO_NUMBER(char, ‘格式’) 1、入参是String类型的数据 mybatis 处理时间范围 使用TO_DATE函数…

2023个税验证Excel表

根据北京市工资计算公式制作该表格&#xff0c;用来验证每月发放工资是否有误&#xff0c;统计年度总收入等。 下载链接如下&#xff08;提升等级用&#xff09;&#xff1a; https://download.csdn.net/download/wayright/87732783 不下载&#xff0c;按照上面表格数据自己制作…

下载高清图片素材,就上这6个网站,免费还能商用

图片素材网站我已经推荐过很多了&#xff0c;今天就再给大家推荐6个高清图片素材网&#xff0c;免费下载哦~建议收藏起来。 1、菜鸟图库 https://www.sucai999.com/pic.html?vNTYwNDUx 我推荐过很多次的一个设计素材网站&#xff0c;除了设计类&#xff0c;还有很多自媒体可…

el-input-number 输入框添加单位

需求 使用 element-ui 的 InputNumber 控件,实现金额填写,需要在数字后面添加一个单位:元 实现效果 代码部分 <template><el-dialogclass="morendialog":title="(formData.id ? 修改 : 新增) + title":visi

没有什么比破除束缚更自由的事情了

我发现&#xff0c;我时常处于一种自我消耗、内耗的状态中&#xff0c;令我难以振作起来去改变现状。因此&#xff0c;“拒绝内耗&#xff0c;提升表达力&#xff0c;努力提升自我”成为了我必须完成的小目标。 在高中和大学的的时候&#xff0c;有一段时间&#xff0c;我曾经…

【牛客网】迷宫问题与年终奖

目录 一、编程题 1.迷宫问题 2.年终奖 二、选择题 1、将N条长度均为M的有序链表进行合并&#xff0c;合并以后的链表也保持有序&#xff0c;时间复杂度为()? 2、大小为MAX的循环队列中&#xff0c;f为当前对头元素位置&#xff0c;r为当前队尾元素位置(最后一个元素的位…

Ansys Zemax | 设计抬头显示器时要使用哪些工具 – 第一部分

本文演示了如何使用OpticStudio工具设计分析抬头显示器(HUD)性能&#xff0c;即全视场像差(FFA)和NSC矢高图。(联系我们获取文章附件) 初始结构 HUD简介 以下为HUD的示意图。液晶显示器作为光源发光&#xff0c;光线被HUD的两个反射镜反射&#xff0c;然后通过风挡玻璃反射&am…

零死角玩转stm32中级篇3-SPI总线

一.基础知识 1.什么是SPI SPI&#xff08;Serial Peripheral Interface&#xff0c;串行外设接口&#xff09;是一种同步的串行通信协议&#xff0c;它被用于在微控制器、存储器芯片、传感器和其他外围设备之间传输数据。SPI通常由四个线组成&#xff1a;时钟线&#xff08;SC…

对git的简单总结

Git的基本使用 配置用户名和邮箱常见的操作查看仓库的状态远端仓库整体流程分支本地分支命令远端分支命令 这几天在做毕业设计&#xff0c;需要用到git&#xff0c;所以简单总结一下git的基本使用。 配置用户名和邮箱 git config --global user.name "Your Name" g…

【Vue】Vue-cli,创建项目设置自定义默认配置

Vue2.0&#xff0c;Vue-cli项目配置 步骤一&#xff0c;打开文件夹&#xff0c;导航栏输入cmd&#xff0c;打开命令行窗口步骤二&#xff0c;输入命令步骤三&#xff0c;选择第三个自定义新建项目步骤四&#xff0c;选择需要的项目模块&#xff0c;空格选择完&#xff0c;回车步…

Semaphore详解

Semaphore的基本使用场景是限制一定数量的线程能够去执行. 举个简单的例子: 一个单向隧道能同时容纳10个小汽车或5个卡车通过(1个卡车等效与2个小汽车), 而隧道入口记录着当前已经在隧道内的汽车等效比重. 比如1个小汽车和1个卡车, 则隧道入口显示3. 若隧道入口显示10表示已经…

《string的模拟实现》

本文主要介绍库里面string类的模拟实现 文章目录 前言一、string的构造函数①无参的构造函数②带参的构造函数③修改构造函数 二、析构函数三、拷贝构造四、赋值重载五、返回size 、capacity和empty六、[]的运算符重载七、迭代器① 正向迭代器。② 正向const迭代器 八、string比…