首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

C*Core SoC设计平台

C*Core SoC设计平台

SoC(片上系统)是半导体业界非常热门的字眼。SoC可以把复杂的电子系统集成在一个芯片上,使得系统规模越来越大,功能越来越强,这主要是得利于工艺的更新,深亚微米工艺比如大大提高了芯片性能,使得芯片速度更高、面积更小,能够达到更低的功耗,但是同时也为SoC设计带来了一些新的困难:

在深亚微米工艺下,版图布线的负荷已成为主要的时序影响因素, 当生产工艺小于 0.35um以下时, 因为布线而造成的时序差异和延迟常常超过模块中电路设计的差异和延迟;Antenna effect:当走线过长时产生的天线效应会对电路的时序产生影响;Cross talk: 当两条平行的走线非常靠近的时候, 它们之间的偶合效应会产生交叉干扰(Cross-talk), 也会对电路的时序造成不利影响。

工艺的改变,同时会影响到现有IP模块的重用。要实现IP 重用,需要实现多层次的设计与仿真,在较高的抽象层次上的设计可以避免受到工艺、Foundry等因素的影响。

SoC芯片的规模往往远大于普通的AISC,同时由于前述在深亚微米工艺带来的设计困难,都将使得SoC设计的复杂度大大提高。在芯片设计中,仿真与验证是芯片设计流程中最复杂、最耗时的环节,约占整个芯片开发周期的50%~80%。在复杂SoC设计中,不能用传统的方法来验证。由于SoC的规模一般比较大,如果用传统方法进行验证,将导致漫长的研发周期使产品错过最佳的市场时机。同时,在SoC的验证中,不仅要保证单个模块的功能得到完全验证,同时还要从系统的角度,在整个芯片的水平上做软件、硬件的协同验证(Co-verification),保证SoC芯片功能得到充分验证。Co-verification是SoC对验证方法提出的新要求。因此,迫切需要一个SoC仿真验证平台,提供SoC验证的方法,提高仿真与验证的自动化,加快SoC芯片的开发。

SoC芯片的IP模块可以通过自行开发或者外购,尽管这样可以保证单个IP模块的正确性,但将这些IP集成到一个SoC芯片中,必须解决各种IP模块的连接问题,以保证系统级的功能正确性。因此SoC芯片中必须有通用总线的支持,才能使众多的模块集成在一起。

模块集成的另一个重要问题是不同层次IP的集成。来自于IP Vendor的模块可能处于各种状态,比如硬核、RTL、功能模型等等。如何将这些IP集成在一起是SoC设计中首先要解决的问题。IP模块的重用不仅包括源代码的重用,还包括testbench和验证环境的重用。因此外来IP的分析与消化在SoC设计中占有相当大的分量,并不是所有的IP都可以拿来就用。这在客观上提出要有一个平台能够很灵活的把这些IP模块集成在一起,使设计者能够将更多精力集中在自己的IP设计中。

人力资源的协调和充分利用是SoC设计中的一个关键问题。SoC设计团队的分工要非常明确。有人做IP,有人做集成,还需要有人做系统管理。有效的配置资源将会大大提高工作效率。一个良好的SoC设计平台必须能够有效的支持这种需求,使得设计资源配置更加合理,分工更加明确。这是人力资源集成对SoC设计平台提出的要求。

综上所述,设计SoC芯片需要一个功能强大的仿真验证平台来提高验证自动化,加快芯片的开发周期。本文将在第二节比较各种商用的SoC设计平台;第三节详细介绍我们的C*SOC平台;最后总结全文。

SoC设计平台的比较

