DspBuilder使用讲解
第三章-DSP-Builder设计入门

The Programmable Solutions Company®
Devices
– Stratix® II™ – Cyclone™ II – Stratix GX – Stratix – Cyclone
Devices (continued)
– MAX® II – Mercury™ Devices – ACEX® Devices – FLEX® Devices – MAX Devices
……………………
…A…lte…ra…D…SP…B…ui…lder Fixed-Point Blockset DSP Blockset Communications Blockset SimPowerSystems Blockset Others
Matlab / Simulink Model Created with Altera DSP Builder Libraries
Design Flow with DSP Builder
(八步法)
What Is DSP Builder?
Links MATLAB/Simulink Design Environment to Quartus II Development Tool for Altera FPGAs Automatic HDL Code Generation from Simulink Model Generated by DSP Builder Libraries Generates Bit & Cycle Accurate Models for DSP Functions Automatic Generation of HDL Testbench Integrated Intellectual Property (IP) Library Support Enables Rapid Prototyping with Altera DSP Development Board Facilitates Integration of Complex DSP Functions
DSP Builder的功能和流程

电子131 XXX XXXXXX1、说明DSP Builder 的主要功能DSP Builder 是Altera 公司提供的一种DSP 系统设计工具,是Matlab/Simulink 设计工具和QuartusII 设计工具之间的一个桥梁,把Matlab/Simulink 中的DSP系统设计转化为HDL文件,在QuartusII 工具中实现到具体的器件中。
产生于Matlab\DSP Builder\Quartus II 流程的DSP 模块或其他功能模块可以成为单片FPGA 电路系统中的一个组成部分,担任某个局部电路的功能;通过Matlab\DSP Builder ,可以直接为Nios II 嵌入式处理器设计各类加速器,成为Nios II 系统的一个接口设备,与整个片内嵌入式系统融为一体。
DSP Builder 是一个系统级(或算法级)设计工具,它架构在多个软件工具之上,并把系统级和RTL 级两个设计领域的设计工具连接起来,最大程度地发挥了两种工具的优势。
2、说明DSP Builder 的设计流程 Simulink 模型仿真综合(Quartus II,LeonardoSpectrum,Synplify)ATOM Netlist产生Quartus II HDL仿真(ModelSim)综合(Quartus II,LeonardoSpectrum,Synplify)Quartus II 生成编程文件(.pof,.sof)下载至硬件自动流程手动流程mdl转成vhdlMatlabSimulink建立模型第一步是在Matlab 的Simulink 环境中建立一个mdl 模型文件,调用Altera DSP Builder 和其它Simulink 库中的图形模块(Block),构成设计框图(或称Simulink 设计模型)。
第二步是利用Simulink 强大的图形化仿真、分析功能,分析此设计模型的正确性,完成模型仿真。
第7章 如虎添翼――DSP Builder设计

在安装过程中还要选择与DSP Builder兼容的
Matlab版本。提前安装的Matlab7.1会出现在该对 话框中,如图7-3所示。如果安装的Matlab版本不 符合要求,则不会在此对话框中出现。
7
7.2.3 授权文件的安装
在使用DSP Builder之前,必须得到Altera的授权文 件。如果没有安装DSP Builder的授权文件,用户只 能用DSP Builder模块建立Simulink模型,但不能生 成硬件描述语言(HDL)文件或Tcl脚本文件。
法累加器(MAC)结构。StrSP带宽,更适合于超高性能
DSP应用。
12
7.4 幅度调制器设计
13
本节利用DSP Builder软件提供的一个幅度调 制设计实例来说明DSP Builder设计过程。 该设计实例文件在<DSP Builder安装目录 >\DesignExamples\Tutorials\GettingStartedSi nMdl文件夹中,DSP Builder安装目录默认都 是在Quartus安装目录下。
本文件,用于综合、硬件的实现以及仿真。
10
11
除了全新的具有软件和硬件开发优势的设计流程之 外,Altera DSP系统体系解决方案还引入了先进的 Stratix和Stratix Ⅱ系列FPGA开发平台。
Stratix器件是Altera第一款提供嵌入式DSP块的
FPGA,其中包括能够有效完成高性能DSP功能的乘
第7章 如虎添翼――DSP Builder设计
7.1 DSP Builder简介 7.2 DSP Builder安装 7.3 DSP Builder设计流程 7.4 幅度调制器设计
DSP Builder

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脚本。
使用DSP Builder设计FSK发射机的数字中频

