US 20040215441 A1 Abstract A method includes in a system determining a constraint for constraining operation of a portion of a block diagram model, determining if the portion of the block diagram model violates the constraint, and providing a user information based on the violating of the first constraint.
Claims(110) 1. A method comprising:
in a system determining a first constraint for constraining operation of a first portion of a block diagram model; determining if the first portion of the block diagram model violates the first constraint; and providing a user information based on the violating of the first constraint. 2. The method of determining if a second portion of the block diagram model can operate with improved performance; and
providing the user a modification based on the second portion of the block diagram executing with improved performance.
3. The method of 4. The method of 5. The method of 6. The method of 7. The method of 8. The method of 9. The method of 10. The method of 11. The method of 12. The method of 13. The method of 14. The method of 15. The method of 16. The method of 17. The method of 18. The method of 19. The method of 20. The method of 21. The method of 22. A method comprising:
in a system determining if a first portion of a block diagram model can operate with improved performance; and providing a user a first modification for operating the first portion of the block diagram model with improved performance. 23. The method of determining a first constraint for constraining operation of a second portion of the block diagram model;
determining if the second portion of the block diagram model violates the first constraint; and
providing the user information based on the violating of the first constraint.
24. The method of 25. The method of 26. The method of 27. The method of 28. The method of 29. The method of 30. The method of 31. The method of 32. The method of 33. The method of 34. The method of 35. The method of 36. The method of 37. A constraint applying process comprising:
a first determining process to determine a first constraint for constraining operation of a first portion of a block diagram model; a second determining process to determine if the first portion of the block diagram model violates the first constraint; and a first providing process to provide a user information based on the violating of the first constraint. 38. The constraint applying process of a third determining process to determine if a second portion of the block diagram model can operate with improved performance; and
a second providing process to provide the user a modification based on the second portion of the block diagram operating with improved performance.
39. The constraint applying process of a storing process to store the first constraint.
40. The constraint applying process of a storing process to store the first constraint with the first portion of the block diagram model.
41. The constraint applying process of 42. The constraint applying process of a removing process to remove the first constraint from constraining operation of the first portion of the block diagram model.
43. The constraint applying process of 44. The constraint applying process of 45. The constraint applying process of 46. The constraint applying process of 47. The constraint applying process of 48. The constraint applying process of 49. The constraint applying process of 50. The constraint applying process of 51. The constraint applying process of 52. The constraint applying process of 53. The constraint applying process of 54. The constraint applying process of 55. The constraint applying process of 56. The constraint applying process of 57. The constraint applying process of 58. An optimizing process, for a block diagram comprising:
a first determining process to determine if a portion of a block diagram model can operate with improved performance; and a first providing process to provide a user a first modification for operating the first portion of the block diagram model with improved performance. 59. The optimizing process of a second determining process to determine a first constraint for constraining operation of a second portion of the block diagram model;
a third determining process to determine if the second portion of the block diagram model violates the first constraint; and
a second providing process to provide the user information based on the violating of the first constraint.
60. The optimizing process of 61. The optimizing process of 62. The optimizing process of 63. The optimizing process of 64. The optimizing process of 65. The optimizing process of 66. The optimizing process of 67. The optimizing process of 68. The optimizing process of 69. The optimizing process of 70. The optimizing process of 71. The optimizing process of a ranking process to rank the first modification and the second modification.
72. The optimizing process of a providing process to provide the user the second modification for operating the first portion of the block diagram model with improved performance.
73. A computer program product residing on a computer readable medium comprises instructions for applying a constraint, the instructions cause a computer to:
determine a first constraint for constraining operation of a first portion of a block diagram model; determine if the first portion of the block diagram model violates the first constraint; and provide a user information based on the violating of the first constraint. 74. The computer program product of determine if a second portion of the block diagram model can execute with improved performance; and
provide the user a modification based on the second portion of the block diagram operating with improved performance.
75. The computer program product of store the first constraint.
76. The computer program product of store the first constraint with the first portion of the block diagram model.
77. The computer program product of 78. The computer program product of remove the first constraint from constraining operation of the first portion of the block diagram model.
79. The computer program product of 80. The computer program product of 81. The computer program product of 82. The computer program product of 83. The computer program product of 84. The computer program product of 85. The computer program product of 86. The computer program product of 87. The computer program product of 88. The computer program product of 89. The computer program product of 90. The computer program product of 91. The computer program product of store the first constraint and the second constraint.
92. The computer program product of remove the first constraint from constraining operation of the first portion of the block diagram model.
93. The computer program product of constrain the first portion of the block diagram model to meet the first constraint if the first portion of the block diagram model violates the first constraint.
94. A computer program product residing on a computer readable medium comprises instructions for optimizing performance of a block diagram model, the instructions cause a computer to:
determine if a first portion of a block diagram model can operate with improved performance; and provide a user a first modification for operating the first portion of the block diagram model with improved performance. 95. The computer program product of determine a first constraint for constraining operation of a second portion of the block diagram model;
determine if the second portion of the block diagram model violates the first constraint; and
provide the user information based on the violating of the first constraint.
96. The computer program product of rank the first modification.
97. The computer program product of store the first modification.
98. The computer program product of 99. The computer program product of 100. The computer program product of 101. The computer program product of 102. The computer program product of 103. The computer program product of 104. The computer program product of 105. The computer program product of 106. The computer program product of 107. The computer program product of rank the first modification and the second modification.
108. The computer program product of provide the user the second modification for operating the first portion of the block diagram model with improved performance.
109. A graphical user interface (GUI) comprising:
a workspace; a set of graphical semantics for determining a first constraint for constraining operation of a first portion of a block diagram model; a set of graphical semantics for determining if the first portion of the block diagram model violates the first constraint; and a set of graphical semantics for providing a user information based on the violating of the first constraint. 110. The graphical user interface of a set of graphical semantics for determining if a second portion of the block diagram model can operate with improved performance; and
a set of graphical semantics for providing the user a modification based on the second portion of the block diagram operating with improved performance.
Description [0001] The present invention relates to applying constraints to block diagram models. [0002] Block diagram models are used in software to reduce complexity in representing, designing, and simulating signal-processing systems. In general, by using block diagrams models, signal processing systems can be represented as a cascade of components that perform a series of processing operations and transformations on input signals for producing output signals to simulate the operation of the signal processing system implemented in hardware, software, or other manufactured state. [0003] Typically, function blocks are included in block diagram models to represent individual functions of the signal processing system. Additionally, the block diagram models include lines for representing interconnections between the function blocks and representing data flow through the block diagram model. Typically the number of interconnections included in a model grows proportionally with the complexity of the model. For example, a block diagram model representing a complex communication system may include thousands of interconnected function blocks that each includes one or more settings that control the function performed by the function block. [0004] In an aspect, the invention features a method including in a system determining a first constraint for constraining operation of a first portion of a block diagram model, determining if the first portion of the block diagram model violates the first constraint, and providing a user information based on the violating of the first constraint. [0005] Embodiments can include one or more of the following. Determining if a second portion of the block diagram model can operate with improved performance, and providing the user a modification based on the second portion of the block diagram executing with improved performance. The first constraint can be stored. The first constraint can be stored with the first portion of the block diagram model. Determining the first constraint can include receiving the first constraint from a storage device. The first constraint can be removed from constraining operation of the first portion of the block diagram model. Determining if the first portion of the block diagram model violates the first constraint can include the user selecting the first portion of the block diagram model. The method of claim [0006] In another aspect, the invention features a method including in a system determining if a first portion of a block diagram model can operate with improved performance, and providing a user a first modification for operating the first portion of the block diagram model with improved performance. [0007] Embodiments can include one or more of the following. A first constraint for constraining operation of a second portion of the block diagram model can be determined, determining if the second portion of the block diagram model violates the first constraint, and providing the user information based on the violating of the first constraint. The first modification can be ranked. The first modification can be stored. Determining the first modification can include receiving the first modification from a storage device. Determining the first modification can include receiving a performance condition. The performance condition can be based on improved memory use. The performance condition can be based on improved execution speed. Determining if the first portion of the block diagram model can operate with improved performance can include a user selecting the first portion of the block diagram model. The first portion of the block diagram model can include a function block. Providing the first modification for operating the first portion of the block diagram model with improved performance can include receiving the first modification and a second modification. Providing the first modification can include determining if the first modification and the second modification are redundant. Providing the first modification can include determining if the first modification and the second modification conflict. The first modification and the second modification can be ranked. The user can be provided the second modification for operating the first portion of the block diagram model with improved performance. [0008] In another aspect, the invention features a constraint applying process that includes a first determining process to determine a first constraint for constraining operation of a first portion of a block diagram model, a second determining process to determine if the first portion of the block diagram model violates the first constraint, and a first providing process to provide a user information based on the violating of the first constraint. [0009] Embodiments can include one or more of the following. The constraint applying process can include a third determining process to determine if a second portion of the block diagram model can operate with improved performance, and a second providing process to provide the user a modification based on the second portion of the block diagram operating with improved performance. The constraint applying process can include a storing process to store the first constraint. The constraint applying process can include a storing process to store the first constraint with the first portion of the block diagram model. Determining the first constraint can include receiving the first constraint from a storage device. The constraint applying process can include a removing process to remove the first constraint from constraining operation of the first portion of the block diagram model. Determining if the first portion of the block diagram model violates the first constraint can include the user selecting the first portion of the block diagram model. The first portion of the block diagram model can include a function block. The first portion of the block diagram model can include an entire block diagram model. The first portion of the block diagram model can include a type of function block. The first constraint can be based on data used by the first portion of the block diagram model. The first constraint can be based on an attribute of a fixed-point number. The first constraint can be based on a business entity. The second portion can include the first portion of the block diagram model. Determining the first constraint for constraining operation of the first portion of the block diagram model can include receiving the first constraint and a second constraint. Determining the first constraint for constraining operation of the first portion of the block diagram model can include determining if the first constraint and the second constraint are redundant. Determining the first constraint for constraining operation of the first portion of the block diagram model can include determining if the first constraint and the second constraint conflict. A first file can include the first constraint and identify a second file that can include the second constraint. The constraint applying process can include a storing process to store the first constraint and the second constraint. The constraint applying process can include a removing process to remove the first constraint from constraining operation of the first portion of the block diagram model. The constraint applying process can a constraining process to constrain the first portion of the block diagram model to meet the first constraint if the first portion of the block diagram model violates the first constraint. [0010] In another aspect, the invention features an optimizing process for a block diagram model that includes a first determining process to determine if a portion of a block diagram model can operate with improved performance, and a first providing process to provide a user a first modification for operating the first portion of the block diagram model with improved performance. [0011] Embodiments can include one or more of the following. The optimizing process can include a second determining process to determine a first constraint for constraining operation of a second portion of the block diagram model, a third determining process to determine if the second portion of the block diagram model violates the first constraint, and a second providing process to provide the user information based on the violating of the first constraint. The optimizing process can include a ranking process to rank the first modification. The optimizing process can include a storing process to store the first modification. Determining the first modification can include receiving the first modification from a storage device. Determining the first modification can include receiving a performance condition. The performance condition can be based on improved memory use. The performance can be based on improved execution speed. Determining if the first portion of the block diagram model can operate with improved performance can include a user selecting the first portion of the block diagram model. The first portion of the block diagram model can include a function block. Providing the first modification for operating the first portion of the block diagram model with improved performance can include receiving the first modification and a second modification. Providing the first modification can include determining if the first modification and the second modification are redundant. Providing the first modification can include determining if the first modification and the second modification conflict. The optimizing process can include a ranking process to rank the first modification and the second modification. The optimizing process can include a providing process to provide the user the second modification for operating the first portion of the block diagram model with improved performance. [0012] In another aspect, the invention features a computer program product residing on a computer readable medium that includes instructions for applying a constraint and cause a computer to determine a first constraint for constraining operation of a first portion of a block diagram model, determine if the first portion of the block diagram model violates the first constraint, and provide a user information based on the violating of the first constraint. [0013] The computer program product can include instructions to cause a computer to determine if a second portion of the block diagram model can execute with improved performance, and provide the user a modification based on the second portion of the block diagram operating with improved performance. The computer program product can include instructions to cause a computer to store the first constraint. The computer program product can include instructions to cause a computer to store the first constraint with the first portion of the block diagram model. To determine the first constraint can include receiving the first constraint from a storage device. The computer program product can include instructions to cause a computer to remove the first constraint from constraining operation of the first portion of the block diagram model. To determine if the first portion of the block diagram model violates the first constraint can include the user selecting the first portion of the block diagram model. The first portion of the block diagram model can include a function block. The first portion of the block diagram model can include an entire block diagram model. The first portion of the block model can include a type of function block. The first constraint can be based on data used by the first portion of the block diagram model. The first constraint can be based on an attribute of a fixed-point number. The first constraint can be based on a business entity. The second portion can include the first portion of the block diagram model. To determine the first constraint for constraining operation of the first portion of the block diagram model can include receiving the first constraint and a second constraint. To determine the first constraint for constraining operation of the first portion of the block diagram model can include determining if the first constraint and the second constraint are redundant. To determine the first constraint for constraining operation of the first portion of the block diagram model can include determining if the first constraint and the second constraint conflict. A first file can include the first constraint and identify a second file that can include the second constraint. The computer program product can include instructions to cause a computer to store the first constraint and the second constraint. The computer program product can include instructions to cause a computer to remove the first constraint from constraining operation of the first portion of the block diagram model. The computer program product can include instructions to cause a computer to constrain the first portion of the block diagram model to meet the first constraint if the first portion of the block diagram model violates the first constraint. [0014] In another aspect, the invention features a computer program product residing on a computer readable medium that includes instructions for optimizing performance of a block diagram model and cause a computer to determine if a first portion of a block diagram model can operate with improved performance, and provide a user a first modification for operating the first portion of the block diagram model with improved performance. [0015] Embodiments can include one or more of the following. The computer program product can include instructions to cause a computer to determine a first constraint for constraining operation of a second portion of the block diagram model, determine if the second portion of the block diagram model violates the first constraint, and provide the user information based on the violating of the first constraint. The computer program product can include instructions to cause a computer to rank the first modification. The computer program product can include instructions to cause a computer to store the first modification. To determine the first modification can include receiving the first modification from a storage device. To determine the first modification can include receiving a performance condition. The performance condition can be based on improved memory use. The performance condition can be based on improved execution speed. To determine if the first portion of the block diagram model can operate with improved performance can include a user selecting the first portion of the block diagram model. The first portion of the block diagram model can include a function block. To provide the first modification for operating the first portion of the block diagram model with improved performance can include receiving the first modification and a second modification. To provide the first modification can include determining if the first modification and the second modification are redundant. To provide the first modification can include determining if the first modification and the second modification conflict. The computer program product can include instructions to cause a computer to rank the first modification and the second modification. The computer program product can include instructions to cause a computer to provide the user the second modification for operating the first portion of the block diagram model with improved performance. [0016] In another aspect, the invention features a graphical user interface (GUI) including a workspace, a set of graphical semantics for determining a first constraint for constraining operation of a first portion of a block diagram model, a set of graphical semantics for determining if the first portion of the block diagram model violates the first constraint, and a set of graphical semantics for providing a user information based on the violating of the first constraint. [0017] Embodiments can include one or more of the following. The graphical user interface can include a set of graphical semantics for determining if a second portion of the block diagram model can operate with improved performance, and a set of graphical semantics for providing the user a modification based on the second portion of the block diagram operating with improved performance. [0018] The invention can include one or more of the following advantages. By applying one or more constraints to a block diagram model, possible operation modes of the block diagram model are reduced. By reducing the operations, inefficient and non-desired operations are disabled without a user providing excessive time and effort to alter the settings of each individual function block included in the block diagram model. Further, by managing the application of the constraints, the user can appropriately plan at what times and stages in a development effort to apply different constraints. Additionally by optimizing block diagram models under development, modifications can be determined and made so that the models execute faster, use less memory during execution, and be stored in less memory space. Once constrained, the applied constraints, or block diagram model with the applied constraints, can be stored for later accessing be a user and use with other block diagram models under development. [0019] Other features, objects, and advantages of the invention will be apparent from the description and drawings, and from the claims. [0020]FIG. 1 is a system for constraining and optimizing performance of a block diagram. [0021]FIG. 2 [0022]FIG. 3 is a flow diagram of a constraining process. [0023]FIG. 4 is a flow diagram of a constraint removal process. [0024]FIG. 5 is a flow diagram of an optimizing process. [0025]FIG. 6 depicts a constraint managing process. [0026]FIG. 7 depicts an optimizing managing process. [0027] Referring to FIG. 1, an exemplary constraining and optimizing system [0028] In this example, the block diagram model [0029] By constraining one or more settings of each appropriate function block [0030] Additionally, performance of the block diagram model [0031] For constraining and optimizing the block diagram model [0032] The computer system [0033] As represented with “B”, once alerted, the user can select a respective constrained value for each of the one or more settings associated with the conflicting function blocks [0034] As shown with “C”, once modified, the constraint and optimization process [0035] In “E”, the block diagram model [0036] Referring to FIGS. 2 [0037] In this particular example, the user selection is shown with dashed line boxes [0038] Referring to FIG. 2 [0039] Referring to FIG. 2 [0040] Referring to FIG. 2 [0041] Referring to FIG. 2 [0042] Additionally, in this particular example the optimizing process included in the constraint and optimization process [0043] Referring to FIG. 2 [0044] Referring to FIG. 3 an exemplary embodiment of a constraining process [0045] After receiving ( [0046] Along with applying constraint to block diagram models, the constraint and optimization process [0047] Referring to FIG. 4, an exemplary embodiment of a constraint removal process [0048] Referring again to FIG. 1, besides constraining block diagram models, the constraint and optimization process [0049] Referring to FIG. 5, an exemplary embodiment of an optimizing process [0050] The optimizing process [0051] After ranking ( [0052] By storing the potential modifications for improving performance of a block diagram model, the potential modifications can be used at a later time to decrease development time for other block diagram models. Additionally, by managing the stored potential modifications, the modifications can be sorted and grouped for efficient application during model development. For example, some potential modifications can be grouped for use in optimizing block diagram models that are executed on integrated circuits (IC), while other potential modifications can be grouped for use with block diagram models that simulate execution on an IC. Additionally, by developing libraries of potential modifications, business entities can be provided libraries for use with a particular product. For example, a manufacturer can provide a library of potential modifications along with its manufactured digital signal processing (DSP) board so that the user can develop block diagram model that are optimized for executing on the DSP board. [0053] Referring to FIG. 6, an optimization managing process [0054] The optimization managing process [0055] After the two library files [0056] Once produced, the consolidated library file [0057] After determining if the consolidated potential modifications are valid, the validated potential modifications are passed to an application process [0058] Once selected, the application process [0059] In some arrangements the unmet modifications are ranked based other ranking metrics such as the number of alterations needed to meet the unmet modifications, or the degree difficulty in implementing alterations to meet the unmet modifications, or other similar ranking metric. For example, ranking by number of needed alterations, if a first modification needs two alterations implemented in the block diagram model [0060] After determining if each validated potential modification is met by the block diagram model [0061] In some arrangements, after displaying the list [0062] Additionally, in some arrangements, the optimization managing process [0063] Referring to FIG. 7, a constraint managing process [0064] The constraint managing process [0065] Once produced, the information in the consolidated constraint file [0066] After determining if the constraints are valid, the validated constraints are passed to an application process [0067] Once selected, the application process [0068] Additionally, in some arrangements, the constraint managing process [0069] The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The invention can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. [0070] Method steps of the invention can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). [0071] Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry. [0072] The invention can be implemented in a computing system that includes a back-end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front-end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet. [0073] The computing system can include clients and servers. A client and server are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. [0074] In conjunction with FIG. 1, the block diagram model was constrained by the constraint and optimization process [0075] Constraints can also be based on the particular user of the block diagram model. For example a manufacturer, or other business entity is only capable of supporting a particular set of function blocks or particular operation mode of particular function blocks. Based on these limitations, or desired operation modes, block diagram models can be constrained to operate under business entity-specific constraints. Further, constraints may be based on particular equipment or products associated with the block diagram model. For example, a block diagram model developed for execution on a particular computer board can be constrained to use function blocks supportable by the board. Also, attributes of function blocks can be constrained for optimizing code associated with the function block. For example, a function block that performs an autocorrelation function may be constrained to accept input data in grouped in multiple of eights for optimal execution of the autocorrelation function. Additionally, graphics (e.g., text fonts, colors, language, etc.) may be constrained in block diagram models of function blocks. [0076] In conjunction with FIG. 1, an applied constraint along with the settings of the function blocks were stored on the storage device [0077] Also in conjunction with FIG. 1, in some arrangements the constraint and optimization process [0078] In conjunction with FIG. 1, modifications were provided to a user to constrain and optimize a block diagram model. However, in other arrangements the constraint and optimization process [0079] Other embodiments are within the scope of the following claims. Referenced by
Classifications
Legal Events
Rotate |