2008年12月11日星期四

DFT Compiler的学习-----part5 Autofix的使用

Autofix可以自动修正一些test DRC的错误,比如:不可控的时钟,不可控的异步置位和复位信号,以及三态和双向信号。举个例子,比如一个寄存器的时钟输入是不可控的,如果启动了autofix的功能,则会在时钟输入端添加一个mux,由testMode信号来控制。需要注意的是这里的testMode信号和ScanEnable信号是不一样的。ScanEnable信号是控制扫描链数据的移动和抓取的。而testMode信号必须在整个测试周期内都必须有效。

如何使用autofix呢?首先需要时能test point的autofix行为,具体命令是set_dft_configuration。注意与set_scan_configuration的区别。前者是对test point进行配置的,而后者是对扫描链进行配置的。比如想启动clock的autuofix的功能,就使用set_dft_configuration -fix_clock enable。其次是指定test point的信号。使用set_dft_signal -type来指定,这里test point的类型有两种,一种是TestData,比如clock信号,异步置位复位信号,一种是TestMode,用来对这些TestData信号进行控制。最后就是指定autofix的行为。使用的命令是set_autofix_configuration和set_autofix_element。比如
set_autofix_configuration -type clock -test_data clk -control_signal my_test_mode

这个单元涉及到的主要命令有set_dft_configuration,set_autofix_configuration,set_autofix_element。下面着重对他们的使用方法做说明。

1.set_dft_configuration

用途:对test point进行配置。
选项:-fix_clock,-fix_set,-fix_reset,-fix_bus,-fix_bidirectional,-fix_xpropagation都是用来使能或者禁止autofix功能的。

2.set_autofix_configuration

用途:对autofix的行为进行配置。
选项:-type指定fix的类型,有clock,set,reset,x_propagation,internal_bus,external_bus,bidirectional,每次只能指定一个类型。
-control_signal 指定test_control的信号,这个信号应该预先定义的TestMode或者ScanEnable信号,如果没有指定该选项,则autofix会被任何一个TestMode信号来控制,如果没有预先没有定义该信号,则autofix会自己创建一个。
-test_data指定test_data信号。比如一个clk port,如果要使用autofix,除了要将其配置成具有clocktype之外,还需要配置成test_data,如果没有配置成test_data,将会自己寻找。
-method指定autofix的方法。对不同的type有不同的默认方法。比如对异步set和reset,使用mux,对内部总线enable_one,对外部总线使用disable_all,对双向信号使用input。
-fix_data使能时则对时钟信号作为寄存器data输入的情况进行自动修复。
-include_element -exclude_element指定autofix适用的design。

3.set_autofix_element
用途:对某个具体的element实施autofix的配置,选项跟set_autofix_configuration差不多。

2 条评论:

共乐屋 说...

不懂。路过看看。

Admin 说...

好久没更新了哈