-
回复sea_eeworld
我现在考虑的是实时图像处理,包括一些预处理(这个现在已经是用FPGA做的了),还包括后端的搜索,目标提取等。如果用FPGA来实现整个系统的话,就会包括各种不同类型的算法,不单单是适合并行的,也适合串行的。但现在FPGA开发的手段很多,有软核有硬核,我想我是不太会去用HDL写这个系统的,那是集成电路干的事,FPGA还是有很多解决问题的方法的
-
其实我现在觉得用并行的思想还是串行的思想来设计算法可能更接近问题本质,因为硬件是要映射算法的,怎样的算法才觉得哪种硬件更好。
一般我们从小到大接受的都是串行编程的思想,但从我现在看到的资料来看,信号处理应该是并行的。
-
非常感谢大家的回复,真的让我懂了许多。一开始考虑这个问题的时候对问题的认识非常肤浅,就是想自己的项目究竟是用一片FPGA还是FPGA+DSP的架构,用一片FPGA能不能做?如果用FPGA,那么以前在DSP内跑的程序怎么办
现在想想当初提这个问题时真的是对很多问题的认识不够。现在觉得有一点是最重要的,哪种硬件体系架构更合适,是由算法的架构决定的。所以,脱离算法的硬件讨论是空洞的,没有意义的。硬件是用来支持算法的。
考虑这个问题以后,查了不少资料,看了不少文章,有一篇这么说“业内做算法的职业团队,不论目标是DSP和FPGA实现,都会有一组人根据架构设计的结果,做基于架构设计的标准模型(称为Golden模型,有可能用C,也可能用Matlab),而最终不论DSP还是FPGA的实现结果,都必须与Golden模型比较才能有资格说我实现的水平怎么样。那些教科书里的代码,目的并不是为了高效实现产品,而是演示算法本身效果,不会考虑实现效率和结构优化,因此根本不是在算法实现中可用的Golden模型。”
这一段话让我觉得自身知识结构的不足。这还和我们的教育背景有关,我本人现在是研二,本科包括现在都是电子专业的,受到的教育都是基于串行思想的C代码。无论是基于PC机的也好,就算是单片机,MATLAB,DSP,其实都是类似的。上课讲的东西也都是为了演示算法的。而诸如什么架构设计,算法设计等等,真的是不了解。现在我想请教大家以下几个问题。
1 信号处理本身是并行的过程,我现在也想用并行的思想方法来设计自己的算法。但我们本身接受的教育是基于串行的,我想问问有没有关于怎样设计并行算法的系统的资料。也许有关于并行处理的教科书,我怕又是那种很理论的内容。我想问下大家有没有这方面资料的看法等等。
2 现在我觉得关于SOC系统理论,系统架构设计的资料对于SOC系统的设计是非常重要的,好的方法理论是好的项目的基础。电子工程师应该在系统架构方面多学习。大家有没有这方面的看法。
对了,最近我有了几点新的认识:
1 看了点SYSTEM GENERATOR方面的资料,现在更倾向于采用FPGA的架构,因为matlab+SYSTEM GENERATOR是现在美国很多人采用的FPGA开发流程,算法通过SYSTEM GENERATOR建模,然后在FPGA实现。而且我觉得最重要的是SYSTEM GENERATOR描述算法的方法更接近于算法并行本质。
2 现在我觉得,不是说FPGA+DSP架构会不会被FPGA淘汰的问题,8位单片机都还有很多人用呢,各有所需。其实我更应该讨论以后高端的实时信号处理平台是哪个架构(排除那种用GPU等特殊的处理器),现在我觉得,从长远来说,FPGA+DSP架构更有可能更快达到它的极限,而FPGA能支持更高的速度要求,满足更高的实时处理能力
感谢大家的回复,让我把对问题的认识深化
-
大家讨论讨论丫
-
楼主,但我觉得现在大部分的DSP系统都是基于FPGA+DSP的,FPGA的确是灵活,但有两个问题
1若用Verilog开发FPGA算法的复杂性远远超过C开发,而且现在许多成熟的算法都是基于C语言的
2FPGA内嵌的内核的速度比不上DSP芯片的速度
所以现在基于单片FPGA的系统还极少见,你能提供什么成功的开发范例吗