首页> 中国专利> 系统大规模集成电路设计支持设备及方法

系统大规模集成电路设计支持设备及方法

摘要

充分地将系统提供的特征分配给系统LSI中集成的、具有不同体系结构的处理单元。提供分析单元用于计算以高级语句描述系统特征的程序的每个函数中所描述的条件分支语句的数目和循环控制语句的数目、条件分支语句的嵌套数目和循环控制语句的嵌套数目、以及产生条件分支语句的条件和循环控制语句的循环次数所需的函数的数目。

著录项

  • 公开/公告号CN1551021A

    专利类型发明专利

  • 公开/公告日2004-12-01

    原文格式PDF

  • 申请/专利权人 松下电器产业株式会社;

    申请/专利号CN200410030242.1

  • 发明设计人 冈本稔;

    申请日2004-02-27

  • 分类号G06F17/50;G06F17/30;

  • 代理机构北京市柳沈律师事务所;

  • 代理人邸万奎

  • 地址 日本大阪府

  • 入库时间 2023-12-17 15:39:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2013-04-10

    未缴年费专利权终止 IPC(主分类):G06F17/50 授权公告日:20080130 终止日期:20120227 申请日:20040227

    专利权的终止

  • 2008-01-30

    授权

    授权

  • 2005-02-02

    实质审查的生效

    实质审查的生效

  • 2004-12-01

    公开

    公开

说明书

技术领域

本发明涉及系统LSI(大规模集成电路)设计支持设备和系统LSI设计支持方法,用于支持将以高级语言描述的系统程序所实现的功能分配给包括微处理器、数字信号处理和专用逻辑电路的系统LSI。

背景技术

近来,在单片LSI上安装包括多个功能(feature)的系统已随着LSI的组装密度的提高成为可能。LSI(在本文中指系统LSI)包括不同类型的处理单元,该处理单元包括微处理器、数字信号处理器和专用逻辑电路以及存储器。各种系统功能都由合适的处理单元执行。

每个处理单元都具有单独的体系结构,适合执行特定的处理。例如,微处理器(在本文中指CPU)适合确定从LSI的外部输入的各种控制信息或执行以高级语言描述的程序中的具有复杂算法的处理。

数字信号处理器(在本文中指DSP)适合高速执行复杂的算术运算。专用逻辑电路能够高效地执行简单算术运算,但不适合执行伴随着复杂判断条件的处理。

将系统功能分配给哪个处理单元是由下面的过程决定的。首先,基于描述了部分或全部的系统操作的程序作简单的分析。在此分析中,处理每个程序功能单元,也就是模块,或以如C语言的高级语言描述的函数的处理时间。基于此信息,设计者将系统功能分配给合适的处理单元。接着,设计者计算详细的处理时间以及每个处理单元的执行周期的数目。倘若到此阶段为止已发现问题,设计者就编写合乎该处理单元的内置程序,例如由CPU执行的程序或用于DSP的程序,并设计专用逻辑电路来计算正确的处理时间。

一种设计支持方法已被提出用以支持前面所提到的一系列处理(例如参见已提出公开的日本专利号160949/1997,第4-14页及图1)。按照该已提出公开的日本专利号160949/1997,输入通过编译以高级语言描述的包含多个函数的程序所得的目标码,以执行仿真并记录/输出处理时间和预先指定的部分的处理计算,由此,根据处理时间的长度来选择以硬件实现或用专用逻辑电路来处理的部件。

虽然该相关技术的方法支持基于处理时间将特定的系统功能分配给专用逻辑电路,但该方法不具备合乎其它标准所确定的信息。换句话说,倘若在实现主要使用了某些系统功能中的简单算术运算的功能A(Feature A)中,CPU满足该处理时间,那么就不需要用专用逻辑电路执行处理。在这种情况下,CPU实际上执行了不适合其结构的处理。这就导致了大量不必要的运算从而引起功耗的增加。

另一个例子是:倘若CPU不能在预定的时间内实现具有使用某些系统功能中的多重条件判断的复杂算法的功能B(Feature B),那么功能B就被分配给专用逻辑电路。问题是需要多级状态变换控制电路来完成这种用专用逻辑电路完成的复杂处理。这就增加了专用逻辑电路的尺寸,相应的设计周期也将变得很长。

发明内容

本发明就是考虑到上述事实而做出的,其目标是提供系统LSI设计支持设备和系统LSI设计支持方法,用于支持将系统功能充分地分配给系统LSI中的具有不同体系结构的处理单元。

为了解决上述问题,本发明的第一方面提供了系统LSI设计支持设备,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,该设备具有以高级语言描述系统功能的程序作为输入,其特征在于该设备包括:函数提取装置,用于提取在程序中描述的函数;分析装置,用于计算在由函数提取装置提取的每个函数中描述的条件分支语句的数目;以及计算装置,用于基于分析装置对由函数提取装置提取的每个函数的计算结果,输出计算结果信息。

本发明的第二方面提供了系统LSI设计支持方法,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该方法包括步骤:输入以高级语言描述系统功能的程序;提取在程序中描述的函数;计算在由函数提取装置提取的每个函数中描述的条件分支语句的数目;以及用于基于分析装置对由函数提取装置提取的每个函数的计算结果,输出计算结果信息。

