Vivado综合工具支持直接在RTL文件或XDC文件中设置综合属性。如果Vivado识别出设置的属性,会创建与之相关的逻辑电路;如果不能识别设置的属性,会将该属性和值存放在生成的网表中。因为某些属性,比如LOC约束适用于布线过程,因此必须保留该属性配置情况。 本文将介绍Vivado综合工具支持的所有属性设置,并给出Verilog示例。 1.ASYNC_REG该属性将reg类型配置为可以在D输入管脚接受异步数据的寄存器,或者带同步链的同步寄存器。该属性默认为FALSE,可设置为TRUE。可在RTL或XDC中设置。示例如下: (* ASYNC_REG = “TRUE”) reg [2:0] sync_regs; //Verilog示例2.BLACK_BOX当设置了该属性时,Vivado综合工具会为该模块创建一个黑盒子,模块内部的所有层次结构对外都不可见,该功能多用于调试过程。该属性可以设置在module、entity或component上,只能在RTL中设置。示例如下: (* black_box *) module test(in1, in2, clk, out); //Verilog示例,不需要设置值3.CASCADE_HEIGHT该属性只适用于UltraScale架构的FPGA,用于设置将块RAM级联为大型RAM的最大长度。通常工具会根据创建的RAM选择如何级联块RAM,该属性可以用于缩短级联链的长度。需要在RTL中设置,值为0或1时表示禁止任何块RAM的级联。示例如下: (* cascade_height *) reg [31:0] ram [(2**15)-1:0]; //Verilog示例
|