使用System Generator在Xilinx FPGA内部实现DSP算法

更新时间:2023-07-17 21:35:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

希望对大家有所帮助

使用System Generator在Xilinx FPGA内部实现DSP算法

System Generator是DSP高层系统设计和Xilinx FPGA实现之间的桥梁。它在MATLAB/Simulink的环境下完成算法的建模,然后生成相应的工程。ISE可对工程进行仿真、综合,最后完成算法的硬件化。其中的过程是反复迭代修正的,而System Generator正是中间不可缺少的纽带,如图所示。System Generator支持的FPGA 结构包括Virtex,Virtex-E,Virtex-II,Virtex-II Pro,Spartan-II,Spartan-IIE,Spartan-3。

在DSP设计开始时对需要的操作进行数字的描述,然后得出算法的硬件实现。即使开始时的数字描述非常可靠,但是硬件实现起来就会很少和开始的描述完全相符合,一般来说System generator设计的流程包括以下几个步骤:

(1)用数学语言来描述算法;

(2)在设计环境中实现算法,开始时用双精度;

(3)把双精度算法转换成固定点算法;

(4)把设计翻译成有效的硬件。

Simulink提供了一个可以创建和仿真动态系统的可视化的环境,System generator以一个被称为Xilinx blockset 块包含在Simulink 库里并且System generator作为一个软件把Simulink模型翻译成一个硬件可执行的模型。System generator把在Simulink中定义的系统参数对应成硬件实现时的实体、构造体、输入输出口、信号和属性。此外,System generator自动地为FPGA的综合,HDL仿真和实现工具生成命令文件。因此,从系统的规范说明到硬件实现,用户都完全可以在可视化的环境中进行操作。System generator设计流程如图所示。

希望对大家有所帮助

下面以一个数字调制解调系统的设计,介绍System Generator的设计方法和设计流程。 设计框图如下图:

希望对大家有所帮助

载波信号和信源信号,我们都使用有DDS产生的正弦波。在数字调制部分,我们采用简单幅度调制,用一个乘法器即可实现。相移电路用触发器实现。解调器也用乘法器实现。 设计步骤:

1. 在Matlab 的Simulink环境中新建工程模型(model)

2. 从Simulink的Xilinx库中拖入需要的模块(block),然后连接模块,设置模块参数, 如下图所示:

两个DDS模块产生信号和调制信号,两个乘法器(Mult)模块完成调制和解调工作,Delay用于模拟传输过程中延时,最后时FIR滤波器和用于驱动DAC(Digital to Angal Convert)的时钟信号。

把设计仿真的结果如下:

DDS信源输出的波形如下图:

DDS载波信号的波形如下图:

幅度调制后信号的波形如下图:

解调后信号波形如下图:

希望对大家有所帮助

低通滤波后信号波形如图:

这样我们的设计仿真部分完成了,从仿真的结果看,基本满足了设计的要求。

3.运行System Generator把设计转化为VHDL语言,并在ISE环境中添加必要的UCF(user constraint file,用户约束文件),对应好FPGA的管脚(前提是在FPGA开发板上有相应的DA芯片),综合,翻译,布线后,生成BIT文件,直接Down到FPGA,在DA的输出端,就可以看到输出的波形了 。

本文来源:https://www.bwwdw.com/article/qh81.html

Top