Ken Karnofsky, The MathWorks信号处理与通讯技术市场总监
正如我们所知,越来越多的复杂系统和技术,如多核处理器和FPGA的出现,已经令一些陈旧的设计方法毫无用武之地。我们需要新的设计方法:对复杂系统进行系统级抽象,并对从概念到实现过程中耗财耗时的步骤进行自动化处理。
在以处理器为核心的SoC设计和验证领域,电子系统级(ESL)方法被用于解决上述问题。自从几年前EDA分析师Gary Smith提出ESL概念后,很多设计方法和商业工具也随之产生(有些只是经过再包装的)。这些工具帮助硬件设计人员对复杂的SoC架构进行建模,同时允许软件开发人员在硬件设计完成之前开始编写代码,甚至在某些情况下,可以辅助硬件部分的实现。
然而,大部分ESL设计方法和工具的适用领域相对狭窄,限制了其应用。我们需要一种不局限于SoC的更包容的方法,来大幅度地减少复杂系统开发过程中的时间,成本和错误。这种新的方法必须:1)保证硬件和软件设计的功能上正确,并满足实际物理需求;2)帮助系统架构师尽早地得到“正确”的设计,排除不可行的方案;3)预见数字、模拟、机电(L)以及其他子系统在集成中可能遇到的问题;4)消除从概念到软硬件实现之间的过程差异;5)降低不断增加的验证成本。
解决上述问题对半导体公司和电子OEM厂商至关重要。前者需要在快速变化的市场中竞争,后者则需要确保其供应商提供的产品能够满足应用需求。Gary Smith在对ESL进行研究时注意到“架构师的工作平台”的重要性,但这只是部分解决了上述问题。基于模型的设计秉承的理念是提供一个更为完善的系统开发解决方案。采用基于模型设计方法的公司预期可以缩短50%以上的生产周期,并取得10倍于在设计工具上投资的回报。
基于模型的设计包含四个部分:对期望行为或者参考设计进行建模,进行设计分析并通过仿真不断改进,利用代码生成技术实现,以及在整个开发过程中不断测试和验证。上述四个部分解决了当前电子系统中固有的设计和验证问题。它们利用可执行的系统模型明确功能上和物理上的需求,系统地帮助工程师完成从设计规范,到实现,到验证的整个流程。
基于模型的设计促使来自不同部门的工程师之间进行合作,因为设计中需要使用模拟、数字、以及软件等子系统的模型和运行环境。这些模型不只是IP模块;它们可以代表不同抽象级的系统元素。因此,每个部门的工程师都可以保证各自设计的部分能够融入整个系统并满足需求,尽管进行设计分析并不断改进和重述需要对复杂的通信和多媒体技术进行最优化。而且,工程师还可以尽早的发现并解决问题,同时在其它设计部分尚未完成时继续该子系统的设计工作。
在传统的设计流程中,整个系统在完全实现前无法进行系统地测试。这样导致只有到系统开发阶段的后期才能发现一些隐藏的设计缺陷。此时,修复这些缺陷的成本和难度都会大大提高。与传统的设计流程不同,基于模型的设计可以在开发的最早阶段,也是错误最常发生的阶段,对系统进行测试和调试。模型可以通过仿真尽早地进行验证。同时,模型单元通过增加实现细节会逐渐地完善,在这个过程中也可以不断地对其进行校验。C,HDL以及SPICE语言实现,和ESL模型一样,都能够共同支持现有的工作流程、设计复用,以及最终的集成测试。不同设计团队设计的子系统可在各自完成之后进行集成,以保证任何改动都不会降低系统的性能。并使得存在设计缺陷的子系统能够被迅速地找到。
在现有设计流程中,还存在另一种导致错误和延时的因素,这就是手动完成从概念到设计到实现之间的转换。举个典型的例子来说,算法开发工程师在MATLAB中开发了一个浮点算法。系统架构师将该算法重新编写成C语言,在这个过程中该算法很可能变成了定点代码。然后在嵌入式软件或者硬件实现时该算法又需要被重新编写。这些过程即浪费时间和人力,又可能产生错误,使设计迭代变得困难,而且还需要额外的验证步骤去保证硬件实现与相关算法的一致性。
基于模型的设计分别从三个方面克服了上述问题。首先,C语言或者HDL代码可以自动从模型单元中生成,或者重复使用已有的实现。这样可以消除手动编写代码产生的错误,并使得在选择不同的软件或者硬件实现上更为灵活,而且还可在现有的实现流程中进行。其次,模型单元可以作为“黄金参考”来校验手写的C语言或者HDL代码。再次,不管实现的是手写代码还是自动生成的代码,带有仿真数据的系统和环境模型都可以作为硬件实现的测试平台。
基于模型的设计可以在很多方面整合并加速系统开发。以增量和标准的方式采用基于模型的设计方法可以获得最大的收益,同时还能帮助管理新的设计方法所带来的改变。对于刚刚采用基于模型设计方法的公司,通常先要确认现有流程中造成质量问题和生产力下降的根本原因,而对于IP、技术,以及现有流程中应保留的部分给予重复使用的机会。按照这种做法,第一个项目就能够以最小的代价产生即时效益。同时,随着基于模型的设计方法在项目、小组和任务中的深入应用,投资回报率(ROI)也会随之增加。