FPGA与MATLAB数据交互高效率验证算法——仿真阶段
之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性。本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFDM通信系统及聚类算法方面的研究,感兴趣的朋友可以一起交流。
很多想利用FPGA验证算法的朋友一定会用到MATLAB这个强大的工具,可苦于不知道如何完成两者数据的交互功能。从仿真层面来说,基本流程是:
MATLAB产生待测试数据 -> N bit量化 -> 数据写入txt文件 -> testbench读取txt文件到RAM并送入到UUT中完成运算处理 ->
testbench在将处理后结果保存到另一txt文件内 -> MATLAB读取数据 -> 数据转回双精度浮点型 -> 算法验证分析。
下面是FPGA设计OFDM中过程中MATLAB与FPGA数据交互部分的代码,供大家参考:
1.MATLAB将数据(支持小数 负数)以二进制补码ASICII字符串形式写入txt文件
MATLAB将其内部双精度浮点型数据经过归一化和12bit量化后,转为二进制字符串写入文件。此处应该可以写成16进制形式,让代码更简洁些。



2 test bench读取文件数据到memory中
$readmemb/$readmemh系统函数读取文件数据到memory中,以特定的时序送入uut处理。此处封装成task便于调用和提高代码可读性。

3 test bench将FPGA处理后数据写入另一文件
$fopen找到并打开文件,通过$fdisplay函数经处理后数据以十进制形式写入文件。


4 MATLAB读取FPGA处理后数据文件,格式转换进一步分析
MATLAB以类似的方式打开文件,读取数据到FPGA_Data矩阵中。数据的实部和虚部分别逆运算得到正确的浮点型数据(代码中N为量化位数,取12),最后拼接回复数,待MATLAB后续处理分析。

四个步骤即可通过FPGA进行算法的定点仿真,利用MATLAB强大的数据分析和可视化功能,极大提高算法开发效率。后篇算法验证的内容为算法板级验证,MATLAB提高了以太网通信函数,可以很方便地与FPGA等硬件设备实现真正的数据交互,欢迎各位关注。
FPGA与MATLAB数据交互高效率验证算法——仿真阶段的更多相关文章
- 通过文件读写方式实现Matlab和Modelsim的联合仿真
虽然Modelsim的功能非常强大,仿真的波形可以以多种形式进行显示,但是当涉及到数字信号处理的算法的仿真验证的时候,则显得有点不足.而进行数字信号处理是Matlab的强项,不但有大量的关于数字信号处 ...
- X-Plane数据交互
要用X-Plane进行二次开发,免不了需要进行参数的传递,下面我们来看看与X-Plane进行数据交互都有哪些方式. 与FSX和Flightgear基本一样,X-Plane支持插件,自然也支持通过插件进 ...
- Android客户端和服务器端数据交互
网上有很多例子来演示Android客户端和服务器端数据如何实现交互不过这些例子大多比较繁杂,对于初学者来说这是不利的,现在介绍几种代码简单.逻辑清晰的交互例子,本篇博客介绍第四种: 一.服务器端: 代 ...
- 使用Jquery.AJAX方法和PHP后台数据交互小结
使用jQuery的AJAX方法和后台PHP进行数据交互,交互采用的数据格式JSON格式. 我主要小小的总结了一下,我使用AJAX方法时候遇到一些小小的问题. 第一:在传递数据的时候,传输地址注意是否正 ...
- View与Control间的数据交互
View与Control间的数据交互 1.ViewBag.Name ="Name1" 2.ViewData["VD"] = "view data&qu ...
- .net实现与excel的数据交互、导入导出
应该说,一套成熟的基于web的管理系统,与用户做好的excel表格进行数据交互是一个不可或缺的功能,毕竟,一切以方便客(jin)户(qian)为宗旨. 本人之前从事PHP的开发工作,熟悉PHP的都应该 ...
- 无废话ExtJs 入门教程二十[数据交互:AJAX]
无废话ExtJs 入门教程二十[数据交互:AJAX] extjs技术交流,欢迎加群(521711109) 1.代码如下: 1 <!DOCTYPE html PUBLIC "-//W3C ...
- JSP数据交互
JSP数据交互 一.jsp中java小脚本 1.<% java代码段%> 2.<% =java表达式%>不能有分号 3.<%!成员变量和函数声明%>二.注释 1 ...
- Flex数据交互之Remoting
一 前言 Flex数据交互常用的有三种方式:WebService.HttpService以及Remoting. WebService方式已在这篇文章中给出,这篇文章主要讲解以Remoting方式进行数 ...
随机推荐
- 用js写动态时钟 2017-03-23
45每隔1秒变一次: 代码如下: <body onLoad="show()" > ------------表示当页面载入时执行该事件,可以没有 <div id ...
- susmote个人网站博客论坛(TexTec | 关注互联网技术,传播极客精神)
网站地址 www.susmote.com www.textec.club 欢迎您的访问
- RabbitMQ 消息确认与公平调度消费者
一.消息确认 为了确保消息一定被消费者处理,rabbitMQ提供了消息确认功能,就是在消费者处理完任务之后,就给服务器一个回馈,服务器就会将该消息删除,如果消费者超时不回馈,那么服务器将就将该消息重新 ...
- XMAN-level4
[XMAN] level4 首先checksec,信息如下 [*] '/root/Desktop/bin/pwn/xman-level4/level4' Arch: i386-32-little RE ...
- Hive 报错:java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient
在配置好hive后启动报错信息如下: [walloce@bigdata-study- hive--cdh5.3.6]$ bin/hive Logging initialized using confi ...
- Alpha第五天
Alpha第五天 听说 031502543 周龙荣(队长) 031502615 李家鹏 031502632 伍晨薇 031502637 张柽 031502639 郑秦 1.前言 任务分配是VV.ZQ. ...
- 2017-2018-1 20155201 《信息安全系统设计基础》 pwd命令的实现
2017-2018-1 20155201 <信息安全系统设计基础> pwd命令的实现 一.对pwd命令的学习 在终端中输入man pwd查看手册中对pwd这一命令的解释: 以绝对路径的方式 ...
- Beta开始前准备
Beta准备 1. 讨论组长是否重选的议题和结论. 经过讨论,我们认为,经过一段时间的磨合,现任组长是不需要更换的. 2. 下一阶段需要改进完善的功能. 增加关于征信的功能,贴近选题主题 美化界面,尽 ...
- PTA題目的處理(三)
题目7-1 高速公路超速處罰 1.實驗代碼 #include <stdio.h> //#include <stdlib.h> int main() { int csp,lsp; ...
- 201621123068 Week04-面向对象设计与继承
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 答:继承.多态.重载.关键字.父类与子类 1.2 尝试使用思维导图将这些关键词组织起来. 2. 书面作业 1. 面向对象设计(大 ...