硬件在环(HIL)

\(\quad\)官方的一些定义:硬件在环 (HIL) 测试是一种实时仿真,让您无需使用系统硬件即可开始测试嵌入式代码。如果正在开发的代码未按照规范运行,您可以通过此项测试来发现可能损坏硬件的异常和故障情况。

\(\quad\) 非常高大上,我这里呢,就想实现一点功能,因为我是用FPGA做信号处理的,然后就想做一个上位机,然后上位机可以给FPGA输入信号,FPGA接受信号进行处理,将处理结果返回给上位机,然后我们查看结果,经过调研,这个需求可以通过simulink与FPGA联合仿真实现,simulink有各种板级支持包,比如说HDL verifier Support Package for Xilinx FPGA Boards,这个就是专门为Xilinx家的FPGA提供板级验证的支持包,就可以实现上面的功能,就类似于vivado中的逻辑分析仪ila,但是ila不能给FPGA输入一个比较真实的信号,所以选择simulink,就想让simulink与FPGA进行交互。

我的设备信息:

黑金Zynq-7010,主控芯片xc7z010clg400-1。

Vivado version: 2017.4

Matlab:R2022b 9.13

下面进入正题:

1、安装System generator

(1)干啥用的?

\(\quad\) System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,嵌入了Xilinx的一些模块,可以在MATLAB中的Simulink中进行定点仿真,可以设置定点信号的类型等操作。通俗的讲,按上这玩意之后,在matlab的simulink里就会出现两个专门用于Xilinx FPGA的库,所以在后面一定会用得到,如下图:

\(\quad\) 这玩意是在安装VIVADO时就是可选的,如果安装VIVADO的时候没安装,那就重新安装一下就好了。

(2)安装办法

\(\quad\) 这个安装教程我就不重复写一遍了,以及system generator与matlab版本的适配问题,给出我参考的的教程里都有详细解决办法:

初识System Generator(安装+使用),这个教程我只看到5,因为后边的暂时还不需要。

\(\quad\)安装好之后启动system generator就可以启动matlab,然后在matlab的simulink的库里看到这两个库啦。

2、安装板级支持包

(1)干啥用的?

\(\quad\) 得让matlab simulin能够与fpga进行交互,肯定得需要一个媒介,那就是版级支持包。

(2)安装办法?

\(\quad\)如下图:



\(\quad\)如果是破解版的话,应该会出现下面这种情况:



\(\quad\)意思就是需要你登录,但是破解版的没办法,登录也没用,因为压根没买,没在官方那里登记,没法在线安装了,就进行离线安装,解决办法还是参考一篇博客MATLAB获取硬件支持包失败,显示请续订您的软件维护服务,解决办法,保姆教程,我这里用到的是HDL verifier Support Package for Xilinx FPGA Boards,就安装这一个就好了,大概率能遇到的问题就是第7步,因为涉及到网络的问题,可能需要fq上网(还有人说fq上网也没法解决),还可以通过直接卸载人家安装过的包来解决,我是通过fq上网解决的。

3、配置板级支持包

\(\quad\)安装好后,打开:



能够看到这个包就说明成功了。

(1)进行配置

\(\quad\)也就是说要选择自己的板子,点击右边的齿轮按钮。



\(\quad\)翻来翻去发现没有自己的板子,但是官网明确写着支持zynq 7000系列芯片,很无奈,找了很多问题,以为是不支持,最后差点要放弃。

\(\quad\)在交流群里问这个问题,然后有人说可以自定义一个板子,大概意思就是可以自定义一个.xml,让simulink来能够识别自己的板子。那我就知道了,这里找不到板子不是说不支持,而是官方没有加上,所以问题是可以解决的。所以我就继续找资料,翻找官网的文档,找到了这个Download HDL Verifier FPGA Board Support Packages,发现可以自定义板子,它第一步就是教怎么添加一个板子。

(2)自定义板子

\(\quad\)在matlab中输入一个fpgaBoardManager,然后弹出一个框,按照官方的点击Get More Boards,还是出现那个问题(破解版啥也不是),但是可以点击Create Custom Board,终于,看到了自己板子的主控芯片:



JTAG Chain Position我也不知道为啥是2,我是在论坛上看到一个类似的问题解决的matlab论坛,然后点击下一步,把FIL接口打,然后定义一下时钟,复位端口可以先不用管,因为是可选选项:

,继续点击next,出现下图



,有Sum of IR length before与Sum of IR length after这两个选项,根本不知道啥意思,这里也是通过上面那个论坛问题里解决了,它给了一个官方文档FPGA Board Editor,里边明确说了zynq的Sum of IR length before要填4:,继续下一步。

(3)测试板子

来到FIL测试板子这一步:



给板子上电,连接好JTAG,等待测试结果即可。

如果出现了下边这个问题:

Did not receive version information from hardware. You must have a valid connection, a compatible development board and compatible versions of the block and FPGA programming file.

那一般就是前面自定义板子的选项有些问题,需要继续慢慢分析,查看文档。

如果是这个问题:



