MULTLAB DSPbuilder硬件模块设计

上传人:lis****211 文档编号:117363306 上传时间:2022-07-08 格式:DOCX 页数:30 大小:1.76MB
收藏 版权申诉 举报 下载
MULTLAB DSPbuilder硬件模块设计_第1页
第1页 / 共30页
MULTLAB DSPbuilder硬件模块设计_第2页
第2页 / 共30页
MULTLAB DSPbuilder硬件模块设计_第3页
第3页 / 共30页
资源描述:

《MULTLAB DSPbuilder硬件模块设计》由会员分享,可在线阅读,更多相关《MULTLAB DSPbuilder硬件模块设计(30页珍藏版)》请在装配图网上搜索。

1、第六章 Matlab/Dsp builder 硬件模块设计Matlab 是国内强大的数学分析工具,广泛用于科学计算和工程计算,还可以进行复杂的数字信号处理系统的建模、参数估计及性能分析。Simulink是Matlab的一个组成部分, 用于图形化建模仿真。DSP Builder是Altera公司推出的一个面向DSP开发的系统级工具, 它构架在多个软件工具之上,并把系统级(算法级建模)和RTL级(硬件实现)两个设计领 域的设计工具连接起来放在Matlab/Simulink平台上,而将QuartrsII作为底层设计工具置 于后台,从而最大程度地发挥了这三种工具的优势。DSP Builder作为Sim

2、ulink中的一个 工具箱,使得用FPGA设计DSP系统完全可以通过Simulink的图形化界面进行,只要简单地 进行DSP Builder工具箱中的模块调用即可。Matlab/DSP Builder尤其适用于一些在Quartus II上不方便完成或不能完成的设计项目(如涉及算法类及模拟信号处理与生产方面的系统处 理)。DSP Builder还可以自动完成大部分的设计过程和仿真,直到把设计文件下载到FPGA 中。DSP Builder提供了 Quartus II软件和MATLAB/Simulink工具之间的接口。其具有如 下特性:1. 用于连接Mathwork的MATLAB (信号处理工具箱和

3、滤波器设计工具箱),Simulink环 境和Alt era的Quar tus II设计软件环境。2. 支持Alt era的DSP核,这些核均可以从Alt era的网站上下载(例如:FIR Compiler、 Reed-Solomon Compiler 等等)。3. 可以利用Alt era的DSP开发板来快速的实现设计的原型。4支持SignalTapII逻辑分析仪(一种嵌入式的信号分析仪,它可以探测到DSP开发 板上Alt era器件内部的信号,并把数据引入到MATLAB的工作区以便于进行可视化的分析)。5.包括了用户可以创建的定制的逻辑,用于配合SOPC Builder和Nios II嵌入式处

4、理 器设计。6包括了 PLL块,用于多时钟设计。7.包括了状态机块。&针对DSP系统的算法和实现,支持统一的表示方法。9. 根据MATLAB和Simulink的测试矢量,可以自动生成VHDL测试激励或Quartus II 矢量文件(.vec)。10. 自动调用VHDL综合器和Quartus II编译器。11. 仿真可以设定为比特或周期精度。12. 提供多种的定点运算和逻辑操作,用于配合使用Simulink软件。13. 支持多种 Alt era 的器件: St ra tix、St ra tix II 和 St ra tixGX 器件;Cyclone 和 Cyclone II 器件;APEXII、

5、APEX 20KC 和 APEX 20KE 器件;Mercury 器件;ACEX 1K 器件; FLEX 10K 和 FLEX 6000器件。利用Matlab和DSP Builder进行模块设计也是SOPC技术的一个组成部分。这是由于利 用Matlab/DSP Builder/QuartrsII可完成纯硬件的DSP算法模型及实现,从而构成嵌入式系 统外围接口的协处理模块,再进一步构成软件程序中的精简指令,DSP模块或其他功能模块 可以成为单片FPGA电路系统中的一个组成部分,而且通过Matlab/DSP Builder,可以直接 为Nios嵌入式处理器设计各类加速器,并以指令的形式加入到Nio

6、s的指令系统,从而成为Nios系统的一个接口设备,与整个片内嵌入式系统融为一体。即利用DSP Builder和基本 的Nios CPU,用户可以根据项目的要求,自己构建自己需要的DSP处理系统。本章主要介 绍利用 Matlab/ DSP Builder/Quartrs II三个工具软件联合开发的设计流程。图 6 1为 Matlab/DSP Builder/Quartrs I 联合应用框图。由图61可见,设计流程从利用建立DSP电路模型开始,电路模型的建立可以是图形 化的,利用Simulink和DSP Builder中提供的丰富的功能模块和IP核进行设计DSP Builder 中包含了算术和存储