按照这种配置结构,基于关于条件分支语句的数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第三方面提供了按照第一方面的系统LSI设计支持设备,其特征在于分析装置计算在由函数提取装置提取的每个函数中描述的条件分支语句的嵌套数目。

本发明的第四方面提供了按照第十四方面的系统LSI设计支持方法,其特征在于该方法包括计算在每个被提取出的函数中描述的条件分支语句的嵌套数目的步骤。

按照这种配置结构,基于关于条件分支语句的嵌套数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第五方面提供了按照第一或第二方面的系统LSI设计支持设备,其特征在于,基于涉及在由函数提取装置提取的每个函数中描述的条件分支语句的条件的变量计算处理,分析装置计算产生该变量所需的函数的数目。

本发明的第六方面提供了按照第十四或第十五方面的系统LSI设计支持方法,其特征在于,该方法包括基于涉及在每个被提取出的函数中描述的条件分支语句的条件的变量计算处理,计算产生变量所需的函数的数目的步骤。

按照这种配置结构,基于涉及产生与条件分支语句的条件有关的变量所需的函数数目的系统LSI设计支持信息,将系统提供的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第七方面提供了按照第一至第三方面的任意一个的系统LSI设计支持设备,其特征在于该设备包括:映射装置,用于比较限定信息和从计算装置输出的计算结果信息,以便将合适的处理单元映射给每个函数,其中从处理单元处理的条件分支语句的最佳数目、条件分支语句的最佳嵌套数目以及产生涉及条件分支语句的条件的变量所需的最佳函数数目所选出的多种组合是按单独的处理单元限定的。

本发明的第八方面提供了按照第十四至第十六方面的任意一个的系统LSI设计支持方法,其特征在于该方法包括步骤:输入限定信息,其中从处理单元处理的条件分支语句的最佳的数目、条件分支语句的嵌套数目以及产生涉及条件分支语句的条件的变量所需的函数数目中所选出的多种组合是按单独的处理单元限定的;以及比较限定信息和计算结果信息,以便将合适的处理单元映射给每个函数。

按照这种配置结构,基于关于从条件分支语句的数目、条件分支语句的嵌套数目以及产生与条件分支语句的条件有关的变量所需的函数数目中所选出的多种组合的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第九方面提供了系统LSI设计支持设备,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,该设备具有以高级语言描述系统功能的程序作为输入,其特征在于该设备包括:函数提取装置,用于提取在程序中描述的函数;分析装置,用于计算在由函数提取装置提取的每个函数中描述的循环控制语句的数目;以及计算装置,用于输出计算结果信息,其中对于由函数提取装置提取的每个函数,将分析装置的计算结果进行求和。

本发明的第十方面提供了系统LSI支持设计方法,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该方法包括步骤:输入以高级语言描述系统功能的程序;提取在程序中描述的函数;计算在由函数提取装置提取的每个函数中描述的循环控制语句的数目;以及基于分析装置对由函数提取装置提取的每个函数的计数结果,输出计算结果信息。

按照这种配置结构,基于关于循环控制语句的数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第十一方面提供了按照第五方面的系统LSI设计支持设备,其特征在于分析装置计算在由函数提取装置提取的每个函数中描述的循环控制语句的嵌套数目。

本发明的第十二方面提供了按照第十八方面的系统LSI设计支持方法,其特征在于该方法包括计算在每个被提取出的函数中描述的循环控制语句的嵌套数目的步骤。

按照这种配置结构,基于关于循环控制语句的嵌套数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第十三方面提供了按照第五或第六方面的系统LSI设计支持设备,其特征在于,基于与在由函数提取装置提取的每个函数中描述的循环控制语句的循环次数有关的变量的计算处理,分析装置计算产生该变量所需的函数的数目。

本发明的第十四方面提供了按照第十八或第十九方面的系统LSI设计支持方法,其特征在于,该方法包括基于与在每个被提取出的函数中描述的循环控制语句的循环次数有关的变量的计算处理,计算产生该变量所需的函数的数目的步骤。

按照这种配置结构,基于关于产生与循环控制语句的循环次数有关的变量所需的函数的数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第十五方面提供了按照第五至第七方面的任意一个的系统LSI设计支持设备,其特征在于该设备包括:映射装置,用于比较限定信息和从计算装置输出的计算结果信息,以便将合适的处理单元映射给每个函数,其中从处理单元处理的循环控制语句的最佳数目、循环控制语句的最佳嵌套数目、以及产生与循环控制语句的循环次数有关的变量所需的最佳函数数目中所选出的多种组合是按单独的处理单元限定的。

本发明的第十六方面提供按照第十八至第二十方面的任意一个的系统LSI设计支持方法,其特征在于该方法包括步骤:输入限定信息,其中从处理单元处理的循环控制语句的最佳数目、循环控制语句的嵌套数目以及产生与循环控制语句的循环次数有关的变量所需的函数数目中所选出的多种组合是按单独的处理单元限定的;以及比较限定信息和计算结果信息,以便将合适的处理单元映射给每个函数。

