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.

Patent
   8539398
Priority
Aug 13 2004
Filed
May 27 2010
Issued
Sep 17 2013
Expiry
Oct 07 2025

TERM.DISCL.
Extension
58 days
Assg.orig
Entity
Large
1
401
EXPIRED
1. A system, comprising:
at least one processor configured to:
generate a selectable list of a plurality of processing devices based on a previously-created device-independent system-level solution;
validate at least one of the plurality of processing devices by determining which of the plurality of processing devices can be programmed according to a current state of the device-independent system-level solution;
generate an embedded programmable system solution from the device- independent system-level solution and a processing device selected from the selectable list of the plurality of processing devices;
generate a programming image file based on the embedded programmable system solution;
save a first file comprising the device-independent system-level solution; and
generate a schematic of the programmed selected processing device.
13. A method, comprising:
selecting a processing device from a selectable list of one or more processing devices based on a previously-created device-independent system-level solution, wherein the selectable list of one or more processing devices is generated on a video display unit;
validating a current state of the device-independent system-level solution;
validating executable expressions associated with selected high level devices;
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;
automatically generating an embedded programmable system solution from the device-independent system-level solution and the selected processing device; and
automatically generating a programming image file based on the embedded programmable system solution.
2. The system of claim 1, wherein the selectable list of the plurality of processing devices comprises at least one of a programmable logic device, a field programmable gate array, a microcontroller, a microprocessor-based device, and a circuit comprising a processing device.
3. The system of claim 1, comprising:
a video display unit, wherein the video display unit is coupled to the at least one processor.
4. The system of claim 3, wherein the at least one processor is configured to generate a graphical user interface on the video display unit, wherein the selectable list of the plurality of processing devices is provided to the user through the graphical user interface.
5. The system of claim 3, wherein the at least one processor is configured to delete one or more lower level files associated with the embedded programmable system.
6. The system of claim 3, wherein the at least one processor is configured to match resource requirements of one or more functions of the device-independent system-level solution to one or more base projects associated with the plurality of processing devices to determine the selectable list of the plurality of processing devices.
7. The system of claim 6, wherein the at least one processor is configured to generate one or more base projects associated with the the plurality of 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 the plurality of processing devices.
8. The system of claim 3, wherein the at least one processor is configured to provide to the user a selectable list of a plurality of high level devices to design the device-independent system-level solution.
9. The system of claim 8, wherein the at least one processor is configured to update the selectable list of the plurality of high level devices and the selectable list of the the plurality of processing devices in response to a selection of high level device from the plurality of high level devices.
10. The system of claim 9, wherein the at least one processor is configured to validate a current state of the device-independent system-level solution.
11. The system of claim 10, wherein the at least one processor is configured to validate executable expressions associated with the selected high level devices.
12. The system of claim 1, wherein the schematic comprises at least one of functional pins, input output devices, and interfacing circuitry.
14. The method of claim 13, wherein the selectable list of one or more processing devices comprises at least one of a programmable logic device, a field programmable gate array, a microcontroller, a microprocessor-based device, and a circuit comprising a processing device.
15. The method of claim 13, comprising:
automatically providing the selectable list of one or more processing devices to a user.
16. The method of claim 13, comprising:
automatically 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 to determine the selectable list of one or more processing devices.
17. The method of claim 16, comprising:
automatically generating the 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.
18. The method of claim 13, comprising:
automatically providing to the user a selectable list of a plurality of high level devices to design the device-independent system-level solution.
19. The method of claim 18, comprising:
updating the selectable list of the plurality of high level devices and the selectable list of the one or more processing devices in response to a selection of a high level device from the plurality of high level devices.

This application is a continuation of U.S. application Ser. No. 11/201,922, filed Aug. 10, 2005, which claims the benefit of U.S. Provisional Application No. 60/601,263, filed Aug. 13, 2004, the entire contents of each of which are incorporated by reference herein.

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

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.

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.

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 308. 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, encoding or carrying 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, and carrier wave signals.

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.

Anderson, Doug, McDonald, John, Ogami, Kenneth, Pearson, Jon