7、功能等设计模块以及IP库中的许多复杂功能模块。电路中的功能模块 和 IP 的技术参数、数据格式、数据类型和总线宽度等都可以直接设置。电路模型设计完成 后,可以进行系统级的模型仿真,这与目标器件和硬件系统没有关系,是基于算法的仿真。下个步骤是利用置于Simulink电路模型界面的DSP Builder的SignalCompiler,将电路 模型文件,即Simulink电路模块文件(.mdl)转换成RTL级的VHDL代码表述和工具命令语 言(Tel)脚本。一旦获得转换好的VHDL描述,在Simulink中即可调用VHDL综合器了,目前 可选用的综合器有QuartrsII、LeonardoSpect

8、ru、和Synplify。由它们生成底层网表文件。 在Quartrsl进行编译优化的过程中,会产生两种详细记录电路硬件特点和优化方式的底层 电路描述的中间网表文件,即ATOM Netlist。然后调用QuartrsI中的编译器,根据网表文 件及设置的优化约束条件进行布线布局和优化设计的适配操作,最后生成编程文件和仿真文 件(.pdf和.sof),它们可用于对目标器件的编程配置和硬件实现;与此同时可生成分别用 于Quartrs I的门级仿真文件和ModelSim的VHDL时序仿真文件,以及相应的VHDL仿真激励 文件,以用于实时测试DSP系统的工作性能。手动流程Quartus II证1转成:Qu

9、art as ZLLeonardoSpecTrumjSvnplifv)HDL仿真O.lodelSin-1iQaarTus II,LeonarcDSpecTriiiii.Synplify)6.1 DSP Builder 元件库简介打开 Matlab 环境。可以看到 Matlab 的主窗口界面被分割成三个窗口:命令窗口(Command Window)、工作区(Workspace)、命令历史(Command History)。使 Matlab 的 Current Directory指向所安装的DSPBuilder的Altlib文件夹,点击旁边的simulink图 标打开simulink库,如下图6

10、2所示。l DesktopHelp鸟 C C 杵凸 逾 Cur-entDirectcr C:ate-aDSF6uilcerVMtlib 圖.|Tvtc dd ? WhacsNeA1图 62 Matlab 的 Current Directory在 Simulink Library Browser 的左面展开 AlteraDSPBuilder 可以看见 DSPBuilder 的元件库如图6 3所示,元件库可以分为若干部分。其中有主控元件库(AltLab)、算术元 件库(Arithmetic)、开发板库(Boards)、复元件库(Complex Type)、组合元件库(Gate & Control)

11、、总线元件库(I0&Bus)、时钟元件库(Rate Change)、SOPC 元件库(SOPC Builder Links )、状态机功能元件库(State Machine Functions )、时序元件和存储器元件库 (Storage)、IP 核元件库(MegaCore Function)、视频和图象处理元件库(Video and Image Processing)二-user-uerinea runcrions+ Additional Math & Discrete+Aerospa匚e Blockset- H Altera D5P BuilderAltLabArithmeticBoard

12、sComplex TypeGate & ControlIO & BusRate Change5OPC Builder LinksState Machine Functions StorageMegaCore Fun匚tions Video and Image Processing+ 吕 匚DMA Reference Blockset + E Communications BlocksetII Global Assi gnmentQuartumII Finout图 6 3 DSP Builder 元件库1、主控元件库(AltLab),包含一些用于控制的模块。主要有:数据观察窗(BP)、FPGA

13、编程器( Device programmer)、HDL 引入模块( HDL Import)、HDL 子系统元件模块( HDL SubSystem)、HIL硬件环境模块(HIL)、逻辑分析仪探头(Node)、硬件工程参数设置模块 (Quartus II Global Project Assignment )、FPGA 引脚锁定模块(Quartus II Poinout Assignment)、Mat Lab 模型至 VHDL 转换器(SignalCompiler)、逻辑分析仪(SignalTapll Analysis)。2、算术元件库(Arithmetic ),包含一些与运算相关联的器件。王要有

14、比较器(Comparator)、计数器(Counter)、差分器(Differentiator)、除法器(Divider)、增益 乘法器(Gain)、地址发生器(Incerement Decrement)、积分器(Integrator)、乘法器(Multiplier)、乘法累加器(Multiply Accumulate)。如图 6 4 所示。SourcesI如 User-Defined Functions+ Additional Math St Discrete+ H Aerospace Blockset- g Altera D5P BuilderAltLabArithmeticBoardsC

