0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

时序约束中如何精确找到匹配的template?

电子工程师 来源:XILINX开发者社区 作者:Vivian Yin 2021-04-10 09:38 次阅读

时序约束中的

set_input_delay/set_output_delay约束一直是一个难点,无论是概念、约束值的计算,还是最终的路径分析,每一次都要费一番脑子。Vivado为方便用户创建输入输出接口的约束,整理出了一套非常实用的InputDelay/Output Delay Constraints Language Templates。只需根据接口信号的特征匹配到对应的template分类,就可以轻松套用模板中的公式创建约束。

本文将通过3个例子来展示,如何精确找到匹配的template。

01Input Delay/Output Delay Constraints Language Template

首先来介绍下Vivado的language Template。在Vivado GUI界面下,Tools菜单里即可打开Language Template。下图红框部分即InputDelay/Output Delay Constraints部分的模板

6de3ad70-998c-11eb-8b86-12bb97331649.png

02模板分类目录中的关键字

1. System Synchronous(系统同步)和Source Synchronous(源同步)

System Synchronous:两个 device 之间进行通信时,使用一个共用时钟,用于数据发送和接收。

6df62dc4-998c-11eb-8b86-12bb97331649.png

Source Synchronous:两个 device 间进行通信时,发送端生成一个伴随发送数据的时钟信号。接收端利用该随路时钟进行数据接收。

6e0e23d4-998c-11eb-8b86-12bb97331649.png

2. SDR 和 DDR

SDR:singledata rate。一个时钟周期只传输一个 data。

6e191d70-998c-11eb-8b86-12bb97331649.png

DDR:doubledata rate。一个时钟周期传输两个 data。

6e3ddcbe-998c-11eb-8b86-12bb97331649.png

3. Center-Aligned 和 Edge-Aligned

Center-Aligned 中心对齐,指时钟的采样沿 (capture edge) 处于对应数据有效窗口的中心位置附近。

6e47e312-998c-11eb-8b86-12bb97331649.png

Edge-Aligned 边沿对齐,指时钟的采样沿处于对应数据的起始或结束位置附近.

6e55fcfe-998c-11eb-8b86-12bb97331649.png

03Template的内容

我们以"InputDelay Constraints -> Source Synchronous -> Center-Aligned -> SDR, Rising Edge"模板为例,看看模板的具体内容。

6e5e0c6e-998c-11eb-8b86-12bb97331649.png

每个模板开头都有个波形图,描述这个模板对应的接口 data 与 clock 之间的时序关系。后面我们会讲,这个时序图将是精准匹配模板的关键。

波形图里标示的参数 dv_bre,dv_are,是用来代入约束模板里面的公式计算 -max 和 -min 的约束值。因此匹配了正确的模板,确定了波形图里的参数值,就可以套用公式完成约束的创建。

04匹配模板的法宝 - 波形图

那么问题来了,去哪里找接口信号的波形图?

模板里用来计算的参数如何确定呢?

答案: 对端器件的 Datasheet

Inputdelay 和 output delay 约束提供给 Vivado工具的信息,是 FPGA 外部威廉希尔官方网站 上的时序数据。这部分数据跟 FPGA 内部威廉希尔官方网站 上的时序信息(这部分工具已知)相结合才能完整地分析整条路径是否满足终点器件的建立时间和保持时间。

Inputdelay 约束的创建依赖 FPGA 上游器件的 Datasheet;Output delay 约束的创建依赖下游器件的 Datasheet。

我们以 LTC2000A-11 DAC 器件的 Datasheet 为例:https://www.analog.com/media/en/technical-documentation/data-sheets/2000afb.pdf

我们需要的波形图通常在 Datasheet 的 Timing Diagram 部分,而用来计算的参数通常在Timing Characteristics 部分。

6e889f38-998c-11eb-8b86-12bb97331649.png

对于前面讲解的模板的三种分类目录,SystemSynchronous/Source Synchronous 以及SDR/DDR 的区分相对容易,而 Center-Aligned 和 Edge-Aligned 如何得知呢?

