Lab Report
Lab Report
Lab Report
➢ These violations can be set by setting to their off state values using commands. The
command below is used to off the reset pin
add_clocks 1 rstn
and run DRCs again and it will show remaining violations (Here 17 s1 remaining).
➢ Run command again analyze_drc_violation s1-1
➢ Command add_clocks 0 clk1 will set the clock to off state value and run DRC again
to see any violations left.
If no violations, then it will enter into ANALYSIS mode.
Here, we indicate to use separate scan chains for different clock edges.
➢ Command add_scan_mode unwrapped -chain count 1
This will create scan chain in unwrapped mode with a chain count of 1.
➢ Command analyze_scan_chains distributes scan elements into new scan chains.
scan elements identified as non-scannable are not considered for distribution.
Here, it will create 1 distributed scan chain of size 17 in unwrapped mode.
➢ Command insert_test_logic inserts the test structures you define into the netlist and
stitches up the scan chains to increase the design’s testability.
The tool inserts test structures into a design to increase the fault coverage (testability) of the
design by doing following.
• Identifies sequential cells and replaces them with corresponding scan cells, and
stitches them together into a scan chain. (ie, scan cell replacement and stitching.)
• Supports the adding of both system-defined and user-defined test points.
• Supports the automatic adding of test logic.
Here, insert_test_logic gives structural and logical data.
Structural data gives the data of top-level port count and instance count and
Logical data gives the data of retiming logic count and scan chain count.
➢ Command report_test_logic is used in insertion mode displays the test logic that the
tool added during the scan insertion process and also displays information about the
additional library cells instantiated in the design during the scan insertion process.
Here, it gives info of the new pins created , new instance and modules created.
➢ Command report_scan_chains displays report on all the current scan chains.
The report shows the following information for each scan chain:
• Name of the scan chain • Name of the scan chain group • Scan chain input and output
pins • Length of the scan chain • Name of the scan clock(s) (but only after you enable the
E8 DRC in setup mode).
➢ Command report_scan_cells displays a report on the scan cells within the specified
scan chains.
➢ The report provides the following information for each scan cell:
• Chain cell index number (cell ID), where 0 is the scan cell closest to the scan-out
pin.
• Scan chain in which the scan cell resides.
• Scan group in which the scan cell resides. (The scan group data is hidden if the
design has only scan group.)
• Sequential element type, primitive type, and latch triggering type during shifting.
The latch triggering type can be one of the following: LE, TE, AH, AL.
• Inversion data for each sequential element.
• Gate index number for each sequential element.
• Shift clock name and inversion status at the clock input of each sequential element.
(“dft -edt” and “patterns -scan” only)
• Top-level library model cell name of each sequential element.
• Instance name of each sequential element
This command writes the current design in Verilog netlist format to the specified file.
➢ Command write_atpg_setup results/ex1_scan.v \-replace
This command writes a test procedure file and a dofile that describes the chains that were
created during scan insertion and also for multi-mode scan insertion, the tool also generates
a dofile that can be used to verify all of the defined scan modes.
The dofile and test procedure file are used with FastScan to do the design setup before
creating test patterns.
If you want to verify the scan insertion that just happened you can set the system mode to
setup and run verification dofile execute following commands:
➢ Command set_system_mode_setup used in insertion mode and it will enter setup mode.
➢ Command dofile results/ex1_scan_verify_scan_modes.dofile
➢ Command exit -d
Exercise 2
➢ Same procedure is followed in exercise2 as in exercise1 in the setup mode.
➢ In the analysis mode, here we create two scan chains and their input and output pin
connections.
➢ Command set_scan_insertion_options\-port_index_start_value 1 -
si_timing any_edge \-so_timing any_edge -single_clock_edge_chains
on \-single_clock_domain_chains on
This command will on single clock edge chains and single clock domain chains.
Single clock domain chains ON means single clock is used drive single or one scan chain,
another clock is used to drive another scan chain.
➢ Command set_insertion_options \-module_uniquification_suffix -scan#
ATPG library does not have predefined cell to use as lock up latch.
So, identify latch and inverter from atpg cell library for use as test structures.
➢ Command add_cell_models latch -type dlat CLK D
➢ Command add_cell_models inv01 -type inv
➢ Command set_test_logic -reset on
➢ Command set_scan_insertion_options \-port_index_start_value 1 -
si_timing any_edge \-so_timing any_edge -single_clock_edge_chains
on \-single_clock_domain_chains off
This command makes a single clock can be used to drive multiple chains.
➢ add_scan_mode unwrapped -chain_count 2 \-si_connections {{/d[10]} {/d[0]}} \-
so_connections {{/q[15]} {/q[1]}}
➢ This command will create two balanced scan chains in which 17 flops divided into 9
and 8 flops in chain1 and chain2 respectively in unwrapped mode.
➢ Command report_scan_chains will display following:
chain1 has input =/d[10] ,output= /q[15] and length =9
chain2 has input =/d[0] ,output= /q[1] and length =8
➢ Command report_test_logic gives details of new pins added, instances and modules
added.
➢ Save scan inserted netlist and ATPG setup file.