15、omplex TypeGate & Control10 &.BusRate ChangeSOPC Builder LinksState Machine FunctionsStorageMegaCore FunctionsVideo and Image Processing+ H CDMA Reference Blockset + Communications BlocksetH 匚ontrol System ToolboxI 一 一 叭旧mC mint er图 6 4 算术元件库3、SOPC元件库(SOPC Builder Links),在左侧展开加号分别是SOPC AVALON总线模 块、S

16、OPC AVALON总线端口模块和SOPC用户自定制指令端口。如图6 5。IO & BusRate Change- -50PC Builder Links- AVALON Blocks - AVALON PortsCustom Instru匚tionState Machine FunctionsStorage图 6 5 SOPC 元件库4、IP核元件库(MegaCore Func ti on),包含Alt era公司设计好的IP核。可以使一般 的设计者在不用全面了解所用IP核相关技术过多细节的情况下,在短期内设计符合要求的 系统。MegaCore是Alt era的IP Core计划中的一个组成

17、部分,IP核元件库所包含的IP核不 附带在DSP Builder和Quartusll中,需要单独购买。如图6 6所示,IP核元件库主要有CIC IP核(cic)、FFT IP核(fft)、FIR IP核(fir)、 NCO IP 核(noc)、RS IP 核、VITERBI IP 核(viterbi)。- 盘 Altera D5P BuilderAltLabArithmeticBoardsComplex TypeGate & ControlIO & BusRate Change5OPC Builder LinksState Machine FunctionsStoraget_v6ir_cump

18、ilerf i r_: ump i 1 er_v3_3_lir_cumpi1ef_v6_1D匚口nco_v2_3_lMegaCore FunctionsVideo and Image Pro cessing1 i- r-ififl a ri.i-.f. d.I.i-图 6 6 MegaCore Function 元件库6.2 FSK 调制器设计二进制频率调制(2FSK),是利用二进制数字基带信号控制载波进行频谱变换的过程。 在发送端产生不同频率的载波震荡来传输数字信号“0”、“1”,在接收端,把不同频率的载 波振荡还原成相应的数字基带信号。FSK 调制的方法有两种:1、直接调频法 用数字基带矩

19、形脉冲控制一个振荡器的某些参数,直接改变振荡频率,输出不同的频率信号。2、频率键控法用数字矩形脉冲控制电子开关在两个振荡器之间进行转换,从而输出不同频率的信 号。6.2.1 建立设计模型1、们需要建立一个工作库,所以先新建一个文件夹 FSK。I 甲讯叩 Window Help2、使 Matlab 的 Current Directory 指向所安装的 DSPBuilder 的 Altlib 文件夹点击 上方的 simulink 图标打开 simulink 库,如下图 67 所示。1Curent Directcr::ateDSFeuilcerVMtlib vj.Evtc dd ? WhacsNe图

20、 6 7 Matlab 的 Current Directory3、在 Simulink Library Browser 窗口中选择 File 菜单,在出现的菜单中选择 New在弹出的子菜单中选择新建模型model。如图6 8图 6 8 新建 Model4、放置SignalCompilder。点击simulink库管理器左侧的数形列表中的Alt era DSPBuilder条,使之展开DSPBuilder库,这时会出现一串树形列表,对DSPBuider的子模块(Block)进行分组,展开其中的Altlab,新的模型窗口。如图 69选择库管理器右侧的SignalCompilder,拖动到10 &

21、BusRate Change50PC Builder LinksState Machine FunctionsSuhSyst emBui1b 1 grL:LT ap 11 AiL:=LlyEiPulseGenerator10 Input2 sel0:0ConstantsLZZConst antiSignalCompilerJ/:+Bus7+ )-Z-1+ ,ADDER4Dly27:07:0+ 吕 Aerospace Blockset- H Altera D5P BuilderAltLabArithmeticBoardsComplex TypeGate & ControlStorage+ H C

22、DMA Reference Blockset图 69 Simulink 库中的 DspBuilder5、图6 5,为所需最终连接的Modle图形。参照图610先放置Input2,Input2在 DSPBuilder库中的IO&Bus模块中,选择Input拖动到新Model中,点击图形下面的文字 Input可以更改名称。双击打开参数设置窗口,Bus type可设为Unsigned Integer (无符 号整数),number of bits设为2。如图611图 6 10 FSK 调制模型P:=l ram e + e r sUrLE i cne d I nt e e e rBus TyperLi

