Model for a hardware device-independent method of defining embedded firmware for programmable systems

Information

  • Patent Grant
  • 8286125
  • Patent Number
    8,286,125
  • Date Filed
    Wednesday, August 10, 2005
    19 years ago
  • Date Issued
    Tuesday, October 9, 2012
    11 years ago
Abstract
A processing device programming system automatically provides a user interface comprising a selectable list of one or more processing devices based on a system level solution, automatically generates an embedded programmable system solution from the system level solution and a processing device selected from the selectable list of one or more processing devices, and automatically programs the processing device according to the embedded programmable system solution.
Description
TECHNICAL FIELD

The present invention relates generally to electronic circuits and in particular the programming of processing devices.


BACKGROUND

Processing devices, such as microcontrollers, field programmable arrays, etc., are widely used in the industry as control elements in many solutions. Most processing devices are general in purpose and are designed for use in a wide variety of problem solutions. As processing devices become more programmable and more widely applicable, a designer needs more specific device knowledge to select and use the appropriate processing device to solve a problem. For example, a Cypress MicroSystem's Programmable System on a Chip™ microcontroller (PSoC™ microcontroller) device may be the most widely applicable microcontroller devices currently on the market. Broadly applicable devices require a high amount of device specific knowledge to program the device to fit a variety of solutions. Unfortunately, many engineers charged with designing a system level solution do not possess the required specific knowledge to create the low level program of the solution for the device.


In a conventional solution using processing devices, hardware and software are usually created for a specific processing device, and may be redesigned (sometimes completely) following a change in requirements. The faster the time-to-market or the shorter the design, the more likely requirement changes are to occur. A common sequence of events is to first determine the system requirements to address a problem, then second to determine hardware and software requirements, then third to determine processing device and interfacing circuitry requirements, and fourth to find a suitable processing device and design suitable interfaces. Finally, the user must manually configure the processing device and write device specific firmware. In some cases, the user/programmer may have to re-write firmware, redesign circuitry, or choose another processing device based upon changing requirements.


These changing requirements result in one or all of costly and inefficient code changes and software and hardware architecture changes, which might also require a change in the processing device and/or significant redesign of the entire project. Such a redesign may be costly and further delay design and production schedules.





BRIEF DESCRIPTION OF THE DRAWINGS

The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings in which:



FIG. 1 is a high level diagram illustrating multiple system level architectures for the programming of processing devices, according to various embodiments of the present invention;



FIG. 2 is a block diagram illustrating components making up a programming system, according to one embodiment of the present invention;



FIG. 3 is a flowchart illustrating a process for programming a processing device based on a user created system level solution, according to one embodiment of the invention;



FIG. 4 illustrates file types involved in processing device code generation, according to one embodiment of the present invention;



FIG. 5 is a flowchart illustrating a high level process for programming a processing device based on a user created system level solution, according to one embodiment of the invention;



FIG. 6 illustrates a diagrammatic representation of a machine in the exemplary form of a computer system within which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein.





DETAILED DESCRIPTION

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the invention. However, it will be understood by those skilled in the art that certain embodiments of the present invention may be practiced without these specific details. In other instances, well-known methods, procedures, components, and circuits have not been described in detail so as not to obscure the presented embodiments of the invention. The following detailed description includes several modules, which will be described below. These modules may be implemented by hardware components, such as logic, or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the operations described herein. Alternatively, the operations may be performed by a combination of hardware and software.


The following detailed description refers to programming processing devices based on a user created system level solution. It can be appreciated by those skilled in the art that a processing device (e.g., processing device 106 of FIG. 1) as referred to in the programming process, may include one or more general-purpose programmable processing devices, such as a microcontroller, an embedded programmable logic device (PLD), or the like. Alternatively, the processing device may include one or more special-purpose programmable processing devices, such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or the like. The processing device may also include any combination of a general-purpose programmable processing device and a special-purpose programmable processing device. Additionally, the processing device to be programmed may include a larger circuit which incorporates any one or more of the named devices above.



FIG. 1 is a high level diagram illustrating multiple system level architectures for the programming of processing devices, according to various embodiments of the present invention. A user 102 is provided with a high level of abstraction to build a system level solution without prior knowledge and expertise of a particular programming device (e.g., processing device 106). The system level solution allows for lower level processes invisible to the user 102 to verify the system level solution, provide potential processing devices that may fit the design, and to build the design into an embedded programmable system solution that may be used to program a selected processing device.


In one embodiment, an application or program generates a GUI (graphical user interface, not shown) on computer 104 that permits a user 102 to interactively select, combine, and program a multitude of functional elements to generate a system level solution to be programmed on the processing device 106 (e.g., microcontroller, etc.). In various embodiments, the application or applications responsible for the GUI and system level solution processing may be wholly or partially running on computer 104 or may be wholly or partially running a remote device, such as server 108 in communication with computer 104 through network 110. This allows for user 102 to create a system level solution from a location remote from a system configured to generate the embedded programmable system solution and/or to physically program the processing device 106.


Once the user 102 has completed the system level solution, the user may select from one or more possible processing devices derived from processing the system level solution, either remotely or locally. Processing of the system level solution to create the embedded programmable system solution is controlled and facilitated by lower level processes invisible to the user 102. After the processing device 106 has been selected, a programming device 112, under control of the lower level processes, creates a programming image file 222 (See FIG. 2) and programs the processing device 106 accordingly. The physical programming the processing device 106 may occur locally or remotely. For example, the computer 104 may include a programming device module to program processing device 106 in a similar fashion to programming device 112. In another embodiment, the programming device 112 may be located remotely and configured to program the processing device 106 based on receiving the programming file from either the computer 104 or the server 108 through network 110.



FIG. 2 is a block diagram illustrating components making up a programming system 200, according to one embodiment of the present invention. The programming system 200 may be divided into two domains; a user domain 250 representing higher order processes and controls, and an expert domain 252 representing lower order processes and controls, which is an embedded development environment that requires a high level of expertise to develop embedded programmable system solutions. In one embodiment of the present invention, the user domain 250 may include the GUI of computer 104 that permits the user 102 to interactively select, combine, and program a multitude of high level functional elements to generate a system level solution. However, the system level solution must be converted in the expert domain 252 to the embedded programmable system solution, and more specifically into the programming image file 222 that may be used by the programming device 112 to program the processing device 106.


In the user domain 250, a specific application layer 201 includes the applications a battery charger maker 202, a temp controller maker 204, and a power meter maker 206, collectively known as applications 202, 204, 206. These are high level software applications which are visible to the user via the GUI of computer 104. The applications 202, 204, 206 are by example only, it can be appreciated that there may be a multitude of applications representing many kinds of devices and device functions. The applications 202, 204, 206 present options to the user 102 during the development of a system level solution. In one embodiment, the options are formatted metadata made available to each of the applications 202, 204, 206 for display to the user 102. The user 102 provides input selections or data based on these options, which may be captured in one or more files in various formats known in the art, such as HTML (hypertext markup language), XML (extended markup language), or any other format known in the art for structuring data in files. In one embodiment, the data is captured in a project design file 210, which is a single ASCII (American standard code for information interchange) file of XML.


In one embodiment, a processing device maker (PDM) engine 208 is a generic application in generic application layer 211 and is configured to receive and process data from the applications 202, 204, 206, and to dynamically update the project design file 210. The PDM engine 208 receives high level device drivers and associated device descriptions from a high level database 214. For example, the PDM engine 208 may provide the user 102, via the UI on the computer 104, a list of device elements based on the high level device descriptions, such as a temperature sensor, a fan, a voltage input, an LED (light emitting diode), etc. In one embodiment, the system level solution created by the user 102 may include one or a combination of device elements and associated functionality. Device elements include pin designations, inputs, and outputs, each of which may include operational attributes, such as a voltage input range for an input pin or a pushbutton switch that may be opened or closed. Additionally, the user 102 may also include operational instructions that include logic to activate device elements or portions thereof if a programmed condition occurs. For example, a user may use the GUI of computer 104 to program and simulate a fan switch to go to an ‘on’ state when the temperature sensor reads 100 degrees Celsius.


In one embodiment, as the user 102 makes connections within or between device elements and/or provides operational instructions, the PDM engine 208, in addition to updating the project design file 210, also verifies and validates the user the connections and operational instructions. A validation process ensures that the user 102 cannot create faulty interconnects, operational instructions, or create a system level solution that cannot be programmed into one of the available processing devices (e.g., processing device 106). For example, after each change during the design process the list of device elements and processing devices is dynamically updated such that the user 102 cannot make a faulty selection.


After the user 102 has created and simulated the system level solution, the PDM engine 208 creates a processing device file 216 based on the project design file 210 and the selected processing device 106. The processing device file 216 is a file specifically created to provide hardware designer (HD) engine 218 in the firmware generation layer 221 with the low level data necessary to build the created system level design into an embedded programmable system solution on a programmable image file 222 to be programmed on the selected processing device 106. In one embodiment, the processing device file 216 includes data pertaining to the locations in the low level database 220 for low level device drivers associated with one or more high level device drivers of the system level design in addition to all the appropriate links to the data required so the HD engine 218 may resolve the calls and functions. In various embodiments, the processing device file 216 may be HTML (hypertext markup language), XML (extended markup language), or any other format known in the art for structuring data in files.


