并行逻辑模拟系统中的静态划分与分配相结合的方法

文档序号:6389468阅读:140来源:国知局
专利名称:并行逻辑模拟系统中的静态划分与分配相结合的方法
技术领域
本发明涉及一种用于实时验证大规模集成电路设计正确性的模拟系统软件,具体涉及的是并行逻辑模拟系统中的静态划分与分配相结合的方法。
背景技术
模拟是使用硬件描述语言设计数字电路中非常关键的一个步骤,通过软件模拟可以实时反馈电路设计结果,使用户及时发现电路设计中存在的问题,修改电路的设计方案,从而可避免大规模集成电路投产制造中的损失。随着集成电路设计的复杂程度越来越高,原有传统串行模拟器在模拟效率上难以适应规模不断扩大的集成电路的设计要求。模拟成为大规模集成电路设计的一个瓶颈。现有技术的并行模拟通过分散模拟工作量到并行机或者网络的多个结点来减少模拟时间,被视为用来解决模拟速度问题的有效途径之一。但是,现有技术的并行逻辑模拟性能受多种因素影响,其中,逻辑电路划分是直接影响并行逻辑模拟性能的主要因素,研究出一个好的逻辑电路划分方法是提高并行模拟系统性能的必要条件。
请参见图1所示,现有技术的并行逻辑模拟系统中的静态划分方法,第一步,用硬件描述语言设计电路;第二步,将描述的电路源代码进行编译;第三步,通过编译将源代码生成中间代码;第四步,调用划分算法库的算法,对电路进行静态划分,按电路的结构确定划分的子图个数;第五步,划分后生成电路的中间代码;第六步,按照一定的分配方法将该中间代码进行分配,生成目标代码;第七步,将目标代码生成可执行文件;第八步,在多台计算机上分别运行各个子电路的可执行文件,在运行过程中输入标准的测试数据,并调用并行模拟库中的函数,模拟计算;第九步,通过计算机模拟大规模集成电路运行后,输出模拟电路的结果数据。
在上述现有技术的并行逻辑模拟系统中的进行静态划分算法时,一般不考虑分配情况,只是根据电路本身的并行特性将它划分成适当的子电路,到分配阶段再来考虑每个计算机容纳划分的子电路个数,而这正是导致静态划分负载平衡性差的重要原因。并且,如果划分的子电路个数少于需模拟运行工作的计算机的个数,还要将它重新划分。另外,当在这种划分方案中同时进行几种划分算法时,换一种划分算法就要重新编译一次,从而生成划分后的目标代码,这样,大大的浪费了资源。
在现有技术的并行逻辑模拟系统中有若干种逻辑电路的划分算法,这些划分算法从并发性、通信和负载平衡等不同的方面来实现,其中一种并发保存划分算法,首先,将电路划分为若干子图,使每个子图都有一个输入结点,且从这个输入结点能够到达这个子图中的其他任意结点,并且各个子图之间的边的权为最小,即使各个子图之间的通讯量最小。其次,将结点从1到V(V为原始电路图的结点个数)编号,同一个子图中的结点必须按顺序编号。最后,将顺序编号的结点分配到同一计算机中,根据结点的大小初步平衡计算机的工作负载。这种算法分三步来分别达到最大化并行性、最小化通信量和平衡负载的目的,但是该种算法只针对无环电路图进行划分,而对于有环电路图,必须对它进行特殊的处理后才能划分,划分算法十分复杂。
另一种扇入/扇出锥划分算法,扇入\扇出锥划分算法,首先,将电路中的每一个结点建立扇入\扇出锥形,一个逻辑门的扇出锥形是受该结点输出影响的所有逻辑门的集合。同样的,一个逻辑门的扇入锥形是对于该逻辑门输入信号有影响的所有逻辑门的集合。建立了各个逻辑门的扇入\扇出锥形之后,初始输入结点被平均地分配到各个划分的子电路中,而剩下的没有被分配的结点就被随机地分配到和它有最大的锥形交叠的划分的字电路中。这种划分算法对于减少通信负载有很好的效果,可是负载平衡度不够好,并且复杂度较大。
还有一种随机划分算法,这种划分算法以随机负载平衡的方式来分配电路的结点,随机划分算法是对逻辑电路进划分的最简单的一种算法,在随机划分算法中,电路中的元件被随机地分配到各个计算机中,该算法通过将数量大致相等的元件分配在不同的子图中来实现计算机模拟工作量的负载平衡。运用随机划分算法能够达到较理想的模拟工作负载平衡效果,但是,该算法产生的划分结果在并行模拟过程中计算机之间的通讯将成为并行模拟过程中一个主要的性能瓶颈,因而对于大规模集成电路的并行模拟显然是不合适的。随机划分的缺陷是增加了计算机之间的通讯量。