23、jjriber of bits.图 6 11 input2 参数设置Constant也同样在IO&Bus模块中,constant1设置为无符号整数,number of bits设为 8,常数值(Cons tant Value)设置为 9,抽样时间(Sample t ime)为 1,如图 6T2。Cons tan t2 除了 Constant value设置为3外,其余设置同Constant 1,这样可以使数字基带矩形脉冲 的峰峰值在 3 到 9 之间。Paramet ersBus Type niaiTiber of bits.Constant ValueFSamp 1 e time (1 fo

24、 r i rJ-Le r i + e d)图 6-12 constant1 参数设置6 、 n-to-1 Multiplexer 和 LUT 同在 Gate Control 模块下,将它们拖到新建 Model 中 将 LUT 改名为 ROM10X10S ,如图 6-13NOT- 号 Altera D5P BuilderAltLabArithmeticBoardsGate 8; ControlComplex TypeIO &BusRate Change5OPC Builder LinksState Pl日匚hine FunctionsStorage+ g 匚DMA Reference Block

25、set+ H Communications Eilockset图 6-13 LUE 和 n-to-1Multiplexer 模块其中 n-to-lMultiplexer 的数据输入线(Number of input Data Line)设为 2, pipeline 设为 1。ROM10X10S 的 bus Type 设为 signed Integer (有符号整数),输出位 number of bits 为8位,LUT Address Width(查找表地址线位宽)设为8。在MATLAB Array编辑框中输入 计算查找表内容的计算式。在此可以直接使用正弦(sin)函数,在这里sin函数的调用

26、格 式为sin(起始值:步进值:结束值)。ROM10X10S为一个输入地址为8位,输出地址为 8位的正弦查找表模块,输入地址总线位有符号整数(Signed Interger)。可以设定起始值 为0、结束值为2n,步进值为2n /2A8。计算式可以写成127*sin( 0:2*pi/(2A8):2*pi),其 中pi即位常数n。在Use LPM处打勾,表示允许Quartusll利用目标器件中的嵌入式RAM (在 EAB、ESB或M4K模块中)来构成ROM10X10S,即将生成的正弦波数据放在嵌入式RAM 构成的ROM中,这样可以节省大量的逻辑资源。如图6-14。图 6-14 ROM10X10S

27、参数设置7、在 Arithmetic 模块下找到 Parallel Adder Subtractor,改名为 ADDER4,将输入设 为2, Add ( + ) Sub (-)设为+,其余不变,如图6-15。图 6-15 设置 ADDER48、放置Delay模块。在Storage库下的Delay,放置到新建模型窗口并改名为Dly2。 Delay是一个延时环节。在这里不修改其默认参数设置。9、Bus7和0ut8在I0&Bus库下。找到Alt Bus,和out put分别改名为Bus7和0ut8。 Bus7 的 Bus Type 为 Signed Integer, Node Type 为 Inte

28、rnal Node, number of bit 为 8 位。如图 6-16。图 6-16 设置 Bus7Out8 的 Bus Type 也为 Signed integer 类型 8 位。如图 6-17。图 6-17 设置 Out810、放置完所需的模块后,按照图6-5连接好。这样就完成了 FSK调制模型的设计。 在进行仿真验证和SignalCompiler编译前,先对文件进行存盘操作:点击新建模型窗口的 File菜单,选择Save项。取名并保存在自己所建的文件夹FSK中。在本例中,新建模型取 名为fsk,模型文件为fsk.mdl。保存完毕后,新建模型窗口的标题栏会显示模型的名称, 对模型取名

29、后就可以使用SignalCompiler进行编译了。在编译前还需要进行仿真验证。6.2.2 Simulink 模型仿真用DSP Builder模块设计好一个新的模型后,可以直接在simulink中进行算法级、系统 级仿真验证。对一个模型进行仿真,需要施加合适的激励、一定的仿真步进和仿真周期,添 加合适的观察点和观察方式。需要强调的是:凡是来自Altera DSP Builder库以外的模块, SignalCompiler都不能将其变成硬件电路,即不会影响生成的VHDL程序,但在启动Simulink 仿真后能影响后面产生的仿真激励文件,Pulse Generator模块的情况正是如此。1、加入一

30、个Pulse Generator模块,在Simulink库管理器中,展开simulink库,选中 Sources库,把Sources库中的Pulse Generator模块拖放到FSK模型窗口中。2、添加波形观察模块。在simulink的库管理器中,展开simulink库,选中其中的Sinks 库,把Scope模块拖放到FSK模型窗口中。双击该模块,打开的是一个Scope窗口。用鼠标点击Scope模块窗口上侧工具栏的第二个工具按钮:Parameters参数设置。打开 Scope参数设置对话框,在Scope对话框中有两个选项页:Gerneral和Data History。在Gerneral 选项

