US 20040054976 A1 Abstract The method for designing an integrated circuit device of the present invention includes the steps of: obtaining the number of operations by a functional simulation; determining a specification model based on the number of operations; determining an behavioral model corresponding to the specification model based on the number of operations per cycle required; determining a RTL model corresponding to the behavioral model based on the number of operations per cycle required; and obtaining design data corresponding to the RTL model for implementing the function.
Claims(42) 1. A method for designing an integrated circuit device, comprising representing a portion constituting the integrated circuit device by a three-dimensional shape, the type of the three-dimensional shape being determined depending on a design level. 2. The method for designing an integrated circuit device of the portion comprises a plurality of elements required for implementing the plurality of functions, and each of the plurality of elements is represented by a three-dimensional shape of which a volume corresponds to the number of operations required for implementing the function. 3. The method for designing an integrated circuit device of 4. The method for designing an integrated circuit device of 5. The method for designing an integrated circuit device of 6. The method for designing an integrated circuit device of the portion comprises the bus connecting the plurality of elements, and a connection relationship between the bus and each of the elements is represented by a three-dimensional shape so that a structure of the bus and a structure of the element match each other using the number of operations per unit time as a medium. 7. The method for designing an integrated circuit device of 8. The method for designing an integrated circuit device of 9. The method for designing an integrated circuit device of 10. The method for designing an integrated circuit device of 11. The method for designing an integrated circuit device of 12. A method for designing an integrated circuit device, comprising the steps of:
(a) obtaining the number of operations by simulating a function of the integrated circuit device; (b) determining specification level elements so that each of the elements has the number of operations equal to or more than the number of operations obtained in the step (a); (c) determining a bus connecting the elements; (d) determining behavioral level elements so that each of the elements has the number of operations per cycle and the number of cycles that give the number of operations equal to or more than the number of operations determined in the step (b); and (e) determining a behavioral level bus for connecting the behavioral level elements based on the number of operations per cycle determined in the step (d). 13. The method for designing an integrated circuit device of 14. The method for designing an integrated circuit device of if design is made giving higher priority to operation speed, an element among the behavioral level elements that has the number of operations per cycle as large as possible is determined as the behavioral level element used for design, or if design is made giving higher priority to a smaller circuit area or small r power consumption, an elem nt among the behavioral level elements that has the number of operations per cycle as small as possible is determined as the behavioral level element used for design. 15. The method for designing an integrated circuit device of (f) obtaining design data corresponding to the behavioral level element for implementing the function. 16. The method for designing an integrated circuit device of 17. The method for designing an integrated circuit device of 18. The method for designing an integrated circuit device of 19. The method for designing an integrated circuit device of (g) determining a RTL element so as to have th number of operations per unit time and the period that give the number of operations per cycle equal to or more than the number of operations per cycle of the behavioral level element determined in the step (d); (h) determining a RTL bus based on the number of operations per unit time and the period; and (i) determining design data corresponding to the RTL element for implementing the function. 20. The method for designing an integrated circuit device of if design is made giving higher priority to operation speed, an element among the RTL elements that has the number of operations per unit time as large as possible is selected, or if design is made giving higher priority to a smaller circuit area or smaller power consumption, an element among the RTL elements that has the number of operations per unit time as small as possible is selected. 21. The method for designing an integrated circuit device of 22. The method for designing an integrated circuit device of 23. The method for designing an integrated circuit device of 24. The method for designing an integrated circuit device of 25. The method for designing an integrated circuit device of in the step (d), if there are behavioral level elements having the same type of function that can be shared among the plurality of processes, the behavioral level elements are deformed so as to be executed at different times in the respectiv processes. 26. The method for designing an integrated circuit device of 27. The method for designing an integrated circuit device of 28. The method for designing an integrated circuit device of 29. The method for designing an integrated circuit device of 30. The method for d signing an integrated circuit device of in the step (d), the behavioral level elements in parallel operation are deformed so that the number of operations per cycle is smaller. 31. The method for designing an integrated circuit device of in the step (d), each of the behavioral level elements is represented by a pole having a cross-sectional area corresponding to the number of operations per cycle of the element and an axial length corresponding to the number of cycles of the element, and in the step (e), the behavioral level bus is represented by a pole having a cross-sectional area corresponding to the number of operations per cycle of the bus. 32. The method for designing an integrated circuit device of in the step (h), the RTL bus is represented by a rectangle pole having a rectangular cross section of which two sides correspond to the number of operations and the period. 33. The method for designing an integrated circuit device of 34. The method for designing an integrated circuit device of 35. The method for designing an integrated circuit device of 36. The method for designing an integrated circuit device of an operator circuit for performing an operation and outputting operation results as well as an output enable signal indicating whether or not the operation results are effective; and a serial/parallel converter circuit for converting the operation results input as serial data to parallel data and outputting the parallel data, the basic circuit thus outputting the parallel data and the output data enable signal, and the adjusting circuit includes:
a selection circuit for receiving the parallel data and the output data enable signals output from the basic circuits, selecting, among the parallel data output from the basic circuits, parallel data output from the basic circuit that outputs the output data enable signal indicating that the operation results are effective, and outputting the selected parallel data.
37. The method for designing an integrated circuit device of 38. The method for designing an integrated circuit device of an operator circuit for performing an operation for input data and outputting operation results as well as an address signal designating a destination of the operation results and a data read/write control signal, each of the circuit additional portions includes:
a buffer circuit for temporarily storing and then outputting the operation results in accordance with the address signal, and
the adjusting circuit includes:
a selection circuit for receiving outputs from the buffer circuits and the data read/write control signal, selecting one of the outputs from the buffer circuits in accordance with the data read/write control signal, and outputting the selected one.
39. A database used for design of an integrated circuit device having a plurality of functions, the database comprising:
a design model section including specification level elements each having as a design parameter the number of operations required for implementing each of the plurality of functions, and behavioral level elements each having as design parameters the number of operations per cycle and the number of cycles; and a computation section including a relational expression for calculating the design parameters along the design models. 40. The database of 41. The database of the computation section further includes a relational expression for calculating the number of operations per unit time, the period, and the number of cycles from the number of operations and the number of cycles of, the behavioral level element. 42. The database of Description [0001] The present invention relates to design technology for integrated circuit devices such as system LSI, and more particularly, relates to smoothing designing in a sequence of design process steps up to register-transfer level (RTL) design process step. [0002] In general, design of an integrated circuit device is performed in a procedure as shown in FIG. 42, where specification/behavioral level design (S [0003] In the specification/behavioral level design, specifications and behavior for implementing a certain function are designed. In the RTL design, data throughput and the time required for processing data, as well as hardware configuration and the area occupied by the hardware, are taken into consideration. [0004] The subsequent designs lower in level than the RTL design have been automated, and therefore design data can be generated without the necessity of manual work. [0005] On the contrary, the upper-level designs including the RTL design have been little automated. Design and optimization are performed by skilled designers. Local optimization is therefore difficult due to restriction on the number of steps and the like, and thus only broad-perspective optimization has been made. If local optimization can be done in the upper-level designs, a great effect may possibly be exerted on the entire design. In consideration of this, a simple and convenient optimization design method has been desired. [0006] Conventionally, there has been established no standard information style exchangeable between the specification/behavioral level design and the RTL design. Accordingly, it is impossible to correctly grasp information on the RTL design at the stage of the specification/behavioral level design. For this reason, even a skilled designer tends to prepare, at the stage of the specification/behavioral level design, a design unable to be implemented in the RTL design. As a result, it may become necessary to correct the specification/behavioral level design after completion of the RTL design. Otherwise, a redundant circuit may be designed at the specification/behavioral level. [0007] An object of the present invention is providing a method and an apparatus for designing an integrated circuit device, capable of designing a large scale system such as system LCI efficiently by use of common information of the number of operations that is shared in th specification/behavioral level design process step and the RTL design process step, and capable of performing simple and convenient optimization design in these design process steps. [0008] The first method for designing an integrated circuit device of the present invention is a method including representing a portion constituting the integrated circuit device by a three-dimensional shape, the type of the three-dimensional shape being determined depending on a design level. [0009] By the above method, the structure of an element or a bus that is sequentially concretized in the course of specification level—behavioral level—RTL can be represented by three-dimensional shapes that allow for prompt grasp of the structure. This contributes to improvement in design efficiency. More specifically, since it is possible to roughly grasp the structure of an element or a bus in high-level design that is required for design of an integrated circuit device, the structure of a design model can be easily limited to an appropriate range. This reduces the possibility of such an occurrence that high-level design must be done again as a result of low-level design. [0010] When the integrated circuit device has a plurality of functions, the above portion comprises a plurality of elements required for implementing the plurality of functions, and each of the plurality of lements may be represented by a three-dimensional shape of which a volume corresponds to the number of operations required for implementing the function. [0011] In design at a level lower than a specification level, the element may be represented by a pole of which a bottom area corresponds to the number of operations per cycle. [0012] In behavioral level design, the element may be represented by a cylinder of which a bottom is a circle having an area corresponding to the number of operations per cycle. [0013] In RTL design, the element may be represented by a square pole of which a bottom has two adjacent sides corresponding to the number of operations per unit time and the period of a cycle. [0014] When the portion comprises a bus connecting the plurality of elements, a connection relationship between the bus and each of the elements may be represented by a three-dimensional shape so that a structure of the bus and a structure of the element match each other using the number of operations per unit time as a medium. [0015] In design at a level lower than a specification level, the element may be represented by a pole of which a bottom area corresponds to the number of operations per cycle, and the bus may be represented by a pole of which a bottom area corresponds to the number of operations per cycle. [0016] Preferably, in behavioral level design, the element is represented by a cylinder of which a bottom is a circle having an area corresponding to the number of operations per cycle, and the bus is represented by a cylinder of which a bottom is a circle having an area corresponding to the number of operations per cycle. [0017] Preferably, in RTL design, the element is represented by a square pole of which a bottom has two adjacent sides corresponding to the number of operations per unit time and a period of a cycle, and the bus is represented by a square pole of which a bottom has two adjacent sides corresponding to the number of operations per unit time and a period of a cycle. [0018] When the bottom areas of the bus and the element are different from each other, the bus may be represented by a cone of which two faces correspond to the bottoms of the bus and the element. [0019] A bus branch branching from the bus to be connected to the element may further be generated, the bus branch being represented by a pole having a cross-sectional area equal to the bottom area of the bus. [0020] The second method for designing an integrated circuit device of the present invention includes the steps of: (a) obtaining the number of operations by simulating a function of the integrated circuit device; (b) determining specification level elements-so that each of the elements has the number of operations qual to or more than the number of operations obtained in the step (a); (c) determining a bus connecting the elements; (d) determining behavioral level elements so that each of the elements has the number of operations per cycle and the number of cycles that give the number of operations equal to or more than the number of operations determined in the step (b); and (e) determining a behavioral level bus for connecting the behavioral level elements based on the number of operations per cycle determined in the step (d). [0021] By the above method, consistent design based on the number of operations of an element and a bus is possible through the respective design stages. [0022] In the step (b), if a plurality of practicable specification level elements exist, one among the elements that has the least number of operations may be determined as the specification level element used for design. With this determination, a circuit small in circuit area and power consumption can be obtained. [0023] In the step (d), in the case where a plurality of practicable behavioral level elements exist, if design is made giving higher priority to operation speed, an element among the behavioral level elements that has the number of operations per cycle as large as possible may be determined as the behavioral level element used for design, or if design is made giving higher priority to a smaller circuit area or smaller power consumption, an element among the behavioral level elements that has the number of operations per cycle as small as possible may be determined as the behavioral level element used for design. With this determination, it is possible to consider an item of high priority on design in the RTL design. [0024] The integrated circuit device may further include the step of (f) obtaining design data corresponding to the behavioral level element for implementing the function. [0025] In the step (d), a plurality of elements having the same function are preferably unified into a shared element. [0026] In the step (d), in the unification, further preferably, an element among the plurality of elements that has the maximum number of operations per cycle is determined as the shared element. [0027] Preferably, in the step (d), when an element is replaced with the shared element, a portion of the number of operations per cycle of the shared element exceeding the number of operations per cycle of the element to be replaced is not used. This reduces power consumption. [0028] The method may further include the steps of: (g) determining a RTL element so as to have the number of operations per unit time and the p riod that give the number of operations per cycle equal to or more than the number of operations per cycle of the behavioral level element determined in the step (d); (h) determining a RTL bus based on the number of operations per unit time and the period; and (i) determining design data corresponding to the RTL element for implementing the function. This allows for consistent design of an element and a bus from the specification level through the RTL. [0029] Preferably, in the step (g), in the case where a plurality of RTL practicable elements exist, if design is made giving higher priority to operation speed, an element among the RTL elements that has the number of operations per unit time as large as possible is selected, or if design is made giving higher priority to a smaller circuit area or smaller power consumption, an element among the RTL elements that has the number of operations per unit time as small as possible is selected. With this determination, it is possible to consider an item of high priority on design in the RTL design. [0030] In the step (d), for one specification level element, a plurality of behavioral level elements operating in parallel that have the total number of operations equal to the number of operations of the specification level element may be obtained. This provides flexibility for the layout of a circuit. [0031] The integrated circuit device may execute a plurality of processes in parallel, and in the step (d), if there are behavioral level elements having the same type of function that can be shared among the plurality of processes, the behavioral level elements may be deformed so as to be executed at different times in the respective processes. With this deformation, design allowing for sharing of some circuits and the like is possible in the behavioral level design. [0032] In the step (d), if the time period from completion of operation of a first behavioral level element until start of operation of a second behavioral level element is equal to or more than one cycle, the first behavioral level element may be deformed so that the number of operations per cycle is smaller, to thereby reduce the time period to less than one cycle. Thus, design can be done so that no data retaining circuit is necessary. [0033] In the step (d), if the time period from completion of operation of a first behavioral level element until start of operation of a second behavioral level element is equal to or more than one cycle, a behavioral level element for a circuit that retains output data of the first behavioral level element for the time period may be obtained. In this case, a data retaining circuit of a necessary and sufficient scale is obtained. [0034] In the step (g), RTL elements operating in parallel may be obtained for one behavioral level element. In this case, a RTL model with reduced power consumption is obtained. [0035] In the step (g), RTL el ments pipeline-operating sequentially may be obtained for one b havioral level element. In this case, a RTL model with a reduced circuit area is obtained. [0036] In the step (b), processing may be paralleled for reducing the number of cycles required for the processing, and in the step (d), the behavioral level elements operating in parallel may be deformed so that the number of operations per cycle is smaller. This makes it possible to suppress the peak of power consumption without increasing the number of cycles. [0037] In the step (b), each of the specification level elements may be represented by a three-dimensional shape having a volume corresponding to the number of operations of the element. In the step (d), each of the behavioral level elements may be represented by a pole having a cross-sectional area corresponding to the number of operations per cycle of the element and an axial length corresponding to the number of cycles of the element, and in the step (e), the behavioral level bus may be represented by a pole having a cross-sectional area corresponding to the number of operations per cycle of the bus. This makes the design efficient. [0038] In the step (g), each of the RTL elements may be represented by a rectangle pole having a rectangular cross section of which two sides correspond to the number of operations and the period and an axial length corresponding to the number of cycles, and in the step (h), the RTL bus may be represented by a rectangle pole having a rectangular cross section of which two sides correspond to the number of operations and the period. This makes the design further efficient. [0039] The elements may be retrieved from a database storing elements as design data. [0040] The elements may be generated by a generator. This eliminates the necessity of preparing many behavioral models in a database since only a necessary behavioral model needs to be generated. [0041] The design data may be that obtained by use of an IP described to generate: a circuit basic portion; parallel-connected circuit additional portions of the number corresponding to the value of an input parameter; and an adjusting circuit in relation to data input or output of the circuit additional portions. This makes it possible to generate circuits based on one IP, where part of the IP has a scale depending on the parameter. [0042] The circuit basic portion may include: an operator circuit for performing an operation for input data and outputting operation results as well as an address signal designating a destination of the operation results and a data read/write control signal. Each of the circuit additional portions includes a buffer circuit for temporarily storing and then outputting the operation results in accordance with the address signal. The adjusting circuit includes a selection circuit for receiving outputs from the buffer circuits and the data read/write control signal, selecting one of the outputs from the buffer circuits in accordance with the data read/write control signal, and outputting the selected one. This also provides the above effect. [0043] The database of the present invention is a database used for design of an integrated circuit device having a plurality of functions. The database includes: a design model section including specification level elements each having as a design parameter the number of operations required for implementing the plurality of functions, and behavioral level elements each having as design parameters the number of operations per cycle and the number of cycles; and a computation section including a relational expression for calculating the design parameters along the design models. [0044] Having the above database, consistent design can be made for elements for implementing functions required for the integrated circuit device, using the number of operations as a common parameter for the specification level through the behavioral level. [0045] The design model section may further include RTL elements each determined by the number of operations per unit time, the period, and the number of cycles, and the computation s ction may further include a relational expression for calculating the number of operations per unit time, the period, and the number of cycles from the number of operations and the number of cycles of the behavioral level element. This allows for consistent design extended to the RTL design. [0046] FIGS. [0047]FIG. 2 is a flowchart of a method for designing an integrated circuit device of the present invention. [0048]FIG. 3 is a view illustrating a database in EMBODIMENT 1. [0049]FIG. 4 is a view illustrating a procedure of designing an integrated circuit device for implementing video data compression function using the database of FIG. 3. [0050] FIGS. [0051]FIG. 6 is a view illustrating a database in EMBODIMENT 2. [0052]FIG. 7 is a view illustrating an example of optimization design performed during the shift from the specification level design to the behavioral level design. [0053]FIG. 8 shows flowcharts for compression of video data and audio data. [0054] FIGS. [0055] FIGS. [0056]FIG. 11 shows comparison of characteristics among RTL models. [0057] FIGS. [0058] FIGS. [0059] FIGS. [0060]FIG. 15 shows timing charts for the operations of the circuits shown in FIGS. [0061] FIGS. [0062] FIGS. [0063]FIG. 18 shows an example of circuit description for a r gulating circuit generated by the parameter-provided IP according to the present invention. [0064]FIG. 19 is a view illustrating implementation of the method for designing an integrated circuit device of an embodiment of the present invention by means of an apparatus provided with a computer. [0065]FIG. 20 is a flowchart showing a procedure of the specification/behavioral level design for an integrated circuit device in EMBODIMENT 3. [0066]FIG. 21 is a view illustrating the relationship among elements selected in the specification level design for an integrated circuit device in EMBODIMENT 3. [0067]FIG. 22 is a view illustrating the order of operations of the elements in the specification level design for an integrated circuit device in EMBODIMENT 3. [0068]FIG. 23 is a view of a three-dimensional image of the connection relationship between a bus and elements in the behavioral level design for an integrated circuit device in EMBODIMENT 3. [0069]FIG. 24 is a view illustrating insertion of a cone converter for smooth -connection between an element/plate and an element in the behavioral level design for an integrated circuit device in EMBODIMENT 3. [0070] FIGS. [0071] FIGS. [0072]FIG. 27 is a view showing the function relationships of the area A and the number of toggles T with the number of operations M. [0073]FIG. 28 shows the values of the layout area A, the number of toggles T, and the power consumption P calculated from function relational expressions in the performance analysis. [0074] FIGS. [0075]FIG. 30 is a view showing an example of a sharing information table in the specification/behavioral optimization design. [0076]FIG. 31 is a view illustrating a specific temporal simulation in the case of using a common resource in the specification/behavioral optimization design. [0077] FIGS. [0078]FIG. 33 is a flowchart showing a procedure of the RTL design for an integrated circuit device in EMBODIMENT 2. [0079] FIGS. [0080] FIGS. [0081] FIGS. [0082] FIGS. [0083] FIGS. [0084] FIGS. [0085] FIGS. [0086]FIG. 41 is a view illustrating a procedure of generating a new system by integrating already-designed systems. [0087]FIG. 42 is a flowchart showing a general procedure of designing an integrated circuit. [0088] (Basic Concept of the Invention) [0089] First, basic concept of the present invention will be described. Herein, in design of an integrated circuit device, a basic technique for utilizing an element (intellectual property (IP); a design asset in the integrated circuit) stored in a database will be described. FIGS. [0090]FIG. 1( [0091] The number of operations (hereinafter, referred sometimes to as “opn”) of an element corresponds to the volume of the object. Other specific parameters of the element have not yet been determined. The number of operations is a value representing the necessary throughput derived from verification of the specifications. That is, the number of operations represents the amount of processing performed by an integrated circuit device to be designed, including the number of register accesses and the like, as well as the number of function calls, the number of steps in a C source code, and the like in the case of software implementation. [0092] Therefore, from the viewpoint of “the number of operations”, the element in the specification level design is like a sphere. When it is desired to retrieve from a database a hardware or software resource that performs certain processing requiring a certain number of operations, an element that performs the processing and has a volume corresponding to a value equal to or more than the number of operations is to be retrieved and utilized. Such an element represented by a sphere is called a specification model. In the relevant drawings, the sphere is depicted as a circle unless otherwise specified. The specification model may otherwise be a cube or a regular octahedron, for example, as long as the volume thereof corresponds to the number of operations. [0093]FIG. 1( [0094] In FIG. 1( [0095]FIG. 1( [0096] In the embodiments of the present invention, the elements or buses at the RTL level are represented by rectangle poles (or plates). The bottom area (cross-sectional area) of each rectangle pole corresponds to the number of operations per cycle, where the adjacent two sides of the bottom correspond to the number of operations per unit time and the length of one cycle. The axial length of the rectangle pole corresponds to the number of cycles as in the case of the cylinder at the behavioral level. The volume of the rectangle pole obtained by multiplying the bottom area by the axial length corresponds to the number of operations of the element. Therefore, when an element that performs certain processing having a certain number of operations is required in the RTL design, retrieved from a database and utilized is a hardware or software resource, among elements performing the processing, that is represented by a rectangle pole having a volume corresponding to a value equal to or more than the number of operations, under the restriction of, not only the number of cycles, but also the number of operations per unit time and the length of one cycle. In the case of a bus, the bottom ar a as an indicator for setting the bus width is important. Therefore, used is a plate having a bottom (cross section) equal to or larger than a rectangle of which two sides correspond to the number of operations per unit time (opn/ns) and the length of one cycle (ns/cycle). Such an element or bus represented by a rectangle pole is called a RTL model. [0097] The basic concept of the present invention is to set the number of operations as the common parameter and design an integrated circuit device using a database storing elements and buses corresponding to the parameter at the respective design stages, as shown in FIGS. [0098] (Embodiment 1) [0099] The first embodiment of the present invention will be described with reference to the relevant drawings. First, the flow of design from the specification level through the behavioral level and the RTL to the design process step will be described. [0100]FIG. 2 is a flowchart of a method for designing an integrated circuit device of the present invention. In step S [0101] In step S [0102] At Step S [0103] In step S [0104] When the RTL model is implemented by hardware, as the design data corresponding to the selected RTL model, selected from the database are design data (opn-H) written in a hardware description language at the RTL and a script file (opn-sc) written in a script language for synthesis used during the layout synthesis of the design data [0105] When the RTL model is implemented by software, design data (opn-C) written in the C language, for example, is selected from the database as the design data corresponding to the selected RTL model. Steps S [0106] Hereinafter, as an example, a case of implementing video data compression function will be described in detail. FIG. 3 is a view illustrating a construction of a database in this embodiment. [0107] The database in this embodiment includes respective models for the specification level, the behavioral level, and the RTL, as well as design data, for various functions implem nted by an integrated circuit device to be designed. FIG. 3 indicates that the database in this embodiment includes respective models and design data, not only for compression-A, compression-B, and compression-B having different compression rates, but also for function V, function W, and the like. It should be noted that although the function of compression-A is illustrated in detail in particular, the other functions also have substantially the same construction. [0108] The construction of the database in this embodiment will be described taking the function of compression-A as an example. The database in this embodiment includes a specification template model (opn-T model) for compression A, opn-T-A(n). The specification template model is a source code of a program having the function of compression A. The code is described in the C language, for example, and the data size thereof is undefined. Specification description models have been prepared from the specification template model opn-T-A(n) for some n values by defining the data amount n of data to be processed. In FIG. 3, specification description models where n=100 and 200 are shown. [0109] Further, provided are specification models opn-S-A-128, opn-S-A-256, and opn-S-A-1208 corresponding to the number of operations of 128, 256, and 1208, respectively. The specification models are represented by spheres with the volume thereof corresponding to the number of operations. [0110] The database in this embodiment also includes behavioral models corresponding to the respective specification models. For example, opn-B-A-256-1 and pn-B-A-256-2 are provided for opn-S-A-256. Each of the behavioral models is represented by a cylinder where the number of operations corresponds to the volume of the cylinder, the number of operations per cycle corresponds to the bottom area thereof, and the number of cycles corresponds to the axial length thereof. [0111] The database in this embodiment further includes RTL models corresponding to the respective behavioral models. Each of the RTL models is represented by a rectangle pole where the number of operations corresponds to the volume of the rectangle pole, the number of operations per unit time and the period of the cycle correspond to the adjacent two sides of the bottom thereof, and the number of cycles corresponds to the axial length thereof. [0112] When the function is to be implemented by hardware, the database in this embodiment includes RTL models each specific to a fabrication process adopted for an integrated circuit device to be designed. For example, in FIG. 3, for opn-B-A-256-1, opn-R-A-256-1-1-1 and opn-R-A-256-1-1-2 are provided for process [0113] When the function is to be implemented by software, the database in this embodiment includes RTL models each specific to each type of processor executing the software and each fabrication process adopted. This is because the instruction set is different between the processors used, and the operation speed is different between the fabrication process adopted. In FIG. 3, for opn-B-A-256-1, for example, opn-RA-256-1-b1-1 and opn-R-A-256-1-b1-2 are provided for processor b (processor-b) fabricated in process [0114]FIG. 4 is a view illustrating the procedure of designing an integrated circuit device that implements a video data compression function, using the database shown in FIG. 3. First, the specification level design will be described. The database shown in FIG. 3 includes opn-T-A(n), opn-T-B(n), and opn-T-C(n) as the specification template models for the video data compression function. Assume herein that video data having a data amount of 100 is to be compressed. A specification description model opn-T-A(100) that corresponds to the specification template model opn-T-A(n) having the function of compression-A is then selected from the database. [0115] The executable program, the specification description model opn-T-A(100), is executed by inputting the video data having a data amount of 100 to simulate compression-A. As a result, the number of operations, 256, required for this function and compressed data A are obtained. Based on this number of operations, the specification model opn-S-A-256 is determined as a candidate of the specification model to be selected for compression-A. In FIG. 4, opn-S-A-256 is represented by a sphere having a volume of 256. As the data amount after compression is smaller, the compression rate of the specification model is higher, or the compression precision is lower. [0116] Thereafter, a specification description model opn-T-B(100) corresponding to a specification template model opn-T-B(n) having the function of compression-B that is the same type of function as compression-A, that is, video data compression, is selected from the database. In this case, a specification model opn-S-B-128 as a candidate of the specification model to be selected, as well as compressed data B, are obtained in the manner described above. Likewise, a specification description model opn-T-C(100) corresponding to the specification template model opn-T-C(n) having the function of compression-C is selected from the database, to obtain a specification model opn-S-C-1028 as a candidate of the specification model to be selected, as well as compressed data C. [0117] FIGS. [0118] At the specification level, the number of operations is one of the selection guidelines. As the number of operations is larger (the volume of the sphere is larger), the circuit area and the power consumption are larger for hardware (HW) implementation, and the program size and resultantly the required ROM size are larger for software (SW) implementation (FIG. 5( [0119] At the behavioral level, the number of operations per cycle is one of selection guidelines. As the number of operations per cycle is larger (the bottom area of the cylinder is larger), the circuit area and the power consumption are larger for hardware implementation and the power consumption is larger for software implementation (FIG. 5( [0120] At the RTL, the number of operations per unit time (1 ns) is one of selection guidelines. As the number of operations per unit time is larger (the height of the bottom of the rectangular pole is larger), the circuit area and the power consumption are larger for hardware implementation and the power consumption is larger for software implementation (FIG. 5( [0121] With reference to the above guidelines, one of the three specification models selected from the database is selected. Assume that the amount of compressed data is smaller in the order of compressed data C, compressed data A, and compressed data B. From the viewpoint of the number of operations, it is desirable to select opn-S-B-128, which is however largest in the amount of compressed data among the three. From the viewpoint of the amount of compressed data, it is desirable to select opn-S-C-1028, which is however largest in the number of operations among the three specification models. [0122] In the illustrated example, it is determined to select opn-S-A-256 that is middle both in the number of operations and the amount of compressed data. The processing up to this selection corresponds to steps S [0123] Next, the behavioral level design will be described. As the behavioral models registered in the database shown in FIG. 3 that implement opn-S-A-256, there exist two models, opn-B-A-256-1 (number of operations per cycle: 64, number of cycle: 4) and opn-B-A-256-2 (number of operations per cycle: 128, number of cycle: 2). One is selected from these two behavioral models based on the number of operations per cycle or the number of cycles required for execution of the model. Herein, assume that opn-B-A-256-1 that is smaller in the number of operations per cycle is selected to prevent the circuit area from becoming large. This processing corresponds to step S [0124] The RTL design will be described. The selected behavioral model can be implemented either by hardware or software. [0125] As the RTL models registered in the database shown in FIG. 3 that implement the selected behavioral model by software, there exist two models, opn-R-A-256-1-b1-1 (number of operations per ns: 4, cycle period: 16 ns) and opn-R-A-256-1-b1-2 (number of operations per ns: 8, cycle period: 8 ns), using processor b (processor-b) fabricated in process [0126] As the RTL models that implement the selected behavioral model by hardware, there exist two models, opn-R-A-256-1-1-1 (number of operations per ns: 11, cycle period: 6 ns) and opn-R-A-256-1-1-2 (number of operations per ns: 16, cycle period: 4 ns), fabricated in process [0127] Among the above five RTL models, one is selected based on the number of operations per ns and the cycle period. Herein, assume that the RTL model opn-R-A-256-1-1-2 is selected that has the largest number of operations per ns and the highest operation speed. [0128] Once opn-R-A-256-1-1-2 is selected, the HDL-written design data pn-H-A-256-1-1-2 and the script file opn-sc-A-256-1-1-2 are selected from the database shown in FIG. 3 as design data corresponding to the RTL model. The above processing corresponds to steps S [0129] As described above, models corresponding to the number of operations are selected from the database at the respective stages of the design, that is, at the specification level, the behavioral level, and the RTL. This makes it possible to design an integrated circuit device using the number of operations as a medium. [0130] (Embodiment 2) [0131] In this embodiment, models corresponding to the respective numbers of operations have not been prepared beforehand in a database, as in EMBODIMENT 1, but a generator that outputs a model and the like as required is used. [0132]FIG. 6 is a view illustrating a database in this embodiment. The database will be described taking the function of compression-A as an example. The database in this embodiment includes opn-T-A(n) as a specification template model. By assigning an amount of video data to be actually processed to the “n” in the specification template model, a specification description model is obtained. The specification description model as an executable program is executed with input of the video data to be actually processed, to simulate compression-A. By this simulation, the number of operations opn required for this function and compressed data are obtained. [0133] As a specification model corresponding to the obtained number of operations opn, opn-S-A(opn) is generated in the database. The opn in the parentheses indicates the number of operations given as an argument. As in EMBODIMENT 1, the specification model is represented by a sphere having a volume corresponding to the number of operations. [0134] An behavioral model corresponding to the above specification model is generated by an behavioral model generator. Upon receipt of the number of operations per cycle qt or the number of cycle k required for execution, the behavioral model generator generates opn-B-A(qt) in the database as an behavioral model corresponding to the specification model opn-S-A(opn). As in EMBODIMENT 1, the behavioral model is represented by a cylinder having a volume corresponding to the number of operations opn and a bottom area corresponding to the number of operations per cycle. The following relationships are therefore established: the bottom area of the cylinder Bb(k)=opn/k=qt, the height of the cylinder Bh(qt)=opn/qt=k, and the number of operations opn=qt k. [0135] A RTL model corresponding to the above behavioral model is generated by a RTL model generator, As in EMBODIMENT 1, an RTL model is represented by a rectangle pole having a volume corresponding to the number of operations opn, a bottom ar a corresponding to the number of operations per cycle qt, a length Rv of the bottom (h ight) corresponding to the number of operations per unit time, and a width Rh of the bottom corresponding to the period of the cycle. [0136] The number of operations per unit time is determined by a value W indicating which is used, software or hardware, for implementation of compression-A, and a value P indicating a fabrication process in the case of using hardware, or values E and P indicating the type of a processor used and a fabrication process for the processor, respectively, in the case of using software. Therefore, the length of the bottom of the rectangle pole is represented by Rv(W,E,P), and the following relationships are established: the width of the bottom Rh(Rv)=qt/Rv, and the height of the rectangle pole Bh(qt)=k. [0137] Once the above values W, E, and P are input, the RTL model generator generates opn-R-A(W,E,P,qt) in the database as a RTL model corresponding to the behavioral model opn-B-A(qt). [0138] Design data corresponding to the above RTL model is generated by a design data generator. When the value W indicates that compression-A is implemented by software, the design data generator generates C-written design data opn-C-A as an executable program in the database. When the value W indicates that compression-A is implemented by hardware, the design data g nerator generates HDL-written design data opn-H-A and a script file opn-sc-A in the database. [0139] The database in this embodiment was described taking the function of compression-A as an example. It should be noted that the above description is also applicable to the other functions in the database. [0140] Thus, in this embodiment, it is not required to prepare many models and design data beforehand in the database, but only required to prepare generators for generating models and design data. This significantly reduces the data amount of the database. [0141] The design data generator may otherwise generate design data corresponding to an behavioral model. [0142] The models stored in the database that were used in EMBODIMENT 1 may be generated beforehand using the behavioral model generator, the RTL model generator, and the design data generator used in this embodiment. [0143] (Optimization Design Technique) [0144] Hereinafter, an example of optimization design performed using the design method described above will be described. [0145] —Optimization Between Specification and Behavioral Levels— [0146]FIG. 7 is a view illustrating an example of optimization design performed during the shift from the specification level to the behavioral level. Assume that an behavioral model for executing M operations in one cycle is determined based on a specification model having the number of operations of M, as an example. As such an behavioral model, one behavioral model having the number of operations of M may be determined. Alternatively, two behavioral models each having the number of operations of M/2 may be determined and arranged in parallel if the number of operations is considered as a medium. [0147] The above parallel arrangement in the behavioral level design provides effects such that concentration of interconnections is prevented during layout design at a masking level. In addition, layout synthesis is sometimes unavailable when a single behavioral model is used for design. The parallel arrangement can overcome this problem. Further, the parallel arrangement may sometimes provide good results during floor planning. [0148] Parallel arrangement is easy for a multiplier, memory, and the like. In the above example, two identical behavioral models were arranged in parallel. Alternatively, three or more behavioral models may be arranged in parallel, or different behavioral models may be used. In other words, only necessary is that the sum of the numbers of operations of the behavioral models arranged in parallel is equal to or more than the number of operations of the specification model. [0149] As described above, behavioral models in parallel can be obtained by considering only the number of operations. [0150] —Optimization at Behavioral Level— [0151] Optimization design by sharing an behavioral model in the behavioral level design will be described. [0152]FIG. 8 shows flowcharts for compression of video data and audio data. Referring to FIG. 8, video data compression includes steps of video preprocessing (SV [0153] FIGS. [0154]FIG. 9( [0155] The processing contents are almost the same between the quantization (SV [0156]FIG. 9( [0157] Specifically, the behavioral models for quantization are deformed so that the bottom area (the number of operations per cycle) increases while the volume is kept unchanged, and then the video data quantization is arranged to precede the audio data quantization. In addition, in order to complete the processing within the predetermined number of cycles, the behavioral models for the audio encoding (SA [0158] As described above, sharing of an behavioral model is possible by deforming behavioral models while the respective volumes are kept unchanged. This reduces the circuit area and the like. [0159] —Optimization Between Behavioral Level and RTL— [0160] Optimization design performed during the shift from the behavioral level design to the RTL design will be described. [0161] FIGS. [0162] Model C is the same in the number of operations and the number of operations per cycle as models A and B. but is larger in the length of one cycle in the model. Accordingly, the number of operations per cycle apparently increases by the degree of parallel arrangement. That is, the number of operations per cycle in model C is double that in model A. [0163] Model D is the same in the number of operations and the number of operations per cycle as models A and B, but the number of cycles apparently increases by the number of pipelines. That is, the number of cycles in model D is double that of model A. [0164]FIG. 10( [0165]FIG. 11 compares characteristics among the RTL models. Low-speed model B has an area and power consumption half of those of model A. Paralleled model C has powder consumption half of that of model A. Pipelined model D has a circuit area half of that of model A. [0166] Thus, the RTL models can be optimized in consideration of the area, the speed, the power consumption, and the like. [0167] —Inter-Function Adjustment at Behavioral Level and RTL— [0168] FIGS. [0169] In order to avoid the above occurrence, an behavioral model for function A is deformed so that the number of operations per cycle is reduced, that is, the number of cycles is increased while the number of operations (volume) is kept unchanged, and thus function B can start processing immediately (within the lapse of one cycle) after the end of processing of function A. [0170]FIG. 12( [0171] For the above purpose, as shown in FIG. 12( [0172] —Reliability Optimization at Specification and Behavioral Levels— [0173] FIGS. [0174]FIG. 13( [0175] Thus, using the behavioral models in FIG. 13( [0176] The models in FIG. 13( [0177] —Circuit Generation at RTL— [0178] An IP that generates RTL description for a circuit of a scale corresponding to the value of an input parameter, that is, a parameter-provided IP will be described. Such an IP is characterized in generating, not only basic circuits of the number corresponding to the parameter, but also regulating circuits in relation to input/output of data of the basic circuits. [0179] FIGS. [0180] If 1 is given as the parameter, the parameter-provided IP generates the basic circuit IP- [0181] In FIG. 15( [0182] FIGS. [0183] The above examples are for the regulating circuit in relation to output. Note that a regulating circuit in relation to input can also be generated in the same manner. [0184] Thus, by use of the parameter-provided IP according to the present invention, not only the basic circuits but also the regulating circuit for regulation between the basic circuits can be simultaneously generated automatically. Therefore, the present invention is particularly effective in generation of design data of a circuit corresponding to parallel-arranged RTL models as described with reference to FIGS. [0185] FIGS. [0186] The parameter-provided IP in the above case generates the circuit IP- [0187] Each of the buffers [0188]FIG. 18 shows an example of circuit description for a regulating circuit generated by the parameter-provided IP as described above. The example in FIG. 18 is circuit description written in Verilog output when 4 is given as the parameter. [0189] The above example is for the regulating circuit in relation to output. Note that a regulating circuit in relation to input can also be generated in the same manner. [0190] Thus, the parameter-provided IP according to the present invention automatically generates not only the buffers [0191] The database in this embodiment may not include RTL models, and design data may directly correspond to behavioral models. Alt rnatively, such a design method that directly obtains design data based on behavioral models without obtaining RTL models may be adopted. [0192] The method for designing an integrated circuit device in this embodiment can be realized by an apparatus including a computer that can execute a program for implementing the method. Alternatively, the designing method can be realized by recording a program for implementing the method in a computer-readable recording medium and executing the program recorded on the recording medium by means of a computer. [0193]FIG. 19 illustrates an exemplary construction of an apparatus for designing an integrated circuit device according to the present invention. A computer [0194] (Embodiment 3) [0195] Next, a method for designing not only elements but also a bus structure connecting the elements will be described. [0196] —Outline of Design Procedure— [0197] First, the overall flow of the specification/behavioral level design in the entire design of an integrated circuit device will be described. FIG. 20 is a flowchart showing a procedure of the specification/behavioral level design of an integrated circuit device. [0198] In step ST [0199] Next, the behavioral level design is started. In step ST [0200] Depending on the determination results in steps ST [0201] The number of operations per cycle, that is, the shape of the cross section of a bus should basically be determined depending on the interface structure with an external apparatus. The reason is that the data amount per second to be transmitted to an external system has already been determined based on the specifications of the external system (e.g., a TV set) in any cases. Data is received from or transmitted to the external system based on the specifications. However, in an internal portion independent of the input/output with the external system, it is possible to freely change the data width and the like without constraints of the interface with the external system. For example, for 36 bit wide data input from an external system, the data width may be reduced to 18 bits inside. By doing this, the layout area can be reduced, although four cycles are required for the processing that will otherwise be completed in two cycles if the 36 bit width is used. As another example, if 36 bit wide data input externally is processed as 72 bit wide data inside, the number of cycles can be reduced, and thus reduction in power consumption is expected. [0202] Hereinafter, specific processing details in the respective steps will be described. [0203] —Specification Level Design— [0204]FIG. 21 illustrates the relationship among elements selected at the specification level. In the specification level design, process P [0205] A functional simulation is executed using the selected elements M [0206] —Behavioral Level Design— [0207]FIG. 23 illustrates a three-dimensional image of the connection relationship between the bus and the elements in the behavioral level. As shown in FIG. 23, a cylindrical bus and bus branches are depicted. The cylindrical bus has a cross-sectional area corresponding to the number of operations per cycle of the bus, and may be regarded as a stretchable cylinder connecting the elements. The bus branches are small cylinders branching from the bus toward the elements and have interfaces for connecting the elements and the bus. That is, the number of operations per cycle handled during input/output of the system is used as a default number of operations, and the bus branch is defined as representing the default number of operations. By using the parameter of “the number of operations per cycle” (hereinafter, called the “interface area ” of a bus or the “bottom area” of a cylinder or the like) as a medium, the connection relationships between the bus and the elements are constructed as shown in FIG. 23. The processing described above corresponds to the steps ST [0208] There are cases where the bottom areas of cylinders of elements fail to match each other and where the interface area of the cylindrical bus fails to match the bottom area of a cylinder of an element. In such cases, that is, when the bottom areas of elements are different from each other or the interface area of the bus is different from the bottom area of an element, a kind of bus called a “cone converter” is provided as shown in FIG. 24 to ensure smooth connection between the bus branch and the element. The cone converter connects two elements or an element and a bus (or a bus branch) and thereby adjusts the number of operations per cycle between the connected ones. Specifically, the cone converter is constructed of a bus including a FIFO circuit. In the case where conversion is made from a smaller cross-sectional area or bottom area to a larger cross-sectional area or bottom area, data corresponding to the smaller area can be accumulated to become equivalent to the larger area and then transferred to the larger area. In the case where the conversion is made from a larger cross-sectional area or bottom area to a smaller one, data corresponding to the larger area is divided into portions corresponding to the smaller area and transferred to the smaller area. In the small to large area conversion, an element or a bus connected to the large area portion of the cone converter can be operated at a lower speed than an element or a bus connected to the small area portion thereof. In the large to small area conversion, an element or a bus connected to the small area portion must be operated at a higher speed than an element or a bus connected to the large area portion. [0209] In short, despite of the introduction of the d fault number of operations corresponding to the bottom area of a cylinder, there may arise a case where a bus and an element are not smoothly connected via a single medium of the default number of operations. To overcome this problem, while keeping the use of the default number of operations corresponding to the bottom area of a cylinder as a basis, the cone converter is provided when the default number of operations of the bus is different from that of the element. In this way, the bus and the element can be flexibly connected. A specific effect obtained by providing the cone converter will become apparent in a temporal simulation to follow. [0210] In the RTL, a square converter, not a cone converter, may be used for connection between elements having different bottom areas or between an element and a bus (or a bus branch) having different bottom areas. [0211] —Temporal Simulation— [0212] Hereinafter, the processing in step ST [0213]FIG. 25( [0214]FIG. 25( [0215] —Performance Analysis— [0216] Details of the performance analysis as the processing in step ST [0217]FIG. 26( [0218] FIGS. [0219] The database stores performance information of the respective elements. For example, assuming that performance information of each element includes descriptions on the layout area A, the number of toggles (signal transition probability) T, and the power consumption P as parameters for evaluating the performance, relational expression (1) below is established. [0220] where q denotes a constant, F denotes a frequency, and V denotes a voltage. [0221] Function relational expressions (2) and (3) below for the layout area A and the number of toggles T have also been registered in the database. [0222] where M denotes the number of operations, and α, β, γ, and θ are all constants. That is, both the layout area A and the number of toggles T are a primary function of the number of operations M. [0223]FIG. 27 is a graph showing the function relationships of the area A and the number of toggles T with the number of operations M. Above function relational expressions (1), (2), and (3) have been registered in the database as performance information. [0224]FIG. 28 shows the values of the layout area A, the number of toggles T, and the power consumption P calculated from the above function relational expressions. As is found from FIG. 28, for the same element C [0225] Thus, an optimum solution in the behavioral level is determined from the performance analysis of the elements in consideration of most important parameters for the integrated circuit device to be designed and the like. [0226] The “number of operations per cycle” in the setting of the bus structure is temporarily set at an initially appropriate value. However, in consideration of the case where plural types of simulations and performance analysis are desired, an optimum solution is determined after the determination in step ST [0227] —Specification/Behavioral Optimization Design— [0228] Hereinafter, an example of processing for optimizing the specification/behavioral level design in the above stream of design will be described. [0229] FIGS. [0230] First, as shown in FIG. 29( [0231] In the temporal simulation, if elements having the same function exist in the plurality of processes, P [0232]FIG. 31 illustrates a specific temporal simulation in the case of sharing a resource. Referring to FIG. 31, in a temporal simulation for processes P [0233] FIGS. [0234] First, as sharing processing, the bottom area of the lement A [0235] From the above results, it becomes necessary to deform the process P [0236] In the first method, a process P [0237] The process P [0238] Thereafter, the performance analysis described above is carried out, and then an optimum solution is determined. [0239] In this embodiment, sharing-intended design can be performed efficiently. By sharing a resource, the area can be reduced. With the reduction in area, reduction in applied voltage is expected. In addition, in the design at down-stream stages where elements selected in the behavioral level are further specified and branched to some sub-elements, the number of combinations for branching is significantly reduced. This will enhance the design efficiency. [0240] (Embodiment 4) [0241] The second embodiment on the RTL design in the design of an integrated circuit device will be described. [0242]FIG. 33 is a flowchart showing a procedure of the RTL design of an integrated circuit device. [0243] First, in step ST [0244] Depending on the determination in steps ST [0245] As described in EMBODIMENT 3 (with relation to FIG. 20), the number of operations per cycle of a bus, that is, the cross-sectional shape should basically be determined depending on the interface structure with an external apparatus. Therefore, as also described in EMBODIMENT 3, in the internal portion independent of the input/output with the external system, it is possible to freely change the data width and the like without constraints of the interface with the external system. [0246] Therefore, depending on the determination in step ST [0247] Determination of an optimum solution is generally made based on overall consideration of the layout area, the power consumption, the processing time, and the like. In one method, attention is paid on a certain parameter, and only elements that satisfy requirements of the parameter are retrieved. Among the retrieved elements, a combination of elements that is most advantageous for other parameters is determined as the optimum solution. In another method, the layout area, the power consumption, the processing time, and the like are determined as main parameters. Parameters that influence the main parameters are further taken out as sub-parameters. A group of elements having sub-parameters that optimize the respective main parameters are first selected. Then, the optimum solution is obtained for the main parameters selected in the above manner. [0248] Specific processing details for the above respective steps are as follows. [0249] —Shape of RTL Elements— [0250] FIGS. [0251] —Connection Relationship Between Bus and Element— [0252] FIGS. [0253] At the RTL, the data width and the frequency are predetermined. Therefore, the bus can be represented as a flat plate having a cross section of which the length and width correspond to the number of operations per unit time and the period, respectively. Bus branches of a flat-plate shape are provided as portions connecting the bus and the elements. With this bus structure, smooth RTL design can be With this bus structure, smooth RTL design can be made. [0254] —Determination of Optimum Solution of Element— [0255] FIGS. [0256] To determine which one of these elements should be selected as the optimum solution, the layout area and the power consumption, for example, are used as indicators for determining the performance of each element First, as shown in FIG. 36( [0257] —Optimization Design 1 in RTL— [0258] Optimization design for replacing a plurality of elements at the RTL with a shared element will be described. [0259] Referring to FIGS. [0260] If it is determined possible to replace the elements A [0261] FIGS. [0262] —Optimization Design 2 in RTL— [0263] Processing for more flexible element sharing at the RTL design will be described. [0264] FIGS. [0265] First, search is made for elements having the same function that can be shared. Elements that do not operate in the same time period are suitable for sharing. However, in some cases like a memory, sharing is possible for even a plurality of elements that operate in the same time period. In the example shown in FIGS. [0266] Among the sharing candidates, the element having the largest number of operations per unit time (in the illustrated example, the element M [0267] Referring to FIG. 40( [0268] There is a case where the elements M [0269] Thus, by the sharing involving deformation of an element, it is possible to share an element without increasing the number of operations (volume of the rectangle pole). In addition, it is also possible to perform sharing for elements operating in the same time period. [0270] —Integration of Systems— [0271] Described below is an example of processing for integrating a plurality of systems by utilizing the above various types of sharing processing. [0272]FIG. 41 illustrates a procedure of generating a new system SY [0273] In the example illustrated in FIG. 41, the system SY [0274] The elements M [0275] As a result, obtained is the readable/writable system SY [0276] In the above description, no mention has been made of the structure of cores in a database. It should be noted that the present invention is also applicable to cores (also called VC clusters) of which data are stored in the database in the hierarchical state of the specification level, the behavioral level, the RT level, and the like, for example. Referenced by
Classifications
Rotate |