SyStemC架起了桥梁

时间:2007-04-29
Cadence资深工程师 唐进


当SystemC语言以一种新的开放源码的语言在1999年面世时,给设计工程师带来了不小的困惑。什么是SystemC?一种硬件设计语言?如果是的话,怎么能是基于C++的呢?一种行为级语言?那么它为什么又这么象RTL?它会不会取代Verilog和VHDL?的问题其实就是它到底是做什么的?现在五年过去了,以上的所有问题都有答案了。
SystemC不仅存活下来了,而且它在SoC设计流程中的强势地位也被认可了。从初的只被欧洲和日本的少数架构设计师所采用到现在被北美的设计师广泛应用。许多成功应用SystemC进行设计的公司和组织已经将它融人到他们的设计流程中。 OSCI(OpenSystemCInitiative)组织网站的点击率和人们对SystemC语言的兴趣迅速上升,目前lICense数量已超过22000而且还在上升。很明显,SystemC已经成功定位,再不被认为是HDL的替代者,而是连接构建系统行为级模型的系统架构师和编写RTL实现代码的工程师之间的桥梁。正是因为它从新的2.1版本开始加强了事务级的建模能力,SystemC才能跨越这两个世界而且帮助进行软硬件协同仿真。更可喜的是,OSCI和OCPIP(Open Core Protocol International Partnership)正在为实现一种能共享的建模结构而继续合作,如果成功将会使第三方的IP更容易集成到SystemC环境中。OCPIP是一个工业界的联盟,致力于创建一种通用的IP接口。现在已经有不少基于SystemC的ESL(Electronic System Level)工具和方法问世,使人们梦寐已久的系统级设计流程变成了现实。

为什么是SystemC

直到几年以前,设计工程师还能用RTL来描述IC设计。但是现在的SoC设计越来越复杂,并且伴随着大量的IP重用,这两个趋势促使系统设计向更抽象的方向发展。SystemC使架构设计和分析成为可能,但它的能力不止这些,它还能让SoC设计者在同时运行软件的条件下以较高的速度验证其设计并得到有用的分析结果来帮助改进设计。并且应用SystemC还能在RTL验证时重用在系统级验证时开发的测试平台。

SystemC的语言建立在标准C++之上,包括事件驱动的仿真内核,结构化的基本元素(模块,端口,接口和信道),数据类型(整型,定点,矢量等等)以及基本的信道(Signal,FIFO,Mutex等等)。

在语言之上的是一个简单的事务级传输库,它建立了事务级的接口模型。同层的还有用于生成测试平台的SystemC验证库。在它们之上的则是Open Core Protocol的应用程序接口,即为方便IP重用的片上通信标准。另外还有一些用SystemC描述的工业标准总线协议,例如ARM的AMBA,见。

这种层次化的结构随着SystemC 2.1版本的演变而变得越来越明显,这一变化也符合OSCI确定的SystemC语言的发展方向,即加强IP的模块化,对事务级设计和验证提供更好的支持以及解决以前版本遗留的不易用问题。

OSCI和SystemC已经开始了向IEEE提出标准的进程。IEEE的SystemC研究小组在2004年8月10日召开了次会议,标志着正式的标准化进程的开始。该小组提出了一个PAR(Proiect Authorization Request)草案,送交了IEEE新标准委员会并获批准。然后OSCI和IEEE已于2004年9月18日联合宣布IEEE已经开始了一个标准号为P1666的标准化工作,名字为“SystemC语言参考手册”。该标准基于SystemC 2.1,预计将在12到15个月完成。IEEE的SystemC研究小组组长,也是Cadence公司的语言标准组的总监VictorBerman先生说:“SystemC从OSCI到正式的IEEE标准的转变反映的工业界的共识,那就是对于真正的系统设计而言,高层次的抽象必须依赖于语言和方法。”

事务级建模(TLM)的重要性

SystemC 2.1受人关注的是加强了对事务级建模的支持。无论是严格应用于架构验证而不关心与RTL验证还是为RTL验证服务的行为级参考模型,TLM都是非常重要的。

“TLM是一种抽象数据流方式,这种方式更接近于应用设计者获架构设计师的思维方式。”Drew Wingard先生,Sonics的CTO这样说。“它减少了仿真事件的数量,因此提高了仿真的速度。”CoWare公司的Pascal Chauvet先生也说:“TLM的关键就是只关注通信中真正想看到的信息,这样就只需要对那些在发起者和接受者交换的信息进行建模,而不象RTL一样需要在信号级建模。TLM可以是非常高层次的抽象,例如简单的读和写,也可以是较细节的,例如每拍(CycleAccurate),但仍然运行得比RTL快很多。”

但是隐含在TLM概念中的灵活性正像Chauvet先生提到的也在设计者中产生出许多困惑。其中之一就是标准化问题,如今OSCI的事务级建模工作组正在进行这一工作。他们对TLM的定义是几种不同抽象层次的建模方式,覆盖了RTL之上的东西,这些不同的方式应用于不同的设计领域,可以从纯算法模型直到RTL模型()。

