Video overlay

A method includes automatically aligning a laser-based timing analysis image of a semiconductor device with an image of a layout of the device. The method further includes controlling a speed at which a multitude of images subsequently obtained by the laser-based timing analysis are compared to the layout of the device to create a video overlay. The method further includes analyzing a multitude of potential failures of the semiconductor device by detecting movements of a multitude of hotspots on the layout as shown by the video overlay.

BACKGROUND

During failure analysis of an integrated circuit (IC) chip, it is important to accurately identify the failing device or devices on the chip. Hence most FA tools provide marked areas that identify the potential failing devices in a dense layout of the chip, which is typically mounted in the FA tool for analysis. One conventional FA technique is the laser-assisted device alteration (LADA) technique, which creates time resolved images over a fixed field of view. These images have bright spots (hotspots) marking the potential problematic device locations. Users may view 100+ images at various time intervals. LADA technique works on all technology and will become increasingly important as FinFET's and conventional probing techniques phase out. The time resolved LADA technique scales with denser IC technology, while other probing techniques do not scale as well.

To overlay the set of images generated by the LADA technique with the layout, the user must align each image, or manually modify an image alignment file for the whole set of images, which is tedious. A need exists for a graphical user interface (GUI) to facilitate browsing through the images and to load the images in rapid succession (like a video). This will facilitate time based analysis of the potential failing devices.

FIG. 1illustrates an embodiment of a failure analysis system100to conduct failure analysis on IC chips. The failure analysis system100comprises a user interface102, a failure analysis tool104, an IC chip106, and a file system108. The IC chip106is mounted in the failure analysis tool104. The failure analysis tool104generates a set of images with hotspot markings indicating potential failing devices within the IC chip106. The set of images is stored in the file system108. The set of images may be displayed on the user interface102for failure analysis by an operator of the failure analysis system100.

BRIEF SUMMARY

A video overlay system and process is disclosed that facilitates interaction with large numbers of images generated from the LADA technique. A user loads a set of images generated using the LADA technique and can play the images like a video. The user may align on one image file and apply an alignment matrix to the set of images. The user may step through each image frame with a manual slider bar, play through the set of images like a video, pause the video, and navigate forward or backward by picture frame. Using the hotspots from various images, the user can mark the critical areas. After marking the hotspots on the images manually, the user can activate a hotspot analyzer (e.g, Avalon) to locate common net(s) and crossmap the common net(s) (e.g, to IschemView) for further logical analysis. Nets flowing through multiple hotspots are potential killer nets.

A better understanding of the nature and advantages of the embodiments of the present invention may be gained with reference to the following detailed description and the accompanying drawings.

DETAILED DESCRIPTION

FIG. 2illustrates an embodiment of a system for creation of video overlay for failure analysis200. The system for creation of video overlay for failure analysis200comprises an IC204, a set of images206, an alignment image202, a user interface212, an alignment matrix210, a video overlay214, a hotspot marker220, a hotspot analyzer222and a marked device218. The system for creation of video overlay for failure analysis200may be operated in accordance with the process300illustrated inFIG. 3.

Referring toFIG. 3, a calibration from a user interface is applied to align an image from a set of images to create a calibrated alignment image (block302). The calibrated alignment image is utilized to create an alignment matrix (block304). The alignment matrix is applied to the set of images to create a video overlay (block306). A hotspot marker is utilized to identify critical areas where failures may be occurring and to create a marked device (block308). A hotspot analyzer is applied to the marked device to identify common nets flowing through multiple hotspots as potential killer nets (block310), and the process300concludes.

FIG. 4shows how image alignment is achieved. The image alignment process may be a combination of manual and automatic alignment by the tool. Initially, user specifies one, two or three alignment points. Then the auto alignment capability of the tool aligns the image by comparing the layout structures. User can perform finer adjustments using the “Fine Alignment” tab as shown inFIG. 4.

Referring toFIG. 5, in one embodiment the system is implemented by adding a new menu item “Add video” to the Avalon tool MaskView. On invoking new menu item, the user is prompted to select a directory which stores the images for the video. After loading the directory, a new entry402is added in the image list window400for the active data set.

