Intel FPGA权威设计指南:基于Quartus Prime Pro 19集成开发环境
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

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给出的结构进行比较。