复数乘法器的ip核可在下图的​​​​​中找到

ip核的输入配置和输出配置如下图所示

当我们在选择multplier construction的Use LUTs选项时,选择的是三次乘法的算法,相比于四次乘法的选项用的资源会少一点,代价是要额外占用一些数据表。

输出的实部和虚部间有空位的原因如下图所示:

协议中TDATA的结构组成

配置成功之后,就可以点击generate生成ip核了!

随后在IP sources可以查看其verilog例化(怎么用verilog调用该IP核),如下图所示。

接下来我们就可以进行代码的编写了 ,代码通过add sources来添加

以下为顶层模块的代码

/*该模块用于计算两个复数相乘的结果,调用了vivado自带
的math functions的ip核。其中输入的虚部和实部均为16位
位宽,输出的虚部和实部均为33位位宽,支持以补码形式输
入的负数进行计算*/module top(
input clk,
input [15:0] re_a,im_a,re_b,im_b, //两个复数由此输入,分别输入其实部和虚部,re(real)为实部,im(imaginary)为虚部
output [32:0] re_result,im_result);//33位的输出,为了防止溢出wire[79:0] result;//80位位宽的输出,其中第34位到40位和74到80位都是不使用的//取出结果中的实部和虚部
assign im_result = result[72:40];
assign re_result = result[32:0];//调用complex multiplier的ip核进行复数乘法计算
cmpy complex_multiplier1(.aclk(clk),                   // 输入时钟信号.s_axis_a_tvalid(1'b1),       // 数值a的有效信号,为1时传递信号 .s_axis_a_tdata({im_a,re_a}), // 第一个输入的复数,并将数值a的虚部和实部整合成一个32位位宽的复数.s_axis_b_tvalid(1'b1),       // 数值b的有效信号,为1时传递信号 .s_axis_b_tdata({im_b,re_b}), // 第二个输入复数.m_axis_dout_tvalid(),        //输出有效信号,此处选择不接.m_axis_dout_tdata(result)    // output wire [79 : 0] m_axis_dout_tdata
);endmodule

以下是测试代码

