以下是 Versal 自适应 SoC 中不同类型的 DSP 原语。
原语 | 描述 | 用法 |
---|---|---|
DSP58 | 标准整数/定点模式 | 推断或例化 |
DSPFP32 | 浮点模式 | 仅例化 |
DSPCPLX | 复数乘法器 | 推断或例化 |
DSP58
对于 Versal 自适应 SoC,DSP58 原语包含与 UltraScale 器件相同的功能,包括乘法器、加法器、预加法器和寄存器,用于对原语进行完全流水打拍。但是,两者大小不同,并且原语包含其他功能。
大小
对于有符号逻辑,可以按以下方式配置 DSP58:
- 乘法器:27x24
- 加法器:58 位
- 预加法器:27 位
对于无符号逻辑,可以按以下方式配置 DSP58:
- 乘法器:26x23
- 加法器:57 位
- 预加法器:26 位
下图为有符号逻辑示例。
图 1. 具有 58 位加法器和 27 位预加法器的 27x24 乘法器详图
图 2. 具有 58 位加法器和 27 位预加法器的 27x24 乘法器的 Verilog RTL
图 3. 具有 58 位加法器和 27 位预加法器的 27x24 乘法器的 VHDL RTL
点积
DSP58 可以实现点积,该乘法器以 3 个较小的乘法器相加来表示。点积通常用于图像处理滤波器。如需了解更多信息,请参阅 Versal 自适应 SoC DSP 引擎架构手册(AM004)。下图为带有附加加法器的点积示例。
注释: 为了支持点积进行推断,RTL 必须使用有符号逻辑。
图 4. 带附加加法器的点积详图
下图显示了点积的 RTL。
图 5. 点积的 Verilog RTL
图 6. 点积的 VHDL RTL
DSPFP32
DSPFP32 可以执行浮点计算。Vivado 综合不处理这些计算。而是改为提供各种 IP,或者也可以例化 DSPFP32 原语。
DSPCPLX
DSPCPLX 专为逻辑综合而设计,此逻辑是对以下公式的实部和虚部进行求解所必需的:
(a+bi)(c+di)
每个 DSPCPLX 占用 2 个 DSP58 site 位置。DSPCPLX 可以在 RTL 中进行例化,或者也可以通过推断得出。下图显示了 DSPCPLX 的 RTL。
图 7. 用于 DSPCPLX 综合的 Verilog RTL
图 8. 用于 DSPCPLX 综合的 VHDL RTL