FPGA教程系列-Vivado IP核之乘法器解析

FPGA教程系列-Vivado IP核之乘法器解析

本文主要介绍vivado中的乘法器的IP核,quartus内的IP核其实也一样,大同小异。

概念

乘法器(Multiplier)是一种数字电路模块,用于实现两个二进制数的乘法运算。它是现代数字系统(如CPU、DSP、FPGA等)中不可或缺的核心算数单元,广泛应用于信号处理、图像处理、加密算法等领域。再不懂,就去问AI。

乘法器结构

并行乘法器:该乘法器通过 A 和 B 两条输入总线接收数据,并计算这两个值的乘积。提供多种实现方式,允许在切片逻辑、专用乘法器资源与最高可达时钟频率之间进行权衡。大白话,两个数相乘。

恒定系数乘法器:该乘法器通过 A 输入总线接收数据,并将其与用户定义的常数值相乘。乘法器可由分布式内存、块内存结合切片逻辑,或由嵌入式乘法器构成。常数乘以一个变量。

输入选项

选择所需操作数的位宽,以及操作数表示的是二进制补码有符号数据还是无符号数据。

  • A 数据类型:为操作数 A 选择有符号或无符号输入。在 IP 集成器中,该参数会自动更新。
  • A 位宽:确定操作数 A 的位宽(以比特为单位)。在 IP 集成器中,该参数会自动更新。
  • B 数据类型:为操作数 B 选择有符号或无符号输入。在 IP 集成器中,该参数会自动更新。
  • B 位宽:确定操作数 B 的位宽(以比特为单位)。在 IP 集成器中,该参数会自动更新。

并行乘法器选项

乘法器结构:允许选择使用查找表(LUT) 还是专用乘法器原语 来实现核心。

优化选项:

  • DSP48E1 片:对于位宽不超过 47×47 的乘法器,可选择速度或面积优化。速度优化会充分利用乘法器原语,提供最高性能的实现;面积优化则混合使用切片逻辑和专用乘法器原语,在仍保证合理性能的同时,减少对基于 DSP 片的乘法器资源的占用。对于位宽超过 47×47 的情况,只允许进行速度优化。
  • 基于查找表(LUT)的乘法器:面积优化可在牺牲可达时钟频率的前提下,降低延迟和 LUT 使用量。当两个输入操作数均为无符号且位宽均小于 16 位时,面积优化最为有效。

恒定系数乘法器选项

  • 系数:在所示范围内输入系数的整数值。支持正、负系数。Vivado IDE 会根据输入的整数常量自动配置常量(B)端口的有符号/无符号类型;用户可另行选择 A 端口为有符号或无符号。
  • 存储器选项:选择使用分布式存储器、块存储器,还是 DSP 片来实现该乘法器。

输出控制

Vivado IDE 会根据输入操作数的位宽,自动将输出积位宽配置为可表示完整乘积。

  • 使用自定义输出位宽:若应用只需完整乘积的一部分,可通过设置 MSB 与 LSB 范围来自定义乘积比特数。
  • 使用对称舍入:对于基于 DSP 片的并行乘法器,可在需要时按"向无穷舍入"方式进行对称舍入,其行为与 MATLAB ® 的 round 函数相同。此时乘法器必须恰好适配一个 DSP 片,且乘积的 LSB 必须位于全范围乘积宽度之内。

流水线与控制信号:

流水线级数:选择该乘法器实例的流水线深度。右侧标签会给出为获得最高性能而应采用的最佳流水线级数提示。核心假设所有输入均已寄存。

  • 流水线级数 = 0 表示核心为组合逻辑。
  • 流水线级数 = 1 表示仅寄存核心输出。
  • 流水线级数 > 1 时,会在输入与输出之间插入寄存器,直至达到最佳流水线级数值。增加寄存器可提高可达时钟速度,但会增加延迟。
  • 若将流水线级数设为大于最佳值,则会将核心完全流水线化,并在输出端添加基于 SRL16 的移位寄存器以实现额外延迟。
  • 时钟使能:选择是否为设计中的所有寄存器提供时钟使能控制。(这两个应该会用到)
  • 同步清零:选择是否为设计中的所有寄存器提供同步复位控制。(这两个应该会用到)
  • SCLR/CE 优先级:当同时存在 SCLR 与 CE 引脚时,可设定二者的优先级。让 SCLR 覆盖 CE 时,使用的资源最少,性能最佳。

根据需要修改IP核的内容,大概率用到的功能是位宽,深度以及是否同步等,其他不懂的可以用默认的就可以了。如果后边有更复杂的乘法器再进行学习。

相关推荐
材料科学研究4 天前
先到先得!深度学习有限元仿真!
深度学习·cnn·abaqus·仿真·有限元
沐欣工作室_lvyiyi12 天前
用于电动汽车的永磁同步电机调速系统建模与仿真(论文+)
matlab·仿真·永磁同步电机·无传感器
康谋自动驾驶12 天前
如何闭环自动驾驶仿真场景,实现从“重建”到“可用”?
自动驾驶·仿真·建模·3dgs
Altair澳汰尔21 天前
新闻速递丨Altair 与 Gordon Murray Group 携手开发创新超级轻量化平台
汽车·仿真·cae·hyperworks·汽车轻量化·c123
尤利乌斯.X1 个月前
复杂网络仿真从入门到精通:0 学习路线
网络·学习·matlab·仿真·复杂网络
凌盛羽1 个月前
将Gowin高云FPGA仿真库导入Modelsim中并编译
单片机·fpga开发·仿真·modelsim·gowin
熊猫_豆豆1 个月前
MATLAB画出湖面波纹相遇所形成的现象
开发语言·matlab·仿真
广州智造1 个月前
Altair SimLab的几何清理(自带学习资料下载)
软件工程·几何·仿真·软件·altair·hyperworks·simlab
康谋自动驾驶2 个月前
告别数月等待:数字孪生场景生成从此进入“日级”时代
汽车·测试·数字孪生·仿真·建模·3dgs