5.1子节点的表示 在不增加扫描树的深度前提下,如果子节点能随父节点一起移动,不会引起子节点的表示问题。但一般情况下子节点不能随父节点一起移动,并且异或节点在重新分组时,它只有可能分到层数大的基类中,这使得子节点随父节点一起移动,可能会使扫描树的深度增加。我们研究了可能会给子节点的表示带来问题的所有可能的情况,给出了下面的解决办法。 5.1.2异或节点为其子节点的两个前驱节点之一 如图5.2(a)所示,ff5和ff6为ff7的两个前驱节点,其中ff6为异或节点。如果ff6与ff5相容,经过重分组后,ff6与ff5被放在同一层。此时ff7不能做ff5和ff6的后继节点。经研究发现,在保持扩展相容性的前提下,ff7在连接上仍然保持不变。但在表示上,不能表示为ff5和ff6的异或。这时可以通过在ff5的位置上添加一个哑元ff9。这里,ff9并不是一个真正的扫描单元,其只不过是保存了ff5的位置信息,使得ff7的表示方法不会有太大的变化。经过移动,ff7的前驱为ff9和ff6。移动后如图5.2(b)所示。 5.2新的扫描树构造方法 我们的方法与改进的扩展相容性扫描树方法[28]相类似,都是基于用原始扩展相容性[26]方法构造的扫描树,然后对所有的异或节点重新分组,检查其是否能与某个/些基类节点分到一组;其次,对基类按照其节点个数的降序排列,最后为了降低布线的复杂性,将生成的扫描树倒置。我们的方法与文献[28]主要的不同是在第一步,即扫描单元重新分组部分。我们的方法克服了文献[28]的方法的不足,为了解决异或节点移动后,其后继节点的表示问题,提出了哑元的概念。 |