首页 > 其他分享 >FPGA与Simulink联合仿真环境搭建(硬件在环)

FPGA与Simulink联合仿真环境搭建(硬件在环)

时间:2023-11-14 15:45:03浏览次数:30  
标签:仿真 Simulink 自定义 FPGA simulink 板子 quad 安装

硬件在环(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的库,所以在后面一定会用得到,如下图:
image

\(\quad\) 这玩意是在安装VIVADO时就是可选的,如果安装VIVADO的时候没安装,那就重新安装一下就好了。
(2)安装办法
\(\quad\) 这个安装教程我就不重复写一遍了,以及system generator与matlab版本的适配问题,给出我参考的的教程里都有详细解决办法:
初识System Generator(安装+使用),这个教程我只看到5,因为后边的暂时还不需要。

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

2、安装板级支持包

(1)干啥用的?
\(\quad\) 得让matlab simulin能够与fpga进行交互,肯定得需要一个媒介,那就是版级支持包。
(2)安装办法?
\(\quad\)如下图:
image
\(\quad\)如果是破解版的话,应该会出现下面这种情况:
image
\(\quad\)意思就是需要你登录,但是破解版的没办法,登录也没用,因为压根没买,没在官方那里登记,没法在线安装了,就进行离线安装,解决办法还是参考一篇博客MATLAB获取硬件支持包失败,显示请续订您的软件维护服务,解决办法,保姆教程,我这里用到的是HDL verifier Support Package for Xilinx FPGA Boards,就安装这一个就好了,大概率能遇到的问题就是第7步,因为涉及到网络的问题,可能需要fq上网(还有人说fq上网也没法解决),还可以通过直接卸载人家安装过的包来解决,我是通过fq上网解决的。

3、配置板级支持包

\(\quad\)安装好后,打开:
image
能够看到这个包就说明成功了。
(1)进行配置
\(\quad\)也就是说要选择自己的板子,点击右边的齿轮按钮。
image
\(\quad\)翻来翻去发现没有自己的板子,但是官网明确写着支持zynq 7000系列芯片,很无奈,找了很多问题,以为是不支持,最后差点要放弃。
\(\quad\)在交流群里问这个问题,然后有人说可以自定义一个板子,大概意思就是可以自定义一个.xml,让simulink来能够识别自己的板子。那我就知道了,这里找不到板子不是说不支持,而是官方没有加上,所以问题是可以解决的。所以我就继续找资料,翻找官网的文档,找到了这个Download HDL Verifier FPGA Board Support Packages,发现可以自定义板子,它第一步就是教怎么添加一个板子。
(2)自定义板子
\(\quad\)在matlab中输入一个fpgaBoardManager,然后弹出一个框,按照官方的点击Get More Boards,还是出现那个问题(破解版啥也不是),但是可以点击Create Custom Board,终于,看到了自己板子的主控芯片:
image
JTAG Chain Position我也不知道为啥是2,我是在论坛上看到一个类似的问题解决的matlab论坛,然后点击下一步,把FIL接口打✔,然后定义一下时钟,复位端口可以先不用管,因为是可选选项:
image,继续点击next,出现下图
image
,有Sum of IR length before与Sum of IR length after这两个选项,根本不知道啥意思,这里也是通过上面那个论坛问题里解决了,它给了一个官方文档FPGA Board Editor,里边明确说了zynq的Sum of IR length before要填4:image,继续下一步。
(3)测试板子
来到FIL测试板子这一步:
image
给板子上电,连接好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.
那一般就是前面自定义板子的选项有些问题,需要继续慢慢分析,查看文档。

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

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

标签:仿真,Simulink,自定义,FPGA,simulink,板子,quad,安装
From: https://www.cnblogs.com/ZhengLijie/p/17831578.html

相关文章

  • m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果 本系统Vivado2019.2平台开发,测试结果如下:   2.算法涉及理论知识概要      2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数......
  • vcs与verdi命令行仿真查看波形
    makefileDESIGN_NAME="fifo_tb"LOG_VCS="vcs.log"LOG_SIMV="simv.log"FILE_LIST="./list.f"#CodeCoverageCM=-cmline+cond+tgl+fsm+branch+assertCM_DIR=-cm_dircvrg#Makefilebody.PHON......
  • m基于FPGA的2ASK调制解调系统verilog实现,包含testbench测试文件
    1.算法仿真效果本系统Vivado2019.2平台开发,测试结果如下:2.算法涉及理论知识概要2ASK调制解调是一种数字调制解调技术,它是基于ASK调制的一种数字调制方式。ASK调制是一种模拟调制方式,它是通过改变载波的振幅来传输数字信号。而2ASK调制解调则是将数字信号转换为二进制码,再通......
  • 基于costas环的载波同步系统matlab性能仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a  3.算法理论概述       基于Costas环的载波同步系统是一种用于恢复接收信号的载波频率和相位同步的系统。Costas环是一种特殊的环路锁相环路,广泛用于调制解调器、无线通信和雷达等领域。以下是基于C......
  • FPGA学习笔记001——流水灯
    代码如下:moduleled_flash(//端口列表 Clk50M, //时钟信号 Rst_n, //复位信号 led,);//端口定义 inputClk50M; inputRst_n; output[3:0]led;//led默认为wire类型 reg[24:0]cnt; parameterCNT_MAX=25'd24_999_999; always@(posedgeClk50Morneg......
  • 在线制作仿真病历证明软件,易语言实现病例报告生成器,取画板快照+标签+编辑框
    闲着无聊用易语言开发了一个病例生成器,当然我加了水印的,这个图片你就算截图你也用不了,模板是从百度图库搜的,很多,我就随便找了一个,然后实现逻辑就是加了一个画板,然后载入了素材图,素材信息元素上面加入透明标签,默认不支持透明,但可以用黑月支持库就可以实现标签的透明化,然后具体的实......
  • 网络仿真分析
    分析协议工作原理一、客户端:58592;服务器:4431、Src:172.29.70.74,Dst:14.119.104.189客户端生成公、私钥,将公钥放在key_share中发送给服务端。标识符:Identification:0x6a2a(27178)TransmissionControlProtocol,SrcPort:58592,DstPort:443,Seq:1,Ack:1,Len:......
  • 基于OFDM的水下图像传输通信系统matlab仿真
    1.算法运行效果图预览  2.算法运行软件版本matlab2022a 3.算法理论概述      基于OFDM的水下图像传输通信系统是一种用于在水下环境中传输图像数据的通信系统。它采用了OFDM(OrthogonalFrequencyDivisionMultiplexing)技术,这种技术在水下通信中具有一些优......
  • Visual Components应用解决方案 衡祖仿真
    VisualComponents可为客户量身设计及规划自动化产线系统,作为全方位的数位规划工具,它能够从制程规划、生产到销售皆能够整合在单一平台,有助于内部的技术沟通及外部销售。此外利用VisualComponents整合物流及机器人模拟功能,可以去帮助客户及相关企业在研发前进行产能确认,减少不必要......
  • m基于Yolov2和GoogleNet深度学习网络的疲劳驾驶检测系统matlab仿真,带GUI界面
    1.算法仿真效果matlab2022a仿真结果如下:  疲劳状态:    2.算法涉及理论知识概要      疲劳驾驶检测系统是一种基于深度学习网络的系统,它结合了Yolov2和GoogleNet模型,用于检测驾驶员的疲劳状态和人脸。疲劳驾驶检测系统主要包括两个部分:人脸检测和疲劳......