The invention relates to design, simulation and debugging of microelectronic circuits. More specifically, the invention relates to synthesizing an integrated environment for developing microelectronic circuits.
Demand for expanded functionality, increased speed and reduced power consumption of electronic devices drives microelectronic circuit manufacturers to produce ever-smaller, ever-more-complex integrated circuits. Circuits are often produced at or near the limits of current technology: device sizes are reduced, voltages are lowered, and circuit areas are increased. These trends place demands on the tools used throughout the design, manufacturing, testing and debugging process. For example, layout tools must manage more structures in larger areas, simulation tools must track more signals with a greater range of possible propagation delays, and chip debugging tools must resolve smaller structures and shorter pulses. However, in addition to the increased demands placed on individual tools in the tool-chain, the increased complexity demands improved inter-domain coordination.
Presently-used tools, such as Gatevision® from Concept Engineering GmbH for viewing circuit schematics; Merlin's Framework™ from Knights Technology™ for chip layout; CSim from Intel Corporation and other similar tools for simulating register transfer logic (“RTL”) models; and pico-probing tools and microscopes for examining physical circuits; lack effective correlation capabilities, so that an engineer may have difficulty determining, for example, what signal an observed broken conductor carries, and what effect the lost signal might have on the expected simulation results. A system to link tools and coordinate data from various design and debug domains may be of significant value to microelectronics manufacturers.
Embodiments of the invention are illustrated by way of example and not by way of limitation in the figures of the accompanying drawings in which like references indicate similar elements. It should be noted that references to “an” or “one” embodiment in this disclosure are not necessarily to the same embodiment, and such references mean “at least one.”
A design or debug “domain” is a set of data about an aspect of an apparatus or process. Complex devices and processes can often be examined from several perspectives, and design or debug tools are typically tuned to present information from only one or two perspectives. This is shown in
Each tool's view of the overall set of information can be correlated with some of the other tools'views through one or more common parameters. For example, a structure depicted graphically in a layout editor may correspond to a transistor in the schematic view or to a specific area of a semiconductor die that can be viewed under the microscope. Some pairs of tools, however, may not share common parameters between their views of the overall data set. For example, a logic simulator may have no use for physical location information available in the views of the layout editor and microscope. Nevertheless, correlations through an intermediate tool's view can still be made: a structure at a particular physical location of a semiconductor corresponds to a transistor in the circuit schematic, which is part of a logic gate, the output of which may be viewed in the logic simulator.
During the development of a microelectronic circuit design, engineering tasks tend to be reasonably well-partitioned with respect to the data perspective necessary to perform the task. Thus, for example, a designer adjusting the shape of a transistor to fit within a constrained area would be unlikely to refer to a simulation trace to see whether the transistor is on or off at a particular point in time, while an engineer analyzing a circuit timing diagram would not need to know whether a trace carrying a signal was oriented horizontally or vertically. This partitioning provides several benefits: tools can be simpler, since they need not display or account for irrelevant information; and manufacturers can upgrade or replace tools piecemeal as better ones become available.
Unfortunately, the same modularity that is useful in circuit design hinders circuit debugging. When analyzing a defective die, an engineer is very likely to move between domains frequently, so permitting fast, accurate perspective shifts can significantly improve debugging outcomes. An embodiment of the invention, operating generally according to the flowchart of
An embodiment will include a database module 350 to access the datasets of the tools. Some tools may provide an export function to make their data more readily available to external programs. When available, standard data formats can reduce the complexity of interfacing with proprietary databases.
An event detector 360 is provided to monitor operations of the development tools and to detect when a user selects an element through a tool's interface. The detector may analyze the selection or interrogate the tool to identify the selected element. Then, the selection is passed to correlation logic 370, which refers to relational rules and information gathered by the database module to map the selected element to corresponding elements in the domains of other tools. Finally, the signaling module 380 causes the other tools to alter their displays to show the corresponding elements.
Some embodiments will also provide utility functions 390 to streamline the debugging process. For example, a function to launch all the linked tools automatically (393) can save a considerable amount of time when the tools must normally be executed on different machines located at various places around a facility, and a function to monitor and restart tools that have crashed (396) can help to prevent interruptions to a debugging session.
From the user's perspective, an embodiment of the invention causes the plurality of independent tools to operate in concert, so that the selection of a structure in the view provided by one tool adjusts the views of the other tools to show, as nearly as possible, the same element. For example, selecting a signal transition in a logic simulation may cause a layout editor to highlight the interconnect carrying the signal, a pico-probing tool to show the actual signal at the time the transition is expected, and a microscope to zoom and/or pan to show the signal source or destination. Similarly, selecting a point on the microscope display may cause the layout editor to show the expected structure, a circuit editor to show the schematic, and an electrical simulator to show the signals expected at the selected node.
When taken all together, functions of an embodiment of the invention streamline the debugging process. This is important not only because of the time saved by automation, but also because debugging often requires fluid, intuitive direction of inquiry. Administrative tasks such as logging in to various systems on a network and adjusting permissions and connections so that required resources are accessible can interrupt an engineer's train of thought and significantly impede progress.
System 410 can communicate with domain-specific tools on other machines through network 420. Tools may be located at any physical distance from system 410 as long as data can be exchanged over the network. For example, tools 460 and 480 are at a location remote from system 410, and communicate in part over a wide-area network such as the Internet 425.
Tools 430, 440, 450, 460 and 480 may run on independent systems, or some tools may be consolidated onto a single system. Systems may implement heterogeneous operating environments. Some tools may run on dedicated, single-purpose hardware, while others may be useable on a general-purpose computer. Any of the tool systems may be run without a monitor (“headless”), since the tool displays are collected and presented to the engineer working at system 410 by a display consolidator.
Some tools may work entirely on abstract data. For example, layout editor 430, schematic editor 440 and logic simulator 450 may be applications that do not require any special hardware facilities to perform their functions. In contrast, software on system 460 controls microscope 470 and acquires images of a sample microelectronic circuit, while an application on system 480 controls probing fixture 490 to inject and monitor signals. Data from many types of tools can be consolidated and displayed to a user at system 410, and the user can use input devices such as mouse 403 and keyboard 405 to interact with the tools. An embodiment of the invention may ensure that user inputs, such as a selection of an element in one tool, are transmitted to the system hosting the tool in an appropriate form to cause the tool to perform the desired action. If the user performs a predetermined action, such as selecting or highlighting an element, an embodiment of the invention can locate corresponding elements in the domains of other tools and signal the other tools to perform a similar highlighting or selection of the corresponding elements.
An embodiment of the invention may be a machine-readable medium having stored thereon instructions which cause a processor to perform operations as described above. In other embodiments, the operations might be performed by specific hardware components that contain hardwired logic. Those operations might alternatively be performed by any combination of programmed computer components and custom hardware components.
A machine-readable medium may include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computer), including but not limited to Compact Disc Read-Only Memory (CD-ROMs), Read-Only Memory (ROMs), Random Access Memory (RAM), Erasable Programmable Read-Only Memory (EPROM), and a transmission over the Internet.
The applications of the present invention have been described largely by reference to specific examples and in terms of particular allocations of functionality to certain hardware and/or software components. However, those of skill in the art will recognize that consolidation of domain-specific data presentation for debugging can also be produced by software and hardware that distribute the functions of embodiments of this invention differently than herein described. Such variations and implementations are understood to be apprehended according to the following claims.