选学第七章基于SystemGenerator的DSP系统开发技术_第1页
选学第七章基于SystemGenerator的DSP系统开发技术_第2页
选学第七章基于SystemGenerator的DSP系统开发技术_第3页
选学第七章基于SystemGenerator的DSP系统开发技术_第4页
选学第七章基于SystemGenerator的DSP系统开发技术_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章第七章 基于基于System Generator的的DSP系统开发技术系统开发技术 vSystem Generator简介简介vSystem Generator安装安装vSystem Generator基础基础vSimulink 简介简介vAccelDSP 简介简介v基于基于System Generator的的DSP系统设计系统设计v基于基于System Generator的硬件协仿真的硬件协仿真System Generator简介简介vFPGA是理想的高性能数字信号处理器件是理想的高性能数字信号处理器件 包含了逻辑资源,还有多路复用器、存储器、硬核乘包含了逻辑资源,还有多路复用器、存储

2、器、硬核乘加单元以及内嵌的处理器等设备,还具备高度并行计加单元以及内嵌的处理器等设备,还具备高度并行计算的能力;算的能力; 特别适合于完成数字滤波、快速傅立叶变换等。特别适合于完成数字滤波、快速傅立叶变换等。vFPGA并未在数字信号处理领域获得广泛应用并未在数字信号处理领域获得广泛应用 (?)(?) 大部分大部分DSP设计者通常对设计者通常对C语言或语言或MATBLAB工具很熟工具很熟悉悉 ,不了解硬件描述语言,不了解硬件描述语言VHDL和和Verilog HDL ; 部分部分DSP工程师认为对工程师认为对HDL语言在语句可综合方面的语言在语句可综合方面的要求限制了其编写算法的思路。要求限制了

3、其编写算法的思路。 System Generator简介简介vSystem Generator for DSP Xilinx简化简化FPGA数字处理系统的集成开发工具;数字处理系统的集成开发工具; 和和Simulink(MathWorks公司产品)实现无缝链接,公司产品)实现无缝链接,利用利用Simulink建模和仿真环境来实现建模和仿真环境来实现FPGA设计,无设计,无需了解和使用需了解和使用 RTL级硬件语言;级硬件语言; Xilinx公司公司XtremeDSP解决方案的关键组成,集成了解决方案的关键组成,集成了先进的先进的FPGA设计工具以及设计工具以及IP 核,支持核,支持Xilinx

4、公司全系公司全系列的列的FPGA芯片;芯片; 可作为可作为MATLAB软件中的一个硬件设计工具包。软件中的一个硬件设计工具包。 System Generator简介简介System Generator简介简介vSystem Generator的主要特征的主要特征 可在可在MATLAB/Simulink环境下对算法以及系统建模,环境下对算法以及系统建模,并生成相应的工程;并生成相应的工程; 再调用再调用ISE相应的组件进行仿真、综合、实现,并完成相应的组件进行仿真、综合、实现,并完成芯片的配置。芯片的配置。 System Generator简介简介v System Generator的主要特征的

5、主要特征 丰富的丰富的DSP模块模块 信号处理(如信号处理(如FIR滤波器、滤波器、FFT) 纠错(如纠错(如Viterbi 解码器、解码器、Reed-Solomon编码器编码器/解码器)解码器) 算法算法 存储器(如存储器(如FIFO、RAM、ROM) 数字逻辑功能的数字逻辑功能的Xilinx模块集模块集 使用户导入使用户导入.m函数及函数及HDL模块模块 Simulink设计的设计的VHDL或或Verilog的自动代码生成的自动代码生成 硬件协仿真硬件协仿真 FPGA 在环路(在环路(FPGA-in-the-loop),加速用户的硬件验证工),加速用户的硬件验证工作并加速其在作并加速其在S

6、imulink与与MATLAB中的仿真中的仿真 嵌入式系统的硬件嵌入式系统的硬件/软件协设计软件协设计 直接加载直接加载Xilinx公司的公司的MicroBlaze 32位位 RISC处理器,甚至构处理器,甚至构建和调试建和调试DSP协处理器协处理器 System Generator安装安装v软件环境软件环境 (以(以System Generator 9.1为例)为例) MATLAB v7.3/Simulink v6.5(R2006b)或)或MATLAB v7.4/ Simulink v6.6(R2007a)。)。MATLAB软件的安软件的安装路径上不能出现空格。装路径上不能出现空格。 ISE

