因为在普通的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浮点数定点化的更多相关文章

  1. FPGA浮点数定点数的处理

    http://blog.chinaaet.com/justlxy/p/5100053166大佬博客,讲的非常有条理的 1,基础知识 (1)定点数的基础认知: 首先例如一个16位的数表示的定点数的范围是 ...

  2. 定点化_mif文件生成

    clc; %全屏清零 clear all; %变量清零 N=^; %设置ROM深度(字变量)的变量参数, s_p=:; %正弦波一个周期的采样点数 sin_data=sin(*pi*s_p/N); % ...

  3. 【资讯】天啦鲁,这十余款创客设计居然由FPGA搞定 [转]

    按理说‘高大上’的FPGA,多出现在航天航空(如火星探测器).通信(如基站.数据中心).测试测量等高端应用场景.但麦迪却也发现,近期,在很多创客的作品内部都有FPGA的影子.这或许也从侧面看出,打从总 ...

  4. 从FPGA搞定OV7670 VGA显示 移植到 STM32F10x TFT显示 总结及疑问(高手请进)

    OV7670不愧是最便宜的摄像头了最大显示像素:640*480(在VGA显示器上显示效果还不赖,用usb模块采集显示依然显著) 第一步:VGA显示 视频图像(实时)FPGA+SDRAM+OV7670= ...

  5. prach定点化处理

  6. 基于sinc的音频重采样(二):实现

    上篇(基于sinc的音频重采样(一):原理)讲了基于sinc方法的重采样原理,并给出了数学表达式,如下:                  (1) 本文讲如何基于这个数学表达式来做软件实现.软件实现的 ...

  7. IP核引发的关于定,浮点数的认识

    上面是一段关于CORDIC_IP测试文件,用于计算给定角度的sin值和cos值,关于数值表示规则在此不再重复,仅仅说明以下3点: 1  数采用原码,反码,补码,本身并没有正确与否之分(这一点很重要,我 ...

  8. 双线性插值算法的FPGA实现

    本设计预实现720P到1080P的图像放大,输入是YUV444数据,分量像素位宽为10bit,采用的算法为双线性插值法,开发平台是xiinx K7开发板. 双线性插值法即双次线性插值,首先在横向线性插 ...

  9. 数字信号处理专题(2)——利用FPGA进行基本运算及特殊函数定点运算

    一.前言 FPGA以擅长高速并行数据处理而闻名,从有线/无线通信到图像处理中各种DSP算法,再到现今火爆的AI应用,都离不开卷积.滤波.变换等基本的数学运算.但由于FPGA的硬件结构和开发特性使得其对 ...

随机推荐

  1. thinkphp实现文件的下载

    首先需要看一下大家使用的Thinkphp的版本,不同的版本使用的方法不同,(在导入公共函数的时候方式不同) 我用的是thinkphp3.2.2版本的,因此直接使用import()函数,直接把使用thi ...

  2. 关路灯,洛谷dp

    题目传送门https://www.luogu.org/problem/show?pid=1220 我们假设 dpij0 为目前最优值是在 i 位置,dpij1 为目前最优值是在 j 位置则 i 到 j ...

  3. HDU2159--二维费用背包,三重背包

    FATE Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  4. POJ 1511 Invitation Cards 链式前向星+spfa+反向建边

    Invitation Cards Time Limit: 8000MS   Memory Limit: 262144K Total Submissions: 27200   Accepted: 902 ...

  5. ERROR: unable to bind listening socket for address ’127

    ERROR: unable to bind listening socket for address '127.0.0.1:9000′ 解决办法: killall php-fpm 然后重启即可. 我的 ...

  6. Java集合(5)一 HashMap与HashSet

    目录 Java集合(1)一 集合框架 Java集合(2)一 ArrayList 与 LinkList Java集合(3)一 红黑树.TreeMap与TreeSet(上) Java集合(4)一 红黑树. ...

  7. TensorFlow MNIST(手写识别 softmax)实例运行

    TensorFlow MNIST(手写识别 softmax)实例运行 首先要有编译环境,并且已经正确的编译安装,关于环境配置参考:http://www.cnblogs.com/dyufei/p/802 ...

  8. 以css伪类为基础,引发的选择器讨论 [新手向]

    作为第一篇技术干货,来写哪个方面的内容,我着实考虑了很久. 经过了整整30秒的深思熟虑,我决定就我第一次发现新大陆一样的内容,来进行一次讨论. 伪类:伪类对元素进行分类是基于特征(characteri ...

  9. Unity 5--全局光照技术

    本文整理自Unity全球官方网站,原文:UNITY 5 - LIGHTING AND RENDERING 简介全局光照,简称GI,是一个用来模拟光的互动和反弹等复杂行为的算法,要精确的仿真全局光照非常 ...

  10. 简单的调用OpenCV库的Android NDK开发 工具Android Studio

    前言 本博客写于2017/08/11, 博主非专业搞安卓开发, 只是工作的需要倒腾了下Android NDK相关的开发, 博文中有什么不正确.不严格的地方欢迎指正哈    本文后续也许还会有删改, 就 ...