The user may load multiple such data sets in MaskView. A play button406and a pause button404enable the user to play or stop the video. A navigation slider control412enables the user to move forward and backward among the image frames in the video. Additionally, there are back and forward controls410to move backward and forward by one image frame. While video is playing, the user can pan or zoom on the image on the layout, and can use the translucency slider control408to affect the translucency of the video overlay images.

For video overlay, various logic modules of a GUI toolkit may be invoked to produce image processing modules. For example, the QImage, QPixmap, and QPainter of the Qt GUI toolkit may be utilized.

Images may be loaded and displayed (e.g, in Avalon) from a specified folder one after the other, with a delay configurable between 100 to 1000 milliseconds, for example configured using a spin-box. Each loaded image may be displayed on the main layout and the navigation slider control412updated to show progress through the sequence. This provides the feel of a video playing over the layout, with the hotspots appearing and disappearing along a time scale. This timing analysis may be critical for failure analysis. The play button406and the pause button404may be operated to control the process of loading the images.

FIG. 6illustrates an embodiment of a graphical user interface500, in this example MaskView, running a video. Bright spots502mark the potential problematic devices. A timestamp504on the images helps the user perform time based analysis of devices shown as hotspots.

Referring toFIG. 7, a graphical user interface600includes marked device locations602using yellow boxes, and a hotspot analyzer window604that facilitates identification of a common net flowing across the marked devices.

FIG. 8is an example block diagram of a computer system700that may incorporate embodiments of the present invention.FIG. 8is merely illustrative of a machine system to carry out aspects of the technical processes described herein, and does not limit the scope of the claims. One of ordinary skill in the art would recognize other variations, modifications, and alternatives. In one embodiment, the computer system700typically includes a monitor or graphical user interface702, a computer720, a communication network interface712, input device(s)708, output device(s)706, and the like.

As depicted inFIG. 8, the computer720may include one or more processor(s)704that communicate with a number of peripheral devices via a bus subsystem718. These peripheral devices may include input device(s)708, output device(s)706, communication network interface712, and a storage subsystem, such as a random access memory710and a disk drive or nonvolatile memory714.

The input device(s)708include devices and mechanisms for inputting information to the computer720. These may include a keyboard, a keypad, a touch screen incorporated into the monitor or graphical user interface702, audio input devices such as voice recognition systems, microphones, and other types of input devices. In various embodiments, the input device(s)708are typically embodied as a computer mouse, a trackball, a track pad, a joystick, wireless remote, drawing tablet, voice command system, eye tracking system, and the like. The input device(s)708typically allow a user to select objects, icons, text and the like that appear on the monitor or graphical user interface702via a command such as a click of a button or the like.

The output device(s)706include all possible types of devices and mechanisms for outputting information from the computer720. These may include a display (e.g., monitor or graphical user interface702), non-visual displays such as audio output devices, etc.

The communication network interface712provides an interface to communication networks (e.g., communication network716) and devices external to the computer720. The communication network interface712may serve as an interface for receiving data from and transmitting data to other systems. Embodiments of the communication network interface712typically include an Ethernet card, a modem (telephone, satellite, cable, ISDN), (asynchronous) digital subscriber line (DSL) unit, FireWire interface, USB interface, and the like. For example, the communication network interface712may be coupled to the communication network716via a FireWire bus, or the like. In other embodiments, the communication network interface712may be physically integrated on the motherboard of the computer720, and may be a software program, such as soft DSL, or the like.

In various embodiments, the computer system700may also include software that enables communications over a network such as the HTTP, TCP/IP, RTP/RTSP protocols, and the like. In alternative embodiments, other communications software and transfer protocols may also be used, for example IPX, UDP or the like. In some embodiments, the computer720in the processor(s)704may include one or more microprocessors from Intel®. Further, one embodiment, the computer720includes a UNIX-based operating system.

