描述
当应用于HDL中的净信号时,ASYNC_REG未应用于寄存器,如下所示。
类型Reg_Array是std_logic的数组(CONST_PIPE_STAGES – 1 downto 1);signal sl_arr_RegBank_InOuts:Reg_Array:=(others =>’0’);属性ASYNC_REG:string;属性sl_arr_RegBank_InOuts的ASYNC_REG:信号是“TRUE”;开始Register_Pipes:因为我在0到CONST_PIPE_STAGES – 1生成FFfirst:如果I = 0则生成First_FF:FDRE通用映射(INIT =>’0’)港口映射(C => IN_CLK,CE =>’1’,R =>’0’,D => IN_DATA,Q => sl_arr_RegBank_InOuts (1));结束生成;FFmid:如果I> 0且I <CONST_PIPE_STAGES – 1生成Mid_FF:FDRE通用映射(INIT =>’0’)港口映射(C => IN_CLK,CE =>’1’,R =>’0’,D => sl_arr_RegBank_InOuts (I),Q => sl_arr_RegBank_InOuts (I + 1));结束生成;FFlast:如果I = CONST_PIPE_STAGES – 1生成Last_FF:FDRE通用映射(INIT =>’0’)港口映射(C => IN_CLK,CE =>’1’,R =>’0’,D => sl_arr_RegBank_InOuts (CONST_PIPE_STAGES – 1),Q => OUT_DATA);结束生成;结束生成;
解
这是预期的行为。
ASYNC_REG 属性只能应用于单元格。
在上面的示例中,它应用于连接寄存器实例之间的网络信号,因此被忽略。
对于此特定示例,没有选项通过RTL将其应用于单元格,因为FDRE原语在生成循环内实例化。
如果没有生成块,则可以在单元/实例上应用该属性。
这里的解决方法是通过XDC对单元格应用约束。
没有回复内容