您的位置:首页 > 其它

为什么 CPU 等的频率可以达到 GHz 级,但一般的 FPGA 芯片的频率只能在百 MHz 级呢?

2017-02-15 11:56 429 查看


为什么 CPU 等的频率可以达到 GHz 级,但一般的 FPGA 芯片的频率只能在百 MHz 级呢?

添加评论 

分享

默认排序按时间排序


9 个回答

28赞同
反对,不会显示你的姓名



刘涛 盲目进入手游开发,痛苦摸索中...
...

28 人赞同

个人理解,欢迎讨论。我认为这是由FPGA的结构特点决定的:

1、芯片支持的频率高低是由内部寄存器与寄存器之间的走线延迟决定的;

2、FPGA是可编程器件,布线资源是要尽量设计成可通用,所以其走线延迟会比较大,也是速度上不去的原因,CPU是ANSIC ,其布线资源是定制的,所以可以更高频率;

3、现在有一些FPGA器件支持接口上的高速,内部通过串并转换到低速处理;

发布于 2012-06-19 9
条评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

17赞同
反对,不会显示你的姓名


知乎用户 思辨/我就看看

17 人赞同

给刘涛的答案补一个各个Cell之间的连接示意图。FPGA为了能保证内部Cell之间的连通性的,所以走线复杂,走线上的延迟较大。【昨天考试刚扫了眼PPT。。。】


发布于 2015-01-08 1
条评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

8赞同
反对,不会显示你的姓名


知乎用户 数字IC设计工程师,微电子学博士,微信公…

8 人赞同

刘涛和ICer的答案很好地回答了问题,我再补充一小点: 

FPGA中的DSP资源、时钟资源等往往在固定的位置,而有时候,需要用到这些的资源的逻辑电路的布局位置可能距离这些资源的位置很远,导致了线延迟非常大,尽管逻辑本身的延迟很小。ASIC的优点就在于,在布局布线的时候,可以根据实际timing的需求任意摆放IP、memory等的位置,在一定程度上降低了线延迟。这也是Xilinx公司推出Planahead工具的原因,事实上,在使用Planahead分析timing的时候,可以发现大部分timing violations都是由线延迟导致的。

编辑于 2015-01-09 4
条评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

7赞同
反对,不会显示你的姓名



JonsonXP 可重编程架构研究,FPGA,CAD开发

7 人赞同

使用CPU和使用FPGA是不同的思维方式。CPU是通用处理器,追求一个时钟频率做单一操作,通过提高主频来加速性能。而用FPGA设计专用电路可以在一个时钟周期实现更多操作,虽然主频降低但性能提高。

发布于 2012-09-14 添加评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

23赞同
反对,不会显示你的姓名


知乎用户 SOC

23 人赞同

提问者所说的CPU和FPGA都是ASIC,CPU是有固定的逻辑组成,各个逻辑之间的时延关系在一定条件下都是确定的,在设计之初就会考虑进来。FPGA是由大量重复的逻辑组成,但各个逻辑可以多次配置,以实现不同的逻辑功能。提问者所说的FPGA速度是指在FPGA内部实现某个具体的逻辑功能之后,其同步电路的时钟最快能到多少。 

CPU的速度是在制造之前就基本确定了,同样FPGA的最高速度在其制造之前也是确定的,但提问者所说的FPGA的速度,是在FPGA实现某个具体功能速度的时候确定的,如将一个CPU的core在FPGA上实现,就需要将CPU的逻辑映射到FPGA内部的逻辑中,在这个过程FPGA 实现工具会计算其使用的cell,连线配置情况,然后再进行优化,使其速度最优,但这个速度就会由具体的设计决定,如两个触发器之间,如果逻辑比较复杂,其时延就会比较长,整体的同步时钟频率就不能跑太高,否则逻辑功能就是不正常。除了逻辑资源,连线在FPGA中也是一种资源,因为硬件是固定的,连线的功能是根据配置信息决定的。故当资源利用比较多的时候,走线资源就变成瓶颈,走线的延时影响将会越来越大,所以经常会遇到资源利用率超过90%的时候,综合频率会急剧下降。

总的而言,cpu是一个功能确定的东东,而fpga是一个可配置平台,其功能未定。专用的东东可定向优化,通用的东东则只能照顾大多数情况。

题外话,现在fpga也会有固化一个CPU在里面的情况,这样就能兼顾CPU的高速和FPGA的功能可重构。

发布于 2012-09-18 添加评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

1赞同
反对,不会显示你的姓名



david
fu 软件工程师

1 人赞同

这就是ASIC和PLD的差别,前者是纯粹的功能,但是是固定的,后者存在很多冗余,但是无限可能。

还有就是硅工艺的差别,跑几个G的CPU的发热量和几百兆的FPGA的发热量不是几个级别。

编辑于 2015-08-04 添加评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

1赞同
反对,不会显示你的姓名



谢盼 码农/水货硬件工程师

1 人赞同

频率高时钟约束难满足,当然这不是频率不高的原因。fpga定制运算加上资源约束内你想要的并行,运算能力和吞吐已经甩很多所谓的ghz通用处理器几条街了

发布于 2015-01-09 添加评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

0赞同
反对,不会显示你的姓名


知乎用户

题主只询问了cpu可以达到GHz级别,而fpga只有几百兆。那么题主是否意识到跑多高频率不重要。重要的是可以处理多高的带宽。达到什么样的性能。举个简单的例子:1GHz 64位cpu它的处理性能是多少呢?那如果fpga跑250MHz.数据位宽为512bit呢。那谁的处理性能高呢?

发布于 2016-02-12 添加评论 感谢 

分享

 收藏 • 没有帮助 • 举报 • 作者保留权利

6赞同
反对,不会显示你的姓名



沈晟 心动网络CTO,射手影音|射手网创始人,品…

6 人赞同

成本决定了线宽

线宽决定了发热

发热限制了频率

一般FPGA应用散热环境都不好

所以工作频率都在1G以下
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