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

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

3天内不再提示

使用模板创建输入输出接口时序约束的窍门

FPGA之家 来源:FPGA之家 作者:Vivian Yin 2022-10-26 09:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

时序约束中的

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

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

01Input Delay/Output Delay Constraints Language Template

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

bc4e2b58-54ce-11ed-a3b6-dac502259ad0.png

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

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

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

bc5f3c54-54ce-11ed-a3b6-dac502259ad0.png

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

bc70cfc8-54ce-11ed-a3b6-dac502259ad0.png

2. SDR 和 DDR

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

bc87884e-54ce-11ed-a3b6-dac502259ad0.png

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

bc97d898-54ce-11ed-a3b6-dac502259ad0.png

3. Center-Aligned 和 Edge-Aligned

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

bcc14ebc-54ce-11ed-a3b6-dac502259ad0.png

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

bccac44c-54ce-11ed-a3b6-dac502259ad0.png

03Template的内容

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

bcd2ae0a-54ce-11ed-a3b6-dac502259ad0.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 部分。

bcfadd76-54ce-11ed-a3b6-dac502259ad0.png

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

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

我们来看几个例子:

例一:

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

bd2f26d0-54ce-11ed-a3b6-dac502259ad0.png

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

bd446a54-54ce-11ed-a3b6-dac502259ad0.png

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

bd530bf4-54ce-11ed-a3b6-dac502259ad0.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

bd6532ac-54ce-11ed-a3b6-dac502259ad0.jpg

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

bd742708-54ce-11ed-a3b6-dac502259ad0.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

bd83db26-54ce-11ed-a3b6-dac502259ad0.png

bda21d5c-54ce-11ed-a3b6-dac502259ad0.png

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

bdbd30e2-54ce-11ed-a3b6-dac502259ad0.png

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

bdc61c66-54ce-11ed-a3b6-dac502259ad0.png

其中

tsu_r = tsu_f = t11

thd_r = thd_f = t12

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

审核编辑 :李倩


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

    关注

    33

    文章

    9446

    浏览量

    156145
  • 模板
    +关注

    关注

    0

    文章

    110

    浏览量

    21024
  • 时序
    +关注

    关注

    5

    文章

    402

    浏览量

    38627

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

文章出处:【微信号:zhuyandz,微信公众号:FPGA之家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    IGBT的原理,输入输出和控制信号

    IGBT的原理,输入输出和控制信号
    的头像 发表于 12-06 06:38 1558次阅读

    一文带你读懂“脉冲输入输出模块”

    “脉冲输入输出模块”,正是这位默默无闻的“信号翻译官”。 一、什么是脉冲输入输出模块? 简单来说, 脉冲输入/输出模块(Pulse I/O Module)是一种用于检测、计数、
    的头像 发表于 11-24 17:10 439次阅读
    一文带你读懂“脉冲<b class='flag-5'>输入输出</b>模块”

    时序约束问题的解决办法

    Time 是否满足约束。 我们要留意的是 WNS 和 WHS 两个数值,如果这两个数值为红色,就说明时序不满足约束。下面将解释怎么解决这个问题。 1. Setup Time 违例 Setup
    发表于 10-24 09:55

    如何用FPGA实现4K视频的输入输出与处理

    在游戏、影视和显示领域,4K 已经成为标配。而今天,我们就来聊聊——如何用 FPGA 实现 4K 视频的输入输出与处理。
    的头像 发表于 10-15 10:47 1674次阅读
    如何用FPGA实现4K视频的<b class='flag-5'>输入输出</b>与处理

    详解FPGA的输入输出处理

    inout端口DataBus作为输出的时候值为DataOut,作为输入时为高阻态。
    的头像 发表于 10-15 10:42 1176次阅读
    详解FPGA的<b class='flag-5'>输入输出</b>处理

    6轴步进电机驱动+STM32F767+485+CAN+网口+12输入输出原理图

    6轴步进电机驱动+STM32F767+485+CAN+网口+12路输入输出 原理图 步进电机驱动方案TMC5160
    发表于 06-27 16:18 0次下载

    线性稳压器IC的输入输出电容设计和纹波对策

    线性稳压器IC工作时的最小输入电压是从产品规格书“输入输出电压差vs输出电流”图表中读取所用负载电流下的输入输出电压差,并与输出电压相加得出
    的头像 发表于 05-24 14:51 1082次阅读
    线性稳压器IC的<b class='flag-5'>输入输出</b>电容设计和纹波对策

    西门子再收购EDA公司 西门子宣布收购Excellicon公司 时序约束工具开发商

    精彩看点 此次收购将帮助系统级芯片 (SoC) 设计人员通过经市场检验的时序约束管理能力来加速设计,并提高功能约束和结构约束的正确性   西门子宣布 收购 Excellicon 公司
    的头像 发表于 05-20 19:04 1275次阅读
    西门子再收购EDA公司  西门子宣布收购Excellicon公司  <b class='flag-5'>时序</b><b class='flag-5'>约束</b>工具开发商

    FPGA时序约束之设置时钟组

    Vivado中时序分析工具默认会分析设计中所有时钟相关的时序路径,除非时序约束中设置了时钟组或false路径。使用set_clock_groups命令可以使
    的头像 发表于 04-23 09:50 969次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>之设置时钟组

    远程输入输出扫描仪说明

    电子发烧友网站提供《远程输入输出扫描仪说明.pdf》资料免费下载
    发表于 03-26 15:06 0次下载

    一文详解Vivado时序约束

    Vivado的时序约束是保存在xdc文件中,添加或创建设计的工程源文件后,需要创建xdc文件设置时序约束
    的头像 发表于 03-24 09:44 4389次阅读
    一文详解Vivado<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    xilinx FPGA IOB约束使用以及注意事项

    采用了IOB约束,那么就可以保证从IO到达寄存器或者从寄存器到达IO之间的走线延迟最短,同时由于IO的位置是固定的,即存在于IO附近,所以每一次编译都不会造成输入或者输出时序发生改变
    的头像 发表于 01-16 11:02 1488次阅读
    xilinx FPGA IOB<b class='flag-5'>约束</b>使用以及注意事项

    西门子PLC输入输出接线全攻略

    西门子 PLC 在工业自动化领域中发挥着重要作用。其输入输出的分类为数字量与模拟量两种类型。数字量的输入输出主要涉及对离散信号的处理,例如开关状态、计数器数值等;而模拟量的输入输出
    的头像 发表于 01-09 16:02 6938次阅读
    西门子PLC<b class='flag-5'>输入输出</b>接线全攻略

    浅谈瑞盟科技·MS6001/2/4——低功耗,低噪声 CMOS 轨到轨输入输出运算放大器

    MS6001/2/4 运算放大器具有极低功耗,轨到轨输入输出,低的输入电压和低的电流噪声。提供方案和FAE,欢迎咨询了解
    的头像 发表于 12-31 17:41 992次阅读
    浅谈瑞盟科技·MS6001/2/4——低功耗,低噪声 CMOS 轨到轨<b class='flag-5'>输入输出</b>运算放大器

    请问simulink的s-function模块如何添加多输入输出接口

    像图里这种,我一直找不到添加多输入输出的设置页面,默认只有单输入输出
    发表于 12-30 21:38