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

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

3天内不再提示

FPGA编程技巧系列之输入输出偏移约束详解

FPGA研究院 来源:FPGA研究院 2023-02-15 11:52 次阅读

1. 偏移约束的作用

偏移约束(Offset Constraint)用来定义一个外部时钟引脚(Pad)和数据输入输出引脚之间的时序关系,这种时序关系也被称为器件上的Pad-to-Setup或Clock-to-Out路径。这些约束对与外部元器件相连的接口十分重要,在这里,需要解释两个术语:

Pad-to-Setup:也被称为OFFSET IN BEFORE约束,是用来保证外部输入时钟和外部输入数据的时序满足FPGA内部触发器的建立时间要求的。如下图TIN_BEFORE约束使得FPGA在进行DATA_IN和CLK_SYS布线时努力保证DATA_IN相对于CLK_SYS的延时小于TIN_BEFORE。

Clock-to-Out:也被称为OFFSET OUT AFTER约束,是用来满足下游器件建立保持(setup/hold)要求或输出时钟和数据之间时序要求的。

OFFSET IN BEFORE 或OFFSET OUT AFTER约束允许用户指定外部输入或输出引脚相对于时钟边沿到内部数据的延时。

4e62ba9e-ac4b-11ed-bfe3-dac502259ad0.jpg

1‑1 输入偏移约束时序参考图

4e77acc4-ac4b-11ed-bfe3-dac502259ad0.jpg

1‑2 输出偏移约束时序参考图

Xilinx FPGA有三个层次的约束:

Global OFFSET:为所有输入或输出指定相对某个特定时钟的约束;

Group OFFSET:为一组输入或者输出指定相对驱动他们的时钟的约束

Net-Specific OFFSET:为某个特定的输入或者输出指定相对其驱动时钟的约束;

在进行约束的详细讲解之前,必须明确两个概念:

建立时间setup time

指在触发器始终上升沿到来之前,数据必须保持稳定的时间,如果建立时间不够,数据将不能被打入触发器;

保持时间hold time

指触发器的时钟上升沿到来之后数据必须稳定不变的时间,如果保持时间不够,数据不能被打入触发器;

4e8b3dd4-ac4b-11ed-bfe3-dac502259ad0.jpg

1‑3 建立保持时间时序图

2. OFFSET IN约束

OFFSET IN约束用来设定Pad-to-Setup时序要求。OFFSET IN是对数据时钟关系的一种说明。它当分析建立时间要求(data_delay+setup-clock_delay-clock_arrival要求满足约束条件)的时候,需要考虑时钟延时(clock delay)、时钟边沿(clock edge)、DLL/DCM引入的时钟相位。

2.1. OFFSET IN BEFORE 约束

OFFSET IN BEFORE约束限定了数据从引脚传播到同步元件并在同步元件建立起来的所需的时间。比如 “OFFSET = IN 2 ns BEFORE clock_pad”这个约束,限定数据必须在下一个时钟边沿到来之前2ns内读取,因此FPGA会规划使得数据相对时钟边沿的超前2ns之内。

4ea5c244-ac4b-11ed-bfe3-dac502259ad0.jpg

2‑1 OFFSET IN BEFORE约束带校准功能的电路

上图FPGA在布线时会尽力去满足如下不等式:

TData + TSetup - TClock 《= Toffset_IN_BEFORE;

2.1.1. VALID约束

OFFSET IN约束往往和VALID约束一起使用。OFFSET IN约束在建立时间分析中作为建立时间要求使用,而VALID约束在保持时间约束中作为保持时间要求使用。VALID约束指定了输入数据的持续时间。在默认情况下,FPGA指定VALID和OFFSET的值相等,也即FPGA在默认情况下认为保持时间为0。

4ebc1224-ac4b-11ed-bfe3-dac502259ad0.jpg

2‑2 带有VALID约束的输入偏移约束

2.1.2. OFFSET IN约束的一个简单例子

FPGA的分析工具在综合时经常会用到一个词:Slack,即松弛时间,当Slack》0时,该路径设计满足时序要求;当Slack《0时,该路径不满足时序要求。

Slack = (Requirement - (Data Path - Clock Path - Clock Arrival))

