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

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

3天内不再提示

max_fanout的使用方法和技巧

电子工程师 来源:lq 2018-12-27 13:23 次阅读

前言

vivado自带很多命令帮助编译器更好的实现设计者的想法,用得好会变成开发利器。比如,max_fanout命令,本身是用来约束扇出,减少布线拥塞的常用命令。然而很多读者向我反映,使用这个命令之后发现没有任何事情发生,完全没有任何效果。这里我就带大家理一理这个命令的使用方法。

max_fanout 起作用的条件

打算降低扇出的网络必须是reg驱动。因为降低扇出的原理就是reg驱动超过N(设置参数)条网络的时候,就复制一个同样的reg驱动其他N条网络,如果复制2个还不够就一直复制到足够为止,见图1。

-flatten_hierarchy不能设置为none。图形界面设置位置见图2。

如果需要优化的信号在IP核内部那么在布局完成后使用下面的命令phys_opt_design -force_replication_on_nets [get_nets net_name]来保证IP核取消对内部网络的保护,能够正常复制高扇出网络。

图1.寄存器复制示意图

图2.flatten_hierarchy设置位置

max_fanout 的使用形式

1. verilog综合属性设置:(*MAX_FANOUT = 50 *) reg test;

这里的综合属性必须设置在要降低扇出的寄存器前面,否则一定不会按照设计者意图综合。这种方法缺点是不能作用于IP核内部的某个信号。

2.set_property MAX_FANOUT 50 [get_nets {test}]或者

set_property MAX_FANOUT 50 [get_cells {test_r}]

注意get_cells选中的必须是要求编译器复制它来降低扇出的寄存器,因为verilog代码里面和最终实现的电路里面的寄存器名字很可能不一样,所以建议综合完成后在原理图里面去找到对应寄存器,然后复制他的名字,这样就不会弄错。很多时候读者使用命令的时候cells的名字就弄错了!用get_nets命令也一样最好去原理图里面找对应的网络,复制名字。xdc约束可以作用于IP核内部的某个信号。

max_fanout 的参数意义

(*MAX_FANOUT = 50 *) reg test;里面的参数就只有一个——50,网络扇出超过50就会复制一个,保证每个复制的寄存器下面的扇出都不超过此参数。xdc约束也一样,不再敖述。

注意,图1的综合设置里面有-fanout_limit这个参数,并且默认是10000。这里是约束全局扇出的,但是max_fanout命令的优先级会高于这里的设置参数。所以编译器会优先按照你的综合属性或者XDC约束来进行优化。

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

    关注

    30

    文章

    5020

    浏览量

    117617
  • 编译器
    +关注

    关注

    1

    文章

    1569

    浏览量

    48598

原文标题:max_fanout命令的正确打开方式

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

收藏 人收藏

    评论

    相关推荐

    PADS中 BGA Fanout扇出 教程

    PADS中 BGA Fanout扇出 教程
    发表于 09-14 21:31

    BGA fanout问题

    如上图所示,进行BGA fanout操作后,只有一小部分焊盘fanout成功,为何其他的焊盘没有任何反应?
    发表于 03-16 10:59

    PADS BGA Fanout扇出教程

    原点座标,Setup/origin.二、选择BGA Fanout 的层:Setup/Layers Setup,BGA一般放在TOP Component 层,Plane Typet 选No Plane
    发表于 06-10 10:05

    滤波电容FANOUT时怎么操作?

    在我们常规设计中对滤波电容fanout时,要从pin拉出一小段粗引出线,然后通过过孔和电源平面连接,接地端也是同样。fanout过孔的基本原则就是让这一环路面积最小,进而使总的寄生电感最小。滤波电容的常见fanout方式如下图所
    发表于 07-31 08:36

    verilog写好之后,sdc约束文件到底该怎么确定?

    想问一下没有人给订目标,verilog写好之后,那么复杂怎么确定uncertAInty,clock_transition,max_transition,max_fanout,输入延时,输出延时,这
    发表于 06-24 06:09

    示波器的使用方法

    示波器的使用方法 1 示波器使用        本节介绍示波器的使用方法。示波器种类、型号很多,功能也不同。
    发表于 01-14 13:06 1.8w次阅读

    MAX2902与外部频率合成器结合使用方法

    MAX2902与外部频率合成器结合使用方法 摘要:MAX2902
    发表于 09-17 16:26 619次阅读
    <b class='flag-5'>MAX</b>2902与外部频率合成器结合<b class='flag-5'>使用方法</b>

    MAX639的基本使用方法电路

    MAX639的基本使用方法电路   MAX639内有作为开关
    发表于 10-30 14:21 2315次阅读
    <b class='flag-5'>MAX</b>639的基本<b class='flag-5'>使用方法</b>电路

    示波器的使用方法

    数字万用表使用方法和示波器的使用方法详解。
    发表于 03-14 10:38 31次下载

    xilinx 原语使用方法

    xilinx 原语使用方法
    发表于 10-17 08:57 11次下载
    xilinx 原语<b class='flag-5'>使用方法</b>

    MAX3485芯片使用方法

    本文主要介绍了MAX3485芯片使用方法MAX3485可以实现最高10Mbps的传输速率。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态,防止过度的功率损耗。接收器输入具有
    发表于 01-18 16:14 3.2w次阅读
    <b class='flag-5'>MAX</b>3485芯片<b class='flag-5'>使用方法</b>

    赛灵思推出UltraFast帮助用户学习Vivado

    找到目标后,可以利用max_fanout来限定其扇出值,让工具在实现过程中复制驱动端寄存器来优化。如果高扇出网络并不是由同步逻辑来驱动,则可能需要修改代码。
    的头像 发表于 07-25 11:45 2427次阅读
    赛灵思推出UltraFast帮助用户学习Vivado

    示波器的使用方法(三):示波器的使用方法详解

    示波器的使用方法并非很难,重点在于正确使用示波器的使用方法。往期文章中,小编对模拟示波器的使用方法和数字示波器的使用方法均有所介绍。为增进大家对示波器的
    的头像 发表于 12-24 20:37 2448次阅读

    时序设计基本概念之fanout

    今天要介绍的时序分析概念是fanout。中文名是扇出。指的是指定pin或者port的输出端口数。 合理的选择fanout的数目对设计来说是非常重要的,fanout过大与过小都会对设计带来不利因素
    的头像 发表于 11-26 10:31 1.2w次阅读
    时序设计基本概念之<b class='flag-5'>fanout</b>

    c语言max函数的使用方法

    C语言是一门广泛使用的编程语言,提供了许多内置的函数来执行各种任务。其中一个非常有用的函数是max函数,它用于比较两个值并返回较大的那个值。在本文中,我们将详细介绍max函数的使用方法。 首先
    的头像 发表于 11-22 10:15 5167次阅读