In order to
run an internal scan insertion, users must have free licenses for Synopsys Test
Compiler. Even a basic design compilation with a –scan switch requires this
license. The following article presents methodology and provides free scripts
in order to insert scan without the Test Compiler.
Running
compilation with a –scan option provides more realistic timing results. During
this compilation, non-scannable flip –flops are replaced by corresponding
scannable ones. The following picture demonstrates how Synopsys Design Compiler
replaces and reconnects scannable flip-flops:
A Scannable
Flip-Flop has two additional inputs, compared to the regular one. Usually, the
input names are SD (scan data) and SE (scan Enable). When Design Compiler inserts
a scannable Flip-Flop, it connects SE input to “Logic 0” and SD – to the same
Flip-Flop output pin. Connecting SE to logic 0 sets Flip Flop to work in the
functional mode, permanently selecting “D” input. Connecting SD pin to the same
Flop’s Q pin adds one more fanout to the net, connected to the Q pin, making
timing analysis of the network to be exactly the same as for the design with
inserted scan chains. Then Design Compiler tries to close timing on existing
network.
The only
one, but important, drawback of the command “compile –scan” is that this
command requires both the Design Compiler and Test Compiler licenses.
However,
scannable registers insertion and proper connection can be done without Test
Compiler at all. The following steps explain this process:
§
Download
regscan.tcl script.
§
Run
compilation without –scan switch. Non-scannable Flip-flops will appear
in design.
§
Load
regscan.tcl script into design compiler and run replace_regs command
(refer to regscan script comments for usage
details). This script will replace non-scannable flip-flops with corresponding
scannable ones and connects them in the same way as Design Compiler does.
§
Finally,
run compile –incremental –map_effort low in order to finish timing
optimization on design with scannable flip-flops.