原创 适用于系统设计和功能验证的ESL方法学

2007-5-22 13:31 2268 5 5 分类: 软件与OS

为了使ESL工具在行业中广泛采用,供应商将需要研究正确的方法以及与现有设计流程共存的途径。走向有效的ESL的之路既需要功能验证,也需要快速把设计功能从概念转换到最优化实现的能力。其它的挑战在于使供应商同意基本的定义。目前,存在三个设计方法学:算法、处理器/存储器和控制逻辑。这些方法被进一步划分为基于平台和架构设计类。此外,还有几种可以使用ESL工具的情况。首先,至少存在硬件和软件上的某些基准。ESL还考虑了设计中的高级抽象的讨论,并且不仅仅是更高抽象语言语法。最后,还需要解决系统级任务。

ESL的发展

ESL的发展分别影响到软件和硬件领域(见图1)。在硬件方面,我们看到逐渐向更高级的设计抽象等级发展。最初使用多边形来开始设计,但是后来在电子硬件设计早期转向使用原理图。后来,设计工程师采用了集成的原理图获取和仿真工具。目前,他们使用HDL来实现大部分的设计。一个有趣的观察是:大量的设计工程师还使用图形工具进行调试和分析。设计的可视化依然是在功能描述中的设计过程的一个关键部分。同样地,某种程度上需要依赖于图形来理解更高的复杂性。这在实质上提高了设计抽象。

在软件流程上,我们见证了从位和字节级的机器代码、汇编语言到编译语言的转变。面向对象的语言的最新趋势已经在软件实现中得到广泛的使用。面向对象编程(OOP)方法相对于程序编程方法的主要优势在于,它使程序设计工程师能创建在增加新的对象类型时不需要模块被改变。程序设计工程师可以创建继承很多现有对象的很多功能的新对象。这种OOP方法也被用于SystemVerilog语言中来构建复杂的测试基准,这种基准用于系统级设计验证,通过支持断言、功能覆盖和经改善的受约束随机测试发生可以实现很大的验证优势。在设计范例中的这些改变使得设计质量更高,并且在软件/硬件开发领域实现更高的复用。


点击看大图
图1:用于系统设计和功能验证的ESL流程的基本架构


ESL设计流程方面

ESL适合于设计流程中的设计实现和功能验证。引入了一种称为TLM的概念。一般而言,TLM将支持在更高抽象级的设计,或换言之,实现细节更少,使系统汇编、变更和确认的速度更快。

这些TLM模型可以来自IP提供商,或用户可以针对特定的功能自己创建,我们提供用于帮助自动创建这些模型之间的系统级接口的工具。

对于在功能验证中提供一种虚拟原型来说,能快速地用抽象的方法对SoC进行描述的能力很关键。在一般的硬件/软件系统验证中,软件可以产生针对硬件的真实激励。在这种方法中的一种更彻底的功能测试可以帮助减少在后期发现的设计缺陷,在设计流程中发现缺陷的时间通常太迟;如果具有一个系统工作模型,那么,就为软件开发和硬件实现的并行处理提供了基础。另外一个模型来源是使用运算综合来产生用于设计实现的TLM(用于系统级汇编和分析)以及RTL模型,在这种来源中,用C或C++来开发一种特殊的处理算法。因为开发中的系统可以在相同的硬件和软件环境中进行显现,ESL将可以实现在硬件和软件之间实现一种重要的架构设计约束的交换。

对于每一个抽象等级,出现了某种更受欢迎的语言,这种语言能最有效地满足需求,从而帮助创建整个系统流程(图2)。尽管这些受欢迎的语言可能并不是解决某种需求的唯一选择,但是它们通常具有某些更好的功能来帮助这个过程。


点击看大图
图2:不同的模型抽象提取层需要采用不同的语言


C/C++及其变体,像SystemC能提供系统级和TLM设计的最佳的系列功能,但是也可以使用在采用其他语言的流程中。

在设计中处理行为和通信量作为一种事务的概念已经沿用多年,但是在最近才作为接口定义和SoC设计中的标准得到认可。事务的定义枚举了起始、时序持续时间结束以及每个数据操作的内容,而不是试图解释一堆事件和边界。最近的OSCI TLM标准设定了构建系统模块的强大模型的基础,这种系统模块可以在没有不必要的约束行为或实现选择的条件下,容易地被互连、执行以及分析。

对于设计一个系统的更完整的观点来说,UML可以用来对最高级行为进行建模,可以执行这些模型,并使模型更精确以帮助推动流程的其余部分。因为UML可以支持创新的ESL方法学而获得普及,这种方法学将架构、设计和验证域绑定在统一的观点下。

ESL流程开发

特别地,ESL类包括基于平台的设计、事务级建模、基于C的仿真、硬件/软件协同仿真、性能优化以及基于C的综合。要在几种解决方案中作出选择,设计工程师可以构建适合他们需求的ESL环境。Mentor Graphics拥有很多发展前景广阔的解决方案。Mentor Graphics是ESL领域内的领导者,提供的解决方案包括Perspecta,它用于设计、建模、性能分析和确认;无缝地用于全面的硬件和软件协同验证,Questa用于先进的功能验证,Catapult C用于系统级C综合等。我们还预见到向ESL的发展将不断继续,包括与现有的RTL相衔接的解决方案,以及从开始输入到制造相结合的完整的自动化、经验证的流程。

本文小结

利用ESL的新的系统级设计方法的目的是在设计流程中实现直接的好处。尽早地确认系统功能行为能帮助降低迭代次数,在这一级的更快仿真使得有机会考察可选的设计架构,发现更好的选择,做出更多的设计练习。获得目标结果将有助于增加10~100倍的效率,并使未来10到15年的设计可能实现,并有助于弥合硬件和软件开发的鸿沟。


作者:Chee-Chun Tay

应用顾问

Mentor Graphics

文章评论0条评论)

登录后参与讨论
我要评论
0
5
关闭 站长推荐上一条 /2 下一条