记录《学会System Generator》系列的目的是为了熟练掌握Xilinx公司旗下System Generator产品的使用。本文是该系列的第一篇,主要介绍System Generator的基本知识以及软件的安装。
System Generator基本特性
System Generator是一款DSP设计工具,其借助MATLAB中的Simulink开发环境完成FPGA的设计。这是一种与传统的“从RTL出发进行FPGA设计”完全不同的设计方法。
System Generator具有如下关键特性:
超过90种DSP设计模块,包括加法器、乘法器、寄存器、FFT、滤波器、存储器等等;
包含一个与7系列/UltraScale系列FPGA相贴合的FIR编译模块,支持多种滤波器模式,可以使用MATLAB函数或FDATOOL工具生成系数;
包含一个MCode模块,可以接入MATLAB代码,完成简单的控制;
支持硬件协同仿真(需要特定的硬件平台支持);
可以在一个DSP系统中集成RTL设计、MATLAB代码、Simulink、C/C++(借助Vivado HLS模块),还可以同ModelSIm或Vivado Simulator工具进行协同仿真。
可以看出,System Generator是一种基于模型设计的方法,在一个平台上连接多种不同功能的模块,进而完成整个DSP系统的设计。
System Generator安装
System Generator需要同MATLAB一同使用。System Generator软件会同Vivado一起下载,并且在安装Vivado时为可选安装;MATLAB版本必须与System Generator版本兼容。版本兼容信息可以在ug973中查询,以2017.2版本为例:
在ug973 Ch.2的“Compatible Third-Party Tools”小节中可查阅到上表,从表中可以看到支持的MATLAB版本。博主使用的是System Generator 2017.2版本与MATLAB R2016a版本(win10操作系统),在后续的设计中,都将基于此开发环境。
在安装Vivado的过程中,会出现配置MATLAB的界面,如果安装时没有配置,可以在“开始->Xilinx Design Tools->System Generator 2017.2 MATLAB Configurator”工具中修改(具体路径可能会不同,右键->更多->打开文件位置->右键->以管理员身份运行):
点击后界面如下(这是已经配置好的状态):
当MATLAB的Status为“Not Configured”时,选中前面的复选框,点击“Apply”,Status变更为Configured,表明配置正确。
初识System Generator
运行System Generator(注意不要直接运行MATLAB,否则无法向Simulink中添加Block),在命令行中输入simulink后回车(或者点击“主页”标签中的Simulink按钮),打开Simulink:
点击“Blank Model”创建一个空模型:
点击“Library Browser”打开Simulink库:
列表中可以找到“Xilinx Blockset”和“Xilinx Reference Blockset”,其中的模块即为System Generator设计时使用的模块。添加block到Simulink中有两种方法:
- 像上述一样打开库,在库中搜索;
- 在Simulink空白处点右键->Xilinx BlockAdd,在出现的小窗口中搜索,双击可添加到模型中。
第一个方法适合于在库中寻找未知的block;如果已经对某block很熟悉,用第二个方法更方便。添加System Generator、Gateway In、Gateway Out、Delay、Constant(不是Xilinx Blockset中的那个)、Scope,按下图连接:
Constant输出一个常数值1,Delay延迟一个采样周期,其它block的具体用法可参考本系列后面文章。直接点击Run运行,打开Scope,结果如下:
看到经过1个单位延迟后,输出保持为1。保存Model,Simulink的模型文件存储为“.slx”格式。本系列后面文章将不再讲述如何新建模型与添加block。
System Generator学习资料
◎ug948:讲述了6个使用System Generator的基本实验,熟悉软件特性。
◎ug958:介绍了System Generator的所有Block相关知识(在Simulink中添加好Block后,右键->help,也可以查阅到相关介绍)。
◎ug897:详细介绍了System Generator的所有功能特性。
◎MATLAB(通过System Generator启动)中输入“xlDoc”可查阅System Generator的帮助文档;输入“demo blockset xilinx”可查阅官方示例。
本文简单认识了System Generator。该系列后面的文章将介绍借助System Generator的特性,完成FPGA设计的过程,以及使用各种Block完成各种DSP系统的设计,这也是System Generator设计的主要内容。