Verilog乘法的实现——Xilinx Multiplier IP研究(1)
- 实验目的
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)相关推荐
- (50)Xilinx Multiplier IP核配置(十一)(第10天)
(50)Xilinx Multiplier IP核配置(十一)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Multiplier IP ...
- Xilinx Vivado复数乘法器Complex Multiplier IP核调用及其仿真
Complex Multiplier IP核的使用,尤其是输出数据的截位到底怎么弄,我感觉官方文档PG104写的不清楚.我个人在网上也没找到好的讲解文章,就自己琢磨了下,然后写成文档记录在此,方便将来 ...
- (51)Xilinx Divider IP核配置(十一)(第11天)
(51)Xilinx Divider IP核配置(十一)(第11天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Divider IP核配置(十一 ...
- (49)Xilinx Subtracter IP核配置(十)(第10天)
(49)Xilinx Subtracter IP核配置(十)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Subtracter IP核 ...
- (48)Xilinx Adder IP核配置(九)(第10天)
(48)Xilinx Adder IP核配置(九)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Adder IP核配置(九)(第10天 ...
- (47)Xilinx VIO IP核配置(八)(第10天)
(47)Xilinx VIO IP核配置(八)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx VIO IP核配置(八)(第10天) 5) ...
- (46)Xilinx ILA IP核配置(七)(第10天)
(46)Xilinx ILA IP核配置(七)(第10天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx ILA IP核配置(七)(第10天) 5) ...
- (45)Xilinx Counter IP核配置(六)(第9天)
(45)Xilinx Counter IP核配置(六)(第9天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx Counter IP核配置(六)(第 ...
- (44)Xilinx ROM IP核配置(五)(第9天)
(44)Xilinx ROM IP核配置(五)(第9天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)Xilinx ROM IP核配置(五)(第9天) 5)技术 ...
最新文章
- PhoenixGo战胜绝艺,腾讯包揽AI围棋大赛前两名
- 团队项目—后续阶段第一天
- Solaris 10网络服务
- javascript里的post和get有什么区别
- Mysql日志-RedoLog、UndoLog和BinLog的关系捋顺
- x60 深度linux,vivo X60 系列将全球首发 OriginOS 交互体验脱胎换骨
- c语言程序设计第二版课后答案 机械工业出版社,C语言程序设计 第2版
- 决策树分类算法matlab,matlab实现的C45分类决策树算法
- oracle的class12驱动没有实现jdbc对clob或blob的存储, 解决办法
- 我的firefox插件开发历程
- 20162302 第七周作业
- 如何优雅的抢占别人的显卡?
- 推荐一款ORM工具 FOR ADOBE AIR
- python写一个定时关机软件
- Mybatis源码分析(一) | 如何调试Mybatis源码
- javascript获取屏幕高度和宽度、监听屏幕大小改变
- Air202掉坑日记(1)——烧录固件(AT版本)
- 纯css绘制简易对话气泡
- Go语言环境搭建详解(2020版)
- 网速dns怎么调快_手机dns怎么设置网速快