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
    +关注

    关注

    552

    文章

    7961

    浏览量

    348065
  • FPGA
    +关注

    关注

    1625

    文章

    21648

    浏览量

    601435
  • Xilinx
    +关注

    关注

    71

    文章

    2161

    浏览量

    120920
  • IP核
    +关注

    关注

    4

    文章

    326

    浏览量

    49398
  • 乘加器
    +关注

    关注

    0

    文章

    4

    浏览量

    6002
收藏 人收藏

    评论

    相关推荐

    基于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

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

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

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

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

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

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

    基于流水线重构技术的16x16位的设计

    比较了几种16x16 位的实现方法,给出了一种嵌入于微处理的基于流水线重构技术的16x16 位
    发表于 06-22 09:04 12次下载

    HT MCU 、减、、除法

    HT MCU 、减、、除法文件编码:HA0014s简介:本程序包含八位、十六位、二十四位及三十二位定点数据的基本运算。基本的运算包括:加法(有符号、无符号)、减法
    发表于 03-26 08:34 21次下载

    模拟、除以及平方运算电路

    模拟、除以及平方运算电路
    发表于 04-09 10:28 2172次阅读
    模拟<b class='flag-5'>乘</b>、除以及平方<b class='flag-5'>运算</b>电路

    运算器,运算器的作用和原理是什么?

    运算器,运算器的作用和原理是什么? 运算器:arithmetic unit,计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括
    发表于 03-24 17:01 3.2w次阅读

    FPGA浮点数转化为定点数方法

    FPGA在常规运算时不能进行浮点运算,只能进行定点整型运算,在处理数据的小数
    的头像 发表于 10-13 16:23 4664次阅读

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

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

    基于FPGA的计算设计

    本文通过FPGA实现8位十进制数的、减、、除运算,通过矩阵键盘输入数据和运算符,矩阵键盘的布局图如下所示。该计算
    的头像 发表于 10-24 14:28 283次阅读
    基于<b class='flag-5'>FPGA</b>的计算<b class='flag-5'>器</b>设计