31、页中,改变Number of axes参数为2。点击“OK”后可以看到Scope窗口增加了两个波 形观察窗。每个观察窗都可以分别观察信号波形,而且相对独立。如图6-18。图6-18 Scope设置3、按图6-10连接FSK模型的全图。先设置模型的仿真激励。需要设置与此相连的 模块:Pulse Generator。双击放置在FSK模型窗口中的Pulse Generator模块,设置对输入端 口施加的激励。在打开的 Pulse Generator 模块参数设置对话框中,可以看到下列参数如图 6-19。图 6-19 Pulse Generator 参数设置其中脉冲类型(Pulse Type)是基于时

32、间的(Time based),振幅(Amplitude)为1,周 期(period) 是 1500 秒,占空比(Pulse Width)为 50%,相位延迟(Phase delay)为 0。4、点击 Simulation 菜单,在下拉菜单中选择 configuration parameters 如图( 620), 将Stop time设置成10000。FSK模型编辑窗中,在Simulation菜单下,选Start项,开始仿 真。等待仿真结束,双击Scope模块,打开scope观察窗。在Scope观察窗中,可以使用工 具栏中的按钮来放大缩小波形,也可以使用工具栏上的“Autoscale”,使波形

33、自动适配波形 观察窗,用鼠标左键,可以放大波形。图6-21为FSK的仿真图形。图6 20 FSK仿真停止时间图 6-21 FSK 仿真图 图中可以清晰的看到在脉冲值为1和0 时,载波信号频率随脉冲信号值变化而变化,从 而实现了 2FSK。6.2.3 SignalCompiler 使用方法下面进行设计流程中最为关键的一步,就是把DSP Builder的设计转到硬件上加以实现。 在这一步,可以获得针对特定FPGA芯片的VHDL代码。1、双击FSK模型中的SignalCompiler模块,将出现如图622所示的对话框,点击 Analyze (分析)按钮后,SignalCompiler就会对FSK模型

34、进行分析,检查模型有无错误, 并在Matlab主窗口弹出对话框,并给出相关信息。图 6 22 双击 SignalCompiler2、 图 621 中显示了 Signal Compiler 窗口,左侧是项目设置选项 Project Setting Options,可以设置器件类型(Device)、综合工具(Synthesis Tool)以及优化项目(Opimization); 右侧是硬件编译流程Hardware Compilation;下方是信息框Messages0 SignalCompiler的设 置都集中在项目设置选项部分。在 Device 下拉选择框中选择需要的器件系列,在此选为Cyclo

35、ne系列。其具体的器件型号,需由QuartusII自动决定使用该器件系列中的某一个具体 型号的器件,或在手动流程中由用户指定。图 621 SignalCompiler 设置对话框3、当设置好Device和Synthesis后,右侧的硬件编译Hardware Compilation部分就会列 出一个操作流程,见图 621。分别为: 转换 MDL 文件为 VHDL 文件(Convert MDL to VHDL) 综合(Synthesis) 编译适配(QuartusIIQuartus)先点击步骤1的图标,完成simulink文件(*.mdl)到VHDL文件的转换。转换完成 后,在“Messages”

36、 信息提示框中,会显示“Generated top level “fsk.vhd files”,即顶层文 件fsk.vhd完成转换(图4-34)。fsk模型生成的VHDL文件4、点击步骤2的图标,完成综合过程。因为左侧的设置,本例用QuartusII来完成综合 过程的,在综合后生成原子网表供适配器使用,并自动生成QuartusII可直接调用的工程。5、点击步骤3的图标,调用QuartusII完成编译适配过程,生成编程文件:pof文件和 sof文件(图4-36)o编程文件可以直接用于FPGA的编程配置。如果想知道详细的报告, 点 击 下 面 的 Report File 按 钮 进 行 查 看 。

37、 Fsk 模 型 对 应 的 报 告 文 件 为 fsk_DspBuilder_Report.html。6.2.4 使用 QuartusII 实现时序仿真虽然已经进行了算法级、系统级仿真验证,然而进行门级的时序仿真仍然是十分重要的,SignalCompiler已将MATLAB上的仿真信息转变成了可用于QuartusII进行时序仿真的激励 信息及相关仿真文件fsk_quartus.tcl,因此能容易地完成此项任务。1、打开QuartusII环境,选择菜单FileOpen Project.,定位到fsk模型所在路径目录, 打开 DSP Builder 建立的 QuartusII 工程文件:fsk.

