← Back to Patent Explorer
US5638291A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for making integrated circuits by inserting buffers into a netlist to control clock skew

Assignee: Philips Semiconductors Inc
•
Filing: 1994-10-14
•
Granted: 1997-06-10
•
Expires: 2014-10-14
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract The present invention discloses a method and an apparatus for making digital integrated circuits by considering ramp delay and clock skew as constraints while minimizing the number of inserted buffers and overall wire length connecting components for large clock trees. The invention includes developing a set of circuit specifications including maximum clock skew, minimum driveability, and maximum ramp delay. These specifications are described in a hardware description language on a digital computer system, and a netlist is synthesized from this hardware description. A modified netlist is then formed by analyzing the netlist and inserting buffers into it to satisfy the circuit specifications of skew, driveabilility, and ramp delay. Thereafter, a digital integrated circuit is produced as specified by the modified netlist.

Inventors

  • 👤 Ying-Meng Li
  • 👤 Sunil V. Ashtaputre
  • 👤 Jacob Greidinger
  • 👤 Mark R. Hartoog
  • 👤 Moazzem M. Hossain
  • 👤 Siu-Tong Hui

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-27 19:41
CPC Classifications
G; G06; G06F; G06F30/00; G06F30/30; G06F30/32; G06F30/323; G06F30/39; G06F30/394; G06F30/396

Claims Analysis

