基于dsp_builder的算法在FPGA上的实现

 

一、摘要

  结合dsp_builder、matlab、modelsim和quartus ii等软件完成算法的FPGA实现。

二、实验平台

硬件平台:DIY_DE2

软件平台:quartus ii9.0 + ModelSim-Altera 6.4a (Quartus II 9.0) + dsp_builder9.0 + matlab2010b

三、软件平台的准备

1、软件的匹配

  根据altera的官方文档,可以看到quartus ii、modelsim、dsp_builder和matlab的版本匹配信息。如图1所示。

http://www.altera.com/support/ip/dsp/ips-dsp-version.html

图1 软件版本匹配

  一般情况下,quartus ii、modelsim和dsp_builder版本一定要匹配,而matlab版本高于规定的版本也可以,但这样做有可能会出现某些模块不能使用的情况。

2、软件的安装

安装与破解dsp_builder的步骤可以参看“清风醉明月”同学的文章,链接如下:

DSP builder安装指南(以9.1为例)

需要说明的是:

  针对dsp_builder9.0版本的matlab版本应为2007b,而我的是2010b,虽说是兼容的,但是仍出现了些问题,如高级库的一些组件无法显示,如图2所示。最好的解决办法还是按照建议,使版本完全匹配。

图2 某些功能无法使用

 四、例程

  通过一个正弦波的例程阐述dsp_builder的使用流程。可参看潘松著《EDA技术与VHDL》(第3版)第9章的例程。

1、建立simulink设计模型

  在matlab中,新建立一个simulink模型,如图3所示。

图3 建立的simulink模型

2、simulink模型仿真(系统级,即算法级)

  设置好参数后,运行仿真,双击scope可以看到仿真波形,如图4所示。

图4 simulink仿真波形

3、SignalCompiler使用方法

  在simulink中完成仿真验证后,就需要把设计转到硬件上加以实现。这是整个DSP builder设计中最关键的一步,据此可以获得针对FPGA的VHDL RTL代码。如图5所示。

图5 SignalCompiler

4、使用modelsim进行RTL级仿真

  这一步,其实是对由.mdl文件转换的VHDL文件进行仿真验证,可以通过添加TestBench组件实现。如图6所示。

图6 TestBench

  另外,Launch GUI选型,勾选的话,则直接启动modelsim进行仿真;不勾选的话,可以通过modelsim的Tools菜单下的TCL——>Execute Macro...查找工程文件夹下的sinwave_add.tcl文件进行仿真。

5、使用Quartus II实现时序仿真

  上一步是功能仿真,即modelsim中的前仿真。这是进一步验证时序仿真的正确与否,即后仿真。这一步,需要说明几点:

(1)Quartus II 9.1之前的软件自带仿真组件,而之后软件不再包含此组件。

(2)可以用modelsim实现后仿真,验证时序仿真。

6、FPGA的验证

  将设计下载到FPGA,进行验证。通过示波器验证波形的正确与否。

五、总结

  上面的流程涉及到的各个部分的具体使用,可以参看altera的dsp_builder官方文档。

dsp_builder的介绍:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_intro.pdf

dsp_builder的基本库:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_std.pdf

dsp_builder的高级库:http://www.altera.com.cn/literature/hb/dspb/hb_dspb_adv.pdf

转载自:http://www.cnblogs.com/sunev/archive/2012/11/17/2774836.html

