广告

原创 Xilinx System Generator 学习笔记(1)

2017-10-9 21:46 920 1 1 分类: FPGA/CPLD

一、FPGA信号处理的方法

  在数字信号处理方面,FPGADSP具有更多的优势,主要表现在速度和性能。FPGA处理的性能取决于处理数据的并行结构,而微处理器与所运行的频率密切相关。

  如下图所示,传统的微处理器和DSP在实现256FIR滤波器时,采用了顺序的处理结构。这样,就限制了数据的吞吐量。由于这个处理结构采用的是共享时间的乘积累加(Multiply Accumulate,MAC)单元,因此通过高频率驱动这个单元会造成系统的竞争力的降低。在这个结构中,每个数据采样执行256个乘和加操作。每256个时钟周期才能输出一个结果。



  当采用FPGA的并行处理结构时,可以得到最大的数据吞吐量。由于这种结构支持任何的并行度,因此可以很好地在性能和成本之间进行权衡。在这个结构中,每个数据采样同时执行256个乘和累加(MAC)操作,可以在每个时钟周期输出一个结果。

  以前使用FPGA进行数字信号处理比较困难,是由于使用HDL语言描述数字信号处理模型非常麻烦。但是,随着高级建模工具SysGen的出现,使得在FPGA内构建数字信号处理的模型变的更加简单。所以越来越多的高性能信号处理都采用FPGA实现,而不使用DSP

  通常使用标准的Simulink块集创建一个可执行的规范。该规范可以使用浮点数值精度进行设计,而不需要知道详细的硬件细节。一旦定义了功能和基本的数据流,SysGen可以用来为Xilinx的器件指定硬件的实现细节。SysGen使用了Simulink中的Xilinx DSP块集,并且通过自动调用Xilinx的核生成器为所构建的DSP模块生成经过优化的网表。此外,SysGen可以执行所有的下游的实现工具,为FPGA生成比特流文件。同时可以选择通过使用来自Simulink所提取出来的测试向量创建用于ModelSim的测试平台。

       SysGen并不是用来取代基于HDL的设计,但是可以是设计的注意力只集中在关键的部分。类似地,绝大部分的DSP程序员都不会专门在汇编器中编程,他们都使用高级语言编程。只有在必须满足性能要求时才使用汇编。


拇指规则:在设计中必须管理内部硬件时钟的部分,应该使用HDL实现。设计中少量的关键部分使用SysGen实现,然后将HDLSysGen设计连接起来。通常,除了外部接口以外,一个信号处理系统的绝大部分不需要这个级别的控制。System Generator 提供了机制,用于将HDL代码导入到设计中,这是HDL设计者十分感兴趣的。另一个令设计者感兴趣的方面是,SysGen能自动地生成HDL测试平台,包括测试向量。

  通过硬件协同仿真处理接口,我们可以在Simulink的控制下,在硬件上运行设计。这样,可以充分发挥matlabSimulink用于数据分析和可视化的功能。


二、FPGA设计模块的介绍


     Xilinx Blockset,包含了基本的SysGen模块,一些模块是底层的,提供了对器件指定硬件的访问,其他是高层次的,实现信号处理和高级的通信算法。为了方便,具有广泛适用的模块(如Gateway I/O块)是很多库的成员。每个模块包含在Index库中。



Xilinx Reference Blockset 包含了SysGen的复合体,用于实现范围更广的功能

三、信号模型的构建


1、模型的时域表达式


通过 Z 变换 变换到 Z 域



2、打开System Generator,会打开matlab(版本为R2015b),然后在命令窗口输入 simulink,然后simulink 就被打开了。

  在Simulink下新建一个空白的设计界面。然后在Simulink主界面的Library Browser窗口下展开Xilinx Blockset,点击击Floarting-Point,出现用于浮点信号处理的IP 核元件。如下图所示。

Gateway In Gateway Out 元件拖入到设计中。

Gateway In元件作用:

  1. 从浮点数转换为Nboolean类型,有符号(二进制补码)或者无符号定点精度;
  2. 在转换期间,提供选项管理额外的位;
  3. SysGen 生成的HDL设计中,定义了顶层输入端口的名字;
  4. 当在SysGen 块中,勾选 Create Testbench 选项时,定义了测试平台的激励源;

