Block-Level OCC Insertion With A Top-Level PLL
Block-Level OCC Insertion With A Top-Level PLL
Title
Block-Level OCC Insertion with a Top-Level PLL
Description
In the Hierarchical Scan Synthesis (HSS) or Hierarchical Adaptive Scan Synthesis (HASS) flow, we would like to insert block-level OCC controllers
TO control a single top-level PLL clock that propagates into each block.
Answer:
In the D-2010.12-SP2 and earlier releases, only internal leaf pins (and not ports) were permitted for the definition of PLL clock sources. To satisfy
this requirement, users had to manually buffer the incoming PLL clock at the block level, and declare this buffer's output as the PLL clock source.
However, these buffers could get removed during place and route, rendering the SPF useless with the post-layout netlist.
In the D-2010.12-SP3 release, an enhancement was introduced to support this flow. With this enhancement, an input port can be specified as a
PLL clock source. The set_dft_signal command should be used to define the PLL clock input port as type ScanClock, rather than as type
Oscillator:
1. After a block-level OCC is inserted using this enhancement, post-insertion DRC is not supported in DFT Compiler due to a top-level port being
defined as PLL clock. Attempting to run post-insertion DRC results in the following error:
prompt> dft_drc
In mode: Internal_scan...
Design has scan chains in this mode
Design is scan routed
Post-DFT DRC enabled
2. Once an OCC controller is inserted at the block level, another OCC controller should not be inserted in a higher-level module between the PLL
and this block. Otherwise, the design will be incorrect and the test patterns will fail. DFTMAX cannot check for this condition to prevent
double OCC controller insertion.
3. During ATPG, users must issue set_build -portfaults_box OCC_module_name for all OCC-inserted modules. This ensures that the PLL clock
name is preserved during design flattening in the TetraMAX build step.
4. TetraMAX can generate patterns for OCC-inserted blocks, but these patterns will have default timing for the PLL clocks. The patterns should
be updated for block level simulation. Ensure that the PLL clock is free-running in the simulation testbench.
Workaround
Recommended Articles
Inserting OCC Controller Alongside an Existing OCC Controller in the Same Design
Using 8:1 or 16:1 Frequency Ratios with the DFT-Inserted Synchronized OCC Controller