其实,在做完coarse placement后,Scan Cell大部分是按照连接的顺序随机的乱放的。这样其实会极大地占用绕线资源。因此,在后续步骤开始之前,我们希望对扫描链的连线进行处理,在不影响逻辑功能的前提下,重新进行连接,从而减少走线长度。那这个重组的过程,我们就称之为扫描链重组(Scan Reorder) 。整个过程,可以用下面两张图来形象地说明:
Scan Reorder之前:可以看到,每个scan cell的连接得乱七八糟,专业术语叫做detour
Scan Reorder之后:仔细看,走线少了很多,也规整了不少吧!那这就是我们希望得到的结果~~(当然前提是不能影响逻辑功能)
如果用前文DEF的例子解释:
经过Scan Reorder之后,变成如下的电路连接:
可以看到,被方框圈住的out_reg_4和u_buf就类似一个整体一样,位置重新进行了排列。
那对应的Scan DEF信息变化就是:
左边的DEF格式前文已经说明,那右边reorder之后的大家能看懂嘛?
右边就多了一个#符号,这里可以理解为标志位,与着下面的#ORDERED segment 1相关联,就是为了说明它在FLOATING信息里的排列位置。
最后,我们可以使用report_scan_chains来报出scan chain的组成,使用check_scan_chain来检查其合理性
Checking Scan Chain scan_segment_88
STOP: u__noram/u_etm/u_fifo/ts_0_lockLD_865264
....
thru: u_noram/uersistent_cell_0_buf_intsi54506_i/Z
STATUS: VALIDATED, Sequential Length = 524, Instance Count = 524, Partition = partition_
网友评论