73 lines
2.4 KiB
Tcl
Executable File
73 lines
2.4 KiB
Tcl
Executable File
#=======================================================#
|
|
#Enable shift registers identification
|
|
#=======================================================#
|
|
infer_shift_registers
|
|
|
|
#=======================================================#
|
|
#Define dft settings
|
|
#=======================================================#
|
|
define_test_pin -pin SCAN_ENABLE -scan 1 -default_scan_enable -create_port
|
|
define_test_pin -pin scan_mode -scan 1
|
|
define_test_clock -pin sysclk_byp -test_domain A
|
|
connect_clock_gating_test_pin -test_pin SCAN_ENABLE
|
|
|
|
#Check the DFT violation and use autofix feature to adress them
|
|
check_dft -auto_test_clock -auto_test_pins
|
|
report_dft_violations
|
|
|
|
#=======================================================#
|
|
# Pre fix_dft_violation database
|
|
#=======================================================#
|
|
write_db ${output_dir}/odb/demo_chip.oasysdft_pre_fix.odb
|
|
|
|
fix_dft_violations -type all -test_clock sysclk_byp -test_control scan_mode
|
|
check_dft
|
|
report_dft_violations
|
|
|
|
#=======================================================#
|
|
#Disable scan on enable_nova0_reg & enable_nova1_reg
|
|
#=======================================================#
|
|
set_dont_scan -verbose [get_cell enable_nova0_reg] true
|
|
set_dont_scan -verbose [get_cell enable_nova1_reg] true
|
|
|
|
#=======================================================#
|
|
#Final optimize
|
|
#=======================================================#
|
|
optimize
|
|
write_db ${output_dir}/odb/demo_chip.oasysdft_post_fix.odb
|
|
write_verilog ${output_dir}/demo_chip.oasysdft_post_fix.v
|
|
report_timing
|
|
report_endpoints
|
|
report_power
|
|
report_path_groups
|
|
|
|
|
|
### Using partitioned based DFT Flow
|
|
|
|
# Should report 'default' as current dft partition
|
|
current_dft_partition
|
|
|
|
# Define DFT partitions
|
|
define_dft_partition P1 -instances {i_cpu_sys nova1}
|
|
define_dft_partition P2 -instances { nova0}
|
|
|
|
|
|
report_dft_partitions
|
|
|
|
## define_scan_chain
|
|
define_scan_chain -scan_in SI_1 -scan_out SO_1 -create_port -partition P1
|
|
|
|
current_dft_partition P2
|
|
# following definition scope is limited to P2
|
|
define_scan_chain -scan_in SI_2 -scan_out SO_2 -create_port
|
|
|
|
# Resetting the partition definition to 'Default'
|
|
reset_dft_partition
|
|
|
|
# Following scan chains should be created corresponding to 'Default' partition, meaning any logic outside of already coverd partitions.
|
|
define_scan_chain -scan_in SI_3 -scan_out SO_3 -create_port
|
|
|
|
#connect_scan_chains
|
|
connect_scan_chains -physical -mix_clock_edges
|
|
|