按照这种配置结构,基于关于循环控制语句的数目、循环控制语句的嵌套数目、以及产生与循环控制语句的循环次数有关的变量所需的函数数目中所选出的多种组合的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第十七方面提供了系统LSI设计支持设备,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,该设备具有以高级语言描述系统功能的程序作为输入,其特征在于该设备包括:函数提取装置,用于提取在程序中描述的函数;分析装置,用于计算在由函数提取装置提取的每个函数中描述的条件分支语句和循环控制语句的数目;以及计算装置,用于基于分析装置对由函数提取装置提取的每个函数的计数结果,输出计算结果信息。

本发明的第十八方面提供了系统LSI设计支持方法,用于支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该方法包括步骤:输入以高级语言描述系统功能的程序;提取在程序中描述的函数;计算在由函数提取装置提取的每个函数中描述的条件分支语句和循环控制语句的数目;以及基于分析装置对由函数提取装置提取的每个函数的计数结果,输出计算结果信息。

按照这种配置结构,基于关于条件分支语句和循环控制语句的数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第十九方面提供了按照第九方面的系统LSI设计支持设备,其特征在于分析装置计算在由函数提取装置提取的每个函数中描述的条件分支语句和循环控制语句的嵌套数目。

本发明的第二十方面提供了按照第二十二方面的系统LSI设计支持方法,其特征在于该方法包括计算在每个被提取出的函数中描述的条件分支语句和循环控制语句的嵌套数目的步骤。

按照这种配置结构,基于关于条件分支语句和循环控制语句的嵌套数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第二十一方面提供了按照第九或第十方面的系统LSI设计支持设备,其特征在于:基于与在由函数提取装置提取的每个函数中描述的条件分支语句和与循环控制语句的循环次数有关的变量的计算处理,分析装置计算产生这些变量所需的函数的数目。

本发明的第二十二方面提供了按照第二十二或第二十三方面的系统LSI设计支持方法,其特征在于,该方法包括基于与在每个被提取出的函数中描述的条件分支语句的条件有关的变量和与循环控制语句的循环次数有关的变量的计算处理,计算产生这些变量所需的函数的数目的步骤。

按照这种配置结构,基于关于产生与条件分支语句的条件有关的变量和与循环控制语句的循环次数有关的变量所需的函数数目的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明第二十三方面提供了按照第九至第十一方面的任意一个的系统LSI设计支持设备,其特征在于该设备包括用于比较限定信息和从计算装置输出的计算结果信息、以便将合适的处理单元映射给每个函数的映射装置,其中从处理单元处理的条件分支语句和循环控制语句的最佳数目、条件分支语句和循环控制语句的最佳嵌套数目、以及产生与条件分支语句和循环控制语句的循环次数有关的变量所需的最佳函数数目中所选出的多种组合是按单独的处理单元限定的。

本发明的第二十四方面提供按照第二十二至第二十四方面的任意一个的系统LSI设计支持方法,其特征在于该方法包括步骤:输入限定信息,其中从处理单元处理的条件分支语句和循环控制语句的最佳数目、条件分支语句和循环控制语句的最佳嵌套数目、以及产生与条件分支语句的条件有关的变量和与循环控制语句的循环次数有关的变量所需的最佳函数数目中所选出的多种组合是按单独的处理单元限定的;以及比较限定信息和计算结果信息,以便将合适的处理单元映射给每个函数。

按照这种配置结构,基于关于从条件分支语句和循环控制语句的数目、条件分支语句和循环控制语句的嵌套数目、以及产生与条件分支语句的条件有关的变量和与循环控制语句的循环次数有关的变量所需的函数数目中所选出的多种组合的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第二十五方面提供了按照第一至第十二方面的任意一个的系统LSI设计支持设备,其特征在于函数提取装置包括函数组合装置,用于在由函数提取装置提取的函数中任意选择出的多个函数集合中至少指定一个,并由分析装置对由函数组合装置指定的每一函数集合执行分析。

本发明的第二十六方面提供了按照第十四至第二十五方面的任意一个的系统LSI设计支持方法,该方法包括从提取的函数中任意选择的多个函数集合中指定至少一个的步骤,其特征在于该方法对每个指定的函数集合执行计算。

按照这种配置结构,基于关于互相关联的函数由同一处理单元处理的情况的系统LSI设计支持信息,将系统的功能恰当地分配给具有不同体系结构的处理单元就成为可能。

本发明的第二十七方面提供了用于存储提供给系统LSI设计支持设备的数据的数据库设备,该系统LSI设计支持设备支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该数据涉及以高级语言描述系统功能的程序,并且该数据是限定信息,其中按每个单独的处理单元限定由处理单元处理的条件分支语句的最佳数目。

按照这种配置结构,为LSI设计支持设备提供用于产生涉及条件分支语句的系统LSI设计支持信息的数据就成为可能。

本发明的第二十八方面提供了用于存储提供给系统LSI设计支持设备的数据的数据库设备,该系统LSI设计支持设备支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该数据涉及以高级语言描述系统功能的程序,并且该数据是限定信息,其中按每个单独的处理单元限定由处理单元处理的循环控制语句的最佳数目。

按照这种配置结构,为LSI设计支持设备提供用于产生涉及循环控制语句的系统LSI设计支持信息的数据就成为可能。

本发明的第二十九方面提供了用于存储提供给系统LSI设计支持设备的数据的数据库设备,该系统LSI设计支持设备支持将系统功能分配给包括具有不同体系结构的处理单元的系统LSI的设计,其特征在于该数据涉及以高级语言描述系统功能的程序,并且该数据是限定信息,其中按每个单独的处理单元限定由处理单元处理的条件分支语句和循环控制语句的最佳数目。

