在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
楼主: zhj1985

我看FPGA现在难以取代FPGA+DSP的架构,这段时间的思索总结

[复制链接]
发表于 2009-3-23 13:03:23 | 显示全部楼层
各有各的位置吧
 楼主| 发表于 2009-3-23 13:21:30 | 显示全部楼层

感谢大家的讨论,让我们把对问题的认识深化

非常感谢fangll和大家的回复,一开始考虑这个问题的时候对问题的认识非常肤浅,就是想自己的项目究竟是用一片FPGA还是FPGA+DSP的架构,用一片FPGA能不能做?

现在想想当初提这个问题时真的是对很多问题的认识不够。现在觉得有一点是最重要的,正如fangll所说的,哪种硬件体系架构更合适,是由算法的架构决定的。所以,脱离算法的硬件讨论是空洞的,没有意义的。硬件是用来支持算法的

fangll写的这一段“不知道楼主的团队是如何工作的。我知道业内做算法的职业团队,不论目标是DSP和FPGA实现,都会有一组人根据架构设计的结果,做基于架构设计的标准模型(称为Golden模型,有可能用C,也可能用Matlab),而最终不论DSP还是FPGA的实现结果,都必须与Golden模型比较才能有资格说我实现的水平怎么样。那些教科书里的代码,目的并不是为了高效实现产品,而是演示算法本身效果,不会考虑实现效率和结构优化,因此根本不是在算法实现中可用的Golden模型。而楼主想直接用那种开源的代码跑跑,想快速实现和验证功能,如果做为产品开发,只能说是票友水平了。” 这一段写地尤其出彩,确实现在本人的水平是票友水平。这还和我们的教育背景有关,我本人现在是研二,本科包括现在都是电子专业的,受到的教育都是基于串行思想的C代码。无论是基于PC机的也好,就算是单片机,MATLAB,DSP,其实都是类似的。包括我们室这里的水平,都是这样的,基本上都是从教科书中找到那种诸如图像处理算法的原型代码,然后修改后用在现有的系统。实事求是说,就我们室的水平,在中国这个业界里并不差。但看来和业内做算法的职业团队相比,真的是差太多太多了。

好,让我们把问题深化,接下去再谈谈以下几个问题:
1 哪里能找到关于SOC系统理论,系统架构设计的资料
fangll提到了Golden模型,我想对电子专业的人来说,可能过去不一定听说过。我查了百度和Google,资料介绍也不多,主要可能以前还是软件方面的概念,不过倒也查到点东西,但和芯片制造好像更有关系。怎么说呢,以前电子专业的不懂微电子的东西,只要会用芯片。现在做了FPGA了,开始涉及芯片内部了,发现自己的知识陈旧了,很多概念都不懂。但是这些对于FPGA的设计又是至关重要的,FPGA把它当做跑逻辑的东西倒不难,但想构建SOC,那些系统理论,系统方法,建模能力,现在觉得可能都是关键的。

2 怎么设计并行算法
其实现在的问题从一开始的FPGA与FPGA+DSP之争,到了算法设计之争,是用适合FPGA的并行算法还是适合DSP的我们现在更容易想到的串行算法。这可能由算法本身决定的,很想多了解些这方面的知识,但现在几乎所有数字信号处理的书都如fangll所说“那些教科书里的代码,目的并不是为了高效实现产品,而是演示算法本身效果,不会考虑实现效率和结构优化”,但还是想问问有没有这方面的教材,资料。自己当然要摸索,但首先希望站在巨人的肩膀上。

对了,最近我有了几点新的认识:
1 看了点SYSTEM GENERATOR方面的资料,现在更倾向于采用FPGA的架构,因为matlab+SYSTEM GENERATOR是现在美国很多人采用的开发流程,算法通过SYSTEM GENERATOR建模,然后在FPGA实现,如果是这样的方法,那么就是想用DSP,都不知道怎么用了。而且我觉得最重要的是SYSTEM GENERATOR描述算法的方法更接近于算法本质。

2 现在我觉得,不是说FPGA+DSP架构会不会被FPGA淘汰的问题,8位单片机都还有很多人用呢。其实我更应该讨论以后高端的实时信号处理平台是哪个架构(排除那种用GPU等特殊的处理器),现在我觉得,从长远来说,FPGA+DSP架构会更快达到它的极限,而FPGA能支持更高的速度要求,满足更高的实时处理能力