1.数字基带信源设计
为了测试方便,我们需要在发射机中设计一个数字基带信源。它可以循环地产生基带码流,作为FSK调制器的输入信号。在这里我们采用一个长度为16位的LUT(查找表)作为数字码流的存储器件。数字码流为:
[1 0 1 0 0 0 1 1 0 0 1 1 1 0 1 0]
采用一个递增的计数器作为LUT的地址输入,随着递增的计数器的计数值的改变,LUT输出不同的数字信号(0或1)。数字信号是周期性的,每个周期长度是16位。
4)将Increment Decrement模块的输出与Bus Conversion模块的输入相连,将Bus Conversion模块的输出与LUT模块的输入相连。至此,数字基带信源模块已完成。
5)为了验证设计的正确性,可以在仿真文件中加入一个scope(示波器)模块。从SimulinkLibrary Browser中选择Simulink -> Sinks -> Scope模块,加入Simulink仿真文件中。之后将LUT模块的输出连接至Scope模块的输入即可。连接之后的仿真文件如下图5所示。
表10 Constant模块的Main选项卡中各项参数
参数名称
参数值
Constant Value
100
Bus Type
Unsigned Integer
[Number of Bits].[]
8
Rounding Mode
Truncate
Saturation Mode
Wrap
S字基带信源的仿真文件
6)点击仿真文件上方工具栏中的“Start Simulation”按钮,即可启动一次Simulink仿真。仿真结束后双击Scope模块,打开Scope模块后,可以看到仿真结果。若仿真结果显示不全,可以用鼠标右键单击波形区,在弹出的菜单中选择Autoscale,即可将所有波形显示出来。
数字集成系统 第十三讲DSP Builder

i =0 i =1 M N
x (n ) x (n -1) x (n -2)
b0 z-1 b 1 z …
-1
y (n ) a1 a2 … … … a N-1 aN z -1 z
-1
y (n -1) y (n -2)
h (0)
h (1)
h (N -3)
h (N -2)ຫໍສະໝຸດ h (N -1) y (n )
11
级联型FIR滤波器
当需要控制系统传输零点时,将传递函数H(z)分解成二阶实 系数因子的形式:
N −1 n =0
H ( z ) = ∑ h( n ) z −n = ∏ ( a0i + a1i z −1 + a2i z −2 )
6
x (n )
z-1
x (n -1)
x (n )
z-1
x (n -1)
x (n )
ax (n )
x (n )
a
ax (n )
a x 1(n ) x 1(n )+x 2(n ) x 1(n ) x 1(n )+x 2(n )
x 2(n )
x 2(n )
三种基本运算的流图
7
直接型Ⅰ型 N阶IIR滤波器
y ( n ) = ∑ bi x ( n − i ) + ∑ ai y ( n − i )
i =0 i =1
M
N
则其系统函数,即滤波器的传递函数为
−i b z ∑i M
H ( z) =
1 − ∑ ai z
i =1
i =0 N
−i
5
对于同一个系统函数H(z), 对输入信号的处理可实现的算法有 很多种,每一种算法对应于一种不同的运算结构(网络结构)。 例如:
DSPBuilder系统设计工具PPT课件