按照这种配置结构,为LSI设计支持设备提供用于产生涉及条件分支语句和循环控制语句的系统LSI设计支持信息的数据成为可能。

附图说明

图1是示出按照本发明实施例1的系统LSI设计支持设备的配置结构的框图;

图2是在实施例1中存储于辅助存储器的程序的描述实例;

图3是示出按照实施例1的函数的分析流程的流程图;

图4是计算结果实例的概念图表的示意图;

图5是示出按照实施例2的函数的分析流程的流程图;

图6是计算结果实例的概念图表的示意图;

图7是在实施例3中存储于辅助存储器的程序的描述实例;

图8是示出按照实施例3的函数的分析流程的流程图;

图9是计算结果实例的概念图表的示意图;

图10是在实施例4中存储于辅助存储器的程序的描述实例;

图11是示出按照实施例4的函数的分析流程的流程图;

图12是计算结果实例的概念图表的示意图;

图13是示出按照实施例5的函数的分析流程的流程图;

图14是计算结果实例的概念图表的示意图;

图15是在实施例6中存储于辅助存储器的程序的描述实例;

图16是示出按照实施例6的函数的分析流程的流程图;

图17是计算结果实例的概念图表的示意图;

图18是示出按照实施例7的函数的分析流程的流程图;

图19是计算结果实例的概念图表的示意图;

图20是示出按照本发明实施例8的系统LSI设计支持设备的配置结构框图;

图21是计算结果实例的概念图表的示意图;

图22是计算结果实例的概念图表的示意图;

图23是示出按照本发明实施例10的系统LSI设计支持设备的配置结构的框图;

图24是关于用于分配处理单元的条件分支语句的条件实例的概念图表的示意图;

图25是映射结果的概念图表的示意图;

图26是关于用于分配处理单元的循环控制语句的条件实例的概念图表的示意图;

图27是映射结果的概念图表的示意图;

图28是用于分配处理单元的条件实例的概念图表的示意图;

图29是用于分配处理单元的条件的数据项和权重因数之间的关系的概念图表的示意图;

图30是映射结果的概念图表示意图。

具体实施方式

本发明的实施例将参照附图进行描述。通过使用系统LSI设计支持设备来执行设计的系统LSI包括多个具有不同体系结构(系统LSI的配置结构未示出)的处理单元(CPU、DSP和专用逻辑电路)。

(实施例1)

图1是示出按照本发明实施例1的系统LSI设计支持设备的配置结构的框图。在图1中,计算机100包括处理器110和主存储器120。处理器110执行系统LSI设计支持设备的各种算术运算和全面控制。主存储器120存储描述了涉及系统LSI设计支持设备的运算过程的程序和数据。辅助存储器130存储要输入计算机100的数据。辅助存储器140存储从计算机100输出的数据。

以高级语言描述了部分或全部系统功能的程序132被预先存储在辅助存储器130(该存储装置未示出)中。图2是在实施例1中存储于辅助存储器的程序132的描述实例。如图2所示,该程序以C语言描述并包括多个函数。

接下来,将描述如此配置的系统LSI设计支持设备的操作。当程序132输入到计算机100中时,将以主存储器120中的函数提取部分122、分析部分124和计算部分126的顺序执行各种类型的处理。

函数提取部分122提取在程序132中描述的函数。倘若程序132如图2所示,func_A、func_B和func_C作为函数被提取。分析部分124计算每个被提取出的函数的条件分支语句的数目。

图3是示出按照实施例1的函数中的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S101)。倘若程序132如图2所示,func_A先被选择。接着,计算包含在函数中的条件分支语句的数目(步骤S102)。在图2中的func_A中,if语句作为条件分支语句并且if语句的数目为3,这些if语句包括if语句211、if语句212和if语句213。条件分支语句的数目,这里是3,被记录下来(步骤S103)。判断是否所有函数都已完成上述处理(步骤S104)。倘若没有完成,处理从步骤S101开始重复。如果已经完成,则继续执行计算部分126中的处理。

计算部分126对由分析部分124获得的条件分支语句的数目求和并产生计算结果。图4是计算结果实例的概念图表示意图。计算结果信息142被存储于辅助存储器140中。

实施例1的配置结构提供了描述系统功能的程序132的基于函数的特点。例如,获得如下设计支持信息:在上述程序实例中,func_B使用10个条件分支语句,这样在允许有效条件判断的CPU上处理该函数是合适的。

(实施例2)

下面将参照图1、2、5和6描述按照本发明实施例2的系统LSI设计支持设备。

实施例2与实施例1的不同之处在于:图1中的分析部分124也计算每个被提取出的函数的循环控制语句的数目。

图5是示出按照实施例2的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择出一个(步骤S201)。倘若程序132如图2所示,func_A先被选择。接着,计算包含在函数中的条件分支语句的数目(步骤S202)。在图2中,全部的3个if语句被计算。然后,计算包含在函数中的条件分支语句的嵌套的数目(嵌套的级数)和目标条件分支语句的数目(步骤S203)。图2的func_A中的if语句212具有在if语句211中的单级嵌套结构。于是,将单级嵌套的条件分支语句的数目计算为1,并将该数目记录下来(步骤S204)。判断是否所有函数都已完成上述处理(步骤S205)。倘若没有完成,处理从步骤S201开始重复。如果已完成,则执行计算部分126中的处理。

