计算流体力学 (CFD)、软件和芯片设计有许多共通之处。它们都会创建相关对象的规范,并最终将该规范作为制造过程的一部分;且都需要进行某种类型的验证,以检查设计是否符合预期。但同时,它们之间也存在着巨大的差异。
对于计算流体力学、软件和芯片设计,本文先从软件说起。笔者从 20 世纪 60 年代末开始编程,从那时起,基本的编程方法就没怎么变过。我们可以使用 Fortran、C++ 或 Python 等编程语言来编写“规范”。以前,“制造”可能涉及磁带、CD 或文件传输器。但 CD 上的内容与程序员用来“验证”(即软件debug)的内容基本相同,所以没有专门的验证过程。程序的编译和运行成本很低,以至于根本没必要为了避免成本而专门建立验证过程。验证过程反而会更贵。
现代的芯片则大不相同。“规范”通常是用 SystemVerilog 编写的,但制造一块芯片需要几个月的时间,成本可高达数千万美元,因此验证过程十分普遍(且昂贵);因为从时间和金钱的角度来说,根本不可能制造大量的芯片来进行试验以确保其能正常运转。多年后,这种情况发生了很大变化。上世纪 80 年代初,当笔者刚开始在超大规模集成电路技术公司工作时,我们遇到了一个(就当时而言的)大芯片电源接地短路的问题;彼时,电路提取器尚未出现。当时唯一的解决办法是标划出布局、把它们粘在一起、铺在地板上、把电源网涂成红色、把接地网涂成绿色,直到找出问题所在。
如今,由于芯片更加复杂,需要使用更多的软件(以及模拟器和原型系统等硬件)。有时,IP 提供商会制造测试芯片,但一般来说,人们寄希望于 SoC 芯片设计能够一次性成功,并没有像软件那样的“编译并运行”心态。人们期望流片就是终点。
有趣的是,在过去,FPGA 设计更像软件,仅是编译然后查看是否能正常运转。但随着编译时间达到 24 小时或更久,进行大量的芯片式验证已经逐渐成为标准做法。
计算流体力学曾经是在现实世界中完成的,以汽车车身为例。曾经,在优秀的 CFD 软件出现之前,模型制造者会用粘土做出汽车的形状,而空气动力学验证则意味着将该模型放入风洞。其中一些可以用比例模型来完成,但建造全尺寸的汽车模型并把它们放进一个大风洞是非常昂贵的。如今,汽车的形状是在3D 建模软件中做出虚拟模型,利用 CFD 分析软件进行验证。最后可能会做出实体模型并放入风洞,但由于这只是作为最后一步操作,因此比一开始就放入风洞要节省大量成本。当然,我们不可能像处理芯片或软件那样,按下一个按钮,就把一款汽车转入生产环节进行批量生产。芯片设计更像是设计商用飞机,边设计边预订并加载首航,然后执行飞行。
尽管软件没有太大的变化,但除了“运行程序”以外,越来越多的其他工具开始出现。
“
程序测试可以用来证明bug的存在,但永远不能证明它们不存在!
——Edsger Dijkstra (荷兰计算机科学家)
更强大的工具可以用来跟踪bug,比如 Klocwork 这样的静态代码分析、Valgrind 这样的存储使用正确性分析工具等等。随着 CFD 和 IC 设计的改变,许多昂贵的方法被强大的计算能力所取代。当然,计算能力已经变得越来越廉价,所以人们不必再纠结是使用风洞或者着色图,还是使用计算软件。
所有这些计算方法的基础是涉及庞大数据集的矩阵和图形运算。尽管CFD 乍看之下与 IC 设计毫无关系,但是当透过现象看本质,就会明白真相是什么。
过去十年的另一个大趋势是,从使用非常庞大的单一服务器到使用大量的核心和服务器。这些核心和服务器要么部署在专用的数据中心内,要么部署在云端(后者越来越常见)。这就需要对矩阵和图形算法进行重大改进,因为它们不能通过一些优秀编译器的运行而自动实现并行运算。
由此带来的结果是,软件分析、CFD 以及 IC 设计的许多方面都日益依赖于类似的高度并行矩阵和图形分析。
Cadence Fidelity CFD 软件平台,为多物理场仿真的性能和准确度开创新时代。
全面的计算流体力学 (CFD) 解决方案,适用于多种工业领域,包括汽车、叶轮机械、船舶、航空航天等。Fidelity CFD 引入了新一代流体求解器。该求解器可提供高阶数值格式、尺度解析仿真和大规模硬件加速功能,可助力提高仿真性能,在确保准确度的同时缩短研发周期。
全部0条评论
快来发表一下你的评论吧 !