| |
通常情况下,我们在使用Xilinx综合工具XST时,不去关心他的配置参数。直接使用默认值就可以了。但是我最近在学习PlanAhead软件使用时,参考Xilinx一些教程,发现它们在编译时都会去关注一下这个参数的使用。下面我们就看看这个参数怎么用。
这个参数用来控制最终网表的生成。
即使是优化为部分或者全部平坦化的设计,也可以写入层级化的网表。
–netlist_hierarchy有两个参数,为as_optimized、rebuilt。
As_optimized:这种模式下,有些代码被综合为为平坦的(flattened),有些则是层级化的(hierarchy),这种区别是根据KEEP_HIETATCHY约束的设定。
Rebuilt:此时,所有的设计优势层级化的。
这里有出现了一个问题,KEEP_HIETATCHY是个神马玩意。
在代码综合和布局布线时,这个选项会起作用。如果保留设计的层级化,整个设计在综合、布局布线时都会保持层级化。设计的层级化依赖于hdl语言的层级化,也就是VHDL的entities和verilog的modules。而对于宏,综合器是不关心的。平坦化的设计可以时模块的结果最优化。但是保留层级化的设计可以提高综合后网表的可读性,也可以提高编译的速度。
下面的这张图中,表示了模块保留层级化与否对于netlist的影响。I2保留了层级化,所以在综合后的网表中也可以看到I2模块。而其他的模块由于平坦化,就无法在保留接口了。