计算部分126对由分析部分124获得的条件分支语句的数目求和并产生计算结果。图6是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

实施例2的配置结构以不同于实施例1的配置结构的观点,提供了程序132的基于函数的特点。通常,条件分支的嵌套的级数越多,处理就会越复杂,并且使用专用逻辑电路来执行就会越困难。例如,获得如下设计支持信息:func_A在上述程序实例中使用了嵌套的条件分支语句,这样在允许有效条件判断的CPU上处理该函数是合适的。

(实施例3)

下面将参照图1、7、8和9描述按照本发明实施例3的系统LSI设计支持设备。

实施例3与实施例1和2的不同之处在于:图1的分析部分124跟踪每个被提取出的函数中的条件分支语句的条件的产生过程,并计算产生条件变量以便分析内部语法所需的函数数目。图7是实施例3中存储于辅助存储器中的程序132的描述实例。

图8是示出按照实施例3的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S301)。倘若程序132如图7所示,func_A先被选择。接着,分析经由多少函数产生与包含在函数中的条件分支语句使用的条件有关的变量(步骤S302)。假设用于图7中的条件分支语句211的变量AIN1由func_A外部的函数计算,并且假设变量AIN2作为常量由外部给出。如图7所示,变量AIN1由func_D计算,并且变量AIN1由在func_D中的两个语句711和722所描述的func_A1和func_A2产生。于是,产生AIN1所需的函数的数目为2。变量AIN2作为常量由外部给出,使得产生AIN2所需的函数的数目为0。基于这种分析,产生条件变量所需的函数的数目和变量的数目被记录下来(步骤S303)。判断是否所有函数都已完成上述处理(步骤S304)。倘若没有完成,处理从步骤S301开始重复。如果已完成,则执行计算部分126中的处理。

计算部分126对由分析部分124获得的条件分支语句的数目、产生条件变量所需的函数的数目和变量的数目进行求和并产生计算结果。图9是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

实施例3的配置结构以不同于实施例1和2的配置结构的观点,提供了程序132的基于函数的特点。通常,用来产生用于条件分支的变量的过程越多,处理就会越复杂,并且使用专用逻辑电路来执行就会越困难。例如,获得如下设计支持信息:需要2个函数来产生用在func_A中的条件分支语句的变量,这样在允许有效条件判断的CPU上处理该函数是合适的。

(实施例4)

下面将参照图1、10、11和12描述按照本发明实施例4的系统LSI设计支持设备。

实施例4与实施例1至3的不同之处在于:图1的分析部分124计算每个被提取出的函数的循环控制语句的数目。图10是在实施例4中存储于辅助存储器中的程序132的描述实例。

图11是示出按照实施例4的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S401)。倘若程序132如图10所示,func_LA先被选择。接着,计算包含在函数中的循环控制语句的数目(步骤S402)。在图10的func_LA中,for语句被用作循环控制语句并且for语句的数目为3,这些for语句是for语句1011、for语句1012和for语句1013。循环控制语句的数目,这里为3,被记录下来(步骤S403)。判断是否所有函数都已完成上述处理(步骤S404)。倘若没有完成,处理从步骤S401开始重复。如果已完成,则执行计算部分126中的处理。

计算部分126对由分析部分124获得的循环控制语句的数目求和并产生计算结果。图12是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

实施例4的配置结构提供了描述系统功能的程序132的以函数为基础的特点。例如,获得如下设计支持信息:上述程序实例中的func_LB使用10个循环控制语句,这样在允许有效循环控制的CPU上处理该函数是合适的。

(实施例5)

下面将参照图1、10、13和14描述按照本发明实施例5的系统LSI设计支持设备。

实施例5与实施例1至4的不同之处在于:图1的分析部分124还计算每个被提取出的函数的循环控制语句的嵌套数目。

图13是示出按照实施例5的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S501)。倘若程序132如图10所示,func_LA先被选择。接着,计算包含在函数中的循环控制语句的数目(步骤S502)。在图10中,计算全部的3个for语句。然后,计算包含在函数中的循环控制语句的嵌套数目(嵌套的级数)以及目标循环控制语句的数目(步骤S503)。图10中的func_LA的for语句1012具有在for语句1011中的单级嵌套结构。于是,单级嵌套的循环控制语句的数目就被计算为1,并将该数目记录下来(步骤S504)。判断是否所有函数都已完成上述处理(步骤S505)。倘若没有完成,处理从步骤S501开始重复。如果已完成,则执行计算部分126中的处理。

计算部分126对由分析部分124获得的循环控制语句的数目以及嵌套的数目求和并产生计算结果。图14是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

实施例5的配置结构以不同于实施例4的配置结构的观点,提供了程序132的基于函数的特点。通常,循环控制语句的嵌套的级数越多,处理就会越复杂,并且使用专用逻辑电路来执行就会越困难。例如,获得如下设计支持信息:在上述程序实例中,func_LA使用嵌套的循环控制语句,这样在系统LSI中的DSP上处理该函数是合适的。

(实施例6)