Total Claims: 23
Claim 1
Independent Claim 257 words
A method for making a digital integrated circuit comprising: developing a set of circuit specifications for a digital integrated circuit including a maximum clock skew, a minimum driveability, and a maximum ramp delay; describing said set of circuit specifications in a hardware description language and inputting said hardware description language into a digital computer system; synthesizing on said digital computer system a netlist from said hardware description language which specifies circuitry of said integrated circuit, said synthesized netlist describing at least one clock net; analyzing and inserting buffers as required into said netlist on said digital computer system to create a modified netlist which describes a circuit that has at most said maximum clock skew, at least said minimum driveability, and at most said maximum ramp delay said analyzing and inserting buffers including creating an initial routing for said clock net, computing partial parameters for said clock net by conducting a bottom up scan and a top down scan of said clock net, finding at least one balance point in said clock net based on said partial parameters, and inserting a driver into said clock net at said balance point; and producing a digital integrated circuit as specified by said modified netlist comprising a semiconductor die including said circuitry of said integrated circuit, said semiconductor die having a plurality of I/O pads, a package enclosing said integrated circuit die, a plurality of leads extending from said package, and a plurality of conductors coupling said plurality of I/O pads of said semiconductor die to said plurality of leads.
Claim 2
Independent Claim 257 words
A method for making a digital integrated circuit comprising: developing a set of circuit specifications for a digital integrated circuit including a maximum clock skew, a minimum driveability, and a maximum ramp delay; describing said set of circuit specifications in a hardware description language and inputting said hardware description language into a digital computer system; synthesizing on said digital computer system a netlist from said hardware description language which specifies circuitry of said integrated circuit, said synthesized netlist describing at least one clock net; analyzing and inserting buffers as required into said netlist on said digital computer system to create a modified netlist which describes a circuit that has at most said maximum clock skew, at least said minimum driveability, and at most said maximum ramp delay said analyzing and inserting buffers including creating an initial routing for said clock net, computing partial parameters for said clock net by conducting a bottom up scan and a top down scan of said clock net, finding at least one balance point in said clock net based on said partial parameters, and inserting a driver into said clock net at said balance point; and producing a digital integrated circuit as specified by said modified netlist comprising a semiconductor die including said circuitry of said integrated circuit, said semiconductor die having a plurality of I/O pads, a package enclosing said integrated circuit die, a plurality of leads extending from said package, and a plurality of conductors coupling said plurality of I/O pads of said semiconductor die to said plurality of leads.
Claim 3
Dependent Claim 61 words
A method as recited in claim 1 further comprising the steps of: laying out on said digital computer system at least portions of said circuitry of said integrated circuit; and producing at least one integrated circuit mask based upon said laying out step; wherein said integrated circuit is produced, at least in part, with said at least one integrated circuit mask.
Claim 4
Dependent Claim 27 words
A method as recited in claim 2 wherein said step of laying out comprises laying out at least portions of said circuitry for a gate array circuit.
Claim 5
Dependent Claim 27 words
A method as recited in claim 2 wherein said step of laying out comprises laying out at least portions of said circuitry for a standard cell circuit.
Claim 6
Dependent Claim 40 words
A method as recited in claim 1 further comprising the step of: developing on said digital computer system a description of a placement of physical electronic devices corresponding to said previously synthesized netlist prior to said analyzing and inserting steps.
Claim 7
Dependent Claim 31 words
A method as recited in claim 5 further comprising the step of modifying said description of a placement based upon said modified netlist to produce a modified description of a placement.
Claim 8
Dependent Claim 79 words
A method as recited in claim 6 further comprising the steps of: verifying whether all of said clock nets implemented in said modified description of a placement meets user-defined circuit parameters; repeating said analyzing and inserting steps if said modified description does not meet user-defined circuit parameters; and routing interconnections between said physical electronic devices as described in said modified description of placement when all of said clock nets implemented in said modified description meet said user-defined circuit parameters.
Claim 9
Dependent Claim 42 words
A method as recited in claim 7 wherein said analyzing and inserting steps are performed recursively until no clock net has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay.
Claim 10
Independent Claim 300 words
A method for laying out a digital integrated circuit comprising: analyzing on a digital computer system a previously synthesized netlist created by a synthesizer routine implemented on said digital computer system, said previously synthesized netlist describing at least one clock net; inserting into said previously synthesized netlist a description of at least one buffer such that no clock net described by said netlist has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, thereby creating a modified netlist; and wherein said analyzing and inserting are performed recursively until no clock net has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, and said analyzing and inserting include: (a) choosing a clock net; (b) creating on said computer system an initial routing comprising an initial sibling of an initial sibling level for said clock net; (c) computing partial parameters for each sibling; (d) finding a balance point of each sibling; (e) dividing each sibling into a plurality of siblings of a subsequent sibling level if all siblings at a sibling level do not have greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, and repeating (c) through (e) until all siblings of a subsequent sibling level meet said criteria; (f) determining if the level is at said initial level and choosing an additional clock net and repeating steps (b) to (f) if it is; and (g) inserting a driver into said clock net at said balance point of each sibling at said subsequent level, resetting the sibling level to said initial sibling level, and repeating (c) to (f) until all clock nets have been processed.
Claim 11
Independent Claim 300 words
A method for laying out a digital integrated circuit comprising: analyzing on a digital computer system a previously synthesized netlist created by a synthesizer routine implemented on said digital computer system, said previously synthesized netlist describing at least one clock net; inserting into said previously synthesized netlist a description of at least one buffer such that no clock net described by said netlist has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, thereby creating a modified netlist; and wherein said analyzing and inserting are performed recursively until no clock net has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, and said analyzing and inserting include: (a) choosing a clock net; (b) creating on said computer system an initial routing comprising an initial sibling of an initial sibling level for said clock net; (c) computing partial parameters for each sibling; (d) finding a balance point of each sibling; (e) dividing each sibling into a plurality of siblings of a subsequent sibling level if all siblings at a sibling level do not have greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, and repeating (c) through (e) until all siblings of a subsequent sibling level meet said criteria; (f) determining if the level is at said initial level and choosing an additional clock net and repeating steps (b) to (f) if it is; and (g) inserting a driver into said clock net at said balance point of each sibling at said subsequent level, resetting the sibling level to said initial sibling level, and repeating (c) to (f) until all clock nets have been processed.
Claim 12
Dependent Claim 47 words
A method for laying out a digital integrated circuit as recited in claim 9 further comprising the step of: developing on said digital computer system a description of a placement of physical electronic devices corresponding to said previously synthesized netlist prior to said analyzing and inserting steps.
Claim 13
Dependent Claim 38 words
A method for laying out a digital integrated circuit as recited in claim 10 further comprising the step of modifying said description of a placement based upon said modified netlist to produce a modified description of a placement.
Claim 14
Dependent Claim 86 words
A method for laying out a digital integrated circuit as recited in claim 11 further comprising the steps of: verifying whether all of said clock nets implemented in said modified description of a placement meets user-defined circuit parameters; repeating said analyzing and inserting steps if said modified description does not meet user-defined circuit parameters; and routing interconnections between said physical electronic devices as described in said modified description of placement when all of said clock nets implemented in said modified description meet said user-defined circuit parameters.
Claim 15
Dependent Claim 48 words
A method for laying out a digital integrated circuit as recited in claim 9 wherein said balance point is at a particular point in clock net having minimum skew, said skew being the difference between the maximum and minimum latency delays between specified levels of said clock net.
Claim 16
Dependent Claim 24 words
A method for laying out a digital integrated circuit as recited in claim 13 wherein said balance point is determined by said partial parameters.
Claim 17
Independent Claim 252 words
A system for creating integrated circuit masks comprising: (a) a digital hardware description processor including a central processing unit (CPU), digital storage coupled to said CPU, and a user input device coupled to said CPU, said hardware description processor being operative to; (i) create mask generation data from a hardware description of a set of circuit specifications for a digital integrated circuit received from said user input device, said circuit specifications including a maximum clock skew, a minimum driveability, and a maximum ramp delay, (ii) develop a netlist from said hardware description, said netlist specifying circuitry of said integrated circuit and describing at least one clock net, (iii) insert buffers, as required, into said netlist so as to provide a modified netlist which describes an integrated circuit having at most said maximum clock skew, at least said minimum driveability, and at most said maximum ramp delay, by creating an initial routing for said clock net, computing partial parameters for said clock net by conducting a bottom up scan and a top down scan of said clock net, finding at least one balance point in said clock net based on said partial parameters, inserting a driver into said clock net at said balance point; (iv) develop said mask generation data from said modified netlist and store said mask generation data in said digital storage; and (b) a digital mask generator coupled to said digital storage for making at least one integrated circuit mask from said mask generation data stored in said digital storage.
Claim 18
Independent Claim 252 words
A system for creating integrated circuit masks comprising: (a) a digital hardware description processor including a central processing unit (CPU), digital storage coupled to said CPU, and a user input device coupled to said CPU, said hardware description processor being operative to; (i) create mask generation data from a hardware description of a set of circuit specifications for a digital integrated circuit received from said user input device, said circuit specifications including a maximum clock skew, a minimum driveability, and a maximum ramp delay, (ii) develop a netlist from said hardware description, said netlist specifying circuitry of said integrated circuit and describing at least one clock net, (iii) insert buffers, as required, into said netlist so as to provide a modified netlist which describes an integrated circuit having at most said maximum clock skew, at least said minimum driveability, and at most said maximum ramp delay, by creating an initial routing for said clock net, computing partial parameters for said clock net by conducting a bottom up scan and a top down scan of said clock net, finding at least one balance point in said clock net based on said partial parameters, inserting a driver into said clock net at said balance point; (iv) develop said mask generation data from said modified netlist and store said mask generation data in said digital storage; and (b) a digital mask generator coupled to said digital storage for making at least one integrated circuit mask from said mask generation data stored in said digital storage.
Claim 19
Dependent Claim 26 words
A system as recited in claim 15 wherein said hardware description processor comprises a synthesizer for producing said netlist, and layout means for inserting said buffers.
Claim 20
Dependent Claim 99 words
A system as recited in claim 16 wherein said layout means includes: means for analyzing on said digital hardware description processor a previously synthesized netlist created by a synthesizer routine implemented on said digital hardware description processor said previously synthesized netlist describing at least one clock net; and means for inserting into said previously synthesized netlist a description of at least one buffer such that no clock net described by said netlist has greater than a user-defined maximum clock skew, less than a user-defined minimum driveability, and greater than a user-defined maximum ramp delay, thereby creating a modified netlist.
Claim 21
Dependent Claim 40 words
A system as recited in claim 17 further comprising: means for developing on said digital hardware description processor a description of a placement of physical electronic devices corresponding to said previously synthesized netlist prior to said analyzing and inserting steps.
Claim 22
Dependent Claim 30 words
A system as recited in claim 18 further comprising means for modifying said description of a placement based upon said modified netlist to produce a modified description of a placement.
Claim 23
Dependent Claim 82 words
A system as recited in claim 19 further comprising: means for verifying whether all of said clock nets implemented in said modified description of a placement meets user-defined circuit parameters; means for repeating said analyzing and inserting steps if said modified description does not meet user-defined circuit parameters; and means for routing interconnections between said physical electronic devices as described in said modified description of placement when all of said clock nets implemented in said modified description meet said user-defined circuit parameters.

References Cited (Backward Citations)

US4831543A Cited
US5239215A Cited
US5258660A Cited
US5299137A Cited
US5410491A Cited
US5499192A Cited
US5402356A Cited
US5392227A Cited
US5452239A Cited
US5396435A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2000-06-09 2000-12-09 2001-06-10 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2004-06-09 2004-12-09 2005-06-10 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2008-06-09 2008-12-09 2009-06-10 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag