随着敏捷方法的建立提高了生产力和质量,业界对于硬件设计的兴趣正在增长。尽管如此,人们普遍认为硬件领域的成功依旧是有限的。现实可能比想象要好一些,因为硬件中的某些敏捷性趋势没有明确标记。例如,我们看到越来越多的努力将IP级设计和验证与SoC级设计和验证分离。在这种情况下,不同的IP团队都从SoC项目的“列车模型”上以异步的方式运行,当完成SoC设计时可以选择任何版本的IP。虽然这种方法没有被贴上敏捷的标签,但这种方法确实符合敏捷哲学。
芯片流片的高成本和流片后无法更改设计通常被认为是敏捷方法不能很好地映射到到硬件设计的关键原因。但是,流片后无法敏捷并不一定意味着我们不能在流片前更加敏捷。在硬件设计中采用敏捷性设计大阻力之一是硬件验证的复杂性。测试软件程序只需要执行该程序所需的计算,当然测试会全速运行。测试硬件设计需要一个模拟器程序,该程序可以在软件中模拟芯片设计在硬件中制造时的行为。这个模拟器程序的计算非常昂贵,但其执行速度比它正在模拟的真实芯片的速度慢数千倍。
设计硬件的公司在测试其设计时会受到计算能力的限制。几家支持系统设计的公司都提供特殊的仿真加速器,它们使用专为仿真加速而设计的专用处理器或FPGA。这些系统的模拟速度比通用服务器上的模拟快数百倍,它们的成本也相应地更加昂贵。因此,设计团队发现他们在这些平台上的计算资源同样有限。
敏捷设计需要持续集成和测试,不仅是单元级别,整个系统级别同样如此。如果测试受限于计算能力,那么敏捷设计需要更高的计算效率,尤其是在系统级别。例如,一个典型的现代SoC需要在数千台机器的服务器群上进行长达五天的连续计算来完成一组基本的完整芯片测试。在如此极端的计算背景下,设计团队如何才能让芯片设计变得更加敏捷?
有两个关键方法可以推动解决敏捷硬件设计中的计算障碍:通过参数化减少设计规模和通过计算物流(雷锋网注,计算物流涉及使用计算和高等数学来规划和实施大型和复杂的任务。计算物流应用于许多领域,包括货物、服务和相关信息从原产地到消费地的流动和储存。)减少测试规模。第 一,参数化。复制在SoC设计中越来越普遍,无论是IP级复制(如多核 CPU),还是架构级复制(如GPU中的着色器内核或AI加速器中的MAC节点)。通过利用参数化,可以在某种形式的参数化下将更多相似但不同的事物融合在一起,从而显着增强复制的范围。
设计中的复制越多,自动生成设计的缩减配置的可能性就越大,这些配置更小但对测试仍然有意义。参数化的使用越复杂,在SoC级别小化用于测试特定功能的设计尺寸就越灵活。
硬件设计已经变得更加敏捷,但仍有很大的改进空间。与软件验证相比,这种改进的一个关键障碍是硬件验证的巨大计算成本。
通过利用复制、参数化和高级语言作为HDL生成器,我们可以大限度地减少测试中的设计尺寸。通过采用计算物流,我们可以大限度地减少测试工作量并进一步优化测试中的设计尺寸,尤其是在支持云的未来,以及基于使用无限制验证计算的可用性。