基于FPGA IP核的乘法运算

本文是在做无线信号功率统计时,所涉及到的一些知识点。使用AD936X芯片采集到的无线信号最后转换到两路I、Q信号,什么是IQ信号,学通信的应该都知道,我是简单的把它理解为,IQ信号在数值上相等,相位差90°。

在进行功率统计计算时会有i2+q2这样的运算,不仅有乘法还会有累加,然后再求平均,这里就先说乘法,其他的以后再说了。

在软件设计里两个数的相乘可以直接“*”,但是在FPGA的设计里面,如果直接将两个数相乘,会占用大量的LUT逻辑资源,而且会减慢硬件的运算速度。

Verilog实现乘法有多种方法,一是直接使用官方的IP核简单方便,速度还快;二是自己写RTL代码,对于刚接触的人来说还是要花点功夫的。所以这篇文章介绍Xilinx乘法器IP核的配置使用方法、不同配置下资源占用情况,以及和自己设计的RTL多级流水乘法器对比,本文只针对Xilinx Multiplier IP的使用
在这里插入图片描述

Multiplier的配置:对于Multiplier IP核的配置还是比较简单的,个人觉得注意以下几点就行了。Data Type:根据自己输入数据是符号数据还是无符号数据进行选择;Width:输入数据位宽,这个就根据自己的情况设置了。

在这里插入图片描述

在这里插入图片描述

Multiplier Construction:这个选项是来设置Multiplier是用哪种片上资源来实现(DSP48 or LUT),这需要结合你自己的工程考虑了,如果片子里DSP资源比较紧张,那就选择LUT构成乘法器;LUT资源紧张则可考虑用DSP48来实现;

Optimization Options:这个就牵扯到速度与面积的选择了,这个需要根据具体情况具体来说。

其他的都是默认配置。

既然是乘法运算,那么怎么能少了数据呢?

我这里是在网上找的一段程序用matlab生成一组i q数据,程序运行后只有一个i.coe文件,看了下文件里数据是个正弦波,我将i.coe里数据移了几位生成q.coe文件。

clc
close all

fid = fopen('i.coe','w');
fprintf( fid,'memory_initialization_radix=16;\n');%生成索引
fprintf( fid, 'memory_initialization_vector =\n' );

fs = 1e6;
f = 0.1e6;
N = 10000; %10ms
t = (0:N-1)/fs;


for j = 1:1:32767
    i = j*cos(2*pi*f*t);
    q = j*sin(2*pi*f*t);
    
    y = i + 1i*q;
    y_pow = 10*log(mean(abs(y).^2)/2^31);
    
    if(y_pow >= -16.2)
        fprintf('y_pow = %4.2f;j = %d\n',y_pow,j);
        break;
    end
end

i = round(i);
q = round(q);
for k = 1:1:N
    a(k) = q(k);      
    if(a(k) >= 0)
        a(k) = a(k);
    else
        a(k) = a(k) + 65536;
    end
    if(k < N)  
        fprintf(fid,'%x,\n',a(k));
    else
        fprintf(fid,'%x;\n',a(k));
    end
end

fclose(fid);

这里我新建两个ROM,将两组数据存放到ROM中,然后读出来再送到乘法器中做运算。一个工程ROM和DSP都用到了,两个知识点。

工程编译无误之后进行仿真,看看这个乘法运算行不行。这里我使用modelsim进行仿真

在这里插入图片描述

可以明显的看到iq两路数据波形,这里为了有那么个意思,就只将两路IQ数据进行乘法运算

在这里插入图片描述

用计算器算了一下,结果是一样的。

至于multiplier IP中,使用LUTs和Mults两种资源消耗情况的对比实验没有做。
我的FPGA工程:https://download.csdn.net/download/panweiwen0/22780777

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以太网IP核FPGA中的应用广泛,下面将从几个方面介绍: 1. 无线通信:以太网IP核可以用于构建FPGA无线通信设备。通过将以太网IP核与其他通信模块(如无线电模块)集成在一起,可以实现设备之间的无线通信。例如,在无人机或智能家居设备中,通过以太网IP核实现设备的连接和通信,可以实现设备之间的数据传输和控制。 2. 工业自动化:以太网IP核可以应用于工业自动化领域。通过将以太网IP核与其他传感器、执行器等模块结合在一起,可以实现工厂的网络控制和监控系统。以太网IP核可以实现设备之间的数据交换和通信,实现实时的控制和监控。 3. 嵌入式系统:以太网IP核可以用于嵌入式系统中的网络连接。通过将以太网IP核与其他模块(如处理器核)结合在一起,可以构建具有网络通信功能的嵌入式系统。例如,在智能城市中,可以使用以太网IP核实现智能设备之间的通信和数据传输,实现城市的智能化管理和控制。 4. 数据中心:以太网IP核在数据中心中也有着重要的应用。数据中心通常需要大规模的数据交换和传输,以太网IP核可以实现高速的数据传输和路由功能。通过在FPGA中使用以太网IP核,可以实现高性能的数据中心网络设备,提升数据中心的处理能力和吞吐量。 总之,以太网IP核FPGA应用中具有广泛的应用前景。无论是在无线通信、工业自动化、嵌入式系统还是数据中心领域,以太网IP核都能发挥重要的作用,为各种应用提供高效、可靠的网络通信功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

panweiwen0

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值