下面将参照图1、15、16和17描述按照本发明实施例6的系统LSI设计支持设备。

实施例6与实施例1至5的不同之处在于:图1中的分析部分124跟踪变量的产生过程,并计算产生条件变量所需的函数的数目以便分析内部语法,所述变量用于指示每个被提取出的函数中的循环控制语句的循环次数。图15是在实施例6中存储于辅助存储器中的程序132的描述实例。

图16是示出按照实施例6的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S601)。倘若程序132如图15所示,func_LA先被选择。接着,分析经由多少函数产生与包含在函数中的循环控制语句的循环次数有关的变量(步骤S602)。假设用于指示图15中的循环控制语句的循环次数的变量AIN1在func_LD中计算,并且假设变量AIN1由在func_LD中的两个语句1511和1512描述的func_LA1和func_LA2产生。这样,产生AIN1所需的函数的数目就是2。基于这种分析,产生条件变量所需的函数的数目和变量的数目被记录下来(步骤S603)。判断是否所有函数都已完成上述处理(步骤S604)。倘若没有完成,处理从步骤S601开始重复。如果已完成,则继续执行计算部分126中的处理。

计算部分126对由分析部分124获得的循环控制语句的数目、产生条件变量所需的函数的数目和变量的数目求和,并产生计算结果。图17是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

实施例6的配置结构以不同于实施例5的观点,提供了程序132的基于函数的特点。通常,用于产生用来指示循环控制中的循环次数的变量的过程越多,处理就会越复杂,并且使用专用逻辑电路来执行就会越困难。例如,获得如下设计支持信息:需要2个函数来产生用在func_LA中的循环控制语句的变量,这样在系统LSI中集成的DSP上处理该函数是合适的。

(实施例7)

下面将参照图1、18和19描述按照本发明的实施例7的系统LSI设计支持设备。

在实施例7中,对于每个被提取出的函数,图1的分析部分124计算条件分支语句的数目、循环控制语句的数目、条件分支语句中的嵌套数目和循环控制语句的嵌套数目。而且,分析部分124跟踪条件分支语句的条件的产生过程以及循环控制语句的循环次数,并计算产生条件分支语句中的变量所需的函数的数目以及产生循环控制语句中的变量所需的函数数目,以便分析内部语法。假设按照本实施例的程序132是包含图2、7、10和15所示的细节的程序。

图18是示出按照实施例7的函数的分析流程的流程图。分析部分124在由函数提取部分122提取的函数中选择一个(步骤S701)。然后分析部分124计算包含在函数中的条件分支语句的数目(步骤S702),并记录条件分支语句的数目(步骤S703)。接着,分析部分124计算包含在函数中的条件分支语句的嵌套数目(嵌套的级数)以及目标条件分支语句的数目(步骤S704),然后记录嵌套的数目(步骤S705)。接着,分析部分124跟踪经由多少函数来产生与包含在该函数中的条件分支语句的条件有关的变量(步骤S706),并记录产生这些条件变量所需的函数的数目(步骤S707)。

然后分析部分124计算包含在函数中的循环控制语句的数目(步骤S708),并记录循环控制语句的数目(步骤S709)。接着,分析部分124计算包含在函数中的循环控制语句的嵌套的数目(嵌套的级数)以及目标循环控制语句的数目(步骤S710),然后记录嵌套的数目(步骤S711)。接着,分析部分124跟踪经由多少函数来产生与包含在该函数中的循环控制语句中所用的循环次数有关的变量(步骤S712),并记录产生这些条件变量所需的函数的数目(步骤S713)。判断是否所有函数都已完成上述处理(步骤S714)。倘若没有完成,处理从步骤S701开始重复。如果已完成,则执行计算部分126中的处理。

计算部分126对条件分支语句的数目和循环控制语句的数目、条件分支语句的嵌套数目和循环控制语句的嵌套数目、以及在条件分支语句中产生变量所需的函数数目和在循环控制语句中产生变量所需的函数数目进行求和,并产生计算结果。图19是计算结果实例的概念图表示意图。计算结果信息142被存储于辅助存储器140中。

实施例7的配置结构以实施例1至6的观点,提供了程序132的基于函数的特点,从而提供了全面的设计支持信息。

(实施例8)

下面将参照图7、8、20和21描述按照本发明的实施例8的系统LSI设计支持设备。

实施例8与实施例1至7不同之处在于:分析是对多函数的“集合”进行,而不是跟踪每个被提取出的函数的条件分支语句的条件的产生过程。图20是示出按照本发明实施例8的系统LSI设计支持设备的配置结构的框图。辅助存储器130存储程序132和文件2032。文件2032具有由多个任意选出的函数所组成的“集合”的列表。函数提取部分2122提取在程序132中描述的函数并参考文件2032中指定的“集合”列表来选择特定的函数。随后的分析及计算对“集合”执行而不是在单个函数上执行。

下面将描述具有上述配置结构的系统LSI设计支持设备的操作。将按照本实施例的程序132描述为包括如图7所示的细节的程序。

函数提取部分2122提取在程序132中描述的函数并参考文件2032。在文件2032中,在程序132中互相紧密关联的多个函数由设计者预先指定为一个“集合”。例如,图7的程序中的func_A和产生由func_A使用的变量AIN1的func_D互相紧密关联,使得它们能理想地由同样的处理单元处理。在这种情况下,给文件2032指定func_A和func_D作为要被分析的函数的“集合”,允许同时选择这两个函数并且在两个函数上执行随后的处理。