An automation interface 212 is triggered by the PDM engine 208 and is configured to provide commands to launch the HD engine 218. These commands, among other things, instruct the HD engine 218 to find and open the processing device file 216 and perform the operations of low level code generation including pulling together all the necessary resources to compile and link the low level code to generate the programming image file 222. In various embodiments, the automation interface 212 provides the commands through a single command line string, a batch file, or a script file. In one embodiment, the automation interface 212 may be configured such that the PDM engine 208 is compatible with multiple HD engine types (e.g., different HD engine manufacturers) by altering the commands accordingly and updating the high level database 214 to reflect the device types associated with each of the multiple HD engine types.


Application code files 224 are custom files generated by the PDM engine 208 and include header files, ‘include’ files, and device driver information. The generated code in the application code files 224 is customized for the system level solution according to what device elements were called out by the user 102 and further includes code to control and operate the selected device elements. For example, the user 102 creates system level design that includes a temperature sensor controlling a fan with an LED status. The application code files 224 are generated creating a program to startup the fan based on device driver calls. Similar programs may be generated for the temperature sensor and the LED. In other words, the application code files 224 provide state information for the device elements of the system level design. In one embodiment, some or all of these functions are called out of a period task module or an event handler module. In one embodiment, the application code files 224 may be single file. In various embodiments, the application code files 224 may be generated in assembly programming language or in one of a multitude of variations of ‘C’ programming languages.


In one embodiment of the present invention, the HD engine 218 triggered by the commands received from the automation interface 212 assembles project data that includes a base project, lower level device drivers and user modules from the low level database 220 based on processing the low level design parameters described in the processing device file 216 and the operational code from the application code files 224. The HD engine 218 based on the project data builds the programming image file 222 that may be executed in the hardware layer 228 to program the embedded programmable system solution based on the system level solution created by the user 102.


The base project (not shown) is associated with the processing device 106 family chosen by the user 102. Base projects are one of the code elements comprised of metadata that are specific to the hardware platform chosen and set low-level hardware implementation details, such as the user modules required (which determine which kind of channels that can be supported) and the family and pin/package for the processing device. For example, to cover a family of devices having an 8, 20, 28, 44, and 48-pin package, five versions of the same base project would be required. Transparently to the user 102, a choice is made by the PDM engine 208 as to whether any or all of these can handle the system level solution defined by the user 102. For example, if the user 102 designs a simple 3 switch/3 LED design, all 5 base projects are presented, with the 8-pin presented as the top recommendation. In another example, if the user designs a 20 switch/20 LED design which requires 40 pins, only the 44 and 48 pin versions would be shown. In one embodiment, the base projects are designed and entered into the high level database 214 and/or the low level database 220 by processing device experts. In other embodiments, a base project synthesizer 230 dynamically creates the base projects by processing the project design file 210 to determine valid processing device configurations for the system level design. In various embodiments, the synthesized base projects may or may not be permanently or temporality stored in the high level database 214 and/or the low level database 220.


In one embodiment of the present invention, a device driver design domain 226 may provide scalability to the programming system 200. The user 102 or a third party processing device manufacturer could provide high level and low level design and driver information, and base project information that could be added to the high level database 214 and/or the low level database 220, respectively, through the device driver design domain 226. Any updated, added, or deleted processing device files and base projects would then be available for the validation of the system level solution created by the user 102, as described above. For example, the user 102 may have selected in the high level design a temperature sensor requiring successive approximation but the only processing device in the high level database 214 only includes delta sigma ADCs (analogue to digital converters) and therefore would not be on the list of available devices shown on the GUI of computer 104. However, upon updating the high level database 214 (and the low level database 220) to include successive approximation on that processing device or adding a new processing device that supports that feature, that updated device or the new device may now be included in the list available to the user 102.



FIG. 3 is a flowchart illustrating a process for programming a processing device based on a user created system level solution, according to one embodiment of the invention. Among various embodiments, some operations may be removed or become optional. At operation 302, a base project is selected by the PDM engine 208. As discussed above, the base project may be a static element stored in the high level database 214 and/or the low level database 220, or the base project may be dynamically created during the design process.


At operation 304, the drivers (e.g., temperature sensors, fans, LEDs) are assigned their respective channels in the project design file 210 by the PDM engine 208 according to the selected base project metadata. The PDM engine 208 selects a user module configuration, a set of user modules in a base project, and hardware and the software to configure the base project. The channel assignments bind the drivers to particular pins on the selected processing device. By virtue of the user module configuration, the drivers have access to the signals designated by the base project. The user module configuration is software that configures hardware to perform a peripheral function (e.g., a hardware counter or timer or a UART).


Optionally, at operation 306, some or all files associated with any previous build may be deleted by the PDM engine 208. This operation could be executed at any time for previous builds. In one embodiment, the files are deleted after the processing device 106 (processing device) has been programmed and the user session is closed on computer 104. However, the project design file 210 will be stored indefinitely unless manually deleted. This ensures that if base projects are changed, no conflicts would exist for any subsequent build since a new processing device file would be created, which included the new base projects, from the existing project design file 210. Additionally, this operation limits the amount of storage required to maintain the system level solution stored in the project design file 210.


At operation 308, the PDM engine 208 uses the automation interface 212 to send a command to the HD engine 218 to clone the selected base project to preserve the original base project for other future system level designs.


At operation 310, the PDM engine 208 uses the automation interface 212 to send a command to the HD engine 218 to generate the HD engine 218 source files based on the process design file 216 received from the PDM engine 208. This operation generates files consistent with the processing device configuration for the base project.


Project design source files are generated, at operation 312, by the PDM engine 208 in response to the project design file 210. The source file generation can be divided into three types: driver source files, variable transfer function source files, and system source files. For driver source files and variable transfer function source files, the source file generation follows a similar pattern. The file generation is based on instances indicated in the project design file 210. For drivers, the driver instances guide the driver source file generation. For variable transfer functions, function and variable instances guide the system transfer function source file. System source files are controlled by the files in the install path that are always generated regardless of the base project selection or project design file 210 content. Although system source files are always generated, their content is influenced by the project design file 210.


At operation 314, the HD engine 218 builds the programming image file 222 based on the embedded programmable system solution created by processing the combination of files that are created and retrieved in conjunction with the processing device file 216. The programming image file 222 represents the system level solution created by the user 102 to be programmed on the processing device 106.



FIG. 4 illustrates file types involved in processing device code generation, according to one embodiment of the present invention. The processing device (PD) code generation engine 402 may be part of the PDM engine 208 or may be its own module within the generic application layer 211. The file types make up a code generation file set 412, which includes a specification processing device file 404, fragment files 406, and template files 408. The specification processing device file 404 provides a file list for the PD code generation engine 402. The fragment files 406 provide a format for information as it is inserted into source files 410. The template files 408 provide the location for the fragments within each source file of the source files 410. The PD code generation engine 402 digests the project design file 210 and creates a set of keyword substitutions that replace known keywords with the data contained in the project design file 210. Special keywords are also used to collect keywords of a particular type.


In a first driver code generation operation, driver instances point to a code generation file set 412 based on the driver name. Each code generation file set 412 specifies the file list and fragments for that driver. In particular, a parameter block is defined such that a single copy of the driver functions can accommodate all instances of that driver type. The parameter block contains instance specific data as the channel assignment, driver property values, etc. The parameter blocks are collected and may be stored in ROM space so that RAM is conserved.


In a second variable transfer function code generation operation, variable transfer functions point to a code generation file set 412 based on the function selected. Each code generation file set 412 specifies the file list and fragments for that function. A parameter block is defined such that a single copy of the function source can accommodate all instances of that function. The parameter block contains instance specific data as the function input list, variant structures, and other data that vary with each instance of the function. The parameter blocks are collected and may be stored in ROM space so that RAM is conserved.


In a third system source file code generation operation, system source files (not shown) are those files that are always generated regardless of the project design file 210 content or the base project selected. They are influenced by the project design file 210 in that they include special collection keywords that gather the desired source lines in the designated location. In most cases, the collections are order independent. However, in the case of the transfer function evaluation, there are dependencies that exist between intermediate variables and output drivers that require a precise update order. In this case, the dependency order is calculated and the function calls are ordered accordingly.


In a fourth build project operation, the project is compiled and linked together to form a programming image file 222 (e.g., .hex file) used to program the processing device 106 (processing device). Due to the nature of the components combined and the processing device code generation, the firmware is error-free. Only system logic errors are relevant to the user, not microcontroller code errors. Therefore, for a valid project design file 210, all builds will be successful.


In a fifth bill of materials (BOM) and schematic creation operation, BOM and schematic data are derived from the driver channel assignments. From these assignments, pin assignments, driver schematic fragments, and BOM fragments are assembled. In one embodiment, the fragments are assembled for presentation via Web technologies into such files as HTML files. In other embodiments, the fragments may be assembled for presentation for various other platforms and applications (e.g., Adobe® .pdf, etc.)


In a sixth simulation and design verification operation, the user 102 may view and analyze the system behavior before the programming image file 222 is built. In one embodiment, the GUI displayed on computer 104 allows the user to view the system in real-time. In a first step termed simulation stimulus creation operation, simulation stimulus files are necessary to drive the inputs to the system under test. The stimulus file sets the input to the specified values at predetermined points so that the system behavior can be monitored. The stimulus file can be created in Excel™, or other spreadsheet program, and imported to the programming system 200. In a second step termed simulation code generation, the simulation code generation is analogous to code generation for the programming image file 222, except that the input and output driver functions are not needed. The driver functions are replaced by the input stimulus file for the input drivers, and by data logging for the output drivers. The remaining code generation is for the transfer functions only. The form of the code is also a scripting language, as Java™ script, instead of “C” language. The script is passed to the simulation engine where it is combined with the stimulus file for simulation execution. In a third step termed simulation execution/analysis, the simulation execution is real-time and can be logged to a file. In one embodiment of the present invention, the GUI of computer 104 shows widgets reacting to the stimulus file directly, and other widgets reacting to transfer function evaluation.