38、quartus。2、上文中提到,在SignalCompiler中的QuartusII编译,具体的器件由QuartusII自动决 定,可实际使用中,器件往往不是QuartusII自动选定的那个型号,管脚也不是QuartusII自 动分配的管脚。这些都需要在QuartusII中进行修改。所以这里须按照前面章节中叙述的方 法选择具体器件型号,本例中使用的是EP1C6Q240C8,然后启动全程编译,即执行Start Compilation 。3、执行菜单ProcessingStart Simulation。图6 22即为时序仿真波形,在图中可以清 楚的看到输出数据随着时钟的变换交替的进行频率变换。如果

39、这时看不到输出的波形数据 应该回到MATLAB设计文件检查,仿真、变换(注意这时只按SignalCompiler中的第一按 钮!)。图 6-22 时序仿真波形图6.2.5 使用 QuartusII 硬件测试与硬件实现在此按照前面章节中介绍的方法锁定管脚。打开fsk工程文件fsk.vhd, 了解端口情况, 选择合适的电路模式。然后进行编译,完成适配过程。最后是进行硬件的下载,连接好 FPGA 开发板。然后将实测结果与在计算机上进行的时序仿真结果进行比较。若再想改动Simulink 中的fsk.mdl图,应该注意两点:第一,内部电路结构和设置可以改,但端口信号名不要改,如输入input2、out8

40、,因为 此信号的引脚已被锁定,不便改变第二,改动out.mdl图后只宜作系统仿真和VHDL文件转换,不宜作综合,即最多只能 对图 617所示的界面执行第1 个按纽,否则将可能把原来设定好的引脚全部冲掉。为了保存引脚信息,综合与适配两项操作必须在进入QuartusII后进行。图623为硬 件实现后的输出波形。图 6 23 FSK 调制波形6.3直接数字合成DDS设计6.3.1 直接数字合成 DDS 基本原理对于正弦信号发生器,它的输出可以用下式来描述。S 二 A sin et 二 A sin(2 兀 f t)(6 1)outout其中S是指该信号发生器的输出信号波形,f指输出信号对应的频率。上式

41、的表述 out out对于 t 式连续的,为了用数字逻辑实现该表达式,必须进行离散化处理,用基准时钟 clk 进行抽样,令正弦信号的相位:e = 2兀f t(62)out在一个elk周期T,相位e的变化量为:clkAe = 2 兀 foutclk2兀foutfclk6 3)其中f 指elk的频率对于2n可以理解成“满”相位,为了对Ae进行数字量化,把clk2n切割成2份,由此每个elk周期的相位增量Ae用量化值BAe来表述:B u人Ae2兀N,且BAe为整数。与(63)式联立可得:BAe =, B = 2 n out-2n fAefclk clk显然,信号发生器的输出可描述为:2兀S = A

42、sin(e+ Ae) = A sin(B+ Boutk-i2 n eK1=out-outAe6 4)二 Af (B + B ) sineK _iAe( 6 5)其中e指前一个elk周期的相位值,同样得出K1eB u K 1/ NeK12 兀 了图6 24为DDS的基本结构图6 6)相拉孚輛:/ -72寄存辭ws加器图6 24基本DDS结构6.3.2 用 DSPBuilder 设计 DDSDDS采用了层次化的设计方法,即使用了 Simulink的子系统(SubSystem)来完成DSP 模型的层次化设计。我们可以用上面的例子进行简单的介绍:在已经建好的模型上进行简单修改后,选择除SignalCo

43、mpiler、Pulse Genera tor以外的模块,单击右键选择 Create Subsystem 如图(625)。图 6 25 FSK 输出的修改图 6 26 为创建子系统模块后的 FSK 图形。用鼠标双击 Subsystem 子系统模块后,就 会弹出fsk/Subsystem窗口,显示子系统模块封装的原理图。值得注意的是,有些DSPBuilder 库的模块只能放在顶层原理图中,如 SignalCompiler 模块。如果子系统中放置了 SignalCompiler模块,只可以进行Simulink仿真,而不能使用SignalCompiler来生成相 应的 VHDL 代码。图 626 生

44、成子系统后的 FSK图6-23为DDS的顶层设计图,而图6 24为其子系统Subsystem的结构图。图 624 DDS 顶层设计图其中 AMPL、PHASE、FREQ 是 simulink-Sources 库下的 constant 元件, Constantvalue 分别为 67、456、11456789,勾选 Interpret vector parameters as 1-D 选项, Sampletime 为 inf; Inp ut、inp utl、inp ut2 在 Alt era DSP builder-10&Bus 库下,Bus Type 为 Unsigned interger,

