Combinational Logic Snake Paths

When using spyglass to do netlist audit, there is a rule called HiDeFCombLogicSnakePath. For backend design, it’s better avoid snake paths in the design. And what’s a snake path?

When using spyglass to do netlist audit, there is a rule called HiDeFCombLogicSnakePath. For backend design, it’s better avoid snake paths in the design. And what’s a snake path?

Snake Path:

Snake path is a combinational path going through many blocks of the design.

Disadvantage of  Snake Path:

Timing budgeting of snake paths is very difficult. It’s hard to arrange timing between different blocks. In simple words, combinational snake path is diffcult to meet timing.

Snake Path Analysis:

Above pic is an example of poor partitioning. In the example, the critical path is divided between  two  modules.  Synthesis  cannot  by  default  move  logic  across  hierarchical boundaries.  Therefore,  Design  Compiler  cannot  share  gates  between  the  two  modules.

This problem is further exacerbated when the critical path "snakes" its way through many modules. Especially in high speed designs, where reducing the number of logic levels is vitally important, long snake paths make it very difficult to reduce or optimize the logic effectively.

Leave a Reply

Your email address will not be published. Required fields are marked *