- 实验目的
1、利用纯逻辑实现16*16有符号型阵列乘法器;
2、对比Xilinx Multiplier IP纯逻辑实现16*16有符号型乘法器的资源使用情况及性能;
源代码链接:https://download.csdn.net/download/flypassion/11470999
-
实现内容
1、纯逻辑实现16*16有符号型阵列乘法器(无流水)
源代码中模式宏定义
`define MUL_MY_LUT_SIGNED_NO_PIPELINE ;//my design use RTL,no pipelin
仿真波形:其中o_data是实际计算结果,result是仿真结果。
资源使用情况:
乘法器性能情况:
40MHz时钟:WNS:18.99ns,最高可运行167MHz;
2、Xilinx Multiplier IP纯逻辑实现16*16有符号型阵列乘法器(无流水);
源代码中模式宏定义
`define MUL_IP_LUT_SIGNED ;//my design use RTL,no pipelin
IP配置情况:
Data Type:signed
Width:16
Optimization Options:Speed optimization
Output Product Range:31
Pipeline Stages:1
资源使用情况:
乘法器性能情况:
40MHz时钟:WNS:20.66ns,最高可运行227MHz;
- 实现总结
1.两种方法都是延时一拍得到结果;
2.IP核使用的LUT明显少很多,这是自己写的代码需要优化的方向,目前的思路是将负数转换为源码取反加一进行优化,LUT就会得到优化(待研究);
3.两种方法寄存器的使用数量一致,侧面也说明都没有进行流水处理;
4.IP核生成的乘法器性能优于自己写的代码(情理之中o(╥﹏╥)o),可以工作在更高的时钟频率下。