Patent ID: 6668358
Filing Date: 2003-12-23
Classification: G06F

Abstract:
A method of replacing low threshold voltage logic blocks wit high threshold voltage logic blocks in an ASIC design system, comprising the steps of:initializing all logic bloc s to low threshold voltage versions of said logic blocks; computing delays for al logic blocks; computing slack for all inputs and outputs of all logic blocks; iterating through all inverters, performing the following steps for each inverter: replacing each low threshold voltage inverter with a high threshold voltage inverter; recomputing all delays and slacks in paths affected by each replacement of a low threshold voltage inverter, and checking if the replacement results in a negative slack; restoring each said high threshold voltage inverter block to the original low threshold voltage inverter, and restoring the delays and slacks to their values prior to the replacement, if slack is found to be negative in the preceding step; subsequent to iterating through all inverters, iterating through all two input NAND blocks, and, optionally two input NOR blocks, performing the following steps for each two input NAND, and, optionally, two input NOR: replacing each low threshold voltage instance of said two input NAND and NOR blocks wit a high threshold voltage version of said two input NAND and NOR blocks; reassigning input signals on each said two input NAND and NOR block to logically equivalent inputs by slack, coupling an input with a largest slack to an input on said two input NAND and NOR block with a largest delay characteristic, and an input with a smallest slack to an input on said two input NAND and NOR block with a smallest delay characteristic; recomputing all delays and slacks in paths affected by each replacement of said low threshold two input NAND and NOR blocks, and checking if the replacement results in a negative slack; and restoring each said high threshold voltage replacing two input NAND and NOR block to the original low threshold NAND and NOR block, restoring the signal to input assignments existent prior to the reassignment step, and restoring the delays and slacks to their values prior to the replacement, if slack is found to be negative in the preceding step.