edastudy:tessent:atpg
差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
edastudy:tessent:atpg [2024/10/31 19:32] – [4. set_atpg_limits] user01 | edastudy:tessent:atpg [2025/03/16 14:29] (当前版本) – [1.5 OCC clone] user01 | ||
---|---|---|---|
行 1: | 行 1: | ||
- | ====== atpg ====== | + | ====== |
===== - Transition AC ===== | ===== - Transition AC ===== | ||
行 53: | 行 53: | ||
- | ====== gen atpg pattern ====== | + | ===== - PR网表层次保持 |
+ | PR后网表对OCC的hier层次需要固定不要动,不然在推ATPG时会找不到相应path报错。 | ||
+ | |||
+ | 具体发现以下在TCD文件里面描述的OCC以下PATH保持不变即可。 | ||
+ | < | ||
+ | ClockOut() | ||
+ | ShiftRegisterClockEn() | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== - OCC clone ===== | ||
+ | 或者是多个OCC设置兼容模式 | ||
+ | |||
+ | 方式一:\\ | ||
+ | < | ||
+ | # 将同源或同频的 OCC 输出时钟分配到同一同步组 | ||
+ | add_synchronous_clock_group {clk1 clk1_p clk2 clk2_p} | ||
+ | # 如果是想把OCC输出也弄成一个group的话,这里只需要写occ的inst hier name | ||
+ | </ | ||
+ | |||
+ | 方式二:\\ | ||
+ | 将多个clk添加同一个clock_intercept_node上,它们会共享OCC的shift cgc,永远是同步输出capture clock。 | ||
+ | < | ||
+ | set occ [ add_config_element OCC/ | ||
+ | set_config_value clock_intercept_node -in $occ $clk | ||
+ | </ | ||
+ | |||
+ | 在ATPG时启用兼容时钟模式:\\ | ||
+ | set_clock_restriction domain_clock -compatible_clocks_between_loads on | ||
+ | |||
+ | report_synchronous_clock_groups | ||
+ | |||
+ | ====== - gen atpg pattern ====== | ||
需要读取icl pdl, tcd, netlist文件,这样就可以跑出atpg pattern | 需要读取icl pdl, tcd, netlist文件,这样就可以跑出atpg pattern | ||
<code tcl> | <code tcl> | ||
行 82: | 行 114: | ||
用单独的几个scan cell(scan_en为0时保持cell值不变),控制在capture阶段register的时钟enable\\ | 用单独的几个scan cell(scan_en为0时保持cell值不变),控制在capture阶段register的时钟enable\\ | ||
这样可以分段控制部分register在capture阶段数据不变,实现low power效果 | 这样可以分段控制部分register在capture阶段数据不变,实现low power效果 | ||
+ | |||
+ | {{: | ||
+ | 这个图如果控制时钟不产生的话,就和上图效果差不多了。 | ||
edastudy/tessent/atpg.1730374333.txt.gz · 最后更改: 2024/10/31 19:32 由 user01