Gateway Out 作用:

  1. SysGen产生的定点数转为Simulink的双精度;
  2. SysGen生成的HDL设计中,定义了顶层输出端口的名字。

   拖拽3Delay元件和CMult元件、Addsub元件到设计窗口。

   展开Xilinx Blockset,找到Basic Elements,System Generator 元件拖入设计窗口。

   在主界面的Libraries窗口下,找到并展开Simulink,找到Sinks,Scope元件拖入到设计中。(打开Scope元件符号,将Number of axis 设置为2


             按照如下图所示连接元器件

3、模型参数的设置


(1)Sine Wave

先介绍一下正弦信号的类型(Sine type

  1. 基于时间Time-Based)的模式,在该模式下,正弦信号的输入由下式决定


在该模式下有两个可以选择的子模式,即连续模式和离散模式。Sample time 参数的值确定子模式,当该参数为0时,是连续模式,当该参数大于0时,是离散模式。


   2.基于采样(Sample-Based)的模式,使用下面的公式:

其中,A是信号的幅度,P是每个正弦周期的采样个数,k是重复的整数值,其范围从0~p-1, o 是信号的偏置(相位移动);b是信号的直流偏置。


参数按如下图配置


  双击Gateway In符号,打开参数设置对话框,参数设置为:Output Type : Float-point;Floating-point Precision:Single其他参数默认。

   双击Delay1符号,在Basic标签页,设置Latency2Delay2Latency设置为3

  双击CMult符号,参数设置如下:Constant value:3;Constant Type: Floating-point;Floating-point Precision: Single。

       双击CMult1符号,参数设置如下:Constant value:4;Constant Type: Floating-point;Floating-point Precision :Single;

双击CMult2符号,参数设置如下:Constant value: 1.5;Constant Type: Floating-point;Floating-point Precision:Single


双击所有Addsub符号,将Latency设置为0(无延迟)


4、模型的仿真

  在设计窗口的工具栏的文本框中输入45.0;然后单击仿真按钮,开始仿真;仿真结束后,在设计中双击Scope符号。显示如下图

5、生成模型子系统

  鼠标选中Gateway In 和Gateway Out之间的区域,单击鼠标右键,在弹出的快捷菜单中,选择Create Subsystem From Selection 命令。

6、模型HDL代码的生成

双击System Generator 符号,参数设置如下



然后单击Generate。


7、打开设计文件并仿真

netlist子目录下打开该工程,然后进行行为级仿真











广告

文章评论 0条评论)

登录后参与讨论
相关推荐阅读
LoneSurvivor 2018-02-25 08:26
C++输入/输出流(2)
1. get()函数#include<iostream>using namespace std;int main(){    char s1[80], s2[...
LoneSurvivor 2018-02-23 12:19
C++输入/输出流(1)
1. 输入/输出流类层次 C++的输入/输出流类库是用派生方法建立起的,它有2个平行的基类,streambuf和ios。其他的流类都是从这两个基类直接或间接派生的。1.1  ...
LoneSurvivor 2018-02-19 11:36
C++多态(4)——特殊运算符重载和类类型转换
1.“++”和“--”的重载     运算符“++”和“--”的重载要区分前置和后置两种形式。如果不区分前置和后置,则使用operator++()或operator—()即可...
LoneSurvivor 2018-02-12 11:15
C++多态(3)——运算符重载
1.     运算符重载的定义     运算符重载也是实现多态的一个重要手段。运算符重载实现的是编译时的多态,即静态多态性。C++预...
LoneSurvivor 2018-02-12 10:31
C++多态(2)——纯虚函数与抽象类
   抽象类是一种特殊的类,它提供了统一的操作界面。建立抽象类是为了多态地使用抽象类的成员函数。抽象类是包含纯虚函数的类。 1.    ...
LoneSurvivor 2018-02-11 16:24
C++多态(1)
1.     多态      多态是人类思维方式的一种直接模拟,多态性是指不同对象接收到相同的消息时,根据对象类的不同而产...
我要评论
0
1
广告
关闭 热点推荐上一条 /1 下一条