Patent Priority Assignee Title
10095210, Mar 06 2015 DATA I O CORPORATION Device programming system with multiple-device interface and method of operation thereof
Patent Priority Assignee Title
4061987, Feb 27 1976 Nippon Gakki Seizo Kabushiki Kaisha Voltage-controlled type oscillator
4134073, Jul 12 1976 Honeywell Information Systems Inc. Clock system having adaptive synchronization feature
4138671, Feb 14 1977 ANALOG DEVICES, INC , A CORP OF MA Selectable trimming circuit for use with a digital to analog converter
4176258, May 01 1978 Intel Corporation Method and circuit for checking integrated circuit chips
4272760, Apr 10 1979 BURR-BROWN CORPORATION, A DE CORP Self-calibrating digital to analog conversion system and method
4344067, Nov 21 1979 Motorola, Inc. Analog to digital converter and method of calibrating same
4656603, Mar 01 1984 The Cadware Group, Ltd. Schematic diagram generating system using library of general purpose interactively selectable graphic primitives to create special applications icons
4689740, Nov 02 1981 U S PHILIPS CORPORATION Two-wire bus-system comprising a clock wire and a data wire for interconnecting a number of stations
4692718, Apr 12 1985 U S PHILIPS CORPORATION, 100 EAST 42ND ST , NEW YORK, NY 10017 A CORP OF DE Tunable astable multivibrator with buffer transistors
4809345, Apr 30 1982 Hitachi, Ltd. Method of and apparatus for enlarging/reducing two-dimensional images
4827401, Oct 24 1984 International Business Machines Corporation Method and apparatus for synchronizing clocks prior to the execution of a flush operation
4868525, Sep 23 1988 Maxim Integrated Products, Inc Temperature-stabilized oscillator
4937743, Sep 10 1987 RESOURCE SCHEDULING CORPORATION Method and system for scheduling, monitoring and dynamically managing resources
4947169, Oct 24 1989 Burr-Brown Corporation Dummy/trim DAC for capacitor digital-to-analog converter
4964074, Mar 31 1986 Ando Electric Co., Ltd. In-circuit emulator
5050168, Dec 29 1989 Test coverage analyzer
5127103, Oct 14 1987 North American Philips Corporation Real-time tracing of dynamic local data in high level languages in the presence of process context switches
5128871, Mar 07 1990 Lattice Semiconductor Corporation Apparatus and method for allocation of resoures in programmable logic devices
5140197, Aug 13 1990 Dallas Semiconductor Corporation Filtered detection plus propagated timing window for stabilizing the switch from crystal to ring oscillator at power-down
5150079, Mar 27 1990 Dallas Semiconductor Corporation Two-mode oscillator
5155836, Jan 27 1987 Block diagram system and method for controlling electronic instruments with simulated graphic display
5175884, Jun 01 1990 Motorola, Inc. Voltage controlled oscillator with current control
5179531, Apr 27 1990 Pioneer Electronic Corporation Accelerated digital signal processor
5200751, Jun 26 1989 Dallas Semiconductor Corp.; DALLAS SEMICONDUCTOR CORPORATION, 4350 BELTWOOD PARKWAY SOUTH, DALLAS, TEXAS 75244 Digital to analog converter using a programmable logic array
5202687, Jun 12 1991 INTELLECTUAL PROPERTY DEVELOPMENT ASSOCIATES OF CONNECTICUT, INC Analog to digital converter
5220512, Apr 19 1990 LSI Logic Corporation System for simultaneous, interactive presentation of electronic circuit diagrams and simulation data
5241492, May 06 1991 Freescale Semiconductor, Inc Apparatus for performing multiply and accumulate instructions with reduced power and a method therefor
5258760, Jul 13 1992 ALLEGRO MICROSYSTEMS, INC , A DE CORP Digitally dual-programmable integrator circuit
5304955, Nov 19 1992 Motorola, Inc. Voltage controlled oscillator operating with digital controlled loads in a phase lock loop
5319370, Aug 31 1992 Cirrus Logic, INC Analog-to-digital converter with a continuously calibrated voltage reference
5321828, Jun 07 1991 STEP ENGINEERING, A CORP OF CA High speed microcomputer in-circuit emulator
5325512, Jul 22 1992 NEC Corporation Circuit emulator
5331571, Jul 22 1992 RENESAS ELECTRONICS AMERICA, INC Testing and emulation of integrated circuits
5339262, Jul 10 1992 Bell Semiconductor, LLC Method and apparatus for interim, in-situ testing of an electronic system with an inchoate ASIC
5345195, Oct 22 1992 Promos Technologies Inc Low power Vcc and temperature independent oscillator
5357626, Aug 12 1991 Advanced Micro Devices, Inc. Processing system for providing an in circuit emulator with processor internal state
5371860, Mar 30 1990 Matsushita Electric Works, Ltd. Programmable controller
5394522, Dec 10 1990 International Business Machines Corporation Selecting and locating graphical icon objects to define and configure the workstations in data processing networks
5399922, Jul 02 1993 ALTERA CORPORATION, A DELAWARE CORPORATION Macrocell comprised of two look-up tables and two flip-flops
5414308, Jul 29 1992 Winbond Electronics Corporation High frequency clock generator with multiplexer
5416895, Apr 08 1992 Borland Software Corporation System and methods for improved spreadsheet interface with user-familiar objects
5422833, Oct 30 1991 XILINX, INC A CORP OF DELAWARE Method and system for propagating data type for circuit design from a high level block diagram
5426378, Apr 20 1994 XILINX, Inc.; Xilinx, Inc Programmable logic device which stores more than one configuration and means for switching configurations
5428319, Nov 29 1993 CTS Corporation Method and apparatus for providing a modified temperature compensation signal in a TCXO circuit
5430687, Apr 01 1994 XILINX, Inc.; Xilinx, Inc Programmable logic device including a parallel input device for loading memory cells
5438672, Dec 18 1990 National Semiconductor Corporation Microcontroller emulator for plural device architecture configured by mode control data and operated under control code transmitted via same switching bus
5440305, Aug 31 1992 Cirrus Logic, INC Method and apparatus for calibration of a monolithic voltage reference
5455927, Aug 22 1991 Wistron Corp Dual socket upgradeable computer motherboard with automatic detection and enablement of inserted upgrade CPU chip
5479643, Nov 18 1985 National Instruments Corporation Virtual machine programming system
5493723, Nov 06 1990 National Semiconductor Corporation Processor with in-system emulation circuitry which uses the same group of terminals to output program counter bits
5495594, Jul 12 1991 IXYS Intl Limited Technique for automatically adapting a peripheral integrated circuit for operation with a variety of microprocessor control signal protocols
5499192, Oct 30 1991 XILINX, Inc. Method for generating logic modules from a high level block diagram
5519854, Sep 09 1994 ARM Limited Write request interlock
5544067, Apr 06 1990 LSI Logic Corporation Method and system for creating, deriving and validating structural description of electronic system from higher level, behavior-oriented description, including interactive schematic design and simulation
5546433, Mar 21 1995 National Semiconductor Corporation Digital phase lock loop having frequency offset cancellation circuitry
5546562, Feb 28 1995 Method and apparatus to emulate VLSI circuits within a logic simulator
5552748, Jun 07 1995 Semiconductor Components Industries, LLC Digitally-tuned oscillator including a self-calibrating RC oscillator circuit
5557762, Feb 13 1991 Oki Electric Industry Co., Ltd. Digital signal processor evaluation chip and debug method
5559502, Jan 14 1993 FUTURE LINK SYSTEMS Two-wire bus system comprising a clock wire and a data wire for interconnecting a number of stations and allowing both long-format and short-format slave addresses
5559996, Jan 12 1993 Renesas Electronics Corporation Level converter including wave-shaping circuit and emulator microcomputer incorporating the level converter
5563526, Jan 03 1994 Texas Instruments Incorporated Programmable mixed-mode integrated circuit architecture
5564108, Aug 31 1993 Datex-Ohmeda, Inc Non-invasive software update apparatus
5572665, Apr 21 1994 Mitsubishi Denki Kabushiki Kaisha Semiconductor integrated circuit for developing a system using a microprocessor
5574892, Jun 30 1993 Intel Corporation Use of between-instruction breaks to implement complex in-circuit emulation features
5587957, Sep 29 1995 Intel Corporation Circuit for sharing a memory of a microcontroller with an external device
5590354, Jul 28 1993 NXP B V Microcontroller provided with hardware for supporting debugging as based on boundary scan standard-type extensions
5594734, Nov 02 1992 RPX Corporation Asynchronous processor access to a switch table in a network with isochronous capability
5594890, Feb 25 1993 Ricoh Company, Ltd. Emulation system for emulating CPU core, CPU core with provision for emulation and ASIC having the CPU core
5600262, Dec 01 1994 QuickLogic Corporation Integrated circuit facilitating simultaneous programming of multiple antifuses
5604466, Dec 08 1992 International Business Machines Corporation On-chip voltage controlled oscillator
5614861, May 18 1995 Mitsubishi Denki Kabushiki Kaisha N-phase modulated signal demodulation system with carrier reproduction
5629857, Nov 15 1994 International Business Machines Corporation Method and system for indicating a status of a circuit design
5630052, Sep 30 1993 Intel Corporation System development and debug tools for power management functions in a computer system
5630102, Dec 19 1994 Intel Corporation In-circuit-emulation event management system
5633766, Oct 30 1989 Hitachi, Ltd. Magnetic disk storage apparatus with phase sync circuit having controllable response characteristics
5663900, Sep 10 1993 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Electronic simulation and emulation system
5670915, May 24 1996 Microchip Technology Incorporated; MICROCHIP TECHNOLOGY, INC Accurate RC oscillator having peak - to - peak voltage control
5673198, Mar 29 1996 XILINX, Inc.; Xilinx, Inc Concurrent electronic circuit design and implementation
5675825, Aug 31 1992 Intel Corporation Apparatus and method for identifying a computer microprocessor
5680070, Feb 05 1996 F POSZAT HU, L L C Programmable analog array and method for configuring the same
5684434, Oct 30 1995 MORGAN STANLEY SENIOR FUNDING, INC Erasable and programmable single chip clock generator
5689196, Dec 02 1994 FUTURE LINK SYSTEMS Circuit comprising a data communication bus
5691898, Sep 27 1995 IMMERSION CORPORATION DELAWARE CORPORATION Safe and low cost computer peripherals with force feedback for consumer applications
5699024, May 06 1996 Delphi Technologies, Inc Accurate integrated oscillator circuit
5703871, Sep 07 1993 JDS Uniphase Corporation Facilities data link handler in a performance monitoring and test system
5706453, Feb 06 1995 Intelligent real-time graphic-object to database linking-actuator for enabling intuitive on-screen changes and control of system configuration
5708798, May 29 1993 VERSATA DEVELOPMENT GROUP, INC Method and apparatus for configuring systems
5710906, Jul 07 1995 OPTi Inc. Predictive snooping of cache memory for master-initiated accesses
5732277, Oct 04 1986 National Instruments Corporation Graphical system for modelling a process and associated method
5737557, May 26 1995 SAMSUNG ELECTRONICS CO , LTD Intelligent window user interface for computers
5745011, Jun 05 1996 Cypress Semiconductor Corporation Data recovery phase locked loop
5748875, Jun 12 1996 SIMPOD, INC Digital logic simulation/emulation system
5752013, Jun 30 1993 U S BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT Method and apparatus for providing precise fault tracing in a superscalar microprocessor
5754826, Aug 04 1995 ARM, INC CAD and simulation system for targeting IC designs to multiple fabrication processes
5758058, Mar 31 1993 Intel Corporation Apparatus and method for initializing a master/checker fault detecting microprocessor
5781747, Nov 14 1995 RATEZE REMOTE MGMT L L C Method and apparatus for extending the signal path of a peripheral component interconnect bus to a remote location
5784545, Apr 08 1992 Borland Software Corporation System and methods for improved spreadsheet interface with user-familiar objects
5802290, Jul 29 1992 TAROFISS DATA LIMITED LIABILITY COMPANY Computer network of distributed virtual computers which are EAC reconfigurable in response to instruction to be executed
5805792, Jul 31 1989 Texas Instruments Incorporated Emulation devices, systems, and methods
5818444, Aug 14 1996 Ricoh Company, LTD Method, apparatus and application for object selective but global attribute modification
5828693, Mar 21 1996 INTERMEC IP CORP , A CORP OF DELAWARE Spread spectrum frequency hopping reader system
5838583, Apr 12 1996 Cadence Design Systems, INC Optimized placement and routing of datapaths
5852733, Dec 16 1996 Microcontroller development tool using software programs
5867399, Apr 06 1990 LSI Logic Corporation System and method for creating and validating structural description of electronic system from higher-level and behavior-oriented description
5870004, Oct 16 1997 HANGER SOLUTIONS, LLC Temperature compensated frequency generating circuit
5870309, Sep 26 1997 XILINX, Inc.; Xilinx, Inc HDL design entry with annotated timing
5870345, Sep 04 1997 Polaris Innovations Limited Temperature independent oscillator
5872464, Aug 12 1996 CALLAHAN CELLULAR L L C Input buffer with stabilized trip points
5874958, Mar 31 1997 Oracle America, Inc Method and apparatus for accessing information and items across workspaces
5878425, Aug 21 1996 International Business Machines Corp.; IBM Corporation Intuitive technique for visually creating resource files
5880598, Jan 10 1997 XILINX, Inc.; Xilinx, Inc Tile-based modular routing resources for high density programmable logic device
5883623, Apr 08 1992 Borland Software Corporation System and methods for building spreadsheet applications
5889936, Nov 22 1995 Intellectual Ventures II LLC High speed asynchronous digital testing module
5889988, Jan 03 1995 Intel Corporation Debugger for debugging tasks in an operating system virtual device driver
5895494, Sep 05 1997 International Business Machines Corporation Method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure
5898345, Aug 12 1996 Matsushita Electric Industrial Co., Ltd. Oscillator circuit with first and second frequency control elements
5898595, May 26 1995 Bell Semiconductor, LLC Automated generation of megacells in an integrated circuit design system
5901062, Sep 25 1995 Texas Instruments Incorporated Semiconductor structure design and process visualization through the use of simple process models and intuitive interfaces
5903718, Sep 16 1996 International Business Machines Corporation Remote program monitor method and system using a system-under-test microcontroller for self-debug
5911059, Dec 18 1996 Freescale Semiconductor, Inc Method and apparatus for testing software
5930150, Sep 06 1996 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Method and system for designing and analyzing optical application specific integrated circuits
5933356, Apr 06 1990 LSI Logic Corporation Method and system for creating and verifying structural logic model of electronic design from behavioral description, including generation of logic and timing models
5933816, Oct 31 1996 CITICORP CREDIT SERVICES, INC USA System and method for delivering financial services
5939949, Mar 16 1998 WI-LAN INC Self-adjusting startup control for charge pump current source in phase locked loop
5964893, Aug 30 1995 Freescale Semiconductor, Inc Data processing system for performing a trace function and method therefor
5966532, Jul 10 1997 National Instruments Corporation Graphical code generation wizard for automatically creating graphical programs
5968135, Nov 18 1996 Hitachi, LTD Processing instructions up to load instruction after executing sync flag monitor instruction during plural processor shared memory store/load access synchronization
5982229, Nov 17 1997 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Signal processing scheme utilizing oversampled switched capacitor filter
5983277, Oct 28 1996 Altera Corporation Work group computing for electronic design automation
5987246, Feb 14 1997 National Instruments Corporation Graphical programming system and method including three-dimensional nodes with pre-defined input and output capabilities
5999725, Apr 23 1996 Mentor Graphics Corporation; MENTOR GRAPHICS HOLDING LTD Method and apparatus tracing any node of an emulation
6002398, Oct 30 1997 Apple Inc Navigation between property pages with tabs and menus
6009270, Apr 08 1997 GLOBALFOUNDRIES Inc Trace synchronization in a processor
6012835, Aug 05 1991 OPTIMAL SOFTWARE LIMITED Apparatus and method of powerline surveying, designing in 3D and maintenance
6014135, Apr 04 1997 Meta Platforms, Inc Collaboration centric document processing environment using an information centric visual user interface and information presentation method
6016554, Jul 28 1997 Advanced Micro Devices, Inc. Method for event-related functional testing of a microprocessor
6016563, Dec 30 1997 Method and apparatus for testing a logic design of a programmable logic device
6018559, Dec 19 1995 Fujitsu Limited Chain-connected shift register and programmable logic circuit whose logic function is changeable in real time
6032268, Sep 04 1987 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
6034538, Jan 21 1998 Lattice Semiconductor Corporation Virtual logic system for reconfigurable hardware
6038551, Mar 11 1996 Microsoft Technology Licensing, LLC System and method for configuring and managing resources on a multi-purpose integrated circuit card using a personal computer
6052524, May 14 1998 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
6058263, Jun 03 1996 Microsoft Technology Licensing, LLC Interface hardware design using internal and external interfaces
6075941, Jan 29 1997 Western Digital Technologies, INC Microcomputer
6094730, Oct 27 1997 SAMSUNG ELECTRONICS CO , LTD Hardware-assisted firmware tracing method and apparatus
6107769, Dec 29 1998 SCHNEIDER AUTOMATION INC Positional-based motion controller with a bias latch
6107826, Aug 19 1998 XILINX, Inc.; Xilinx, Inc Interconnect structure for FPGA with configurable delay locked loop
6110223, Oct 28 1996 Altera Corporation Graphic editor for block diagram level design of circuits
6121965, Oct 17 1997 WSOU Investments, LLC User interface for graphical application tool
6128768, Nov 08 1994 Synopsys, Inc. Method of extracting layout parasitics for nets of an integrated circuit using a connectivity-based approach
6134516, May 02 1997 Cadence Design Systems, INC Simulation server system and method
6140853, Nov 29 1996 PLL TECHNOLOGIES, INC Digital phase detector and charge pump system reset and balanced current source matching
6144327, Aug 15 1996 Intel Corporation Programmably interconnected programmable devices
6157270, Dec 28 1998 Exar Corporation Programmable highly temperature and supply independent oscillator
6161199, Dec 12 1997 Qualcomm Incorporated Non-intrusive in-system debugging for a microcontroller with in-system programming capabilities using in-system debugging circuitry and program embedded in-system debugging commands
6166367, Mar 26 1998 Aptina Imaging Corporation Programmable analog arithmetic circuit for imaging sensor
6169383, Oct 02 1998 SIEMENS INDUSTRY, INC Self adapting motor controller
6173419, May 14 1998 Silicon Storage Technology, Inc Field programmable gate array (FPGA) emulator for debugging software
6175949, Mar 24 1998 International Business Machines Corporation Method and system for selecting sizes of components for integrated circuits
6185522, May 30 1997 FUTURE LINK SYSTEMS Method and system for emulating microcontrollers
6188975, Mar 31 1998 Synopsys, Inc Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
6191660, Mar 24 1999 MONTEREY RESEARCH, LLC Programmable oscillator scheme
6202044, Jun 13 1997 SIMPOD, INC Concurrent hardware-software co-simulation
6205574, Jul 28 1998 XILINX, Inc. Method and system for generating a programming bitstream including identification bits
6211741, Oct 16 1998 HANGER SOLUTIONS, LLC Clock and data recovery PLL based on parallel architecture
6223144, Mar 24 1998 Silicon Storage Technology, Inc Method and apparatus for evaluating software programs for semiconductor circuits
6223147, Mar 31 1993 Intel Corporation Multiple use chip socket for integrated circuits and the like
6223272, Jul 15 1998 Infineon Technologies AG Test vector verification system
6225866, May 31 1994 Sharp Kabushiki Kaisha Series connected multi-stage linear FET amplifier circuit
6239798, May 28 1998 Oracle America, Inc Methods and apparatus for a window access panel
6240375, Jun 04 1998 Mitsubishi Denki Kabushiki Kaisha Method of simulating an integrated circuit for error correction in a configuration model, and a computer-readable recording medium
6246410, Jan 19 1996 International Business Machines Corp. Method and system for database access
6249167, Jul 03 1997 Seiko Epson Corporation Semiconductor integrated circuit, semiconductor device, and electronic equipment comprising the same
6249795, Oct 27 1995 HANGER SOLUTIONS, LLC Personalizing the display of changes to records in an on-line repository
6253282, Jul 01 1996 Oracle America, Inc Object-oriented system, method and article of manufacture for a client-server with a client program cache
6263302, Oct 29 1999 Synopsys, Inc Hardware and software co-simulation including simulating the cache of a target processor
6263339, Aug 25 1998 International Business Machines Corporation Dynamic object visualization and code generation
6263484, Oct 01 1997 Prototyping system and a method of operating the same
6272646, Sep 04 1996 Intellectual Ventures II LLC Programmable logic device having an integrated phase lock loop
6282547, Aug 25 1998 ACTIVISION PUBLISHING, INC Hyperlinked relational database visualization system
6282551, Apr 08 1992 Borland Software Corporation System and methods for improved spreadsheet interface with user-familiar objects
6289300, Feb 06 1998 Analog Devices, Inc Integrated circuit with embedded emulator and emulation system for use with such an integrated circuit
6289489, Feb 23 1999 Mentor Graphics Corporation Method and apparatus for automatically cross-referencing graphical objects and HDL statements
6294962, Dec 09 1998 HANGER SOLUTIONS, LLC Circuit(s), architecture and method(s) for operating and/or tuning a ring oscillator
6298320, Feb 17 1998 Freescale Semiconductor, Inc System and method for testing an embedded microprocessor system containing physical and/or simulated hardware
6304101, Jul 14 1999 Fuji Xerox Co., LTD Programmable logic device, information processing system, method of reconfiguring programmable logic device and method compressing circuit information for programmable logic device
6304790, Oct 23 1997 Fujitsu Limited System design/evaluation CAD system and program storage medium
6314530, Dec 17 1997 GLOBALFOUNDRIES Inc Processor having a trace access instruction to access on-chip trace memory
6321369,
6332201, Mar 23 1999 SAMSUNG ELECTRONICS CO , LTD Test results checking via predictive-reactive emulation
6338109, Aug 30 1996 MONTEREY RESEARCH, LLC Microcontroller development system and applications thereof for development of a universal serial bus microcontroller
6342907, Oct 19 1998 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
6345383, Sep 14 1994 Kabushiki Kaisha Toshiba Debugging support device and debugging support method
6347395, Dec 18 1998 FUTURE LINK SYSTEMS Method and arrangement for rapid silicon prototyping
6353452, Oct 20 1997 International Business Machines Corporation Data item display method and device, and recording medium storing a program for controlling display of data item
6356862, Sep 24 1998 Mentor Graphics Corporation Hardware and software co-verification employing deferred synchronization
6366300, Mar 11 1997 Mitsubishi Denki Kabushiki Kaisha Visual programming method and its system
6366874, May 24 1999 Synopsys, Inc System and method for browsing graphically an electronic design based on a hardware description language specification
6366878, Sep 26 1997 Infineon Technologies AG Circuit arrangement for in-circuit emulation of a microcontroller
6369660, Oct 27 1999 MONTEREY RESEARCH, LLC Circuit and method for preventing runaway in a phase lock loop
6374370, Oct 30 1998 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Method and system for flexible control of BIST registers based upon on-chip events
6377646, Jul 21 1997 CHINA CITIC BANK CORPORATION LIMITED, GUANGZHOU BRANCH, AS COLLATERAL AGENT Spread spectrum at phase lock loop (PLL) feedback path
6385742, Mar 06 1998 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LIMITED Microprocessor debugging mechanism employing scan interface
6397232, Feb 02 2001 Wistron Corporation; Acer Incorporated Method and system for translating the format of the content of document file
6404445, Dec 30 1999 JDA SOFTWARE GROUP, INC Method and system for modeling data
6408432, Nov 14 1996 Altera Corporation Apparatus and method for in-system programming of integrated circuits containing programmable elements
6411974, Feb 04 1998 Apple Inc Method to collate and extract desired contents from heterogeneous text-data streams
6425116, Mar 30 2000 III Holdings 6, LLC Automated design of digital signal processing integrated circuit
6429882, Mar 15 1999 Oracle America, Inc User interface component
6434187, Oct 14 1997 MORGAN STANLEY SENIOR FUNDING, INC Digital radiofrequency transceiver
6437805, Sep 23 1996 National Instruments Corporation System and method for accessing object capabilities in a graphical program
6438565, Mar 11 1993 Borland Software Corporation System and methods for improved scenario management in an electronic spreadsheet
6438729, Nov 08 1994 Synopsys, Inc Connectivity-based approach for extracting layout parasitics
6438735, May 17 1999 SYNOPSYS, INC , A DELAWARE CORPORATION Methods and apparatuses for designing integrated circuits
6438738, Sep 19 2000 XILINX, Inc.; Xilinx, Inc System and method for configuring a programmable logic device
6445211, Nov 20 2000 MONTEREY RESEARCH, LLC Circuit technique for improved current matching in charge pump PLLS
6449755, Oct 30 1997 Synopsys, Inc. Instruction signature and primary input and primary output extraction within an IEEE 1149.1 compliance checker
6449761, Mar 10 1998 Synopsys, Inc Method and apparatus for providing multiple electronic design solutions
6453461, Jun 09 1999 HTC Corporation Method and apparatus for testing ASL plug and play code in an ACPI operating system
6456304, Jun 30 1999 Microsoft Technology Licensing, LLC Procedural toolbar user interface
6460172, Jun 21 2000 SEMICONDUCTORES INVESTIGACION DISENO, S A SIDSA Microprocessor based mixed signal field programmable integrated device and prototyping methodology
6466898, Jan 12 1999 Multithreaded, mixed hardware description languages logic simulation on engineering workstations
6477691, Apr 03 2000 GLOBALFOUNDRIES Inc Methods and arrangements for automatic synthesis of systems-on-chip
6487700, Mar 15 1999 Advantest Corporation Semiconductor device simulating apparatus and semiconductor test program debugging apparatus using it
6499134, Jul 13 2000 GLOBALFOUNDRIES U S INC Method of assigning integrated circuit I/O signals in an integrated circuit package
6507214, Oct 26 2000 MONTEREY RESEARCH, LLC Digital configurable macro architecture
6507857, Mar 12 1999 Oracle America, Inc Extending the capabilities of an XSL style sheet to include components for content transformation
6516428, Jan 22 1999 Infineon Technologies AG On-chip debug system
6525593, Oct 26 2000 MONTEREY RESEARCH, LLC Method and apparatus for local and global power management in a programmable analog circuit
6529791, Mar 15 1999 International Business Machines Corporation Apparatus and method for placing a component
6530065, Mar 14 2000 Transim Technology Corporation Client-server simulator, such as an electrical circuit simulator provided by a web server over the internet
6535946, Jan 04 2000 AMD TECHNOLOGIES HOLDINGS, INC ; GLOBALFOUNDRIES Inc Low-latency circuit for synchronizing data transfers between clock domains derived from a common clock
6536028, Mar 14 2000 Ammocore Technologies, Inc. Standard block architecture for integrated circuit design
6539534, Aug 25 2000 XILINX, Inc. Apparatus and method for automatically generating circuit designs that meet user output requirements
6542025, Oct 26 2000 Nvidia Corporation Power supply pump circuit for a microcontroller
6542844, Aug 02 2000 International Business Machines Corporation Method and apparatus for tracing hardware states using dynamically reconfigurable test circuits
6553057, Nov 09 1999 MONTEREY RESEARCH, LLC Circuit and method for linear control of a spread spectrum transition
6557164, Jan 31 1997 Oracle America, Inc System, method and article of manufacture for creating an object oriented component having multiple bidirectional ports for use in association with a java application or applet
6560306, Jun 19 1997 HANGER SOLUTIONS, LLC Phase locked loop (PLL) with linear parallel sampling phase detector
6560699, Oct 20 1999 Cisco Technology, Inc Constraint-based language configuration files for updating and verifying system constraints
6563391, Oct 26 2000 MONTEREY RESEARCH, LLC Precision crystal oscillator circuit used in microcontroller
6564179, Jul 26 1999 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD DSP emulating a microcontroller
6567426, Mar 05 1998 Microsoft Technology Licensing, LLC Preemptive timer multiplexed shared memory access
6575373, Sep 17 1999 Kabushiki Kaisha Toshiba Security card and a computer system provided with an interface for reading a security card
6578174, Jun 08 2001 Cadence Design Systems, INC Method and system for chip design using remotely located resources
6581191, Nov 30 1999 Synopsys, Inc Hardware debugging in a hardware description language
6587995, Apr 19 2000 NXP B V Enhanced programmable core model with integrated graphical debugging functionality
6588004, Oct 28 1996 Altera Corporation Graphic editor for block diagram level design of circuits
6592626, Mar 05 1999 International Business Machines Corporation Method and system in an electronic spreadsheet for processing different cell protection modes
6594799, Feb 28 2000 CADENCE DESIGN SYSTEMS IMC Method and system for facilitating electronic circuit and chip design using remotely located resources
6598178, Jun 01 1999 AVAGO TECHNOLOGIES GENERAL IP SINGAPORE PTE LTD Peripheral breakpoint signaler
6601236, Mar 29 1999 GOOGLE LLC Cross platform program installation on drives using drive object
6603330, Oct 26 2000 MALLARD IP LLC Configuring digital functions in a digital configurable macro architecture
6604179, Mar 23 2000 Intel Corporation Reading a FIFO in dual clock domains
6606731, Aug 05 1999 Boeing Company, the Intelligent wiring diagram system
6608472, Oct 26 2000 MONTEREY RESEARCH, LLC Band-gap reference circuit for providing an accurate reference voltage compensated for process state, process variations and temperature
6611220, Oct 26 2000 MONTEREY RESEARCH, LLC Architecture for decimation algorithm
6611276, Aug 31 1999 Intel Corporation Graphical user interface that displays operation of processor threads over time
6611856, Dec 23 1999 Intel Corporation Processing multiply-accumulate operations in a single cycle
6611952, Dec 21 2000 Siemens Industry Software Inc Interactive memory allocation in a behavioral synthesis tool
6613098, Jun 15 1999 Microsoft Technology Licensing, LLC Storage of application specific data in HTML
6614320, Oct 26 2000 MONTEREY RESEARCH, LLC System and method of providing a programmable clock architecture for an advanced microcontroller
6614458, Jan 31 2000 AUTODESK, Inc Method and apparatus for displaying and manipulating multiple geometric constraints of a mechanical design
6618854, Feb 18 1997 Advanced Micro Devices, Inc. Remotely accessible integrated debug environment
6631508, Jun 07 2000 XILINX, Inc. Method and apparatus for developing and placing a circuit design
6634008, Jun 20 1999 Fujitsu Microelectronics Limited Methodology server based integrated circuit design
6637015, Nov 19 2001 MONTEREY RESEARCH, LLC System and method for decoupling and iterating resources associated with a module
6658633, Oct 03 2001 GLOBALFOUNDRIES U S INC Automated system-on-chip integrated circuit design verification system
6664978, Nov 17 1997 Fujitsu Limited Client-server computer network management architecture
6667642, Sep 18 2002 Nvidia Corporation Method and circuit for reducing the power up time of a phase lock loop
6678877, Aug 15 2001 National Semiconductor Corporation Creating a PC board (PCB) layout for a circuit in which the components of the circuit are placed in the determined PCB landing areas
6681280, Oct 29 1998 Fujitsu Limited Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt
6691301, Jan 29 2001 The MathWorks, Inc System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
6697754, Aug 09 2000 Agilent Technologies, Inc. Generation and execution of instrument control macro files for controlling a signal measurement system
6701487, Nov 19 2001 MUFG UNION BANK, N A User defined names for registers in memory banks derived from configurations
6701508, Nov 19 2001 LAZER IP LLC Method and system for using a graphics user interface for programming an electronic device
6711731, Aug 23 2000 BROOKS AUTOMATION HOLDING, LLC; Brooks Automation US, LLC Web based tool control in a semiconductor fabrication facility
6715132, Nov 19 2001 MUFG UNION BANK, N A Datasheet browsing and creation with data-driven datasheet tabs within a microcontroller design tool
6718520, Jan 27 1997 Unisys Corporation Method and apparatus for selectively providing hierarchy to a circuit design
6718533, Feb 26 1999 Real-Time Innovations, Inc. Method for building a real-time control system with mode and logical rate
6748569, Sep 20 1999 DELL USA, L P XML server pages language
6750889, Sep 21 2000 HEWLETT-PACKARD DEVELOPMENT COMPANY L P User interface apparatus for displaying a range indicator for setting a plurality of target objects
6757882, Jun 16 2001 Siemens Industry Software Inc Self-describing IP package for enhanced platform based SOC design
6765407, Oct 26 2000 MONTEREY RESEARCH, LLC Digital configurable macro architecture
6769622, Mar 14 2003 STMicroelectronics, Inc. System and method for simulating universal serial bus smart card device connected to USB host
6771552, Feb 21 2002 PS4 LUXCO S A R L Semiconductor memory device and control method
6784821, Feb 11 2003 Samsung Electronics Co., Ltd. Synchronizing circuits and methods for parallel path analog-to-digital converters
6785881, Nov 19 2001 MUFG UNION BANK, N A Data driven method and system for monitoring hardware resource usage for programming an electronic device
6792584, Oct 30 2001 Bell Semiconductor, LLC System and method for designing an integrated circuit
6798299, Oct 26 2000 MONTEREY RESEARCH, LLC Crystal-less oscillator circuit with trimmable analog current control for increased stability
6810442, Aug 31 1998 Cadence Design Systems, INC Memory mapping system and method
6816544, Sep 02 1994 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P High performance communications interface
6823282, Oct 26 2000 MUFG UNION BANK, N A Test architecture for microcontroller providing for a serial communication interface
6823497, Nov 30 1999 SYNOPSYS, INC , A DELAWARE CORPORATION Method and user interface for debugging an electronic system
6825689, Oct 26 2000 MONTEREY RESEARCH, LLC Configurable input/output interface for a microcontroller
6829727, Jan 12 2001 METALINK CORP In-circuit emulation of single chip microcontrollers
6854067, Oct 30 2000 HERITAGE IP LLC Method and system for interaction between a processor and a power on reset circuit to dynamically control power states in a microcontroller
6859884, Oct 26 2000 MUFG UNION BANK, N A Method and circuit for allowing a microprocessor to change its operating frequency on-the-fly
6865429, Feb 26 1999 Real-Time Innovations, Inc. Real-time control system development tool
6865504, Aug 05 2002 Texas Instruments Incorporated Apparatus and method for a reconfigurable pod interface for use with an emulator unit
6868500, Oct 26 2000 MONTEREY RESEARCH, LLC Power on reset circuit for a microcontroller
6871331, May 04 2000 XILINX, Inc. Combined waveform and data entry apparatus and method for facilitating fast behavioral verification of digital hardware designs
6892310, Oct 26 2000 Nvidia Corporation Method for efficient supply of power to a microcontroller
6892322, Oct 26 2000 MONTEREY RESEARCH, LLC Method for applying instructions to microprocessor in test mode
6898703, Nov 19 2001 MUFG UNION BANK, N A System and method for creating a boot file utilizing a boot template
6901563, Nov 19 2001 MONTEREY RESEARCH, LLC Storing of global parameter defaults and using them over two or more design projects
6910126, Oct 26 2000 MUFG UNION BANK, N A Programming methodology and architecture for a programmable analog system
6922821, Nov 15 2001 MONTEREY RESEARCH, LLC System and a method for checking lock step consistency between an in circuit emulation and a microcontroller while debugging process is in progress
6950954, Oct 26 2000 MUFG UNION BANK, N A Method and circuit for synchronizing a write operation between an on-chip microprocessor and an on-chip programmable analog device operating at different frequencies
6950990, Dec 11 2000 ServiceNow, Inc Navigation tool for accessing workspaces and modules in a graphical user interface
6952778, Oct 26 2000 LONGITUDE FLASH MEMORY SOLUTIONS LIMITED Protecting access to microcontroller memory blocks
6957180, Nov 15 2001 MONTEREY RESEARCH, LLC System and a method for communication between an ICE and a production microcontroller while in a halt state
6957242, Oct 26 2000 MUFG UNION BANK, N A Noninterfering multiply-MAC (multiply accumulate) circuit
6967511, Oct 26 2000 MUFG UNION BANK, N A Method for synchronizing and resetting clock signals supplied to multiple programmable analog blocks
6967960, Mar 31 2000 Intel Corporation Method and apparatus for emulating a local data port
6968346, Apr 23 2001 International Business Machines Corporation XML-based system and method for collaborative web-based design and verification of system-on-a-chip
6970844, Aug 27 1999 FINTEGRAPH, LLC Flow designer for establishing and maintaining assignment and strategy process maps
6981090, Oct 26 2000 MONTEREY RESEARCH, LLC Multiple use of microcontroller pad
6996799, Aug 08 2000 ROADMAP GEO LP III, AS ADMINISTRATIVE AGENT Automatic code generation for integrated circuit design
7005933, Oct 26 2000 MONTEREY RESEARCH, LLC Dual mode relaxation oscillator generating a clock signal operating at a frequency substantially same in both first and second power modes
7017145, May 09 2001 Oracle America, Inc Method, system, and program for generating a user interface
7023257, Oct 26 2000 MUFG UNION BANK, N A Architecture for synchronizing and resetting clock signals supplied to multiple programmable analog blocks
7024636, Nov 20 2002 Bell Semiconductor, LLC Chip management system
7024654, Jun 11 2002 F POSZAT HU, L L C System and method for configuring analog elements in a configurable hardware device
7055035, Jul 31 2001 HEWLETT-PACKARD DEVELOPMENT COMPANY L P Method for generating a read only memory image
7073158, May 17 2002 PIXEL VELOCITY INCORPORATED Automated system for designing and developing field programmable gate arrays
7076420, Oct 26 2000 MORGAN STANLEY SENIOR FUNDING, INC Emulator chip/board architecture and interface
7086014, Nov 19 2001 MUFG UNION BANK, N A Automatic generation of application program interfaces, source code, interrupts, and datasheets for microcontroller programming
7089175, Oct 26 2000 MORGAN STANLEY SENIOR FUNDING, INC Combined in-circuit emulator and programmer
7092980, Oct 26 2000 MUFG UNION BANK, N A Programming architecture for a programmable analog system
7099818, Mar 29 2002 MONTEREY RESEARCH, LLC System and method for automatically matching components in a debugging system
7103108, May 17 2001 MORGAN STANLEY SENIOR FUNDING, INC Digital signal processor transceiver
7117485, Oct 23 2001 GEMALTO SA; GEMALTO S A Using a high level programming language with a microcontroller
7124376, May 02 2000 NETVINCI, INC Design tool for systems-on-a-chip
7127630, Oct 26 2000 MONTEREY RESEARCH, LLC Method for entering circuit test mode
7149316, Oct 26 2000 MUFG UNION BANK, N A Microcontroller having an on-chip high gain amplifier
7150002, Mar 29 2002 MONTEREY RESEARCH, LLC Graphical user interface with logic unifying functions
7162410, Oct 26 2000 MONTEREY RESEARCH, LLC In-circuit emulator with gatekeeper for watchdog timer
7171455, Aug 22 2000 IBM Corporation Object oriented based, business class methodology for generating quasi-static web pages at periodic intervals
7180342, Oct 26 2000 MONTEREY RESEARCH, LLC Frequency doubler circuit with trimmable current control
7185162, Oct 26 2000 MUFG UNION BANK, N A Method and apparatus for programming a flash memory
7185321, Mar 29 2002 MONTEREY RESEARCH, LLC Method and system for debugging through supervisory operating codes and self modifying codes
7221187, Oct 26 2000 MONTEREY RESEARCH, LLC Programmable microcontroller architecture (mixed analog/digital)
7236921, Oct 26 2000 MORGAN STANLEY SENIOR FUNDING, INC In-circuit emulator with gatekeeper based halt control
7266768, Jan 09 2001 Sharp Kabushiki Kaisha Systems and methods for manipulating electronic information using a three-dimensional iconic representation
7283151, May 27 2002 Ricoh Company, LTD Pixel clock generation device causing state transition of pixel clock according to detected state transition and phase data indicating phase shift amount
7376904, Jun 13 2000 National Instruments Corporation Automatic generation of programs with GUI controls for interactively setting or viewing values
7386740, Oct 26 2000 MONTEREY RESEARCH, LLC Method for efficient supply of power to a microcontroller
7406674, Oct 24 2001 MUFG UNION BANK, N A Method and apparatus for generating microcontroller configuration information
20010002129,
20010044927,
20010047509,
20020010716,
20020016706,
20020023110,
20020042696,
20020052729,
20020068989,
20020073119,
20020073380,
20020085020,
20020100003,
20020109722,
20020116168,
20020121679,
20020122060,
20020129334,
20020138516,
20020152234,
20020152449,
20020156885,
20020156998,
20020161802,
20020166100,
20020166103,
20020174134,
20030014447,
20030025734,
20030028772,
20030041235,
20030056071,
20030058469,
20030061572,
20030135842,
20030149961,
20030229482,
20030229877,
20040054821,
20040060032,
20040098689,
20040205553,
20040205617,
20040205695,
20040221238,
20050108663,
20050240917,
20060117274,
WO9532478,
WO9617305,
WO9834376,
WO9909712,
////////////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Aug 10 2005ANDERSON, DOUGCypress Semiconductor CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309800304 pdf
Aug 10 2005OGAMI, KENNETH Y Cypress Semiconductor CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309800304 pdf
Aug 10 2005PEARSON, JONCypress Semiconductor CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309800304 pdf
Oct 24 2005MCDONALD, JOHNCypress Semiconductor CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0309800304 pdf
May 27 2010Cypress Semiconductor Corporation(assignment on the face of the patent)
Mar 12 2015Spansion LLCMORGAN STANLEY SENIOR FUNDING, INC SECURITY INTEREST SEE DOCUMENT FOR DETAILS 0352400429 pdf
Mar 12 2015Cypress Semiconductor CorporationMORGAN STANLEY SENIOR FUNDING, INC SECURITY INTEREST SEE DOCUMENT FOR DETAILS 0352400429 pdf
Mar 12 2015Cypress Semiconductor CorporationMORGAN STANLEY SENIOR FUNDING, INC CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429 ASSIGNOR S HEREBY CONFIRMS THE SECURITY INTERST 0580020470 pdf
Mar 12 2015Spansion LLCMORGAN STANLEY SENIOR FUNDING, INC CORRECTIVE ASSIGNMENT TO CORRECT THE 8647899 PREVIOUSLY RECORDED ON REEL 035240 FRAME 0429 ASSIGNOR S HEREBY CONFIRMS THE SECURITY INTERST 0580020470 pdf
Aug 11 2016MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENTCypress Semiconductor CorporationPARTIAL RELEASE OF SECURITY INTEREST IN PATENTS0397080001 pdf
Aug 11 2016MORGAN STANLEY SENIOR FUNDING, INC , AS COLLATERAL AGENTSpansion LLCPARTIAL RELEASE OF SECURITY INTEREST IN PATENTS0397080001 pdf
Aug 11 2016Cypress Semiconductor CorporationMONTEREY RESEARCH, LLCASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0409110238 pdf
Date Maintenance Fee Events
Mar 07 2017M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Mar 22 2017ASPN: Payor Number Assigned.
May 10 2021REM: Maintenance Fee Reminder Mailed.
Oct 25 2021EXP: Patent Expired for Failure to Pay Maintenance Fees.


Date Maintenance Schedule
Sep 17 20164 years fee payment window open
Mar 17 20176 months grace period start (w surcharge)
Sep 17 2017patent expiry (for year 4)
Sep 17 20192 years to revive unintentionally abandoned end. (for year 4)
Sep 17 20208 years fee payment window open
Mar 17 20216 months grace period start (w surcharge)
Sep 17 2021patent expiry (for year 8)
Sep 17 20232 years to revive unintentionally abandoned end. (for year 8)
Sep 17 202412 years fee payment window open
Mar 17 20256 months grace period start (w surcharge)
Sep 17 2025patent expiry (for year 12)
Sep 17 20272 years to revive unintentionally abandoned end. (for year 12)