为什么说FPGA的算法比较强,与单片机的算法相比它的优势在哪里呢?求高手指点。
打片机是cpu啊,里面只能跑软件
fpga可以实现算法
可以验证
只有在具体的应用领域才能对比起优势了
如果成本是第一因素,那单片机肯定占优
如果实现比较复杂算法、或 速度快,那么FPGA占优势
很多方面了。
单片机执行程序是一条指令一条指令串行执行的;fpga可以多个功能模块和单元间并行执行
1、结构:目前很多FPGA具有硬核加法器、乘法器等结构,运算速度很快,而51一般没有这玩意;
2、实现:FPGA可以采用并行和流水实现算法,而51是软件编程只能串行执行,并且每个指令周期都得占用至少2~3个clk;
3、性能:FPGA本身可以支持上百M的时钟输入,而51据我所知好像只有几十M;
综上所述,了解了吧
恩 谢谢 ,学习了 呵呵
fpga可以工作到最大到600mhz,且并行处理;单片机只能串行,且一般在ms,us级别吧,请大人指教
其实本质是cpu和asic的对比。
cpu的优势在于灵活可以实现很复杂的控制,一些对速度要求不高或者非常复杂的算法,cpu更有优势。
asic的优势在于高吞吐量(通常asic中计算单元的速度低于同等技术水平下的cpu对应计算单元的速度),因为cpu处理的数据必须放在内部的寄存器中,而asic只需要硬连接就可以。所以asic可以用来实现一些计算密集型的简单算法,比如fft。另外,因为要达到同样的处理速度,cpu的运行频率要远高于asic,比如解码1080p的视频,asic只需要200Mhz,而cpu起码要1ghz以上,工作频率的差异直接导致cpu更耗电,所以一些算法比如mp3解码,尽管完全可以由cpu完成,但是从功耗角度看asic更有优势。
实际情况不是简单的二选一,而是二者的结合。
fpga 太贵了,除非很高端应用
举个例子说,运算1+1=?假设FPGA输入时钟是100M,CPU频率是2G,此时CPU运算比FPGA要快。FPGA运算需要1个时钟周期,CPU需要若干指令周期,但是因为2g远远比100m快,因此CPU比FPGA快。可是如果运算1+2+3+4+5+....+100,FPGA还是只需要10ns计算完成,但是CPU却要一次一次地执行,速度慢了大约100倍。实际上就是FPGA的并发运算。可是这样的并发运算是需要代价的,就是算法越复杂,消耗的逻辑资源就越多。
楼上的解释的非常好·····
FPGA实现的算法执行效率高,速度快,稳定。
解释的很好理解。
呵呵 确实是这样 谢谢了
学习了,很有帮助
有0.5$一个的FPGA;而且几乎所有的FPGA厂商都有一个美元左右的低成本FPGA
