Vivado综合属性:ASYNC_REG

2019-10-31 00:38:47 浏览数 (3)

在异步跨时钟域场合,对于控制信号(通常位宽为1-bit)常使用双触发器方法完成跨时钟域操作,如下图所示。此时对于图中标记的1号和2号触发器需要使用综合属性ASYNC_REG,有两个目的:

-表明1号触发器接收的数据是来自于与接收时钟异步的时钟域

-表明2号触发器是同步链路上的触发器

从而,保证1号、2号触发器在布局时会被放置在同一个SLICE内,减少线延迟对时序的影响。

实际工程中,1号和2号触发器往往被设计者忘记标记ASYNC_REG,一个好的方法是使用Xilinx提供的XPM_CDC模板,相应的代码如下图所示。可以看到这里只需要实例化xpm_cdc_single即可,无需标记ASYNC_REG(该属性已被标记)。上图显示的电路图即为该代码综合后的结果。

打开综合后的设计,执行如下操作可以验证ASYNC_REG已被标记。

结论

-ASYNC_REG用于单bit采用双或多触发器实现异步跨时钟域的场合,此时所有用于同步的触发器都要标记ASYNC_REG。

-可使用Xilinx提供的XPM_CDC模板避免遗忘标记ASYNC_REG

附:XPM_CDC的位置

上期内容:

Vivado OOC综合方式

下期内容:

Vivado综合属性:MAX_FANOUT

0 人点赞