发明内容
本发明的目的在于解决现有技术并行逻辑模拟系统中由于将电路的静态划分与结点分配分别运行,而造成并行逻辑模拟性能存在的多种缺陷,而本发明提出了一种并行逻辑模拟系统中的静态划分与分配相结合的方法,它可以使多台计算机在并行运行中负载平衡,节省资源,并能有效提高并行逻辑模拟系统的性能和模拟效率。
为了解决现有技术并行逻辑模拟系统中存在的缺陷,本发明的技术方案是这样实现的一种并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于包括以下步骤,步骤1,用硬件描述语言设计电路,生成该电路的源代码;步骤2,编译源代码,通过编译模块编译电路的源代码;步骤3,生成中间代码,通过编译将源代码生成中间代码,用内部中间格式用IIR表示;步骤4,静态划分与分配,分析中间代码生成一张完整的电路图;对该电路划分为若干个子图,并分配到相对应的若干台计算机中运行;步骤5,模拟计算,在多台计算机上分别运行各个子电路的可执行文件,在运行过程中输入标准的测试数据,并调用并行模拟库中的函数进行模拟计算;步骤6,输出结果数据,模拟大规模集成电路运行后,输出模拟电路的结果数据。上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4中包括,4.1确立电路,初始化电路中各元件,并对电路中的各元件命名标识号;确定各元件之间的信号连接方式;生成完整电路图,图中的元件用结点Vi表示,信号用边Ei表示;4.2设计扇出权值划分算法,用研究出的扇出权值划分算法,根据设定的计算机台数,对电路进行划分与分配,生成可执行文件。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4.2中,该扇出权值的划分算法包括,4.2.1标记电路中所有结点为未划分;4.2.2划分电路的初始输入结点,标记为已划分;4.2.3划分电路中的非初始输入结点,也标记为已划分;4.2.4将所有子图中的各结点分配到相应的若干台计算机中运行。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4.2.3中包括,步骤4.2.3.1,计算电路中结点A与结点B之间的权值,该结点A与结点B之间的权值为结点A与结点B之间信号的数目,其计算公式如下RAB=∑EAB上式中RAB表示A点与B点之间权值;EAB表示结点A与B点之间的信号。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4.2.3中包括,步骤4.2.3.2,电路中一个未被划分的结点C与一个子图G之间的权值,即为这个结点C与该子图G内所有结点权值的和,其计算公式如下RCG=∑RCD上式中D表示G内的任一结点;RCG表示结点C与子图G之间的权值;RCD表示结点C与结点D之间的权值。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4.2.3中包括,步骤4.2.3.3通过比较模块,比较结点C与每个子图G之间权值的大小,通过比较模块找到结点C有最大权值的子图,将结点C划分到该子图中。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,在所述的步骤4.2.3.3中,如果同时有两个以上的子图与结点C有相同的权值,比较该两个子图内的结点数,将结点划分到子图内部结点数最少的一个子图中去。
上述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其中,所述的步骤4.2.3中包括,步骤4.2.3.4,按照子图中的结点分布,将同一子图中的结点分配到同一计算机中运行,通过消息处理接口进行信息通讯。
本发明并行逻辑模拟静态划分与分配相结合的划分方法由于采用了上述的技术方案,使之与现有技术相比,具有以下的优点和积极效果1、提高多台计算机在并行运行中的负载均匀平衡本发明并行逻辑模拟系统中的静态划分与分配相结合的方法由于在静态划分电路时与分配设定数量的计算机执行任务相结合进行,可以有效的解决计算机的负载平衡。
2、节省资源本发明并行逻辑模拟系统中的静态划分与分配相结合的方法由于在静态划分与分配前通过编译模块编译了电路的源代码,当扇出权值划分算法在,模拟执行前夕调用,不用多次编译,大大节省资源。
3、提高了并行逻辑模拟系统运行效率本发明并行逻辑模拟系统中的静态划分与分配相结合的划分方法由于在静态划分与分配时设有扇出权值划分算法,由于该扇出权值划分算法根据计算机运行的台数,确定划分子电路的个数,该算法的效率得到有效提高,从而有效的提高了并行逻辑模拟系统的运行效率,缩短了运行时间。
4、提高了并行逻辑模拟系统的性能本发明中的该扇出权值划分算法由设定的计算机台数,将电路划分与分配成与设定的计算机台数相对应的子电路的可执行文件,简化了划分时间的复杂度,实现并行逻辑模拟系统的通讯量最小化和并行性的最大化的优良性能。
5、节约材料资源,降低生产成本通过本发明模拟仿真设计大规模电路,并经模拟运行验证,可获得最优化的设计电路,可避免有缺陷的电路投产制造,从而可节约材料资源,降低生产成本。


