This application is based upon and claims the benefit of priority from prior Japanese Patent Application P2004-364960 filed on Dec. 16, 2004; the entire contents of which are incorporated by reference herein.
1. Field of the Invention
The present invention relates to technology for the automatic design of semiconductor integrated circuits, and more particularly to, an automatic design apparatus for semiconductor integrated circuits, a method for automatically designing semiconductor integrated circuits, and a computer-program product for executing an application of an automatic design apparatus for semiconductor integrated circuits.
2. Description of the Related Art
A field programmable gate array (FPGA) is known as a programmable circuit, and as possessing a reconfigurable circuit arrangement. The circuit arrangement of the FPGA can be reconfigured by configuration information stored in a configuration memory. Compared with the FPGA, reconfigurable processors can execute advanced data processing. The reconfigurable processor includes a plurality of data processors having circuit scale larger than data processors of the FPGA. The reconfigurable processor dynamically reconfigures the circuit arrangement in accordance with the configuration information, and operates as an image processor or a communications processor, for instance. Each data processor is arranged to be connectable to the other data processors. That is, a programmable circuit (reconfigurable processor) includes a plurality of connection selectors for reconfiguring the connection among the data processors. Furthermore, each connection selector includes a plurality of selectors. On the other hand, a technique that the user of a reconfigurable processor can select the processing bit width and the circuit arrangement of the data processors, in accordance with the use and the required performance, has been proposed.
However, despite a very high degree of versatility, the programmable circuit includes many circuit arrangements that are redundant for actual operation. Therefore, there are many cases where the circuit scale can be reduced by utilizing an application specific integrated circuit (ASIC), compared with utilizing the reconfigurable processor. Since the delay time and the power consumption increase in proportion to the circuit scale, a specification required by the user cannot be satisfied. Therefore, a reduction of the circuit scale of the connection selectors has been desired.
An aspect of the present invention inheres in an automatic design apparatus for semiconductor integrated circuits encompassing, a first acquisition module configured to acquire a first function description describing an arrangement of a plurality of data processors, and a second function description describing an arrangement of a plurality of connection selectors for switching the connection among the data processors, a second acquisition module configured to acquire setting data including a connectable range setting description for setting a connectable range that each connection selector can connect among the data processors, and a setting module configured to set the setting data to the first and second function descriptions.
Another aspect of the present invention inheres in a method for automatically designing semiconductor integrated circuits encompassing, acquiring a first function description describing an arrangement of a plurality of data processors, and a second function description describing an arrangement of a plurality of connection selectors for switching the connection among the data processors, acquiring setting data including a connectable range setting description for setting a connectable range that each connection selector can connect among the data processors, and setting the setting data to the first and second function descriptions.
Still another aspect of the present invention inheres in a computer program product for executing an application for an automatic circuit design apparatus for semiconductor integrated circuits, the computer program product comprising, instructions configured to acquire a first function description describing an arrangement of a plurality of data processors, and a second function description describing an arrangement of a plurality of connection selectors for switching the connection among the data processors, instructions configured to acquire setting data including a connectable range setting description for setting a connectable range that each connection selector can connect among the data processors, and instructions configured to set the setting data to the first and second function descriptions.
Various embodiments of the present invention will be described with reference to the accompanying drawings. It is to be noted that the same or similar reference numerals are applied to the same or similar parts and elements throughout the drawings, and description of the same or similar parts and elements will be omitted or simplified. In the following descriptions, numerous specific details are set forth such as specific signal values, etc. to provide a thorough understanding of the present invention. However, it will be obvious to those skilled in the art that the present invention may be practiced without such specific details. In other instances, well-known circuits have been shown in block diagram form in order not to obscure the present invention with unnecessary detail. In the following description, the words “connect” or “connected” define a state in which first and second elements are electrically connected to each other without regard to whether or not there is a physical connection between the elements.
As shown in
The second acquisition module 12 acquires setting data including a connectable range setting description for setting a connectable range that each connection selector can connect among the data processors. The setting module 13 sets the setting data to the first and second function descriptions.
As shown in
As shown in
Here, in the second function description, the connectable range is classified into four patterns from first to fourth patterns. That is, the connectable range setting description is set by a combination of the first to fourth patterns.
As shown in the expression (1), the description “ifdef D_CONNECTION_DISTANCE0” as the first pattern defines a specification connecting the inputs A and B to the own output Z of each data processor shown in
As shown in the expressions (2) to (4), the description “′ifdef D_CONNECTION_DISTANCE1” as the second pattern defines a specification connecting the inputs A and B to the outputs Z of data processors surrounding each data processor. With respect to the data processor D11 shown in
As shown in the expressions (5) to (9), the description “′ifdef D_CONNECTION_DISTANCE2” as the third pattern defines a specification connecting the inputs A and B to the outputs Z of data processors surrounding data processors selected by the second pattern. With respect to the data processor D11 shown in
As shown in the expressions (10) to (16), the description “′ifdef D_CONNECTION_DISTANCE3” as the third pattern defines a specification connecting the inputs A and B to the outputs Z of data processors surrounding data processors selected by the third pattern. With respect to the data processor D11 shown in
When the first pattern, the second pattern, and the fourth pattern are set as the connectable range, the number of selectors in each of connection selectors S11 to S44 is greatly decreased, as shown in
The second acquisition module 12 shown in
As shown in
The switch circuit 61 transmits input data to one of the following in accordance with the configuration information: the AND circuit 62a, the OR circuit 62b, the EOR62c, and the inverter 62d. The operation selector 63 selects operation result of the AND circuit 62a, the OR circuit 62b, the EOR circuit 62c, and the inverter 62d in accordance with the configuration information. The F/F 64 stores output data of the operation selector 63 in synchronization with a clock CLK. The output selector 65 selects either the F/F 64 or the operation selector 63 in accordance with the configuration information.
The HDL description of the first function description for designing the data processor D11 shown in
The expression (17) defines the inverter 62d shown in
The internal circuit setting description selects required logic circuits from the AND circuit 62a, the OR circuit 62b, the EOR circuit 62c, and the inverter 62d. Logic circuits except the AND circuit 62a, the OR circuit 62b, the EOR circuit 62c, and the inverter 62d are added by the expression (21). For example a NAND circuit or a NOR circuit is added by the internal circuit setting description. The bit width setting description sets each bit width of the inputs A and B and the configuration information supplied by the configuration memory 66 to the switch circuit 61, the operation selector 63, and the output selector 65.
The first acquisition module 11 shown in
The logic synthesis module 14 generates a net list, by executing a logic synthesis to first to fourth function descriptions to which the setting data has been set. The analyzer 17 analyzes the generated net list. Specifically, the analyzer 17 estimates the operational speed and the circuit scale of the layout after executing placement and routing processing, based on the generated net list. Then, the analyzer 17 compares the estimation result with the specification, and determines whether the specification is satisfied.
The layout generator 15 includes a placement module 15a configured to execute the placement processing to the generated net list, and a routing module 15b configured to execute the routing processing.
The data storage 2 includes a library storage 21, a setting data storage 22, a function description storage 23, a net list storage 24, a layout data storage 25, and a specification information storage 26. The library storage 21 stores the first to fourth function descriptions. The setting data storage 22 stores the setting data. The function description storage 23 stores the first to fourth function descriptions to which the setting data is set. The net list storage 24 stores the net list. The layout data storage 25 stores the layout data. The specification information storage 26 stores the specification information.
It should be noted that the CPU 1 includes a database manager and an input/output manager which are not shown in the drawing. Moreover, when an input to or an output from the data storage 3 is required, a search for the storage location of a necessary file is conducted by use of the database manager and reading and writing of the file is thereby performed. On the other hand, when an input to or an output from the CPU 1 is required, a file is inputted from the input unit 3 or a file is outputted to the output unit 4, the auxiliary memory 6 or the like by use of the input/output manager. Here, the data storage 2 may be included with the auxiliary memory 6 when appropriate.
The input unit 3 may be a keyboard, a mouse or an authentication unit, such as an optical character reader (OCR), a graphic input unit such as an image scanner, and a special input unit such as a voice recognition device. The output unit 4 may be a display unit such as a liquid crystal display or a cathode-ray tube (CRT) display, a printer such as an ink-jet printer or a laser printer, and the like. The input/output manager (an input/output interface, not illustrated) is provided as an interface for connecting the input unit 3, the output unit 4, the auxiliary memory 6, a reader for a memory unit such as a compact disk-read only memory (CD-ROM), a magneto-optical (MO) disk or a flexible disk, or the like to CPU 1. From a data flow viewpoint, the input/output controller is the interface for the input unit 3, the output unit 4, the auxiliary memory 6 or the reader for the external memory unit with the main memory 5. The main memory 5 includes a read only memory (ROM) and a random access memory (RAM). The ROM works as a program memory unit or the like which stores a program to be executed by the CPU 1. The RAM temporarily stores the program for the CPU 1 and data which are used during execution of the program, and also works as a temporary data memory used as a work area.
Next, a method for automatically designing semiconductor integrated circuits according to the embodiment of the present invention will be described referring to a flowchart shown in
In step S10, the first acquisition module 11 shown in
In step S11, the second acquisition module 12 acquires setting data, i.e., the connectable range setting description, the internal circuit setting description, and the bit width setting description from the setting data storage 22. The step S11 may be executed before the step 10.
In step S12, the second acquisition module 12 sets the setting data acquired in the step 11 to the library acquired in the step S10. The first to fourth function descriptions to which the setting data is set are stored in the function description storage 23.
In step S13, the logic synthesis module 14 generates a net list by executing a logic synthesis to first to fourth function descriptions to which the setting data has been set. The generated net list is stored in the net list storage 24.
In step S14, analyzes the net list generated in step 13. The analyzer 17 acquires the specification information from the specification information storage 26, and determines whether the specification is satisfied. When it is determined that the specification is satisfied, the procedure goes to step S16. When it is determined that the specification is not satisfied, the procedure returns to step S11. In this case, the second acquisition module 12 acquires setting data different from the last acquired setting data, from the setting data storage 22.
In step S16, the placement module 15a executes the placement process to the analyzed net list. Specifically, the data processors D11 to D44, the connection selectors S11 to S44, and the I/O circuits 51a to 51l shown in
In step S17, the routing module 15b executes a routing process to the data processors D11 to D44, the connection selectors S11 to S44, and the I/O circuits 51a to 51l placed on the virtual chip. As a result, the layout data is generated, and the generated layout is stored in the layout data storage 25.
As described above, according to the embodiment of the present invention, it is possible to control the number of selectors in each connection selector when the setting module 13 sets the connectable range setting description to the second function description. Moreover, it is possible to change the arrangement of the connection selectors and the data processors, in accordance with the use and the required performance. Therefore, it is possible to reduce the circuit scale of entire reconfigurable processor, and to improve the operational speed and the power consumption.
(Modification)
As a modification of the embodiment, the analyzer 17 of
Various modifications will become possible for those skilled in the art after receiving the teachings of the present disclosure without departing from the scope thereof.
In the aforementioned embodiment, an example in which the automatic design apparatus automatically designs the data processors D11 to D44, the connection selectors S11 to S44, and I/O circuits 51a to 51l is disclosed. However, the automatic design apparatus may automatically design peripheral circuits of the reconfigurable processor, such as a micro processing unit or a cache memory.
The constitution that data processors are arranged in the form of a matrix has been explained. However, data processors may be arranged in the form of a hypercube, a straight line, or a tree. Furthermore, the automatic design apparatus according to the embodiment may be applied to various programmable circuits, such as a FPGA, without limiting to the reconfigurable processor.
In the embodiment, the connectable range capable of connecting among the data processors is classified into four patterns. However, when each data processor and each connection selector are independently defined, it is possible to increase the variation of the connectable range.
The automatic design apparatus according to the embodiment may acquire data, such as the first to fourth function descriptions, the setting data, and the specification information, via a network.
Number | Date | Country | Kind |
---|---|---|---|
2004-364960 | Dec 2004 | JP | national |