初识System Generator(安装+使用)

2020-06-29 11:09:48 浏览数 (1)

昨天大概讲了下数字信号处理中的模拟信号与数字信号之间进行转换的原理,今天将SystemGenerator给安装下,有些人在安装相关开发软件时可能就已经安好了。

首先简单介绍下它是干嘛用的。

System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,嵌入了Xilinx的一些模块,可以在MATLAB中的Simulink中进行定点仿真,可以设置定点信号的类型等操作,不过我更看重的是那个可以直接生成HDL文件,然后用于设计Xilinx的FPGA,ISE可以调用,VIVADO也可以调用,不过现在应该搞得比较多的是VIVADO,所以就直接按VIVADO的来玩这个System Generator。

System Generator是在安装VIVADO时就可选的,如果安装VIVADO的时候没安,就自己再补安下,可以看以下的操作步骤,先说下,我用的版本是VIVADO 2018.2,之前学VIVADO设计FPGA时安了后就没去更新过了,也不知道新版本的咋个样,估计差不到多少去。补安设计工具或者器件库都可以从这进入,打开VIVADO,再打开Help下的Add Design Tools or Devices....

然后登录你XILINX的账号进行下载安装(账号直接在官网注册个就行,或者查查有没有跳过该步骤的办法

进入安装界面后,勾选上图中的System Generator for DSP,我这边是已经安装好了,所以是显示打了勾的框,如果没安装是空白的,然后点击NEXT,再Install,慢慢等待安装完成就行了。

因为System Generator是在MATLAB上使用Simulink进行的,所以要和MATLAB一起运行,这就关系到其版本的问题了,根据自己下的VIVADO版本对应ug973这个文档中查看兼容哪些版本,在文档的配置的第三方工具这一项。

我的VIVADO是2018.2的版本,从下方的图可以看到MATLAB版本可以兼容R2017a,R2017b和R2018a,不过更高版本的当然也可以了,我用的就是R2019b,旧版本的不太清楚在使用的时候会不会出什么问题,可以自己尝试,当然要兼容ug973这个文件里没有的版本还需要对一个文件做下修改,不然SystemGenerator会不支持自己版本的MATLAB。

在改文件前,要先知道自己MATLAB的版本信息,网上说的是在卸载软件的地方可以看到,比如这个样子,不过我的R2019b的版本不是3.1这个,用3.1去改文件一直没成功,我还郁闷了好久为什么别人的跟我不一样,不过折腾了下还是找到真实的版本信息了。

我是这样操作得到版本信息的,先找到MATLAB这个EXE所在的路径(直接找安装路径或者其他方式打开位置所在),然后直接看它属性,再点详细信息,就可以看到版本信息了,我的就是9.7版本而不是上面看到的3.1。

知道自己MATLAB的版本信息后就可以更改Vivado安装目录下的文件ml_supported.xml,然后编辑,往里面添加你自己MATLAB版本的信息,以下红色框框里的就是要添加的版本信息。

添加完后,保存,然后打开System Generator 2018.2 MATLAB Configurator,在开始菜单中的Xilinx Design Tools下可以找到,我这边是因为还装了ISE的版本,所以会看到有四个,如果只装了一个XILINX的开发工具,只会有两个System Generator的相关。

打开配置后,会看到以下的图中这个样子,因为R2016a的MATLAB版本信息我没加在刚刚的文件中,所以会显示不支持的字样,R2019b则是未配置,按下方红箭头依次点击。

点击了Apply会出现

点OK就好了,然后会发现状态变成已配置,这时候相当于配置成功,再点OK结束就好了。

准备完成后,开始使用System Generator进行一个简单的设计流程

1、运行SystemGenerator 2018.2(按自己的版本打开即可),然后就会调用MATLAB的运行程序,等待打开完成后,MATLAB会有一段加载System Generator库的时间,当命令窗口出现如下图所示的情况就可以下一步操作;

注:从图中的表述可知道在命令窗口输入“xlDoc”能够打开System Generator的帮助文档,输入“demo blocksetxilinx”可查阅官方示例(感觉有点耗时,不知道是不是网络的原因)。

2、打开Simulink,可以在命令窗口输入simulink或者单机MATLAB工具栏的Simulink按钮,如下图所示

3、打开后,先建立一个空白模型并且保存到要存的位置上

4、打开Library Browser,这个打开就是Simulink的仿真库

5、在仿真库界面可以看到有Xilinx的仿真库“Xilinx Blockset”和“Xilinx Reference Blockset”

6、放置仿真模块并仿真,找到库界面中的Simulink,将该目录中的Source中的Constant模块和Sinks中的Scope模块放到刚刚建立的空白模型的窗口,并且连接起来,可以先仿真看此时的结果。

Constant模块中的Sample time默认为inf的,需要先将其改为你想要的采样时间,不然仿真的结果只有一个点。

改好采样时间后,运行10s仿真,可得以下的结果:

7、放置SystemGenerator的仿真模块并仿真,打开Xilinx Blockset下的Basic Elements,将图中的四个模块放到模型文件中,看到这些名字,或许你就知道我要实现的是一个什么功能。

8、将放置好的功能模块连接起来,如下图所示

9、运行10s的仿真,结果如下,可以看到在等待1s以后,信号才持续输出,这也是用到Delay的那个延迟作用所致;

本来还想把生成VIVADO工程的也继续写出来,但是在生成工程的时候遇到一个奇怪的bug,看看明天发之前能不能解决掉,我把相关的软件都传到了网盘,没有MATLAB或者VIVADO的可以自行获取来安装使用,设计文件我就不传上去了,感觉没什么实际意义,这篇也主要就是对这个工具的使用流程有个了解先。

0 人点赞