如何使用FPGA进行加速?

[复制链接]
4733|28
 楼主| jakfens 发表于 2011-11-14 17:13 | 显示全部楼层 |阅读模式
有点不是太明白

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
GoldSunMonkey 发表于 2011-11-14 17:16 | 显示全部楼层
:)这个问题太大了。
 楼主| jakfens 发表于 2011-11-14 17:20 | 显示全部楼层
就加个速哦
GoldSunMonkey 发表于 2011-11-14 17:22 | 显示全部楼层
:)就做个iphone, 太大了。
明空 发表于 2011-11-14 17:57 | 显示全部楼层
其实嘛,最耗时的工作交给FPGA去做,这不就是加速了吗
GoldSunMonkey 发表于 2011-11-14 20:28 | 显示全部楼层
 楼主| jakfens 发表于 2011-11-15 08:09 | 显示全部楼层
AutoESL 发表于 2011-11-15 09:27 | 显示全部楼层
很简单啊,比如有个算法A,用CPU处理需要很长时间,那就用FPGA硬件来处理,然后把结果返回给CPU就可以了,这就是加速.
AutoESL 发表于 2011-11-15 09:28 | 显示全部楼层
另外,处理器通常也有个浮点协处理器,也是用来加速的,你就把FPGA当作浮点协处理器,这样FPGA就是加速器了
GoldSunMonkey 发表于 2011-11-15 09:35 | 显示全部楼层
很简单啊,比如有个算法A,用CPU处理需要很长时间,那就用FPGA硬件来处理,然后把结果返回给CPU就可以了,这就是加速.
AutoESL 发表于 2011-11-15 09:27

哈哈,这个思路很清晰
GoldSunMonkey 发表于 2011-11-15 09:35 | 显示全部楼层
另外,处理器通常也有个浮点协处理器,也是用来加速的,你就把FPGA当作浮点协处理器,这样FPGA就是加速器了
AutoESL 发表于 2011-11-15 09:28

这个和DMA很像啊
 楼主| jakfens 发表于 2011-11-15 09:54 | 显示全部楼层
MCU又称为单片机,它为8位的微控制器,主要用在工业控制,FPGA则为可编程逻辑器件的一种,拥有丰富的硬件资源,可实现强大的逻辑功能,由于其硬件重构的特性,适合各种领域的应用; MCU的编程语言主要为C语言,以软逻辑实现,它通过顺序执行指令来实现特定功能,避免不了低速的缺点,相比之下,FPGA它以Verilog或VHDL等硬件描述语言为编程语言,由于直接由硬件实现逻辑,所以它并行执行,从而使速度大大提高; MCU的这种同一时间只能处理一条指令的特点也影响了它的应用,它只能用于一些算法的设计及简单的控制,而FPGA由于并行执行的特性,大量应用于复杂逻辑控制以及大量的数据运算和处理。


FPGA是在PAL、GAL、CPLD等可编程器件的基础上一步一步发展起来的。PAL是与阵列可编程或阵列固定,它的缺点是:采用熔丝工艺,只能一次编程,并且它的输出是固定的,不能编程;也就是说芯片一旦选定,输出结构将不可改变。GAL是在PAL的基础上发展起来的,可以重复编程。与PAL的最大区别是:输出结构可以由用户自己定义。但它结构简单,I/O数目有限。 CPLD是在GAL的基础上发展起来的。它主要由输入输出控制单元、宏单元和互连矩阵等组成。随着电子市场对功能要求的不断提高,CPLD越来越不能满足市场的需求。它最大只有512个宏单元,大部分是组合逻辑,难以实现复杂的时序逻辑设计,并且功耗很大。随着工艺的发展,FPGA登上了历史舞台并成为主角,它内部资源丰富,不管是时序逻辑还是组合逻辑都很多。它是作为专用集成电路领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
 楼主| jakfens 发表于 2011-11-15 09:55 | 显示全部楼层
恩恩 各位大神都很强大啊
 楼主| jakfens 发表于 2011-11-15 10:02 | 显示全部楼层
有没有什么简单的代码例子啊??参观一下
GoldSunMonkey 发表于 2011-11-15 10:31 | 显示全部楼层
:)我没有
lelee007 发表于 2011-11-15 10:31 | 显示全部楼层
lelee007 发表于 2011-11-15 10:32 | 显示全部楼层
哥是来学习滴:victory:
 楼主| jakfens 发表于 2011-11-15 10:46 | 显示全部楼层
z_no1 发表于 2011-11-15 10:48 | 显示全部楼层
比如说矩阵的位旋转,不管你是4位机,8位机,还是32位,64位,都得1位1位的算,如果用FPGA,做两个寄存器阵列,这边送,那边出,流水线操作,快得一塌糊涂。如果你玩过STM32,你就知道它带CRC32的硬件,啥移位,查表都不用,白的进去,红的出来,哦不是,是数据进去,结果出来。FPGA就是可编程硬件嘛。啥架构速度优化也优化不过硬线逻辑+流水线。这个是算法的终极速度了。当然了硬线逻辑+流水线是这里面最不灵活的方案了。
 楼主| jakfens 发表于 2011-11-15 10:50 | 显示全部楼层
哈哈 受教了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:鄙视电工就是鄙视全人类的智慧;抛弃电子就是毁灭文明,人类将回到刀割火种的时代

30

主题

1865

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部