0% found this document useful (0 votes)
979 views5 pages

DFT - Gray Box

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
979 views5 pages

DFT - Gray Box

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

DFT Graybox

1. Why do we need a graybox?


When running the top level, the submodule design needs to be read in. The graybox can
represent the submodule.

Using grayboxes in large hierarchical designs can greatly reduce the amount of memory
and tool runtime.

2. What is a graybox?
The grey box contains only the minimum number of connected circuits:

• Primary input/output
• Wrapper chain
• Glue logic outside the wrapper chain
The circuit structure represented by the full netlist:

Ashwani DFT
The circuit structure represented by the graybox:

3. How to extract the graybox in Tessent?

The following is a description of the overall process of generating a graybox netlist. Graybox
functionality is available when the tool is in the analysis system mode and the design is in
external mode. External mode means that the input wrapper chains are used in regular test
modes (both capture and shift), whereas the output wrapper chains are used only in a non-
capture mode (shift, hold or rotate). Wrapper chains inserted by Tessent Scan are configured
in external mode by constraining the output wrapper chain scan_enable signal to active
during both shift and capture phases.

The dofile used for graybox netlist generation does the following:

• Defines clock pins used in external mode (using the add_clocks command).

• Constrains test control pins that place the circuit in external mode (using the
add_input_constraints command).
Ashwani DFT
• Defines wrapper chains (using the add_cell_constraints command).

• Places the circuit in external mode using a test procedure file. This test procedure file
should do the following:

o Define a test-setup procedure for the external mode to force primary inputs
that enable signal paths to wrapper cells.

o Define a shift and load-unload procedure to force wrapper chain scan enable
signals and toggle the shift clocks for the external mode.

Other types of scan and clock procedures (such as master-observe or shadow-


observe) and non-scan procedures (such as capture) might also be required to
ensure that the circuit operates correctly in external mode.

• Identifies graybox logic using the analyze_graybox command. The command also
displays a summary to indicate the combinational and sequential logic gates
identified by the analysis. The tool marks the identified graybox instances by setting
their in_graybox attribute. You can add specific instances into the graybox netlist by
turning on the preserve_in_graybox attribute using the set_attribute_value
command.

The graybox analysis performs the identification by tracing backward from all primary
output pins and wrapper chains. However, the scan-out pins of the core chains are
excluded from the backward tracing. Because core chains are not defined with the
add_scan_chains command, you accomplish this by setting the ignore_for_graybox
attribute of the scan-out pins using the set_attribute_value command.

• The “write_design -graybox” command writes out all the instances marked with the
in_graybox attribute. The tool uniquifies all modules that are included in the graybox
netlist (except the top module). The interface (port declarations) of a uniquified
module is preserved. The uniquification is required because the partial inclusion of
the logic inside a module into the graybox netlist could cause conflicts between the
different instances of the module, as these instances could be interacting differently
with the wrapper chains.

Example script for creating graybox netlist

# Define clock pins used for external mode

Add_clocks 0 NX2

Add_clocks 0 NX1

# Set up for external mode


Ashwani DFT
# Hold output wrapper chain scan enable active

Add_input_constraints sen_out -C1

# Define wrapper chains

Add_scan_groups grp1 external_mode.testproc

Add_scan_chains wrapper_chain1 grp1 scan_in1 scan_out1

Add_scan_chains wrapper_chain2 grp1 scan_in2 scan_out2

# Ignore core chains scan_out pins for graybox analysis to exclude the

# logic intended for internal test mode

Set_attribute_value scan_out3 –name ignore_for_graybox –value true

Set_attribute_value scan_out4 –name ignore_for_graybox –value true

Set_system_mode analysis

# Identify graybox logic

Analyze_graybox -collect_reporting_data

Report_graybox_statistics -top 10

# NOTE: At this point, you can use the set_attribute_value command with

# the preserve_in_graybox attribute to add specific instances into

# graybox netlist.

# Write graybox netlist

Write_design –graybox –output_file graybox.v -replace


Ashwani DFT
References: Tessent Scan and ATPG UG

Ashwani DFT

You might also like