1. MBIST INSERTION ‐ Command File - Vinayak-Pragada/Navigation-Chip GitHub Wiki
set WORK_DIR ~/FEB_2022/level4_projects/Final_lab set DESIGN_DIR ~/FEB_2022/level4_projects/Final_lab/DATA/files/list
Declaring context to perform mbist on RTL
set_context dft -rtl -design_id cpu_top_mbist
General setup of directories
system mkdir reports_dft system rm -rf simulation_outdir
Mention the output directoy name and path to store the output files
set_tsdb_output_directory $WORK_DIR/tsdb_outdir
Reading Mem Libs and Pad libs
dofile ../DATA/libs/DATA/std_cells_libs.dofile dofile ../DATA/libs/DATA/memory_libs.dofile
DFT cell selection
read_cell_library ../DATA/libs/DATA/dft_cell_selection
Design sources/ Include Directories ################;
set_design_sources -format tcd_memory -Y ./ -extension tcd_memory set_design_include_directories $DESIGN_DIR/design/defs/
Reading Design RTL Files
dofile inputs/rtl_files.dofile
Declare Design top level module name
set_current_design cpu_top
add_black_boxes -auto
report_design_sources
report_black_boxes
set_design_level chip
Constraints to control
## Scan mode for design
add_pin_constraints SCAN_SEL C1 ; # dedicated pin for DFT - that can be also be used for pin_mux control #add_pin_constraints SYS_MODE[0] C1
add_clocks 0 F_CLK -period 20 ns -pulse_always add_clocks PLL/CLKOUT -REFERENCE F_CLK -FREQ_Multiplier 8 -label pll_out
Scan reset
add_pin_constraints RESET_N C1
JTAG insertion
set_attribute_value DEBUG_MODE -name function -value tck set_attribute_value GPIO[7] -name function -value tdi set_attribute_value SYS_MODE[2] -name function -value tms set_attribute_value GPIO[10] -name function -value trst set_attribute_value GPIO[6] -name function -value tdo
## Enabling the memory bist
set_dft_specification_requirements -memory_test on
check_design_rules
set_config_value /DefaultsSpecification(user)/DftSpecification/use_rtl_cells off set_config_value /DefaultsSpecification(user)/DftSpecification/use_rtl_synchronizer_cell on
set spec [create_dft_specification]
read_config_data -in_wrapper $spec/IjtagNetwork -from_string { HostScanInterface(tap_internal) { Interface { tck : /rx_core_u0/u_pin_mux/jtag_clk; trst : /rx_core_u0/u_pin_mux/jtag_trstn; tms : /rx_core_u0/u_pin_mux/jtag_tms; tdi : /rx_core_u0/u_pin_mux/jtag_tdi; tdo : /rx_core_u0/u_pin_mux/jtag_tdo; tdo_en : /rx_core_u0/u_pin_mux/tdo_oen; tdo_en_polarity : active_low; } } }
move_config_element ${spec}/IjtagNetwork/HostScanInterface(tap)/Tap(main) -in_wrapper ${spec}/IjtagNetwork/HostScanInterface(tap_internal)
report_config_data $spec > reports_dft/default_spec
dict set -> this is a tcl command ; below section will describe the connectivity of existing pin_mux logic / structure to the corresponding top level PADS/ ports:
dict set ::auxiliary_data_dict SYS_MODE[1] auxiliary_input_pin rx_core_u0/u_pin_mux/scan_enable dict set ::auxiliary_data_dict SYS_MODE[1] auxiliary_input_enable_pin digital_pads_u0/pc_scan_sel
dict set ::auxiliary_data_dict GPIO[5] auxiliary_input_pin rx_core_u0/u_pin_mux/edt_update dict set ::auxiliary_data_dict GPIO[5] auxiliary_input_enable_pin digital_pads_u0/pc_scan_sel
dict set ::auxiliary_data_dict GPIO[15] auxiliary_input_pin rx_core_u0/u_pin_mux/scan_in[0] dict set ::auxiliary_data_dict GPIO[15] auxiliary_input_enable_pin digital_pads_u0/pc_scan_sel
dict set ::auxiliary_data_dict GPIO[14] auxiliary_input_pin rx_core_u0/u_pin_mux/scan_in[1] dict set ::auxiliary_data_dict GPIO[14] auxiliary_input_enable_pin digital_pads_u0/pc_scan_sel
dict set ::auxiliary_data_dict GPIO[13] auxiliary_output_pin rx_core_u0/u_pin_mux/scan_out[0] dict set ::auxiliary_data_dict GPIO[13] auxiliary_output_enable_pin digital_pads_u0/pc_scan_sel
dict set ::auxiliary_data_dict GPIO[12] auxiliary_output_pin rx_core_u0/u_pin_mux/scan_out[1] dict set ::auxiliary_data_dict GPIO[12] auxiliary_output_enable_pin digital_pads_u0/pc_scan_sel
process_dft_specification report_config_data $spec
extract_icl
set spec1 [create_patterns_specification signoff -replace ] report_config_data $spec1 report_config_data $spec1 > reports_dft/patterns_spec_signoff process_patterns_specification signoff
Running simualtions for generated patterns using tshell (internally invokes simulator)
set_simulation_library_sources -v ../DATA/libs/tcbn40lpbwp.v -v ../DATA/libs/tphn40lpgv2od3_sl.v
report_simulation_library_source
run_testbench_simulations -generate_scripts_only