Quartus II 中IP Core LPM_DIVIDE的使用
来源:互联网 发布:正装皮鞋推荐 知乎 编辑:程序博客网 时间:2024/06/05 01:16
之前一直在做硬件HoG特征算子的实现,在调中间的一个Bug的时候发现了IP Core LPM_DIVIDE的一些被忽略的细节.
把这个IP Core当成一个简单的除法器去做,导致硬件计算结果和MATLAB仿真结果不一样。大家都知道对于硬件而言,26/10 = 2,这个肯定没问题,但是(-26)/(-10)呢,是等于多少呢。如果我们用MATLAB仿真的话,就是2.6,再向下取整,变成2。
但是要注意到,在LPM_DIVIDE这个IP Core里有一个这样的选项,并且默认的选项是Yes,
Always return a positive remainder? 就是说确保余数是正数?
对于两个正数相除,很好理解,26/10 = 2……6,所以除法的quotient端口输出的就是2,那么当被除数是负数,比如-26,(-26)/(-10) = 2……(-6),如果允许余数是负数,那么上面的计算结果便是正确的,如果要求余数必须是正数,那么上面的结果就是不对的,正确的计算结果应该是(-26)/(-10) = 3……4,所以quotient端口输出的就是3。对于MATLAB来说,26/10和(-26)/(-10)的精确结果都是2.6,那么向上或者向下取整,得到的结果都是一致的,因此MATLAB仿真的结果就和硬件的结果对不上,因此需要根据被除数和除数的正负号来分别选择向上或者向下取整。
阅读全文
1 0
- Quartus II 中IP Core LPM_DIVIDE的使用
- quartus ii 8.0 fft ip core 缓冲突发 突发(Burst)
- QUARTUS ii中IP核破解
- quartus ii IP核的破解
- Quartus II 中的SignalTap II 的使用
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][中]
- QUARTUS II中IP核的调用方法之ip核破解
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][下]
- 怎样制作一个简单ip,以方便在Quartus II和Nios II中使用?.[Nios II][上]
- Quartus ii中使用testbench文件
- Quartus ii中使用testbench文件
- quartus II使用笔记
- quartus ii 使用ModelSim
- quartus ii 11.0使用教程
- Quartus ii使用错误集锦
- quartus ii 学习使用笔记
- Quartus II SignalTap使用心得
- FIR滤波器仿真--基于Quartus II的FIR Compiler II IP核的脚本仿真
- python中的文件操作
- java环境变量配置的意义
- libvirt Java API用法连载之KVM/QEMU区别与libvirt简介(一)
- n个Tomcat间Session共享-nginx配置
- ASP.NET MVC5验证系列之Remote Validation
- Quartus II 中IP Core LPM_DIVIDE的使用
- 关于平衡树的一些学习
- 软件工程(C编码实践篇)学习总结
- SVN服务器搭建
- Java中的反射机制
- 算法作业_28(2017.6.8第十六周)
- vector整理
- AJAX:ajax的五种状态---readyState
- weex采坑之旅(三)Android SDK环境搭建