本节将介绍Cyclone 10 GX器件内DSP块的性能、资源、架构和应用。
Cyclone 10 GX器件中可变精度的DSP块支持定点运算和浮点运算。
(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)支持偏向的舍入支持。
(1)完全硬化的架构,支持乘法、加法、减少法、乘法-加法和乘法-减法;
(2)具有累加功能的乘法,以及动态累加器的复位控制功能;
(3)具有级联求和功能的乘法;
(4)具有级联减法功能的乘法;
(5)复杂的乘法;
(6)直接矢量点积;
(7)脉动FIR滤波器。
Cyclone 10 GX器件中用于定点运算的DSP资源如表1.25所示,用于浮点运算的DSP资源如表1.26所示。
表1.25 Cyclone 10 GX器件中用于定点运算的DSP资源
表1.26 Cyclone 10 GX器件中用于浮点运算的DSP资源
Cyclone 10 GX器件内可变精度DSP块的构成元素如表1.27所示。
表1.27 Cyclone 10 GX器件内可变精度DSP块的构成元素
用于定点算术18×19模式的可变精度的DSP块的内部架构如图1.61所示。
图1.61 用于定点算术18×19模式的可变精度的DSP块的内部结构
用于定点算术27×27模式的可变精度的DSP块的内部架构如图1.62所示。
图1.62 用于定点算术27×27模式的可变精度的DSP块的内部结构
用于浮点算术模式的可变精度的DSP块的内部架构如图1.63所示。
图1.63 用浮点算术模式的可变精度的DSP块的内部结构
本节通过几个设计实例,说明Cyclone 10 GX器件内DSP块的使用方法。
一个带有流水线的有符号数乘法器的Verilog HDL描述如代码清单1-19所示,并且在“Assignment Editor”对话框中进行条件约束,如图1.64所示,将第一级流水线放置在I/O块中实现,而剩余的两级输入流水线在DSP块的两级流水线寄存器中实现,乘法的结果通过DSP内的流水线寄存器输出。
图1.64 “Assignment Editor”对话框
代码清单1-19 一个带有流水线的有符号数乘法器的Verilog HDL描述
带有流水线的有符号乘法器适配后的网表结构如图1.65所示。该设计在底层DSP快内的布局和布线如图1.66所示。
图1.65 带有流水线的有符号乘法器适配后的网表结构
图1.66 带有流水线的有符号乘法器适配后在DSP块内的布局和布线
一个乘和累加运算的Verilog HDL描述如代码清单1-20所示。乘和累加运算映射后的网表结构(注:此处为了便于显示,没有使用适配后的网表结构)如图1.67所示。
图1.67 乘和累加运算映射后的网表结构
代码清单1-20 一个乘和累加运算的Verilog HDL描述
思考与练习1-9: 请读者打开Chip Planner,查看乘和累加运算在两个DSP块内部的布局和布线。
在设计中调用浮点IP核实现浮点数运算的Verilog HDL描述如代码清单1-21所示。浮点运算映射后的网表结构(注:此处为了便于显示,没有使用适配后的网表结构)如图1.68所示。
图1.68 浮点运算映射后的网表结构
代码清单1-21 调用浮点IP核实现浮点数运算的Verilog HDL描述
思考与练习1-10: 请读者打开Chip Planner,查看浮点运算在DSP块内部的布局和布线,并与图1.68给出的结构进行比较。