原因可能有很多种了,可能是3121端口被占用,可以使用命令netstat ano|findstr "3121",如果被占用直接强行关闭;也可能是因为,hw_server在运行,可以在任务管理器中找到hw_server.exe关闭;如果一直这样的话,就得考虑驱动的问题了,F:\Xilinx\Vivado\2017.4\data\xicom\cable_drivers\nt64\digilent,找到install_digilent.exe,重新安装驱动,我是最后一个原因,驱动有问题,安装好后测试终于通过!如果驱动没问题一直这样,就把软件关了,把板子关了然后重启就ok了。



然后点击finish后会自动出现一个.xml文件,就是自定义板子的xml文件,就自动生成了。

测试通过后回到配置那一步,发现自定义的板子出现了,选择即可!ok,环境差不多就这样配置好了。可以学习了。

FPGA与Simulink联合仿真环境搭建(硬件在环)的更多相关文章

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

    FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...

  2. 01-SV入门及仿真环境搭建

    1.SV入门 参考书籍<SystemVerilog验证 测试平台编写指南> [美]克里斯·斯皮尔 著 2.仿真环境搭建 仿真工具:modelsim se 2019.2,它不仅支持Veril ...

  3. 多指灵巧手MoveIt!与Gazebo联合仿真框架搭建

    至于为什么叫框架,一是因为灵巧手的3维模型没有按照基本的设计要求画,正常来说,设计机器人机构之前应该设计好机构需要多少个自由度/DOF,每个自由度是旋转/revolute类型还是滑移/prismati ...

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

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

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

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

  6. 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来

    如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...

  7. quartus2 13.0+modelsim联合开发环境搭建(win10)

    quartus2用于硬件设计代码的综合,检查是否有语法错误:modelsim用于对硬件设计代码进行仿真,观察波形是否与需求一致,需要编写xxx_tb.v才能仿真 一.quartus2安装见这篇文章ht ...

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

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

  9. Adams/Car与Simulink联合仿真方法

    必须是Assembly装配体才行,并支持仿真设置.这里使用MDI_Demo_Vehicle模型,输出前缀为test1,输出选择files_only.然后OK输出. 生成的文件如下: 在Plant Ex ...

  10. 基于S7-PLCSIM Advanced搭建S7通信仿真环境

    写在前面: 之前有专门讲过一期如何搭建西门子PLC的S7通信仿真环境,感兴趣的可以点击查看:戳↓ 1.基于TIA搭建西门子PLC仿真环境及通信方案-联合出品 2.手把手教你搭建西门子PLC仿真环境 那 ...

随机推荐

  1. node:windows script host 錯誤 console未定义

    错误背景 在开发npm包时,碰到此项报错 解决方案 选中任意js文件,选择打开方式,指定到node中即可

  2. 论文解读(Moka‑ADA)《Moka‑ADA: adversarial domain adaptation with model‑oriented knowledge adaptation for cross‑domain sentiment analysis》

    Note:[ wechat:Y466551 | 可加勿骚扰,付费咨询 ] 论文信息 论文标题:Moka‑ADA: adversarial domain adaptation  with model‑o ...

  3. go创建web项目分别在windows和linux部署

    转载请注明出处: 要在Linux服务器上运行Go的Web项目,可以按照以下步骤进行操作: 在服务器上安装Go:首先,在Linux服务器上安装Go编程语言.你可以从官方网站(https://golang ...

  4. 03.前后端分离中台框架 zhontai 项目代码生成器的使用

    zhontai 项目 基于 .Net7.x + Vue 等技术的前后端分离后台权限管理系统,想你所想的开发理念,希望减少工作量,帮助大家实现快速开发 后端地址:https://github.com/z ...

  5. Zimbra禁止接收带有加密的文件邮件 提醒病毒(Heuristics.Encrypted.PDF)

    最近碰到一个国际性大客户,一定要发送经过加密的文件,因为是合约相关的文件,对方公司有这方面要求.但是Zimbra默认是禁止接收加密的文件 - 'Block encrypted archives',这样 ...

  6. Vue【原创】可拖动列表 darg-list

    可拖动排序的列表 drag-list,这个比较简单易懂,拿例子直接运行看效果就好了. 组件代码: 1 <template> 2 <ul class="list" ...

  7. 搭建eureka服务注册中心,单机版

    单独搭建的 搭建springboot项目 (1)pom文件 <?xml version="1.0" encoding="UTF-8"?> <p ...

  8. Linux离线安装Mysql-5.7

    1.背景描述 在真实业务场景下,Linux服务器一般位于内网,所以无法直接访问互联网资源: 特别是安装数据库的Linux服务器,在网络方面的管控只会更加严格: 因此,需要提前下载好相关资源,再传输到内 ...

  9. 五分钟k8s入门到实战-应用配置

    背景 在前面三节中已经讲到如何将我们的应用部署到 k8s 集群并提供对外访问的能力,x现在可以满足基本的应用开发需求了. 现在我们需要更进一步,使用 k8s 提供的一些其他对象来标准化我的应用开发. ...

  10. Linux下安装MySQL问题及报错解决

    前言: 在Linux环境下,安装MySQL服务 环境: 虚拟机CentOS7 \-----------------------------------------------\ 流程: 确保mysql ...