FPGA浮点数定点化
因为在普通的fpga芯片里面,寄存器只可以表示无符号型,不可以表示小数,所以在计算比较精确的数值时,就需要做一些处理,不过在altera在Arria 10
中增加了硬核浮点DSP模块,这样更加适合硬件加速和做一些比较精确的计算。
浮点数和定点数的区别:定点数的小数点是固定的,而浮点数的小数点的位置不确定,举个例子,定点数 1.1*1.1 = 1.2(定点一位小数),浮点数1.1*1.1
=1.21,浮点数的小数点发生了移动,而定点数舍弃了一位,小数点的位置没有变。
在verilog里面,如果用用16位二进制表达定点小数,最高位就是符号位。我们把小数点之后的N位叫做Qn,例如小数点之后有12位叫做Q12格式的定点小数
而Q0就是我们所说的整数。
Q12的最大正数是0111.1111_1111_1111,第一个0是符号位,后面的数都是1,那么这个数的十进制就是0x7fff/2^12=7.99999......,为啥是除2^12呢,因为是
十二位小数,0.1111_1111_1111接近与整数1,这样看有多少个1.
反过来,一个实际的数转换成Qn型的定点小数就是就是乘上2^n
举个例子:
2.1*2.2 = 4.62
先转换成定点数 2.1 * 2^!2 = 8601.6 = 8602
2.1 * 2^12 = 9011.2 = 9011
定点数相乘 8602*9011 = 77512622
定点数转实际的数
因为是两个定点数相乘,所以,小数位变成24位 。整数位变成6位
77512622/2^24=4.62011.....和i结果差距很小
最后记录有符号数的计算
正数 原码 = 反码 = 补码
负数 反码 = 原码的符号位不变,其他位取反
补码 = 反码 + 1
举个例子 : 00110010 + 10000011(负数补码)=10110101,因为结果是负数的补码,换算成原码是11001011,和的绝对值是1001011
FPGA浮点数定点化的更多相关文章
- FPGA浮点数定点数的处理
http://blog.chinaaet.com/justlxy/p/5100053166大佬博客,讲的非常有条理的 1,基础知识 (1)定点数的基础认知: 首先例如一个16位的数表示的定点数的范围是 ...
- 定点化_mif文件生成
clc; %全屏清零 clear all; %变量清零 N=^; %设置ROM深度(字变量)的变量参数, s_p=:; %正弦波一个周期的采样点数 sin_data=sin(*pi*s_p/N); % ...
- 【资讯】天啦鲁,这十余款创客设计居然由FPGA搞定 [转]
按理说‘高大上’的FPGA,多出现在航天航空(如火星探测器).通信(如基站.数据中心).测试测量等高端应用场景.但麦迪却也发现,近期,在很多创客的作品内部都有FPGA的影子.这或许也从侧面看出,打从总 ...
- 从FPGA搞定OV7670 VGA显示 移植到 STM32F10x TFT显示 总结及疑问(高手请进)
OV7670不愧是最便宜的摄像头了最大显示像素:640*480(在VGA显示器上显示效果还不赖,用usb模块采集显示依然显著) 第一步:VGA显示 视频图像(实时)FPGA+SDRAM+OV7670= ...
- prach定点化处理
- 基于sinc的音频重采样(二):实现
上篇(基于sinc的音频重采样(一):原理)讲了基于sinc方法的重采样原理,并给出了数学表达式,如下: (1) 本文讲如何基于这个数学表达式来做软件实现.软件实现的 ...
- IP核引发的关于定,浮点数的认识
上面是一段关于CORDIC_IP测试文件,用于计算给定角度的sin值和cos值,关于数值表示规则在此不再重复,仅仅说明以下3点: 1 数采用原码,反码,补码,本身并没有正确与否之分(这一点很重要,我 ...
- 双线性插值算法的FPGA实现
本设计预实现720P到1080P的图像放大,输入是YUV444数据,分量像素位宽为10bit,采用的算法为双线性插值法,开发平台是xiinx K7开发板. 双线性插值法即双次线性插值,首先在横向线性插 ...
- 数字信号处理专题(2)——利用FPGA进行基本运算及特殊函数定点运算
一.前言 FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积.滤波.变换等基本的数学运算.但由于FPGA的硬件结构和开发特性使得其对 ...
随机推荐
- Numpy入门 - 线性代数运算
本节矩阵线性代数有很多内容,这里重点演示计算矩阵的行列式.求逆矩阵和矩阵的乘法. 一.计算矩阵行列式[det] import numpy as np from numpy.linalg import ...
- noip考前模板大整理
//归并排序求逆序对 #include<bits/stdc++.h> #define ll long long using namespace std; ]; ll ans; ]; voi ...
- form表单提交引发的血案
最近,公司某条产品线上的一个功能出了问题:点击查询的时候,该页面在IE上直接卡死,chrome上会卡顿一段时间候提交表单进行查询.拿到这个bug单子以后,简单重现了下,基本上定位到是查询操作中的问题, ...
- onunload事件和onbeforeunload事件
记录知识点背景:在做一个h5项目时,在统计事件时有这样一个需求, 希望能统计到用户是从第几页离开的,用到了这个知识点.在此记录. window.onunload 1.定义和用法 onunload事件在 ...
- day01_使用Android Studio创建第一个Android项目
使用Android Studio开发Android项目如此简单 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize ...
- HDOJ 1507 Uncle Tom's Inherited Land*
直接对每一个格子进行dfs结果除以2能够得到答案可是有大量反复的结果,不好输出答案. 能够仅仅对横纵坐标相加是奇数的格子dfs.... Uncle Tom's Inherited Land* Time ...
- NBUT 1217 Dinner
[1217] Dinner 时间限制: 1000 ms 内存限制: 32768 K 问题描写叙述 Little A is one member of ACM team. He had just won ...
- MQTT 简介
MQTT 全称是 Message Queue Telemetry Transport,是一个轻量级的“发布/订阅”消息传输协议. 官网 http://mqtt.org/ 发布/订阅 MQTT 的基本概 ...
- MPSOC之2——ubuntu环境配置及petalinux安装
MPSOC的linux开发需要使用petalinux,选择Ubuntu操作系统. 1.Ubuntu 1.1. Ubuntu安装 版本16.04.03 vmare版本:12.0 安装时注意选择" ...
- 为eclipse离线安装hibernate tools插件
工具/原料 eclipse luna jboss hibernate tools 方法/步骤 下载hibernate tools插件 在eclipse根目录下创建myplugins和l ...