目前比较常用的SoC设计平台有PrimeXsys、 Platform Express等[1][2]。PrimeXsys是ARM推出的以ARM核为基础的面向应用的SoC设计平台。PrimeXsys主要是针对无线通讯领域的一个应用平台。PrimeXsys平台中除了包含RTL、总线架构之外,还包括电源管理、设备驱动、操作系统以及各种应用软件。PrimeXsys支持RTL、系统模型、软件开发模型、硬件开发板等多层次的功能验证,在一个层次上的测试软件也可以在其他层次上应用。PrimeXsys平台具有可扩展性,用户可以在AMBA总线增加新的IP模块,构成自己的SoC芯片。Platform Express是Mentor Graphics公司的SoC设计平台。Platform Express提供直观的图形界面,Core和IP只要通过简单拖放就可以加入工程,通过图形显示工程的内存映射表,用标准的总线如AMBA 和VCI扩展IP模块。在Platform Express平台中各个模块的测试代码可以形成一个C程序在硬件上运行,进行硬件/软件的协同验证。

C*SOC是一个功能强大、自动化程度高的SoC仿真验证平台,它是国芯公司CDK(China Core Development Kit)技术转让包的重要组成部分。在该转让包中包含高性能低功耗的32 位RISC处理器——C*CoreTM(目前主要的产品包括C210和C310)。C*SOC可以支持以C*Core为基础的SoC芯片设计。C*SOC平台是针对SoC设计的特点而设计的,功能强大,使用方便,可以大大缩短SoC设计的周期[3][4]。C*SOC有效支持不同层次的仿真如RTL、Gate Level、functional model等。同时,C*SOC还可以支持不同层次IP的混合仿真。C*SOC平台支持Testbench的重用。在C*SOC中提供了多个通用的IP模块,并且同时提供了丰富的功能验证模块,可以节省设计者宝贵的时间。在C*SOC中提供C*BUSTM,通过C*BUS可以很轻松的集成各种IP模块。C*SOC平台中包括Master和Slave等验证模式,支持软/硬件的协同验证。C*SOC的结构设置考虑了SoC设计团队的分工。整个平台的目录结构清晰,分工明确。根据芯片设计团队的特点,C*SOC的整体目录结构分为模块、配置和工程三大类。在下一节我们将详细介绍该平台的各种功能。

C*SOC片上系统仿真验证平台

本节主要介绍C*SOC设计平台的主要功能。逻辑仿真与验证是该平台的主要功能,如图1所示,C*SOC平台可以用在芯片设计流程的行为仿真、综合后门级仿真以及Layout后仿真三个环节中[5]。

src=http://pld.eccn.com/pic/pld08136m2.gif border=0 align=center>

图1 C*SOC在芯片设计流程中的作用

3.1多层次的混合仿真

C*SOC有效支持不同层次的仿真如RTL、Gate Level、functional model等。同时,C*SOC还可以支持不同层次IP的混合仿真,即有的模块可以是RTL源代码,而同时有的模块可以是功能模型或者是综合后的网表等。通过C*SOC的配置文件可以把从不同IP Vendor来的不同层次的IP模块很轻松的整合在一起。

3.2 Testbench的重用

C*SOC平台支持Testbench的重用。在C*SOC中提供了多个通用的IP模块,并且同时提供了丰富的功能验证模块,可以节省设计者宝贵的时间。在SoC设计中,往往要设计一些自己的IP模块。单独IP模块的验证首先要通过自己编写的Testbench完成。Testbench的编写是一项非常繁重同时也是非常重要的工作,它直接关系到IP直至整个SoC的功能,因此Testbench的重用性也是设计中值得注意的问题。在C*SOC平台中,可以实现Testbench的重用。在传统方法中,往往单独IP独立的Testbench验证通过后,在把这个IP集成到SoC中时还要编写与整个系统兼容的Testbench。在C*SOC中,提供了用于IP验证的标准任务,并且这些任务是开放的,用户也可以创建特定的任务并扩充到C*SOC中。然后用户可以利用C*SOC的标准任务或者用户定义的任务编写IP独立的Testbench,在验证无误后,可以直接转化为系统级芯片的Testbench,这样就可以实现Testbench的重用。同时,在C*SOC平台中,各个层次间的Testbench可以重用,比如在RTL级开发的Testbench同样可以在门级仿真以及Layout后仿真中应用。