45、number of bits 分别为 32、10、8; Output 也在 Altera DSP builder-IOBus 库下,输出位为10位有符号整数。图 6 25 DDS 子系统仿真时间为 10000;ROM10X10S 为 Altera DSP builder-storage 库下的 LUT 元件, Bus Type为有符号整数,输出为10位,LUT Address Width宽为10位,MATLAB Array的 输出公式是 511*sin( 0:2*pi/(210):2*pi), 并勾选 Use LPM 和 Regis ter Address 选 项;Pdt2 为 Altera

46、DSP builder-Arithmetic 库的 Product 元件,Pipeline 值为 0,勾选 Use LPM 选项;Bus1 在 Alt era DSP builderTO&Bus 库,是 BusConversion 元件,为有符 号整数,输入18位,输出10位,Input Bit to Output LSB为8。Bus7为Alt era DSP builder-IO&Bus下的Alt Bus元件,总线类型是有符号整数, 节点类型是内部节点(Int ernal Node), 32位;Adder4和Adder3设置相同,为在Alt era DSP builder-Ar it hme

47、 tic 下的 Parallel Adder Sub tractor 元件,Number of Inp uts 是 2, Add ( + ) Sub(-)设为 “ + + ”,勾选 Pipeline 选项,Clock Phase Selection 设置为 1; Dly2 是 Alt era DSP builder-S to rage 下 Delay 元件,默认设置;BusConversion 在 Altera DSP builder-IO&Bus 元件库, BusType 为 Signed Interger 输入为 32 位,输出 10 位, InputBit to Output LSB 为

48、 22。图6-26为DDS信号输出波形。图 6-26 DDS 信号输出6.4 AM 调制器设计6.4.1 AM 调制原理AM的调制原理是将要传送的信息装载到某一高频(载波)信号上去的过程,幅度调制是 用调制信号去控制载波的振幅,使其随调制信号线型变化,而保持载波的频率不变。图6 27为在Malt lab下完成的AM全图,主要分为4个区域:区和区为两个正弦 信号发生器,分别为调制信号和载波信号;区为控制区,主要控制调制信号的幅度。当 Cnt9选择不同值时,区输出不同的参数调整区输出正弦信号的幅度,使调制信号的输 出具有不同的幅度(如图6-27)。图6 28为Con9选择1、3、6时输出的调制信号

49、。 区主要作用是将调制信号装载到载波信号上去,实现信号的调制。图 6 27 AM 调制原理图戶 17:。 -B1JS+1000402009.559.69.759.09.059.99.9519.59.559.69.65979.759.09.359.99.9510010011111111119.59.559.69.659.79.759.09.859.99.951100P9.65图 6-28 受控的调制信号图 6-29 AM 调制信号6.4.2 AM 调制器参数设置 仿真时间设为 100000,其它设置如下:1、区正弦信号发生器的设置:Cst15:Altera DSP Builder-IOBus-C

50、onstantBus Type: Unsigned Integernumber of bits:16Constant: 20Sample time: 1Bus3 : Altera DSP Builder-IO Bus-AltBusBus Type: Unsigned IntegerNode Type: Internal Nodenumber of bits:16Adder1 : Altera DSP Builder-Arithmetic-Parallel Adder Subtractornumber of input: 2Add(+)Sub(-): +Clock Phase Selection

51、: 1Dly: Altera DSP Builder-Storage-Delay默认设置Bus5: Altera DSP Builder-IOBus-BusConversionBus Type: Signed IntegerInputnumber of bits: 16Outputnumber of bits:8Input Bit Connected to Output LSB:8ROM8X8S:Altera DSP Builder-Storage-LUTBus Type: Signed IntegerOutputnumber of bits: 8LUT Address Width: 8MAT

52、LAB Array: 127*sin( 0:2*pi/(28):2*pi)勾选 Use LPM 和 Register Address 项2、区控制端参数设置:Mux41: Altera DSP Builder-GateControl-n to 1 MultiplexerNumber of Input Data Line: 8Pipeline: 0SL: Altera DSP Builder-IOBus-inputBus Type: Unsigned IntegerNode Type: Input Portnumber of bits: 3Cnt9: Simulink-sources-Const