The random access memory710and the disk drive or nonvolatile memory714are examples of tangible media configured to store data and instructions to implement various embodiments of the processes described herein, including executable computer code, human readable code, or the like. Other types of tangible media include floppy disks, removable hard disks, optical storage media such as CD-ROMS, DVDs and bar codes, semiconductor memories such as flash memories, non-transitory read-only-memories (ROMS), battery-backed volatile memories, networked storage devices, and the like. The random access memory710and the disk drive or nonvolatile memory714may be configured to store the basic programming and data constructs that provide the functionality of the disclosed processes and other embodiments thereof that fall within the scope of the present invention.

Software code modules and instructions that implement embodiments of the present invention may be stored in the random access memory710and/or the disk drive or nonvolatile memory714. These software modules may be executed by the processor(s)704. The random access memory710and the disk drive or nonvolatile memory714may also provide a repository for storing data used by the software modules.

The random access memory710and the disk drive or nonvolatile memory714may include a number of memories including a main random access memory (RAM) for storage of instructions and data during program execution and a read only memory (ROM) in which fixed non-transitory instructions are stored. The random access memory710and the disk drive or nonvolatile memory714may include a file storage subsystem providing persistent (non-volatile) storage for program and data files. The random access memory710and the disk drive or nonvolatile memory714may include removable storage systems, such as removable flash memory.

The bus subsystem718provides a mechanism for letting the various components and subsystems of computer720communicate with each other as intended. Although the communication network interface712is depicted schematically as a single bus, alternative embodiments of the bus subsystem718may utilize multiple busses.

FIG. 8is representative of a computer system capable of implementing embodiments of the present invention. It will be readily apparent to one of ordinary skill in the art that many other hardware and software configurations are suitable for use with embodiments of the present invention. For example, the computer may be a desktop, portable, rack-mounted or tablet configuration. Additionally, the computer may be a series of networked computers. Further, the use of other microprocessors are contemplated, such as Pentium™ or Itanium™ microprocessors; Opteron™ or AthlonXP™ microprocessors from Advanced Micro Devices, Inc; and the like. Further, other types of operating systems are contemplated, such as Windows®, WindowsXP®, WindowsNT®, or the like from Microsoft Corporation, Solaris from Sun Microsystems, LINUX, UNIX, and the like. In still other embodiments, the techniques described above may be implemented upon a chip or an auxiliary processing board.

Various embodiments of the present invention may be implemented in the form of logic in software or hardware or a combination of both. The logic may be stored in a computer readable or machine-readable non-transitory storage medium as a set of instructions adapted to direct a processor of a computer system to perform a set of steps disclosed in embodiments of the present invention. The logic may form part of a computer program product adapted to direct an information-processing device to perform a set of steps disclosed in embodiments of the present invention. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will appreciate other ways and/or methods to implement the present invention.

The data structures and code described herein may be partially or fully stored on a computer-readable storage medium and/or a hardware module and/or hardware apparatus. A computer-readable storage medium includes, but is not limited to, volatile memory, non-volatile memory, magnetic and optical storage devices such as disk drives, magnetic tape, CDs (compact discs), DVDs (digital versatile discs or digital video discs), or other media, now known or later developed, that are capable of storing code and/or data. Hardware modules or apparatuses described herein include, but are not limited to, application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), dedicated or shared processors, and/or other hardware modules or apparatuses now known or later developed.

The methods and processes described herein may be partially or fully embodied as code and/or data stored in a computer-readable storage medium or device, so that when a computer system reads and executes the code and/or data, the computer system performs the associated methods and processes. The methods and processes may also be partially or fully embodied in hardware modules or apparatuses, so that when the hardware modules or apparatuses are activated, they perform the associated methods and processes. The methods and processes disclosed herein may be embodied using a combination of code, data, and hardware modules or apparatuses.

The above descriptions of embodiments of the present invention are illustrative and not limitative. In addition, similar principles as described corresponding to latches and/or flops can be applied to other sequential logic circuit elements. Other modifications and variations will be apparent to those skilled in the art and are intended to fall within the scope of the appended claims.