functional mode (test_mode = 0) that enables the fast clock gater to supply a fast clock to the design.
shift mode (scan_en = 1) that uses the slow_clock to load and unload the scan chains, including the condition bits in ShiftReg.
Shift-only mode disables the OCC (test_mode = 0) and activates shift (scan_en = 1). It enables the slow clock clock gater to use the slow clock path for shift, and it enables bypass shift.
这个信号默认需要连接到 DFT信号ext_ltest_en
slow capture mode (fast_capture_mode = 0) that uses the slow_clock to capture data into the scan cells and to shift the condition bits in ShiftReg.
fast capture mode (fast_capture_mode = 1) that uses the fast_clock to capture data into the scan cells and to shift the condition bits in ShiftReg.
kill clock mode (kill_clock_en = 1) that enables you to block propagation of fast_clock input to clock_out output. Asserting the kill_clock_en signal is effective in the two operating modes when the OCC is not active:
clock_mux21 tessent_persistent_cell_inject_tck_mux ( .A0 ( slow_clock_buf_out ), .A1 ( ijtag_tck ), .S0 ( inject_tck ), .Y ( slow_clock_tck_injected ) ); cgand tessent_persistent_cell_cgc_fast_clock ( .CK ( fast_clock_buf_out ), .FE ( fast_clock_en ), .TE ( fast_clock_en ), .GCK ( fast_clock_gated ) ); cgand tessent_persistent_cell_cgc_slow_clock ( .CK ( slow_clock_tck_injected ), .FE ( slow_clock_en ), .TE ( slow_clock_en ), .GCK ( slow_clock_gated ) ); clock_mux21 tessent_persistent_cell_clock_out_mux ( .A0 ( fast_clock_gated ), .A1 ( slow_clock_gated ), .S0 ( clock_mux_select ), .Y ( clock_out ) ); assign kill_clock_en_gated = kill_clock_en & ~test_mode; assign fast_clock_en = ((ShiftReg_SCAN_OUT & fast_capture_mode & (SCAN_EN_inv_sync || active_upstream_parent_occ)) | (~test_mode)) & (~kill_clock_en_gated); assign slow_clock_en = (((ShiftReg_SCAN_OUT & (~fast_capture_mode)) | scan_en) & test_mode) | inject_tck | (shift_only_mode & scan_en); assign clock_mux_select = ((scan_en | (~fast_capture_mode)) & test_mode) | inject_tck | (shift_only_mode & scan_en);
Parent-mode operation is one of the operating modes of the standard OCC.
This operating mode bypasses the OCC clock gating logic and performs clock selection only.
It requires a downstream child-mode OCC to perform the clock gating and chopping.
Parent-mode, 父OCC只做时钟function clk 与shift clk之间进行切换,不做OCC的pluse gateing(这部分由child-OCC来实现)
SSN好像是不支持child OCC
Child OCC有两种实现:
# 级联OCC会报R27问题, 配置成Parent OCC mode + child OCC mode就不会报这个问题。 add_core_instances -inst [get_inst top_rtl2_tessent_occ_parent_*] \ -parameter {parent_mode on fast_capture_mode on} set_static_dft_signal_values retargeting3_mode 1 //set_drc_handling R27 warning set_core_instance_parameters -instances \ coreb_i1/coreb_rtl2_tessent_occ_clka_inst -parameter_values \ {active_upstream_parent_occ on} set_core_instance_parameters -instances \ coreb_i1/coreb_rtl2_tessent_occ_clkb_inst -parameter_values \ {active_upstream_parent_occ on} set_core_instance_parameters -instances \ coreb_i1/coreb_rtl2_tessent_occ_clkc_inst -parameter_values \ {active_upstream_parent_occ on}