数字信号处理-03- FPGA常用运算模块-乘加器

简介: 数字信号处理-03- FPGA常用运算模块-乘加器

写在前面


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

乘加器


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

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

IP核图示以及端口介绍


image.png

image.png

操作指南


流水操作


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

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

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

不用级联输入:

image.png

使用级联输入:

image.png

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

image.png

数据调整


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

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

image.png

向量相乘的例子


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

image.png

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

image.png

乘加器IP配置


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

image.png

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。

References


  1. PG192
目录
相关文章
|
5天前
|
算法 物联网 异构计算
基于FPGA的4FSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的4FSK调制解调系统的Verilog实现,包括高斯信道模块和误码率统计模块,支持不同SNR设置。系统在Vivado 2019.2上开发,展示了在不同SNR条件下的仿真结果。4FSK调制通过将输入数据转换为四个不同频率的信号来提高频带利用率和抗干扰能力,适用于无线通信和数据传输领域。文中还提供了核心Verilog代码,详细描述了调制、加噪声、解调及误码率计算的过程。
31 11
|
14天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的1024QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的1024QAM调制解调系统的仿真与实现。通过Vivado 2019.2进行仿真,分别在SNR=40dB和35dB下验证了算法效果,并将数据导入Matlab生成星座图。1024QAM调制将10比特映射到复数平面上的1024个星座点之一,适用于高数据传输速率的应用。系统包含数据接口、串并转换、星座映射、调制器、解调器等模块。Verilog核心程序实现了调制、加噪声信道和解调过程,并统计误码率。
35 1
|
1月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的64QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了基于FPGA的64QAM调制解调通信系统的设计与实现,包括信号生成、调制、解调和误码率测试。系统在Vivado 2019.2中进行了仿真,通过设置不同SNR值(15、20、25)验证了系统的性能,并展示了相应的星座图。核心程序使用Verilog语言编写,加入了信道噪声模块和误码率统计功能,提升了仿真效率。
48 4
|
1月前
|
存储 算法 数据处理
基于FPGA的8PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本系统在原有的8PSK调制解调基础上,新增了高斯信道与误码率统计模块,验证了不同SNR条件下的8PSK性能。VIVADO2019.2仿真结果显示,在SNR分别为30dB、15dB和10dB时,系统表现出不同的误码率和星座图分布。8PSK作为一种高效的相位调制技术,广泛应用于无线通信中。FPGA凭借其高度灵活性和并行处理能力,成为实现此类复杂算法的理想平台。系统RTL结构展示了各模块间的连接与协同工作。
52 16
|
1月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于FPGA实现16QAM调制解调通信系统,使用Verilog语言编写,包括信道模块、误码率统计模块。通过设置不同SNR值(如8dB、12dB、16dB),仿真测试系统的误码性能。项目提供了完整的RTL结构图及操作视频,便于理解和操作。核心程序实现了信号的生成、调制、信道传输、解调及误码统计等功能。
45 3
|
17天前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的256QAM基带通信系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本文介绍了256QAM调制解调算法的仿真效果及理论基础。使用Vivado 2019.2进行仿真,分别在SNR为40dB、32dB和24dB下生成星座图,并导入Matlab进行分析。256QAM通过将8比特数据映射到复平面上的256个点,实现高效的数据传输。Verilog核心程序包括调制、信道噪声添加和解调模块,最终统计误码率。
29 0
|
1月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的16PSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
### 简介 本项目采用VIVADO 2019.2进行了十六进制相位移键控(16PSK)算法仿真,结果显示,在SNR=30dB时效果为Tttttttttttttt12,在SNR=20dB时效果为Tttttttttttttt34。系统RTL结构如Tttttttttttttt555555所示。16PSK是一种高效的相位调制技术,能在每个符号时间内传输4比特信息,适用于高速数据传输。其工作原理包括将比特流映射到16个相位状态之一(Tttttttttttttt777777),并通过匹配滤波和决策进行解调。具体Verilog核心程序见完整代码。
37 1
|
2月前
|
算法 测试技术 开发工具
基于FPGA的QPSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
该系统在原有的QPSK调制解调基础上,新增了高斯信道和误码率统计模块,验证了不同SNR条件下的QPSK误码性能。系统包括数据生成、QPSK调制与解调等模块,使用Vivado 2019.2进行仿真,展示了SNR分别为15dB、10dB、5dB和1dB时的误码情况。系统采用Verilog语言实现,具有高效、可靠的特点。
51 3
|
2月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的2ASK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本项目基于Vivado 2019.2实现了2ASK调制解调系统,新增高斯信道及误码率统计模块,验证了不同SNR条件下的ASK误码表现。2ASK通过改变载波振幅传输二进制信号,其调制解调过程包括系统设计、Verilog编码、仿真测试及FPGA实现,需考虑实时性与并行性,并利用FPGA资源优化非线性操作。
76 0
|
3月前
|
算法 数据安全/隐私保护 异构计算
基于FPGA的BPSK调制解调系统,包含testbench,高斯信道模块,误码率统计模块,可以设置不同SNR
本系统基于Vivado2019.2,在原有BPSK调制解调基础上新增高斯信道及误码率统计模块,可测试不同SNR条件下的误码性能。仿真结果显示,在SNR=0dB时误码较高,随着SNR增至5dB,误码率降低。理论上,BPSK与2ASK信号形式相似,但基带信号不同。BPSK信号功率谱仅含连续谱,且其频谱特性与2ASK相近。系统采用Verilog实现,包括调制、加噪、解调及误码统计等功能,通过改变`i_SNR`值可调整SNR进行测试。
51 1

热门文章

最新文章

下一篇
无影云桌面