EDN首页   博客首页

最新日志

发表于:2006-11-29 23:43:02
标签:无标签

1

动态电路设计心得

4. Why Dynamic gates require monotonically rising inputs during evaluation?

  Reason:As the following picture.If 1 to 0 when the clk is high.Before A change to 0,the A is 1,clk is high,so the output is 0.Once A is 0,the discharge path to Ground is cut off,but as the clk is high the Pmos is cut off ,there is not precharge path either,so the output can’t become high which is not our wanted result.So we should keep the dynamic gates monotonically rising.

系统分类: 模拟技术   |    用户分类: 无分类    |    来源: 无分类

评论(0) | 阅读(782)
发表于:2006-11-27 0:43:31
标签:SOC设计  

2

基于平台的SOC设计方法研究

基于平台的SOC设计方法研究

 

摘要:本文简要的介绍了Soc设计的概念、Soc设计的关键技术,并着重介绍并讨论了基于平台的Soc设计---PBDplatform based design,基于平台的设计)的基本概念,研究现状、发展以及存在的一些问题。PBD实际上是VLSI设计方法学的一种改进,因此本文同时还结合一些公司开发的平台来讨论PBD设计思想对VLSI设计带来的作用和影响。

 

关键词:SocPlatformIP核复用

 

1.引言:

    随着半导体工艺以及VLSI制造技术的高速发展,大量的逻辑功能都可以通过单一芯片实现。同时一些消费类电子系统如:3G、数字高清晰电视等产品都要求进行百万门级的IC设计。这些系统的设计要求设计时间、产品投放市场的时间(TTMtime-to-market)尽可能短,同时,还要求开发过程有一定的可预测性、产品制造的风险尽量小、产品质量尽可能高。在这种情况下,传统的以元件库(cell library)为基础的ASIC设计方法已跟不上设计的需要,于是一种新的设计概念——Soc产生了。

    Socsystem-on-a-chip)即系统芯片,是一种专门用来描述高集成器件的术语。Soc将系统的主要功能综合到一块或一组芯片中,本质上是在做一种复杂的IC设计。用Soc设计电路的复杂程序一般要超过 10万门。设计百万门测验的集成电路如果采用传统ASICTOP-DOWN(自顶向下)设计方法,无论从EDA设计工具的开发,还是从TTM的角度都将遇到麻烦。这使得越来越多的系统级设计都转向Soc,即在芯片上用若干个大型的模块来搭建一个复杂的系统。一般来说,在Soc中的宏模块至少包含一个可编程处理器(Programmable Processor)芯核和一个片上存储器(On-Chip Memory),其它硬件模块包括CPU coreDSP coreSignal ProcessingProtocol Control模块以及Analog模块等。将这些宏模块组装一块芯片上,然后做它们之间的布局和布线,这样才有可能使设计满足TTM 的要求。

    Soc系统设计中主要有基于模块的设计(Block-Based DesignBBD) 方法和基于平台的设计(Platform-Based Design PBD)方法。BBD 方法强调IP( Intellectual Property) 重用,它通过IP核的集成技术构造SoC 系统。对于较大较复杂的SoC 系统设计,由于需集成的IP 数目大、类型繁多、各方提供的IP 核接口不一致等问题,使得利用BBD 方法进行SoC 设计仍然非常复[1]

 

 

2VLSI系统设计方法的发展

    到目前为止,可以说VLSI设计方法经历了四个阶段,如图1。第一个阶段是以门级模块为基础的设计(gate based design),早期设计者所使用基础模块是晶体管,所以这一阶段的设计也称之为按面积驱动的设计——ADDarea driving design),在这一阶段设计者关心的焦点是如何减小芯片面积。第二个阶段是以门级模块为基础的设计(gate based design)。随着设计复杂度的加深,在考虑芯片面积的同时,更多关注门级模块之间的延时,这种设计被称为时间驱动的设计——TDD(time driving design) 上个世纪90年代随着芯片集成度进一步提高,同时产品投放市场的时间要求越来越短,TTM成为开发时重点考虑的问题,这样以门级模块为基础的设计不能适应IC生产的需要。同时,由于大量的宏模块的出现,使设计工作无需从最底层做起。已经开发出的宏模块就是通用的IP产品,这些IP产品的重用以在很大程度上减轻我们设计的复杂度和设计所需要的时间。这种以IP模块为基础的设计称为BBD block based design)设计。

