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

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

3天内不再提示

如何理解和使用做FPGA设计时的过约束?

FPGA之家 来源:逻辑空间 作者:逻辑空间 2021-03-29 11:56 次阅读

有人希望能谈谈在做FPGA设计的时候,如何理解和使用过约束。我就以个人的经验谈谈:

什么是过约束;

为什么会使用过约束;

过约束的优点和缺点是什么;

如何使用过约束使自己的设计更为健壮。

什么是过约束(overconstraint)

所谓过约束,就是给目标时钟一个超过其设定运行频率的约束。比如实际运行的时钟频率是100MHz,我们在给这个时钟添加约束的时候,要求它能运行在120MHz。

为什么会使用过约束

通常在两种情况下,我们可能会使用过约束。

第一种情况,FPGA的时序报告不准确,为了确保逻辑的实际运行频率能满足要求,做过约束来保留设计余量。

FPGA的时序报告是基于FPGA的时序模型计算出来的,时序模型来源于实验室的测试和对生产过程的严格控制,是要充分考虑PVT(Process,Voltage,Temperature)的影响计算出来的。对比较成熟的FPGA厂家来说,研发,生产,测试都有标准流程控制,这一部分的数据还是比较可靠的。如果是新的厂家,大家可能要做好时序模型不准确的心理准备。在工艺不变的情况下,信号的传输,翻转速率随电压,温度的变化而变化。一般来说,温度越低,电压越高,信号的传输,翻转越快,反之越慢。而FPGA的设计软件在做STA的时候,往往是根据最差的工作条件下的(Worst Case)给出的。所以我们会看到这样的现象,时序报告显示的时序是不满足设计要求的,但逻辑运行到FPGA上功能又是正常的。这是因为FPGA的实际运行条件要比Worst Case好,实际的时序也优于报告的结果。如果是这种情况,可以不考虑使用过约束。

第二种情况,对某些关键的时钟域,时序不太容易满足,施加一个更高的时钟约束,以期望软件能跑出一个满意的结果。如果是这种情况,需要注意的是EDA软件在做布局布线的时候,会根据逻辑功能和时钟频率分配布局布线资源。过约束加的不合理,会造成非关键路径占用有限的布局布线资源,反而会使布局布线的结果更差。所以在做过约束的时候,要根据你的设计合理设置,不能简单的把所有时钟都做过约束。

过约束的优点和缺点:

过约束的优点显而易见,会让的设计运行的余量更大。缺点除了我们上面讨论的,如果在你的设计里面有跨时钟域的信号传递,而你没有对跨时钟域的路径做约束,软件在分析跨时钟域的delay的时候,由于变成过约束后,源时钟和目的时钟的频率相关性变化了,这部分的delay约束就变成了无限小,布局布线更困难了。这是我们在做过约束设计的时候要特别注意的。

过约束还有一个问题是,比如你的设计频率是100MHz,添加的约束是120MHz。那么在做STA的时候,软件还是按照120MHz来分析。即使你的布局布线的时序结果是119MHz,已经满足设计要求,但在时序报告上,还会显示时序不满足。这给我们的时序分析带来一些麻烦。

如何使用过约束使自己的设计更为健壮

在使用过约束的时候,一般情况下,以增加20%-30%为宜,太大的余量并没有太大的意义。如果该时钟有跨时钟域的操作,一定要通过专门的约束(Multicycle或max delay)在明确定义这部分的延时要求。

Lattice的设计软件中,为了配合过约束的使用,增加的一个PAR_ADJ属性:

FREQUENCY NET“sys_clk” 100.000000 MHz PAR_ADJ 20.000000 ;

这样的约束会告诉软件,用100+20=120MHz做布局布线的时候,而用100MHz的约束来做STA,这样就不会发生我们前面遇到的困扰了。

GUI的界面是这样的:

8f86a574-8ecc-11eb-8b86-12bb97331649.png

原文标题:FPGA的过约束

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

责任编辑:haq

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

    关注

    1602

    文章

    21320

    浏览量

    593194

原文标题:FPGA的过约束

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

