FPGA与simulink联合实时环路系列—开篇

  作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持。笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制、图像视频、IC前端验证、仿真测试,各个部分都有所触及,2015年第一次接触到FPGA与matlab的硬件在环实时仿真,就对感受到技术的强大,虽然这里面还有很到的问题,但是作为最强大的仿真验证工具Matlab与最强大的可编程器件的结合,做仿真测试很方便的,可直接通过matlab产生测试信号或者通过matlab接收分析FPGA处理完成后的信号。

  如今FPGA开发过程势必要涉及到一个过程:验证仿真,验证很多情况下是在Matlab上进行的,而仿真大部分初学者都是采用Modelsim仿真软件进行。比如设计一个信号滤波模块,验证该滤波模块是在Matlab上进行设计验证,得到该模块的设计参数和设计结构,然后再转换为RTL代码,再用Modelsim软件进行仿真,这个过程涉及到采用matlab软件产生待测试的信号,输入到RTL代码中,然后在通过Modelsim软件进行仿真得到处理后的信号,再将该信号输出到文件,最后通过Matlab软件分析处理后的信号的频谱,评估滤波效果。验证评估测试完成后,在综合下载到板上。该流程如下所示:

硬件在环 (Hardware in the Loop, HIL)是一种半实物实时仿真技术,实现整个系统的半实物实时仿真测试,可以方便快速实现设计方案的验证与优化,缩短开发周期,降低研发成本。HIL先后在航天航空、军事、汽车等领域得到推广应用。

硬件在环是一种半实物(FPGA)实时仿真(simulink)技术,利用该原理可以将FPGA和simulink联合起来,通过PC与FPGA的物理连线,实现FPGA和PC端simulink之间的通信,目前该物理连接方式有以太网和JTAG两中方式,其实这个连接的原理与Quartus II 的signaltap类似,都是在FPGA中生成相应的模块,负责信息数据的接收和发送来完成整个硬件在环的通信过程,如果之前接触过signaltap,理解起来就相对简单容易。

由此,采用硬件在环有什么好处呢?采用硬件在环就可以省略了modelsim这中间环节,在简单的实验中,直接进行板级验证,直接在simulink上的生成待测试的信号,再将待测试的信号,通过以太网或者JTAG接口传送到FPGA,然后再将FPGA处理后(采集到)的信号传送到simulink进行分析,由此加快RTL的设计验证过程。

同时,该方法也可以应用于图像/音频处理领域,通过FPGA采集图像/音频信号,再通过硬件在环传送回PC端的simulink(在此可以将FPGA视为一个采集预处理板卡的功能),然后在simulink端做处理和分析,由此可以降低购买图像或者音频采集板卡的成本,并且将PC端的simulink和FPGA联合起来形成一个实时的处理系统,具有很大的意义。

每日推送不同科技解读,原创深耕解读当下科技,敬请关注微信公众号“科乎”。

FPGA与simulink联合实时环路系列—开篇的更多相关文章

  1. FPGA与simulink联合实时环路系列——实验二LED

    实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...

  2. FPGA与simulink联合实时环路系列——实验一 测试

    实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟 ...

  3. FPGA与simulink联合实时环路系列——实验三 按键key

    实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...

  4. Prometheus 系列开篇:为什么要学 Prometheus ?

    「Prometheus 系列开篇:为什么要学 Prometheus ?」首发于[陈树义]公众号,点击跳转到原文https://mp.weixin.qq.com/s/HCS6X3l6nVBw_hAnd6 ...

  5. [翻译svg教程]svg学习系列 开篇

    目录 [翻译svg教程]svg学习系列 开篇 [翻译svg教程 ]svg 的坐标系统 [翻译svg教程]svg 中的g元素 [翻译svg教程]svg中矩形元素 rect [翻译svg教程]svg中的c ...

  6. WPF Step By Step 系列 - 开篇 ·

    WPF Step By Step 系列 - 开篇 公司最近要去我去整理出一个完整的WPF培训的教程,我刚好将自己学习WPF的过程和经验总结整理成笔记的方式来讲述,这里就不按照书上面的东西来说了,书本上 ...

  7. 【转】Entity Framework技术导游系列开篇与热身

    转自:http://blog.csdn.net/bitfan/article/details/12779517 Entity Framework走马观花 之 把握全局 ================ ...

  8. Windows 8实例教程系列 - 开篇

    原文:Windows 8实例教程系列 - 开篇 2012年10月26日,微软发布Windows 8操作系统以及自主品牌平板电脑Surface,Windows作为世界上最流行的操作系统,发布一周内,下载 ...

  9. JVM基础系列开篇:为什么要学虚拟机?

    跟许多人一样,我一开始接触 Java 虚拟机只是因为面试需要用到,所以硬着头皮看看.所以很多人对于为什么要学虚拟机这个问题,他们的答案都是:因为面试.但我经过了几年的学习和实战,我发现其实学习虚拟机并 ...

随机推荐

  1. hibernate(2) —— 主键策略

    框架提供了三种主键生成方式,一种是由用户自己维护,一种是由hibernate框架维护,另一种是由数据库维护. 自己维护就是在插入数据的时候,一定要指定主键的值,否则会出错,如果由框架维护和由数据库维护 ...

  2. iOS 十六进制的颜色值转换为UIColor

    UIColor+Hex.h里面中 #import <UIKit/UIKit.h> @interface UIColor (Hex) + (UIColor *) colorWithHexSt ...

  3. 在Asp.Net MVC中实现计算页面执行时间及简单流量统计

    引用www.rsion.com.dll进您的asp.net MVC项目本人不才,源代码中有详细说明,查看demo修改HomeController public class HomeController ...

  4. C# 中的var关键字

    var 是3.5新出的一个定义变量的类型 其实也就是弱化类型的定义 VAR可代替任何类型 编译器会根据上下文来判断你到底是想用什么类型的 至于什么情况下用到VAR 我想就是你无法确定自己将用的是什么类 ...

  5. jdbc连接数据库的步骤 (转)

    1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String  classN ...

  6. 最新版powerdesign16.5连接数据库错误解决

    由于工作需要,需要将数据库中的表结构逆向生成到powerdesign中,但是连接数据库一直连接不上,Connection test failed报如下错误: 解决方案: 下载ojdbc14.jar,拷 ...

  7. 一则因为numa引发的mysqldump hang住

    新买的dell r430服务器,双CPU,64G内存,单CPU32g,swap 3G 出现故障现像:mysqldump时会hang住,innodb_buffer_pool_size        = ...

  8. YARN DistributedShell源码分析与修改

    YARN DistributedShell源码分析与修改 YARN版本:2.6.0 转载请注明出处:http://www.cnblogs.com/BYRans/ 1 概述 2 YARN Distrib ...

  9. Migrate Instance 操作详解 - 每天5分钟玩转 OpenStack(40)

    Migrate 操作的作用是将 instance 从当前的计算节点迁移到其他节点上. Migrate 不要求源和目标节点必须共享存储,当然共享存储也是可以的. Migrate 前必须满足一个条件:计算 ...

  10. VI常用的命令

    vi filename : 打开或者新建一个文件夹,并将光标置于第一行首位 I : 表示光标在当前位置编辑文本 A : 表示光标进入下以恶字符位置编辑文件 X : 每按一次删除光标所在位置的前面一个字 ...