`timescale 1ns / 1psmodule testbench();reg [15:0] re_a,im_a,re_b,im_b;
reg clk;
wire [32:0]re_result, im_result;initial       beginre_a = 16'b0000_0000_0000_0001;//其中_是位分隔符im_a = 16'b0000_0000_0000_0001;re_b = 16'b0000_0000_0000_0001;im_b = 16'b1111_1111_1111_1110;//输入负数时要采用补码clk  = 0;endtop u1(clk,re_a,im_a,re_b,im_b,re_result,im_result);//调用编写好的top模块进行测试alwaysbegin#10 clk = ~clk;//每10ns翻转一次endendmodule

vivado的代码是实时编译的,系统会自动检测哪一行代码有错并在旁边标红,所以添加完后直接点击simulation中的behavioral simulation。

仿真结果如下图所示

可以看出(1+1j)×(1-2j)的结果确实为3-j

这是本人第一次编写博客,由于经验不足肯定难免会有各种纰漏,如果我有什么不对的地方还请各位网友多多在评论区指正!

参考文献:vivado的复数乘法器ip核详细信息https://www.xilinx.com/content/dam/xilinx/support/documentation/ip_documentation/cmpy/v6_0/pg104-cmpy.pdf

vivado中复数乘法器的ip核调用及其仿真的详细介绍相关推荐

  1. vivado中复数乘法器IP核使用小结

    vivado中复数乘法器IP核使用小结 添加ip核 进入工程,点击IP Catalog,在弹出的窗口中点击数学功能–math functions,选择multipliers–complex multi ...

  2. Quartus基本IP核调用及仿真

    文章目录 一.PLL PLL介绍 PLL的IP核调用 PLL仿真 二.RAM RAM介绍 RAM的IP核调用(单时钟) RAM仿真(单时钟) RAM的IP核调用(双时钟) RAM仿真(双时钟) 三.F ...

  3. Xilinx Vivado复数乘法器Complex Multiplier IP核调用及其仿真

    Complex Multiplier IP核的使用,尤其是输出数据的截位到底怎么弄,我感觉官方文档PG104写的不清楚.我个人在网上也没找到好的讲解文章,就自己琢磨了下,然后写成文档记录在此,方便将来 ...

  4. FFT IP核调用与仿真之FFT数学分析

    对于FFT这个IP核,我其实对它真的是又爱又恨,因为它真的耗费了我太多时间,但是随着研究的深入,遇到的问题一点点给消化解决,终于不用带着问题睡觉了,哈哈,有时候真的挺佩服自己的,遇到不懂的,不了解的, ...

  5. FFT IP核调用与仿真之SCALE压缩因子设置

    关于FFT IP核的配置,网上有很多相关的资料可以参考,但是唯独涉及到scaled压缩因子设置这个参数,资料却非常匮乏,这是个什么参数,应该整么设置,设置后对结果输出会有什么影响,整样才能知道它设置的 ...

  6. 弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩

    弟中弟级,基于Vivado的IP核封装以及仿真调用,FPGA入门小玩 IP核:知识产权核,指某一方提供的.形式为逻辑单元的可重用模块.IP核通常已经通过了设计验证,设计人员以IP核为基础进行设计,可以 ...

  7. 最强 Verilog 中 IP核 调用实现及思想

    写在前面:无论是在 ISE 还是 Vivado 中,关于 IP核 的调用都是非常方便的,所以对于初学者来说最关键的不是在 IP Catalog 中设置相关的 IP核 参数,而是在生成相关的 IP核 后 ...

  8. Xilinx DDR3 —— MIG IP核的读写仿真(APP接口)

    在上一篇中Xilinx DDR3 -- MIG IP核的配置(APP接口),已经观看了Xilinx官方提供的MIG IP核读写例程仿真波形,本着学习的目的,本篇开始自己编写MIG IP核读写程序,用于 ...

  9. Xilinx Vivado定制IP核调用和除法器IP核的latency和resource分析

    加入定制的乘法IP核,必须在sources右键,用Add Directories加入才完整 加入文件夹后如下图: 测试代码与主程序模块连接端口初学者容易出现错误 输入端口:从模块内部来讲,输入端口必须 ...

最新文章

  1. c语言分手代码大全,C语言代码大全
  2. ajax的数据库,AJAX 数据库
  3. java中改变字符串编码
  4. terminal 常用 快捷键
  5. 时间相减得到小时数 java_【高中数学】错位相减公式求差比数列的和
  6. 一根网线有这么多“花样”,你知道吗?
  7. python appium自动化测试框架unittest_Appium基于Python unittest自动化测试 自动化测试框架 -- PO并生成html测试报告...
  8. 我的XX游戏面试之旅
  9. 【note】Java程序设计基础第五版(下)
  10. DataFormatString 转
  11. illustrator cs5 2学习笔记
  12. 知识图谱(关系网络)概念及常用算法
  13. 【总结】1361- package.json 与 package-lock.json 的关系
  14. 学习方法推荐——时间管理
  15. PacBio和NanoPore两种三代测序仪的比较
  16. 2023基于微信小程序的校园第二课堂活动报名系统+后台管理系统(Springboot+mysql)-JAVA.VUE(论文+开题报告+运行)
  17. 架构设计--软件工程
  18. CodeSign重签名
  19. 网站 SEO 处理 ?
  20. Druid学习笔记(2)Druid架构剖析

热门文章

  1. 相位解包裹(六)质量图导向法quality guide phase unwrapping(QGPU)
  2. Provisioning Services 7.8 入门系列教程之五 使用Provisioning Services控制台
  3. 流量拷贝-gor,压测
  4. 删除的文件怎么恢复?恢复方法在这里(支持Win和Mac)
  5. c语言assert_param,STM32断言机制assert_param()宏定义
  6. SBEC016智能电池管理方案
  7. 阿里云服务器域名解析教程 ?
  8. C语言实现泛型 C11关键字_Generic
  9. php体验课心得体会,【授课心得】_授课心得体会(精选5篇)
  10. 红蓝对抗-攻防演练中红队如何识别蜜罐保护自己