跳转到主要内容

system-generator

System Generator从入门到放弃(一)-安装与使用

由 judy 提交于

System Generator是Xilinx公司进行数字信号处理开发的一种设计工具,它通过将Xilinx开发的一些模块嵌入到Simulink的库中,可以在Simulink中进行定点仿真,可以设置定点信号的类型,这样就可以比较定点仿真与浮点仿真的区别。并且可以生成HDL文件,或者网表,可以在ISE中进行调用

学会System Generator(9)——MCode调用MATLAB代码

judy /

本文是该系列的第9篇。FPGA设计中经常用到一些控制逻辑,如有限状态机(FSM),如果用各种block搭建一个FSM比较麻烦。System Generator支持调用MATLAB代码,通常可以编写MATLAB代码来实现FSM等控制逻辑,通过MCode block调用到System Generator设计中。

本文将使用MATLAB代码设计一个FSM,对“1011”这个序列进行检测。序列检测应该是很多Verilog/VHDL学习者在学习FSM时接触到的一个简单设计。本文将以该设计在System Generator中的实现为主题,介绍MCode的使用。

本设计使用到的block
1.Xilinx block:
MCode(->Index):调用MATLAB函数

2.其它block:
Repeating Sequence Stair(Simulink->Sources):生成序列

这里给出了设计中用到的所有block在库中的路径,后文不再提及(前文用过的block没有给出;同一block会包含在多个库中,为了寻找方便这里只列出一个路径)。

学会System Generator(8)——Reinterpret和Convert详解

judy /

本文是该系列的第8篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程;第7篇介绍了其中数据类型的选择与位宽截断的问题。本文将对其中使用到的Reinterpret和Convert模块进行详细介绍。

<strong>模块功能概述</strong>
数据转换,数据类型、位宽等问题都会影响到计算精度,对于设计者而言,需要考虑的就是相关影响是否可以接受,即是否会影响到实际的系统性能。FPGA设计中还经常需要截位,否则位宽在整个系统中不断积累,大大增加资源的消耗。

数据类型的转换和截位是FPGA系统设计的重要内容,博主在《FPGA数字信号处理》系列的很多设计中都有详细讨论。而在System Generator设计中,完成这项任务的便是Reinterpret和Convert模块。

数据类型转换模块在导出到FPGA设计中(定点与浮点之间的转换、浮点与浮点之间的转换),会使用Floating-Point IP核实现,具体可参考《FPGA数字信号处理》,本系列不详细介绍。

<strong>Reinterpret block</strong>

学会System Generator(7)选择最佳数据类型

judy /

本文是该系列的第7篇。第2篇中以数字滤波器的设计为主题,介绍了System Generator的完整设计流程。不过仍然有些问题需要解决:
1. 如何选择一个最合适的数据类型(以最少资源达到性能需求)?
2. 如何选择系统的输出位宽(保证信号不失真)?

传统的HDL模型设计方法中,博主通常会用MATLAB进行仿真,确认位宽对数据量化的影响;或在Vivado中仿真,截取合适的滤波器输出位数。System Generator提供的相关特性可以大大简化该流程,本文将对此做介绍。

本设计使用到的block
1.Xilinx block:
<li>Convert(->Basic Elements):数据格式转换</li>
<li>Reinterpret(->Basic Elements):数据格式转换</li>

2.其它block:
Digital Filter Design(DSP System Toolbox->Filtering->Filter Implementations):设计数字滤波器

学会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>