最近本人一直在学习ZYNQSOC的使用,目的是应对科研需要,做出通用的算法验证平台。大概思想是:ZYNQPS端负责与MATLAB等上位机数据分析与可视化软件交互:既可传输数据,也能通过上位机配置更新硬件算法模块配置寄存器内容,同时可计算分析PL端算法实现性能指标。PL端的FPGA逻辑则负责算法的硬件实现,以探索高效并行硬件架构。为此本人后续会持续编写《利用ZYNQSOC快速打开算法验证通路》系列专题博文,在各个阶段进行些基础性总结。

MATLAB中数据为双精度浮点型,因此打开算法验证通路的第一步即为MATLAB中浮点数与定点二进制补码之间的相互转换。在之前的博文:《FPGA与MATLAB数据交互高效率验证算法——仿真阶段》中提到过两种数值表示方式之间的转换,但为了便于testbench仿真,MATLAB写和读的文件均为txt文本文件。在算法板级验证中,数据应以未经过ASCII码编码的二进制数据方式被处理。这里涉及到MATLAB函数fscanf和fprintf以及函数fread和fwrite的区别,前两个分别为读和写文本文件,后两个则是读写二进制文件。

以下给出浮点定点转换以及读写二进制文件代码:

先看下写出到文件的数据和从该该文件读回的数据是否一致。

直接对比数据和命令检测结果显示两者完全一致。再来对比下量化之前与读回定点数经过类型转换后的浮点数。

MATLAB显示两者的差值。可见在浮点转定点数时,会有一定的精度损失,但仅在10的负四次方数量级,在很多精度要求不高的场合下可以忽略。

现在利用Uedit软件打开该文件,并以16进制方式显示:

我们用前两个数据做验证,依次是00_38和FF_2A。由于是补码形式,故先写成二进制形式:0000_0000_0011_1000和1111_1111_0010_1010,再转换为原码:0000_0000_0011_1000和1000_0000_1101_0110,十进制结果就是56和-240,与MATLAB中数据吻合。

非常简单的东西困扰了我有一阵,希望对大家有帮助吧。因为算法验证平台仅是载体,最重要的是PL端的算法硬件实现部分。为了简单快速形成算法验证通路,采用网络调试助手和W5500协议栈芯片实现MATLAB与ZYNQ之间的数据传输,从而避免写上位机软件和网络协议先关设计配置带来的工作量。这部分内容在下篇博文中叙述。

编辑:hfy

matlab 二进制补码转十进制,MATLAB浮点数与定点二进制补码互转算法验证方案相关推荐

  1. java二进制转化为十进制_用Java将二进制转换为十进制的程序

    java二进制转化为十进制 Here you will get program to convert binary to decimal in Java. 在这里,您将获得在Java中将二进制转换为十 ...

  2. matlab 二进制补码转十进制,matlab十进制与二进制补码之间的转换

    转载:http://blog.xdnice.com/blog40543i59178.html matlab提供了一个系统函数dec2bin,可以用来进行十进制数的二进制转换,不过功能有限! 在matl ...

  3. vivado保存ila波形数据用MATLAB分析(补码与十进制转换)

    目录 一.保存与读取ila数据 二.数据进制转换_补码 一.保存与读取ila数据 0.把想要观测的信号线加入在线逻辑分析仪中.上板测试,trigger到想要的实时数据. 1.保存ila数据的TCL命令 ...

  4. AIIC学习日记-十进制浮点数预处理为二进制定点数

    文章目录 背景 任务 浮点数是什么 这里用的是定点数,咳咳 netron导出的卷积核数据处理为一列数据 预处理浮点数的代码 十进制浮点数预处理为二进制定点数 补码+原码=2^n 十进制浮点数预处理为二 ...

  5. 二进制、八进制、十六进制和十进制的相互转换,原码反码补码计算以及Java中数字的存储

    1. Java中数字默认是十进制,二进制.八进制以及十六进制的表示如下 2. 二进制.八进制.十六进制和十进制的相互转换 2.1 为了不累赘描述,本文以百度的二进制小数转换为十进制小数为例,如下图 2 ...

  6. 十进制浮点数转成二进制(IEEE 754 在线计算器)

    IEEE 754 单精度浮点数转换 在线计算器 http://www.styb.cn/cms/ieee_754.php 十进制小数的二进制表示: 整数部分:除以2,取出余数,商继续除以2,直到得到0为 ...

  7. 二进制补码和十进制数的转换

    最近做的一个工程项目用到了基本的数据转换,代码实现了一遍,供大家和自己参考. 先考虑如何将二进制补码转换为十进制整数: 若符号位是0, 则该数是正数, 原码等同于补码. 可以由原码(也就是补码)得知代 ...

  8. 二进制补码转为十进制

    二进制补码转为十进制整数 package kevin.demo;import java.util.Arrays; import java.util.Scanner;public class Hello ...

  9. 二进制八进制十进制十六进制及原码反码补码

    1.进制的介绍 定义:进位制,人们规定的一种进位方式:表示某一位置上的数,运算时是逢X进一位. 十进制是逢十进一:二进制是逢二进一,八进制是逢八进一: 常见进制:二进制,八进制,十进制,十六进制: 学 ...

最新文章

  1. Coolite Cool Study 3 MVC + Coolite 的例子
  2. (原創) 鐵拳4真是超級好玩~~ (日記)
  3. centos7下安装mysql5.6_Linux-CentOS7下安装mysql5.6常见问题解决!
  4. 为什么不能用python_为什么我不能用python加入这个线程?
  5. python3.5文档
  6. MyIbatis :不使用XML和注解@Mapper以及MapperScan
  7. ​图片流量节省60%:基于CDN的sharpP自适应图片技术实践
  8. Windows 7,无法访问internet,DNS无响应
  9. 如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖
  10. VB6写的书籍下载软件 --老牛下书,还不错
  11. Fiddler使用和数据抓包
  12. ESP8266-Arduino编程实例-MAX44009环境光传感器驱动
  13. CH32F103芯片评估-GPIO
  14. import_meta_graph 和 replicate_model_fn
  15. CSDN英雄会上会英雄
  16. 鸡和兔子若干只,头有35个,脚有94个,求兔子和鸭个多少只
  17. 滚动计划方法、WBS方法、网络计划方法:理解三种计划方法并比较优缺点
  18. 类的继承层次结构的宽度和深度
  19. 模拟淘宝查看商品时图片的放大效果
  20. 电子邮箱为何依然重要?企业办公邮箱的使用好处

热门文章

  1. nbsp|quot|amp|lt|gt等html字符转义
  2. 请教ASP.NET培训应该培训的内容和以及顺序
  3. MFC和GDI+制作蝴蝶苍蝇飞舞小程序
  4. 怎么写调查问卷的指导语?
  5. 北京尚学堂|为什么要学习Java
  6. NOIP考纲总结+NOIP考前经验谈
  7. 转自eNet硅谷动力: ADSL共享上网设置总结
  8. VisualSVN TortoiseSVN 360云盘同步版 Myeclipse svn 实现远程版本控制
  9. webservice 搭建(一)
  10. 初识Transact-SQL