这就依赖于对端器件的 Datasheet 中的 Timing 波形图。

我们来看几个例子:

例一:

这是一个 SourceSynchronous 的 DDR 接口,需要约束 Dx 数据的 inputdelay,时钟为DCO。下图为上游器件 Datasheet 中的TimingDiagram,其中tDATA的范围是1.3ns~1.9ns。

6ea63188-998c-11eb-8b86-12bb97331649.png

从图中可以看出时钟采样沿大致在 Data 的中心,因此是 Center-Aligned。那么这个数据接口符合 SourceSynchronous --> Center-Aligned --> DDR 模板。

6edae61c-998c-11eb-8b86-12bb97331649.png

这个模板需要 dv_bre 等4个参数,如何确定呢?我们只需将 Datasheet 里的原波形图做一点细化改动,就可以与模板里的波形图完美匹配了。

6ef3757e-998c-11eb-8b86-12bb97331649.png

tDATA之所以是一个范围值,就是因为 data 是有“有效数据”(datavalid)和“无效数据”(阴影部分)窗口的。把原波形图画出阴影部分就一目了然了。

因此,

dv_bfe = dv_bre = tDATA_MIN = 1.3ns

dv_afe = dv_are = tDATA_MAX = (½ Period – 1.9)ns

例二、

从下面这个 Datasheet 里的波形图可以看出,这是一个 SourceSynchronous Edge-Aligned DDR 接口,需要创建 DQ 的 input delay 约束,时钟是 DQS

6f1ac1ce-998c-11eb-8b86-12bb97331649.jpg

这个例子比较直观,直接匹配 SourceSynchronous ->Edge-Aligned -> DDR 模板

6f2756c8-998c-11eb-8b86-12bb97331649.png

其中

skew_bre = skew_bfe = ½ Period - tQH

skew_are = skew_afe = tDQSQ

例三、

这个例子也是 SourceSynchronous,是从前面的 LTC2000A-11DAC 器件的 Datasheet 中提取出来的,需要创建 DAP/N的outputdelay 约束,随路时钟是DCKI。其中t11参数为0.057ns,t12参数为-0.017ns

6f327602-998c-11eb-8b86-12bb97331649.png

6f43ee50-998c-11eb-8b86-12bb97331649.png

Output delay 模板的分类不同于 Inputdelay,分为 Skew Based 和 Setup/HoldBased。仔细分析模板内容不难看出,两者之间的差别是看对端器件 Datasheet 里提供的数据与时钟之间关系的参数值是 Skew 形式还是 Setup/Hold 形式

6f7ac6f0-998c-11eb-8b86-12bb97331649.png

本例中t11,t12是Setup/Hold值,因此匹配 SourceSynchronous -> Setup/Hold Based -> DDR 模板。

6f841372-998c-11eb-8b86-12bb97331649.png

其中

tsu_r = tsu_f = t11

thd_r = thd_f = t12

希望通过这三个例子,能够帮助大家找到使用模板创建输入输出接口时序约束的窍门。

也欢迎大家有问题把手中的“实例”上传导赛灵思中文社区william hill官网 ,提供更多的学习素材来讨论。

原文标题:运用 Language Template 来创建set_input_delay/set_output_delay约束

文章出处:【微信公众号:XILINX技术社区】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 时序约束
    +关注

    关注

    1

    文章

    115

    浏览量

    13419

