背景技术
近年来,随着系统LSI(大规模集成)的技术的进步,已经广泛地实施安装高速度总线接口。同时,PCB(印制电路板)也已经提升至速度可操作和高度集成。根据此趋势,考虑协同操作系统LSI和PCB两者对设计来说变得越来越重要。当前,系统LSI设计师基于诸如组件布局、电路板层的数目以及电路板材料的物理约束条件来手动设计封装和总线接口。已经寻求其中可以更有效地执行这样的设计的环境。
日本未经审查的专利申请公开No.2006-119951(在下文中被称为专利文献1)公开了一种用于设计系统LSI的内部总线接口的系统。日本未经审查的专利申请公开No.2006-107309(在下文中被称为专利文献2)公开了一种总线接口设计支持装置。该总线接口设计支持装置通过选择用于实现模块之间的适当的数据传输的适当的总线协议来自动地生成总线接口。
图8示出了专利文献1中公开的总线接口设计支持装置的功能框图。如图8所示,常规的总线接口设计支持装置200具有输入单元211、控制单元212、存储单元213、RAM(随机存取存储器)214、VRAM(视频随机存取存储器)215以及显示单元216。存储单元213具有总线协议库213a和总线桥接库213b。
通过输入单元211输入模块的接口信息。应当注意,模块的接口信息包括诸如信号的定义(时钟信号、选择信号、读和写方向信号、读或者写使能信号)、输入和输出每个信号的时序、总线宽度(地址和数据)、传输速度指数(传输速度的指示符(指示值)、接口的电路规模(电路规模的指示符(指示值)以及交易ID(关于分离交易的识别信息)的信息。控制单元212选择匹配接口信息的总线桥接电路同时访问接口信息、总线协议库213a以及总线库213b。注意到,事先将总线协议库213a和总线桥接库213b存储在存储单元213中。控制单元212将结果输出至显示单元216,并且然后输出所生成的总线。
参考图9,在下文中描述了选择适当的总线桥接的方案。如图9所示,读取源文件(步骤SP101)以计算总线传输带宽,并且执行传输速度分析(步骤SP102)。在总线传输速度分析处理中,分析所读取的源文件,并且然后执行对访问被连接至总线的存储器设备的具体存储器区域中的地址的计数。在总线传输速度分析处理中,实现了通过利用添加与要被访问的存储器的类型(例如,是否是SRAM或者DRAM)和总线协议的类型相对应的响应时间计算传输速度来更正确地选择总线协议。
在总线传输速度分析处理中,执行接收由总线接口的设计师确定添加的外部信息的输入。应当注意,外部信息是设计条件,并且例如,可以命名用于计算所要求的数据传输速度的信息和条件(在下文中,被称为“外部信息A”)和关于选择总线协议的条件(在下文中,被称为“外部信息B”)。
具体地,外部信息A是涉及数据业务的信息,诸如包括主模块和从模块的连接模块数目、总线宽度、操作时钟速度、等待时间以及总线占有时间和占用率。
外部信息B是涉及确定速度是否被给予优先级(是否对条件给予优先级,诸如选择更大的总线宽度、选择更高的操作时钟速度以及分离地址总线和数据总线),或者电路规模是否被给予优先级(是否对更简单的并且使接口电路规模更小的总线协议给予优先级)的信息。
在步骤SP102之后,控制单元212访问被存储在存储单元213中的总线协议库213a,并且选择满足在总线速度分析处理中计算的数据传输速度的总线协议(步骤SP103)。这时,如果外部信息被输入,那么在反映由外部信息给出的条件之后也执行选择总线协议。随后,控制单元212控制显示单元216以显示在步骤SP103中选择的总线协议(步骤SP104),并且确定所选择的总线协议的数目是否是复数(步骤SP105)。
在步骤SP105中,如果选择了多个总线协议,那么控制单元212经由输入单元211要求设计师(用户)选择所显示的多个总线协议中的任何一个(步骤SP106)。
随后,控制单元212生成与所选择的总线协议相匹配的总线接口的设计数据(步骤SP107)。这时,如果已经选择了包括不同类型的总线协议的总线接口,那么控制单元212访问总线桥接库,选择适当的总线桥接以连接这些总线,并且生成总线接口的设计数据。应当注意,在步骤SP105中,如果选择了一个总线协议,那么控制单元212继续进行步骤SP107的处理。在步骤SP107之后,控制单元212终止总线接口设计支持处理。
目前,在大规模系统的技术领域中通过高速度总线接口连接多个系统LSI变得越来越普遍。但是,根据专利文献1的方法不能够设计同时考虑系统LSI的物理约束条件(诸如印制电路板的材料和在系统LSI之间的距离)。如果一旦总线生成仅依照逻辑约束条件(诸如协议和总线宽度)生成了系统LSI的接口,那么问题出现以致因为由物理因素引起的电属性的变化而造成在系统LSI之间的接口不稳定地操作、无法达到目标传输带宽等等。通过重新设计除了芯片之外的部件(诸如封装基板、印制电路板以及电缆)解决上述问题将防止整个系统设计的效率问题。
具体实施方式
在下文中,参考附图详细地描述应用于本发明的具体示例性实施例。通过将本发明应用于与系统LSI的设计有关和包括插入在多个芯片之间的总线接口的总线接口设计装置而给出这些示例性实施例。根据在此的示例性实施例的总线接口设计装置用于设计包括插入在多个芯片之间的I/F的总线接口,并且它们基于芯片的物理约束条件确定芯片之间的总线接口的总线宽度和总线接口的类型并且自动地生成被配备有与所确定的总线宽度和总线接口相对应的电路的总线IP核心。
为了实现此目的,作为用于生成总线接口(在下文中,也可以被称为总线IP)的约束信息,它被配置成能够输入诸如协议和总线宽度的逻辑约束条件以及诸如印制电路板的材料和在LSI之间的距离的信息的物理约束条件。随后,它被配置成能够处理多个系统LSI作为用于生成总线接口的逻辑和物理约束条件。
另外,与物理和逻辑约束条件相对应的可配置的总线IP(知识产权)核心被包括在一旦总线接口生成就要访问的总线接口设计库中。而且,它被配置成根据逻辑和物理约束条件计算要被分配给总线IP核心的配置参数,并且在用于实现能够连接具有高速度接口的多个系统LSI的配置的总线IP核心上的LSI之间提供高速度接口(链路)。通过考虑物理约束条件和从逻辑约束条件计算的逻辑带宽来确定这样的高速度接口(链路)的数目。
[第一示例性实施例]
图1是示出根据本发明的示例性实施例的总线接口设计系统的图。根据本示例性实施例的总线接口设计系统具有逻辑约束条件文件1、物理约束条件文件2、总线接口设计库3以及总线接口设计装置4,并且总线接口设计系统设计总线接口5和6。
总线接口设计系统输入来自于逻辑约束条件文件1和物理约束条件文件2的逻辑和物理约束条件,并且基于所输入的约束条件通过执行被包括在事先准备的总线接口设计库3中的可配置的总线IP的配置生成总线。
图2是示出根据本示例性实施例的总线接口设计装置的框图。如图2所示,总线接口设计装置具有总线接口设计库(在图2中未示出)、数据读出单元41、参数计算器42、执行单元(配置执行单元)43以及输出单元(RTL输出单元)44。
一旦设计了总线接口,数据读出单元41就读取逻辑和物理约束条件。参数计算器42计算配置总线接口所要求的参数。执行单元43执行总线接口的配置。输出单元44输出RTL(寄存器传输级),作为执行配置的结果。RTL表示具有触发器的总线接口电路和组合逻辑电路。
总线接口是用于连接多个系统LSI的总线的接口。总线接口具有驱动连接系统LSI的传输线(总线)的传送和接收电路。而且,总线接口具有总线矩阵单元以任意地连接一个或者多个总线主模块、一个或者多个总线从模块、一个或者多个总线主模块以及一个或者多个总线从模块。
参数计算器42计算被包括在总线接口中的传送和接收电路的属性参数(属性调节参数)。应当注意,如稍后所述,总线接口具有驱动连接系统LSI的传输线的高速度串行接口和/或高速度并行接口。通过参数计算器42还可以计算高速度串行接口和/或高速度并行接口的属性参数。
参数计算器42还可以输出代替或连同属性参数一起的其它的参数(诸如总线接口的时钟频率、主端口数目、从端口数目、每个端口的数据总线宽度、地址区域的开始地址和结束地址(针对从机的情况)以及外部高速度接口的数目(链路的数目))。总线接口设计装置通过指定如稍后所述的这些参数生成总线接口。
参数计算器42通过以查找表方式使用物理约束条件作为搜索关键字来搜索被配置成输出属性参数的数据库。具体地,参数计算器42具有端口数目确定器51、带宽计算器52以及参数输出单元53。端口数目确定器51确定生成总线矩阵单元要求的主端口数目和从端口数目。带宽计算器52根据逻辑约束条件计算连接系统LSI的高速度接口所要求的逻辑带宽(逻辑带宽值)。参数输出单元53根据物理约束条件计算能够实现以上逻辑带宽的接口数目和驱动每个接口的传送和接收电路的属性参数。
接下来,描述了根据本示例性实施例的总线接口设计装置的操作。图3是示出根据本示例性实施例的包括由总线接口设计装置设计的总线的LSI的图。
首先,描述了图3所示的LSI 100的配置。如图3所示,LSI 100在印制电路板(PCB)101上具有系统LSI(芯片)110和120。通过传输线131和132连接芯片110和120。
总线主模块M11、M12和总线从模块S11、S12被嵌入在芯片110中。这些模块与总线IP(知识产权)111相连接。总线矩阵112和SERDES(串行器/并行器)113和114被嵌入在总线IP 111中。总线矩阵112用作交叉开关。SERDES(串行器/并行器)113和114用作高速度接口以与LSI 100的外部进行通信。SERDES是相互转换串行和并行的电路。SERDES 113的系统接口被连接至总线矩阵112。SERDES 113的高速度串行接口被连接至芯片110的外部端子L11。同样地,SERDES 114的系统接口被连接至总线矩阵112。SERDES 114的高速度串行接口被连接至芯片110的外部端子L12。芯片110的外部端子L11被连接至在PCB 101上布线的传输线131,并且同样地,芯片110的外部端子L12被连接至在PCB 101上布线的传输线132。
还以与芯片110相同的方式配置LSI 100的芯片120。换言之,总线主模块M21、M22和总线从模块S21、S22被嵌入在芯片120中。通过总线IP 121连接这些模块。总线矩阵122以及SERDES 123和124被嵌入在总线IP 121中。总线矩阵122用作交叉开关。SERDES用作高速度接口以与LSI的外部进行通信。
SERDES 123的系统接口被连接至总线矩阵122。SERDES 123的高速度串行接口被连接至芯片120的外部端子L21。同样地,SERDES124的系统接口被连接至总线矩阵122。SERDES 124的高速度串行接口被连接至芯片120的外部端子L22。芯片120的外部端子L21被连接至在PCB 101上布线的传输线131。同样地,芯片120的外部端子L22被连接至在PCB 101上布线的传输线132。
总线接口设计装置4具有自动地生成图3所示的总线IP 111、121的物体。在以下描述中,描述了总线接口设计装置4的详细说明。图4是示出根据本示例性实施例的由总线接口设计装置执行的处理方法的流程图。
如图4所示,首先在步骤SP1中执行读出总线接口设计库。稍后描述总线接口设计库的内容。接下来,在步骤SP2中,逻辑约束条件被输入。具体地,执行读出逻辑约束文件,诸如图5所示的逻辑约束文件。然后,物理约束条件被输入(步骤SP3)。具体地,执行读出物理约束文件,诸如图6所示的物理约束文件。然后,计算用于总线IP的配置参数(步骤SP4)。
在执行了步骤SP4中配置总线IP所要求的参数的计算之后,执行总线IP的配置(步骤SP5)。最后,RTL(寄存器传输级)被输出,并且然后完成了总线生成的处理(步骤SP6)。注意到,RTL表示具有触发器的所配置的总线IP的电路和组合逻辑电路。
在以下描述中,描述了计算用于总线IP的配置参数的方法的细节。图7是示出计算用于总线IP的配置参数的方法的流程图。
首先,根据逻辑约束条件读出在总线矩阵中的主机数目和从机数目。随后,主端口数目和从端口数目被确定,两者都处于总线IP的内部并且被要求用于总线矩阵单元(交叉开关)的生成,该总线矩阵单元(交叉开关)用于任意地将多个总线主模块与多个总线从模块相连接(步骤SP11)。然后,根据路由信息(指示哪个主机访问哪个从机的路径信息)和关于逻辑约束条件的每个端口的总线宽度和总线时钟频率的信息,计算被要求用于连接系统LSI的高速度接口(链路)的逻辑带宽(步骤SP12)。
随后,从物理约束条件计算能够实现在步骤SP12中获得的逻辑带宽的链路数目和驱动每个链路的传送和接收电路(SERDES)的属性参数(步骤SP13)。传送和接收电路的属性参数的示例包括LVDS(低压差分信号)缓冲器的类型、去加重(其中接收方在解调之后恢复通过传送电路的预加重强调的频率分量)或者预加重(其中传送方事先强调调制信号的高频率)的量、在接收电路中均衡的量等等。
物理约束条件表示信息,诸如印制电路板的材料、印制电路板层的数目、布线膜厚度和在印制电路板的层之间的厚度、每个系统LSI的封装信息(封装的类型、IBIS(输入/输出缓冲器信息规格)的型号)、在系统LSI之间的布线的距离、布线负载的模型以及允许布线的链路的最大数目。IBIS是描述IC的输入和输出属性的ANSI(美国国家标准学会)标准模型并且表示IC芯片的输入和输出属性。
以查找表方式使用上述物理约束条件作为关键字,通过搜索被配置成输出用于总线IP的参数的数据库来实现用于计算属性参数的装置。在上述步骤SP11至SP13之后,完成了提取用于配置总线IP的参数的步骤。
接下来,解释了总线接口设计库3。可配置的总线IP被存储在总线接口(总线IP)设计库3中。可配置的总线IP被存储在总线接口(总线IP)设计库3中。可配置的总线IP意指可以依照应用以命令集合的水平在架构中被定制的总线IP。换言之,可配置的总线IP将以下参数作为它自己的:总线时钟频率、主端口数目、从端口数目、每个端口的数据总线宽度、地址区域的开始地址和结束地址(针对从机的情况)以及外部高速度接口数目(链路的数目)、每个链路的传送和接收电路(诸如SERDES)的属性参数等等,并且可以根据指定的参数重新配置内部电路配置。
在以下描述中,参考图5和图6,描述了逻辑约束文件和物理约束文件的具体内容。应当注意,逻辑约束文件和物理约束文件具有可以以诸如HTML/XML的类似格式保持分级信息结构的配置。
图5是示出逻辑约束文件的一个具体示例的图。在本示例中的逻辑约束文件1被配置有作为主要部分的两个CHIP部分(从行003至行023和从行0025至行041)以及一个CONFIG部分(从行043至行052)。CHIP部分定义图3中的芯片110和120的块配置。
描述了芯片110的CHIP部分中的主要项:
行004:该行指示这是与芯片110有关的部分;
行007:该行指示总线时钟是150MHz;
行009-011:该行指示总线主模块M11具有32位的宽度并且是AHB(高级高性能总线)(注册商标)主端口;
行014-016:该行指示总线从模块S11具有32位的宽度并且是AHB从端口;以及
行018-019:该行指示总线从模块S11的地址区域是0x10000000-0x1001ffff。
接下来,描述了CONFIG部分中的主要项:
行044-047:该行指示芯片110的总线主模块M11访问芯片110的总线从模块S11;以及
行049-050:该行指示芯片110的总线主模块M11访问芯片120的总线从模块S21。
图6是物理约束文件的具体示例。根据以下主要部分一个PCB部分(从行003至行010)、两个CHIP部分(从行012至行020和从行022至行030)以及一个CONFIG部分来配置图6中的物理约束文件2。在PCB部分中,定义了图3中的印制电路板PCB 101的物理约束条件,并且在CHIP部分中,定义了图3中的芯片110和120的物理约束条件。在CONFIG部分中,指定了诸如布局布线信息的物理约束条件。以下描述了PCB部分中的主要项:
行005:该行指示PCB 101的材料是FR-4(耐火玻璃基板环氧树脂层压板);
行006:该行指示PCB 101的印制电路板层的数目是六;
行007:该行指示PCB 101的印制电路板铜箔的厚度是18μm;以及
行008:该行指示PCB 101的印制电路板层之间的厚度是0.4mm。
描述了CHIP部分中的主要项:
行016:该行指示芯片110的封装类型号是BGA 500(球栅阵列,500个引脚);以及
行017:该行指示用于封装芯片110的IBIS模型是IBIS 50(输入/输出缓冲器信息规格)。
描述了CONFIG部分中的主要项:
行036:该行指示在芯片110和120之间的PCB 101上的距离是120mm;
行037:该行指示在芯片110和120之间允许布线的链路的最大数目是16;以及
行038:该行指示在CHIP 110和120之间的布线模型是FR4WLM601(FR4:印制电路板材料;WLM:布线负载模型)。
应当注意,IBIS 50表示PKG的电模型,并且在本示例中,唯一定义的型号被表示为示例。FR4WLM601是印制电路板的布线的电模型,并且在本示例中,唯一定义的型号被表示为示例。
在本示例性实施例中,实现了生成满足在多个LSI之间的高速度接口中的物理约束条件并且能够被稳定地驱动的总线接口,并从而在完成了LSI设计工艺之后实现了避免封装基板、印制电路板、电缆等等的重新设计或者重新调整。
另外,事先按照惯例准备了多个总线接口(电路)作为要由客户端依照要求(规格)选择并且被嵌入在LSI中的库,诸如ASIC(专用集成电路)。为此,问题出现,以致因为由物理因素造成的电属性的变化而使系统LSI之间的接口不稳定地操作,并且无法达到目标传输带宽。相反地,在本示例性实施例中,由于事先确定了客户端的ASIC使用条件作为物理约束,并且产生了用于每个ASIC的最佳总线接口(电路),所以最终可以避免上述问题。
[第二示例性实施例]
将描述另一个示例性实施例,其中,代替第一示例性实施例中的SERDES,高速度并行接口(诸如DDR(双倍数据速率)接口)可以被用作为高速度接口,并且同时提供了具有能够选择高速度串行或者高速度并行的功能的配置。总线接口设计装置具有通过使用以下值作为关键字搜索事先准备的数据库来确定高速度接口的最佳类型的装置:由系统LSI的封装类型限制的可用外部端子数目(插槽的数目)、用于在LSI之间通信所要求的带宽以及通过印制电路板的材料和作为关键字的布线信息确定的传输速度的上限值。
本示例性实施例还涉及与第一示例性实施例相类似的系统LSI的设计,并且涉及用于设计包括被插入在芯片之间的总线接口的总线IP核心的装置。同样在本示例性实施例中,通过基于芯片的物理约束条件来确定芯片之间的接口的总线宽度、接口的类型等等,可以自动地生成被配备有所确定的总线宽度和接口电路的总线IP核心。
应当注意,本发明不仅仅限于上述示例性实施例,并且应当理解,在不背离本发明的精神的情况下可以进行各种修改。例如,尽管在上述示例性实施例中以硬件配置的形式描述了本发明,但是本发明不限于此并且还可以通过使CPU(中央处理单元)执行计算机程序来实现任何处理。在这种情况下,还可以通过在记录介质中记录来提供计算机程序,并且另外,还可以通过经由诸如因特网的其它传输介质的传输来提供。
在上述示例性实施例中,公开了以下程序。一个是用于使计算机执行用于设计包括插入在芯片之间的I/F的总线接口的处理,包括:基于芯片的物理约束条件来确定芯片之间的总线接口的总线宽度和总线接口的类型;以及自动地生成包括根据所确定的总线宽度和总线接口配置的电路的总线IP核心。
另一个是用于使计算机执行预定的操作的程序,包括:读取总线接口设计库;一旦设计总线接口就读取逻辑约束条件和物理约束条件;计算配置总线接口的所要求的参数;以及执行总线接口的配置。
总线接口是连接多个半导体集成电路的总线的接口,该总线接口包括:驱动总线的传送和接收电路;以及串行接口和/或并行接口,其中,参数是传送和接收电路以及串行接口和/或并行接口的属性参数。
在上述示例性实施例中,公开了以下设计系统。一种用于设计包括插入在芯片之间的I/F的总线接口的系统,该系统包括:确定器,该确定器基于芯片的物理约束条件来确定芯片之间的总线接口的总线宽度和总线接口的类型;以及执行器,该执行器自动地生成包括根据所确定的总线宽度和总线接口配置的电路的总线IP核心。
本领域的普通技术人员可以根据需要组合第一和第二示例性实施例。
虽然已经根据若干示例性实施例描述了本发明,但是本领域的技术人员将认识到,本发明可以在权利要求的精神和范围内实施各种修改,并且本发明并不限于上述示例。
而且,权利要求的范围不限于上述示例性实施例。
此外,应当注意,申请人的意图是涵盖所有请求保护的要素的等同物,即使在后期的审查过程中对权利要求进行过修改亦是如此。