This invention relates to circuit design, and more particularly, to circuit design tools with optimization assistance capabilities.
Complex integrated circuit designs are typically created using computer aided design (CAD) tools. For example, logic designers that are designing custom logic circuits for programmable logic devices (PLDs), use PLD design tools to help create their designs. Designers of application specific integrated circuits (ASICs) and other integrated circuits also use tools during the design process.
After a circuit designer has input a desired circuit design and has provided the CAD tools with constraints for the design such as acceptable timing performance criteria, the circuit designer uses the CAD tools to generate an output in a desired format. The CAD tools may, for example, use the specified design to generate configuration data for a programmable logic device. The configuration data can be loaded into the programmable logic device to create a custom logic circuit implementation of the circuit design. As another example, the CAD tools may use the specified design to generate mask layout data. The mask layout data may be used to produce a mask set with which to fabricate a chip containing the desired circuit design.
The performance of a given implementation of a circuit design depends on a number of factors. CAD tools are available that assist circuit designers in identifying potential problems. For example, programmable logic device CAD tools are available that can generate a report on each implementation of a given design. The report may contain information on timing performance, resource consumption, etc. A circuit designer can use the information in these reports to evaluate whether or not a particular design is performing satisfactorily.
If information in a report indicates that the circuit is not meeting the designer's goals, the circuit designer must attempt to reformulate the circuit design or change the constraints associated with the design. Often the designer is not certain how to make improvements, so the designer consults online help services or attempts to obtain assistance from a vendor's telephone help desk. Through online searching and conversations with help desk personnel, the circuit designer may obtain information on which CAD tool settings should be modified to improve the design. The designer then runs various CAD tools and attempts to adjust the correct settings. It may often take hours or days to make improvements, due to the large number of variables involved.
It would be desirable if there were improved ways to use CAD tools to optimize a circuit design.