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

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

3天内不再提示

Vivado里如何使用模糊性的位置约束?

FPGA技术驿站 来源:FPGA技术驿站 作者:FPGA技术驿站 2022-11-17 11:47 次阅读

提到位置约束,我们会想到手工布局的方式,即画Pblock,将指定模块放入相应Pblock内,这既是面积约束又是位置约束,但显然这种约束是较为具体的位置约束。这种方式需要工程师有一定的经验,有时还需要借鉴参考Vivado之前的布局结果,换言之,我们确定的Pblock位置未必是工具认为的最佳位置。对于特定的底层单元,例如RAMB36K或DSP48,可通过属性LOC指定其具体位置(site的位置),显然这也是非常具体的位置约束。那么是否可以做模糊的位置约束?即希望指定的模块彼此靠得近一些,或一些底层单元在指定区域(无需指定具体site的位置)。答案是肯定的。这里我们就介绍几个属性。

CLOCK_REGION 属性CLOCK_REGION可用于指定时钟缓冲器如BUFG的位置,不同于属性LOC,/CLOCK_REGION仅确定指定时钟缓冲器位于哪个时钟区域,这个区域内会有多个时钟缓冲区可供选择。CLOCK_REGION可以在XDC中使用,方法如下:

e01f98b6-6629-11ed-8abf-dac502259ad0.png

在大多数情况下,时钟缓冲器由全局时钟管脚、MMCM/PLL或GT*_CHANNELs驱动,这种情况下,Vivado会自动确定时钟缓冲器的位置,无需人工干预。 CLOCK_LOW_FANOUT 如果某个时钟所驱动的负载较小(时钟扇出较低),那么可以对时钟缓冲器输出端所连接的网线施加属性CLOCK_LOW_FANOUT,并将其值设置为TRUE,这样工具将尝试将这些负载放置在一个时钟区域内,但用户无需指定到底是哪个时钟区域。具体使用方法如下:

e02fa6a2-6629-11ed-8abf-dac502259ad0.png

这里需要注意:这个属性的施加对象是网线net,这个net应是时钟缓冲器输出端所连接的net。此外,如果这些负载无法放置在一个时钟区域内(资源不够),那么工具将会忽略此约束。

审核编辑:汤梓红

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

    关注

    6

    文章

    1915

    浏览量

    45445
  • Vivado
    +关注

    关注

    19

    文章

    807

    浏览量

    66312

原文标题:Vivado里如何使用模糊性的位置约束?

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    VIVADO时序约束及STA基础

    时序约束的目的就是告诉工具当前的时序状态,以让工具尽量优化时序并给出详细的分析报告。一般在行为仿真后、综合前即创建基本的时序约束Vivado使用SDC基础上的XDC脚本以文本形式约束
    的头像 发表于 03-11 14:39 9675次阅读

    vivado约束参考文档

    约束指令介绍)UG904 - Vivado Design Suite User Guide -Implementation UG906- Vivado Design Suite User Guide
    发表于 09-26 15:35

    Vivado忽略了约束文件

    出于某种原因,Vivado忽略了我的约束文件,当我尝试在tcl控制台中逐个输入约束时,我尝试分配的每个端口都会出现以下错误:set_property PACKAGE_PIN T19
    发表于 11-06 11:36

    正则表达式在Vivado约束文件中的应用

      使用xdc文件进行管脚、位置、时序和属性等约束的时候,经常会使用各种get命令。Vivado提供了很丰富的匹配表达式,比如等于==、不等于!=、匹配=~、不匹配!~、《、》、《=、》=等等,这些
    发表于 01-26 07:03

    ISE约束导入vivado总共分几步

    最近有些朋友在ISE中做的V7项目需要切换到vivado来,但导入代码后,导入约束时,发现vivado不再支持UCF文件,如果手抄UCF约束VI
    发表于 03-24 13:54 8834次阅读
    ISE<b class='flag-5'>约束</b>导入<b class='flag-5'>vivado</b>总共分几步

    Vivado进行时序约束的两种方式

    上面我们讲的都是xdc文件的方式进行时序约束Vivado中还提供了两种图形界面的方式,帮我们进行时序约束:时序约束编辑器(Edit Timing Constraints )和时序
    的头像 发表于 03-08 17:17 2w次阅读
    <b class='flag-5'>Vivado</b>进行时序<b class='flag-5'>约束</b>的两种方式

    Vivado IDE全面了解XDC文件的约束顺序

    Vivado IDE约束管理器将任何已编辑的约束保存回XDC文件中的原始位置,但不会保存在Tcl脚本中。 任何新约束都保存在标记为目标的XD
    的头像 发表于 11-13 10:53 4100次阅读
    <b class='flag-5'>Vivado</b> IDE全面了解XDC文件的<b class='flag-5'>约束</b>顺序

    Vivado中XDC文件的约束顺序

    很对人在使用Vivado时喜欢使用多个约束文件对整个工程进行约束,同时Vivado允许设计者使用一个或多个约束文件。虽然使用一个
    的头像 发表于 10-13 16:56 6851次阅读

    vivado多时钟周期约束set_multicycle_path使用

    Vivado下set_multicycle_path的使用说明 vivado下多周期路径约束(set_multicycle_path)的使用,set_multicycle_path一般...
    发表于 12-20 19:12 1次下载
    <b class='flag-5'>vivado</b>多时钟周期<b class='flag-5'>约束</b>set_multicycle_path使用

    Vivado设计约束功能概述

    XDC约束可以用一个或多个XDC文件,也可以用Tcl脚本实现;XDC文件或Tcl脚本都要加入到工程的某个约束集(set)中;虽然一个约束集可以同时添加两种类型约束,但是Tcl脚本不受
    的头像 发表于 06-30 11:27 3685次阅读

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束Vivado添加约束的方法有3种:xdc文件、时序约束向导(Constraints Wiza
    的头像 发表于 06-26 15:21 3902次阅读
    如何在<b class='flag-5'>Vivado</b>中添加时序<b class='flag-5'>约束</b>呢?

    Vivado综合阶段什么约束生效?

    Vivado综合默认是timing driven模式,除了IO管脚等物理约束,建议添加必要的时序约束,有利于综合逻辑的优化,同时综合后的design里面可以评估时序。
    的头像 发表于 07-03 09:03 674次阅读

    Vivado的Implementation阶段约束报警告?

    帮到不经常看群消息的小伙伴,另一方面也算是我们的技术积累。 Q:Vivado的Implementation阶段约束报警告?   [Vivado 12-627] No clocks matched
    的头像 发表于 08-08 14:10 1209次阅读

    Vivado Design Suite用户指南:使用约束

    电子发烧友网站提供《Vivado Design Suite用户指南:使用约束.pdf》资料免费下载
    发表于 09-13 15:48 2次下载
    <b class='flag-5'>Vivado</b> Design Suite用户指南:使用<b class='flag-5'>约束</b>

    Vivado使用小技巧

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