感谢大家的讨论,让我们把对问题的认识深化

[ 本帖最后由 zhj1985 于 2009-3-23 13:28 编辑 ]
发表于 2010-5-10 08:53:41 | 显示全部楼层
本帖最后由 pcseye 于 2010-5-10 08:54 编辑

12# zhj1985

   楼上那位大牛说的GOLDEN模型,其实就是一个比较对象。

   用硬件实现算法,肯定会有ERROR。因为每个数据的BIT数分配是有限的。比如算一个模,就需要平方、开根等计算,为评价这样一个算法的精度,一般就会用MATLAB或C用软件的方式计算一个精确值(浮点计算),再用软件的方式计算一个限制位数的仿硬件结果的计算值。和用FPGA(MODELSIM 前仿真)得到的结果作以下比较。很容易知道,这个算法相对精确值的误差,以及用硬件实现的过程是否准确(和软件模拟的硬件计算结果作比较可得)。

   另外,滤波器之类的设计中,FILTER的系数,一般是小数,这里限制每一个系数的位数,都会影响到整个系统的输出结果(transition BAND、RIPPLE都会变)也需要一个参照结果来评价。

   还有,POLYPHASE之类的过程,中间有没有错误,能不能PERFECT RECONSTRUCTION都要做对比分析中来评价。所以无论是FPGA还是ASIC,谁做都肯定是需要一个比较结果的。只是有的地方不叫GOLDEN 模型或SOFTWARE SIMULATION。

   我们这把浮点计算做出的结果较GOLDEN MOTHOD结果,限制位数用软件模拟硬件计算结果较HARDWARE SIMULATION
发表于 2010-5-10 09:00:05 | 显示全部楼层
学习了啊
发表于 2010-5-10 09:00:47 | 显示全部楼层
SYSTEM GENERATOR,貌似只需要选选框图,就可以自动生成VHDL或VERILOG的CODE,只用过一次。

CODE的质量也不错。

DSP processor一般的频率都比较高。动辄几个GHZ。但他的运算方式需要若干个CLOCK来串联才可以得到结果。

FPGA一般不用很高的频率。频率高了,CONSTRAINT、LOCATION都要限制,过于麻烦。ASIC就更不用说了。。。最常用的卷积计算因为可以用PIPELINE,所以即使频率低也不影响实时运算。

另外,现在的ADC的频率远远达不到通信的载频的频率。FPGA顶多用几倍于SAMPLING FREQ.就够了吧。
发表于 2010-5-10 09:08:05 | 显示全部楼层
图像处理,麻烦就在于需要一个2维memory、甚至多维MEMORY,BANDWIDTH要求也很高。一般的信号处理就是个CONVOLUTION、乘法、开方、加法,用REG就可以做了,但图像处理一般参与计算的数据比较多,更麻烦一些。

各种跨CHIP的架构,最需要考虑的就是之间的传输的带宽,片内的BUS WIDTH一般可以比较宽,但跨片子的时候无论LVDS还是其他的通信方式,带宽是有限的,这里应该有个TRADE OFF。内部DSP核速度慢点有些时候可能方便,外部DSP核速度高但之间的传输带宽可能受限。

但一般的数字信号处理,用内部IP核就够用了。ASIC的时候头疼的是MEMORY用得多片子就会变大,FIFO也尽量能不用就不用,逻辑多用几倍都不嫌多。
发表于 2010-5-10 10:17:47 | 显示全部楼层
做数据处理,特别是FPGA应该避免用浮点数。即使用DSP也应该避免用浮点硬件的DSP,否则性价比太低。
发表于 2010-5-10 13:10:45 | 显示全部楼层
楼主抛砖引玉 这种帖子赞
其实FPGA能不能取代FPGA+DSP
你只要看现在的大多数同类产品(国外的)是怎么做的就知道了
如果国外产品方案绝大多数都是基于DSP+FPGA 说明单用FPGA还是存在问题的
可能是开发复杂程度 也可能是成本 等等 :)
发表于 2010-5-12 01:43:52 | 显示全部楼层
楼主啊,这是你想的吗?还是哪里转的,好像是比较早的资料了吧。
发表于 2010-5-14 22:52:31 | 显示全部楼层
看成本
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-24 06:02 , Processed in 0.026198 second(s), 6 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表