在应用BBD方法进行设计的过程中,逐渐产生了另一个难题,这就是在开发完一个产品后,如何能尽快的开发出其系列产品。这种需求驱动一种新的设计方法——PBD的概念产生。与BBD相比PBD设计的复杂度和层次化程度有所提高。通过使用能预先验证和预测的标准化接口模块,PBDBBD设计的重用更有计划且提高了生产能力。 PBD是自系统级开始的层次化设计,通常PBD设计划分为四个阶段:模块设计、VC交付、系统综合和软件开发。这种划分不必与开发流程相对应。往往在系统开发过程中,这中个部分是同步进行的。此外,四个开发进程之间还可以进行通信,以便及时进行修改和调整。

当前,BBDPBD两种开发模式都在被广泛应用。个人认为现在我们正处于朝着以PBD为基础的Soc设计过渡阶段。

图(1)设计方法的发展进程

3.基于平台的Soc设计

    基于平台的设计(PBD) 方法由A Ferrari A Sangiovanni Vincentelli 1999 年首次提出[2] 后来又经过详细定义与发展[3] ,VSI 联盟为PBD 给出了较权威的定义[4] 。基于平台的设计是一种面向集成、强调系统级重用的设计方法,此方法在平台的基础上开发复杂的产品,目标是降低开发风险、代价与上市时间。 该方法在无线通信、汽车电子与多媒体应用中获得了较大的成功。例如,TI公司推出的TI OMAP 为无线视频流应用进行了优化,Philips公司的Nexperia 则适合多媒体应用与开发[1]   

平台是关于虚部件与某个体系结构框架的库。在这个体系结构框架中包含:一些集成的并且预先验证的软件IP与硬件IP块、模型、EDA与软件工具、库,以及通过体系结构探索、集成和验证来支持快速产品开发的方法学。这些平台越来越多地显示以下三个主要特性:

l          平台设计有很强的可配置性,但是却不能改变。如果设计中包含一个不用的模块,可以通过设置使这个模块不工作,而不是将它从设计中拿走。改变一个设计需要的费用,比起在非必需逻辑门总数目方面接受很少的一笔费用来,成本要高的多。

l          平台设计使用的是标准的SoC接口,这样就使得采用相同标准接口的辅助IP模块的集成变得很简单了。很多硬件设计者都知道,实际总线接口(如AMBAOCP)正在被越来越多地使用到很多不同的IP中。依赖于硬件的软件接口标准依然会出现。

l          现在平台设计越来越多地将专用模块集成到设计中,可以特别优化设计以实现该项功能。设计者会评估他们的特殊要求,然后选择那些能最大限度满足他们要求的“内核”平台。