第21页/共80页
•4.加入正弦波产生模 块
•(1) 在Simulink Library Browser界面 点击Simulink中的 Sources库,从中找到 Sine Wave模块。
•
(3) 选择File→New→Model命令,建立
一个新的模型文件。
•
(4) 选择File→S第a16v页e/共命80页令,保存文件到指定
第17页/共80页
•2.加入SignalCompiler模块
• (1) 在Simulink Library Browser界面中,打 开Altera DSP Builder文件夹。
Quartus II
HDL仿真 (ModelSim)
生成编程文件 (.pof,.sof)
下载至硬件
第12页/共80页
mdl转成 vhdl
手动流程
综合 (Quartus II, LeonardoSpectrum,
Synplify)
Quartus II
对于DSP Builder设计,Altera提 供自动和手动两种综合、编译流程。如果 DSP Builder模型是顶层设计,则两种综 合与编译流程都可以使用;如果DSP Builder模型不是顶层设计,而是非DSP Builder硬件设计中的一个独立模块,则 只能使用手动综合、编译流程,在DSP Builder软件之外建立顶层编译设置,包
DSPbuilder安装指南(以9.1为例)

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 ⽂件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章 DDS设计
参数“number of bits”设为“10”
DDSout模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Output port” 参数“number of bits”设为“10”
第9章 DDS设计
图9-4 DDS子系统SubDDS
第9章 DDS设计
图中,DDS子系统SubDDS共有三个输入,分别为 Freqword( 频 率 字 输 入 ) 、 Phaseword( 相 位 字 输 入 ) 和 Amp(幅度控制输入);一个输出,为DDSout。输入/输 出模块的参数设置如下: Freqword模块:(Altbus)
数据线位宽
相 位 字 输 入同 步 寄存器
N
频 率 字 输 入同 步 N 寄存器
clk 系统时钟
N
M
M
寄存器
相位调制器
相位累加器
正 弦 ROM 查找表
正弦信号输出 D/A
图9-1 基本DDS结构
第9章 DDS设计
相位累加器是整个DDS的核心,在这里完成上文原 理推导中的相位累加功能。相位累加器的输入是相位 增量,又由于与输出频率fout是简单的线性关系:,
第9章 DDS设计
相位字输入
幅度调制
频率字输入 相位累加器 clk
相位调制器
正 弦 ROM 查找表
送 D/A
图9-3 幅度调制
第9章 DDS设计
9.2 DDS的模块设计
9.2.1 建立DDS模型 首先在Simulink中新建一个模型,调用DSP Builder模
块构成图9-4所示的基本DDS子系统SubDDS。
库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Input port” 参数“number of bits”设为“32”
第9章 DDS设计
Phaseword模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Input port” 参数“number of bits”设为“16”
第9章 DDS设计
数据线位宽
相 位 字 输 入同 步 寄存器
N
频 率 字 输 入同 步 N 寄存器
clk 系统时钟
N
M
M
寄存器
相位调制器 相位累加器
正 弦 ROM 查找表
正弦信号输出 D/A
余 弦 ROM 查找表
余弦信号输出 D/A
图9-2 正交信号发生器
第9章 DDS设计
幅度调制在很多场合是需要的。我们改进基本DDS 结构,在正弦ROM表后、D/A前放置一个幅度控制模 块,一般采用乘法器来实现。如图9-3。
下面开始仿真。图9-6显示了仿真结果。
第9章 DDS设计
图9-6 仿真结果
第9章 DDS设计
9.3 FSK调制器设计
图9-1所示是一个基本的DDS结构,主要由相位累加 器、相位调制器、正弦ROM查找表和D/A构成。图中 的相位累加器、相位调制器、正弦ROM查找表是DDS 结构中的数字部分,由于具有数控频率合成的功能, 又合称为NCO(Numerically Controlled Oscillators)。
第9章 DDS设计
第9章 DDS设计
剩下的模块构成幅度控制部分,模块参数如下: Product模块:(Product) 库:Altera DSP Builder中Arithemtic库 参数“Pipeline”设为“2” 参数“Clock Phase Selection”设为“1” 不选择“Use LPM”
第9章 DDS设计
“++” 选择“Pipeline” 参数“Clock Phase Selection”设为“1”
第9章 DDS设计
Delay模块:(Delay) 库:Altera DSP Builder中Storage库 参数“Depth”设为“1” 参数“Clock Phase Selection”设为“1”
Phaseword1模块:(Altbus) 库:Altera DSP Builder中Bus Manipulation库 参数“Bus Type”设为“signed Integer” 参数“Node Type”设为“Internal Node” 参数“number of bits”设为“32”
B 2 N f out / fclk故相位累加器的输入又可称为频率
字输入,事实上,当系统基准时钟fckj是2N时,就等于 fout。频率字输入在图9-1中还经过了一组同步寄存器, 使得当频率字改变时不会干扰相位累加器的正常工作。
第9章 DDS设计
相位调制器接收相位累加器的相位输出,在这里加 上一个相位偏移值,主要用于信号的相位调制,如 PSK(相移键控)等。在不使用时可以去掉该部分,或者 加一个固定的相位字输入。相位字输入也需要用同步 寄存器保持同步。需要注意的是,相位字输入的数据 宽度M与频率字输入N往往是不相等的,M<N。
“++” 选择“Pipeline” 参数“Clock Phase Selection”设为“1”
第9章 DDS设计
BusConversion2模块:(BusConversion) 库:Altera DSP Builder中Bus Manipulation库 参数“Input Bus Type”设为“signed Integer” 参数“Input [number of bits].[]”设为32 参数“Output Bus Type”设为“Signed Integer” 参数“Output [number of bits].[]”设为“10” 参数“Input Bit Connected to Output MSB”设为“31” 参数“Input Bit Connected to Output LSB”设为“22” 使用“Round”
第9章 DDS设计
由 Delay 模 块 和 Parallel Adder Subtractor 模 块 以 及 Phaseword1模块构成相位累加器,其参数如下:
Parallel Adder Subtractor模块:(Parallel Adder Subtractor) 库:Altera DSP Builder中Arithmetic库 参数“Number of Inputs”设为“2”,“Add(+)Sub(-)”设为
第9章 DDS设计
第9章 DDS设计
9.1 DDS的基本原理 9.2 DDS的模块设计 9.3 FSK调制器设计
第9章 DDS设计
9.1 DDS的基本原理
我们知道,对于正弦信号发生器,它的输出可以 用下式来描述:
Sout Asint Asin(2πfoutt).
(9-1)
第9章 DDS设计
第9章 DDS设计
2. DDS的频率分辨率 或称频率最小步进值,可用频率输入值步进一个
最小间隔对应的频率输出变化量来衡量。由(9-7)易得
f out
f clk 2N
(9-8)
3. DDS的频率输入字的计算
的计算公式如下:
B
2N
f out f clk
第9章 DDS设计
对于通信上的应用,往往需要得到一对正交的正弦信 号,以便进行正交调制和正交解调。在用模拟的压控振 荡器VCO时,输出一组完全正交的信号较为困难,而对 于DDS而言,只要在基本DDS结构中增加一块ROM查 找表,在两块ROM中分别放置一对正交信号即可(如一 个放置sin表、另一个放置cos表),如图9-2所示。
其中Sout是指该信号发生器的输出信号波形,fout指 输出信号对应的频率。上式的表述对于时间t是连续的, 为了用数字逻辑实现该表达式,必须进行离散化处理。 用基准时钟clk进行抽样,令正弦信号的相位:
2πfoutt
在一个clk周期Tclk内,相位的变化量为:
Δ
2πf outTclk
2πf out f clk
B
2N
f out f clk
(9-4)
第9章 DDS设计
显然,信号发生器的输出可描述为:
Sout
Asin(k 1 Δ )
A
sin
2π 2N
B k1
BΔ
Afsin
B k1
B
(9-5) 其中,指前一个clk周期的相位值,同样可以得出
第9章 DDS设计
下面给出一些关于基本DDS结构的常用参量计算。
1. DDS的输出频率fout 由DDS工作原理推导的公式中很容易得出输出频率 的计算:
f out
B 2N
f clk
(9-7)
是频率输入字,fclk是系统基准时钟的频率值,N是
相位累加器的数据位宽,也是频率输入字的数据位宽。
(9-2) (9-3)
第9章 DDS设计
其中fclk指clk的频率,对于,可以理解成“满”相 位。为了对进行数字量化,把切割成2N份,由此,每 个clk周期的相位增量可用量化值来表述为
B