The invention relates generally to the field of circuit design applications, more particularly to a system and method for selecting and storing global parameters.
It is often useful to utilize circuit design application software to layout and plan new integrated circuits. This circuit design application software is typically configured to aide the user in keeping track of resource requirements of particular modules. Furthermore, circuit design application software also allows users to assign circuit resources to particular modules.
However, circuit design software applications typically have minimal graphical support. They usually are not capable of supplying the user with a graphical display representing a current status of the layout of the resources on a chip. Chip designers are typically required to manually and textually track their layout decisions with minimal graphical support.
Furthermore, selection of global parameters such as clock speed, phase locked loop mode, and the like were set by manually writing application programming interfaces to provide these settings and parameters. The process of writing application programming interfaces is often times error-prone and requires knowledge of many low level technical requirements and requires many manual steps. For example, users typically need to find register information on the data sheet for particular hardware elements in order to properly set the register. In addition, since the global parameters effect many elements within the hardware, the application programming interfaces can become very long and complex. Moreover, once written, the global parameter settings are applicable only to the project for which they were developed. In order to establish the global parameters for another project, they have to be manually reprogrammed.
It is useful to provide a circuit designer with a circuit design application software that allows the viewing, selection, and storage of global parameter values through a simplified user interface. For example, being able to graphically display the current global parameter values and possible global parameter values would be useful. Further, being able to graphically select a global parameter value from the possible global parameter values would also be beneficial. Further, being able to store a set of default global parameter settings which can be recalled and associated with different projects would be beneficial.
A system and method are described for graphically displaying global resources and their associated parameter values and applying them over multiple design projects. The system and method also provide a graphical interface which displays the possible parameter values of an associated global resource. This graphical interface utilizes a pop up menu for viewing the possible parameter values and the selection of the current parameter value. The system and method also provide tracking and updating of the hardware resources which utilize the parameter values of the global resources. Further, the system also allows the storage of these parameters values of the global resources. By storing these parameter values of the global resources, these parameter values can be set as default global settings. These default global settings can be readily recalled and associated with different projects without manual entry of the parameter values. Therefore, a set of predefined and saved global parameter defaults can be associated with multiple projects by merely causing a name associated with the default global parameters to be associated with the new project.
In one embodiment, the global parameters can be presented on a display screen in a tabular form with parameter name and the associated default or current setting shown next to the parameter name. The user can change the value of the parameter by selecting the displayed value with a cursor control device. A pop up window can then be used to select a new value. The values selected in the tabular display are then applied to the user's integrated circuit design. Alternate integer entry is provided for numeric inputs. Direct number entry or spinner control with min/max checking is allowed, e.g., 24V1=24 MHz/N and 24V2=24 V1/N. Storage of these values for global resources allows different projects to adopt the same default global settings. In effect, the default global parameter settings can be given a name and then associated with various projects without the user having to separately enter (or remember) each setting value. An on-screen selection can be used to recall the default global settings and then apply them to a particular project.
More specifically, in a design system for programming integrated circuits, an embodiment of the present invention is drawn to a method of processing global design parameters comprising: a) displaying, in tabular form, a list of global design parameters and respective global design parameter values associated therewith for a first design project; b) in response to a user selection of a selected global design parameter, displaying a window comprising a plurality of possible values for the selected global design parameter; c) in response to a user selection of a selected value of the possible values, assigning the selected global design parameter to the selected value; d) saving the selected global design parameter; and applying said global design parameters and parameter values to a second design project.
Embodiments include the above and further comprising: selecting the selected global design parameter; and selecting the selected value wherein the selectings are performed using a cursor control device.
Embodiments include the above and further comprising: updating a memory resident database comprising the global design parameters and associated values; and propagating the global design parameters and associated values across a user circuit design for an integrated circuit to be programmed.
Embodiments include the above and wherein the integrated circuit to be programmed is a programmable microcontroller circuit and wherein the window comprises a pop-up list.
Other aspects and advantages of the invention will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, and illustrated by way of example of the principles of the invention.
Specific reference is made in detail to the embodiments of the invention, examples of which are illustrated in the accompanying drawings. While the invention is described in conjunction with the embodiments, it will be understood that the embodiments are not intended to limit the scope of the invention. The various embodiments are intended to illustrate the invention in different applications. Further, specific details are set forth in the embodiments for exemplary purposes and are not intended to limit the scope of the invention. In other instances, well-known methods, procedures, and components have not been described in detail as not to unnecessarily obscure aspects of the invention.
With reference to
The system 100 includes a processor 140, an input interface 130, volatile memory 150, an optional video processor 160, and non-volatile memory 170. The user input interface 130 (e.g., a cursor directing device and a keyboard), the volatile memory 150, the video processor 160, and the non-volatile memory 170 are connected to the processor 140. The input interface 130, the processor 140, the volatile memory 150, the video processor 160, and the non-volatile memory 170 are components that are readily found in personal computer systems.
The system 100 further includes a global resource database 110, a global resource menu 120, and a global resource parameter selector 180, which are also connected to the processor 140. The components 110, 120, and 180 are merely illustrated in
In one embodiment, the system 100 helps users more accurately and efficiently program a programmable integrated circuit device. The system 100 allows the global resources and their associated parameter values to be viewed and modified. Further, the system 100 also graphically allows the possible parameter values of the global resource to be displayed. Additionally, the actual parameter value can be selected from the group of possible parameter values for modifications thereof.
Additional tracking and programming to effectuate changes in the parameter values of the global resources are performed automatically by the system 100.
In one embodiment, the system 100 is configured to support programmable microcontroller design. In yet another embodiment, the system 100 supports general chip design.
The input interface 165 provides a means for the system 100 to receive user input which may include selection of various user module and resources and command sequences. The input interface 165 may be a USB port, a serial port, Ethernet port, or any other interface port configured to transmit electronic data to the system 100.
The video processor 160 provides graphical output from the system 100. The video processor 160 is configured to display the global resources, the parameter values of the global resources, and the menu displaying the possible parameter values for a global resource.
The global resource database 110 tracks data stored within the specific locations of the various hardware resources which are affected by individual global resources. In one embodiment, the resource global resource database 110 tracks the locations of specific registers relating to hardware resources for maintaining the correct global resource parameter value associated with a specific hardware resource.
The global resource menu 120 generates graphical information which displays a global resources window. This global resources window includes the display of the global resources and the associated parameter values. In one embodiment, the information can be presented in a tabular form. The global resource menu 120 also generates graphical information which displays a pop up menu that shows the possible parameter values associated with a specific global resource. In one embodiment, the global resource menu 120 is configured to provide the possible parameter values associated with the specific global resource and provide shading or highlighting of one of the possible parameter values prior to selection by a user.
Alternate integer entry is provided for numeric inputs. Direct number entry or spinner control with min/max checking is allowed, e.g., 24V1=24 MHz/N and 24V2=24 V1/N.
The global resource parameter selector 180 accepts the specific global resource parameter value in response to the graphical information from the global resource menu 120. Further, the global resource parameter selector 180 communicates with the global resource database 110 and records this specific global resource parameter value in the appropriate registers of the hardware resources. Further, the global resource parameter selector 180 also provides the ability to store multiple selected parameter values as the default global settings. The default global settings can then be recalled and associated with various other design projects without the user having to separately enter or select each parameter value.
In Block 220, a global resources window is graphically displayed. The global resources window includes a graphical display of the global resources and their associated parameter values. A global resource may include CPU clock speed, phase lock loop mode, sleep timer, analog power, clock divider ratio, and the like. In one embodiment, the function within the Block 220 can be performed by the global resource menu 120 (FIG. 1).
In Block 230, a global resource parameter value is highlighted or selected within the global resource window. This is performed, in one implementation, by user control. In one embodiment, the highlight or selection of the global resource parameter value is in response to the user input interface 130 (FIG. 1).
In Block 240, the possible parameter values of the global resource corresponding with the highlighted global resource parameter value are graphically displayed in a display screen, e.g., a pop up menu. The possible parameter values displayed on the pop up menu depend on the associated global resource. For example, the possible parameter values for the global resource “phase locked loop mode” is either “on” or “off”. Another example, the possible parameter values for the global resource “CPU clock speed” can be a variety of numerical values and is not limited to an on or off function. Alternate integer entry is provided for numeric inputs. Direct number entry or spinner control with min/max checking is allowed, e.g., 24V1=24 MHz/N and 24V2=24 V1/N.
Further, in the Block 250, a selection of a current parameter value for the associated global resource from one of the possible parameter values also occurs. After the current parameter value is selected, the current parameter value is propagated to all hardware resources with the help of the global resource database 110.
In Block 260, the information within the global resource database 110 is updated with the current parameter values of the associated corresponding global resources.
In Block 270, current global parameter values are stored as the default global settings. The default global settings can then be recalled and associated with various other design projects without the user having to separately enter or select each parameter value.
At step 277 of
At step 281 of
The list of global resources 330 is shown with multiple global resources such as CPU_CLOCK, 32K_SELECT, PLL_MODE, and the like. Additional or fewer global resources can be contained within the list of global resources 330. The list of corresponding parameter values 340 is matched with the list of global resources 330. Each value from the list of parameter values 340 is matched with a corresponding global resource. For example, the 24_MHZ value from the list of parameter values 340 corresponds with the CPU_CLOCK global resource from the list of global resources 330.
The scroll bars 320 are configured to allow scrolling through the list of global resources 330 and the list of parameter values 340.
In one embodiment,
Contained within the pop up menu 440 is a list of possible parameter values 450. In one embodiment, the list of possible parameter values 450 includes 24 MHZ, 12 MHZ, 6 MHZ, 3 MHZ, 1.5 MHZ, 750 KHZ, 185.5 KHZ, and 93.75 KHZ. The list of possible parameter values 450 represent the values which can be selected for the particular global resource. In another embodiment, the list of possible parameter values 450 is simply an “on” or “off” selection.
In one embodiment,
Although not shown in
Once the values for the global resources are set, the software tool can perform the required steps to realize them across the entire system. Therefore, the programmer need not be aware of the many low level technical requirements involved in realizing these global settings or parameters. In other words, the programmer need not create separate APIs for enforcing the global parameters over all the hardware. Instead, the programmer need only interact with the global resources menu and the remainder of the propagation is performed automatically.
Further, the multiple selected parameter values can be stored as the default global settings. The default global settings can then be recalled and associated with various other projects without the user having to separately enter or select each parameter value.
The foregoing descriptions of specific embodiments of the invention have been presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise embodiments disclosed, and naturally many modifications and variations are possible in light of the above teaching. The embodiments were chosen and described in order to explain the principles of the invention and its practical application, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto and their equivalents.
U.S. patent application Ser. No. 10/033,027, entitled “PROGRAMMABLE MICROCONTROLLER ARCHITECTURE,” filed on Oct. 22, 2001, and with inventor Warren Snyder is hereby incorporated by reference.
Number | Name | Date | Kind |
---|---|---|---|
5155836 | Jordan et al. | Oct 1992 | A |
5479643 | Bhaskar et al. | Dec 1995 | A |
6321369 | Heile et al. | Nov 2001 | B1 |
6587995 | Duboc et al. | Jul 2003 | B1 |
20020174134 | Goykhman | Nov 2002 | A1 |