7、版本为版本为9.1.01i或者更高版本,或者更高版本,ISE Simulator的版的版本为完全版;本为完全版; System Generator软件版本必须和软件版本必须和ISE版本一致。版本一致。 IP核库的版本为核库的版本为ISE IP 9.1i Update 1或者更高版本。或者更高版本。 系统环境变量系统环境变量$XILINX必须设置为必须设置为ISE的安装目录。的安装目录。 综合工具综合工具Synplify Pro的版本为的版本为v8.6.2或或v8.8.0.4; 仿真工具仿真工具ModelSim的版本至少为的版本至少为PE或或SE v6.1f以及以及更高版本。更高版本。 Syst

8、em Generator安装安装v与与MATLAB关联关联 System Generator基础基础System Generator基础基础v浮点运算开发浮点运算开发 利用利用MATLAB软件及其提供的工具包快速地完成浮点软件及其提供的工具包快速地完成浮点算法的开发、验证以及性能评估;算法的开发、验证以及性能评估; 借助于借助于Simulink可快速完成原型设计和模型分析。可快速完成原型设计和模型分析。v定点算法实现定点算法实现 将将MATLAB浮点算法通过浮点算法通过AccelDSP在在Xilinx器件上实器件上实现定点逻辑现定点逻辑 ; AccelDSP直接将浮点直接将浮点MATLAB算法

9、的算法的M-文件自动生文件自动生成可综合的成可综合的RTL模型,自动进行浮点模型,自动进行浮点-定点转换,生成定点转换,生成可综合的可综合的VHDL或或Verilog HDL设计,并创建用于验证设计,并创建用于验证的测试平台。的测试平台。 System Generator基础基础v硬件系统设计与实现硬件系统设计与实现 定义使用定义使用Xilinx IP的详细硬件架构,采用的详细硬件架构,采用System Generator for DSP 划分协处理器和可编程器件之间划分协处理器和可编程器件之间的设计的设计 ; 会生成下列文件:会生成下列文件: 设计所对应的设计所对应的HDL程序代码;程序代码

10、; 时钟处理模块,包括系统时钟处理操作以及生成设计中时钟处理模块,包括系统时钟处理操作以及生成设计中所需的不同频率的时钟信号;所需的不同频率的时钟信号; 用于测试设计的用于测试设计的HDL测试代码,可直接将其仿真结果和测试代码,可直接将其仿真结果和Simulink输出比较;输出比较; 工程文件以及综合、实现过程所产生的各种脚本文件。工程文件以及综合、实现过程所产生的各种脚本文件。System Generator基础基础v代码优化代码优化 利用利用ISE RTL设计环境生成优化的设计环境生成优化的FPGA设计;设计; 不仅要熟悉算法的架构、瓶颈,还需精通不仅要熟悉算法的架构、瓶颈,还需精通RTL

11、设计;设计; 属于高级应用,直接对属于高级应用,直接对RTL进行修改和优化。进行修改和优化。Simulink简介简介vSimulink是是MATLAB的组件的组件 安装程序会自动将其安装到安装程序会自动将其安装到MATLAB目录下;目录下; Simulink的运行需要的运行需要MATLAB后台的支持,因此必须后台的支持,因此必须要安装要安装MATLAB软件。软件。 工具栏点击或者命令启动工具栏点击或者命令启动Simulink简介简介vSimulink工作原理工作原理 模型初始化模型初始化 模型执行模型执行 一般模型是使用数值积分来进行仿真;一般模型是使用数值积分来进行仿真; 仿真结束时,模型得

