Wrapping Core Flow


本文主要讲述了在wrapping a core的过程中如何配置wrapper chain的数量和长度,以及工具对于相关command的处理方式。参考(翻译)自《Synopsys® TestMAX™ DFT User Guide》,FYI。

Controlling Wrapper Chain Count and Length

可以使用set_wrapper_configuration命令来控制wrapper chain的数量或最大长度:

set_wrapper_configuration -class core_wrapper -chain_count 3
set_wrapper_configuration -class core_wrapper -max_length 500

还可以使用set_scan_configuration来指定chain count:

set_scan_configuration -chain_count 3

这个command设置的chain_count是wrapper chain和internal chain的总数,如果满足以下任一条件那么工具会先构建wrapper chain之后再构建internal chain:

  • 输入和输出wrapper cell禁止混合(set_wrapper_configuration -mix_cells false)
  • 使用maximized reuse flow,在该flow下禁止input和output wrapper cell混合
  • 存在用户定义的wrapper scan path(set_scan_path -class core_wrapper)

在这种情况下,wrapper chain和internal chain的长度默认不是balance的。需要直接使用set_wrapper_configuration和set_scan_configuration命令来配置总体长度。在outward-facing mode下,只能使用set_wrapper_configuration命令配置wrapper chain。
如果这些条件都不满足,那么工具会将wrapper chain和internal chain一起构建。在这种情况下如果你没有指定chain count或者最大长度,那么工具将会按照set_scan_configuration -chain_count或者-max_length中的设置将wrapper chain和internal chain balance到一起。但是,仍然可以使用set_wrapper_configuration命令指定wrapper chain的数量和最大长度。
如果chain count和chain length使用同一个命令定义,长度需求会被应用,count需求会被忽略。
wrapper chain和普通scan chain遵循一样的时钟混合要求。如果想让不同clock domain的wrapper cell混合在同一条wrapper chain,可以使用set_scan_configuration命令的-clock_mixing选项启用clk mix。

set_scan_configuration -clock_mixing mix_clocks

这可以提高length balance。Lock-up latch会插入到不同clock domain的wrapper cell中间。-clock_mixing选项的默认值是no_mix,它为每个wrapper clock domain创建单独的wrapper chain。

欢迎大家关注公众号IC练习生,后期会不定期更新IC学习历程。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