• 实验目的

Verilog实现乘法用多种方法,可以直接使用官方现成的IP,也可以自己写RTL代码。本系列研究Xilinx乘法器IP核的配置使用方法、不同配置下资源占用情况,以及和自己设计的RTL多级流水乘法器对比,本文只针对Xilinx Multiplier IP的使用情况和不同配置下资源占用情况进行分析,下一篇文章将对比不同流水情况下的情况。

实验代码及测试代码:https://download.csdn.net/download/flypassion/11465193

  • 实验知识点

1、Multiplier的配置:对于Multiplier IP核的配置还是比较简单的,个人觉得注意以下几点就行了。

Data Type:根据自己输入数据是符号数据还是无符号数据进行选择;

Width:输入数据位宽,这个就根据自己的情况设置了;

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

Optimization Options:这个就牵扯到速度与面积的选择了,这个需要根据具体情况具体来说,本实验没有仔细研究,可参考IP的使用说明书。

Output Product Range:这个可以默认就行,我觉得官方应该比你考虑的周到。

Pipeline Stages:为了提高性能,这个值最好>1,本实验会研究不同配置下的资源及和自己编写的流水代码做对比。

  • 实验1: Multiplier Construction:Use Mults

1.IP配置情况:

Data Type:signed

Width:16

Optimization Options:Speed optimization

Output Product Range:31

Pipeline Stages:1

2.代码仿真

代码端口:

仿真波形:

其中波形标红:o_data是IP核输出结果;result是仿真代码计算的结果,通过打印信息可以看出IP输出结果和仿真结果一直。

资源使用情况:综合后的结果

  • 实验2: Multiplier Construction:Use LUTs

1.IP配置情况:同上

2.代码仿真:同上

代码端口:同上

仿真波形:

资源使用情况:综合后的结果

  • 实验总结

1.使用DSP48和LUT构成乘法器计算在基本配置相同的情况下结果相同;

2.在使用Verilog乘法计算符(*)时,一定得定义清楚输入数据是signed还是unsigned,因为不指明的话默认是unsigned型乘法。

3.仿真时initial块中的代码是按顺序执行的,每行代码执行完才进行下一行的执行,虽然时间差很小(可忽略)但是一定得小心,如果不注意就会出现错误的结果。

4.仿真中一般都使用阻塞复制(每行代码执行都会占用有很小的时间),但是为了实现打一拍的作用可以使用非阻塞复制。

仿真代码中需要注意的部分:

Verilog乘法的实现——Xilinx Multiplier IP研究(1)相关推荐

  1. (50)Xilinx Multiplier IP核配置(十一)(第10天)

    (50)Xilinx Multiplier IP核配置(十一)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Multiplier IP ...

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

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

  3. (51)Xilinx Divider IP核配置(十一)(第11天)

    (51)Xilinx Divider IP核配置(十一)(第11天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Divider IP核配置(十一 ...

  4. (49)Xilinx Subtracter IP核配置(十)(第10天)

    (49)Xilinx Subtracter IP核配置(十)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Subtracter IP核 ...

  5. (48)Xilinx Adder IP核配置(九)(第10天)

    (48)Xilinx Adder IP核配置(九)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Adder IP核配置(九)(第10天 ...

  6. (47)Xilinx VIO IP核配置(八)(第10天)

    (47)Xilinx VIO IP核配置(八)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx VIO IP核配置(八)(第10天) 5) ...

  7. (46)Xilinx ILA IP核配置(七)(第10天)

    (46)Xilinx ILA IP核配置(七)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx ILA IP核配置(七)(第10天) 5) ...

  8. (45)Xilinx Counter IP核配置(六)(第9天)

    (45)Xilinx Counter IP核配置(六)(第9天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Counter IP核配置(六)(第 ...

  9. (44)Xilinx ROM IP核配置(五)(第9天)

    (44)Xilinx ROM IP核配置(五)(第9天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx ROM IP核配置(五)(第9天) 5)技术 ...

最新文章

  1. PhoenixGo战胜绝艺,腾讯包揽AI围棋大赛前两名
  2. 团队项目—后续阶段第一天
  3. Solaris 10网络服务
  4. javascript里的post和get有什么区别
  5. Mysql日志-RedoLog、UndoLog和BinLog的关系捋顺
  6. x60 深度linux,vivo X60 系列将全球首发 OriginOS 交互体验脱胎换骨
  7. c语言程序设计第二版课后答案 机械工业出版社,C语言程序设计 第2版
  8. 决策树分类算法matlab,matlab实现的C45分类决策树算法
  9. oracle的class12驱动没有实现jdbc对clob或blob的存储, 解决办法
  10. 我的firefox插件开发历程
  11. 20162302 第七周作业
  12. 如何优雅的抢占别人的显卡?
  13. 推荐一款ORM工具 FOR ADOBE AIR
  14. python写一个定时关机软件
  15. Mybatis源码分析(一) | 如何调试Mybatis源码
  16. javascript获取屏幕高度和宽度、监听屏幕大小改变
  17. Air202掉坑日记(1)——烧录固件(AT版本)
  18. 纯css绘制简易对话气泡
  19. Go语言环境搭建详解(2020版)
  20. 网速dns怎么调快_手机dns怎么设置网速快

热门文章

  1. 如何理解数学公式中出现的极大极小minmax含义
  2. 详解 Android 系统启动流程
  3. 计算机管理无法连接虚拟磁盘服务,win10系统电脑打开磁盘管理出现“无法连接虚拟磁盘服务”的教程...
  4. iOS APP适配iPhone X全屏
  5. php不能撤销,word2010突然无法撤销怎么解决
  6. 计算机毕业设计 在线免费小说微信小程序(源码+论文)
  7. NodeJS 开发多人实时对战游戏服务器 (一)
  8. k8s gc原理详解
  9. 知识产权代理行业公司竞争分析
  10. 网站设计的好坏对宣传的效果的影响!