0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA常用运算模块-乘加器

CHANBAEK 来源:FPGA and ICer 作者:Vuko 2023-05-22 16:17 次阅读

本文是本系列的第三篇,本文主要介绍FPGA常用运算模块-乘加器,xilinx提供了相关的IP以便于用户进行开发使用。

乘加器

乘加器核提供使用DSP片的乘加实现。 它执行两个操作数的乘法,并将全精度乘积加(或减)到第三个操作数,执行P = C +/- A * B的操作。 乘加器模块对有符号或无符号数据进行操作。 该模块可以流水线化。 支持二补符号和无符号操作。 支持从1到52位无符号或2到53位有符号的乘数输入和从1到105位无符号或2到106位有符号的加减操作数输入。 可选时钟启用和同步清除。

乘加器IP在许多配置中比单独的乘和加操作更有效,因为它使用DSP48原语。 可以在许多应用程序中使用这个IP,特别是那些基于多项式算法的应用程序,如FIR和IIR实现。

IP核图示以及端口介绍

wKgZomRrJLaAea4nAAB53770uC4937.jpg

Name I/O Description
A[N:0] Input A输入(乘法操作数1)
B[M:0] Input B输入(乘法操作数2)
C[L:0] Input C输入(加减操作数)
PCIN Input 级联输入
SUBTRACT Input 控制加/减操作(1=减法,0=加法)
CE Input 时钟使能 (高有效)
CLK Input 时钟信号,上升沿有效
SCLR Input 同步复位,高有效
PCOUT Output 输出级联
P[Q:0] Output 输出端口

操作指南

流水操作

乘法器核心考虑了两种不同的延迟路径; 一个是从A和B输入到P输出,另一个是从C/PCIN输入到P输出。 这些延迟被定义为A:B - P延迟和C - P延迟。

这些延迟只能采用两个值:0 表示无延迟或 -1 表示最大/最佳延迟。 如果这两个延迟中的任何一个指定为 -1,则它们都被视为 -1; 对于完全组合的设计,两者都必须设置为 0。

级联的PCIN端口的使用也会影响延迟。

不用级联输入:

wKgaomRrJLaAQyl4AAEITdobYbQ991.jpg

使用级联输入:

wKgaomRrJLaAN2v3AAD2uworIFk779.jpg

下图显示了乘加器的内部结构,在内部相当于引用了一个乘法器和一个加减法器。 从该结构中可以清楚的看出,A:B - P 延时和C - P延时路径。

poYBAGRrJOyAb31mAAHV7sGFnjQ821.png

数据调整

当传递给IP输入时,所有输入都是右对齐的。 必须设置输入的正确 LSB 或 MSB 填充或符号扩展(相当于二进制小数点)。

在乘法加法器中,乘法器输出没有截断或舍入; 这是一个完整的精确结果。 C 输入被添加到乘积中。 下面的例子实现了切片操作的功能。 切片选取输出的0到11位。

wKgaomRrJLaAdrVhAAHW_asJUzk957.jpg

向量相乘的例子

图3-4(单DSP片实现)和图3-5(多DSP片实现)实现了一个简单的矢量乘法。在3-4图中,如果使用单DSP片实现向量相乘,则按照该图示连接进行实现。采用级联操作,将级联是输入输出相互连接。此时不能进行设置C的输入。

wKgaomRrJLaAC43IAAE5csqnZZE182.jpg

在3-5图中,如果使用多DSP片实现,则按照该图示连接进行实现。此时可以进行设置C的输入,级联操作通过连接P和C端相互连接。

wKgZomRrJLaAJ1zcAAE4rW3GYo8596.jpg

乘加器IP配置

在乘加器IP配置界面,可以对输入输出的位宽进行配置,以及相关IP的配置。

wKgZomRrJLaARHOuAAGyvsbZkf4127.jpg

A/B Input Width :设置端口A或者B输入的宽度。有效的范围是1 ~ 52无符号和2 ~ 53有符号。默认值为18。该值在IP中自动设置,可以手动设置。

C Input Width :设置端口C(加/减操作数)输入的宽度。有效的范围是1到105无符号和2到106有符号。默认值为48。该值在IP中自动设置,可以手动设置。

A/B/C Input Type :设置端口A、B 、C数据的类型。0表示有符号,1表示无符号。默认值为0。该值在IP中自动设置,可以手动设置。

Output MSB / Output LSB :设置输出的切片位宽范围。

Use PCIN :当该参数设置为1时,使用PCIN 端口。 PCIN 端口是 加法器/减法器操作数的级联输入端口。设置为0时,PCIN 端口为 忽略。设置为 1 时,C 输入宽度限制为 48 位。

Sync Control CE Priority :此参数控制 SCLR和CE信号的优先级当该信号为0时,Sync Control CE Priority。当该信号为1时,SCLR 仅在 CE 为高电平时有效。这默认值为0。

A:B - P Latency : A、B端口到输出端口P的时延。 取值如下: -1, 0。 默认值为-1。