3.3 通用总线的支持

SoC芯片设计需要有通用总线的支持。来自IP Vendor的IP的结构各不相同,用户拿到只是单个孤立的模块,只有通过通用总线才可以把不同的IP无缝的集成到一个系统级的芯片当中。在C*SOC中提供C*BUSTM,通过C*BUS可以集成各种IP模块。

src=http://pld.eccn.com/pic/pld08136m3.jpg border=0 align=center>

图2 C*Bus的结构
图2给出了一个典型的C*BUS结构,其中MLB是负责连接例如C*Core之类的embedded processor 与DMA controller,DSP,on-chip memory 和其它interface,或其它需要宽带宽的设备。而IP Bus则是用来连接系统的周边IP slave模块,其协议相对简单与MLB之间则通过IPI相连,期望能减小系统总线的负载,IPI在C*BUS中也称为MLBTOIPS,它也是一个接口模块,是可参数化的软模块,例如所连接IP slave模块个数就可通过参数进行配置,且支持访问具有8位、16位、32位数据总线宽度的外围IP slave模块[6]。

在增加一个IP时,只需要指定挂接在C*BUS上的IP数目、IP的端口宽度、IP地址信息,增加相应的IP使能等信号,并把相应的IP在适当的顶层模块中实例化就可以实现。所有这些工作在C*SOC中都是通过脚本自动完成的,用户只须按照规则输入必要的参数,真正实现可配置的总线。

除了支持C*BUS,C*SOC平台还提供AMBA Wrapper——MLB2AHB Wrapper。MLB2AHB Wrapper在C*CoreTM 局部总线(MLB)与AMBA 高性能总线 (AHB)之间提供一个接口。当与MLB2AHB Wrapper整合在一起时, 以AMBA总线标准开发的IP模块就可以无缝的集成到C*CoreTM 处理器为核心的SOC芯片中,使C*Core所具有的强大性能(比如低代码密度、低系统功耗)得到发挥,同时大大提高设计的重用性。

src=http://pld.eccn.com/pic/pld08136m4.gif border=0 align=center>

图3 C*Core AMBA Wrapper的结构

3.4软件/硬件协同验证

SoC复杂芯片的设计与传统的ASIC有较大的区别,最重要的区别在于在SoC芯片中会存在一个或者多个CPU。由于CPU的存在,会导致芯片验证模式的重大改变。在ASIC验证中,可以把ASIC作为一个黑箱,从外部加入激励,观察其响应是否与预期一致,可以把这种方式理解为Slave模式。在SoC中由于CPU的存在,就出现了软件、硬件的协同验证问题。即不仅要把测试芯片作为黑箱,测试它的响应,还需要让CPU执行程序,从整个芯片的层上测试各个模块功能是否正确,可以把这种方式作为Master模式,当然在芯片中设计有SRAM或者FLASH存储器时还会出现single chip模式,也就是程序在芯片内部存储,并由CPU来执行,这可以作为Master模式的一种特殊配置。图3和图4分别是C*SOC平台中Master模式和Slave模式的配置图。

src=http://pld.eccn.com/pic/pld08136m5.gif border=0 align=center>

图3 Master模式

src=http://pld.eccn.com/pic/pld08136m6.gif border=0 align=center>

图4 Slave模式