FIG. 5 is a flowchart illustrating a high level process for programming processing devices based on a user created system level solution, according to one embodiment of the invention. In one embodiment of the present invention, at operation 502, the programming system 200 automatically provides a user interface including a selectable list of one or more processing devices (e.g., a processing device such as a microcontroller or a circuit including a processing device) based on a system level solution created by the user 102. At operation 504, the programming system 200 automatically generates an embedded programmable system solution from the system level solution and a processing device 106 selected by the user 102. At operation 506, the programming system 200 automatically programs the processing device 106, selected from the one or more processing devices, according to the embedded programmable system solution.


Advantages of the improved method include that no embedded code development is required by the user, as all embedded code is generated automatically. Furthermore, no programmable device-specific knowledge is required, and consistent firmware with deterministic results is created. In addition, the GUI definition method provides easier definition of system design aspects and provides easier redefinition/modification of system design aspects in light of changing requirements. The GUI definition method also provides clearer presentation of system design aspects, and design verification is raised to system-level, rather than old method, firmware, device-specific, team-member subjective verification. One advantage is that firmware results are not dependent upon individual firmware engineer's skills or subjective approaches, and are not repeatedly rewritten for new requirements.



FIG. 6 illustrates a diagrammatic representation of machine in the exemplary form of a computer system 600 within which a set of instructions may be executed to cause the machine to perform any one or more of the methodologies discussed herein. In alternative embodiments, the machine operates as a standalone device or may be connected (e.g., networked) to other machines. In a networked deployment, the machine may operate in the capacity of a server or a client machine in server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. The machine may be a server computer, a client computer, a personal computer (PC), a tablet PC, a set-top box (STB), or any machine capable of executing a set of instructions (sequential or otherwise) that specify actions to be taken by that machine. Further, while only a single machine is illustrated, the term “machine” shall also be taken to include any collection of machines that individually or jointly execute a set (or multiple sets) of instructions to perform any one or more of the methodologies discussed herein.


The exemplary computer system 600 includes a processor 602 (e.g., a central processing unit (CPU) a graphics processing unit (GPU) or both), a main memory 604 and a static memory 606, which communicate with each other via a bus 608. The computer system 600 may further include a video display unit 610 (e.g., a liquid crystal display (LCD) or a cathode ray tube (CRT)). The computer system 600 also includes an alphanumeric input device 612 (e.g., a keyboard), a cursor control device 614 (e.g., a mouse), a storage unit 616 (e.g., hard-disk drive), a signal generation device 618 (e.g., a speaker) and a network interface device 620.


The storage unit 616 includes a machine-readable medium 622 on which is stored one or more sets of instructions (e.g., software 624) embodying any one or more of the methodologies or functions described herein. The software 624 may also reside, completely or at least partially, within the main memory 604 and/or within the processor 602 during execution thereof by the computer system 600, the main memory 604 and the processor 602 also constituting machine-readable media. The software 624 may further be transmitted or received over a network 626 via the network interface device 620.


While the machine-readable medium 622 is shown in an exemplary embodiment to be a single medium, the term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any medium that is capable of storing or encoding a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the present invention. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, solid-state memories, optical and magnetic media.


Referring to FIGS. 3 and 5, although the embodiments of the processing device programming method is shown in the form of flow charts having separate blocks and arrows, the operations described in a single block do not necessarily constitute a process or function that is dependent on or independent of the other operations described in other blocks. Furthermore, the order in which the operations are described herein is merely illustrative, and not limiting, as to the order in which such operations may occur in alternate embodiments. For example, some of the operations described may occur in series, in parallel, or in an alternating and/or iterative manner.


It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention.


Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.

Claims
  • 1. A method, comprising: automatically providing a user interface comprising a selectable list of one or more processing devices based on a previously created device-independent system level solution;providing the user interface with a selectable list of a plurality of high level devices to design the device-independent system level solution;receiving a selection of a high level device and updating the selectable list of the one or more processing devices after receiving the selection of the high level device from the plurality of high level devices;automatically generating an embedded programmable system solution from the device-independent system level solution and a processing device selected from the selectable list of one or more processing devices; andautomatically programming the processing device according to the embedded programmable system solution.
  • 2. The method of claim 1, wherein prior to the automatically providing, determining the selectable list of one or more processing devices by matching resource requirements of one or more functions of the device-independent system level solution to one or more base projects associated with the one or more processing devices.
  • 3. The method of claim 2, further comprising automatically generating one or more base projects associated with the one or more processing devices based upon the resource requirements of the one or more functions of the device-independent system level solution and physical parameters associated with the one or more processing devices.
  • 4. The method of claim 1, wherein prior to updating the selectable list of the plurality of high level devices and the selectable list of the one or more processing devices, validating a current state of the device-independent system level solution.
  • 5. The method of claim 4, wherein validating the current state of the device-independent system level solution further comprises: validating executable expressions associated with a selected high level device;validating the one or more processing devices by matching resources required by the current state of the device-independent system level solution to the one or more processing devices.
  • 6. The method of claim 1, wherein the selectable list of one or more processing devices is comprised of at least one of a programmable logic device, a field programmable gate array, a micro-controller, a microprocessor-based device, or a circuit comprising a processing device.
  • 7. A system, comprising: a processing device maker engine configured to provide a user interface comprising a selectable list of one or more processing devices based on a previously created device-independent system level solution, wherein the processing device maker engine is configured to provide the user interface with a selectable list of a plurality of high level devices to design the device-independent system level solution and receive a selection of high level device and update the selectable list of the one or more processing devices after receiving the selection of a high level device from the plurality of high level devices; anda hardware designer engine configured to receive the device-independent system level solution from the processing device maker and to generate an embedded programmable system solution from the device-independent system level solution and a processing device selected from the one or more processing devices, and to program the processing device according to the embedded programmable system solution.
  • 8. The system of claim 7, wherein to provide the user interface, the processing device maker engine determines the selectable list of one or more processing devices by matching resource requirements of one or more functions of the device-independent system level solution to one or more base projects associated with the one or more processing devices.
  • 9. The system of claim 8, wherein the processing device maker engine is further configured to generate one or more base projects associated with the one or more processing devices based upon the resource requirements of the one or more functions of the device-independent system level solution and physical parameters associated with the one or more processing devices.
  • 10. The system of claim 8, wherein the processing device maker engine is further configured to save a first file comprising the device-independent system level solution, to delete one or more lower level files associated with the embedded programmable system, programmable system, and to generate a schematic of the programmed selected processing device, wherein the schematic includes at least one of functional pins, input output devices, or interfacing circuitry.
  • 11. The system of claim 8, wherein the selectable list of one or more processing devices is comprised of at least one of a programmable logic device, a field programmable gate array, a micro-controller, a microprocessor-based device, or a circuit comprising a processing device.
  • 12. The system of claim 7, wherein prior to the update of the selectable list of the plurality of high level devices and the selectable list of the one or more processing devices, the processing device maker engine is configured to validate a current state of the device-independent system level solution.
  • 13. The system claim 12, wherein to validate the current state of the device-independent system level solution, the processing device maker engine is further configured to validate executable expressions associated with the selected high level devices, and to validate the one or more processing devices by matching resources required by the current state of the device-independent system level solution to the one or more processing devices.
  • 14. A non-transitory machine readable medium having embodied thereon an instruction set, the instruction set being executable by a machine to perform operations comprising: providing a user interface comprising a selectable list of one or more processing devices based on a previously created device-independent system level solution;providing the user interface with a selectable list of a plurality of high level devices to design the device-independent system level solution;receiving a selection of a high level device an updating the selectable list of the one or more processing devices after receiving the selection of the high level device from the plurality of high level devices;generating an embedded programmable system solution from the device-independent system level solution and a processing device selected from the selectable list of one or more processing devices; andprogramming the processing device according to the embedded programmable system solution.
  • 15. The non-transitory machine readable medium of claim 14, wherein prior to updating the selectable list of the plurality of high level devices and the selectable list of the one or more processing devices, validating a current state of the device-independent system level solution.
  • 16. The non-transitory machine readable medium of claim 15, wherein validating the current state of the device-independent system level solution further comprises: validating executable expressions associated with a selected high level device; andvalidating the one or more processing devices by matching resources required by the current state of the device-independent system level solution to the one or more processing devices.
RELATED APPLICATION

This application claims the benefit of U.S. Provisional Patent Application No. 60/601,263, filed Aug. 13, 2004, which is incorporated herein by reference in its entirety.

