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

    文章

    1578

    浏览量

    44888
  • Vivado
    +关注

    关注

    18

    文章

    790

    浏览量

    65106

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

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

收藏 人收藏

    评论

    相关推荐

    FPGA设计中两种IO约束:管脚约束,延迟约束

    I/O约束 I/O约束是必须要用的约束,又包括管脚约束和延迟约束。 管脚约束 管脚
    的头像 发表于 10-30 16:08 1.3w次阅读
    FPGA设计中两种IO<b class='flag-5'>约束</b>:管脚<b class='flag-5'>约束</b>,延迟<b class='flag-5'>约束</b>

    VIVADO时序约束及STA基础

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

    vivado约束参考文档

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

    Vivado生成的XDC约束的严重警告

    使用Vivado 2015.4我生成了两个FIFO和一个Aurora Core。我收到与Vivado自动生成的时序约束相关的严重警告。由于我的FIFO在整个设计中被多次使用,我需要一种让Viv
    发表于 11-02 11:30

    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 8575次阅读
    ISE<b class='flag-5'>约束</b>导入<b class='flag-5'>vivado</b>总共分几步

    【时序约束资料包】培训课程Timing VIVADO

    来维持吗? 1、Vivado基本操作流程 2、时序基本概念 3、时序基本约束和流程 4、Baselining时序约束 5、CDC时序约束 6、I/O时序 7、例外时序
    发表于 08-06 15:08 420次阅读

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

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

    Vivado中XDC文件的约束顺序

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

    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 2985次阅读

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

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

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

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

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

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