4ee4f554-ac4b-11ed-bfe3-dac502259ad0.jpg

2‑3 OFFSET IN的简单例子时序

该约束为:

TIMESPEC TS_clock = PERIOD clock_grp 10 ns HIGH 50%;

OFFSET = IN 3 ns BEFORE clock;

4efdd8f8-ac4b-11ed-bfe3-dac502259ad0.jpg

2‑4 OFFSET IN约束时序报告

从时序约束报告的Slack的值可以看出,Data不能被Clock成功打入触发器FF0.

2.2. OFFSET IN AFTER约束

OFFSET IN AFTER和OFFSET IN BEFORE在本质上是一样的,只是形式上不一样,其约束效果是完全一样的。OFFSET IN AFTER的约束公司如下:

TData + TSetup - TClock 《= TPeriod – Toffset_IN_AFTER;

3. OFFSET OUT约束

OFFSET OUT约束用来定义clock-to-pad时序要求。OFFSET OUT约束是对外部clock-to-data的说明并且必须考虑clock_delay、clock edge和DLL/DCM时钟相位等。

3.1. OFFSET OUT AFTER约束

OFFSET OUT AFTER约束定义了数据从同步元件传播到管脚最长允许时间。可以形象地理解为时钟边沿到达器件边界时数据离开器件边界的时间。“OFFSET = OUT 2 ns AFTER clock_pad”约束意思是从FPGA数据端口传输到下游器件的数据在参考时钟2ns之后一定可读。

4f3d7e40-ac4b-11ed-bfe3-dac502259ad0.jpg

3‑1 OFFSET OUT AFTER约束带校准功能的电路

下面公式规定了数据时钟的这种关系:

TQ + TClock2Out + TClock 《= Toffset_OUT_AFTER;

OFFSET OUT AFTER约束沿着参考时钟路径和数据路径的最大延时不超过偏移值。

3.1.1. OFFSET OUT AFTER约束的一个简单例子

同样的,OFFSET OUT的Slack也定义了输出约束的松弛时间:

Slack = (Requirement - (Clock Arrival + Clock Path + Data Path))

4f4bf6dc-ac4b-11ed-bfe3-dac502259ad0.jpg

3‑2 OFFSET OUT 约束的简单例子

其约束应写为:

TIMESPEC TS_clock = PERIOD clock_grp 10 ns HIGH 50%;

OFFSET = OUT 3 ns AFTER clock;

4f5d0814-ac4b-11ed-bfe3-dac502259ad0.jpg

3‑3 OFFSET OUT 时序约束报告

时序报告中Slack=-0.865ns,不满足时序约束要求。

3.2. OFFSET OUT BEFORE约束

同样地,OFFSET OUT BEFORE和OFFSET OUT AFTER约束本质上没有什么不同,只是形式上的不一样的,其约束效果完全一样。

审核编辑 :李倩

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

    关注

    1625

    文章

    21665

    浏览量

    601741
  • 元器件
    +关注

    关注

    112

    文章

    4692

    浏览量

    91965
  • 触发器
    +关注

    关注

    14

    文章

    1995

    浏览量

    61044

原文标题:FPGA编程技巧系列之输入输出偏移约束详解

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