基于dsp_builder的算法在FPGA上的实现的更多相关文章

  1. 基于dsp_builder的算法在FPGA上的实现(转自https://www.cnblogs.com/sunev/archive/2012/11/17/2774836.html)

    一.摘要 结合dsp_builder.matlab.modelsim和quartus ii等软件完成算法的FPGA实现. 二.实验平台 硬件平台:DIY_DE2 软件平台:quartus ii9.0 ...

  2. FPGA上如何求32个输入的最大值和次大值:分治

    上午在论坛看到个热帖,里头的题目挺有意思的,简单的记录了一下. 0. 题目 在FPGA上实现一个模块,求32个输入中的最大值和次大值,32个输入由一个时钟周期给出.(题目来自论坛,面试题,如果觉得不合 ...

  3. 目标反射回波检测算法及其FPGA实现 之三:平方、积分电路及算法的顶层实现

    目标反射回波检测算法及其FPGA实现之三: 平方.积分电路及算法的顶层实现 前段时间,接触了一个声呐目标反射回波检测的项目.声呐接收机要实现的核心功能是在含有大量噪声的反射回波中,识别出发射机发出的激 ...

  4. 目标反射回波检测算法及其FPGA实现 之二:互相关/卷积/FIR电路的实现

    目标反射回波检测算法及其FPGA实现之二: 互相关/卷积/FIR电路的实现 前段时间,接触了一个声呐目标反射回波检测的项目.声呐接收机要实现的核心功能是在含有大量噪声的反射回波中,识别出发射机发出的激 ...

  5. 目标反射回波检测算法及其FPGA实现(准备篇): 用Verilog-HDL状态机控制硬件接口

    基于FPGA的目标反射回波检测算法及其实现(准备篇) :用Verilog-HDL状态机控制硬件接口 前段时间,开发了一个简单的目标反射回波信号识别算法,我会分几篇文章分享这个基于FPGA的回波识别算法 ...

  6. 目标反射回波检测算法及其FPGA实现 之一:算法概述

    目标反射回波检测算法及其FPGA实现之一:算法概述 前段时间,接触了一个声呐目标反射回波检测的项目.声呐接收机要实现的核心功能是在含有大量噪声的反射回波中,识别出发射机发出的激励信号的回波.我会分几篇 ...

  7. 云中的机器学习:FPGA 上的深度神经网络

    人工智能正在经历一场变革,这要得益于机器学习的快速进步.在机器学习领域,人们正对一类名为“深度学习”算法产生浓厚的兴趣,因为这类算法具有出色的大数据集性能.在深度学习中,机器可以在监督或不受监督的方式 ...

  8. 基于Caffe的DeepID2实现(上)

    小喵的唠叨话:小喵最近在做人脸识别的工作,打算将汤晓鸥前辈的DeepID,DeepID2等算法进行实验和复现.DeepID的方法最简单,而DeepID2的实现却略微复杂,并且互联网上也没有比较好的资源 ...

  9. QT:用QSet储存自定义结构体的问题——QSet和STL的set是有本质区别的,QSet是基于哈希算法的,要求提供自定义==和qHash函数

    前几天要用QSet作为储存一个自定义的结构体(就像下面这个程序一样),结果死活不成功... 后来还跑到论坛上问人了,丢脸丢大了... 事先说明:以下这个例子是错误的 #include <QtCo ...

随机推荐

  1. vc ini配置文件读写

    ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息.ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Ke ...

  2. 【母函数】hdu1028 Ignatius and the Princess III

    大意是给你1个整数n,问你能拆成多少种正整数组合.比如4有5种: 4 = 4;  4 = 3 + 1;  4 = 2 + 2;  4 = 2 + 1 + 1;  4 = 1 + 1 + 1 + 1; ...

  3. 【分块】bzoj3226 [Sdoi2008]校门外的区间

    题解见 : http://blog.csdn.net/iamzky/article/details/41088151 ORZ ZKY 2个懒标记:是否翻转,覆盖成了什么. 怎么处理一个块上有两个标记的 ...

  4. python3开发进阶-Django框架的起飞加速一(ORM)

    阅读目录 ORM介绍 Django中的ORM ORM中的Model ORM的操作 一.ORM介绍 1.ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一 ...

  5. 1.10(java学习笔记)super关键字

    supe主要是调用父类中被重写的方法及属性. 用下列代码那说明: package cn.hcf.TestSuper; public class TestSuper { public static vo ...

  6. cssz中<a>标签鼠标选中去除选中边框

    IE: <a href="#" hidefocus="true"></a> 非IE: a:focus { outline:none; } ...

  7. 关于MYsql 多字段排序

    SELECT switch_data.* , lan_data.ename FROM switch_data , lan_data WHERE switch_data.address = '佳合丽景' ...

  8. linux之cat,more,less,head,tail

    http://lionbule.iteye.com/blog/663549 1.cat # cat /etc/profile 注:查看/etc/目录下的profile文件内容: # cat -b /e ...

  9. Nginx实现图片防盗链(referer指令)

    什么是图片盗链   每张图片在浏览器中都有对应的图片地址,在浏览器中输入这个地址是可以直接拿到图片. 图片盗链,就是盗用者在他的站上需要显示我们的图片,他没有把图片拿下来,放到他的服务器上, 而是直接 ...

  10. TDiocpCoderTcpServer返回数据记录有条数限制的问题

    TDiocpCoderTcpServer返回数据记录有条数限制的问题 在使用TDiocpCoderTcpServer控件返回查询数据的时候,发现当记录条数超过一定数量的时候(比方有人反试图返回30万条 ...