预测:开源FPGAEDA工具将统治世界吗?这里列出了两种不同的观点供大家参考,对于这个问题,相信每个人都会有自己的看法。观点一:开源FPGA EDA工具必将统治世界 IceStorm以及SymbiFlow(IS/SF)将会给数字电路设计带来革命性的变化,就像GCC革了系统软件的命一样。由此带来的结果是 1.FPGA的应用将会爆炸性增长 2.开源EDA工具将最终取代厂商专有的EDA工具。
开源编译器项目GCC
还记得1980年代末期,GNU的情况一个完全由极客支撑的项目,没有任何商业成分。所有的工作站供应商都知道GNU不成熟,均在投资为付费客户开发自己的编译器(例如SunCompiler,HPCompiler,DECCompiler,IBMCompiler…)。虽然GCC(GNUCompilerCollection,GNU编译器套件)只是一个纯靠兴趣支撑的项目(hobbystuff),支持的平台和集成度也并不完善,但那无伤大雅,因为每个用户(Everyone)都可以是项目的贡献者,足够多的用户一边使用,一边对其进行改进,并将其传遍了世界各地,最终,直接使用GCC编译器的Linux出现了。以上就是GCC的发展史。
SymbiFlow-the GCC of FPGAs项目介绍
对于FPGA来说,开源FPGAEDA工具和GCC的情况类似,虽然目前还停留在兴趣项目层面,但其进化速度相当之快。毕竟,它们是开源的,并且非常易懂,开发者很容易在使用过程中变成贡献者,从而协助对其进行建议和改进。综合、布局、布线等问题本身具备的复杂程度,恰又像黑夜里的一盏盏灯火,吸引着无数聪明的学者像飞蛾一样聚集上前来展开研究。更加值得鼓舞的是,开源FPGA EDA项目IceStorm(SymbiFlow)已经比商业EDA工具的运行速度高了一个数量级(有机会我们将开专题介绍),因为我从未在商业EDA工具上在15秒内将设计实现在FPGA上过(诚然,这只是一个很小的设计,和那些在UltraScale 器件上所进行的复杂设计无法相比)。目前,该项目已经雄心勃勃地向着Xilinx7系列进发了。
各领域开源工具/标准一览
观点二:开源FPGA EDA工具无法统治世界
很早以前,开源FPGAEDA工具将推翻现有商业FPGAEDA工具“王权”的说法就已在业界广为流传。这些说法有一个共同的特点:将FPGAEDA软件和普通软件进行了类比,并提到IceStorm项目(针对Lattice的iCE系列产品的逆向工程,Storm有“攻占”之意,意味深长)和CliffordWolf(开源FPGAEDA教父,宏大的开源FPGAEDA项目SymbiFlow的发起者之一)。
该观点的判断:开源FPGAEDA将在很长的一段时间里,无法挑战现有的FPGAEDA世界秩序。除非以下两种情况的任何一种情况发生:
1.Intel或者Xilinx直接支持某一开源FPGAEDA项目。
2.所有主流的Intel/XilinxFPGA器件被某一开源FPGAEDA项目通过逆向工程全部分析清楚。
下面就上述两种情况简单聊一下:
1.来自主流FPGA厂商的官方支持
如果你对大型开源工程(比如LLVM或者Linux)比较熟悉,你会发现其主要的开发者基本都是Intel、Apple、Google等公司所雇佣的全职人员(他们很专业,而且可以全身心投入),而不是一撮对技术极度狂热的,靠爱好和情怀聚集在一起的兼职人员。
那么Google或者Apple做这些开源项目的初衷是什么呢?这些项目和公司的主营业务无关,Apple想做开源编译器,但是做编译器并不能提高iPhone的销售收入。
但在FPGAEDA领域,情况并非如此。Intel和Xilinx很早就意识到,做出一款FPGA芯片并不难,难的是开发一款优秀的FPGAEDA工具,从而形成FPGA整体解决方案。FPGA产业的历史中,已经有无数的FPGA创业公司因为没有意识到这一点,而被无情的扫进了历史的垃圾堆,尽管这些公司有着十分先进的芯片设计理念。看看Tabula吧,并不是这个公司的硬件不行,而是你根本没法用他们的软件进行编程啊。因此EDA工具是一个公司进入FPGA领域的最大障碍之一,并且扮演了市场竞争的关键角色(differentiator),因为用户一旦选用了一家EDA,便会对这个生态产生依赖(移植涉及工作量以及不确定性)。普通编译器和软件工具的关系则并非如此。
请注意Intel是怎样的确保留了非开源的编译器-icc和ifort的-这些工具经过了无数的优化,因为他们是Intel商业逻辑中关键的一环。而开源FPGAEDA工具并非Intel和Xilinx的长期商业利益所在。
2.逆向工程
按照上面的逻辑,既然开源EDA工具无法得到Intel和Xilinx的支持,那么就剩下逆向工程一条路可走了。我知道CliffordWolf教授在这方面作出了大量艰苦且聪明的工作,而且取得了一定程度上的成功,比如完全逆向了Lattice的iCE40器件。并不是我不尊重教授所做出的贡献,但iCE40并不是什么复杂器件,iCE40和Stratix10之间的复杂度区别可能和Cessna172和Boeing787之间的差距差不多…
iCE40和Stratix10的复杂度差距可能和设计这两架飞机差不多 即使我们忽略复杂度的差别,仍然有2个基本无法克服的重要问题: 1)配置。一款现代FPGA,比如Stratix10的配置位并不仅仅是一系列简单的shift-registerCRAM,码流bitstream也不仅仅是一系列的LUT掩码和布线通路MUX配置码组成,而是一系列针对安全器件管理器(SecureDeviceManager)的命令流(CommandStream),这只是冰山一角。在不知道其内部任何细节的情况下去逆向仿制,无异于在没有任何操作说明的情况下,蒙上眼睛去组装一架现代飞机。在这个过程中,还不能出一点差错,因为一旦出现问题,你连为啥都不知道。
2)时序。任何聪明的布局布线算法在没有精确的时序模型(TimingModel)支持下,都不值一提。而时序模型是由物理实现(对FPGA公司来说,这是高度机密super-secret)以及工艺数据(超高度机密ultra-super-secret)决定的。对于以上内容,是完全无法通过逆向工程推出的。即使你通过足够保守的Fmax来从理论上解决建立时间的问题,也无法通过同样的方法解决保持时间以及其他时序约束问题。最好的情况是你的器件根本无法工作,最坏的情况则是无法诊断的功能错误间歇性出现(保持时间不满足导致偶然性亚稳态)。当工艺节点越来越小时,保持时间的变化趋势看上去会越来越差。
综上,开源EDA并不是行业的未来,我相信现有的开源EDA会持续改进,但其存在无法逾越的障碍,没有FPGA厂商的支持,开源EDA将永远无法追上现代FPGA发展的脚步。
总结
就笔者的看法,以上两种观点虽然看似大相径庭,但有一个共同观点,那就是开源FPGA EDA工具要走的路,还有很长,网上的讨论也精彩纷呈,但就像一家甜品店的不同风味的点心,如果点心的配方都一样了,对客户来说是最好的事么(客观来说,确实提高了甜品店的产出效率)?各位又对此有怎样的看法呢?
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !