DspBuilder中文教程2
- 格式:pdf
- 大小:1.30 MB
- 文档页数:31
1.说明DSP Builder的主要功能DSP Builder在算法友好的开发环境中帮助设计人员生成DSP设计硬件表征,从而缩短了DSP设计周期。
已有的MATLAB函数和Simulink模块可以和Altera DSP Builder模块以及Altera知识产权(IP)MegaCore功能相结合,将系统级设计实现和DSP 算法开发相链接。
DSP Builder支持系统、算法和硬件设计共享一个公共开发平台。
设计人员可以使用DSP Builder模块迅速生成Simulink系统建模硬件。
DSP Builder包括比特和周期精度的Simulink模块,涵盖了算法和存储功能等基本操作。
可以使用DSP Builder模型中的MegaCore功能实现复杂功能的集成。
Altera还提供DSP Builder高级模块集,这一Simulink库实现了时序驱动的Simulink综合。
Altera MegaCore是高级参数化IP功能,例如有限冲击响应(FIR)滤波器和快速傅立叶变换(FFT)等,经过配置能够迅速方便的达到系统性能要求。
MegaCore功能支持Altera的IP评估特性,使您在购买许可之前,便可以验证功能及其时序。
Altera IP MegaStore网站上为DSP Builder和IP评估流程提供DSP IP完整介绍DSP Builder SignalCompiler模块读取由DSP Builder和MegaCore模块构建的Simulink建模文件(.mdl),生成VHDL文件和工具命令语言(Tcl)脚本,进行综合、硬件实施和仿真。
图示为DSP Builder设计流程。
DSP Builder是一个系统级(或算法级)设计工具,它构架在多个软件工具之上,并把系统级和RTL级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势【10】。
DSP Builder依赖于Math Works公司的数学分析工具Matlab/Simulink,以Simulink的Blockset出现,可以在Simulink中进行图形化设计和仿真,同时又通过Signal Compiler可以把Matlab/Simulink的设计文件(.mdl)转成相应的硬件描述语言VHDL设计文件(.vhd),以及用于控制综合与编译的TCL脚本。
DSPbuilder安装指南(以9.1为例)1.前期准备⾸先说⼀下,我⽤的是dsp builder 9.1 +QII 9.1 SP1+ MATLAB R2009A⽹上没有dsp9.1sp1的破解,我是直接⽤9.1的,发现这样配也能正常⼯作DSP Builder 不是独⽴的软件,在安装 DSP Builder 之前需安装以下软件1.MATLAB软件,必须安装 Simulink组件。
2.安装Quartus II软件安装DSP Builder,安装程序中包含的脚本会⾃动关联Quartus II 和Matlab。
注意三个软件要相互匹配,这⼉给个官⽅的要求:2.安装DSP Builder⼀般步骤,⼤伙懂的直到DSP Builder 的安装结束的对话框跳出,点击finish。
3.matlab上的⼀些必要操作打开matlab 点击Simulink⼯具箱,在出现的Simulink LibraryBrowser栏中可发现多了以下两个⼯具库依次单击它们,软件需要建⽴⼯具库。
这⼉可能会碰到以下问题:1.Matlab出现很多warning ,跳出窗⼝报告出错,并⾃动退出软件处理⽅法:然后在X:\MATLAB\R2008a\toolbox\local\pathdef.m中删除与Altera有关的路径。
注意需要空⼀⾏,如下所⽰:p = [...%%% BEGIN ENTRIES %%%(空⼀⾏)matlabroot,'\toolbox\matlab\general;', ...matlabroot,'\toolbox\matlab\ops;', ...matlabroot,'\toolbox\matlab\lang;', ...matlabroot,'\toolbox\matlab\elmat;', ...matlabroot,'\toolbox\matlab\elfun;', ...之后重新安装DSP Builder2.安装完DSP Builder后,发现Altera DSP Builder Blockset库是空处理⽅法:打开..\MATLAB\R2008a\toolbox\local\matlabrc.m,在此⽂件最后加⼊代码bdclose all; set_param(0,'CharacterEncoding', 'windows-1252')重新启动matlab4.破解 DSP Builder流程1..找个匹配的DSP Builder的破解器按照要求先破解DSP Builder ⽂件。
DSP?Builder的简介和安装方法DSP Builder的简介和安装方法如果你是正准备装DSP Builder请仔细把下面的文章看完,我相信一定会对你有帮助的,首先介绍一下DSP Builder的知识。
DSP Builder是Altera推出的一个数字信号处理(DSP)开发工具,它在Quartus Ⅱ FPGA设计环境中集成了MathWorks的Matlab和Simulink DSP开发软件。
Altera的DSP系统体系解决方案是一项具有开创性的解决方案,它将FPGA的应用领域从多通道高性能信号处理扩展到很广泛的基于主流DSP的应用,是Altera第一款基于C代码的可编程逻辑设计流程。
在Altera基于C代码的DSP设计流程中,设计者编写在Nios Ⅱ嵌入处理器上运行的C代码。
为了优化DSP算法的实现,设计者可以使用由Matlab和Simulink工具开发的专用DSP指令。
这些专用指令通过Altera的DSP Builder和SOPC Builder工具集成到可重配置的DSP设计中。
对DSP设计者而言,与以往FPGA厂商所需的传统的基于硬件描述语言(HDL)的设计相比,这种流程会更快、更容易。
除了全新的具有软件和硬件开发优势的设计流程外,Altera DSP 系统体系解决方案还引入了先进的Stratix和Stratix Ⅱ系列FPGA开发平台。
Stratix器件是Altera第一款提供嵌入式DSP块的FPGA,其中包括能够有效完成高性能DSP功能的乘法累加器(MAC)结构。
Stratix Ⅱ FPGA能够提供比Stratix器件高四倍的DSP带宽,更适合于超高性能DSP应用。
使用DSP Builder创建HDL设计需要有下面的软件支持:Matlab 6.1以上版本;Simulink5.0以上版本;Quartus Ⅱ 5.0以上版本;Synplify 7.2以上版本或LeonardoSpectrum 2002c以上版本(综合工具);ModelSim5.5以上版本(仿真工具)。
第10章 DSP Builder 设计深入应用Matlab/DSP Builder 可以对多种类型的电子线路模块或系统进行建模、分析和硬件实现,且更擅长于一些较复杂的功能系统,及偏向于高速算法方面的模块的设计和实现,还能利用HDL Import 模块将HDL 文本设计转变成为DSP Builder 元件。
本章将给出一些DSP 及数字通信领域中实用模块的设计实例,以及基于Matlab/DSP Builder 平台的IP 核的应用。
10.1 FIR 数字滤波器设计FIR (Finite Impulse Response :有限冲激响应)滤波器在数字通信系统中,被大量用于以实现各种功能,如低通滤波、通带选择、抗混叠、抽取和内插等。
在DSP Builder 的实际应用中,FIR 滤波器是最为常用的模块之一。
DSP Builder 的FIR 滤波器设计方式有多种,作为示例,本节介绍基于模块的FIR 与基于IP 的FIR 设计方法。
10.1.1 FIR 滤波器原理对于一个FIR 滤波器系统,它的冲激响应总是有限长的,其系统函数可以记为:∑=−=Mk k k z b z H 0)( 10-1最基本的FIR 滤波器可用下式表示:∑−=−=10)()()(L i i h i n x n y 10-2其中()x n 是输入采样序列,()h n 是滤波器系数,L 是滤波器的阶数,)(n y 表示滤波器的输出序列。
也可以用卷积来表示输出序列)(n y 与)(n x 、)(n h 的关系。
)()()(n h n x n y ∗= 10-3图10-1中显示了一个典型的直接I 型3阶FIR 滤波器,其输出序列)(n y 满足下列等式:EDA 技术与VHDL366)3()3()2()2()1()1()()0()(−+−+−+=n x h n x h n x h n x h n h 10-4在这个FIR 滤波器中,总共存在3个延时结,4个乘法单元,一个4输入的加法器。
如果采用普通的数字信号处理器(DSP Processor )来实现,只能用串行的方式顺序地执行延时、乘加操作,不可能在一个DSP 处理器指令周期内完成,必须用多个指令周期来完成。
图10-1 3阶FIR 滤波器结构 但是,如果采用FPGA 来实现,就可以采用并行结构,在一个时钟周期内得到一个FIR 滤波器的输出,不难发现图10-1的电路结构是一种流水线结构,这种结构在硬件系统中有利于并行高速运行。
10.1.2 使用DSP Builder 设计FIR 滤波器使用DSP Builder 可以方便地在图形化环境中设计FIR 数字滤波器,而且滤波器系数的计算可以借助Matlab 强大的计算能力和现成的滤波器设计工具来完成。
1.3阶常数系数FIR 滤波器设计一个3阶FIR 滤波器的)(n h 可以表示为下式:))3()3()2()2()1()1()()0(()(−+−+−+=n x h n x h n x h n x h C n h q 10-5其中: 63)3(127)2(127)1(63)0(====h h h hq C 是量化时附加的因子。
这里采用直接I 型来实现该FIR 滤波器。
利用Matlab设计好的3阶直接I 型FIR 滤波器模型图可以参见图10-2。
第10章 DSP Builder 设计深入 367图6-2 带有仿真信号模块的3阶滤波器模型由于FIR 滤波器的系数)(n h 已经给定,是一个常数,由图中看到,在DSP Builder 库中可以用Gain (增益)模块来实现)()(k n x k h −×的运算,用延时Delay 模块来实现输入信号序列)(n x 的延时。
设计完3阶FIR 滤波器模型后,就可以添加simulink 模块进行仿真了,如图10-2所示。
新增的仿真模块参数作如下设置:Chirp Signal 模块:(Chirp Signal )库:Simulink 中Sources 库参数“Initial Frequency (Hz )”设为“0.1”参数“Target time ”设为“10”参数“Frequency at target time (Hz )”设为“1”参数“Interpret vectors parameters as 1-D ”选中Gain 模块:(Gain )库:Simulink 中Math Operations 库参数“Gain ”设为“127”参数“Multiplication ”设为“Element wise(K.*u)”Scope 模块:(Scope )库:simulink 中sinks 库参数“Number of Axes ”为“2”其中Chirp Signal 模块为线性调频信号发生模块,生成一个线性调频信号0.1Hz ~1Hz 。
在该模型仿真中,使用默认的仿真参数。
仿真结果如图10-3所示。
一个线性调频信号通过3阶FIR 滤波器后,幅度发生了变化,频率越高,幅度被衰减得越多。
EDA 技术与VHDL368图10-3 FIR 滤波器仿真结果2、4阶FIR 滤波器节设计以下将设计一个系数可变的FIR 滤波器节。
对于直接I 型的FIR 滤波器(结构见图10-4)是可以级联的。
也就是说,在滤波器系数可变的情况下,可以预先设计好一个FIR 滤波器节,在实际应用中通过不断地调用FIR 滤波器节,级联起来,用来完成多阶FIR 滤波器的设计。
图10-4 直接I 型FIR 滤波器结构 图10-5是一个直接I 型的4阶FIR 滤波器节的结构。
为了使该滤波器节的调用更为方便,在xin 输入后插入了一个延时单元,由3阶滤波器演变成4阶的,不过常数系数项(0z 系数项))0(h 恒为0。
由于在通信应用中,FIR 滤波器处理的往往是信号流,增加一个延时单元不会影响FIR 滤波器处理的结果,只是系统延时增加了一个时钟周期。
对于该FIR 滤波器节,其系统函数可以用下式来表示:4321)4()3()2()1()(−−−−+++=z h z h z h z h z H 10-6第10章 DSP Builder 设计深入 369由于浮点小数在FPGA 中实现比较困难,实现的资源代价太大。
在DSP Builder 中不妨使用整数运算来实现,最后用位数舍取的方式得到结果。
为了使参数可变,FIR 滤波器系数)1(h 、)2(h 、)3(h 、)4(h 也作为输入端口。
在本设计中输入序列)(n x 的位宽设为9位。
图10-6显示的就是一个设计好的4阶FIR 滤波器节,与图10-2常数FIR 滤波器相比,用Product (乘法)模块代替了Gain (增益)模块。
图10-5 直接I 型4阶FIR 滤波器节图10-6 直接I 型4阶FIR 滤波器节图10-6中相关模块的参数设置如下:Xin 、hn0、hn1、hn2、hn3模块:(Altbus )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“signed Integer ”EDA 技术与VHDL370参数“Node Type ”设为“Input port ”参数“number of bits ”设为“9”yn 模块:(Altbus )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“signed Integer ”参数“Node Type ”设为“Output port ”参数“number of bits ”设为“20”xn4模块:(Altbus )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“signed Integer ”参数“Node Type ”设为“Output port ”参数“number of bits ”设为“9”Parallel Adder Subtractor 模块:(Parallel Adder Subtractor )库:Altera DSP Builder 中Arithmetic 库参数“Add(+)Sub(-)”设为“++++”使用“Pipeline ”参数“Clock Phaese Selectioon ”设为“1”Delay 、Delay1、Delay2、Delay3模块:(Delay )库:Altera DSP Builder 中Storage 库参数“Depth ”设为“1”参数“Clock Phase Selection ”设为“1”Product 模块:(Product )库:Altera DSP Builder 中Arithemtic 库参数“Pipeline ”设为“2”参数“Clock Phase Selection ”设为“1”不选择“Use LPM ”3、16阶FIR 滤波器模型设计利用以上设计的4阶FIR 滤波器节可以方便地搭成n ×4阶直接I 型FIR 滤波器(注意:0)0(=h )。
比如要实现一个16阶的低通滤波器,可以调用4个4阶FIR 滤波器节来实现。
为了设计4阶FIR 滤波器节子系统,首先需要建立一个新的DSP Builder 模型,复制上节的FIR4tap 模型到新模型。
由FIR4tap 模型建立子系统,并对端口信号进行修改,把子系统更名为fir4tap ,如图10-7所示。
fir4tap 的内部结构示于图10-8。
然后组成16阶FIR 滤波器模型。
为此复制4个fir4tap ,并将它们衔接起来,前一级的输出端口x4接后一级的x 输入端口。
并附加上16个常数端口,作为FIR 滤波器系数的输入。
把4个子系统fir4tap 的输出端口y 连接起来,接入一个4输入端口的加法器,得到FIR 滤波器的输出yout 。
注意,在完成子系统设计后,要按照第9章中所述的方式,修改其Mask 参数Mask Type 为“SubSystem AlteraBlockSet ”。
设计好的16阶FIR 滤波器见图10-9所示。
第10章 DSP Builder设计深入371图10-7 fir4tap子系统图10-8 fir4tap子系统内部原理图图10-9 16阶直接I型FIR滤波器模型16阶直接I型FIR滤波器模型中,新增加的模块作如下设置:xin模块:(Altbus)库:Altera DSP Builder中IO & Bus库EDA 技术与VHDL372参数“Bus Type ”设为“signed Integer ”参数“Node Type ”设为“Input port ”参数“number of bits ”设为“9”yout 模块:(Altbus )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“signed Integer ”参数“Node Type ”设为“Output port ”参数“number of bits ”设为“20”x16模块:(Altbus )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“signed Integer ”参数“Node Type ”设为“Output port ”参数“number of bits ”设为“9”Parallel Adder Subtractor 模块:(Parallel Adder Subtractor )库:Altera DSP Builder 中Arithmetic 库参数“Add(+)Sub(-)”设为“++++”使用“Pipeline ”参数“Clock Phaese Selectioon ”设为“1”h0、h1、h2、h3、h4、h5、h6、h7、h8、h9、h10、h11、h12、h13、h14、h15模块:(Delay )库:Altera DSP Builder 中IO & Bus 库参数“Bus Type ”设为“Signed Integer ”参数“number of bits ”设为“9”注意,在图10-9中,对h1~h16统一设置了一个值:255,而实际上滤波器的系数要根据具体要求进行计算的。