复位编码示例:含同步和异步复位的乘法器流水线寄存器 - 2023.2 简体中文

Versal 自适应 SoC 硬件、IP 和平台开发方法指南 (UG1387)

Document ID
UG1387
Release Date
2023-11-15
Version
2023.2 简体中文

在此示例中,流水线寄存器的逻辑内混用了以专用 DSP 资源为目标的同步和异步复位,导致将乘积累加映射到 DSP 原语的效果欠佳。下图显示了基于 16x16 位 DSP58 的乘法器,该乘法器使用含异步复位的输入流水线寄存器和含同步复位的乘法器输出寄存器。综合的输入阶段必须使用常规互连结构寄存器。含同步复位的乘法器寄存器打包到 DSP 输出(DSP58 M 寄存器和 P 寄存器)内。这样总共就能得到 32 个额外的互连结构寄存器,且生成的 DSP58 配置为:AREG/BREG=0,MREG=1,PREG=1。

图 1. 含流水线寄存器的乘法器(同步和异步复位)

为了充分利用现有 DSP 原语功能,您可以重写前例,将流水线寄存器上混用的异步复位和同步复位更改为所有流水线寄存器采用单一类型的复位。下图显示了如何在 RTL 中更改复位定义,使乘法器逻辑周围的所有流水线寄存器都使用单一类型的复位(同步复位或异步复位)。完成此更改后,综合即可充分利用 DSP58 内部寄存器(AREG/BREG=1,MREG=1,PREG=1)。

图 2. 针对围绕乘法器逻辑的所有流水线阶段将混用同步和异步复位更改为采用单一类型的复位