专栏首页Lauren的FPGA约束文件有哪些

约束文件有哪些

对于一个完整的FPGA设计,既要有时序约束,也要有物理约束(例如:管脚分配与管脚电平设置)。Xilinx建议将这两类约束分开写在不同的约束文件中。此外,考虑到某些设计中可能会用到手工布局,从而会有相应的Floorplan约束(对应Pblock,可理解为面积约束)。同时,在大多数情形下都需要对FPGA设计进行调试,这样就会用到ILA,同时需要对相应的net设置MARK_DEBUG属性,这可理解为第三种约束即调试约束。因此一个完备的约束会包含时序约束、物理约束和调试约束,如下图所示。

对于约束文件,Vivado支持.xdc和.tcl两种格式。约束文件都有自己的属性,可在属性窗口中查看,也可通过下图示的Tcl脚本在Vivado Tcl Console中查看。

在这些属性中有一个需要关注的属性即USED_IN,如下图所示。图中显示其值为{synthesis, implementation},表示该约束文件在综合和实现阶段均有效。相应地,属性USED_IN_IMPLEMENTATION和USED_IN_SYNTHESIS属性值为1。可见对约束文件,可通过USED_IN属性设定其有效阶段。

另一个比较重要的属性是IS_ENABLED,如下图所示,用于ENABLE或DISABLE相应的约束文件,实际上就是管理约束文件是否使用。这个属性对于调式约束非常有用。当调试完毕,可直接将调试约束文件设置为不使用状态(在Sources窗口中显示为灰色)。如果调试约束与时序约束混合在一个文件中,调试结束就需要注释掉或直接删除相应的调试约束,操作起来不太方便。IS_ENABLED属性则避免了这种不便。

此外,Vivado允许用户创建不同的Design Runs,从而,对于不同的Design Run,用户可以使用不同的Constraint Set,如下图所示。这样的好处是可以根据Design Run的需求创建不同的约束。例如,Synth_1/Impl_1要求时钟频率为200MHz,而Synth_2/Impl_2要求时钟频率为300MHz,如果这两个Design Run的目标芯片一致,则可验证该设计的Fmax(最高时钟频率);如果目标芯片不一致,则可用于验证同一设计在不同芯片上所能达到的最高频率。

结论:

-约束文件= 时序约束 + 物理约束 + 调试约束

-通过属性可设定约束文件是否有效及其有效阶段

-Vivado允许用户创建多个Constraint Set

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA),作者:LaurenGao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 过约束到底怎么做

    从字面意思来看,所谓过约束是指约束过紧了。这个“过”体现在setup requirement变小了,对于单周期路径,这个值通常与时钟周期一致,但在过约束情况下,...

    Lauren的FPGA
  • set_max_delay被覆盖怎么办

    XDC描述的时序约束是有优先级的,尤其是涉及到时序例外的约束,如set_clock_groups、set_false_path、set_max_delay和se...

    Lauren的FPGA
  • HLS优化方法DATAFLOW你用了吗

    DATAFLOW作为HLS的一种优化方法,对于改善吞吐率(Throughput)、降低延迟(Latency)非常有效。

    Lauren的FPGA
  • mysql学习笔记(四)约束与索引

    ER图:https://jingyan.baidu.com/article/d5a880eba77c3513f147ccdf.html

    逆回十六夜
  • ANSYS里的对称与反对称约束

    首先回顾一下结构力学里的概念:在平面内绕对称轴旋转180度,荷载的作用点重合,作用方向相反便是反对称荷载,如果荷载的作用点重合,作用方向相同,便是正对称荷载。通...

    fem178
  • OptaPlanner规划引擎的工作原理及简单示例(1)

      在之前的文章中,已介绍过APS及规划的相关内容,并对Optaplanner相关的概念和一些使用示例进行过介绍,接下来的文章中,我会自己做一个规划小程序 - ...

    Kent Zhang
  • 如何在idea中配置git环境,使终端可以输入git命令

  • Swift 全局导入Module

    我们有时候需要全局导入一个Module,因为这个组件在每个文件都使用很频繁。在OC的时代,PCH做的工作,Swift怎么办呢

    ZY_FlyWay
  • 35所大学获批新增「人工智能」本科专业,工学学位、四年制

    从此通知下载的附件中我们能够看到,「新增审批本科专业名单」中出现了「人工智能」的身影。

    机器之心
  • [每日一题]矩阵转置(1242)

    题目描述 输入N*N的矩阵,输出它的转置矩阵。 输入 第一行为整数N。 接着是一个N*N的矩阵。 输出 转置矩阵 样例输入 2 1 2 1 2 样例输出 1 ...

    编程范 源代码公司

扫码关注云+社区

领取腾讯云代金券