12、出系统的输入、状态和输出仿真结束时,模型得出系统的输入、状态和输出 。Simulink设计示例设计示例v例例 建立一个调幅(建立一个调幅(AM)系统,信号频率为)系统,信号频率为100KMHz,载波频率为,载波频率为1MHz,调幅系数为,调幅系数为0.5,并在示波器中显示出来。并在示波器中显示出来。 启动启动Simulink; 新建一个模型,新建一个模型, “New Model”命令新模型保存为命令新模型保存为am.mdl; 从从Simulink library Browser中加入基本模块中加入基本模块 ; 连接各个模块连接各个模块 ; 在工具栏点击运行(在工具栏点击运行(RUN)图标)图标

13、 ,再直接点击,再直接点击Scope模块即可观察运行结果模块即可观察运行结果 。 Simulink设计示例设计示例AccelDSP简介简介 vAccelDSP AccelDSP是一款第三方综合软件,可将是一款第三方综合软件,可将MATLAB浮点浮点算法转换成为可综合算法转换成为可综合RTL代码代码 ; Xilinx AccelDSP是目前业界唯一能够将是目前业界唯一能够将MATLAB浮点浮点算法转换成为可综合算法转换成为可综合RTL代码的开发工具;代码的开发工具; 自动地进行浮点自动地进行浮点-定点转换,生成可综合的定点转换,生成可综合的VHDL或或Verilog代码,并创建用于验证的测试平台

14、;代码,并创建用于验证的测试平台; 可以生成定点可以生成定点C+模型或由模型或由MATLAB算法得到算法得到System Generator块块 ; Xilinx XtremeDSP解决方案的重要组成部分。解决方案的重要组成部分。 AccelDSP简介简介v AccelWare 包含一系列参数包含一系列参数DSP模块的模块的IP库;库; 可以综合成为可以综合成为RTL代码(代码(VHDL或或Verilog)。)。 v AccelWare IP(包含三个专用工具箱)(包含三个专用工具箱) 信号处理工具包:信号处理工具包:FIR 滤波器、滤波器、CIC 抽取滤波器、抽取滤波器、CIC内插滤波器、内

15、插滤波器、多相抽取滤波器、半带多相抽取滤波器、半带 FIR 滤波器、滤波器、FFT 以及以及IFFT等;等; 通信工具包:通信工具包:直接数字合成器、直接数字合成器、BCH 编码器和解码器、卷积交织编码器和解码器、卷积交织器和去交织器、卷积编码器、器和去交织器、卷积编码器、Reed-Solomon 编解码器、编解码器、Viterbi解码器、开方升余弦滤波器、加扰器、解扰器以及解码器、开方升余弦滤波器、加扰器、解扰器以及ADC采样采样-保持保持电路电路/正弦比较滤波器等;正弦比较滤波器等; 高级数学运算工具包:高级数学运算工具包:QR分解法、分解法、Cholesky分解法、分解法、QR求逆、求逆

16、、Cholesky求逆、三角形矩阵求逆、特定排列旋转、多项式求值、求逆、三角形矩阵求逆、特定排列旋转、多项式求值、奇异值分解以及奇异值分解以及QRD-RLS空间滤波器等。空间滤波器等。 基于基于System Generator的的DSP系统设计系统设计vXilinx Blockset库库 System Generator和和Simulink是无缝链接的,可以在是无缝链接的,可以在MATLAB标准工具栏中直接启动;标准工具栏中直接启动; 在在Simulink环境中,只有通过环境中,只有通过Xilinx模块搭建的系统才模块搭建的系统才能保证硬件可实现,类似于能保证硬件可实现,类似于HDL语言中的可

17、综合语句。语言中的可综合语句。 基于基于System Generator的的DSP系统设计系统设计vSystem Generator库库 基于基于System Generator的的DSP系统设计系统设计v基本单元模块基本单元模块 包含了数字逻辑的标准组件模块包含了数字逻辑的标准组件模块 ; 可插入时间延迟、改变信号速率、引入常数、计数器可插入时间延迟、改变信号速率、引入常数、计数器以及多路复用器等以及多路复用器等 ; 包含了包含了3个特殊的模块个特殊的模块System Generator标志、黑盒标志、黑盒子模块(子模块(Black Box)以及边界定义模块)以及边界定义模块 。基于基于Sy