同时也有一种以OCP-IP为代表的不同的TLM观点,这种观点只关心一件事:系统各模块间的接口,同时保持接口在不同实现阶段的一致性。虽然OSCI和OCP-IP的看法并不互相扫坼,但它们的合作还是有利于创造一个可共享的在SystemC之上的TLM标准。根据双方的合作协议,OCP-IP选择SystemC作为发布基于其自身的通信信道的TLM的主语言,而OSCI的TLM工作组则正在定义一个TLM的应用程序接口,并希望在双方的努力下将OCP-IP的TLM建立在该应用程序接口之上。它们的合作消除了不同标准竞争的可能性,给用户带来了福音。

断言在SystemC中的应用

许多设计者现在已经广泛使用断言(Assertion)做为一种验证手段,用它来建立体现他们的设计意图的规则,然后在验证过程中用这些规则来检验设计。断言做为一种手段或方法是与所使用的设计语言无关的,用Cadence公司功能验证组的架构师Stuart Swan先生的话来说就是“PSL(Property Specification Language一种断言描述语言)也可以应用在SystemC中,而且Cadence已经开始这么做了。”PSL已经被Accellera批准而且将要进入IEEE的正式标准化过程,目前支持Verilog和VHDL语言,对SystemC的支持势在必行。

OSCI已经为PSL在SystemC标准化做了许多工作以保证与已有的标准兼容。PSL和其他断言描述语言相比的优势在于它和底层的设计语言无关,因此避免了不同语言的模块或IP带来的兼容性问题。不过现在还有许多工作要做,例如建立PSL和不同的设计语言共同使用时的标准,目前在这方面还较混乱和随意,幸好IEEE已经意识到这一点,而且已将其提到了议事日程上。

可综合的SystemC语言

虽然现在大部分的SystemC应用还处于较高的层次,如算法和系统架构,不过可综合的SystemC语言的标准化工作也从来没有停止过。几家公司,如CoWare,Summit和Mentor Graphics各自的工具都使用不同的可综合子集,因此不符合用户对设计可移植的要求,OSCI中的综合工作组正在审查可综合的子集文档以便能公开让所有的OSCI成员浏览。一旦内部审查结束,预计这些文档能在2005年初公开发布,然后在晚些时候提交给IEEE开始标准化工作。综合工作组还有一项未开展的工作就是编辑SystemC的编写指导文档,这些文档将会告诉用户如何使用SystemC才能达到好的综合效果,这一工作大概也会在2005年开始。

SystemC和SystemVerilog

设计师早期对SystemC的一些担忧已经消除不少,不过人们还是担心缺少SystemC的IP。不过业界的IP提供商,比如ARM已经开始行动起来,做为其合作者Synopsys开发出了Design Ware AMBA SystemC库,包括AMBA AHB和APB事务级总线模型,符合ARM的AMBA2传输层SystemC规范,从而确保了完全与ARM的SystemC处理器模型RealView Model库兼容。

另外的担心是关于现在的IP,如果用户已经有了RTL模块,他们从哪里得到相应的SystemC模块呢?就像Toshiba的SoC设计总监Bob Uvacek先生所面临的一样,他们是OCP的忠实跟随者,在设计中感受到了OCP的好处,但是他们在没有一个可完全自动化地完成SystemC和RTL相互转换的工具出现以前,对在设计中采用SystemC还是很犹豫。实际上已经有一些工具可以进行从RTL到C的反向转换工作,但其实如果遵循自上而下的设计流程完全可以减少对这类型的工具的需求,不过前提是SystemC的IP要足够的多和广泛。

对于新兴的System Verilog语言来说,情况要好很多。在2004年的设计自动化大会上,OSCI的主席Guido Amout先生和现在负责System Verilog语言标准化的组织Accellera的主席Dennis Brophy先生联合发表演讲表示SystemC和System Verilog是互补的。这样的互补性使真正的ESL设计流程变成现实,因而让用户的验证流程能跨越从算法到RTL的所有层次,并能扩展到嵌入式软件和硬件协同验证以及覆盖率信息统计。

总结

经过几年的发展,SystemC已渐渐得到用户的认可并且成为系统架构师常用的建模语言。其在TLM方面的优越性使它非常胜任和RTL的协同仿真以及软硬件系统仿真。同时在断言、可综合子集和同System Verilog的合作方面也在向标准化迈进。相信在不久的将来,SystemC就会成为IEEE的一个标准而得到更多用户的认可。

对于SoC设计者来说,进一步认识到向更高的抽象层次转移只会有利于他们更快更好地完成设计,这只是一个时间问题。伴随着这个过程,SystemC也会长足地发展,同时带动支持它的工具和方法进入市场。


  
上一篇:手机RF设计技巧(一)
下一篇:扩散炉现状与展望

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料