US Referenced Citations (962)
Number Name Date Kind
3725804 Langan Apr 1973 A
3740588 Stratton et al. Jun 1973 A
3810036 Bloedorn May 1974 A
3831113 Ahmed Aug 1974 A
3845328 Hollingsworth Oct 1974 A
3940760 Brokaw Feb 1976 A
4061987 Nagahama Dec 1977 A
4134073 MacGregor Jan 1979 A
4138671 Comer et al. Feb 1979 A
4176258 Jackson Nov 1979 A
4250464 Schade, Jr. Feb 1981 A
4272760 Prazak et al. Jun 1981 A
4283713 Phillipp Aug 1981 A
4326135 Jarrett et al. Apr 1982 A
4344067 Lee Aug 1982 A
4438404 Phillipp Mar 1984 A
4475151 Phillipp Oct 1984 A
4497575 Phillipp Feb 1985 A
4608502 Dijkmans et al. Aug 1986 A
4656603 Dunn Apr 1987 A
4670838 Kawata Jun 1987 A
4689740 Moelands et al. Aug 1987 A
4692718 Roza et al. Sep 1987 A
4727541 Mori et al. Feb 1988 A
4736097 Phillipp Apr 1988 A
4740966 Goad Apr 1988 A
4755766 Metz Jul 1988 A
4773024 Faggin et al. Sep 1988 A
4794558 Thompson Dec 1988 A
4802103 Faggin et al. Jan 1989 A
4802119 Heene et al. Jan 1989 A
4809345 Tabata et al. Feb 1989 A
4812684 Yamagiwa et al. Mar 1989 A
4827401 Hrustich et al. May 1989 A
4833418 Quintus et al. May 1989 A
4868525 Dias Sep 1989 A
4876534 Mead et al. Oct 1989 A
4879461 Phillipp Nov 1989 A
4885484 Gray Dec 1989 A
4907121 Hrassky Mar 1990 A
4935702 Mead et al. Jun 1990 A
4937743 Rassman et al. Jun 1990 A
4939637 Pawloski Jul 1990 A
4942540 Black et al. Jul 1990 A
4947169 Smith et al. Aug 1990 A
4953928 Anderson et al. Sep 1990 A
4962342 Mead et al. Oct 1990 A
4964074 Suzuki et al. Oct 1990 A
4969087 Tanagawa et al. Nov 1990 A
4970408 Hanke et al. Nov 1990 A
4977381 Main Dec 1990 A
4980652 Tarusawa et al. Dec 1990 A
4999519 Kitsukawa et al. Mar 1991 A
5043674 Bonaccio et al. Aug 1991 A
5049758 Mead et al. Sep 1991 A
5050168 Paterson Sep 1991 A
5053949 Allison et al. Oct 1991 A
5055827 Phillipp Oct 1991 A
5059920 Anderson et al. Oct 1991 A
5068622 Mead et al. Nov 1991 A
5073759 Mead et al. Dec 1991 A
5083044 Mead et al. Jan 1992 A
5088822 Kanda Feb 1992 A
5095284 Mead Mar 1992 A
5097305 Mead et al. Mar 1992 A
5107146 El-Ayat Apr 1992 A
5107149 Platt et al. Apr 1992 A
5109261 Mead et al. Apr 1992 A
5119038 Anderson et al. Jun 1992 A
5120996 Mead et al. Jun 1992 A
5122800 Phillipp Jun 1992 A
5126685 Platt et al. Jun 1992 A
5127103 Hill et al. Jun 1992 A
5128871 Schmitz Jul 1992 A
5140197 Grider Aug 1992 A
5142247 Lada et al. Aug 1992 A
5146106 Anderson et al. Sep 1992 A
5150079 Williams et al. Sep 1992 A
5155836 Jordan et al. Oct 1992 A
5159292 Canfield et al. Oct 1992 A
5159335 Veneruso Oct 1992 A
5160899 Anderson et al. Nov 1992 A
5161124 Love Nov 1992 A
5165054 Platt et al. Nov 1992 A
5166562 Allen et al. Nov 1992 A
5175884 Suarez Dec 1992 A
5179531 Yamaki Jan 1993 A
5200751 Smith Apr 1993 A
5202687 Distinti Apr 1993 A
5204549 Platt et al. Apr 1993 A
5206582 Ekstedt et al. Apr 1993 A
5220512 Watkins et al. Jun 1993 A
5230000 Mozingo et al. Jul 1993 A
5235617 Mallard, Jr. Aug 1993 A
5241492 Girardeau, Jr. Aug 1993 A
5243554 Allen et al. Sep 1993 A
5245262 Moody et al. Sep 1993 A
5248843 Billings Sep 1993 A
5248873 Allen et al. Sep 1993 A
5258760 Moody et al. Nov 1993 A
5260592 Mead et al. Nov 1993 A
5260979 Parker et al. Nov 1993 A
5270963 Allen et al. Dec 1993 A
5276407 Mead et al. Jan 1994 A
5276890 Arai Jan 1994 A
5280199 Itakura Jan 1994 A
5289023 Mead Feb 1994 A
5303329 Mead et al. Apr 1994 A
5304955 Atriss et al. Apr 1994 A
5305017 Gerpheide Apr 1994 A
5305312 Fornek et al. Apr 1994 A
5307381 Ahuja Apr 1994 A
5313618 Pawloski May 1994 A
5317202 Waizman May 1994 A
5319370 Signore et al. Jun 1994 A
5319771 Takeda Jun 1994 A
5321828 Phillips et al. Jun 1994 A
5324958 Mead et al. Jun 1994 A
5325512 Takahashi Jun 1994 A
5329471 Swoboda et al. Jul 1994 A
5331215 Allen et al. Jul 1994 A
5331315 Crosette Jul 1994 A
5331571 Aronoff et al. Jul 1994 A
5334952 Maddy et al. Aug 1994 A
5336936 Allen et al. Aug 1994 A
5339213 O'Callaghan Aug 1994 A
5339262 Rostoker et al. Aug 1994 A
5345195 Cordoba et al. Sep 1994 A
5349303 Gerpheide Sep 1994 A
5355097 Scott et al. Oct 1994 A
5357626 Johnson et al. Oct 1994 A
5361290 Akiyama Nov 1994 A
5371524 Herczeg et al. Dec 1994 A
5371860 Mura et al. Dec 1994 A
5371878 Coker Dec 1994 A
5374787 Miller et al. Dec 1994 A
5378935 Korhonen et al. Jan 1995 A
5381515 Platt et al. Jan 1995 A
5384467 Plimon et al. Jan 1995 A
5392784 Gudaitis Feb 1995 A
5394522 Sanchez-Frank et al. Feb 1995 A
5396245 Rempfer Mar 1995 A
5398261 Marbot Mar 1995 A
5399922 Kiani et al. Mar 1995 A
5408194 Steinbach et al. Apr 1995 A
5414308 Lee et al. May 1995 A
5414380 Floyd et al. May 1995 A
5416895 Anderson et al. May 1995 A
5422833 Kelem et al. Jun 1995 A
5424689 Gillig et al. Jun 1995 A
5426378 Ong Jun 1995 A
5426384 May Jun 1995 A
5428319 Marvin et al. Jun 1995 A
5430395 Ichimaru Jul 1995 A
5430687 Hung et al. Jul 1995 A
5432476 Tran Jul 1995 A
5438672 Dey Aug 1995 A
5440305 Signore et al. Aug 1995 A
5455731 Parkinson Oct 1995 A
5455927 Huang Oct 1995 A
5457410 Ting Oct 1995 A
5457479 Cheng Oct 1995 A
5479643 Bhaskar et al. Dec 1995 A
5479652 Dreyer et al. Dec 1995 A
5481471 Naglestad Jan 1996 A
5488204 Mead et al. Jan 1996 A
5493246 Anderson Feb 1996 A
5493723 Beck et al. Feb 1996 A
5495077 Miller et al. Feb 1996 A
5495593 Elmer et al. Feb 1996 A
5495594 MacKenna et al. Feb 1996 A
5499192 Knapp et al. Mar 1996 A
5517198 McEwan May 1996 A
5519854 Watt May 1996 A
5530444 Tice et al. Jun 1996 A
5530813 Paulsen et al. Jun 1996 A
5541878 LeMoncheck et al. Jul 1996 A
5543588 Bisset et al. Aug 1996 A
5543590 Gillespie et al. Aug 1996 A
5543591 Gillespie et al. Aug 1996 A
5544067 Rostoker et al. Aug 1996 A
5544311 Harenberg et al. Aug 1996 A
5546433 Tran et al. Aug 1996 A
5546562 Patel Aug 1996 A
5552725 Ray et al. Sep 1996 A
5552748 O'Shaughnessy Sep 1996 A
5554951 Gough Sep 1996 A
5555452 Callaway et al. Sep 1996 A
5555907 Phillipp Sep 1996 A
5557762 Okuaki et al. Sep 1996 A
5559502 Schutte Sep 1996 A
5559996 Fujioka et al. Sep 1996 A
5563526 Hastings et al. Oct 1996 A
5563529 Seltzer et al. Oct 1996 A
5564010 Henry et al. Oct 1996 A
5564108 Hunsaker et al. Oct 1996 A
5565658 Gerpheide et al. Oct 1996 A
5566702 Phillipp Oct 1996 A
5572665 Nakabayashi Nov 1996 A
5572719 Biesterfeldt Nov 1996 A
5574678 Gorecki Nov 1996 A
5574852 Bakker et al. Nov 1996 A
5574892 Christensen Nov 1996 A
5579353 Parmenter et al. Nov 1996 A
5587957 Kowalczyk et al. Dec 1996 A
5590354 Klapproth et al. Dec 1996 A
5594388 O'Shaughnessy et al. Jan 1997 A
5594734 Worsley et al. Jan 1997 A
5594890 Yamaura et al. Jan 1997 A
5600262 Kolze Feb 1997 A
5604466 Dreps et al. Feb 1997 A
5608892 Wakerly Mar 1997 A
5614861 Harada Mar 1997 A
5625316 Chambers et al. Apr 1997 A
5629857 Brennan May 1997 A
5629891 LeMoncheck et al. May 1997 A
5630052 Shah May 1997 A
5630057 Hait May 1997 A
5630102 Johnson et al. May 1997 A
5633766 Hase et al. May 1997 A
5642295 Smayling Jun 1997 A
5648642 Miller et al. Jul 1997 A
5663900 Bhandari et al. Sep 1997 A
5663965 Seymour Sep 1997 A
5664199 Kuwahara Sep 1997 A
5670915 Cooper et al. Sep 1997 A
5673198 Lawman et al. Sep 1997 A
5675825 Dreyer et al. Oct 1997 A
5677691 Hosticka et al. Oct 1997 A
5680070 Anderson et al. Oct 1997 A
5682032 Phillipp Oct 1997 A
5684434 Mann et al. Nov 1997 A
5686844 Hull et al. Nov 1997 A
5689196 Schutte Nov 1997 A
5691664 Anderson et al. Nov 1997 A
5691898 Rosenberg et al. Nov 1997 A
5694063 Burlison et al. Dec 1997 A
5696952 Pontarelli Dec 1997 A
5699024 Manlove et al. Dec 1997 A
5703871 Pope et al. Dec 1997 A
5706453 Cheng et al. Jan 1998 A
5708798 Lynch et al. Jan 1998 A
5710906 Ghosh et al. Jan 1998 A
5712969 Zimmermann et al. Jan 1998 A
5724009 Collins et al. Mar 1998 A
5727170 Mitchell et al. Mar 1998 A
5730165 Phillipp Mar 1998 A
5732277 Kodosky et al. Mar 1998 A
5734272 Belot et al. Mar 1998 A
5734334 Hsieh et al. Mar 1998 A
5737557 Sullivan Apr 1998 A
5737760 Grimmer et al. Apr 1998 A
5745011 Scott Apr 1998 A
5748048 Moyal May 1998 A
5748875 Tzori May 1998 A
5752013 Christensen et al. May 1998 A
5754552 Allmond et al. May 1998 A
5754826 Gamal et al. May 1998 A
5757368 Gerpheide et al. May 1998 A
5758058 Milburn May 1998 A
5763909 Mead et al. Jun 1998 A
5764714 Stansell et al. Jun 1998 A
5767457 Gerpheide et al. Jun 1998 A
5774704 Williams Jun 1998 A
5777399 Shibuya Jul 1998 A
5781747 Smith et al. Jul 1998 A
5784545 Anderson et al. Jul 1998 A
5790957 Heidari Aug 1998 A
5796183 Hourmand Aug 1998 A
5802073 Platt Sep 1998 A
5802290 Casselman Sep 1998 A
5805792 Swobada et al. Sep 1998 A
5808883 Hawkes Sep 1998 A
5812698 Platt et al. Sep 1998 A
5818444 Alimpich et al. Oct 1998 A
5819028 Manghirmalani et al. Oct 1998 A
5822387 Mar Oct 1998 A
5828693 Mays et al. Oct 1998 A
5838583 Varadarajan et al. Nov 1998 A
5841078 Miller et al. Nov 1998 A
5841996 Nolan et al. Nov 1998 A
5844265 Mead et al. Dec 1998 A
5850156 Wittman Dec 1998 A
5852733 Chien et al. Dec 1998 A
5854625 Frisch et al. Dec 1998 A
5857109 Taylor Jan 1999 A
5861583 Schediwy et al. Jan 1999 A
5861875 Gerpheide Jan 1999 A
5864242 Allen et al. Jan 1999 A
5864392 Winklhofer et al. Jan 1999 A
5867046 Sugasawa Feb 1999 A
5867399 Rostoker et al. Feb 1999 A
5869979 Bocchino Feb 1999 A
5870004 Lu Feb 1999 A
5870309 Lawman Feb 1999 A
5870345 Stecker Feb 1999 A
5872464 Gradinariu Feb 1999 A
5874958 Ludolph Feb 1999 A
5875293 Bell et al. Feb 1999 A
5877656 Mann et al. Mar 1999 A
5878425 Redpath Mar 1999 A
5880411 Gillespie et al. Mar 1999 A
5880598 Duong Mar 1999 A
5883623 Cseri Mar 1999 A
5886582 Stansell Mar 1999 A
5889236 Gillespie et al. Mar 1999 A
5889723 Pascucci Mar 1999 A
5889936 Chan Mar 1999 A
5889988 Held Mar 1999 A
5894226 Koyama Apr 1999 A
5894243 Hwang Apr 1999 A
5894565 Furtek et al. Apr 1999 A
5895494 Scalzi et al. Apr 1999 A
5896068 Moyal Apr 1999 A
5898345 Namura et al. Apr 1999 A
5898595 Bair et al. Apr 1999 A
5900780 Hirose et al. May 1999 A
5901062 Burch et al. May 1999 A
5903718 Marik May 1999 A
5905398 Todsen et al. May 1999 A
5911059 Profit, Jr. Jun 1999 A
5914465 Allen et al. Jun 1999 A
5914633 Comino et al. Jun 1999 A
5914708 LaGrange et al. Jun 1999 A
5920310 Faggin et al. Jul 1999 A
5923264 Lavelle et al. Jul 1999 A
5926566 Wang et al. Jul 1999 A
5929710 Bien Jul 1999 A
5930150 Cohen et al. Jul 1999 A
5933356 Rostoker et al. Aug 1999 A
5933816 Zeanah et al. Aug 1999 A
5935266 Thurnhofer et al. Aug 1999 A
5939904 Fetterman et al. Aug 1999 A
5939949 Olgaard et al. Aug 1999 A
5941991 Kageshima Aug 1999 A
5942733 Allen et al. Aug 1999 A
5943052 Allen et al. Aug 1999 A
5945878 Westwick et al. Aug 1999 A
5949632 Barreras, Sr. et al. Sep 1999 A
5952888 Scott Sep 1999 A
5959871 Pierzchala et al. Sep 1999 A
5963075 Hiiragizawa Oct 1999 A
5963105 Nguyen Oct 1999 A
5964893 Circello et al. Oct 1999 A
5966532 McDonald et al. Oct 1999 A
5968135 Teramoto et al. Oct 1999 A
5969513 Clark Oct 1999 A
5969632 Diamant et al. Oct 1999 A
5973368 Pearce et al. Oct 1999 A
5978584 Nishibata et al. Nov 1999 A
5978937 Miyamori et al. Nov 1999 A
5982105 Masters Nov 1999 A
5982229 Wong et al. Nov 1999 A
5982241 Nguyen et al. Nov 1999 A
5983277 Heile et al. Nov 1999 A
5986479 Mohan Nov 1999 A
5987246 Thomsen et al. Nov 1999 A
5988902 Holehan Nov 1999 A
5994939 Johnson et al. Nov 1999 A
5996032 Baker Nov 1999 A
5999725 Barbier et al. Dec 1999 A
6002398 Wilson Dec 1999 A
6003054 Oshima et al. Dec 1999 A
6003133 Moughanni et al. Dec 1999 A
6005814 Mulholland et al. Dec 1999 A
6005904 Knapp et al. Dec 1999 A
6008703 Perrott et al. Dec 1999 A
6009270 Mann Dec 1999 A
6009496 Tsai Dec 1999 A
6011407 New Jan 2000 A
6012835 Thompson et al. Jan 2000 A
6014135 Fernandes Jan 2000 A
6014509 Furtek et al. Jan 2000 A
6016554 Skrovan et al. Jan 2000 A
6016563 Fleisher Jan 2000 A
6018559 Azegami et al. Jan 2000 A
6023422 Allen et al. Feb 2000 A
6023565 Lawman et al. Feb 2000 A
6026134 Duffy et al. Feb 2000 A
6026501 Hohl et al. Feb 2000 A
6028271 Gillespie et al. Feb 2000 A
6028959 Wang et al. Feb 2000 A
6031365 Sharpe-Geisler Feb 2000 A
6032268 Swoboda et al. Feb 2000 A
6034538 Abramovici Mar 2000 A
6037807 Wu et al. Mar 2000 A
6038551 Barlow et al. Mar 2000 A
6041406 Mann Mar 2000 A
6043695 O'Sullivan Mar 2000 A
6043719 Lin et al. Mar 2000 A
6051772 Cameron et al. Apr 2000 A
6052035 Nolan et al. Apr 2000 A
6052524 Pauna Apr 2000 A
6057705 Wojewoda et al. May 2000 A
6058263 Voth May 2000 A
6061511 Marantz et al. May 2000 A
6066961 Lee et al. May 2000 A
6070003 Gove et al. May 2000 A
6072803 Allmond et al. Jun 2000 A
6075941 Itoh et al. Jun 2000 A
6079985 Wohl et al. Jun 2000 A
6081140 King Jun 2000 A
6094730 Lopez et al. Jul 2000 A
6097432 Mead et al. Aug 2000 A
6101457 Barch et al. Aug 2000 A
6104217 Magana Aug 2000 A
6104325 Liaw et al. Aug 2000 A
6107769 Saylor et al. Aug 2000 A
6107826 Young et al. Aug 2000 A
6107882 Gabara et al. Aug 2000 A
6110223 Southgate et al. Aug 2000 A
6111431 Estrada Aug 2000 A
6112264 Beasley et al. Aug 2000 A
6121805 Thamsirianunt et al. Sep 2000 A
6121965 Kenney et al. Sep 2000 A
6125416 Warren Sep 2000 A
6128768 Ho Oct 2000 A
6130548 Koifman Oct 2000 A
6130551 Agrawal et al. Oct 2000 A
6133773 Garlepp et al. Oct 2000 A
6134516 Wang et al. Oct 2000 A
6140853 Lo Oct 2000 A
6141376 Shaw Oct 2000 A
6141764 Ezell Oct 2000 A
6144327 Distinti et al. Nov 2000 A
6148104 Wang et al. Nov 2000 A
6148441 Woodward Nov 2000 A
6150866 Eto et al. Nov 2000 A
6154064 Proebsting Nov 2000 A
6157270 Tso Dec 2000 A
6161199 Szeto et al. Dec 2000 A
6166367 Cho Dec 2000 A
6166960 Marneweck et al. Dec 2000 A
6167077 Ducaroir Dec 2000 A
6167559 Furtek et al. Dec 2000 A
6169383 Johnson Jan 2001 B1
6172571 Moyal et al. Jan 2001 B1
6173419 Barnett Jan 2001 B1
6175914 Mann Jan 2001 B1
6175949 Gristede et al. Jan 2001 B1
6185127 Myers et al. Feb 2001 B1
6185450 Seguine et al. Feb 2001 B1
6185522 Bakker Feb 2001 B1
6185703 Guddat et al. Feb 2001 B1
6185732 Mann et al. Feb 2001 B1
6188228 Philipp Feb 2001 B1
6188241 Gauthier et al. Feb 2001 B1
6188381 van der Wal et al. Feb 2001 B1
6188391 Seely et al. Feb 2001 B1
6188975 Gay Feb 2001 B1
6191603 Muradali et al. Feb 2001 B1
6191660 Mar et al. Feb 2001 B1
6192431 Dabral et al. Feb 2001 B1
6201829 Schneider Mar 2001 B1
6202044 Tzori Mar 2001 B1
6204687 Schultz et al. Mar 2001 B1
6205574 Dellinger et al. Mar 2001 B1
6211708 Kemmer Apr 2001 B1
6211715 Terauchi Apr 2001 B1
6211741 Dalmia Apr 2001 B1
6219729 Keats et al. Apr 2001 B1
6222528 Gerpheide et al. Apr 2001 B1
6223144 Barnett et al. Apr 2001 B1
6223147 Bowers Apr 2001 B1
6223272 Coehlo et al. Apr 2001 B1
RE37195 Kean May 2001 E
6225866 Kubota et al. May 2001 B1
6236242 Hedberg May 2001 B1
6236275 Dent May 2001 B1
6236278 Olgaard May 2001 B1
6236593 Hong et al. May 2001 B1
6239389 Allen et al. May 2001 B1
6239798 Ludolph et al. May 2001 B1
6240375 Sonoda May 2001 B1
6246258 Lesea Jun 2001 B1
6246410 Bergeron et al. Jun 2001 B1
6249167 Oguchi et al. Jun 2001 B1
6249447 Boylan et al. Jun 2001 B1
6249795 Douglis Jun 2001 B1
6253282 Gish Jun 2001 B1
6262717 Donohue et al. Jul 2001 B1
6263302 Hellestrand et al. Jul 2001 B1
6263339 Hirsch Jul 2001 B1
6263484 Yang Jul 2001 B1
6272646 Rangasayee Aug 2001 B1
6275117 Abugharbieh et al. Aug 2001 B1
6278568 Cloke et al. Aug 2001 B1
6280391 Olson et al. Aug 2001 B1
6281753 Corsi et al. Aug 2001 B1
6282547 Hirsch Aug 2001 B1
6282551 Anderson et al. Aug 2001 B1
6286127 King et al. Sep 2001 B1
6288707 Philipp Sep 2001 B1
6289300 Brannick et al. Sep 2001 B1
6289489 Bold et al. Sep 2001 B1
6292028 Tomita Sep 2001 B1
6294932 Watarai Sep 2001 B1
6294962 Mar Sep 2001 B1
6298320 Buckmaster et al. Oct 2001 B1
6304014 England et al. Oct 2001 B1
6304101 Nishihara Oct 2001 B1
6304790 Nakamura et al. Oct 2001 B1
6307413 Dalmia et al. Oct 2001 B1
6310521 Dalmia Oct 2001 B1
6310611 Caldwell Oct 2001 B1
6311149 Ryan et al. Oct 2001 B1
6314530 Mann Nov 2001 B1
6320184 Winklhofer et al. Nov 2001 B1
6320282 Caldwell Nov 2001 B1
6321369 Heile et al. Nov 2001 B1
6323846 Westerman et al. Nov 2001 B1
6324628 Chan Nov 2001 B1
6326859 Goldman et al. Dec 2001 B1
6332201 Chin et al. Dec 2001 B1
6337579 Mochida Jan 2002 B1
6338109 Snyder et al. Jan 2002 B1
6339815 Feng et al. Jan 2002 B1
6342907 Petty et al. Jan 2002 B1
6345383 Ueki Feb 2002 B1
6347395 Payne et al. Feb 2002 B1
6351789 Green Feb 2002 B1
6353452 Hamada et al. Mar 2002 B1
6355980 Callahan Mar 2002 B1
6356862 Bailey Mar 2002 B2
6356958 Lin Mar 2002 B1
6356960 Jones et al. Mar 2002 B1
6359950 Gossmann et al. Mar 2002 B2
6362697 Pulvirenti Mar 2002 B1
6366174 Berry et al. Apr 2002 B1
6366300 Ohara et al. Apr 2002 B1
6366874 Lee et al. Apr 2002 B1
6366878 Grunert Apr 2002 B1
6369660 Wei Apr 2002 B1
6371878 Bowen Apr 2002 B1
6373954 Malcolm et al. Apr 2002 B1
6374370 Bockhaus et al. Apr 2002 B1
6377009 Philipp Apr 2002 B1
6377575 Mullaney et al. Apr 2002 B1
6377646 Sha Apr 2002 B1
6380811 Zarubinsky et al. Apr 2002 B1
6380929 Platt Apr 2002 B1
6380931 Gillespie et al. Apr 2002 B1
6384947 Ackerman et al. May 2002 B1
6385742 Kirsch et al. May 2002 B1
6388109 Schwarz et al. May 2002 B1
6396302 New et al. May 2002 B2
6396657 Suzuki et al. May 2002 B1
6397232 Cheng-Hung et al. May 2002 B1
6404204 Farruggia et al. Jun 2002 B1
6404445 Galea et al. Jun 2002 B1
6408432 Herrmann et al. Jun 2002 B1
6411665 Chan et al. Jun 2002 B1
6411974 Graham et al. Jun 2002 B1
6414671 Gillespie et al. Jul 2002 B1
6421698 Hong Jul 2002 B1
6425109 Choukalos et al. Jul 2002 B1
6425116 Duboc et al. Jul 2002 B1
6429882 Abdelnur et al. Aug 2002 B1
6430305 Decker Aug 2002 B1
6433645 Mann et al. Aug 2002 B1
6437805 Sojoodi et al. Aug 2002 B1
6438565 Ammirato et al. Aug 2002 B1
6438729 Ho Aug 2002 B1
6438735 McElvain et al. Aug 2002 B1
6438738 Elayda Aug 2002 B1
6441073 Tanaka et al. Aug 2002 B1
9434157 Beard Aug 2002
6445211 Saripella Sep 2002 B1
6449755 Beausang et al. Sep 2002 B1
6449761 Greidinger et al. Sep 2002 B1
6452437 Takeuchi et al. Sep 2002 B1
6452514 Philipp Sep 2002 B1
6453175 Mizell et al. Sep 2002 B2
6453461 Chaiken Sep 2002 B1
6456304 Angiulo et al. Sep 2002 B1
6457355 Philipp Oct 2002 B1
6457479 Zhuang et al. Oct 2002 B1
6460172 Insenser Farre et al. Oct 2002 B1
6463488 San Juan Oct 2002 B1
6466036 Philipp Oct 2002 B1
6466078 Stiff Oct 2002 B1
6466898 Chan Oct 2002 B1
6473069 Gerpheide Oct 2002 B1
6477691 Bergamashi/Rab et al. Nov 2002 B1
6480921 Mansoorian et al. Nov 2002 B1
6483343 Faith et al. Nov 2002 B1
6487700 Fukushima Nov 2002 B1
6489899 Ely et al. Dec 2002 B1
6490213 Mu et al. Dec 2002 B1
6492834 Lytle et al. Dec 2002 B1
6498720 Glad Dec 2002 B2
6499134 Buffet et al. Dec 2002 B1
6499359 Washeleski et al. Dec 2002 B1
6504403 Bangs et al. Jan 2003 B2
6507214 Snyder Jan 2003 B1
6507215 Piasecki et al. Jan 2003 B1
6507857 Yalcinalp Jan 2003 B1
6509758 Piasecki et al. Jan 2003 B2
6516428 Wenzel et al. Feb 2003 B2
6522128 Ely et al. Feb 2003 B1
6523416 Takagi et al. Feb 2003 B2
6525593 Mar Feb 2003 B1
6529791 Takagi Mar 2003 B1
6530065 McDonald et al. Mar 2003 B1
6534970 Ely et al. Mar 2003 B1
6535200 Philipp Mar 2003 B2
6535946 Bryant et al. Mar 2003 B1
6536028 Katsioulas et al. Mar 2003 B1
6539534 Bennett Mar 2003 B1
6542025 Kutz et al. Apr 2003 B1
6542844 Hanna Apr 2003 B1
6553057 Sha Apr 2003 B1
6557164 Faustini Apr 2003 B1
6559685 Green May 2003 B2
6560306 Duffy et al. May 2003 B1
6560699 Konkle May 2003 B1
6563391 Mar May 2003 B1
6564179 Belhaj May 2003 B1
6566961 Dasgupta et al. May 2003 B2
6567426 van Hook et al. May 2003 B1
6567932 Edwards et al. May 2003 B2
6570557 Westerman et al. May 2003 B1
6571331 Henry et al. May 2003 B2
6574590 Kershaw et al. Jun 2003 B1
6574739 Kung et al. Jun 2003 B1
6575373 Nakano Jun 2003 B1
6578174 Zizzo Jun 2003 B2
6580329 Sander Jun 2003 B2
6581191 Schubert et al. Jun 2003 B1
6587093 Shaw et al. Jul 2003 B1
6587995 Duboc et al. Jul 2003 B1
6588004 Southgate et al. Jul 2003 B1
6590422 Dillon Jul 2003 B1
6590517 Swanson Jul 2003 B1
6591369 Edwards et al. Jul 2003 B1
6592626 Bauchot et al. Jul 2003 B1
6594796 Chiang Jul 2003 B1
6594799 Robertson et al. Jul 2003 B1
6597212 Wang et al. Jul 2003 B1
6597824 Newberg et al. Jul 2003 B2
6598178 Yee et al. Jul 2003 B1
6600346 Macaluso Jul 2003 B1
6600351 Bisanti et al. Jul 2003 B2
6600575 Kohara Jul 2003 B1
6601189 Edwards et al. Jul 2003 B1
6601236 Curtis Jul 2003 B1
6603330 Snyder Aug 2003 B1
6603348 Preuss et al. Aug 2003 B1
6604179 Volk et al. Aug 2003 B2
6606731 Baum et al. Aug 2003 B1
6608472 Kutz et al. Aug 2003 B1
6610936 Gillespie et al. Aug 2003 B2
6611220 Snyder Aug 2003 B1
6611276 Muratori et al. Aug 2003 B1
6611856 Liao et al. Aug 2003 B1
6611952 Prakash et al. Aug 2003 B1
6613098 Sorge et al. Sep 2003 B1
6614260 Welch et al. Sep 2003 B1
6614320 Sullam et al. Sep 2003 B1
6614374 Gustavsson et al. Sep 2003 B1
6614458 Lambert et al. Sep 2003 B1
6617888 Volk Sep 2003 B2
6618854 Mann Sep 2003 B1
6621356 Gotz et al. Sep 2003 B2
6624640 Lund et al. Sep 2003 B2
6625765 Krishnan Sep 2003 B1
6628163 Dathe et al. Sep 2003 B2
6631508 Williams Oct 2003 B1
6634008 Dole Oct 2003 B1
6636096 Schaffer et al. Oct 2003 B2
6637015 Ogami et al. Oct 2003 B1
6639586 Gerpheide Oct 2003 B2
6642857 Schediwy et al. Nov 2003 B1
6643151 Nebrigic et al. Nov 2003 B1
6643810 Whetsel Nov 2003 B2
6649924 Philipp et al. Nov 2003 B1
6658633 Devins et al. Dec 2003 B2
6661288 Morgan et al. Dec 2003 B2
6664978 Kekic et al. Dec 2003 B1
6664991 Chew et al. Dec 2003 B1
6667642 Moyal Dec 2003 B1
6667740 Ely et al. Dec 2003 B2
6670852 Hauck Dec 2003 B1
6673308 Hino et al. Jan 2004 B2
6677814 Low et al. Jan 2004 B2
6677932 Westerman Jan 2004 B1
6678645 Rajsuman et al. Jan 2004 B1
6678877 Perry et al. Jan 2004 B1
6680632 Meyers et al. Jan 2004 B1
6680731 Gerpheide et al. Jan 2004 B2
6681280 Miyake et al. Jan 2004 B1
6681359 Au et al. Jan 2004 B1
6683462 Shimizu Jan 2004 B2
6683930 Dalmia Jan 2004 B1
6686787 Ling Feb 2004 B2
6690224 Moore Feb 2004 B1
6691301 Bowen Feb 2004 B2
6697754 Alexander Feb 2004 B1
6701340 Gorecki Mar 2004 B1
6701487 Ogami et al. Mar 2004 B1
6701508 Bartz et al. Mar 2004 B1
6704381 Moyal et al. Mar 2004 B1
6704879 Parrish Mar 2004 B1
6704889 Veenstra et al. Mar 2004 B2
6704893 Bauwens et al. Mar 2004 B1
6705511 Dames et al. Mar 2004 B1
6711226 Williams et al. Mar 2004 B1
6711731 Weiss Mar 2004 B2
6713897 Caldwell Mar 2004 B2
6714066 Gorecki et al. Mar 2004 B2
6714817 Daynes et al. Mar 2004 B2
6715132 Bartz et al. Mar 2004 B1
6717474 Chen et al. Apr 2004 B2
6718294 Bortfeld Apr 2004 B1
6718520 Merryman et al. Apr 2004 B1
6718533 Schneider et al. Apr 2004 B1
6724220 Snyder et al. Apr 2004 B1
6728900 Meli Apr 2004 B1
6728902 Kaiser et al. Apr 2004 B2
6730863 Gerpheide May 2004 B1
6732068 Sample et al. May 2004 B2
6732347 Camilleri et al. May 2004 B1
6738858 Fernald et al. May 2004 B1
6744323 Moyal et al. Jun 2004 B1
6748569 Brooke et al. Jun 2004 B1
6750852 Gillespie Jun 2004 B2
6750889 Livingston et al. Jun 2004 B1
6754765 Chang et al. Jun 2004 B1
6754849 Tamura Jun 2004 B2
6757882 Chen et al. Jun 2004 B2
6765407 Snyder Jul 2004 B1
6768337 Kohno et al. Jul 2004 B2
6768352 Maher et al. Jul 2004 B1
6769622 Tournemille et al. Aug 2004 B1
6771552 Fujisawa Aug 2004 B2
6774644 Eberlein Aug 2004 B2
6781456 Pradhan Aug 2004 B2
6782068 Wilson et al. Aug 2004 B1
6784821 Lee Aug 2004 B1
6785881 Bartz et al. Aug 2004 B1
6788116 Cook et al. Sep 2004 B1
6788221 Ely et al. Sep 2004 B1
6788521 Nishi Sep 2004 B2
6791377 Ilchmann et al. Sep 2004 B2
6792584 Eneboe et al. Sep 2004 B1
6798218 Kasperkovitz Sep 2004 B2
6798299 Mar et al. Sep 2004 B1
6806771 Hildebrant et al. Oct 2004 B1
6806782 Motoyoshi et al. Oct 2004 B2
6809275 Cheng et al. Oct 2004 B1
6809566 Xin-LeBlanc Oct 2004 B1
6810442 Lin et al. Oct 2004 B1
6815979 Ooshita Nov 2004 B2
6816544 Bailey et al. Nov 2004 B1
6819142 Viehmann et al. Nov 2004 B2
6823282 Snyder Nov 2004 B1
6823497 Schubert et al. Nov 2004 B2
6825689 Snyder Nov 2004 B1
6825869 Bang Nov 2004 B2
6829727 Pawloski Dec 2004 B1
6836169 Richmond et al. Dec 2004 B2
6839774 Ahn et al. Jan 2005 B1
6842710 Gehring et al. Jan 2005 B1
6847203 Conti et al. Jan 2005 B1
6850117 Weber et al. Feb 2005 B2
6854067 Kutz et al. Feb 2005 B1
6856433 Hatano et al. Feb 2005 B2
6859884 Sullam Feb 2005 B1
6865429 Schneider et al. Mar 2005 B1
6865504 Larson et al. Mar 2005 B2
6868500 Kutz et al. Mar 2005 B1
6871253 Greeff et al. Mar 2005 B2
6871331 Bloom et al. Mar 2005 B1
6873203 Latham, II et al. Mar 2005 B1
6873210 Mulder et al. Mar 2005 B2
6888453 Lutz et al. May 2005 B2
6888538 Ely et al. May 2005 B2
6892310 Kutz et al. May 2005 B1
6892322 Snyder May 2005 B1
6893724 Lin et al. May 2005 B2
6897390 Caldwell et al. May 2005 B2
6898703 Ogami et al. May 2005 B1
6900663 Roper et al. May 2005 B1
6901563 Ogami et al. May 2005 B1
6903402 Miyazawa Jun 2005 B2
6903613 Mitchell et al. Jun 2005 B1
6904570 Foote et al. Jun 2005 B2
6910126 Mar et al. Jun 2005 B1
6911857 Stiff Jun 2005 B1
6917661 Scott et al. Jul 2005 B1
6922821 Nemecek Jul 2005 B1
6924668 Muller et al. Aug 2005 B2
6934674 Douezy et al. Aug 2005 B1
6937075 Lim et al. Aug 2005 B2
6940356 McDonald et al. Sep 2005 B2
6941336 Mar Sep 2005 B1
6944018 Caldwell Sep 2005 B2
6949811 Miyazawa Sep 2005 B2
6949984 Siniscalchi Sep 2005 B2
6950954 Sullam et al. Sep 2005 B1
6950990 Rajarajan et al. Sep 2005 B2
6952778 Snyder Oct 2005 B1
6954511 Tachimori Oct 2005 B2
6956419 Mann et al. Oct 2005 B1
6957180 Nemecek Oct 2005 B1
6957242 Snyder Oct 2005 B1
6963233 Puccio et al. Nov 2005 B2
6967511 Sullam Nov 2005 B1
6967960 Bross et al. Nov 2005 B1
6968346 Hekmatpour Nov 2005 B2
6969978 Dening Nov 2005 B2
6970844 Bierenbaum Nov 2005 B1
6973400 Cahill-O'Brien et al. Dec 2005 B2
6975123 Malang et al. Dec 2005 B1
6980060 Boerstler et al. Dec 2005 B2
6981090 Kutz et al. Dec 2005 B1
6988192 Snider Jan 2006 B2
6996799 Cismas et al. Feb 2006 B1
7005933 Shutt Feb 2006 B1
7015735 Kimura et al. Mar 2006 B2
7017145 Taylor Mar 2006 B2
7017409 Zielinski et al. Mar 2006 B2
7023215 Seenwyk Apr 2006 B2
7023257 Sullam Apr 2006 B1
7024636 Weed Apr 2006 B2
7024654 Bersch et al. Apr 2006 B2
7026861 Seenwyk Apr 2006 B2
7030513 Caldwell Apr 2006 B2
7030656 Lo et al. Apr 2006 B2
7030688 Dosho et al. Apr 2006 B2
7030782 Ely et al. Apr 2006 B2
7042301 Sutardja May 2006 B2
7055035 Allison et al. May 2006 B2
7058921 Hwang et al. Jun 2006 B1
7073158 McCubbrey Jul 2006 B2
7076420 Snyder et al. Jul 2006 B1
7086014 Bartz et al. Aug 2006 B1
7088166 Reinschmidt et al. Aug 2006 B1
7089175 Nemecek et al. Aug 2006 B1
7092980 Mar et al. Aug 2006 B1
7098414 Caldwell Aug 2006 B2
7099818 Nemecek Aug 2006 B1
7103108 Beard Sep 2006 B1
7109978 Gillespie et al. Sep 2006 B2
7117485 Wilkinson et al. Oct 2006 B2
7119550 Kitano et al. Oct 2006 B2
7119602 Davis Oct 2006 B2
7124376 Zaidi et al. Oct 2006 B2
7127630 Snyder Oct 2006 B1
7129793 Gramegna Oct 2006 B2
7132835 Arcus Nov 2006 B1
7133140 Lukacs et al. Nov 2006 B2
7133793 Ely et al. Nov 2006 B2
7138868 Sanchez et al. Nov 2006 B2
7139530 Kusbel Nov 2006 B2
7141968 Hibbs et al. Nov 2006 B2
7141987 Hibbs et al. Nov 2006 B2
7149316 Kutz et al. Dec 2006 B1
7150002 Anderson et al. Dec 2006 B1
7151528 Taylor et al. Dec 2006 B2
7154294 Liu et al. Dec 2006 B2
7161936 Barrass et al. Jan 2007 B1
7162410 Nemecek et al. Jan 2007 B1
7171455 Gupta et al. Jan 2007 B1
7180342 Shutt et al. Feb 2007 B1
7185162 Snyder Feb 2007 B1
7185321 Roe et al. Feb 2007 B1
7188063 Snyder Mar 2007 B1
7200507 Chen et al. Apr 2007 B2
7206733 Nemecek Apr 2007 B1
7212189 Shaw et al. May 2007 B2
7221187 Snyder et al. May 2007 B1
7236921 Nemecek et al. Jun 2007 B1
7250825 Wilson et al. Jul 2007 B2
7256588 Howard et al. Aug 2007 B2
7265633 Stiff Sep 2007 B1
7266768 Ferlitsch et al. Sep 2007 B2
7282905 Chen et al. Oct 2007 B2
7283151 Nihei et al. Oct 2007 B2
7288977 Stanley Oct 2007 B2
7298124 Kan et al. Nov 2007 B2
7307485 Snyder et al. Dec 2007 B1
7312616 Snyder Dec 2007 B2
7323879 Kuo et al. Jan 2008 B2
7342405 Eldridge et al. Mar 2008 B2
7376904 Cifra et al. May 2008 B2
7386740 Kutz et al. Jun 2008 B2
7400183 Sivadasan et al. Jul 2008 B1
7406674 Ogami et al. Jul 2008 B1
7421251 Westwick et al. Sep 2008 B2
7466307 Trent, Jr. et al. Dec 2008 B2
7542533 Jasa et al. Jun 2009 B2
20010002129 Zimmerman et al. May 2001 A1
20010010083 Satoh Jul 2001 A1
20010038392 Humpleman et al. Nov 2001 A1
20010043081 Rees Nov 2001 A1
20010044927 Karniewicz Nov 2001 A1
20010045861 Bloodworth et al. Nov 2001 A1
20010047509 Mason et al. Nov 2001 A1
20020010716 McCartney et al. Jan 2002 A1
20020016706 Cooke et al. Feb 2002 A1
20020023110 Fortin et al. Feb 2002 A1
20020042696 Garcia et al. Apr 2002 A1
20020052729 Kyung et al. May 2002 A1
20020059543 Cheng et al. May 2002 A1
20020063688 Shaw et al. May 2002 A1
20020065646 Waldie et al. May 2002 A1
20020068989 Ebisawa et al. Jun 2002 A1
20020073119 Richard Jun 2002 A1
20020073380 Cooke Jun 2002 A1
20020080186 Frederiksen Jun 2002 A1
20020085020 Carroll, Jr. Jul 2002 A1
20020100003 McBride Jul 2002 A1
20020109722 Rogers et al. Aug 2002 A1
20020116168 Kim Aug 2002 A1
20020121679 Bazarjani et al. Sep 2002 A1
20020122060 Markel Sep 2002 A1
20020129334 Dane et al. Sep 2002 A1
20020133771 Barnett Sep 2002 A1
20020133794 Kanapathippillai et al. Sep 2002 A1
20020138516 Igra Sep 2002 A1
20020145433 Morrise et al. Oct 2002 A1
20020152234 Estrada et al. Oct 2002 A1
20020152449 Lin Oct 2002 A1
20020156885 Thakkar Oct 2002 A1
20020156998 Casselman Oct 2002 A1
20020161802 Gabrick et al. Oct 2002 A1
20020166100 Meding Nov 2002 A1
20020166103 Rittman et al. Nov 2002 A1
20020174134 Goykhman Nov 2002 A1
20020174411 Feng et al. Nov 2002 A1
20020191029 Gillespie et al. Dec 2002 A1
20030011639 Webb Jan 2003 A1
20030014447 White Jan 2003 A1
20030025734 Boose et al. Feb 2003 A1
20030028772 Allison et al. Feb 2003 A1
20030041235 Meyer Feb 2003 A1
20030056071 Triece et al. Mar 2003 A1
20030058469 Buis et al. Mar 2003 A1
20030061572 McClannahan et al. Mar 2003 A1
20030062889 Ely et al. Apr 2003 A1
20030080755 Kobayashi May 2003 A1
20030126947 Margaria et al. Jul 2003 A1
20030135842 Frey et al. Jul 2003 A1
20030149961 Kawai et al. Aug 2003 A1
20030229482 Cook et al. Dec 2003 A1
20030229877 Bersch et al. Dec 2003 A1
20040054821 Warren et al. Mar 2004 A1
20040060032 Mccubbrey Mar 2004 A1
20040098689 Weed May 2004 A1
20040153802 Kudo et al. Aug 2004 A1
20040205553 Hall et al. Oct 2004 A1
20040205617 Light Oct 2004 A1
20040205695 Fletcher Oct 2004 A1
20040221238 Cifra et al. Nov 2004 A1
20050024341 Gillespie et al. Feb 2005 A1
20050143968 Odom et al. Jun 2005 A9
20050240917 Wu Oct 2005 A1
20050280453 Hsieh Dec 2005 A1
20060032680 Elias et al. Feb 2006 A1
20060097991 Hotelling et al. May 2006 A1
20060273804 Delorme et al. Dec 2006 A1
Foreign Referenced Citations (21)
Number Date Country
0308583 Mar 1989 EP
0308583 Mar 1989 EP
368398 May 1990 EP
0450863 Oct 1991 EP
0450863 Oct 1991 EP
0499383 Aug 1992 EP
0499383 Aug 1992 EP
0639816 Feb 1995 EP
0639816 Feb 1995 EP
1170671 Jan 2002 EP
1205848 May 2002 EP
1191423 Feb 2003 EP
1191423 Feb 2003 EP
404083405 Mar 1992 JP
405055842 Mar 1993 JP
06021732 Jan 1994 JP
404095408 Mar 2002 JP
9532478 Nov 1995 WO
PCTUS9617305 Jun 1996 WO
PCTUS9834376 Aug 1998 WO
PCTUS9909712 Feb 1999 WO
Related Publications (1)
Number Date Country
20060033945 A1 Feb 2006 US
Provisional Applications (1)
Number Date Country
60601263 Aug 2004 US