18、stem Generator的的DSP系统设计系统设计v通信模块通信模块 提供了用于实现数字通信的各种函数提供了用于实现数字通信的各种函数 基于基于System Generator的的DSP系统设计系统设计v控制逻辑模块控制逻辑模块 创建各种控制逻辑和状态机的资源创建各种控制逻辑和状态机的资源 包括逻辑表达式、软核控制器、复用器以及存储器包括逻辑表达式、软核控制器、复用器以及存储器 基于基于System Generator的的DSP系统设计系统设计v数据类型模块数据类型模块 用于信号的数据类型转换用于信号的数据类型转换 包括移位、量化、并包括移位、量化、并/串、串串、串/并转换以及精度调整模块

19、并转换以及精度调整模块 基于基于System Generator的的DSP系统设计系统设计vDSP模块模块 System Generator的核心的核心 包含了所有常用的包含了所有常用的DSP模块模块 基于基于System Generator的的DSP系统设计系统设计v数学运算模块数学运算模块 丰富的数学运算库丰富的数学运算库 包括基本四则运算、三角运算以及矩阵运算等包括基本四则运算、三角运算以及矩阵运算等 基于基于System Generator的的DSP系统设计系统设计v存储器模块存储器模块 包含了所有包含了所有Xilinx存储器的存储器的Logic Core 基于基于System Gen

20、erator的的DSP系统设计系统设计v共享储存器模块共享储存器模块 主要用于共享存储器操作主要用于共享存储器操作 基于基于System Generator的的DSP系统设计系统设计v工具模块工具模块 ModelSim、ChipScope、资源评估等模块以及算法、资源评估等模块以及算法设计阶段的滤波器设计等设计阶段的滤波器设计等 基于基于System Generator的的DSP系统设计系统设计vFPGA边界定义模块边界定义模块 通过两个标准模块通过两个标准模块“Gateway In”和和“Gateway Out”来定义来定义Simulink仿真模型中仿真模型中FPGA的边界;的边界; Gat

21、eway In模块标志着模块标志着FPGA边界的开始,能够将输边界的开始,能够将输入的浮点转换成定点数;入的浮点转换成定点数; Gateway Out模块标志着模块标志着FPGA边界的结束,将芯片的边界的结束,将芯片的输出数据转换成双精度数。输出数据转换成双精度数。 基于基于System Generator的的DSP系统设计系统设计vSystem Generator标志标志 每个每个System Generator应用框图都必须至少包含一个应用框图都必须至少包含一个System Generator标志;标志; 用来驱动整个用来驱动整个FPGA实现过程,不与任何模块相连实现过程,不与任何模块相连