53、antConstant value: 6勾选 Interpret vector parameters as 1-DSample time: infCst8-14: Altera DSP Builder-IOBus-ConstantBus Type: Signed Fractionnumber of bits.:8.number of bits:8Sample time: 1Constant Value 从端口 0 到 10 分别为:0.9-0.23、区调制区参数设置Pdt1、 Pdt2: Altera DSP Builder-Arithmetic-ProductPipeline: 0 勾选 U

54、se LPMADDER2、 Adder3: Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input: 2Add(+)Sub(-) : +Clock Phase Selection: 1 勾选 Pipeline 选项。Bus1: Altera DSP Builder-IOBus-BusConversionBus Type: Signed IntegerInputnumber of bits: 18 Outputnumber of bits: 10Input Bit Connected to Output LS

55、B: 8Cst3: Altera DSP Builder-IOBus-ConstantBus Type: Unsigned Integer number of bits: 8Constant: 128Sample time:1Cst4: Altera DSP Builder-IO Bus-ConstantBus Type:Unsigned Integer number of bits:10Constant:512Sample time:1Adder2: Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input

56、: 2Add(+)Sub(-): +Clock Phase Selection: 1AM_OUT:Altera DSP Builder-IOBus-outputBus Type: Unsigned IntegerNode Type:Output Port number of bits:104、区正弦信号发生器的设置:Cst16:Altera DSP Builder-IOBus-ConstantBus Type: Unsigned Integer number of bits:32 Constant: 88234567Sample time: 1Bus7 : Altera DSP Builder

57、-IO Bus-AltBusBus Type: Unsigned IntegerNode Type: Internal Node number of bits:32Adder4: Altera DSP Builder-Arithmetic-Parallel Adder Subtractor number of input: 2Add(+)Sub(-): +Clock Phase Selection: 1 勾选 PipelineDly2: Altera DSP Builder-Storage-Delay默认设置BusConversion: Altera DSP Builder-IOBus-Bus

58、ConversionBus Type: Signed IntegerInputnumber of bits: 32Outputnumber of bits: 10Input Bit Connected to Output LSB: 22 ROM10X10S: Altera DSP Builder-Storage-LUTBus Type: Signed IntegerOutputnumber of bits: 10LUT Address Width: 10MATLAB Array: 511*sin( 0:2*pi/(210):2*pi) 勾选 Use LPM 和 Register Address

59、 项6. 5FSK硬件环HIL仿真设计前面提到的在 Simulink 平台上的仿真都属于算法级仿真,是软件仿真。如果想要求仿 真结果能反映模块的硬件特性,在Simulink平台上的仿真就不能满足要求。在Quartusll 平台上的仿真尽管获得了全硬件的仿真结果,但没有Mat lab提供的大量功能强大的仿真工 具,一些特定功能的激励信号难以获得。因此最理想的方法是直接在Simulink平台上将设 计模型下载进FPGA,利用Simulink提供的各类仿真工具进行仿真。Altera的DSP Builder提供的HIL(Hardware in the Loop)模块能很好的完成这类仿 真。HIL可以在

60、Simulink模型与FPGA开发板间通过JTAG通信口建立一种联系,从而实现 基于Matlab/DSP Builder平台的硬件仿真。我们利用上文建立的FSK模型来举例说明基于HIL模块的仿真流程。1、调出前面完成的FSK模型。将信号源Pulse Generator的参数和修改如下图6 30。图 630 Pulse Generator 参数设置图 631 FSK 的仿真参数设置窗2、用Signalcompiler对FSK模型进行转换、综合和适配。按照图6 21的步骤,分别 按动对话框按钮1、2、3,使fsk_HIL.mdl转换成为一个Quar tusll工程。3、如图6 32所示,删去FSK

61、图中所有Alt era DSP Builder库元件构成的电路,再引 入HIL模块(Altera DSP BuilderAltlabHIL)。为稳妥起见,将设计另存。图 6 32 加入 HIL 模块的 FSK4、将PC机与FPGA开发板连接好,打开电源。双击图6 32的HIL模块,将弹出图6 33所示的HIL参数设置对话框。首先在l.Select Quartusll Project加入前面生成的 FSK工程;然后在2.Selectthe clock pin栏选择clock;根据电路图输入输出端口的数据 类型确定3.1dentity the signed port中各端口的数据类型在右栏的Burst Mode处打勾;在Burst length处键入1024 (默认);在Frame Mode 处打勾,下面参数默认,点击 Next page 按钮,进入下一页进入图 634 界面。图 6 33 HIL 参数设置在图 634 的 FPGA device 栏输入你所应用的 FPGA 型号,如本书应用的类型为

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!