论文部分内容阅读
逻辑模拟是EDA软件的重要组成部分,是用来检验电路设计正确性的重要工具。随着数字电路规模的不断增加,逻辑模拟需要消耗越来越多的时间。逻辑模拟的高耗时性成为IC设计的一个瓶颈,增加了开发成本。为了降低模拟时间,我们对基于集群的并行逻辑模拟算法和相应的非循环电路划分算法进行了研究。事件驱动算法是串行电路模拟的主要算法,我们以此为基础,研究了基于MPI消息通讯的并行逻辑模拟算法。要对电路进行并行逻辑模拟,面临一系列的挑战。首先是同步协议的选择,在分析和比较了保守协议和乐观协议之后,我们选择了保守协议作为进程同步的基本协议。另外的一个难点是如何解决死锁。我们采用流水线技术来避免死锁的产生,这样就大大减小了编写并行程序的难度。在性能方面,我们采用消息缓冲机制和非阻塞通讯来减小通讯开销,最大程度的重叠通讯和计算,提高并行性能。电路划分是另外一个研究重点。为了避免死锁,使得并行模拟类似流水线一样进行,我们要求电路划分是非循环的。我们用有向图的理论给出了电路的数学描述,并介绍了电路划分的定义,然后给出了非循环划分的定义。在最大自由扇出锥(MFFC)的基础之上,我们提出了无输出循环聚集(NOCYC)的概念,这样就可以对存在回路的电路网络进行聚集识别。这些是我们进行电路划分的理论基础。我们采用MFFC和NOCYC识别算法把电路网络分解为不含回路的聚集网络;然后对该聚集网络进行初始划分,得到一个非循环的初始划分;然后讨论了模拟退火优化,在优化过程中考虑了平衡约束、非循环约束和最小化割边数,进而得到最终的电路划分。我们在ISCAS85和89测试电路包中选择了8把电路作为测试用例。首先我们对这些电路进行2、4…16路非循环划分。然后,在曙光集群上进行了电路模拟实验。从实验数据可以得出,当电路规模较大且模拟进程数从1增加到8时,模拟所消耗的时间急剧下降。而对于电路规模较小的电路,当进程数增加时,模拟所消耗的时间下降幅度较前者小。并且当进程数大于8时,模拟所消耗的时间起伏不定。就加速比而言,也有类似结论。当进程数从1增加到8时,加速比接近线性加速比,甚至可以获得超线性加速比;当进程数超过8时,加速比有减小趋势。总的说来,当进程数小于8时,可以获得较理想的加数比。