在C*SOC平台中包含了丰富的外部辅助模块和脚本程序。在图3与图4中用到了部分辅助验证模块:ebimon模块是外部总线接口的监视器;mlbmon是MLB的监视器;ipb_monitor是监视IP BUS动作的外部模块;mlb2ipbmon则是MLB到IP BUS之间的监视器。通过这些外部模块的支持,C*SOC就可以获得仿真仿真过程中的各种信息,通过其他脚本程序的支持,自动处理仿真结果,实现验证的自动化。
从两图的比较可以看出,两种模式的区别在于在Master模式下,比Slave模式多了C*Core和rimextmem两个模块。C*Core是CPU,可以运行程序,rimextmem是一个用于Master模式下用于辅助验证的存储器模型。在Slave模式下运行的测试Pattern是只有Verilog构成的。在Master模式下,运行的测试Pattern是C语言和Verilog代码,C语言和Verilog pattern的结合就可以实现软件与硬件的协同验证。
3.5 C*SOC的结构
C*SOC的结构设置考虑了SoC设计团队的分工。整个平台的目录结构清晰,分工明确。根据芯片设计团队的特点,C*SOC的整体目录结构分为模块、配置和工程三大类。对于每个特定的芯片工程,在IC设计公司中都会有一个Project Leader,然后会分配工程师负责单个IP的设计与验证。在C*SOC环境中,模块与配置两个目录是由Project Leader负责管理,验证的工作存放在工程目录中。对于Project Leader来讲,所有三个目录都是在本地的,由他控制与管理。对于每一个工程师来讲,会有一个单独的工程目录,用于存在自己负责的模块的工程文件,模块与配置目录是通过软连接的方式连接到本地的,只能引用而不能修改整个芯片的模块与配置,只能修改本地属于自己的模块。工程师在自己的IP模块调试出一个相对成熟的版本后,会联系Project Leader把模块目录中的相应文件版本更新,由Project Leader来实现整个芯片模块的集成。这样,既保证了整个芯片工程目录文件的安全性,同时又保证了每个工程师拥有一整套设计环境,实现人力资源的合理配置。
结论
SoC片上系统的设计与验证是一项很有挑战性的任务,在日趋复杂的片上系统中,RTL描述只是整个芯片设计中的一小部分工作,大部分的工作是放在芯片仿真验证上,C*SOC平台实现了软件、硬件协同验证功能,实现了验证自动化。进一步的研究,比如Testbench的自动生成,操作系统、Firmware以及编译器无缝的连接并进行共同验证等,需要众多研究人员的协作努力。

参考文献

ARM PrimeXsys Platforms White Paper, http://www.arm.com
Platform Express, http://www.mentor.com
萧鹏,季红彬,“M*CORE和SOC设计平台及其应用”, 2002年集成电路行业协会年会,中国,成都,2002年10月
季红彬,萧鹏,“SOC设计平台和方法”,2002年嵌入式系统及其应用研讨会,中国,上海,2002年11月
苏州国芯科技有限公司,C*SOC用户手册,2002,10,1
苏州国芯科技有限公司,IPBus用户手册,2002,10,1

季红彬,获Rutgers新泽西州州立大学电机工程博士、中科院自动化所硕士、上海交大工程学士,从1995年至2000年在位于美国新泽西州的贝尔实验室工作,设计高性能的网络系统和芯片,2000年至2002年在美国加州硅谷的Digital Microwave 和Tensilica,分别设计无线通讯系统和可构造的嵌入式微处理器(configurable processor),2002年8月回国加入苏州国芯,研究、开发、推广嵌入式微处理器和SoC设计平台。为IEEE高级会员,在国际期刊和会议发表论文40余篇, 多次在国际会议(如ICC, INFOCOM, GLOBECOM, ICASSP)等作演讲,有多项美国专利申请。

孙涛, 获浙江大学博士,2002年4月进入苏州国芯科技有限公司工作,从事嵌入式系统开发,芯片设计平台等方面的工作,曾发表多篇期刊及会议论文。

萧鹏,台湾成功大学,美国明尼苏达大学毕业。在美国摩托罗拉公司半导体产业部工作二十八年,设计了多种单片机和超大型集成电路,获美国专利17项,并创办摩托罗拉日本公司,美国奥斯汀和中国苏州的微控制器集成电路设计中心。
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表