复数乘法器的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. 【SpringCloud】Hystrix-实例
  2. 一张图清晰明了将Java面向对象全部搞定!
  3. AAC音频基础知识及码流解析
  4. fatal: unable to access ‘https://github.com/PanJiaChen/vue-element-admin.git/‘: OpenSSL SSL_read: Co
  5. jzoj1403-渡河【SPFA】
  6. webpack gulp grunt 简单介绍
  7. php js绝对路径,javascript将相对路径转绝对路径示例_基础知识
  8. windows程序设计之编写应用程序,当按下鼠标左键并在窗口中移动时,窗口中鼠标所经历的个点颜色设置为黑色
  9. Java入门基础 安装并配置Java软件和JDK
  10. 渗透测试实战分享—从app到网站沦陷
  11. Theano学习二:内存、变量、函数、自动微分、循环、scan以及分析调试等基础知识
  12. MPU6050误差分析
  13. 漫漫人生录 | 一个月薪 120000 的[ 北京 ] 程序员的真实生活
  14. 概述纵横制电话交换机
  15. 张宏 :移动机器人全局定位技术与方法是啥?道翰天琼认知智能机器人平台API接口大脑为您揭秘。
  16. MATLAB导出coe文件,matlab生成coe文件
  17. 【毕业设计】基于深度学习的图像超分辨率重建 - opencv python cnn
  18. python淘宝_python实现淘宝购物系统
  19. #define宏加括号和不加括号的区别
  20. 技术达人博客网址大全

热门文章

  1. 多步相移法获取绝对相位(多频外差法)
  2. SOA标准化国际论坛即将在京召开
  3. RJ485接口线序及适用环境
  4. 找到一个TWAIN扫描控件:Dynamic TWAIN ActiveX 3.0
  5. JavaScript之form表单提交前验证的onSubmit事件
  6. 组装计算机的配件2016,2016组装电脑装机教程:第六代i7-6700/GTX960电脑组装教程图解...
  7. python项目管理岗位职责_项目实施工程师岗位的工作职责表述
  8. 平面设计PS基础入门图层教程
  9. MATLAB中readmatrix函数用法
  10. 自然语言处理的21个基本概念