关于Vivado综合属性:MAX_FANOUT
高扇出信号可能会因为布线拥塞而导致时序问题,常用的方法是通过寄存器复制以降低扇出,这可通过综合属性MAX_FANOUT实现。
MAX_FANOUT可应用于RTL代码中,也可以应用于XDC中,如下图所示。此外,MAX_FANOUT优先级高于-fanout_limit,且可作用于控制信号。 在使用MAX_FANOUT时可能会出现MAX_FANOUT不生效,可能的原因之一是其作用对象与负载不在同一层次,如下图所示。触发器在inst_0模块中,inst_0与inst_1在同一层次,但负载在inst_1下的三个模块inst_10、inst_11和inst_12中。 此时,一个可行的方法是将触发器搬移到相应的层次下再用MAX_FANOUT,如下图所示。 这里就不得不提到-flatten_hierarchy对MAX_FANOUT的影响。如下表所示。 MAX_FANOUT可作用于Xilinx IP内部信号,但未必会生效。这是因为IP本身会有一些保护属性,使得层次保留,造成触发器与负载不在同一层次下。此时,可使用如下方法。 另外,当MAX_FANOUT作用于bus中的某一位时,如下图所示,会造成其他位对应的寄存器也被复制。在这里rx_data_reg[0]~rx_data_reg[3]均被复制,这可能是不期望的。 为此,可采用如下方法。创建临时信号,将要使用MAX_FANOUT的信号和不使用MAX_FANOUT的信号隔离。 在RTL代码中使用MAX_FANOUT。 或在XDC中使用MAX_FANOUT。 通常,复制后的寄存器名字带有字符串rep。例如: ------------------------------------------ 关于set_max_fanout的准确理解和说明在DC 的ug中说“the tool ensures the total loads connected to the input ports is small enough to keep the fanout no more the maximu value;” 很多人不能理解为什么set_max_fanout命令为什么是约束 input ports的而不是output,原因如下: ug中关于该命令的更详细的说明如下: ... compile attempts to ensure that the sum of the fanout_load attributes for input pins on nets driven by the specified ports or all nets in the specified design is less than the given value. 也就是说set_max_fanout约束了 由 input port 驱动的net(以及design内部所有nets)上所有相连 的input pin的fanout_load值的总和,而该fanout_load值由lib库中的default_fanout_load定义,这个值一般都为“1”。 由此大家可以简单理解为set_max_fanout约束了某条net上驱动的所有cell的个数的总和,而这条net可以由input port驱动, 也可以使内部的任何一条net; 这也是为什么set_max_fanout命令不是用来约束output ports,因为一个输出端口可能会连有很多条net; 而DC是根据net单独进行分析的; output port的约束使用set_fanout_load命令来约束的,现在一般用set_load命令代替; 注意这里set_fanout_load和lib库中default_fanout_load的值是没有关系的; 不知道这次解释清楚了没有,有兴趣的可以站内进行交流 ------------------------------------ set_max_fanout:Sets the max_fanout attribute to a specified value on specified input ports and/ordesigns. set_fanout_load:Sets the fanout_load attribute to a specified value on specified output ports of the current design. 应该这样理解set_max_fanout设置在input上,是通知DC该Cell上一级Cell的output max_fanout是N,则该级选用的Cell的input的load不能大于N。 set_fanout_load 几乎不用了,就用set_max_fanout 设下DRC limit就行了 |
关于Vivado综合属性:MAX_FANOUT相关推荐
- Vivado使用技巧(24):HDL/XDC中设置综合属性
Vivado综合工具支持直接在RTL文件或XDC文件中设置综合属性.如果Vivado识别出设置的属性,会创建与之相关的逻辑电路:如果不能识别设置的属性,会将该属性和值存放在生成的网表中.因为某些属性, ...
- Vivado 随笔(3) 其他综合属性 dont_touch、fsm_encoding?
目录 dont_touch fsm_encoding dont_touch 可以参考: Vivado中如何避免信号被优化掉? fsm_encoding 我们在RTL设计中,在状态机的设计中,会给状态变 ...
- Vivado 随笔(2) 综合属性之use_dsp48?
目录 背景 正文 测试 放置在Module前 放置在变量声明前 附加测试 放置在某个变量声明前 放置在Module前 相关链接 背景 在做一些FPGA算法的时候,我们不可避免的使用到大量的算术运算,例 ...
- Vivado 随笔(1) 综合属性之 ram_style rom_style?
目录 背景 正文 相关文献 背景 在很多情况下,我们会定义一个二维数组来作为RAM或者ROM来使用,例如我们在设计一个异步FIFO时,我们需要例化一个双端口RAM来作为FIFO的存储空间,当然我们可以 ...
- Vivado使用:综合篇(三)综合属性
Vivado 开发套件中,Vivado综合能够综合多种类型的属性,大多数情况下,这些属性的使用语法和行为都一样.当使用综合属性时,假如Vivado能够识别该属性,那么就使用这个属性并创建反映已经使用该 ...
- Vivado综合设置之-gated_clock_conversion
本文验证-gated_clock_conversion设置为on或off时,给Schematic带来的差异. -gated_clock_conversion设置为on时,用于移除门控时钟,门控时钟是由 ...
- Vivado 综合约束实用命令(更新中……)
引言 本文记录一些用于 Vivado 综合约束的实用命令,欢迎补充~ 本文会适当结合一些特定设计进行解释,并结合相关工程进行具体的综合实现分析,不只是理论知识还有实际操作. 演示使用的Vivado 版 ...
- 【vivado学习六】 Vivado综合
世界上一成不变的东西,只有"任何事物都是在不断变化的"这条真理. -- 斯里兰卡 [vivado学习六] Vivado综合 在 Flow Navigator 中点击设置, 然后选择 ...
- 【蜂鸟E203的FPGA验证】Chap.8 Vivado综合与性能分析-Vivado性能分析
[蜂鸟E203的FPGA验证]Chap.8 Vivado综合与性能分析-Vivado性能分析 综合后资源利用率分析 2. 综合后功耗与功耗优化 3. 综合后布局布线实现 4. 综合后静态时序分析 前言 ...
- vivado 综合报错 “ incorrect freePtr. Call out of sequence? “
vivado 综合报错 " incorrect freePtr. Call out of sequence? " 很多FPGA的初学者或者第一次使用Viado作为开发工具的同学经常 ...
最新文章
- BZOJ1396:识别子串(SAM)
- 【细品架构12/100】架构漫谈系列脑图
- c语言中猴子拿香蕉的代码题,猴子分香蕉(2018年第九届蓝桥杯省赛第二题)
- php正则表达式,数组,函数
- 全国计算机c二级编程题,全国计算机二级C上机 编程题.doc
- fritz 使用手册_Fritz对象检测指南:使用机器学习在Android中构建宠物监控应用
- Java面试题 20在面向对象编程里,经常使用is-a来说明对象之间的继承关系
- cat3 utp是不是网线_小科普 | 网线也有高低?聊聊网线的差别
- python3 random模块操作
- 离开载具_迷你世界 自制火箭试飞成功 飞行载具不负众望
- 24种设计模式--命令模式【Command Pattern】
- fckeditor异常总结---The server didn‘t reply with a proper XML data. Please check your configuration.
- 服务器安装SSH服务:
- js上传文件并预览文件内容
- 计算机组装内存条安装,笔记本电脑内存条的正确安装方法
- mysql外键代码_SQL数据库外键代码
- postgreSql连接报不支持10验证类型
- html外链自动加nofollow,WordPress自动为站外链接添加nofollow标签
- Recent Advances in Open Set Recognition A survey全文翻译精校
- 2. Python函数式编程中的字符串,元组,函数的分类,高阶函数,一篇文章都介绍一遍