




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 Matlab Dsp builder 硬件模块设计 Matlab 是国内强大的数学分析工具 广泛用于科学计算和工程计算 还可以进行复杂 的数字信号处理系统的建模 参数估计及性能分析 Simulink 是 Matlab 的一个组成部分 用于图形化建模仿真 DSP Builder 是 Altera 公司推出的一个面向 DSP 开发的系统级工具 它构架在多个软件工具之上 并把系统级 算法级建模 和 RTL 级 硬件实现 两个设计 领域的设计工具连接起来放在 Matlab Simulink 平台上 而将 Quartrs 作为底层设计工具 置于后台 从而最大程度地发挥了这三种工具的优势 DSP Builder 作为 Simulink 中的一 个工具箱 使得用 FPGA 设计 DSP 系统完全可以通过 Simulink 的图形化界面进行 只要简 单地进行 DSP Builder 工具箱中的模块调用即可 Matlab DSP Builder 尤其适用于一些在 Quartus 上不方便完成或不能完成的设计项目 如涉及算法类及模拟信号处理与生产方面 的系统处理 DSP Builder 还可以自动完成大部分的设计过程和仿真 直到把设计文件下 载到 FPGA 中 DSP Builder 提供了 Quartus II 软件和 MATLAB Simulink 工具之间的接口 其具有如 下特性 1 用于连接 Mathwork 的 MATLAB 信号处理工具箱和滤波器设计工具箱 Simulink 环 境和 Altera 的 Quartus II 设计软件环境 2 支持 Altera 的 DSP 核 这些核均可以从 Altera 的网站上下载 例如 FIR Compiler Reed Solomon Compiler 等等 3 可以利用 Altera 的 DSP 开发板来快速的实现设计的原型 4 支持 SignalTap II 逻辑分析仪 一种嵌入式的信号分析仪 它可以探测到 DSP 开 发板上 Altera 器件内部的信号 并把数据引入到 MATLAB 的工作区以便于进行可视化的分 析 5 包括了用户可以创建的定制的逻辑 用于配合 SOPC Builder 和 Nios II 嵌入式处 理器设计 6 包括了 PLL 块 用于多时钟设计 7 包括了状态机块 8 针对 DSP 系统的算法和实现 支持统一的表示方法 9 根据 MATLAB 和 Simulink 的测试矢量 可以自动生成 VHDL 测试激励或 Quartus II 矢量文件 vec 10 自动调用 VHDL 综合器和 Quartus II 编译器 11 仿真可以设定为比特或周期精度 12 提供多种的定点运算和逻辑操作 用于配合使用 Simulink 软件 13 支持多种 Altera 的器件 Stratix Stratix II 和 Stratix GX 器件 Cyclone 和 Cyclone II 器件 APEXII APEX 20KC 和 APEX 20KE 器件 Mercury 器件 ACEX 1K 器件 FLEX 10K 和 FLEX 6000 器件 利用 Matlab 和 DSP Builder 进行模块设计也是 SOPC 技术的一个组成部分 这是由于 利用 Matlab DSP Builder Quartrs 可完成纯硬件的 DSP 算法模型及实现 从而构成嵌入式 系统外围接口的协处理模块 再进一步构成软件程序中的精简指令 DSP 模块或其他功能 模块可以成为单片 FPGA 电路系统中的一个组成部分 而且通过 Matlab DSP Builder 可 以直接为 Nios 嵌入式处理器设计各类加速器 并以指令的形式加入到 Nios 的指令系统 从而成为 Nios 系统的一个接口设备 与整个片内嵌入式系统融为一体 即利用 DSP Builder 和基本的 Nios CPU 用户可以根据项目的要求 自己构建自己需要的 DSP 处理系 统 本章主要介绍利用 Matlab DSP Builder Quartrs 三个工具软件联合开发的设计流程 图 6 1 为 Matlab DSP Builder Quartrs 联合应用框图 由图 6 1 可见 设计流程从利用建立 DSP 电路模型开始 电路模型的建立可以是图形 化的 利用 Simulink 和 DSP Builder 中提供的丰富的功能模块和 IP 核进行设计 DSP Builder 中包含了算术和存储功能等设计模块以及 IP 库中的许多复杂功能模块 电路中的 功能模块和 IP 的技术参数 数据格式 数据类型和总线宽度等都可以直接设置 电路模型 设计完成后 可以进行系统级的模型仿真 这与目标器件和硬件系统没有关系 是基于算 法的仿真 下个步骤是利用置于 Simulink 电路模型界面的 DSP Builder 的 SignalCompiler 将电路 模型文件 即 Simulink 电路模块文件 mdl 转换成 RTL 级的 VHDL 代码表述和工具命令 语言 Tcl 脚本 一旦获得转换好的 VHDL 描述 在 Simulink 中即可调用 VHDL 综合器了 目前可选用的综合器有 Quartrs LeonardoSpectru 和 Synplify 由它们生成底层网表 文件 在 Quartrs 进行编译优化的过程中 会产生两种详细记录电路硬件特点和优化方式 的底层电路描述的中间网表文件 即 ATOM Netlist 然后调用 Quartrs 中的编译器 根据 网表文件及设置的优化约束条件进行布线布局和优化设计的适配操作 最后生成编程文件 和仿真文件 pdf 和 sof 它们可用于对目标器件的编程配置和硬件实现 与此同时可 生成分别用于 Quartrs 的门级仿真文件和 ModelSim 的 VHDL 时序仿真文件 以及相应的 VHDL 仿真激励文件 以用于实时测试 DSP 系统的工作性能 图 6 1 基于 Matlab Dsp builder Quartrs 等工具 6 16 1 DSPDSP BuilderBuilder 元件库简介元件库简介 打开 Matlab 环境 可以看到 Matlab 的主窗口界面被分割成三个窗口 命令窗口 Command Window 工作区 Workspace 命令历史 Command History 使 Matlab 的 Current Directory 指向所安装的 DSPBuilder 的 Altlib 文件夹 点击旁边的 simulink 图 标打开 simulink 库 如下图 6 2 所示 图 6 2 Matlab 的 Current Directory 在 Simulink Library Browser 的左面展开 Altera DSP Builder 可以看见 DSP Builder 的元件库如图 6 3 所示 元件库可以分为若干部分 其中有主控元件库 AltLab 算术元件库 Arithmetic 开发板库 Boards 复元件库 Complex Type 组合元件库 Gate Control 总线元件库 IO Bus 时钟元件库 Rate Change SOPC 元件库 SOPC Builder Links 状态机功能元件库 State Machine Functions 时序元件和 存储器元件库 Storage IP 核元件库 MegaCore Function 视频和图象处理元件库 Video and Image Processing 图 6 3 DSP Builder 元件库 1 主控元件库 AltLab 包含一些用于控制的模块 主要有 数据观察窗 BP FPGA 编程器 Device programmer HDL 引入模块 HDL Import HDL 子系统元件模块 HDL SubSystem HIL 硬件环境模块 HIL 逻辑分析仪探头 Node 硬件工程参数设 置模块 Quartus Global Project Assignment FPGA 引脚锁定模块 Quartus Poinout Assignment MatLab 模型至 VHDL 转换器 SignalCompiler 逻辑分析仪 SignalTap Analysis 2 算术元件库 Arithmetic 包含一些与运算相关联的器件 主要有比较器 Comparator 计数器 Counter 差分器 Differentiator 除法器 Divider 增 益乘法器 Gain 地址发生器 Incerement Decrement 积分器 Integrator 乘法器 Multiplier 乘法累加器 Multiply Accumulate 如图 6 4 所示 图 6 4 算术元件库 3 SOPC 元件库 SOPC Builder Links 在左侧展开加号分别是 SOPC AVALON 总线 模块 SOPC AVALON 总线端口模块和 SOPC 用户自定制指令端口 如图 6 5 图 6 5 SOPC 元件库 4 IP 核元件库 MegaCore Function 包含 Altera 公司设计好的 IP 核 可以使一 般的设计者在不用全面了解所用 IP 核相关技术过多细节的情况下 在短期内设计符合要求 的系统 MegaCore 是 Altera 的 IP Core 计划中的一个组成部分 IP 核元件库所包含的 IP 核不 附带在 DSP Builder 和 Quartus 中 需要单独购买 如图 6 6 所示 IP 核元件库主要有 CIC IP 核 cic FFT IP 核 fft FIR IP 核 fir NCO IP 核 noc RS IP 核 VITERBI IP 核 viterbi 图 6 6 MegaCore Function 元件库 6 26 2 FSKFSK 调制器设计调制器设计 二进制频率调制 2FSK 是利用二进制数字基带信号控制载波进行频谱变换的过程 在发送端产生不同频率的载波震荡来传输数字信号 0 1 在接收端 把不同频率的载 波振荡还原成相应的数字基带信号 FSK 调制的方法有两种 1 直接调频法 用数字基带矩形脉冲控制一个振荡器的某些参数 直接改变振荡频率 输出不同 的频率信号 2 频率键控法 用数字矩形脉冲控制电子开关在两个振荡器之间进行转换 从而输出不同频率的 信号 6 2 16 2 1 建立设计模型建立设计模型 1 们需要建立一个工作库 所以先新建一个文件夹 FSK 2 使 Matlab 的 Current Directory 指向所安装的 DSPBuilder 的 Altlib 文件夹点 击上方的 simulink 图标打开 simulink 库 如下图 6 7 所示 图 6 7 Matlab 的 Current Directory 3 在 Simulink Library Browser 窗口中选择 File 菜单 在出现的菜单中选择 New 在弹出的子菜单中选择新建模型 model 如图 6 8 图 6 8 新建 Model 4 放置 SignalCompilder 点击 simulink 库管理器左侧的数形列表中的 Altera DSP Builder 条 使之展开 DSPBuilder 库 这时会出现一串树形列表 对 DSPBuider 的子模块 Block 进行分组 展开其中的 Altlab 选择库管理器右侧的 SignalCompilder 拖动到 新的模型窗口 如图 6 9 图 6 9 Simulink 库中的 DspBuilder 5 图 6 5 为所需最终连接的 Modle 图形 参照图 6 10 先放置 Input2 Input2 在 DSPBuilder 库中的 IO Bus 模块中 选择 Input 拖动到新 Model 中 点击图形下面的文 字 Input 可以更改名称 双击打开参数设置窗口 Bus type 可设为 Unsigned Integer 无 符号整数 number of bits 设为 2 如图 6 11 图 6 10 FSK 调制模型 图 6 11 input2 参数设置 Constant 也同样在 IO Bus 模块中 constant1 设置为无符号整数 number of bits 设为 8 常数值 Constant Value 设置为 9 抽样时间 Sample time 为 1 如图 6 12 Constant2 除了 Constant value 设置为 3 外 其余设置同 Constant1 这样可以使 数字基带矩形脉冲的峰峰值在 3 到 9 之间 图 6 12 constant1 参数设置 6 n to 1 Multiplexer 和 LUT 同在 Gate Control 模块下 将它们拖到新建 Model 中 将 LUT 改名为ROM10X10S 如图 6 13 图 6 13 LUE 和 n to 1Multiplexer 模块 其中 n to 1Multiplexer 的数据输入线 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 函数的调用格 式为 sin 起始值 步进值 结束值 ROM10X10S 为一个输入地址为 8 位 输出地址为 8 位的正弦查找表模块 输入地址总线位有符号整数 Signed Interger 可以设定起始 值为 0 结束值为 2 步进值为 2 2 8 计算式可以写成 127 sin 0 2 pi 2 8 2 pi 其中 pi 即位常数 在 Use LPM 处打勾 表示允许 Quartus 利用目标器件中的嵌入式 RAM 在 EAB ESB 或 M4K 模块中 来构成 ROM10X10S 即将生成的正弦波数据放在嵌入 式 RAM 构成的 ROM 中 这样可以节省大量的逻辑资源 如图 6 14 图 6 14 ROM10X10S 参数设置 7 在 Arithmetic 模块下找到 Parallel Adder Subtractor 改名为 ADDER4 将输入 设为 2 Add Sub 设为 其余不变 如图 6 15 图 6 15 设置 ADDER4 8 放置 Delay 模块 在 Storage 库下的 Delay 放置到新建模型窗口并改名为 Dly2 Delay 是一个延时环节 在这里不修改其默认参数设置 9 Bus7 和 Out8 在 IO Bus 库下 找到 AltBus 和 output 分别改名为 Bus7 和 Out8 Bus7 的 Bus Type 为 Signed Integer Node Type 为 Internal Node number of bit 为 8 位 如图 6 16 图 6 16 设置 Bus7 Out8 的 Bus Type 也为 Signed integer 类型 8 位 如图 6 17 图 6 17 设置 Out8 10 放置完所需的模块后 按照图 6 5 连接好 这样就完成了 FSK 调制模型的设计 在进行仿真验证和 SignalCompiler 编译前 先对文件进行存盘操作 点击新建模型窗口的 File 菜单 选择 Save 项 取名并保存在自己所建的文件夹 FSK 中 在本例中 新建模型 取名为 fsk 模型文件为 fsk mdl 保存完毕后 新建模型窗口的标题栏会显示模型的名称 对模型取名后就可以使用 SignalCompiler 进行编译了 在编译前还需要进行仿真验证 6 2 2 Simulink 模型仿真模型仿真 用 DSP Builder 模块设计好一个新的模型后 可以直接在 simulink 中进行算法级 系 统级仿真验证 对一个模型进行仿真 需要施加合适的激励 一定的仿真步进和仿真周期 添加合适的观察点和观察方式 需要强调的是 凡是来自 Altera DSP Builder 库以外的模块 SignalCompiler 都不能将其变成硬件电路 即不会影响生成的 VHDL 程序 但在启动 Simulink 仿真后能影响后面产生的仿真激励文件 Pulse Generator 模块的情况正是如此 1 加入一个 Pulse Generator 模块 在 Simulink 库管理器中 展开 simulink 库 选 中 Sources 库 把 Sources 库中的 Pulse Generator 模块拖放到 FSK 模型窗口中 2 添加波形观察模块 在 simulink 的库管理器中 展开 simulink 库 选中其中的 Sinks 库 把 Scope 模块拖放到 FSK 模型窗口中 双击该模块 打开的是一个 Scope 窗口 用鼠标点击 Scope 模块窗口上侧工具栏的第二个工具按钮 Parameters 参数设置 打 开 Scope 参数设置对话框 在 Scope 对话框中有两个选项页 Gerneral 和 Data History 在 Gerneral 选项页中 改变 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 是基于时间的 Time based 振幅 Amplitude 为 1 周期 period 是 1500 秒 占空比 Pulse Width 为 50 相位延迟 Phase delay 为 0 4 点击 Simulation 菜单 在下拉菜单中选择 configuration parameters 如图 6 20 将 Stop time 设置成 10000 FSK 模型编辑窗中 在 Simulation 菜单下 选 Start 项 开始仿 真 等待仿真结束 双击 Scope 模块 打开 scope 观察窗 在 Scope 观察窗中 可以使用 工具栏中的按钮来放大缩小波形 也可以使用工具栏上的 Autoscale 使波形自动适配波 形观察窗 用鼠标左键 可以放大波形 图 6 21 为 FSK 的仿真图形 图 6 20 FSK 仿真停止时间 图 6 21 FSK 仿真图 图中可以清晰的看到在脉冲值为 1 和 0 时 载波信号频率随脉冲信号值变化而变化 从而实现了 2FSK 6 2 3 SignalCompiler 使用方法使用方法 下面进行设计流程中最为关键的一步 就是把 DSP Builder 的设计转到硬件上加以实 现 在这一步 可以获得针对特定 FPGA 芯片的 VHDL 代码 1 双击 FSK 模型中的 SignalCompiler 模块 将出现如图 6 22 所示的对话框 点击 Analyze 分析 按钮后 SignalCompiler 就会对 FSK 模型进行分析 检查模型有无错误 并在 Matlab 主窗口弹出对话框 并给出相关信息 图 6 22 双击 SignalCompiler 2 图 6 21 中显示了 Signal Compiler 窗口 左侧是项目设置选项 Project Setting Options 可以设置器件类型 Device 综合工具 Synthesis Tool 以及优化项目 Opimization 右侧是硬件编译流程 Hardware Compilation 下方是信息框 Messages SignalCompiler 的设置都集中在项目设置选项部分 在 Device 下拉选择框中选 择需要的器件系列 在此选为 Cyclone 系列 其具体的器件型号 需由 QuartusII 自动决定 使用该器件系列中的某一个具体型号的器件 或在手动流程中由用户指定 图 6 21 SignalCompiler 设置对话框 3 当设置好 Device 和 Synthesis 后 右侧的硬件编译 Hardware Compilation 部分就会 列出一个操作流程 见图 6 21 分别为 转换 MDL 文件为 VHDL 文件 Convert MDL to VHDL 综合 Synthesis 编译适配 QuartusIIQuartus 先点击步骤 1 的图标 完成 simulink 文件 mdl 到 VHDL 文件的转换 转换完成 后 在 Messages 信息提示框中 会显示 Generated top level fsk vhd files 即顶层文 件 fsk vhd 完成转换 图 4 34 fsk 模型生成的 VHDL 文件 4 点击步骤 2 的图标 完成综合过程 因为左侧的设置 本例用 QuartusII 来完成综 合过程的 在综合后生成原子网表供适配器使用 并自动生成 QuartusII 可直接调用的工程 5 点击步骤 3 的图标 调用 QuartusII 完成编译适配过程 生成编程文件 pof 文件和 sof 文件 图 4 36 编程文件可以直接用于 FPGA 的编程配置 如果想知道详细的报告 点击下面的 Report File 按钮进行查看 Fsk 模型对应的报告文件为 fsk DspBuilder Report html 6 2 4 使用使用 QuartusII 实现时序仿真实现时序仿真 虽然已经进行了算法级 系统级仿真验证 然而进行门级的时序仿真仍然是十分重要 的 SignalCompiler 已将 MATLAB 上的仿真信息转变成了可用于 QuartusII 进行时序仿真 的激励信息及相关仿真文件 fsk quartus tcl 因此能容易地完成此项任务 1 打开 QuartusII 环境 选择菜单 File Open Project 定位到 fsk 模型所在路径目 录 打开 DSP Builder 建立的 QuartusII 工程文件 fsk quartus 2 上文中提到 在 SignalCompiler 中的 QuartusII 编译 具体的器件由 QuartusII 自动 决定 可实际使用中 器件往往不是 QuartusII 自动选定的那个型号 管脚也不是 QuartusII 自动分配的管脚 这些都需要在 QuartusII 中进行修改 所以这里须按照前面章节中叙述的 方法选择具体器件型号 本例中使用的是 EP1C6Q240C8 然后启动全程编译 即执行 Start Compilation 3 执行菜单 Processing Start Simulation 图 6 22 即为时序仿真波形 在图中可以 清楚的看到输出数据随着时钟的变换交替的进行频率变换 如果这时看不到输出的波形数 据 应该回到 MATLAB 设计文件检查 仿真 变换 注意这时只按 SignalCompiler 中的 第一按钮 图 6 22 时序仿真波形图 6 2 5 使用使用 QuartusII 硬件测试与硬件实现硬件测试与硬件实现 在此按照前面章节中介绍的方法锁定管脚 打开 fsk 工程文件 fsk vhd 了解端口情况 选择合适的电路模式 然后进行编译 完成适配过程 最后是进行硬件的下载 连接好 FPGA 开发板 然后将实测结果与在计算机上进行的时序仿真结果进行比较 若再想改动 Simulink 中的 fsk mdl 图 应该注意两点 第一 内部电路结构和设置可以改 但端口信号名不要改 如输入 input2 out8 因 为此信号的引脚已被锁定 不便改变 第二 改动 out mdl 图后只宜作系统仿真和 VHDL 文件转换 不宜作综合 即最多只 能对图 6 17 所示的界面执行第 1 个按纽 否则将可能把原来设定好的引脚全部冲掉 为了保存引脚信息 综合与适配两项操作必须在进入 QuartusII 后进行 图 6 23 为硬 件实现后的输出波形 图 6 23 FSK 调制波形 6 36 3 直接数字合成直接数字合成 DDSDDS 设计设计 6 3 16 3 1 直接数字合成直接数字合成 DDSDDS 基本原理基本原理 对于正弦信号发生器 它的输出可以用下式来描述 6 1 sinsin 2 outout SAtAft 其中是指该信号发生器的输出信号波形 指输出信号对应的频率 上式的表 out S out f 述对于 t 式连续的 为了用数字逻辑实现该表达式 必须进行离散化处理 用基准时钟 clk 进行抽样 令正弦信号的相位 6 2 2 out ft 在一个 clk 周期 相位的变化量为 clk T 6 3 2 2 out outclk clk f fT f 其中指 clk 的频率对于 2 可以理解成 满 相位 为了对进行数字量化 clk f 把 2 切割成份 由此每个 clk 周期的相位增量用量化值来表述 2N B 且为整数 与 6 3 式联立 可得 2 2 N B AB 6 4 2 2 N outout N clkclk Bff B ff A 显然 信号发生器的输出可描述为 11 1sin 2 sin sin 2 KK outK N SAABBAfBB A 6 5 其中指前一个 clk 周期的相位值 同样得出 1K 6 6 1 1 2 2 K N K B A 图 6 24 为 DDS 的基本结构图 图 6 24 基本 DDS 结构 6 3 26 3 2 用用 DSPBuilderDSPBuilder 设计设计 DDSDDS DDS 采用了层次化的设计方法 即使用了 Simulink 的子系统 SubSystem 来完成 DSP 模型的层次化设计 我们可以用上面的例子进行简单的介绍 在已经建好的模型上进行简单修改后 选择除 SignalCompiler Pulse Generator 以 外的模块 单击右键选择 Create Subsystem 如图 6 25 图 6 25 FSK 输出的修改 图 6 26 为创建子系统模块后的 FSK 图形 用鼠标双击 Subsystem 子系统模块后 就 会弹出 fsk Subsystem 窗口 显示子系统模块封装的原理图 值得注意的是 有些 DSPBuilder 库的模块只能放在顶层原理图中 如 SignalCompiler 模块 如果子系统中放 置了 SignalCompiler 模块 只可以进行 Simulink 仿真 而不能使用 SignalCompiler 来生 成相应的 VHDL 代码 图 6 26 生成子系统后的 FSK 图 6 23 为 DDS 的顶层设计图 而图 6 24 为其子系统 Subsystem 的结构图 图 6 24 DDS 顶层设计图 其中 AMPL PHASE FREQ 是 simulink Sources 库下的 constant 元件 Constant value 分别为 67 456 11456789 勾选 Interpret vector parameters as 1 D 选项 Sample time 为 inf Input input1 input2 在 Altera DSP builder IO Bus 库下 Bus Type 为 Unsigned interger number of bits 分别为 32 10 8 Output 也在 Altera DSP builder IO Bus 库下 输出位为 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 2 10 2 pi 并勾选 Use LPM 和 Register Address 选项 Pdt2 为 Altera DSP builder Arithmetic 库的 Product 元件 Pipeline 值为 0 勾 选 Use LPM 选项 Bus1 在 Altera DSP builder IO Bus 库 是 BusConversion 元件 为 有符号整数 输入 18 位 输出 10 位 Input Bit to Output LSB 为 8 Bus7 为 Altera DSP builder IO Bus 下的 AltBus 元件 总线类型是有符号整数 节点类型是内部节点 Internal Node 32 位 Adder4 和 Adder3 设置相同 为在 Altera DSP builder Arithmetic 下的 Parallel Adder Subtractor 元件 Number of Inputs 是 2 Add Sub 设为 勾选 Pipeline 选项 Clock Phase Selection 设置为 1 Dly2 是 Altera DSP builder Storage 下 Delay 元件 默认设置 BusConversion 在 Altera DSP builder IO Bus 元件库 Bus Type 为 Signed Interger 输 入为 32 位 输出 10 位 Input Bit to Output LSB 为 22 图 6 26 为 DDS 信号输出波形 图 6 26 DDS 信号输出 6 46 4AMAM 调制器设计调制器设计 6 4 16 4 1 AMAM 调制原理调制原理 AM 的调制原理是将要传送的信息装载到某一高频 载波 信号上去的过程 幅度调制 是用调制信号去控制载波的振幅 使其随调制信号线型变化 而保持载波的频率不变 图 6 27 为在 Maltlab 下完成的 AM 全图 主要分为 4 个区域 区和 区为两个正弦 信号发生器 分别为调制信号和载波信号 区为控制区 主要控制调制信号的幅度 当 Cnt9 选择不同值时 区输出不同的参数调整 区输出正弦信号的幅度 使调制信号的输 出具有不同的幅度 如图 6 27 图 6 28 为 Con9 选择 1 3 6 时输出的调制信号 区主要作用是将调制信号装载到载波信号上去 实现信号的调制 图 6 27 AM 调制原理图 图 6 28 受控的调制信号 图 6 29 AM 调制信号 6 4 26 4 2AMAM 调制器参数设置调制器参数设置 仿真时间设为 100000 其它设置如下 1 区正弦信号发生器的设置 Cst15 Altera DSP Builder IO Bus Constant Bus Type Unsigned Integer number of bits 16 Constant 20 Sample time 1 Bus3 Altera DSP Builder IO Bus AltBus Bus Type Unsigned Integer Node Type Internal Node number of bits 16 Adder1 Altera DSP Builder Arithmetic Parallel Adder Subtractor number of input 2 Add Sub Clock Phase Selection 1 Dly Altera DSP Builder Storage Delay 默认设置 Bus5 Altera DSP Builder IO Bus BusConversion Bus Type Signed Integer Input number of bits 16 Output number of bits 8 Input Bit Connected to Output LSB 8 ROM8X8S Altera DSP Builder Storage LUT Bus Type Signed Integer Output number of bits 8 LUT Address Width 8 MATLAB Array 127 sin 0 2 pi 2 8 2 pi 勾选 Use LPM 和 Register Address 项 2 区控制端参数设置 Mux41 Altera DSP Builder Gate Control n to 1 Multiplexer Number of Input Data Line 8 Pipeline 0 SL Altera DSP Builder IO Bus input Bus Type Unsigned Integer Node Type Input Port number of bits 3 Cnt9 Simulink sources Constant Constant value 6 勾选 Interpret vector parameters as 1 D Sample time inf Cst8 14 Altera DSP Builder IO Bus Constant Bus Type Signed Fraction number of bits 8 number of bits 8 Sample time 1 Constant Value 从端口 0 到 10 分别为 0 9 0 2 3 区调制区参数设置 Pdt1 Pdt2 Altera DSP Builder Arithmetic Product Pipeline 0 勾选 Use LPM ADDER2 Adder3 Altera DSP Builder Arithmetic Parallel Adder Subtractor number of input 2 Add Sub Clock Phase Selection 1 勾选 Pipeline 选项 Bus1 Altera DSP Builder IO Bus BusConversion Bus Type Signed Integer Input number of bits 18 Output number of bits 10 Input Bit Connected to Output LSB 8 Cst3 Altera DSP Builder IO Bus Constant Bus Type Unsigned Integer number of bits 8 Constant 128 Sample time 1 Cst4 Altera DSP Builder IO Bus Constant Bus Type Unsigned Integer number of bits 10 Constant 512 Sample time 1 Adder2 Altera DSP Builder Arithmetic Parallel Adder Subtractor number of input 2 Add Sub Clock Phase Selection 1 AM OUT Altera DSP Builder IO Bus output Bus Type Unsigned Integer Node Type Output Port number of bits 10 4 区正弦信号发生器的设置 Cst16 Altera DSP Builder IO Bus Constant Bus Type Unsigned Integer number of bits 32 Constant 88234567 Sample time 1 Bus7 Altera DSP Builder IO Bus AltBus Bus Type Unsigned Integer Node Type Internal Node number of bits 32 Adder4 Altera DSP Builder Arithmetic Parallel Adder Subtractor number of input 2 Add Sub Clock Phase Selection 1 勾选 Pipeline Dly2 Altera DSP Builder Storage Delay 默认设置 BusConversion Altera DSP Builder IO Bus BusConversion Bus Type Signed Integer Input number of bits 32 Output number of bits 10 Input Bit Connected to Output LSB 22 ROM10X10S Altera DSP Builder Storage LUT Bus Type Signed Integer Output number of bits 10 LUT Address Width 10 MATLAB Array 511 sin 0 2 pi 2 10 2 pi 勾选 Use LPM 和 Register Address 项 6 5FSK6 5FSK 硬件环硬件环 HILHIL 仿真设计仿真设计 前面提到的在 Simulink 平台上的仿真都属于算法级仿真 是软件仿真 如果想要求仿 真结果能反映模块的硬件特性 在 Simulink 平台上的仿真就不能满足要求 在 Quartus 平台上的仿真尽管获得了全硬件的仿真结果 但没有 Matlab 提供的大量功能强大的仿真工 具 一些特定功能的激励信号难以获得 因此最理想的方法是直接在 Simulink 平台上将设 计模型下载进 FPGA 利用 Simulink 提供的各类仿真工具进行仿真 Altera 的 DSP Builder 提供的 HIL Hardware in the Loop 模块能很好的完成这类 仿真 HIL 可以在 Simulink 模型与 FPGA 开发板间通过 JTAG 通信口建立一种联系 从而实 现基于 Matlab DSP Builder 平台的硬件仿真 我们利用上文建立的 FSK 模型来举例说明基于 HIL 模块的仿真流程 1 调出前面完成的 FSK 模型 将信号源 Pulse Generator 的参数和修改如下图 6 30 图 6 30 Pulse Generator 参数设置 图 6 31 FSK 的仿真参数设置窗 2 用 SignalCompiler 对 FSK 模型进行转换 综合和适配 按照图 6 21 的步骤 分 别按动对话框按钮 1 2 3 使 fsk HIL mdl 转换成为一个 Quartus 工程 3 如图 6 32 所示 删去 FSK 图中所有 Altera DSP Builder 库元件构成的电路 再 引入 HIL 模块 Altera DSP Builder Altlab HIL 为稳妥起见 将设计另存 图 6 32 加入 HIL 模块的 FSK 4 将 PC 机与 FPGA 开发板连接好 打开电源 双击图 6 32 的 HIL 模块 将弹出图 6 33 所示的 HIL 参数设置对话框 首先在 1 Select Quartus Project 加入前面生成 的 FSK 工程 然后在 2 Select the clock pin 栏选择 clock 根据电路图输入输出端口的 数据类型确定 3 Identity the signed port 中各端口的数据类型 在右栏的 Burst Mode 处打勾 在 Burst length 处键入 1024 默认 在 Frame Mode 处打勾 下面参数默认 点击 Next page 按钮 进入下一页进入图 6 34 界面 图 6 33 HIL 参数设置 在图 6 34 的 FPGA device 栏输入你所应用的 FPGA 型号 如本书应用的类型为 EP1C6Q240C8 如果 PC 机与 FPGA 的 JTAG 口通信正常 则在 Program the FPGA 栏下的 JTAG Cable 栏将自动显示编程器类型 而 Device in chain 栏将自动显示已经从 FPGA 板上 测得的 FPGA 型号 点击 Compile with Quartus 按钮 进行编译 即将原来图 FSK 模型已经生成的工程文 件与 HIL 模块中输入输出信号缓冲模块一起编译成一个下载文件 以便进行基于 HIL 第硬 件仿真 如果编译成功 会产生一个 sof 文件 在图 6 34 下方的信息栏出现文字 Created fsd HIL sof 下面点击图 6 34 的 Configure FPGA 按钮 通过 JTAG 口将此文件下载到 FPGA 中 如果下载无误 会在信息栏出现文字 Programming successful 图 6 34 HIL 模块编辑与编程窗 5 如图 6 35 将 HIL 模块与外围电路接好 运行 Simulink 仿真 图 6 36 为加入 HIL 模块的 FSK 模型仿真波形 如图所示 输入波形与输出波形有一定的相位差 这个相 位差说明信号在 FPGA 里有了延时 图 6 35 加入 HIL 的 FSK 模块 图 6 36 加入 HIL 后的 FSK 仿真 6 利用 Altera DSP Builder Altlab Device programmer 也可以进行模块编成 下 载流程同上 如图 6 37 图 6 37 利用编成模块向 FPGA 下载 6 66 6 使用使用 FIRFIR IPIP CoreCore 设计设计 FIRFIR 滤波器滤波器 Altera 为了使设计者也能在尽可能短的时间内快速高效的设计出符合设计要求的项 目 给设计者提供了大量的 IP Core 使设计者在不用全面了解有关器件的情况下达到理 想的设计效果 MegaCore 是 Altera 的 IP Core 计划中的一部分 FIR Compiler 作为一个 MegaCore 不附带在 DSP Builder 和 Quartus 中 需要向 Altera 公司单独购买 Altera 提供的 FIR Compiler 是一个结合 AlteraFPGA 器件的 FIR Filter Filter Core DSP Builder 与 FIR Compiler 可以紧密结合起来 DSP Builder 提供了一个 FIR Core 的应用环 境和仿真验证环境 使用 FIR Core
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025金华武义县人力资源限公司招聘1名项目制员工模拟试卷(含答案详解)
- 2025年乐山高新区管委会直属事业单位公开考核招聘工作人员的模拟试卷及1套完整答案详解
- 关于继续履行合同的通知书6篇
- 设备租赁维修技术协议合同
- 驻校卫生员考试题库及答案
- 物种起源考试题库及答案
- 主体结构考试题库及答案
- 支护工考试题库及答案
- 2025年新疆农作物制种种植保险合同协议
- 2025年广西梧州市辅警考试真题及答案
- 经济学研究生组会文献汇报
- 2025年新护士招聘三基考试题库及答案
- 智能化凝点试验系统多源数据融合的异构接口标准化难题及解决方案
- 防滑跌安全培训课件
- 2024年绍兴杭绍临空示范区开发集团有限公司招聘真题
- 2025资产抵押合同(详细)
- 小额农业贷款技术服务合作协议
- 2025年押运员模拟考试试题及答案
- 沉井施工合同4篇
- 2026年高考试题汇编政治专题26树立科学思维观念
- 2025年山东省青岛市中考英语试卷附答案
评论
0/150
提交评论