######################################################### # 4_mbist_tessent_shell.tcl # # Description: MemoryBIST insertion für RISC-V Design # # Usage: Im Tessent Shell Prompt: # SETUP> set script_dir "scripts_risc_v" # SETUP> set ekit_dir "." # SETUP> source scripts_risc_v/4_mbist_tessent_shell.tcl # # Dependencies: - nangate_complete.tcelllib (aus gen_tcelllib.tcl) # - riscv.tessent_post_scan.v (aus Oasys DFT Flow) # - MemGen_16_10.memlib ######################################################### set script_dir "scripts_risc_v" if {![info exists ekit_dir]} { set ekit_dir [file dirname ${script_dir}] } #---------------------------------------------------------- # 1. Kontext setzen - Gate-Level Netlist #---------------------------------------------------------- set_context dft -no_rtl #---------------------------------------------------------- # 2. Libraries laden #---------------------------------------------------------- # Tessent Cell Library read_cell_library ${ekit_dir}/output/nangate_complete.tcelllib # Memory BIST Model für MemGen_16_10 read_core_descriptions ${ekit_dir}/libs/MemGen_16_10.memlib #---------------------------------------------------------- # 3. Gate-Level Netlist laden #---------------------------------------------------------- read_verilog ${ekit_dir}/output/riscv.tessent_post_scan.v #---------------------------------------------------------- # 4. Top-Level und Design-Level setzen #---------------------------------------------------------- set_current_design cpu set_design_level chip #---------------------------------------------------------- # 5. MBIST Anforderungen setzen #---------------------------------------------------------- set_dft_specification_requirements -memory_test on # Gefundene Memory-Instanzen anzeigen report_memory_instances #---------------------------------------------------------- # 6. Clocks definieren #---------------------------------------------------------- add_clocks clk_25mhz -period 40ns -label mbist_clk #---------------------------------------------------------- # 7. Design Rule Check #---------------------------------------------------------- check_design_rules #---------------------------------------------------------- # 8. DFT Specification erstellen und verarbeiten #---------------------------------------------------------- set dft_spec [create_dft_specification] report_config_data $dft_spec validate_dft_specification process_dft_specification extract_icl #---------------------------------------------------------- # 9. Pattern Generation #---------------------------------------------------------- set pat_spec [create_patterns_specification] process_patterns_specification #---------------------------------------------------------- # 10. Simulation und Synthese #---------------------------------------------------------- run_testbench_simulations check_testbench_simulations run_synthesis exit