SRL_STYLE用于管理综合工具如何推断SRL(移位寄存器)。XilinxFPGA中,SLICEM中的LUT是可以配置为SRL的。SRL相应的代码如下。
SRL_STYLE有6个可选值,分别为register,srl,reg_srl,srl_reg,reg_srl_reg和block。以深度为4的SRL为例,相应的值对应的综合结果如下图所示。
类似的一个综合属性是SHREG_EXTRACT,它有两个值,分别为”yes”和”no”。当期为yes时,等效于SRL_STYLE为reg_srl_reg;当其为no时,等效于SRL_STYLE为register。
从时序角度而言,不建议时序路径的终点是SRL。因此,对于FF(触发器) 组合逻辑 SRL的路径,可优化为FF 组合逻辑 FF的路径,最后的FF是从SRL中提取出来的。
对于大深度的SRL,可以将其映射为BlockRAM,也就是SRL_STYLE的值为block,否则会消耗过多的LUT。
解决时序问题时,有时还要关注深度较小的SRL,例如深度为1,2或3的SRL。如果较小深度的SRL在某个模块内资源利用率较高,那么就有可能给时序收敛带来负面影响。此时,可考虑将深度较小的SRL转化为FF。
结论
-SRL_STYLE有6个值,用于管理综合工具如何推断SRL
-SHREG_EXTRACT有类似的功能
-从时序角度而言,不建议时序路径的终点是SRL,尤其是在高速设计中