22、 ; 打开属性编辑框,能够设置目标网表、器件型号、目打开属性编辑框,能够设置目标网表、器件型号、目标性能以及系统时钟频率等指标标性能以及系统时钟频率等指标 。 基于基于System Generator的的DSP系统设计系统设计v建立简易的建立简易的DSP设计设计 例例 使用使用System Generator建立一个建立一个3输入(输入(a、b、c)的的DSP4模块的计算电路,使得输出模块的计算电路,使得输出p = c + a * b,并,并利用标准的利用标准的Simulink模块对延迟电路进行功能验证。模块对延迟电路进行功能验证。 1.建立一个新的建立一个新的Simulink模型,并保存为模

23、型,并保存为mydsp.mdl。 2.选择选择Xilinx DSP48模块,拖到模块,拖到mydsp.mdl;按照同;按照同样的方法添加边界定义模块以及样的方法添加边界定义模块以及System Generator标标志模块。志模块。 3. 添加添加Simulink标准库中的常数模块(标准库中的常数模块(Constant)和)和显示器(显示器(Display)模块。其中常数模块用于向)模块。其中常数模块用于向DSP计计算电路灌数据,作为测试激励;显示器则用于观测输算电路灌数据,作为测试激励;显示器则用于观测输出数据。出数据。基于基于System Generator的的DSP系统设计系统设计 4.

24、 连接模块连接模块 Xilinx模块之间的端口可以直接相互连接模块之间的端口可以直接相互连接 Xilinx模块和非模块和非Xilinx模块之间的连接需要模块之间的连接需要Gateway连接连接基于基于System Generator的的DSP系统设计系统设计 5. 设定系统参数设定系统参数 多数选项与多数选项与ISE开发中开发中选项相同;选项相同; “Create testbench”,自动生成设计的测试自动生成设计的测试代码。代码。 基于基于System Generator的的DSP系统设计系统设计 6.设置关键模块参数设置关键模块参数 Gataway In模块属性可查看输入数据位宽和量化规

25、则模块属性可查看输入数据位宽和量化规则 基于基于System Generator的的DSP系统设计系统设计 7. 运行测试激励运行测试激励 运行运行Simulink仿真,可以看到显示器输出为仿真,可以看到显示器输出为18,表明设,表明设计的功能是正确的。计的功能是正确的。 8. 生成生成HDL代码代码 基于基于System Generator的的DSP系统设计系统设计 相应的文件夹相应的文件夹“netlist sysgen”子目录中子目录中“nonleaf_results.v” 可作为子模块直接使用可作为子模块直接使用生成的部分代码段生成的部分代码段基于基于System Generator的的

26、DSP系统设计系统设计vSystem Generator中的信号类型中的信号类型 “Format” 菜单中的菜单中的“Port/Signal Display Port Data Types”命令,来显示所有端口的数据类型,形象命令,来显示所有端口的数据类型,形象显示整个系统的数据精度。显示整个系统的数据精度。 可根据输入端口的数据类型来确定输出数据类型可根据输入端口的数据类型来确定输出数据类型 。 允许设计人员自定义模块的输入、输出数据的量化效允许设计人员自定义模块的输入、输出数据的量化效果以及饱和处理。果以及饱和处理。 Simulink中的连续时间信号,还必须经过中的连续时间信号,还必须经过

27、“Gateway In”模块的采样转换才能使用。模块的采样转换才能使用。 基于基于System Generator的的DSP系统设计系统设计v自动代码生成自动代码生成 System Generator能够自动地将设计编译为低级的能够自动地将设计编译为低级的HDL描述,且编译方式多样,取决于描述,且编译方式多样,取决于 System Generator标志中的设置。标志中的设置。 还需要生成一些辅助下载的文件工程文件、约束文件还需要生成一些辅助下载的文件工程文件、约束文件等,以及用于验证的测试代码。等,以及用于验证的测试代码。 详见详见7.3.3节。节。 基于基于System Generator

28、的的DSP系统设计系统设计v编译编译MATLAB设计生成设计生成FPGA代码代码 两种方法将两种方法将MATLAB设计设计.m文件转化为文件转化为HDL设计设计 : 利用利用AccelDSP综合器综合器 :多应用于复杂或高速设计中,多应用于复杂或高速设计中,常用来完成高层次的常用来完成高层次的IP核开发。核开发。 直接接利用直接接利用MCode模块:模块:支持支持MATLAB语言的有限子集,语言的有限子集,实现算术运算、有限状态机和逻辑控制等。实现算术运算、有限状态机和逻辑控制等。 要使用要使用MCode模块,必须实现编写模块,必须实现编写.m函数,且代码文件函数,且代码文件必须和必须和Sys

29、tem Generator模型文件放在同一个文件夹中,模型文件放在同一个文件夹中,或者处于或者处于MATLAB路径上的文件夹中。路径上的文件夹中。 基于基于System Generator的的DSP系统设计系统设计 例例 使用使用MATLAB编写一个简单的移位寄存器完成对输编写一个简单的移位寄存器完成对输入数据乘入数据乘8以及除以以及除以4的操作,并使用的操作,并使用MCode将其编译将其编译成成System Generator直接可用的定点模块。直接可用的定点模块。 1相关的相关的.m函数代码为:函数代码为:基于基于System Generator的的DSP系统设计系统设计 2. 新建新建S

30、ystem Generator设计,添加设计,添加MCode模块模块 通过通过Browse按键按键将将 .m函数和模型函数和模型设计关联起来设计关联起来 基于基于System Generator的的DSP系统设计系统设计 3. 添加边界模块、添加边界模块、Sytem Generator模块、正弦波测模块、正弦波测试激励以及示波器模块试激励以及示波器模块 基于基于System Generator的的DSP系统设计系统设计 4.运行仿真,正确实现了运行仿真,正确实现了.m文件的功能。左图将信号文件的功能。左图将信号放大了放大了8倍,右图将信号缩小了倍,右图将信号缩小了4倍。倍。 基于基于Syste

31、m Generator的的DSP系统设计系统设计 5. 自动代码生成自动代码生成基于基于System Generator的的DSP系统设计系统设计v子系统的建立和使用简介子系统的建立和使用简介 建立子系统的方法是利用建立子系统的方法是利用NGC二进制网表文件二进制网表文件 ; 将将System Generator设计封装成单独的二进制模块,设计封装成单独的二进制模块,综合工具将其作为黑盒子看待;综合工具将其作为黑盒子看待; 管脚约束不能在管脚约束不能在Gataway模块中定义;模块中定义; 同样时钟管脚不能在同样时钟管脚不能在System Generator模块中定义;模块中定义; 通过网表编

32、辑器来指定物理约束通过网表编辑器来指定物理约束 。 详见详见7.3.5节。节。 基于基于System Generator的硬件协仿真的硬件协仿真v硬件协仿真硬件协仿真 通过在硬件上模拟部分设计,大大提高仿真的速度通过在硬件上模拟部分设计,大大提高仿真的速度(通常可以提高一个甚至多个数量级);(通常可以提高一个甚至多个数量级); 一旦将设计编译成一旦将设计编译成FPGA比特流文件,比特流文件,System Generator会自动创建一个新的硬件协仿真模块,同时会自动创建一个新的硬件协仿真模块,同时还会生成一个还会生成一个Simulink库来存储生成的模块库来存储生成的模块 。 此部分相对复杂,

33、通常为高级应用所使用,请参考此部分相对复杂,通常为高级应用所使用,请参考7.4节的使用方法。节的使用方法。逻辑与计算机设计基础逻辑与计算机设计基础逻辑与计算机设计基础逻辑与计算机设计基础v第第1章章 数字计算机与信息数字计算机与信息1.1 数字计算机数字计算机1.2 数值系统数值系统1.3 算术运算算术运算1.4 十进制码十进制码1.5 格雷码格雷码1.6 字母数字码字母数字码1.7 本章小结本章小结参考文献参考文献习题习题逻辑与计算机设计基础逻辑与计算机设计基础v 第第2章章 组合逻辑电路组合逻辑电路2.1 二值逻辑和门二值逻辑和门2.2 布尔代数布尔代数2.3 标准式标准式2.4 两级电路优化两级电路优化2.5 卡诺图化简卡诺图化简2.6 多级电路优化多级电路优化2.7 其他的门类型其他的门类型2.8 异或操作符和异或门异或操作符和异或门2.9 高阻输出高阻输出2.10 本章小结本章小结参考文献参考文献习题习题逻辑与计算机设计基础逻辑与计算机设计基础v第第3章章 组合逻辑设计组合逻辑设计3.1 设计的概念和设计自动化设计的概念和设计自动化3.2 设计空间设计空间3.3 设计过程设计过程3.4 工艺映射工艺映射3.5 验证验证3.6 可编程实现技术可编程实现技术3.7 本章小结本章小结参考文献参

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论