The invention itself, as well as a preferred mode of use, further objects, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein:
The present invention provides a method, system, and computer program product for tuning register components and optimizing local clock buffers in electronic circuit designs in order to enhance power efficiency and optimize component sizes.
With reference now to
Client computer 102 is able to communicate with a service provider server 202 via a network 128 using a network interface 130, which is coupled to system bus 106. Network 128 may be an external network such as the Internet, or an internal network such as an Ethernet or a Virtual Private Network (VPN). Using network 128, client computer 102 is able to use the present invention to access service provider server 150.
A hard drive interface 132 is also coupled to system bus 106. Hard drive interface 132 interfaces with a hard drive 134. In a preferred embodiment, hard drive 134 populates a system memory 136, which is also coupled to system bus 106. Data that populates system memory 136 includes client computer 102's operating system (OS) 138 and application programs 144.
OS 138 includes a shell 140, for providing transparent user access to resources such as application programs 144. Generally, shell 140 is a program that provides an interpreter and an interface between the user and the operating system. More specifically, shell 140 executes commands that are entered into a command line user interface or from a file. Thus, shell 140 (as it is called in UNIX®), also called a command processor in Windows®, is generally the highest level of the operating system software hierarchy and serves as a command interpreter. The shell provides a system prompt, interprets commands entered by keyboard, mouse, or other user input media, and sends the interpreted command(s) to the appropriate lower levels of the operating system (e.g., a kernel 142) for processing. Note that while shell 140 is a text-based, line-oriented user interface, the present invention will equally well support other user interface modes, such as graphical, voice, gestural, etc.
As depicted, OS 138 also includes kernel 142, which includes lower levels of functionality for OS 138, including providing essential services required by other parts of OS 138 and application programs 144, including memory management, process and task management, disk management, and mouse and keyboard management.
Application programs 144 include a browser 146. Browser 146 includes program modules and instructions enabling a World Wide Web (WWW) client (i.e., client computer 102) to send and receive network messages to the Internet using HyperText Transfer Protocol (HTTP) messaging, thus enabling communication with service provider server 150.
Application programs 144 in system memory 136 also include transistor tuning tool 148. Although illustrated as a single component, in some embodiments transistor tuning tool 148 may be formed of multiple software components. As described further below, transistor tuning tool 148 may be utilized to implement the process depicted in
The hardware elements depicted in client computer 102 are not intended to be exhaustive, but rather are representative to highlight certain components that mat be utilized to practice the present invention. For instance, client computer 102 may include alternate memory storage devices such as magnetic cassettes, Digital Versatile Disks (DVDs), Bernoulli cartridges, and the like. These and other variations are intended to be within the spirit and scope of the present invention.
With reference now to
Turning now to
While circuit 300 is shown having a single M-1 stage clock buffer 310, circuit 300 may instead have a plurality of M-1 stage clock buffers 310. Similarly, while
As can be seen by comparison of
With reference now to
Turning now to
The transistor tuning process begins at block 500, for example, in response to a user of computer 102 invoking transistor tuning tool 148, which preferably performs the remainder of the illustrated steps in an automated manner. At block 505, transistor tuning tool 148 optimizes all transistors within the design of integrated circuit 200 except those that implement LCBs 215, such as LCB 325, and registers 220, such as register 330. For example, transistor tuning tool 148 optimizes the transistors forming logic 210. Next, at block 510, transistor tuning tool 148 holds the waveform 400 of reference clock signal 206 constant across the design of integrated circuit 200 via the utilization of pattern matching and/or name recognition. As noted above, the four principle factors (i.e., rising edge time 405, falling edge time 410, rising edge slew rate, and falling edge slew rate) that characterize waveform 400 are held constant. By doing so, common arrival times and signal slews are applied at all register components during tuning, preventing the occurrence of errors arising from early or late signal arrival times for functional signals.
The process then proceeds from block 510 to block 515, which depicts transistor tuning tool 148 optimizing the sizes of the transistors forming registers 220 based on known loading rules and standard design libraries. As shown in
As has been described, the present invention provides a method, data processing system and program product for automated transistor tuning in an integrated circuit design. According to the present invention, a predetermined reference clock waveform is selected to ensure common data arrival times and signal slews at all register components during tuning. In order to create conditions amenable to the tuning of register components, pattern matching and/or name recognition are employed to hold local clock signatures constant. The individual register bits can then be selected from a standard library to optimize the size of each register bit, such that power efficiency is increased. Once register tuning is complete, the output loads of the local clock buffers (LCBs) may subsequently be optimized to complement the power, area, and timing of the newly optimized registers.
While the invention has been particularly shown and described with reference to a preferred embodiment, it will be understood by those skilled in the art that various changes in form and detail may be made therein without departing from the spirit and scope of the invention. For example, while an illustrative embodiment of the present invention has been described in the context of a fully functional computer system with installed software, those skilled in the art will appreciate that the software aspects of an illustrative embodiment of the present invention are capable of being distributed as program code embodied in a program product having any of a variety of forms, and that the present invention applies equally regardless of the particular type of signal bearing media used to actually carry out the distribution. Examples of signal bearing media include recordable type media such as thumb drives, floppy disks, hard drives, CD ROMs, DVDs, and transmission type media such as digital and analog communication links.