DETAILED ACTION
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1-10 and 12-20 are rejected under 35 U.S.C. 102(a)(2) as being anticipated by Saha et al., hereinafter Saha, US Publication No. 2024/0303401.
Regarding Claim 1, Saha teaches a method comprising:
synthesizing a circuit design into a netlist by a design tool (Saha paragraphs [0020] and [0026], wherein logic synthesis is performed on an RTL description of a circuit design that produces a netlist);
identifying features from the netlist by the design tool (Saha paragraphs [0031], [0041]-[0042] and [0044], wherein the netlist is processed to extract path and node level features);
applying a congestion prediction model to the features by the design tool prior to placement, wherein application of the congestion prediction model generates a prediction value indicative of a congestion level likely to result from placement and routing of the netlist (Saha paragraph [0046], wherein a machine learning model is used to predict congestion values); and
in response to the prediction value indicating the congestion level is greater than a threshold:
determining an implementation-flow action by the design tool (Saha paragraphs [0026]-[0027] and [0031], wherein if target optimization goals and quality metrics thresholds are not satisfied, changes to the design parameters are implemented), and
performing the implementation-flow action to generate implementation data that is suitable for making an integrated circuit (IC) (Saha paragraph [0031], wherein the changes are implemented until a solution that meets optimization goals and quality metrics is achieved).
Regarding Claim 2, Saha further teaches wherein:
the determining includes determining parameter settings for a placement process or a routing process of the design tool (Saha paragraphs [0027], [0031] and [0046], wherein design parameters for the design process may be modified, the design process including physical synthesis which includes placement and routing); and
the performing includes executing by the design tool, the placement process and the routing process using the parameters settings (Saha paragraph [0031], wherein the settings are iteratively changed and input to the machine learning model to determine if the predicted values meet design specifications).
Regarding Claim 3, Saha further teaches bypassing determining the parameter settings and executing the placement process and the routing process of the design tool in response to the prediction value indicating the congestion level is less than a threshold (Saha paragraph [0031], wherein if optimization goals and quality metrics are achieved, the circuit solution is acceptable and does not need changes).
Regarding Claim 4, Saha further teaches wherein:
the determining includes determining modifications to make to the circuit design (Saha paragraphs [0026]-[0027] and [0031], wherein if target optimization goals and quality metrics thresholds are not satisfied, changes to the design parameters are implemented); and
the performing includes modifying the circuit design to include the modifications (Saha paragraph [0031], wherein the changes are implemented until a solution that meets optimization goals and quality metrics is achieved).
Regarding Claim 5, Saha further teaches selecting, in response to an input parameter to the design tool specifying one of a first type target integrated circuit (IC) device or a second-type target IC device, the congestion prediction model from a first congestion prediction model and a second congestion prediction model (Saha paragraphs [0038] and [0045], wherein multiple instances of design data corresponding to different types of circuit designs are provided and used to train different models based on user desired needs), wherein the first congestion prediction model is associated with the first type target IC device, and the second congestion prediction model is associated with the second type target IC device (Saha paragraph [0017], wherein there are a plurality of different target IC devices).
Regarding Claim 6, Saha further teaches wherein the first type target IC device is a single semiconductor die targeted to implement the circuit design, and the second type target IC device includes a package of two or more semiconductor dice targeted to implement the circuit design (Saha paragraphs [0017] and [0074], wherein target IC devices include devices with one or more chips).
Regarding Claim 7, Saha further teaches wherein:
the circuit design is targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
identifying the features includes determining one or more levels of utilization by the netlist of one or more types of circuit elements, respectively, of the target IC device (Saha paragraph [0059], wherein feature extraction includes determining the utilization of circuits).
Regarding Claim 8, Saha further teaches wherein:
the circuit design is targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
the features include an indicator that a count of high-fanout nets is greater than a first threshold, and a net having a count of fanouts greater than a second threshold is a high-fanout net (Saha paragraphs [0041] and [0058]-[0059], wherein features include counts of fan-out).
Regarding Claim 9, Saha further teaches wherein identifying the features includes estimating a worst negative slack and a worst hold slack from the netlist, and the features includes the worst negative slack and the worst hold slack (Saha paragraph [0041], wherein node features include worst slack).
Regarding Claim 10, Saha further teaches wherein:
the circuit design is targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
identifying the features includes indicating a number of programmable processors and a number of transceivers available on the target IC device (Saha paragraph [0118], wherein features of target devices include programmable processors and transceivers).
Regarding Claim 12, Saha teaches a method comprising:
synthesizing and performing logic optimization on circuit designs of a training set to generate respective netlists by a design tool (Saha paragraphs [0032] and [0036]-[0038], wherein RTL descriptions of a circuit design are synthesized into netlists based on multiple instances of input feature data sets corresponding to different types of circuit designs used to train a model);
determining respective feature sets of the netlists by the design tool (Saha paragraph [0044], wherein features of the netlist are extracted);
performing placement and routing on the netlists to generate placed-and-routed designs (Saha paragraphs [0037] and [0044], wherein the input feature data set includes full layout descriptions or outputs of physical synthesis stages, physical synthesis stages including performing placement and routing);
determining respective congestion levels from the placed-and-routed designs (Saha paragraphs [0037]-[0038], [0046] and [0059], wherein congestion is determined as labeled output data); and
training a classification model using the respective features sets and respective congestion levels (Saha paragraphs [0035]-[0036], wherein models are trained based on the input feature data set and the labeled output data).
Regarding Claim 13, Saha further teaches wherein:
the circuit designs are targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
determining the respective feature sets includes determining for each circuit design, one or more levels of utilization by the netlist of one or more types of circuit elements, respectively, of the target IC device (Saha paragraph [0059], wherein feature extraction includes determining the utilization of circuits).
Regarding Claim 14, Saha further teaches wherein:
the circuit designs are targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
determining the respective feature sets includes determining for each circuit design, a high-fanout indicator (Saha paragraphs [0041] and [0058]-[0059], wherein features include counts of fan-out).
Regarding Claim 15, Saha further teaches wherein determining the respective feature sets includes estimating a worst negative slack and a worst hold slack from each netlist, and each feature set includes the worst negative slack and the worst hold slack (Saha paragraph [0041], wherein node features include worst slack).
Regarding Claim 16, Saha further teaches wherein:
the circuit designs are targeted for implementation on a target integrated circuit (IC) device (Saha paragraphs [0017]-[0018], wherein the circuit design is targeted to be manufactured as an ASIC, FPGA, SOC, etc…); and
determining the respective feature sets includes indicating a number of programmable processors and a number of transceivers available on the target IC device (Saha paragraph [0118], wherein features of target devices include programmable processors and transceivers).
Regarding Claim 17, Saha teaches a system comprising:
one or more computer processors configured to execute program code (Saha paragraph [0069], see microprocessor); and
a memory arrangement coupled to the one or more computer processors, wherein the memory arrangement is configured with instructions of a design tool (Saha paragraph [0071], see data stores having machine readable instructions) that when executed by the one or more computer processors cause the one or more computer processors to perform operations including:
synthesizing a circuit design into a netlist (Saha paragraphs [0020] and [0026], wherein logic synthesis is performed on an RTL description of a circuit design that produces a netlist);
identifying features from the netlist (Saha paragraphs [0031], [0041]-[0042] and [0044], wherein the netlist is processed to extract path and node level features);
applying a congestion prediction model to the features prior to placement, wherein application of the congestion prediction model generates a prediction value indicative of a congestion level likely to result from placement and routing of the netlist (Saha paragraph [0046], wherein a machine learning model is used to predict congestion values); and
in response to the prediction value indicating the congestion level is greater than a threshold:
determining an implementation-flow action (Saha paragraphs [0026]-[0027] and [0031], wherein if target optimization goals and quality metrics thresholds are not satisfied, changes to the design parameters are implemented), and
performing the implementation-flow action to generate implementation data that is suitable for making an integrated circuit (IC) (Saha paragraph [0031], wherein the changes are implemented until a solution that meets optimization goals and quality metrics is achieved).
Regarding Claim 18, Saha further teaches wherein:
the instructions for determining the implementation-flow action include instructions for determining parameter settings for a placement process or a routing process of the design tool (Saha paragraphs [0027], [0031] and [0046], wherein design parameters for the design process may be modified, the design process including physical synthesis which includes placement and routing); and
the instructions for performing the implementation-flow action include instructions for executing the placement process and the routing process using the parameters settings (Saha paragraph [0031], wherein the settings are iteratively changed and input to the machine learning model to determine if the predicted values meet design specifications).
Regarding Claim 19, Saha further teaches wherein the instructions of the design tool includes instructions for bypassing determining the parameter settings and executing the placement process and the routing process of the design tool in response to the prediction value indicating the congestion level is less than a threshold (Saha paragraph [0031], wherein if optimization goals and quality metrics are achieved, the circuit solution is acceptable and does not need changes).
Regarding Claim 20, Saha further teaches wherein:
the instructions for determining the implementation-flow action include instructions for determining modifications to make to the circuit design (Saha paragraphs [0026]-[0027] and [0031], wherein if target optimization goals and quality metrics thresholds are not satisfied, changes to the design parameters are implemented); and
the instructions for performing the implementation-flow action include instructions for modifying the circuit design to include the modifications (Saha paragraph [0031], wherein the changes are implemented until a solution that meets optimization goals and quality metrics is achieved).
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over Saha as applied to claim 1 above, and further in view of Varadrajan et al., hereinafter Varadrajan, US Patent No. 8,745,567.
Regarding Claim 11, Saha does not explicitly teach wherein identifying the features includes estimating interconnection complexity from the netlist using Rent's rule.
Varadrajan teaches wherein identifying the features includes estimating interconnection complexity from the netlist using Rent's rule (Varadrajan Col. 6, Lines 36-47, wherein routing congestion severity is calculated using Rent’s rule).
It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine the teachings of Saha and Varadrajan because the combination would allow the routing congestion severity as taught by Varadrajan to be predicted by the machine learning model as taught by Saha, yielding the predictable results of faster circuit design optimization, thereby saving design time and costs.
Conclusion
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ERIC D LEE whose telephone number is (571)270-7098. The examiner can normally be reached Monday-Thursday.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Jack Chiang can be reached at 571-272-7483. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ERIC D LEE/Primary Examiner, Art Unit 2851