实际上,除了Xilinx自带的IP,用户设计也可以根据需求选择不同的综合方式。相比于Global综合方式,OOC综合方式会带来以下好处。
(1)节省综合时间,这是因为已经采用OOC综合的模块,只要没有任何改动,都无需重新综合
(2)在一定程度上,有助于时序收敛
那么什么情况下建议采用OOC综合方式呢?
Xilinx的IP
对于Xilinx的IP,通常建议采用OOC的综合方式,无论IP是在RLT代码中实例化的还是在Block Design(用IP Integrator创建的模块)中被调用。
关键模块
对于用户设计中的关键模块,也就是时序较难收敛的模块,也可以尝试采用OOC综合方式,以此给时序收敛带来一些好处。但这里有一个限制,就是如果该模块中包含了Xilinx的IP,而该IP又是采用了OOC综合方式,那么该模块就无法设置为OOC综合方式了。
设计评估
有时,需要评估某个较大的模块的资源利用率以及所能运行到的最高时钟频率,这时候,可将该模块作为工程的顶层模块,同时在综合设置选项卡中将其设置为OOC综合方式,如下图所示。只需要在More Options中添加-mode out_of_context。这样的好处是,无需管脚分配,Vivado就可以跑完综合、布局布线,然后对结果进行分析即可。这里需要注意的是要有20%的裕量。举个例子,如果期望设计能运行到100MHz,那么评估时应按照120MHz进行评估。
部分可重配置
对于需要部分可重配置(Partial Reconfiguration)的工程,其中的可重配置模块(Reconfigurable Module)是一定要采用OOC综合方式的,这是PR的要求。