跳转到主要内容

学会System Generator(6)——设计优化与导入MATLAB变量

judy 提交于

本文是该系列的第6篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第4篇对设计进行了资源分析。本文将在此基础上,讨论如何对设计进行优化,以及介绍System Generator可以导入MATLAB的工作区(workspace)变量的特性。

<strong>优化设计</strong>
在第4篇中我们进行了设计的资源分析,结果如下:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38353-…; alt=""></center>

该设计使用了6个DSP单元,这是因为该FIR滤波器系数有11个,且具有对称性,因此需要使用6个乘法器并行运算。打开FDATool,点击上方的“Filter Coefficients”按钮,可查看滤波器系数:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38354-…; alt=""></center>

System Generator中FPGA时钟设置为20MHz;Gateway In block的采样率也为20MHz。这样每个时钟都要处理一个数据,因此在实现滤波器时采用了并行结构,占用了6个乘法器。

我们可以设置过采样模式来优化设计的资源使用率。在System Generator block中将FPGA clock period设置为8.33ns(120Mhz);Simulink system period设置为1/120e6(120MHz);Gateway In的采样率比便。这样每6个时钟处理一个数据,期望所有的乘法操作能共用一个乘法器。

点击Generate导出设计,此时Simulink会提示一个警告:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38355-…; alt=""></center>

主要提示我们采样率和时钟的设置,本设计是故意采用这种设置方式的,因此不用在意这个警告。运行结束后,生成资源分析报告:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38356-…; alt=""></center>

看到DSP单元只使用了一个,其它资源也节省了超过一半,符合预期。总而言之,在进行System Generator设计时,要综合考虑设计指标和硬件实际情况来对设计进行针对性优化。

<strong>导入MATLAB变量</strong>
Simulink已经提供了足够强大的功能,但有些设计还是需要在MATLAB中进行(比如考察位宽对数据量化的影响)。System Generator提供了该特性:可以将MATLAB的workspace中的变量直接用于block参数配置。

假设在MATLAB中已经确定某一数据的最佳位宽,workspace如下:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38357-…; alt=""></center>

打开Gateway In block(或其它需要配置该值的block),在编辑框里直接输入workspace中的变量名称即可:
<center><img src="http://xilinx.eetrend.com/files-eetrend-xilinx/blog/201808/13222-38358-…; alt=""></center>

所有的block都支持该特性。

文章来源:<a href="http://blog.csdn.net/fpgadesigner">FPGADesigner的博客</a&gt;
<font color="#FD8900">*本文由作者授权转发,如需转载请联系作者本人</font>