收藏 人收藏

    评论

    相关推荐

    Xilinx FPGA约束设置基础

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

    FPGA物理约束之布局约束

    在进行布局约束前,通常会对现有设计进行设计实现(Implementation)编译。在完成第一次设计实现编译后,工程设计通常会不断更新迭代,此时对于设计中一些固定不变的逻辑,设计者希望它们的编译结果
    的头像 发表于 01-02 14:13 537次阅读
    <b class='flag-5'>FPGA</b>物理<b class='flag-5'>约束</b>之布局<b class='flag-5'>约束</b>

    FPGA时序约束--基础理论篇

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保
    发表于 11-15 17:41

    如何在FPGA设计环境中加入时序约束

    在给FPGA做逻辑综合和布局布线时,需要在工具中设定时序的约束。通常,在FPGA设计工具中都FPGA中包含有4种路径:从输入端口到寄存器,从寄存器到寄存器,从寄存器到输出,从输入到输出
    的头像 发表于 10-12 12:00 910次阅读
    如何在<b class='flag-5'>FPGA</b>设计环境中加入时序<b class='flag-5'>约束</b>?

    FPGA约束设计和时序分析

    在进行FPGA的设计时,经常会需要在综合、实现的阶段添加约束,以便能够控制综合、实现过程,使设计满足我们需要的运行速度、引脚位置等要求。通常的做法是设计编写约束文件并导入到综合实现工具
    发表于 09-21 07:45

    关于蜂鸟FPGA约束文件和MCU200T引脚对应问题

    ①蜂鸟FPGA约束文件是适用于MCU200T板子吗? ②如果适用,那么在FPGA约束文件中的引脚约束是怎么对应到MCU 200T板子中? e
    发表于 08-16 06:58

    FPGA I/O口时序约束讲解

    前面讲解了时序约束的理论知识FPGA时序约束理论篇,本章讲解时序约束实际使用。
    发表于 08-14 18:22 921次阅读
    <b class='flag-5'>FPGA</b> I/O口时序<b class='flag-5'>约束</b>讲解

    FPGA时序约束之建立时间和保持时间

    FPGA中时序约束是设计的关键点之一,准确的时钟约束有利于代码功能的完整呈现。进行时序约束,让软件布局布线后的电路能够满足使用的要求。
    发表于 08-14 17:49 828次阅读
    <b class='flag-5'>FPGA</b>时序<b class='flag-5'>约束</b>之建立时间和保持时间

    FPGA设计衍生时钟约束和时钟分组约束设置

    FPGA设计中,时序约束对于电路性能和可靠性非常重要。
    发表于 06-26 14:53 939次阅读
    <b class='flag-5'>FPGA</b>设计衍生时钟<b class='flag-5'>约束</b>和时钟分组<b class='flag-5'>约束</b>设置

    在Vivado中如何写入FPGA设计主时钟约束

    FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。
    发表于 06-26 14:47 1005次阅读
    在Vivado中如何写入<b class='flag-5'>FPGA</b>设计主时钟<b class='flag-5'>约束</b>?

    FPGA时序约束的原理是什么?

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保
    发表于 06-26 14:42 379次阅读
    <b class='flag-5'>FPGA</b>时序<b class='flag-5'>约束</b>的原理是什么?

    FPGA时序约束之伪路径和多周期路径

    前面几篇FPGA时序约束进阶篇,介绍了常用主时钟约束、衍生时钟约束、时钟分组约束的设置,接下来介绍一下常用的另外两个时序
    发表于 06-12 17:33 994次阅读

    FPGA时序约束之衍生时钟约束和时钟分组约束

    FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟约束
    发表于 06-12 17:29 1438次阅读

    FPGA主时钟约束详解 Vivado添加时序约束方法

    FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。
    发表于 06-06 18:27 7042次阅读
    <b class='flag-5'>FPGA</b>主时钟<b class='flag-5'>约束</b>详解 Vivado添加时序<b class='flag-5'>约束</b>方法

    FPGA时序约束的基础知识

    FPGA开发过程中,离不开时序约束,那么时序约束是什么?简单点说,FPGA芯片中的逻辑电路,从输入到输出所需要的时间,这个时间必须在设定的时钟周期内完成,更详细一点,即需要满足建立和保
    发表于 06-06 17:53 905次阅读
    <b class='flag-5'>FPGA</b>时序<b class='flag-5'>约束</b>的基础知识