原文标题:运用 Language Template 来创建set_input_delay/set_output_delay约束

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    时序约束一主时钟与生成时钟

    的输出,对于Ultrascale和Ultrascale+系列的器件,定时器会自动地接入到GT的输出。 1.2 约束设置格式 主时钟约束使用命令create_clock进行创建,进入Timing
    的头像 发表于 11-29 11:03 329次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>一主时钟与生成时钟

    常用时序约束使用说明-v1

    为了防止约束失败,我们在Tcl输入框验证,没有告警或者错误说明约束的写法是正确的set_max_delay 5.00 -from [get_cells key2_detect_inst/state
    的头像 发表于 11-01 11:06 187次阅读

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的时序
    的头像 发表于 10-24 15:08 318次阅读
    Vivado使用小技巧

    威廉希尔官方网站 的两类约束指的是哪两类

    威廉希尔官方网站 的两类约束通常指的是电气约束和物理约束。这两类约束在威廉希尔官方网站 设计和分析起着至关重要的作用。 一、电气
    的头像 发表于 08-25 09:34 863次阅读

    深度解析FPGA时序约束

    建立时间和保持时间是FPGA时序约束两个最基本的概念,同样在芯片威廉希尔官方网站 时序分析也存在。
    的头像 发表于 08-06 11:40 680次阅读
    深度解析FPGA<b class='flag-5'>中</b>的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    ESP-idfv4.1的example,很多例程的uint32_t/size_t/NULL等等在导入eclipse后,显示未找到,为什么?

    在v4.1的IDF的example,很多例程的uint32_t/size_t/NULL等等在导入eclipse后,显示未找到,ctrl+鼠标左键也找不到Declaration,但前面的版本
    发表于 06-24 06:01

    FPGA 高级设计:时序分析和收敛

    Static Timing Analysis,简称 STA。它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的威廉希尔官方网站 进行分析。
    发表于 06-17 17:07

    Xilinx FPGA编程技巧之常用时序约束详解

    今天给大侠带来Xilinx FPGA编程技巧之常用时序约束详解,话不多说,上货。 基本的约束方法 为了保证成功的设计,所有路径的时序要求必须能够让执行工具获取。最普遍的三种路径以及
    发表于 05-06 15:51

    FPGA工程的时序约束实践案例

    详细的原时钟时序、数据路径时序、目标时钟时序的各延迟数据如下图所示。值得注意的是数据路径信息,其中包括Tco延迟和布线延迟,各级累加之后得到总的延迟时间。
    发表于 04-29 10:39 756次阅读
    FPGA工程的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>实践案例

    时序约束实操

    添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Result àxx.sdc中提供约束参考(请注意该文件不能直接添加到工程,需要热复制到别的指定目录或
    的头像 发表于 04-28 18:36 2307次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>实操

    Xilinx FPGA的约束设置基础

    LOC约束是FPGA设计中最基本的布局约束和综合约束,能够定义基本设计单元在FPGA芯片中的位置,可实现绝对定位、范围定位以及区域定位。
    发表于 04-26 17:05 1203次阅读
    Xilinx FPGA的<b class='flag-5'>约束</b>设置基础

    Xilinx FPGA编程技巧之常用时序约束详解

    ,这一约束降低工具的布线难度而又不会影响时序性能。这种约束通常用在有时钟使能控制的同步元件路径。 必须说明的是上图Enable信号的产生周期必须大于等于n*PERIOD,且每
    发表于 04-12 17:39

    构建相位和时序精确的多通道脉冲描述字(PDW)雷达信号产生方案

    AnaPico公司的APVSG多通道相参矢量信号发生器具有快速捷变、相位相干、相位相干切换和时序精确操作等特点。这些VSG允许用户在雷达和电子战应用场景轻松生成通用和真实的脉冲信号。PDW的多个列表可以从内部存储器或通过快速控
    的头像 发表于 03-12 17:13 4015次阅读
    构建相位和<b class='flag-5'>时序</b><b class='flag-5'>精确</b>的多通道脉冲描述字(PDW)雷达信号产生方案

    如何快速找到PCB的GND?

    如何快速找到PCB的GND?  在PCB设计和制作过程找到地线(GND)是非常关键的步骤。GND是电子威廉希尔官方网站 中一个非常重要的参考面,它提供了威廉希尔官方网站
    的头像 发表于 02-03 17:04 3736次阅读

    如何用3D Occupancy处理遮挡问题下的图像匹配

    图像匹配是各种视觉应用基本且关键的任务,如同时定位与地图构建( Simultaneous Localization and Mapping,SLAM )和图像检索,这些应用都需要精确的位姿估计。
    的头像 发表于 01-06 10:24 670次阅读
    如何用3D Occupancy处理遮挡问题下的图像<b class='flag-5'>匹配</b>?