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

 

转载于:https://www.cnblogs.com/bixiaopengblog/p/7728538.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282042.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

框架实现修改功能的原理_JAVA集合框架的特点及实现原理简介

1.集合框架总体架构集合大致分为Set、List、Queue、Map四种体系,其中List,Set,Queue继承自Collection接口,Map为独立接口Set的实现类有:HashSet,LinkedHashSet,TreeSet...List下有ArrayList,Vector,LinkedList...Map下…

NPM报错终极大法

2019独角兽企业重金招聘Python工程师标准>>> 所有的错误基本上都跟node的版本相关 直接删除系统中的node 重新安装 sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*} 重新安装 $ n lts $ npm install -g npm $ n stable…

自己使用的一个.NET轻量开发结构

三个文件夹,第一个是放置前端部分,第二个是各种支持的类文件,第三个是单元测试文件。Core文件类库放置的是与数据库做交互的文件,以及一些第三方类库,还有与数据库连接的文件1.Lasy.Validator是一个基于Attribute验证器…

英语影视台词---八、the shawshank redemption

英语影视台词---八、the shawshank redemption 一、总结 一句话总结:肖申克的救赎 1、Its funny. On the outside, I was an honest man. Straight as an arrow. I had to come to prison to be a crook.? 这很有趣。 在外面,我是一个诚实的人…

10.python网络编程(socket server 实现并发 part 2)

一、基于tcp的socket通信的基本原理分析。基于tcp的socket通信,主要依靠两个循环,分别是连接循环和通信循环。这个前面的文章有写过,在这里就不再重复了。二、socketserver实现多并发的原理分析。1.server类:2.reques类。类继承关…

如何在一小时内更新100篇文章?-Evernote Sync插件介绍

上一篇“手把手教你制作微信小程序,开源、免费、快速搞定”,已经教会你如何快速制作一个小程序,但作为资讯类小程序,内容不可少,并且还需要及时更新。 但是,如果让你复制粘贴,可能还需要上传图片…

linux awk

grep 文本过滤器sed 流编辑器awk 报告生成器 格式化以后显示awk [option] PATTERN {action} file1 file2awk -F"|" BEGIN{OFS":"} {print $1,$2,$3} test.txt #文本字符串用双引号awk -F"|" BEGIN{OFS":"} {print $1,"jksong&quo…

iOS无线真机调试

为什么80%的码农都做不了架构师?>>> Xcode从9开始 就支持无线真机调试,那么怎么操作呢? 首先用数据线连接你的设备,接下来Xcode- Window-Devices and Simulators 点开之后看到你的设备 默认情况下Connect via networ…

Mybatis中jdbcType和javaType的对应关系

2019独角兽企业重金招聘Python工程师标准>>> Mybatis中jdbcType和javaType的对应关系 1 JDBC Type Java Type 2 CHAR String 3 VARCHAR String 4 LONGVARCHAR String 5 NUMERIC java.math.…

java贪吃蛇

使用双向链表实现贪吃蛇程序 1.链表节点定义: package snake;public class SnakeNode {private int x;private int y;private SnakeNode next;private SnakeNode ahead;public SnakeNode() {}public SnakeNode(int x, int y) {super();this.x x;this.y y;}public …

【死磕 Spring】----- IOC 之解析 bean 标签:解析自定义标签

前面四篇文章都是分析 Bean 默认标签的解析过程,包括基本属性、六个子元素(meta、lookup-method、replaced-method、constructor-arg、property、qualifier),涉及内容较多,拆分成了四篇文章,导致我们已经忘…

Codeigniter 4.0-dev 版源码学习笔记之四——详细路由过程

前言 我个人觉得在当前 MVC 流行的架构下,要想去了解一个框架,或者是一个基于此架构下的应用程序,最好的入手方式就是先看路由,虽然路由不是 MVC 里的任何一个,但是知道了路由的来龙去脉就知道了整个框架或者是应用的结…

固态硬盘和机械硬盘的比较和SQLSERVER在两种硬盘上的性能差异

听说固态硬盘是高富帅的必备神器,本人为了提升工作效率和提高工作速度 这个月节衣缩食,终于也决定买了一块三星固态硬盘120G容量 这个固态硬盘拿在手里轻飘飘的, 好像里面什么东西都没有似的 废话少说,先上图 开机速度20秒左右 测…

大文件读写效率比较

之前做到一个大日志文件(size > 1G)解析的项目,在此记录下对于大文本解析方式的效率比较。不同方式的性能差别很大,那个项目的日志解析时间能从原来的超过36小时优化到只需要2分钟,awk功不可没。 bash 比较 bash脚本…

python装饰器执行顺序

2019独角兽企业重金招聘Python工程师标准>>> 1、单个装饰器执行 上来先看代码: import timedef deco(func):functools.wraps(func)def _wrapper():startTime time.time()print "start"func()print "end"endTime time.time()msecs …

tomcat限制用域名访问 禁止 ip访问

有时候会遇到服务器网站。只可以通过域名访问。而不允许ip访问。防止域名恶意解析,tomcat可以实现这个简单功能。1,禁止ip访问项目 2,只允许绑定域名访问环境:tomcat7 外网地址:114.113.100.166 域名:bi…

Object关于属性property的静态方法

Object.defineProperty Object.defineProperty(obj, prop, { value: undefined, enumerable: true, writable:true, get: function() {return value}, set: function(newValue) {value newValue;} }) 当时配置了set和get时,则不能配置value。 Object.getOwnPropert…

99. Recover Binary Search Tree

一、题目 1、审题 2、分析 给出一个二叉查找树,其中有两个元素的位置弄错了,写算法将其恢复。 二、解答 1、思路: 方法一、 通过中序遍历可以确定一棵二叉查找树由小到大的顺序。 所以在此错位的查找树中查找到的节点中有 1 个比后续节点值大…

myeclipse+git pull项目报错

2019独角兽企业重金招聘Python工程师标准>>> 1.在本地工程目录(.git)找到config文件; 2.修改config文件内容为: [core] repositoryformatversion 0 filemode false logallrefupdates true [branch "master"] remote origin m…