收藏 人收藏

    评论

    相关推荐

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

    今天给大侠带来Xilinx FPGA编程技巧常用时序约束详解,话不多说,上货。 基本的约束
    发表于 04-12 17:39

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

    今天给大侠带来Xilinx FPGA编程技巧常用时序约束详解,话不多说,上货。 基本的约束
    发表于 05-06 15:51

    用Cyclone FPGA实现双倍数据率输入输出接口

    Cyclone 系列芯片是美国A ltera 公司推出的低价格、高容量现场可编程门阵列器件(FPGA ) , 本文概述了他的主要特点, 给出了其在与外部存储器接口时用到的双倍数据率输入输出
    发表于 06-27 16:27 45次下载
    用Cyclone <b class='flag-5'>FPGA</b>实现双倍数据率<b class='flag-5'>输入输出</b>接口

    6.2 通用输入输出GPIO(神舟王207)

    此文档是关于神舟王开发板输入输出GPIO的介绍和讲解;
    发表于 05-25 10:01 2次下载

    FPGA开发之时序约束(周期约束

    时序约束可以使得布线的成功率的提高,减少ISE布局布线时间。这时候用到的全局约束就有周期约束偏移约束。周期
    发表于 02-09 02:56 705次阅读

    一文详解FPGA编程技巧输入输出偏移约束

    偏移约束(Offset Constraint)用来定义一个外部时钟引脚(Pad)和数据输入输出引脚之间的时序关系,这种时序关系也被称为器件上的Pad-to-Setup或Clock-to-Out路径这些
    的头像 发表于 07-14 07:14 5455次阅读
    一文<b class='flag-5'>详解</b><b class='flag-5'>FPGA</b><b class='flag-5'>编程</b>技巧<b class='flag-5'>输入输出</b><b class='flag-5'>偏移</b><b class='flag-5'>约束</b>

    添加时序约束的技巧分析

    。 在添加全局时序约束时,需要根据时钟频率划分不同的时钟域,添加各自的周期约束;然后对输入输出端口信号添加偏移约束,对片内逻辑添加附加
    发表于 11-25 09:14 2583次阅读

    XD和XL系列编程控制器的规格参数和输入输出接线及运行维护的说明

    本手册涉及XD/XL系列编程控制器的选型、系统构成,主要介绍XD/XL系列编程控制器的基本单元的规格参数、输入输出接线、运行维护等。
    发表于 12-12 15:01 4次下载
    XD和XL<b class='flag-5'>系列</b>可<b class='flag-5'>编程</b>控制器的规格参数和<b class='flag-5'>输入输出</b>接线及运行维护的说明

    nRF24LE1低功耗应用详解输入输出口设计

    关键词:nRF24LE1 如需详细资料,请与我联系。 无线世界,应用无限 nRF24LE1低功耗应用详解输入输出口设计.jpg(79.65 KB, 下载次数: 39) 2012-4-19 16:12:46 上传 下载次数: 3
    发表于 02-27 14:05 401次阅读
    nRF24LE1低功耗应用<b class='flag-5'>详解</b><b class='flag-5'>之</b><b class='flag-5'>输入输出</b>口设计

    STM32的8种GPIO输入输出模式

    STM32的8种GPIO输入输出模式参考文章“STM32的8种GPIO输入输出模式深入详解”和“STM32中GPIO的8种工作模式!”输入模式- 浮空
    发表于 11-26 17:06 16次下载
    STM32的8种GPIO<b class='flag-5'>输入输出</b>模式

    2、【STM32F0系列学习】—通用输入输出端口(GPIO)

    【STM32F0系列学习】—通用输入输出端口GPIO1、GPIO端口配置说明1、GPIO端口配置说明
    发表于 11-29 16:51 66次下载
    2、【STM32F0<b class='flag-5'>系列</b>学习】<b class='flag-5'>之</b>—通用<b class='flag-5'>输入输出</b>端口(GPIO)

    创建输入输出接口时序约束的窍门

    输入输出接口的约束,整理出了一套非常实用的InputDelay/Output Delay Constraints Language Templates。
    的头像 发表于 08-02 09:54 2468次阅读
    创建<b class='flag-5'>输入输出</b>接口时序<b class='flag-5'>约束</b>的窍门

    Logos系列FPGA输入输出接口(IO)用户指南

    电子发烧友网站提供《Logos系列FPGA输入输出接口(IO)用户指南.pdf》资料免费下载
    发表于 09-26 10:19 7次下载
    Logos<b class='flag-5'>系列</b><b class='flag-5'>FPGA</b><b class='flag-5'>输入输出</b>接口(IO)用户指南

    PyTorch教程6.6.文件输入输出

    电子发烧友网站提供《PyTorch教程6.6.文件输入输出.pdf》资料免费下载
    发表于 06-05 10:18 0次下载
    PyTorch教程6.6.<b class='flag-5'>之</b>文件<b class='flag-5'>输入输出</b>

    CW32通用输入输出端口详解

    CW32通用输入输出端口详解
    的头像 发表于 10-30 17:33 1035次阅读
    CW32通用<b class='flag-5'>输入输出</b>端口<b class='flag-5'>详解</b>