在很多文献中,把平台又划分为硬件平台、软件平台和系统平台。其中,硬件平台是支持软件重用的微体系结构系列,软件平台通过API 使用硬件平台的资源,硬件平台与软件平台共同组成系统平台。在软件平台中,实时操作系统(RTOS) 封装了可编程IP 核与存储子系统,设备驱动程序封装了I/O子系统,网络通信子系统封装了网络连接。图2 说明了文系统平台与PBD 方法的基本思想。

                                  图(2PBD的思想

 

4PBD完成Soc设计的功能-结构协同设计

PBD 方法完成复杂系统的Soc设计,其系统实现方法就是功能-结构协同设计。该方法建立在现有的硬、软件协同设计的基础上,但加了一定程序的扩展。今天集成电路设计通常始开硬件的RTL级和软件的C代码。但功能-结构协同设计的要点是设计的抽象描述,它从设计产品的抽象功能模型开始,建立关于系统结构的框架模型,这样便于系统性能评估。

    下图3描述了功能结构协同设计的主要阶段:

                                 图(3)功能-结构协同设计主要阶段

1)功能建模

    功能建模包括功能和算法的设计与验证(验证是基于仿真的)。在这一阶段明确产品需求,描述产品需求使用C语言和HDL语言等。

    2)结构建模

    功能描述之后,可以定义一系列基于系统功能描述的软、硬件结构模型,该模型可能包括微处理器、微控制器、DSP、总线、存储单元、外围设计、RTOS、和其他一些专用的硬件处理单元(如MPEG audio and video decoder)。这些元件应是可重用的VC模块。

    3)映射与分析

    这一阶段将功能进行划分并映射到不同的结构模型上去,即将不同的功能映射为不同的软、硬件资源,对于硬件应将一种功能映射为一个精确的硬件模块,对于软件应将一种功能映射为一个针对于特定进程的任务。映射之后对不同的结构建模方案进行仿真比较,以便于选择最优的方案,同时,也可以对结构建模的结果进行细化。

    4)软件与硬件工具

    这一阶段包括设计新的硬件模块,综合重用的硬件VC模块,并开发出相应的软件,我们今天所进行的IC设计大多数开始于这一层次(通常称之为RTL-C  LEVEL)。

    5)系统集成

    完成了基本的软硬件开发后,一个完整的系统就可以初步建立起来以用于实验室的演示和仿真了。

 

5EDA工具的重要性

基于平台的Soc设计,必须有EDA工具的支持,基于平台的设计流程才会行之有效。EDA工具起重要作用的首要领域是IP配置。

由于合成命令文稿(synthesis scripts)、功能验证和其他支持文件都需要修改以便适应设计上的变化,因此在设计阶段,买进来的、相当于手工制作的IP会带来大量的额外工作量。

对于基于平台的设计来说,只能通过和IP配套提供的配置程序,来对IP做许可的修改。这样就保证了,IP的变化局限在原设计者许可的范围和方式内。当IP配置方案选定时,IP和支持文件将会连贯一致地被重新设置。

使用原始设计者的声明(assertion),对IP也非常有益。绝大多数IP打包方式允许其在单独运行的模式下有效运行,但对于IP在设计里是否可以正常运行却提供不了任何帮助。声明允许原始设计者嵌入功能检查,当IP在新的设计中被验证时,功能检查就可以被激活。为了SoC设计团队的利益,原始IP设计者正在有效地将其专门技术和知识打包。

其他很多的设计依赖性不受声明的影响。以特定方式配置的IP,很可能要求设计中的其他IP重新设置以与之相匹配。当然,在一个系统内,IP不可以不兼容。如果不兼容的话,一般不是因为硬件设置不正确,而是因为现有的软件和特定的操作系统可能会不匹配。

这些跨领域的问题很难发现和探测到。但是随着SPIRIT标准(IP的许多不同方面都以XML格式归档)的出现,希望还是有的。因为这个标准将会使得新级别的设计工具能够实现跨领域兼容性,可能还会将大量不同的单独IP配置程序组合到更加统一的设计环境中去。

 

6Soc设计平台实例

尽管基于IP的复用设计在上世纪90年代到本世纪初这段时间不断发展,但大多数设计方法在很大程度上仍是基于特定模块,需要进行专门的整合。如果想使用一个预先设计好的模块,必须弄清这个模块的工作原理,以及如何将该模块与设计中的其他部件整合。更麻烦的是,即使是那些已预验证并可商用的第三方IP模块,也会由于缺乏足够的文档和可交付使用的标准而给工程师带来困扰。换言之,采用预先设计好的IP模块并不能保证不经过额外的验证和调试就能一次设计成功。