C - P Latency :从 C 或 PCIN 端口到输出端口 P 的延迟。 取值如下: -1, 0。 默认值为-1。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    544

    文章

    7687

    浏览量

    344427
  • FPGA
    +关注

    关注

    1603

    文章

    21331

    浏览量

    593336
  • Xilinx
    +关注

    关注

    70

    文章

    2121

    浏览量

    119406
  • IP核
    +关注

    关注

    4

    文章

    317

    浏览量

    49049
  • 乘加器
    +关注

    关注

    0

    文章

    4

    浏览量

    5972
收藏 人收藏

    评论

    相关推荐

    基于FPGA的实时互相关运算器

    600m,则每一时刻需要计算256个互相关值。如果窗口T取32,采样模块的采样频率F设为1MHz,互相关运算器运算能力需要达到F×T×R=500kHz×32×256=4GHz复数
    发表于 09-19 09:25

    基于改进的CORDIC算法的FFT复及其FPGA实现

    ,所以CORDIC算法的移位、加减法运算和流水线结构更容易在FPGA上实现。本文在Altera公司的QuartusⅡ7.2软件环境下使用VHDL,利用上述各种算法设计了16 bit宽的FFT复
    发表于 07-11 21:32

    fpga实现滤波

    本帖最后由 eehome 于 2013-1-5 10:03 编辑 fpga实现滤波在利用FPGA实现数字信号处理方面,分布式算法发挥着关键作用,与传统的
    发表于 08-11 18:27

    fpga实现滤波

    fpga实现滤波fpga实现滤波在利用FPGA实现数字信号处理方面,分布式算法发挥着关键作用,与传统的
    发表于 08-12 11:50

    fpga中定点乘法器设计(中文)

    ………………………………………………………………… 208、 运算 …………………………………………………………………………………… 249、 设计示例 1—— 8 位、迭代
    发表于 08-12 11:59

    stm32f407进行一次32*32的运算需要多少ns

    官方给出的只需要一个指令周期,按这个说也就是6ns。而我自己测试的是20多ns,测试方法是进行1000次运算后把某个引脚拉低,用示波器观察。请问有什么好的方法测试吗,或者有测试出需要一个指令周期的。希望有高人指点
    发表于 04-20 16:47

    机器学习处理单元支持浮点的运算

    。  Achronix为了解决这一大困境,创新地设计了机器学习处理(MLP)单元,不仅支持浮点的运算,还可以支持对多种定浮点数格式进行拆分。
    发表于 11-26 06:42

    如何利用FPGA累加的快速算法设计出高速的FIR数字滤波

    本文利用FPGA累加的快速算法,可以设计出高速的FIR数字滤波,使FPGA在数字信号处理方面有了长足的发展。
    发表于 05-07 06:31

    基于51单片机的44计算有哪些功能

    由STC89C52单片机+44按键模块+LCD1602液晶显示屏+电源构成具体功能:利用输入采用4×4矩阵键盘,可以进行、减、、除等几种数字
    发表于 07-15 07:41

    基于51单片机的54计算设计

    由STC89C52单片机+54按键模块+LCD1602液晶显示屏+电源构成具体功能:利用输入采用5×4矩阵键盘,可以进行、减、、除等十几种数字
    发表于 07-21 08:41

    如何实现基于FPGA的电子计算设计

    设计由计算部分、显示部分和输入部分四个部分组成,计算以及存储主要用状态机来实现。显示部分由六个七段译码管组成,分别来显示输入数字,输入部分采用4*4矩阵键盘,由0-9一共十个数字按键,加减乘除四个运算符按键,一个等号按键组成的。通过外部的按键可以完成、减、
    发表于 11-11 08:31

    FPGA常用运算模块-加减法器和乘法器

    本文是本系列的第二篇,本文主要介绍FPGA常用运算模块-加减法器和乘法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:13 2827次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>常用</b><b class='flag-5'>运算</b><b class='flag-5'>模块</b>-加减法器和乘法器

    FPGA常用运算模块-除法器

    本文是本系列的第四篇,本文主要介绍FPGA常用运算模块-除法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:20 2156次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>常用</b><b class='flag-5'>运算</b><b class='flag-5'>模块</b>-除法器

    FPGA常用运算模块-复数乘法器

    本文是本系列的第五篇,本文主要介绍FPGA常用运算模块-复数乘法器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-22 16:23 1418次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>常用</b><b class='flag-5'>运算</b><b class='flag-5'>模块</b>-复数乘法器

    FPGA常用运算模块-DDS信号发生器

    本文是本系列的第六篇,本文主要介绍FPGA常用运算模块-DDS信号发生器,xilinx提供了相关的IP以便于用户进行开发使用。
    的头像 发表于 05-24 10:37 4142次阅读
    <b class='flag-5'>FPGA</b><b class='flag-5'>常用</b><b class='flag-5'>运算</b><b class='flag-5'>模块</b>-DDS信号发生器