描述
在试验了扇出控件之后,我们现在看到缓冲区插入问题,收到“达到缓冲区限制”错误。缓冲区插入限制是多少?如何控制可用缓冲区的数量?
更好的策略是使用基于RTL的扇出属性,以便在Synplify Pro中进行复制并且ACE需要较少的缓冲区吗?
回答
在ACE GUI,“项目透视图”,“选项”,“高级设计准备”选项卡中,有许多控件可用于管理缓冲区插入:
- “ Fanout限制”(默认值为95)–设置整个设计的总体限制。相应的实现选项是
fanout_limit.
- “关键网的扇出限制”(默认为0)– To enable this feature, set the value to greater than 0 (ideally to a low value such as 10-20). The implementation option name is
critical_fanout_limit
. With this option enabled, ACE selects the top 20% of critical connections, and then applies this new fan-out limit to them, independent of the value offanout_limit
. 此功能使您可以专注于需要减少扇出以关闭时序的相关网络。
To control the number of buffers inserted, there is a further ACE option (not accessible from the GUI), max_buffer_limit
(default varies by device). This option sets the maximum number of buffers inserted during resynthesis and placement. If you experience "buffer limit reached" errors, then this value can be increased; however, the value is customized for each device to offer a balance between fabric resources, and the number of buffers inserted, which reduces available logic.
注意
当前未使用“放置和路线”选项卡下的“后PnR缓冲区限制”。更改此值不会更改插入的缓冲区数。
设置ACE选项
ACE GUI下提供了上述两个选项。另外,也可以使用Tcl控制台通过以下命令在GUI中设置任何ACE选项:
# To set implementation options
cmd> set_impl_option <name> <value>
# To read implementation options back
cmd> get_impl_option <name>
Finally, if you are using the Achronix example script or batch flow, these options can be added to the ace_options.tcl
file, (under /src/constraints
).
最佳策略
为了回答最初的问题,最好的策略是在RTL中添加扇出限制,以使Synplify Pro可以执行任何所需的复制。此方法需要ACE插入的缓冲区更少。通常,制作网表越好,最终结果越好 —先行的质量在后期得到回报。另一个优点是,通常更容易向RTL添加约束。但是,如果您的编码标准不支持RTL中具有特定约束,则可以使用Synplify Pro项目FDC文件来应用约束。看到 如何控制特定信号的扇出? 有关应用这些约束的详细信息。
添加了扇出限制限制后,可以使用Synplify技术查看器轻松查看和检查综合网表。