通过以下对本发明并行逻辑模拟静态划分与分配相结合的划分方法的实例结合其附图的描述,可以进一步理解本发明的目的、具体结构特征和优点。其中,附图为图1是现有技术的并行逻辑模拟静态划分方法的框图。
图2是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法框图。
图3是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法中的扇出权值划分算法程序流程图。
图4是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法采用的测试基准电路的基本特征表。
图5是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法模拟执行时间的比较图。
图6是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法模拟执行时间比较表。
图7是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法的划分时间比较表。
图8是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路模拟运行中通讯量分布比较图。
图9是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路在四台计算机上并行运行时工作负载分布比较图。
图10是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路在四台计算机上并行运行时的回退次数比较图。
具体实施例方式
本实施例中,本发明并行逻辑模拟系统中的静态划分与分配相结合的方法的实验,在上海大学高性能计算机系统SU-HPCS,即“自强2000”上运行,操作系统为RedHat7.3,采用每端口数据传输率为1.28Gbps的高速互联网络,使用了MPICH作为消息传递的通讯机制,实验框架采用了用于静态划分与分配相结合的方法的并行模拟器,并设定在四台计算机上并行逻辑模拟运行。请配合参见图4所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法采用的测试基准电路的基本特征表,在图4的测试基准电路的基本特征表中的“门数”为该测试基准电路中元件的个数。本实验中,采用ISCAS’89逻辑测试基准电路中的S5738、S6669、S9234-1三个电路作为验证、评价本发明并行逻辑模拟系统中的静态划分与分配相结合方法的扇出权值划分算法与现有技术的随机划分算法、扇出锥划分算法、并行性保存划分算法的性能,在每项实验项目中重复做5次,取其平均值作为所有的特征的代表值。请参见图2、图3所示,并行逻辑模拟系统中的静态划分与分配相结合的方法,包括以下步骤,其特点是,步骤1,用硬件描述语言设计电路,生成该电路的源代码;步骤2,编译源代码,通过编译模块编译电路的源代码;步骤3,生成中间代码,通过编译将源代码生成中间代码,用内部中间格式用IIR表示;步骤4,静态划分与分配,分析中间代码生成一张完整的电路图;对该电路划分为若干个子图,并分配到相对应的若干台计算机中运行;在所述的步骤4静态划分与分配中包括,4.1确立电路,初始化电路中各元件,并对电路中的各元件命名标识号;确定各元件之间的信号连接方式;生成完整电路图,图中的元件用结点Vi表示,信号用边Ei表示;4.2设计扇出权值划分算法,用研究出的扇出权值划分算法,根据设定的计算机台数,对电路进行划分与分配,生成可执行文件;在所述的步骤4.2中,该扇出权值的划分算法包括,4.2.1标记电路中所有结点为未划分;4.2.2划分电路的初始输入结点,标记为已划分;4.2.3划分电路中的非初始输入结点,也标记为已划分;
在所述的步骤4.2.3中包括,4.2.3.1,计算电路中结点A与结点B之间的权值,该结点A与结点B之间的权值为结点A与结点B之间信号的数目,其计算公式如下RAB=∑EAB上式中RAB表示A点与B点之间权值,EAB表示结点A与B点之间的信号;4.2.3.2,电路中一个未被划分的结点C与一个子图G之间的权值;即为这个结点C与该子图G内所有结点权值的和,其计算公式如下RCG=∑RCD上式中D表示G内的任一结点,RCG表示结点C与子图G之间的权值,RCD表示结点C与结点D之间的权值;4.2.3.3,通过比较模块,比较结点C与每个子图G之间权值的大小,通过比较模块找到结点C有最大权值的子图,将结点C划分到该子图中。
在所述的步骤4.2.3.3中如果同时有两个以上的子图与结点C有相同的权值,比较该两个子图内的结点数,将结点划分到子图内部结点数最少的一个子图中去。依此类推,直到所有的结点都被划分完为止;4.2.3.4,按照子图中的结点分布,将同一子图中的结点分配到同一计算机中运行,通过消息处理接口进行信息通讯;4.2.4将若干个子图中的各结点分配到相应的若干台计算机中运行。
步骤5,模拟计算,在多台计算机上分别运行各个子电路的可执行文件,在运行过程中输入标准的测试数据,并调用并行模拟库中的函数进行模拟计算;步骤6,输出结果数据,模拟大规模集成电路运行后,输出模拟电路的结果数据。
请参见图5所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法模拟执行时间的比较图。图中,模拟电路的每个结点由2台计算机运行,从图中可以看出在6个计算机以下运行时,扇出权值划分算法的模拟执行时间比其他几个算法都要短,第8个计算机运行时,也只有并行性保存划分算法的模拟时间稍微占优势。扇出权值划分算法基本趋势是时间减少,但是随机划分算法和扇出锥划分算法分别在6个计算机和4个计算机时,时间反而增加了。
请参见图6所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法模拟执行时间比较表。该表中“*”表示测试时内存溢出导致没有结果(由于条件的原因,后两个测试向量只给出了4个计算机时的模拟时间)。从该表中可以看出并行运行的模拟执行时间普遍比串行模拟执行时间要短,并且,基本上都是随着计算机并行个数的增加,模拟执行时间减少。并经实验,本发明的扇出权值划分算法的模拟执行时间比现有技术的几种划分算法模拟执行时间短。说明划分算法的好坏能够影响模拟性能。
请参见图7所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法的划分时间比较表,经实验验证,本发明并行逻辑模拟系统中的静态划分与分配相结合的方法的扇出权值划分算法的划分时间最短。
请参见图8所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路模拟运行中通讯量分布比较图,在该图中,通信量是按照各个计算机之间的互相通信的消息的数目来计算的。在采用同一测试基准电路S5378,本发明并行逻辑模拟系统中的静态划分与分配相结合的方法的扇出权值划分算的通讯量扇出权值划分算法在6~8个计算机时减少了通信量。说明其在划分时按照结点之间的权值进行划分起到了较好的作用。
请参见图9所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路在四台计算机上并行运行时工作负载分布比较图。测试基准电路S5378在几种划分算法下用4个计算机的工作负载分布情况,扇出权值划分算法由于在划分开始就考虑了负载平衡方面的问题,经在四台计算机上并行运行验证,负载平衡度最均匀。并行性保存划分算法的最后一个步骤就是考虑如何平衡负载,所以它在这方面也做的比较好。扇出锥划分算法着重与考虑减少通信量的问题而忽略了负载平衡。
请参见图10所示,是本发明并行逻辑模拟系统中的静态划分与分配相结合的方法与现有技术的几种划分算法采用同一测试基准电路在四台计算机上并行运行时的回退次数比较图。在本发明的执行程序中,如果发生因果关系错误,则会产生回退,回退到没有错误的那一点,并重新开始执行,这种回退极大的影响了模拟执行的时间。所以,回退次数越少,算法的性能就越好。从图中可以看出,扇出锥划分算法的回退次数最多,而扇出权值划分算法的回退次数最少,说明它产生的因果关系错误次数最少。
综上所述,从上面的实验结果比较可知随机划分算法由于带有随机性,其性能不是很稳定,划分的效果时好时坏;扇出锥划分算法于对于负载平衡考虑不周,影响了划分的性能;并行性保存划分算法由于本身复杂度较大,不太适合静态划分与分配相结合的方法;在本发明的实验中,本发明的扇出权值划分算法是在静态划分与分配相结合的方案的基础上提出的,在多台计算机并行运行时,达到了负载平衡、节省资源、运行速度快、运行时的回退次数少、通讯量小的效果,能有效提高并行逻辑模拟系统的性能。因此,本发明并行逻辑模拟系统中的静态划分与分配相结合的方法优于现有技术的其他三种方法。
权利要求
1.一种并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于包括以下步骤步骤1,用硬件描述语言设计电路,生成该电路的源代码;步骤2,编译源代码,通过编译模块编译电路的源代码;步骤3,生成中间代码,通过编译将源代码生成中间代码,用内部中间格式用IIR表示;步骤4,静态划分与分配,分析中间代码生成一张完整的电路图;对该电路划分为若干个子图,并分配到相对应的若干台计算机中运行;步骤5,模拟计算,在多台计算机上分别运行可执行文件,在运行过程中输入标准的测试数据,并调用并行模拟库中的函数进行模拟计算;步骤6,输出结果数据,模拟大规模集成电路运行后,输出模拟电路的结果数据。
2.根据权利要求1所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4中包括,4.1确立电路,初始化电路中各元件,并对电路中的各元件命名标识号;确定各元件之间的信号连接方式;生成完整电路图,图中的元件用结点Vi表示,信号用边Ei表示;4.2设计扇出权值划分算法,用研究出的扇出权值划分算法,根据设定的计算机台数,对电路进行划分与分配,生成可执行文件。
3.根据权利要求2所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4.2中,该扇出权值的划分算法包括,4.2.1标记电路中所有结点为未划分;4.2.2划分电路的初始输入结点,标记为已划分;4.2.3划分电路中的非初始输入结点,也标记为已划分;4.2.4将所有子图中的各结点分配到相应的计算机中运行。
4.根据权利要求3所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4.2.3中包括,步骤4.2.3.1,计算电路中结点A与结点B之间的权值,该结点A与结点B之间的权值为结点A与结点B之间信号的数目,其计算公式如下RAB=∑EAB上式中RAB表示A点与B点之间权值、EAB表示结点A与B点之间的信号。
5.根据权利要求3所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4.2.3中包括,步骤4.2.3.2,电路中一个未被划分的结点C与一个子图G之间的权值,即为这个结点C与该子图G内所有结点权值的和,其计算公式如下RCG=∑RCD上式中D表示G内的任一结点;RCG表示结点C与子图G之间的权值;RCD表示结点C与结点D之间的权值。
6.根据权利要求3所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4.2.3中包括,步骤4.2.3.3通过比较模块,比较结点C与每个子图G之间权值的大小,通过比较模块找到结点C有最大权值的子图,将结点C划分到该子图中。
7.根据权利要求6所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于在所述的步骤4.2.3.3中,如果同时有两个以上的子图与结点C有相同的权值,比较该两个子图内的结点数,将结点划分到子图内部结点数最少的一个子图中去。
8.根据权利要求3所述的并行逻辑模拟系统中的静态划分与分配相结合的方法,其特征在于所述的步骤4.2.3中包括,步骤4.2.3.4,按照子图中的结点分布,将同一子图中的结点分配到同一计算机中运行,通过消息处理接口进行信息通讯。
全文摘要
本发明涉及一种并行逻辑模拟系统中的静态划分与分配相结合的方法,其特点是包括以下步骤,步骤1用硬件描述语言设计电路,生成该电路的源代码;步骤2将描述的电路源代码进行编译;步骤3生成中间代码,通过编译将源代码生成中间代码;步骤4分析中间代码生成一张完整的电路图;对该电路图划分为若干个子图,并分配到相对应的若干台计算机中运行;步骤5在多台计算机上分别运行可执行文件,步骤6输出模拟电路的结果数据。本发明的方法在多台计算机上并行运行时,达到了负载平衡、节省资源、运行速度快、运行时的回退次数少、通讯量小的效果,能有效提高并行逻辑模拟系统的运行效率和性能。
文档编号G06F17/50GK1560770SQ20041001656
公开日2005年1月5日 申请日期2004年2月26日 优先权日2004年2月26日
发明者吴悦, 简玲, 杨洪斌, 刘宗田, 吴 悦 申请人:上海大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1