分析部分124执行与图8的流程图相同的分析。这里,条件分支语句的数目和在两个函数func_A和func_B(或指定的“集合”)中产生条件变量所需的函数的数目被计算。

计算部分126对由分析部分124获得的条件分支语句的数目和产生条件变量所需的函数的数目求和并产生计算结果。图21是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

从上述描述可知,为了在原来指定的函数的“集合”上执行关于条件分支语句的分析,例如,互相紧密关联的func_A和func_D的分析由单独的处理单元执行被预先排除。这样获得了涉及系统LSI设计的适当的设计支持信息。

(实施例9)

下面将参照图15、16、20和22描述按照本发明的实施例9的系统LSI设计支持设备。

实施例9与实施例1至8的不同之处在于:分析是在多函数的“集合”之上进行而不是跟踪每个被提取出的函数的循环控制语句的循环次数的产生过程,以及由图20中的分析部分124进行的分析是涉及循环控制语句的处理而不是涉及条件分支语句的处理。

下面将描述具有上述配置结构的系统LSI设计支持设备的操作。将按照本实施例的程序132描述作为包括如图15所示的细节的程序。

函数提取部分2122提取在程序132中描述的函数并参考文件2032。在文件2032中,在程序132中互相紧密关联的多个函数由设计者预先指定为一个“集合”。例如,图15的程序中的func_LA和产生由func_LA使用的变量AIN1的func_LD互相紧密关联,于是它们能理想地由同样的处理单元处理。在这种情况下,给文件2032指定func_A和func_D作为被分析的函数的“集合”,允许同时选择这两个函数并且在两个函数上执行随后的处理。

分析部分124执行与图16的流程图相同的分析。这里,循环控制语句的数目和在两个函数func_LA和func_LB(或指定的“集合”)中产生循环次数所需的函数的数目被计算。

计算部分126对由分析部分124获得的循环控制语句的数目和产生循环次数所需的函数的数目求和并产生计算结果。图22是计算结果实例的概念图表的示意图。计算结果信息142被存储于辅助存储器140中。

从上述描述可知,为了在预先指定的函数的“集合”上执行关于条件分支语句的分析,例如,互相紧密关联的func_LA和func_LD的分析由单独的处理单元被预先排除。这样获得了涉及系统LSI设计的适当的设计支持信息。

(实施例10)

下面将参照图2、3、4、23、24和25描述按照本发明实施例10的系统LSI设计支持设备。

实施例10与实施例1至9的不同之处在于:主存储器120还包括映射部分2328,用于基于描述了涉及用于分配处理单元的函数的条件的信息,将适当的处理单元映射给每个函数。图23是示出按照本发明实施例10的系统LSI设计支持设备的配置结构的框图。辅助存储器130存储了程序132以及描述涉及用于分配处理单元的函数的条件的信息(或库)2332。图24是关于用于分配处理单元的条件分支语句的条件实例的概念图表的示意图。

下面将描述具有上述配置结构的系统LSI设计支持设备的操作。将按照本实施例的程序132描述为包括如图2所示的细节的程序。

函数提取部分122提取在程序132中描述的函数。分析部分124计算每个被提取出的函数的条件分支语句的数目,与图3所示的流程图相同。计算部分126对由分析部分124获得的条件分支语句的数目求和并产生如图4所示的计算结果。

映射部分2328参考库2332,以基于所获得的计算结果将合适的处理单元映射给每个函数。例如,如图4所示,func_A具有3个条件分支语句。参考库2332(图24),可知与3个条件分支语句相应的处理单元是DSP。换句话说,能够获得func_A在DSP上足够处理的设计支持信息。图25是映射结果的概念图表的示意图。这样,合适的处理单元就被映射给在程序132中使用的每个函数。映射结果信息2342被存储于辅助存储器140中。

如上所述,从处理条件分支语句的观点,通过将适当的处理单元映射给包含在程序132中的每个函数,就可能获得涉及系统LSI设计的适当的设计支持信息。

(实施例11)

下面将参照图10、11、12、23、26和27描述按照本发明实施例11的系统LSI设计支持设备。

实施例11与实施例1至10的不同之处在于:主存储器120还包括映射部分2328,用于基于描述了与分配处理单元的函数相关的条件的信息,将适当的处理单元映射给每个函数。实施例11与实施例10的不同之处在于库2332描述了关于循环控制语句的数目而不是条件分支语句的数目的条件。图26是关于用于分配处理单元的循环控制语句的条件实例的概念图表的示意图。

下面将描述具有上述配置结构的系统LSI设计支持设备的操作。按照该本施例的程序132描述为包括如图10所示的细节的程序。

函数提取部分122提取在程序132中描述的函数。分析部分124计算每个被提取出的函数的循环控制语句的数目,与图11所示的流程图相同。计算部分126对由分析部分124获得的循环控制语句的数目求和并产生如图12所示的计算结果。

