用户工具

站点工具


edastudy:tessent:dft_spec

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
edastudy:tessent:dft_spec [2024/05/23 09:01] – [1.2 chip_top] zhangguoedastudy:tessent:dft_spec [2024/11/12 16:56] (当前版本) – [3.1 set_defaults_value] user01
行 75: 行 75:
  
  
 +==== - tap_t.icl ====
 +<code bash>
 +
 +Module tap {
 +  TCKPort         tck;
 +  ScanInPort      tdi;
 +  ScanOutPort     tdo    { Source IRMux;
 +    Attribute forced_high_output_port_list = "tdo_en"; 
 +    Attribute forced_low_dft_signal_list = "tms_disable";
 +  }
 +  DataOutPort     tdo_en {
 +    Attribute associated_scan_port_list = "tdo";
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute function_modifier = "tdo_enable_active_high";
 +  }
 +  TMSPort         tms    {
 +    Attribute forced_low_dft_signal_list = "tms_disable";
 +  }
 +  TRSTPort        trst   {
 +    Attribute connection_rule_option = "allowed_tied_high";
 +  }
 +  ToCaptureEnPort capture_dr_en;
 +  ToShiftEnPort   shift_dr_en;
 +  ToUpdateEnPort  update_dr_en;
 +  ToResetPort     test_logic_reset  { ActivePolarity 0; }
 +  ToSelectPort    host_1_to_sel { Source host_1_to_sel_int;
 +    Attribute connection_rule_option = "allowed_no_destination";   
 +  }
 +  LogicSignal     host_1_to_sel_int { instruction == HOSTIJTAG_1;    }
 +  ScanInPort      host_1_from_so {
 +    Attribute connection_rule_option = "allowed_no_source";
 +  }
 +  ScanInPort      host_bscan_from_so {
 +    Attribute connection_rule_option         = "allowed_no_source";
 +    Attribute tessent_bscan_pipeline_stages  = "0";
 +  }
 +  ToSelectPort    host_bscan_to_sel { Source bscan_select_int;
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function  = "select";
 +  }
 +  LogicSignal bscan_select_int { 
 +    (instruction == EXTEST) ||
 +    (instruction == INTEST) ||
 +    (instruction == EXTEST_PULSE) ||
 +    (instruction == EXTEST_TRAIN) ||
 +    (instruction == SAMPLE) ||
 +    (instruction == PRELOAD) ;
 +  }
 +  DataOutPort     force_disable { Source force_disable_int; 
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function  = "force_disable";
 +  }
 +  LogicSignal force_disable_int { instruction == HIGHZ; } 
 +  DataOutPort     select_jtag_input { Source select_jtag_input_int;
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function = "select_jtag_input";
 +  }
 +  LogicSignal select_jtag_input_int { instruction == INTEST; } 
 +  DataOutPort     select_jtag_output { Source select_jtag_output_int;
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function = "select_jtag_output";
 +  }
 +  LogicSignal select_jtag_output_int { 
 +    (instruction == EXTEST) ||
 +    (instruction == EXTEST_PULSE) ||
 +    (instruction == EXTEST_TRAIN) ||
 +    (instruction == CLAMP) ||
 +    (instruction == HIGHZ) ;
 +  }
 +  DataOutPort     extest_pulse { Source ext_test_pulse_int;
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function = "extest_pulse";
 +  }
 +  LogicSignal ext_test_pulse_int { instruction == EXTEST_PULSE;
 +  DataOutPort     extest_train { Source ext_test_train_int;
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute tessent_bscan_function = "extest_train";
 +  }
 +  LogicSignal ext_test_train_int { instruction == EXTEST_TRAIN;
 +  DataOutPort fsm_state[3:0]{ 
 +    Attribute connection_rule_option = "allowed_no_destination";
 +    Attribute function_modifier = "tap_fsm_state";
 +    RefEnum   state_encoding;
 +  }
 + 
 +  Enum state_encoding {
 +    test_logic_reset  = 4'b1111;
 +    run_test_idle     = 4'b1100;
 +    select_dr         = 4'b0111;
 +    capture_dr        = 4'b0110;
 +    shift_dr          = 4'b0010;
 +    exit1_dr          = 4'b0001;
 +    pause_dr          = 4'b0011;
 +    exit2_dr          = 4'b0000;
 +    update_dr         = 4'b0101;
 +    select_ir         = 4'b0100;
 +    capture_ir        = 4'b1110;
 +    shift_ir          = 4'b1010;
 +    exit1_ir          = 4'b1001;
 +    pause_ir          = 4'b1011;
 +    exit2_ir          = 4'b1000;
 +    update_ir         = 4'b1101;
 +  }
 + 
 +  ScanInterface tap_client { 
 +    Port tdi; 
 +    Port tdo; 
 +    Port tms;
 +  }
 +  ScanInterface host_ijtag_1 { 
 +    Port host_1_from_so; 
 +    Port host_1_to_sel; 
 +  }
 + 
 +  ScanInterface host_bscan {
 +    Port host_bscan_to_sel;
 +    Port host_bscan_from_so;
 +    Port capture_dr_en;
 +    Port shift_dr_en;
 +    Port update_dr_en;
 +    Port test_logic_reset;
 +    Attribute          tessent_is_bscan_host = "true";
 +  }
 +  Instance fsm Of tap_fsm  {
 +    InputPort tck  = tck;
 +    InputPort tms  = tms;
 +    InputPort trst = trst;
 +  }
 +  ScanRegister instruction[3:0] {
 +    CaptureSource  4'b0001;
 +    ResetValue     4'b1111;
 +    ScanInSource   tdi;
 +    RefEnum        instruction_opcodes;
 +  }
 +  Enum instruction_opcodes {
 +    BYPASS            = 4'b1111;
 +    CLAMP             = 4'b0000;
 +    EXTEST            = 4'b0001;
 +    EXTEST_PULSE      = 4'b0010;
 +    EXTEST_TRAIN      = 4'b0011;
 +    INTEST            = 4'b0100;
 +    SAMPLE            = 4'b0101;
 +    PRELOAD           = 4'b0101;
 +    HIGHZ             = 4'b0110;
 +    HOSTIJTAG_1       = 4'b0111;
 +  }
 + 
 +  ScanRegister bypass {
 +    CaptureSource  1'b0;
 +    ScanInSource   tdi;
 +  }
 +  ScanMux IRMux SelectedBy fsm.irSel {
 +    1'b0 : DRMux;
 +    1'b1 : instruction[0];
 +  }
 +  ScanMux DRMux SelectedBy instruction {
 +    4'b1111           : bypass;
 +    4'b0000           : bypass;
 +    4'b0001           : host_bscan_from_so;
 +    4'b0010           : host_bscan_from_so;
 +    4'b0011           : host_bscan_from_so;
 +    4'b0100           : host_bscan_from_so;
 +    4'b0101           : host_bscan_from_so;
 +    4'b0110           : bypass;
 +    4'b0111           : host_1_from_so;
 +    'bX               : bypass;
 +  }
 +  Attribute            keep_active_during_scan_test = "true";
 +  Attribute            tessent_instruction_reg          = "instruction";
 +  Attribute            tessent_bypass_reg               = "bypass";
 +  //Attribute            tessent_instrument_container     = "chip_top_rtl1_ijtag"; 
 +  //Attribute            tessent_use_in_dft_specification = "false";
 +  //Attribute            tessent_instrument_type          = "mentor::ijtag_node";
 +  //Attribute            tessent_instrument_subtype       = "tap_controller";
 +  //Attribute            tessent_signature                = "774f0efdef9d5b074af5f536d5077f57";
 +}
 +Module tap_fsm {
 +  TCKPort        tck;
 +  TMSPort        tms;
 +  TRSTPort       trst;
 +  ToIRSelectPort irSel;
 +  ToResetPort    tlr;
 +}
 +</code>
 ==== - tap_t ==== ==== - tap_t ====
 <code tcl> <code tcl>
行 118: 行 302:
                                    -existing_bscan_host_scan_in tap_t/host_bscan_from_so]                                    -existing_bscan_host_scan_in tap_t/host_bscan_from_so]
 report_config_data $spec report_config_data $spec
 +delete_config_element [get_config_elements "Sib(sri_local)" -hierarchical -in_wrappers $spec]
 </code> </code>
  
