I synthesize RTL with RTL Compiler.
I have setup below options.
set_attr dft_connect_scan_data_pins_during_mapping ground [find / -design *]set_attr dft_connect_shift_enable_during_mapping tie_off [find / -design *]set_attr dft_scan_map_mode preserve [find / -design *]
But when I finished synthesis, I always get my netlist with scan cells replacement.
How can I avoid the scan cells replacement ?
Thanks a lot.
I think the best way is to simply NOT run "check_dft_rules". During "check_dft_rules", RC will mark every flop as scannable, or not. All flops that are scannable will be mapped to scan. If you don't run check_dft_rules, all flops will be considered non-scan. I suggest leaving dft_scan_map_mode set to tdrc_pass.
Another option, I suppose, is to set dft_dont_scan attribute to "true" on all flops. This would also work, but simply not running check_dft_rules is probably the simplest solution.
FYI... if you want to prevent RC from using scan flops for non-DFT purposes, you will want to set this attribute: set_attr use_scan_seqs_for_non_dft false /
I am curious, why do you not want to map to scan flops? Usually this is desired to account for the extra mux delay and extra load on the flop Q pin.