基于C语言在FPGA上实现DSP的解决方案(2)
2012年05月25日 15:03 来源:本站整理 作者:秩名 我要评论(0)

尽管FPGA中可以实现浮点运算单元,但它们能迅速消耗FPGA的资源,所以如果可以,最好谨慎使用。主要依靠浮点运算的算法最好转换成定点运算,这样你既可利用用“模块浮点”方法,又可通过定点的方法设计整个系统。然后,通过对比实际输出与原始的全浮点运算的软件实现来确定转换精度。在霍尔算法的例子中,14b+7b的定点分辨率与全浮点的结果完全相同。
2确定资源
在接下来的设计中,需要对每个处理部分的时钟周期计数。通常,每个时钟周期可以完成二到三个运算,然后确定所需的FPGA资源以适应代码。可以在多个FPGA中分段运行代码来获得更高的计算能力。这些解决方案的拓展非常容易,只要使用所需的多个FPGA(最多5个),系统将自动检测它们。在该例子中,设计是基于处理块的。这些块按顺序被发送给每个FPGA,或者从每个FPGA收集起来(其逻辑是代码的一部分)。一个FPGA的加速比例可以达到37:1,而10个FPGA(每两个电路板上有5个)可以达到370:1。对设计进行编码相对简单,因为设计主要由C语言完成,除了一些需要特殊Handel-C指令的新功能。这些新指令包括:增强位操作、并行处理、宏操作和公式、任意宽度的变量、FPGA存储器接口、RAM和ROM类型、信号(代表硬件中的信号线)以及通道(在代码并行分支或时钟域之间通信)。工具条中的“代码转换”可以完成C和Handel-C的样本转换。

3对环境的仿真
再下一步是建立仿真环境,并在其中测试和优化硬件代码。仿真环境提供了完整的bit-true/cycle-true仿真,并对FPGA的实现进行可靠的模拟。利用设计输出与C软件仿真输出的比较来测试精度,同样也可得到FPGA处理器上真实运行速度的报告。通常,进行结构块仿真有助于找到设计中的问题,因为这些块在重组后可以确定总体的运行效果。可在仿真过程中做进一步的调整,如利用流水线在每个时钟周期内进行单输入单输出的测试,或将处理过程细分到更多的并行数据流中直到FPGA的资源利用率达到100%。此外,在硬件编译时也能发现算法的最慢点并对其优化,在FPGA甚至板子之间分割算法还可以获得额外的速度。利用软件,进一步调整可获得更好的性能。然而,精确调整带来的性能增益却会下降。通过简单的增加FPGA非常具有成本效益。并不需要使设计完美化,因为基于这些结果的设计可以在任何时候进行快速的仿真和优化。一旦仿真完成,就可以将设计编译到硬件里并激活数据流管理(DSM),以便将数据流送到FPGA处理器板而不是仿真器中。
访问TI网站,获取最新技术信息全面了解德州仪器(TI)的处理器电源参考设计:交叉参考搜索、应用手册、工具和软件、方框图参考设计、模拟eLAB。
本文导航
- 第 1 页:基于C语言在FPGA上实现DSP的解决方案(1)
- 第 2 页:分析各个算法
上周热点文章排行榜
上周资料下载排行榜
论坛热帖
热门博文
创新实用技术专题
热评
- LM3S9B96开发板手册及原理图
- STM32F103ZET6红牛电路图
- 高通发布全新设计DragonBoard板
- NI推出Single-Board RIO嵌入式介面
- protel99se正式汉化版免费下载
- hi3515海思原版原理图
- matlab 7.0软件下载(免费破解版)
- TX-1C型单片机开发板原理图
- 三菱A500变频器原理图
- 三相IGBT全桥隔离驱动电源设计
博文
- 问什么邮箱激活不了
- 八成大学生认同先就业后择业
- 我的心路
- 为什么邮箱激活不了
- 你是否曾这样伤害过一个人?
- 2012.5.12 第一个DS18B20程序
- 到底有多少人在校园里浪费青春
- 到底有多少人在校园里浪费青春
- 蓝牙技术越来越鸡肋
- 【博客分享季】 我的单片机入门


用户评论
查看全部 条评论
查看全部 条评论>>