行 193: 行 378:
   }   }
 } }
- 
 </code> </code>
 ===== - get_config_elements ===== ===== - get_config_elements =====
行 260: 行 444:
 {/tmp(1)/ABC(DeF,2)/prop1 /tmp(1)/ABC(DeF,2)/Prop2} {/tmp(1)/ABC(DeF,2)/prop1 /tmp(1)/ABC(DeF,2)/Prop2}
  
 +
 +
 +==== - 实例 ====
 +它的这个()括号是不匹配的,需要显式写出来。
 +<code tcl>
 +ANALYSIS> get_config_elements *(*local*) -hierarchical   -in_wrappers $spec
 +{/DftSpecification(chip_top,rtl1)/IjtagNetwork/HostScanInterface(ijtag)/Sib(sri)/Sib(sri_local)}
 +ANALYSIS> get_config_elements *local* -hierarchical   -in_wrappers $spec
 +{/DftSpecification(chip_top,rtl1)/IjtagNetwork/HostScanInterface(ijtag)/Interface/tdi_local /DftSpecification(chip_top,rtl1)/IjtagNetwork/HostScanInterface(tap)/Interface/tdi_local /DftSpecification(chip_top,rtl1)/IjtagNetwork/HostScanInterface(bscan)/Interface/tdi_local}
 +</code>
  
  
 ===== - get_name_list ===== ===== - get_name_list =====
 +
 +此命令等同于
 +<code tcl>
 +get_attribute_value_list object_spec ‑name name
 +</code>
 +
 +用于将collection格式的name转换为普通tcl string格式的name
  
 <code tcl> <code tcl>
行 269: 行 470:
 } }
 </code> </code>
 +
 +===== - set_defaults_value  =====
 +
 +<code>
 +set_defaults_value DftSpecification/rtl_extension vb
 +set_defaults_value DftSpecification/use_rtl_cells off
 +set_defaults_value DftSpecification/MemoryBist/repair_sharing on
 +</code>
 +
edastudy/tessent/dft_spec.1716426063.txt.gz · 最后更改: 2024/05/23 09:01 由 zhangguo

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki