1.5 DSP块
本节将介绍Cyclone 10 GX器件内DSP块的性能、资源、架构和应用。
1.5.1 DSP块特性
Cyclone 10 GX器件中可变精度的DSP块支持定点运算和浮点运算。
1.定点运算
(1)高性能、功耗优化和完全寄存的乘法操作;
(2)18位和27位字长;
(3)每个DSP块有两个18×19的乘法器或27×27的乘法器;
(4)内建加法、减法和64位双累加寄存器,用于组合乘法结果;
(5)当禁止预加法器时,级联19位或27位,当预加法器用于生成滤波器应用的抽头延迟线时级联18位;
(6)级联64位输出总线,将输出结果从一个块传到下一个块,而无须外部逻辑支持;
(7)硬件预加法器支持19位和27位模式,用于对称滤波器;
(8)用于实现滤波器的18位和27位模式的内部系数寄存器组;
(9)具有分布式输出加法器的 18 位和 27 位脉动有限冲激响应(Finite Impulse Response,FIR)滤波器;
(10)支持偏向的舍入支持。
2.浮点运算
(1)完全硬化的架构,支持乘法、加法、减少法、乘法-加法和乘法-减法;
(2)具有累加功能的乘法,以及动态累加器的复位控制功能;
(3)具有级联求和功能的乘法;
(4)具有级联减法功能的乘法;
(5)复杂的乘法;
(6)直接矢量点积;
(7)脉动FIR滤波器。
1.5.2 DSP块资源
Cyclone 10 GX器件中用于定点运算的DSP资源如表1.25所示,用于浮点运算的DSP资源如表1.26所示。
表1.25 Cyclone 10 GX器件中用于定点运算的DSP资源
表1.26 Cyclone 10 GX器件中用于浮点运算的DSP资源
1.5.3 DSP块架构
Cyclone 10 GX器件内可变精度DSP块的构成元素如表1.27所示。
表1.27 Cyclone 10 GX器件内可变精度DSP块的构成元素
用于定点算术18×19模式的可变精度的DSP块的内部架构如图1.61所示。
用于定点算术27×27模式的可变精度的DSP块的内部架构如图1.62所示。
用于浮点算术模式的可变精度的DSP块的内部架构如图1.63所示。
1.5.4 DSP块应用
本节通过几个设计实例,说明Cyclone 10 GX器件内DSP块的使用方法。
1.带有流水线有符号乘法的实现
一个带有流水线的有符号数乘法器的 Verilog HDL 描述如代码清单 1-19 所示,并且在“Assignment Editor”对话框中进行条件约束,如图1.64所示,将第一级流水线放置在I/O块中实现,而剩余的两级输入流水线在 DSP 块的两级流水线寄存器中实现,乘法的结果通过DSP内的流水线寄存器输出。
图1.61 用于定点算术18×19模式的可变精度的DSP块的内部结构
图1.62 用于定点算术27×27模式的可变精度的DSP块的内部结构
图1.63 用浮点算术模式的可变精度的DSP块的内部结构
图1.64 “Assignment Editor”对话框
代码清单1-19 一个带有流水线的有符号数乘法器的Verilog HDL描述
带有流水线的有符号乘法器适配后的网表结构如图 1.65 所示。该设计在底层 DSP 快内的布局和布线如图1.66所示。
图1.65 带有流水线的有符号乘法器适配后的网表结构
图1.66 带有流水线的有符号乘法器适配后在DSP块内的布局和布线
2.乘和累加运算的实现
一个乘和累加运算的 Verilog HDL 描述如代码清单 1-20 所示。乘和累加运算映射后的网表结构(注:此处为了便于显示,没有使用适配后的网表结构)如图1.67所示。
图1.67 乘和累加运算映射后的网表结构
代码清单1-20 一个乘和累加运算的Verilog HDL描述
思考与练习1-9:请读者打开Chip Planner,查看乘和累加运算在两个DSP块内部的布局和布线。
3.浮点运算的实现
在设计中调用浮点IP核实现浮点数运算的Verilog HDL描述如代码清单1-21所示。浮点运算映射后的网表结构(注:此处为了便于显示,没有使用适配后的网表结构)如图 1.68所示。
图1.68 浮点运算映射后的网表结构
代码清单1-21 调用浮点IP核实现浮点数运算的Verilog HDL描述
思考与练习 1-10:请读者打开 Chip Planner,查看浮点运算在 DSP 块内部的布局和布线,并与图1.68给出的结构进行比较。