在过去几年中,有些公司已经改变了设计方法,他们用一种完全集成的通用架构将自己的IP或者虚拟部件和软件标准化,只要具备共同特征的产品都可以基于这种结构创建,这就是所谓的基于平台的设计方法。这些公司将这种基于平台的设计方法作为一种有效策略,解决各种级别的产品复杂性和上市时间等问题。相对于基于特定模块的设计,这种方法有以下优点:仅通过添加几个IP组件就能快速实现衍生设计;集成架构最大程度减小了验证的不确定性,从而大大降低了设计投入及风险。

基于平台的设计是一种可以达到最大程度系统重用的面向集成的设计方法。Soc设计平台至少包括一个处理器核芯以及保证处理器有效工作的必要外设模块。通过重用方法使用验证的IP 核、IP 模块和设计平台,显著地减小设计开发风险、提高产品性价比和快速上市的可能。

基于上述原因,市场上出现了多种的Soc设计平台,下面本文将介绍C*SOC是苏州国芯(China Core)推出的以32RISC C*CoreSoc设计平台。C*SOC是苏州国芯科技有限公司开发的一个Soc设计平台。C*SOC是一个功能强大、自动化程度高的Soc仿真验证平台,它是针对Soc的设计难点,易于使用,能大大缩短Soc设计的周期,提高设计成功率的新一代Soc设计平台。

C*SOC是以32RISC 处理器C*CoreC210 C310)为核心的Soc芯片设计平台。应用C*SOC200 平台,Soc 设计者将更加专注于开发高附加值、面向应用的IP 模块。C*SOC200 不仅能够快速建立Soc 工程,还提供一个灵活、开放的验证环境,降低验证工作量。因此,逻辑仿真与验证是该平台的主要功能,如图4 所示,C*SOC 平台可以用在芯片设计流程的行为仿真、综合后门级仿真以及Layout后仿真三个环节中。[5]

图(4  C*SOC200在芯片设计流程中的应用

C*SOC设计平台是以Soc的设计方法为流程,利用EDA设计工具作为自动化的设计工具。平台主要包含两部分。第一部分是以C*Core的三种设计模型(行为模型、时序模型和版图模型)和C*Bus的总线构成的Soc芯片设计数据库。库内还包含了多个IP模块,比如中断控制、看门狗、I/O接口、同步及异步的串口、时钟等等。这是依据IP重用的设计方法设计的,因此基于该平台以增减IP模块可以事半功倍,在短期内完成芯片设计。

第二部分是支持自动化设计的软件环境。在Soc设计中最花时间的是仿真和验证,而且在设计流程中,有三种类型的仿真和验证:1、综合以前的RTL设计仿真和验证;2、综合以后的门级仿真验证;3、版图设计完成后的后仿真和验证。Soc设计平台能自动架构验证平台,并且有测试和误差报告功能,可帮助工程师准确地解决设计时所面临的问题。为了便利并缩短仿真的时间,Soc设计平面在仿真时能混合使用多种设计语言,如RTL、门级和网级。例如,工程师增加新的IP模块到芯片中时,只有新模块用门级,而其他重用的部分就可使用RTL的描述以加快仿真的速度。

5给出了CSOC200的设计框架图

                        图(5 COSC200设计框图

通过C*SOC200平台不但能验证单个IP的正确而且能从系统的角度,在整个芯片的水平上做软件、硬件的协同验证(Co-verification),保证Soc芯片功能得到充分验证。C*SOC 有效支持不同层次的仿真如RTLGate Levelfunctional model 等。同时,C*SOC 还可以支持不同层次IP 的混合仿真。C*SOC平台支持Testbench 的重用。在C*SOC 中提供了多个通用的IP 模块,并且同时提供了丰富的功能验证模块,可以节省设计者宝贵的时间。在C*SOC 中提供C*Bus,通过C*BUS可以很轻松的集成各种IP 模块。C*SOC 平台中包括Master Slave 等验证模式,支持软/硬件的协同验证。C*SOC 的结构设置考虑了Soc设计团队的分工。整个平台的目录结构清晰,分工明确。图6描述了Soc的仿真和验证环境。

 

Padring

RIMS

PORTS

IP Bus

Interface

IPB module

MLB Bus

IP Bus

ebimon

mlbmon