映射部分2328参考库2332,以基于所获得的计算结果将合适的处理单元映射给每个函数。例如,如图12所示,func_B具有10个循环控制语句。参考库2332(图26),可知与10个循环控制语句相应的处理单元是DSP。换句话说,能够获得func_B在DSP上足够处理的设计支持信息。图27是映射结果的概念图表的示意图。这样,合适的处理单元就被映射给在程序132中使用的每个函数。映射结果信息2342被存储于辅助存储器140中。

如上所述,从处理循环控制语句的角度看,通过将合适的处理单元映射给包含在程序132中的每个函数,就可以获得涉及系统LSI设计的适当的设计支持信息。

(实施例12)

下面将参照图18、19、23、28、29和30描述按照本发明实施例12的系统LSI设计支持设备。

实施例12与实施例1至11的不同之处在于:图23中的库2332包含了关于条件分支语句的数目和循环控制语句的数目以及条件分支语句和循环控制语句的嵌套数目、以及产生条件变量所需的函数的数目的条件。图28是用于分配处理单元的条件实例的概念图表的示意图。

下面将描述具有上述配置结构的系统LSI设计支持设备的操作。将按照本实施例的程序132描述作为包括如图2、7、10和15所示的细节的程序。

函数提取部分122提取在程序132中描述的函数。与图18所示的流程图相同,分析部分124计算每个被提取出的函数的条件分支语句的数目和循环控制语句的数目、条件分支语句的嵌套数目和循环控制语句的嵌套数目、以及产生用于条件分支语句的变量和循环控制语句的变量所需的函数数目。计算部分126对由分析部分124获得的条件分支语句的数目求和并产生如图19所示的计算结果。

映射部分2328参考库2332,以基于所获得的计算结果将合适的处理单元映射给每个函数。

某些函数可同时包括条件分支语句和循环控制语句。映射给这种函数的处理单元可由所包括的条件分支语句和循环控制语句的细节决定。例如,倘若函数包含5个条件分支语句和1个具有单一嵌套级的条件分支语句,那么较合适的处理单元是DSP。倘若该函数还包含4个循环控制语句,则相应较合适的处理单元就是CPU。

在该实施例中,将权重因数赋予用于分配处理单元的每个条件项(图28),并且将获得最高分的处理单元被选择为最佳的处理单元。

图29是用于分配处理单元的条件项与权重因数之间的关系的概念图表的示意图。这个信息也包括在库2332中。下面将描述怎样为func_A确定处理单元。K在图29中表示分配给每个项的权重因数。如图29所示,在图29中画圈的项适用于func_A。为适用的项加上权重因数,对CPU得到的权重因数值以如下方式计算:1+2=3用于条件分支语句的嵌套数目,1+3=4用于变量的产生,1+1=2用于循环控制语句的嵌套数目,1+1=2用于表示循环次数的变量的产生,这样为3+2+2+1=11。对DSP得到的权重因数值以如下方式计算:6用于条件分支语句的数目,2+2=4用于条件分支语句的嵌套数目,2+2=4用于变量的产生,1+2+3=6用于循环控制语句的循环次数的变量的产生,这样为6+4+4+6=20。对专用逻辑电路得到的权重因数值以如下方式计算:1用于条件分支语句的嵌套的数目,6用于循环控制语句的数目,2用于嵌套的数目,2用于循环次数的变量的产生,这样为1+1+6+2+2=12。

比较每个处理的因数呈现出CPU=11、DSP=20、专用逻辑电路=11。这样确定了DSP是最佳处理单元。这使得将其它函数映射到处理单元成为可能。图30是映射结果实例的概念图表的示意图。

这样,就将合适的处理单元映射给用在程序132中的每个函数。映射结果信息2342被存储于辅助存储器140中。

如上所述,基于条件分支语句和循环控制语句的详细使用形式,通过将适当的处理单元映射给包含在程序132中的每个函数,就可以获得涉及系统LSI设计的适当设计支持信息。

在前述的实施例中,库2332中的要存储于辅助存储器130中的信息可以不局限于图24、26和28所示的值,而是可以由设计者任意指定。这些值可以被更新。

虽然在前述的实施例中,以C语言写成的if语句被用作条件分支语句,但也可使用如switch语句的另一条件分支语句。相似地,虽然以C语言写成的if语句可作为循环控制语句,但也可使用如while语句的另一循环控制语句。

虽然在前述的实施例中,辅助存储器130和140都安置在计算机100的外部,但它们也可以安置在计算机100的内部。库2332可以作为数据库与存储于辅助存储器130中的信息分开存储,并且可以通过电信线路连接来允许从多个计算机访问库2332中的信息。

描述了系统LSI设计支持设备的功能的程序不局限于前述实施例所举的实例。

如上文所述,按照本发明,通过对每个包含在程序里的每个函数的条件分支语句的数目和循环控制语句的数目计算并求和,就使得获得适当的用于对系统LSI中集成的处理单元恰当地分配系统功能的设计支持信息成为可能,其中所述程序以高级语言描述了部分或全部的系统功能。

尽管已经参考附图并利用实例详细描述了本发明,但对于本领域的技术人员来说,各种变化和修改是明显的。例如,尽管实施例中的计算部分简单地对计算结果求和,但注意到本发明的计算部分可以对计算结果进行条件求和或其它计算,以获得计算结果。因此,除非这些变化和修改脱离了权利要求的范围,否则它们均应被视为被包括在其中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号