FPGA与Simulink联合仿真环境搭建(硬件在环)
硬件在环(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联合仿真环境搭建(硬件在环)的更多相关文章
- FPGA与simulink联合实时环路系列—开篇
FPGA与simulink联合实时环路系列—开篇 作为网络上第一个开源此技术,笔者迫不及待地想将此技术分享出来,希望大家多多支持.笔者从2011年接触FPGA以来,从各个方面使用FPGA,无论是控制. ...
- 01-SV入门及仿真环境搭建
1.SV入门 参考书籍<SystemVerilog验证 测试平台编写指南> [美]克里斯·斯皮尔 著 2.仿真环境搭建 仿真工具:modelsim se 2019.2,它不仅支持Veril ...
- 多指灵巧手MoveIt!与Gazebo联合仿真框架搭建
至于为什么叫框架,一是因为灵巧手的3维模型没有按照基本的设计要求画,正常来说,设计机器人机构之前应该设计好机构需要多少个自由度/DOF,每个自由度是旋转/revolute类型还是滑移/prismati ...
- FPGA与simulink联合实时环路系列——实验三 按键key
实验三 按键key 实验内容 在FPGA的实验中,经常涉及到按键的使用,按键是必不可少的人机交互的器件之一,在这些实验中,有时将按键的键值读取显示到数码管.LCD或者是通过串口传送到PC的串口助手上进 ...
- FPGA与simulink联合实时环路系列——实验一 测试
实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟 ...
- 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来
如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...
- quartus2 13.0+modelsim联合开发环境搭建(win10)
quartus2用于硬件设计代码的综合,检查是否有语法错误:modelsim用于对硬件设计代码进行仿真,观察波形是否与需求一致,需要编写xxx_tb.v才能仿真 一.quartus2安装见这篇文章ht ...
- FPGA与simulink联合实时环路系列——实验二LED
实验二LED 实验内容 在实验一的基础上,将simulink产生的测试信号输出到FPGA开发板上的LED灯进行显示,这里要在生成的硬件模型上进行修改,将传送到FPGA的信号输出到8个LED灯上,并且对 ...
- Adams/Car与Simulink联合仿真方法
必须是Assembly装配体才行,并支持仿真设置.这里使用MDI_Demo_Vehicle模型,输出前缀为test1,输出选择files_only.然后OK输出. 生成的文件如下: 在Plant Ex ...
- 基于S7-PLCSIM Advanced搭建S7通信仿真环境
写在前面: 之前有专门讲过一期如何搭建西门子PLC的S7通信仿真环境,感兴趣的可以点击查看:戳↓ 1.基于TIA搭建西门子PLC仿真环境及通信方案-联合出品 2.手把手教你搭建西门子PLC仿真环境 那 ...
随机推荐
- [爬虫]2.3.1 使用Python操作文件系统
Python提供了许多内置库来处理文件系统,如os.shutil和pathlib等,这些库可以帮助你创建.删除.读取.写入文件和目录. 读取文件 在Python中,你可以使用内置的open函数来打开一 ...
- Django链接数据库出现的错误以及解决方法
问题一:django.db.utils.OperationalError: (1045, "Access denied for user 'leo'@'localhost' (using p ...
- 【python笔记】高阶函数map、filter、reduce
前言 map().reduce().filter()是python的三个高阶函数.所谓高阶函数,指的是将函数作为参数并返回函数作为结果的函数.下面代码的sing_ready只是一个简单高阶函数示例: ...
- 让 GPT-4 给开源项目 GoPool Review 社区贡献者的 PR - 每天5分钟玩转 GPT 编程系列(5)
目录 1. 嘚瑟一下 2. 言归正传 2.1 GoPool 的第一个 PR 2.2 祭出 GPT-4 2.3 问问 GPT-4 怎么看这个 PR 2.4 让 GPT-4 重构代码 3. 打完收工 1. ...
- Linux:通过命令查找日志文件中的某字段
工作中有用到,做个记录. 1. 查询某字段,显示行号: cat -n file_name|grep '查找字段' [root@ZWZF-CWY-LZY-12 CWY]# cat -n nohup.ou ...
- 一篇关于获得拼多多商品详情 API的使用说明
拼多多(Pinduoduo)是中国一家快速发展的电商平台,为了帮助开发者更好地接入拼多多,平台提供了丰富的 API 接口供开发者使用,其中包括获取拼多多商品详情的 API.接下来,我们将介绍如何使用拼 ...
- RK3568开发笔记(十一):开发版buildroot固件移植一个ffmpeg播放rtsp的播放器Demo
前言 目标开发任务还有个功能,就是播放rtsp摄像头,当然为了更好的坐这个个,我们必须支持rtsp播放失败之后重新尝试,比如5s重新尝试打开一次,从而保障联网后重新打开,然后达成这个功能. D ...
- Netty集成HTTP的GET和POST通讯
核心就是ChannelInitializer的实现使用http 消息解码器 package com.coremain.handler; import io.netty.channel.ChannelI ...
- ChatGPT多个APIkey如何自主切换
chatgpt目前账户大多数为18美金,那么用户在调用api时候出现金额不足要手动更换chatgpt 当前方法为了解决多账户自主切换api使用. 创建一个名为$arr的数组,它包含几个key.我们使用 ...
- Django-rest-framework框架——Web应用模式、API接口、接口测试工具(Postman)、RESTfulAPI规范、序列化、drf、环境安装与配置、CBV源码分析、 APIView
@ 目录 一 Web应用模式 1.1 前后端不分离 1.2 前后端分离 二 API接口 三 接口测试工具:Postman 四 RESTful API规范(背诵牢记) 4.1 数据的安全保障 4.2 接 ...