US20110126164A1 - Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus - Google Patents
Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus Download PDFInfo
- Publication number
- US20110126164A1 US20110126164A1 US13/020,409 US201113020409A US2011126164A1 US 20110126164 A1 US20110126164 A1 US 20110126164A1 US 201113020409 A US201113020409 A US 201113020409A US 2011126164 A1 US2011126164 A1 US 2011126164A1
- Authority
- US
- United States
- Prior art keywords
- circuit
- reconfigurable
- register
- cores
- semiconductor integrated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/17736—Structural details of routing resources
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
-
- H—ELECTRICITY
- H01—ELECTRIC ELEMENTS
- H01L—SEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
- H01L21/00—Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
- H01L21/70—Manufacture or treatment of devices consisting of a plurality of solid state components formed in or on a common substrate or of parts thereof; Manufacture of integrated circuit devices or of parts thereof
- H01L21/77—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
- H01L21/78—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices
- H01L21/82—Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate with subsequent division of the substrate into plural individual devices to produce devices, e.g. integrated circuits, each consisting of a plurality of components
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03K—PULSE TECHNIQUE
- H03K19/00—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
- H03K19/02—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
- H03K19/173—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
- H03K19/177—Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
- H03K19/1778—Structural details for adapting physical parameters
- H03K19/17796—Structural details for adapting physical parameters for physical disposition of blocks
Definitions
- the present invention relates to a semiconductor integrated circuit, a program transformation apparatus, and a mapping apparatus, and in particular, to a semiconductor integrated circuit having a plurality of reconfigurable cores.
- FIG. 1 shows an overall configuration of a conventional reconfigurable logic semiconductor integrated circuit.
- a conventional reconfigurable logic semiconductor integrated circuit 500 shown in FIG. 1 includes a plurality of logic elements (LE) 501 arranged in a matrix.
- the logic elements 501 are composed of a look-up table (LUT). Rewriting the LUT changes relation of output to input of the logic elements 501 .
- the logic elements 501 are interconnected by programmable wiring that is not shown.
- the programmable wiring programmably determines output from which logic element 501 is inputted to which logic element 501 . Changing of relation of output to input of the logic elements 501 and changing of connections between the logic elements 501 provides the semiconductor integrated circuit 500 with a desired circuit function.
- connection flexibility is increased most when all the logic elements are respectively.
- FIG. 2 shows a procedure of mapping in a conventional reconfigurable logic semiconductor integrated circuit 500 .
- the mapping shown in FIG. 2 is executed using a synthesis tool and a place and route (P & R) tool. These tools are specialized for each of architectures of the reconfigurable logic semiconductor integrated circuits 500 .
- a user describes a circuit function to be achieved in a hardware description language such as HDL or a high-level language such as the C language (S 101 ).
- the synthesis tool synthesizes logic on the described circuit function (S 102 ). Specifically, the synthesis tool divides the described circuit function into functional units each of which can be assigned to each of the logic element 501 . The synthesis tool then determines connections between the divided functional units.
- the P & R tool places the divided functional units on the logic element 501 in an actual circuit (S 103 ). A function (relation of output to input) of each logic element 501 is thus determined.
- the P & R tool routes the logic elements 501 using the programmable wiring so that the connections determined by the logic synthesis are achieved (S 104 ).
- the placing and routing above are repeated until predetermined constraints on speed (timing) and a circuit region (area) are fulfilled.
- the mapping ends when the constraints are fulfilled.
- the logic synthesis may be performed again when the predetermined constraints are not fulfilled.
- Patent Reference 2 discloses a method for constructing a large-scale reconfigurable logic semiconductor integrated circuit through less design processes by interconnecting two FPGAs on a mask layout.
- Patent Reference 1 Specification of U.S. Pat. No. 5,594,363
- Patent Reference 2 Specification of U.S. Pat. No. 6,335,635
- the reconfigurable logic semiconductor integrated circuit disclosed in Patent Reference 2 is excellent in scalability and relatively easy to be increased in scale because it is an aggregation of basic units.
- mapping a large-scale circuit function on a large-scale reconfigurable logic semiconductor integrated circuit increases combinations of functional units into which the circuit function to be achieved is divided into. Furthermore, it increases combinations of the functional units and logic elements to which the functional units are assigned respectively. Furthermore, it increases combinations of the logic elements to be interconnected using programmable wiring. This will lead to steep increase in combinations for mapping as the scale of the circuit become larger. Accordingly, mapping may not converge when an attempt is made to achieve the circuit function in a reconfigurable logic semiconductor integrated circuit as large in scale as possible using a conventional synthesis tool and a P & R tool. However, there is not a synthesis tool or a P & R tool useful enough to solve these problems.
- the present invention conceived to address the problems, has an object of providing a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped.
- the present invention has another object of providing a layout of semiconductor integrated circuit that can be easily designed in a small area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
- the semiconductor integrated circuit includes: a plurality of reconfigurable cores arranged separately from one another, the plurality of reconfigurable cores each operating synchronously with a clock signal and having a logic reconfiguration function; and a first group of register circuits formed between a first reconfigurable core and a second reconfigurable core included in the plurality of reconfigurable cores, the first group of register circuits configured to temporarily hold output from the first reconfigurable core and transfer the output to the second reconfigurable core, wherein the plurality of reconfigurable cores each includes: a plurality of logic elements arranged in a matrix and each configured to implement predetermined logic; and programmable wiring interconnecting the plurality of logic elements.
- This structure allows mapping of a circuit function on reconfigurable cores that are separate from one another; thus, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- the present invention will provide a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped.
- the first group of register circuits may include: a first register circuit configured to temporarily hold output from the first reconfigurable core; and a second register circuit configured to hold data outputted from the first register circuit and output the data to the second reconfigurable core.
- This structure will ease a timing constraint because of delay due to the line length.
- first register circuit and the second register circuit may receive the same clock signal as a clock signal provided for the reconfigurable core that receives the data held in the second register circuit.
- This structure allows the second register circuit to hold the data securely even when the reconfigurable cores are operated asynchronously. As a result, metastability (a state where setup constraint or hold constraint is not satisfied) will be avoided.
- the reconfigurable core that outputs data to the first group of register circuits and the reconfigurable core that receives the data from the first group of register circuits may receive different clock signals.
- This structure prevents metastability from occurring when the reconfigurable cores are operated asynchronously.
- the plurality of reconfigurable cores may include a third reconfigurable core and a fourth reconfigurable core each having a rectangular shape defined by a first side, a second side opposite to the first side, a third side perpendicular to the first side, and a fourth side opposite to the third side, the first side configured to receive configuration data for reconfiguring logic of the reconfigurable core, and the third and fourth reconfigurable cores arranged separately from each other with the first sides of the third and fourth reconfigurable cores facing each other.
- This structure provides the configuration data for the third and the fourth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily.
- this configuration shortens lengths of lines from the storage circuits to the third and the fourth reconfigurable cores.
- functions of the reconfigurable cores will be dynamically reconfigured in a short period of time. Accordingly, the present invention will provide a semiconductor integrated circuit having a layout for easier designing in a smaller area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
- the semiconductor integrated circuit may further include a first storage circuit formed between the third and fourth reconfigurable cores, the first storage circuit configured to store configuration data for reconfiguring logic of the third and fourth reconfigurable cores.
- This structure will provides the configuration data stored in the first storage circuit for the third and the fourth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily. Additionally, this configuration shortens lengths of lines from the storage circuits to the third and the fourth reconfigurable cores. As a result, functions of the reconfigurable cores will be dynamically reconfigured in a short period of time.
- the plurality of reconfigurable cores may further include a fifth reconfigurable core and a sixth reconfigurable core each having a rectangular shape defined by the first side, the second side opposite to the first side, the third side perpendicular to the first side, and the fourth side opposite to the third side, the fifth and sixth reconfigurable cores arranged separately from each other with the first sides of the fifth and sixth reconfigurable cores facing each other, the third and fifth reconfigurable cores arranged separately from each other with the third sides of the third and fifth reconfigurable cores facing each other, and the fourth and sixth reconfigurable cores arranged separately from each other with the third sides of the fourth and sixth reconfigurable cores facing each other.
- each of the reconfigurable cores allows each of the reconfigurable cores to have signal input and output terminals for signals for the same purposes facing each other between the reconfigurable cores when the four reconfigurable cores are installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit. This makes chip designing easier and shortens lengths of lines between the reconfigurable cores.
- the semiconductor integrated circuit may further include a second storage circuit formed between the fifth and sixth reconfigurable cores, the second storage circuit configured to store configuration data for reconfiguring logic of the fifth and sixth reconfigurable cores.
- This structure provides the configuration data stored in the second storage circuit for the fifth and the sixth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily.
- this configuration shortens lengths of lines from the second storage circuit to the fifth and the sixth reconfigurable cores. As a result, functions of the reconfigurable cores will be dynamically reconfigured in a short period of time.
- the semiconductor integrated circuit may further include a clock signal stopping circuit that stops providing a clock signal for the first group of register circuits.
- This structure allows mapping of a circuit function on the reconfigurable cores, handling them as circuits separate from one another, even when data is bi-directionally transmitted between the reconfigurable cores. Accordingly, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- the first group of register circuits may include: a second group of register circuits configured to temporarily hold output from the first reconfigurable core and to transfer the output to the second reconfigurable core; and a third group of register circuits configured to temporarily hold output from the second reconfigurable core and to transfer the output to the first reconfigurable core.
- This structure allows mapping of a circuit function on the reconfigurable cores, handling all the reconfigurable cores as circuits separate from one another
- the first group of register circuits may be disposed in each gap between side-by-side reconfigurable cores included in the plurality of reconfigurable cores, and be configured to temporarily hold output from one member of a pair of the side-by-side reconfigurable cores and to transfer the output to the other member of the pair of the side-by-side reconfigurable cores.
- This structure allows stopping providing clock signals for the unused first group of register circuits and reduces excess power consumption for the semiconductor integrated circuit according to the present invention.
- all of the plurality of reconfigurable cores may receive the same clock signal.
- This structure simplifies a structure of the semiconductor integrated circuit.
- the first group of register circuits may hold a plurality of sets of multi-bit data.
- This structure allows the semiconductor integrated circuit according to the present invention to transmit and receive a plurality of items of data between the reconfigurable cores.
- each of the logic elements may have an LUT.
- This structure allows changing relation of output to input of the logic elements by rewriting the LUT.
- each of the logic elements may have at least one arithmetic logic unit (ALU).
- ALU arithmetic logic unit
- This structure provides a reconfigurable core that is suitable for signal processing operation that is usually composed of repetitive simple calculations of image encoding and decoding or cryptographic processing.
- the semiconductor integrated circuit may further include a central processing unit (CPU), wherein the plurality of reconfigurable cores, the first group of register circuits, and the CPU are installed on a single semiconductor substrate.
- CPU central processing unit
- This structure allows a system on chip (SOC) including the reconfigurable logic semiconductor integrated circuit with the CPU to execute a variety of processes without special hardware.
- SOC system on chip
- a mapping apparatus that maps, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit having: a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function; and a first group of register circuits formed between at least two reconfigurable cores included in the plurality of reconfigurable cores and temporarily holding output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores
- the mapping apparatus includes: a dividing unit configured to divide the circuit function into a plurality of circuit function blocks; an eliminating unit configured to eliminate a register from between the plurality of circuit function blocks; a synthesis unit configured to execute logic synthesis on each of the plurality of circuit function blocks between which the register has been eliminated from; and a placing and routing unit configured to place and route, on each of the reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
- mapping apparatus allows the mapping apparatus according to the present invention to exclude a register that corresponds to the first group of registers included in the circuit description from being mapped.
- the mapping apparatus according to the present invention executes mapping, handling each of the reconfigurable cores as a separate circuit. Accordingly, the mapping apparatus according to the invention will have the mapping converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- a program transformation apparatus that transforms a circuit description in which a circuit function of a circuit composed of a plurality of modules is described, the program transformation apparatus includes: a calculation unit configured to calculate, according to the circuit description, a constraint of an input signal and an output signal of the circuit; a generating unit configured to generate a plurality of patterns in which a register is or is not inserted between the plurality of modules; an extracting unit configured to extract, out of the generated plurality of patterns, at least one pattern that fulfills the constraint; and a selecting unit configured to select one of the at least one extracted patterns and output the selected pattern as a transformed circuit description.
- This structure allows the program transformation apparatus according to the present invention to insert registers corresponding to the first group of register circuits into a circuit description.
- the program transformation apparatus according to the present invention converts a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules.
- the program transformation may further include a feedback extracting unit configured to extract, out of the plurality of modules, a plurality of modules that forms a feedback system, wherein the generating unit, handling the plurality of modules extracted by the feedback extracting unit as a single module, is configured to generate a plurality of patterns in which a register is or is not inserted between the modules.
- a feedback extracting unit configured to extract, out of the plurality of modules, a plurality of modules that forms a feedback system, wherein the generating unit, handling the plurality of modules extracted by the feedback extracting unit as a single module, is configured to generate a plurality of patterns in which a register is or is not inserted between the modules.
- This structure allows the program transformation apparatus according to the present invention avoid inserting a register between modules that form a feedback system. This reduces workload of the program transformation apparatus.
- mapping apparatus executes mapping, handling each of the reconfigurable cores as a separate circuit. Accordingly, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- a program transformation method is to be executed in a program transformation apparatus that transforms a circuit description in which a circuit function of a circuit composed of a plurality of modules is described, the program transformation method including: calculating, according to the circuit description, a constraint of an input signal and an output signal of the circuit; generating a plurality of patterns in which a register is or is not inserted between the plurality of modules; extracting, out of the generated plurality of patterns, at least one pattern that fulfills the constraint; and selecting one of the at least one extracted patterns and outputting the selected pattern as a transformed circuit description.
- This method inserts registers corresponding to the first group of register circuits into a circuit description.
- the program transformation method according to the present invention converts a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules.
- the present invention may be implemented not only as such a semiconductor integrated circuit, a mapping apparatus, a mapping method thereof, a program transformation apparatus, or a program transformation method thereof, but also as a program that causes a computer to execute characteristic steps included in the mapping method or the program transformation method. It is also noted that such a program may be, not to mention, distributed via storage media such as a CD-ROM or a transmission media such as the Internet.
- the present invention provides a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped.
- the present invention also provides a layout of semiconductor integrated circuit that can be easily designed in a small area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
- FIG. 1 shows a configuration of a conventional reconfigurable logic semiconductor integrated circuit.
- FIG. 2 shows a procedure of mapping in a conventional reconfigurable logic semiconductor integrated circuit.
- FIG. 3 shows a configuration of a semiconductor integrated circuit according to the first embodiment of the present invention.
- FIG. 4 shows a structure of a reconfigurable logic semiconductor integrated circuit according to the first embodiment of the present invention.
- FIG. 5 shows a structure of reconfigurable cores according to the first embodiment of the present invention.
- FIG. 6 shows a surrounding structure of a logic element according to the first embodiment of the present invention.
- FIG. 7 shows a structure of a logic element in detail according to the first embodiment of the present invention.
- FIG. 8 shows a configuration of a mapping apparatus according to the first embodiment of the present invention.
- FIG. 9 is a flowchart of mapping of a circuit function according to the first embodiment of the present invention.
- FIG. 10 illustrates assignment to each of the reconfigurable cores in mapping of circuit functions according to the first embodiment of the present invention.
- FIG. 11 is a flowchart of mapping of a circuit function on one reconfigurable core in the mapping of the circuit function according to the first embodiment of the present invention.
- FIG. 12 shows a structure of a variation of the semiconductor integrated circuit according to the first embodiment.
- FIG. 13 shows a structure of a semiconductor integrated circuit according to the second embodiment of the present invention.
- FIG. 14 is a flowchart that shows a process executed by a program transformation apparatus according to the third embodiment of the present invention.
- FIG. 15 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention.
- FIG. 16 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention.
- FIG. 17 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention.
- FIG. 18 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention.
- Hardware circuit 100 150 , 200 , 500
- Semiconductor integrated circuits (FPGA) 101 101 , 101 A, 101 B, 101 C, 101 D Reconfigurable cores 102 Register circuit
- a semiconductor integrated circuit according to the first embodiment of the present invention has two register circuits in series in each of gaps between a plurality of reconfigurable cores.
- Such a semiconductor integrated circuit allows mapping of a circuit function on the reconfigurable cores, handling them as circuits separate from one another. It is thus possible to easily map a large-scale circuit function even on a reconfigurable logic semiconductor integrated circuit.
- FIG. 3 shows a configuration of a semiconductor device that has a reconfigurable logic semiconductor integrated circuit according to the first embodiment of the present invention.
- the semiconductor device 1 shown in FIG. 3 has a CPU 10 , random access memory (RAM) 11 , a direct memory access (DMA) 12 , a hardware circuit 13 , and an FPGA 100 .
- RAM random access memory
- DMA direct memory access
- the CPU 10 performs an entire control of the semiconductor device 1 .
- the RAM 11 is a readable and writable storage unit.
- the DMA 12 transfers data between the FPGA 100 and the RAM 11 and between the hardware circuit 13 and the RAM 11 .
- the hardware circuit 13 is a circuit composed of special hardware to achieve a predetermined function.
- the FPGA 100 is a reconfigurable logic semiconductor integrated circuit that exemplifies the semiconductor circuit according the present invention.
- the CPU 10 , the RAM 11 , the DMA 12 , the hardware circuit 13 , and the FPGA 100 are installed on a single semiconductor substrate.
- the semiconductor integrated circuit (FPGA) 100 according to the first embodiment of the present invention is configured as a circuit block in a what is called SOC.
- FIG. 4 shows a structure of a reconfigurable logic semiconductor integrated circuit 100 according to the first embodiment of the present invention.
- the semiconductor integrated circuit 100 shown in FIG. 4 is a reconfigurable logic semiconductor integrated circuit.
- the semiconductor integrated circuit 100 has four reconfigurable cores 101 A, 101 B, 101 C, and 101 D, a plurality of register circuits 102 , and two memories 103 A and 103 B.
- the reconfigurable cores 101 A, 101 B, 101 C, and 101 D are circuits each of which has a logic reconfiguration function.
- the reconfigurable cores 101 A, 101 B, 101 C, and 101 D are referred to as reconfigurable cores 101 when they are mentioned with no specific distinction.
- the reconfigurable cores 101 are circuits that are capable of reconfiguring the logic thereof by changing connections therein according to configuration data inputted from outside the cores. Some sets of such configuration data may be preliminarily stored inside the reconfigurable cores 101 .
- Each of the reconfigurable cores 101 is rectangular with four sides of north (N), south (S), east (E), and west (W).
- the reconfigurable cores 101 are not symmetric with respect to these sides. Inner wiring thereof is structured differently between in an east-west direction and in a north-south direction.
- the configuration data to reconfigure the logic of the reconfigurable cores 101 is inputted from a direction of the S.
- Each of the reconfigurable cores 101 is handled as a hard macro in chip designing so that the multiple cores can be easily installed on a single chip.
- the reconfigurable cores 101 operate synchronously with clock signals.
- the reconfigurable cores 101 are provided with clock signals CLKA, CLKB, CLKC, and CLKD, respectively.
- FIG. 5 shows a structure of the reconfigurable cores 101 ( 101 A, 101 B, 101 C, and 101 D).
- Each of the reconfigurable cores 101 has a plurality of logic elements (LE) 201 , a plurality of switch boxes (SB) 202 , a plurality of groups of circuit boxes (CB) 203 , IO units 204 N, 204 S, 204 E, and 204 W, and a group of lines stretching in rows and columns.
- the logic elements 201 are arranged in a matrix and implement predetermined logic respectively.
- the logic elements 201 are functional elements that allow for changing functions thereof (the relation of output to input) according to the configuration data.
- the switch boxes 202 determine interconnections of the lines according to the configuration data.
- the groups of circuit boxes 203 determine connections of inputs and outputs of the logic elements 201 to the lines according to the configuration data.
- connection of an output terminal of which logic element 201 to an input terminal of which logic element 201 is determined by controlling relation of connections in the switch boxes 202 and the groups of the circuit boxes 203 .
- the switch boxes 202 and the groups of the circuit boxes 203 are collectively referred to as programmable wiring.
- the reconfigurable core 101 is provided with a clock-signal line therein in addition to the programmable wiring.
- the IO units 204 N, 204 S, 204 E, and 204 W are input and output circuits disposed on the sides to the directions of north, south, east, and west of the reconfigurable core 101 , respectively.
- the IO unit 204 N is disposed on the N side of the reconfigurable core 101 .
- the IO unit 204 N has input and output terminals for an application data bus and control signals.
- the IO unit 204 E is disposed on the E side of the reconfigurable core 101 .
- the IO unit 204 E has input and output terminals for an application data bus.
- the IO unit 204 S is disposed on the S side of the reconfigurable core 101 .
- the IO unit 204 S has input and output terminals for an application data bus and control signals.
- the IO unit 204 S further has input and output terminals for configuration data.
- the IO unit 204 W is disposed on the W side of the reconfigurable core 101 .
- the IO unit 204 W has input and output terminals for control signals.
- the input and output terminals for the application data buses are used for input and output of a calculation result to and from other reconfigurable cores 101 , the CPU 10 , the DMA 12 , and the hardware circuit 13 .
- the input and output terminals for control signals are used for input and output of a control signal to and from external hardware such as the CPU 10 , the DMA 12 , and the hardware circuit 13 .
- the input and output terminals for the configuration data are used for input of the configuration data from the memories 103 A and 103 B.
- FIG. 6 illustrates the inside of the reconfigurable cores 101 in further detail. Shown in FIG. 6 is a structure where one logic element 201 is surrounded with the switch boxes 202 and the groups of the circuit boxes 203 .
- the logic element 201 is a functional element with four input terminals on the west side and two output terminals on the east side.
- the groups of the circuit boxes 203 programmably determine connections of the input and output terminals of the logic element stretching in the east-west direction to the lines stretching in the north-south direction.
- the switch boxes 202 programmably connect the lines stretching in the east-west direction and the lines stretching in the north-south direction.
- the output terminals of the logic element 201 connected to the lines in the north-south direction may be connected to the lines in the east-west direction via the group of the circuit boxes.
- the logic element 201 is provided with a clock signal through a line different from the programmable wiring.
- FIG. 7 shows a structure of the logic element 201 in detail.
- the logic element 201 has a look-up table (LUT) 210 , a plurality of programmable multiplexers 211 , and a flip-flop 212 .
- the look-up table 210 is composed of small-size memories. The relation of outputs to inputs of the look-up table 210 is changed by rewriting content held in the memories. A signal selected by each of the plurality of programmable multiplexers 211 is determined according to the configuration data or an output from another logic element 201 .
- Each of the reconfigurable cores 101 has such a configuration where the plurality of logic elements 201 is arranged in a matrix as shown in FIGS. 5 to 7 that the density of the programmable wiring to interconnect the logic elements 201 is high in the reconfigurable core 101 .
- the wiring from the IO units for the application data buses, control signals, and configuration data is relatively less dense at a boundary between the reconfigurable core 101 and outside thereof.
- the reconfigurable cores 101 are separate from one another on a chip layout, and wiring structures are obviously different between inside and outside of the reconfigurable cores 101 .
- the memories 103 A and 103 B temporarily store the configuration data to be inputted in the reconfigurable cores 101 .
- the memories 103 A and 103 B are referred to as memory (or memories) 103 when they are mentioned with no specific distinction.
- the memory 103 A stores the configuration data for reconfiguring logic of the reconfigurable cores 101 A and 101 C.
- the memory 103 B stores the configuration data for reconfiguring logic of the reconfigurable cores 101 B and 101 D.
- the memory 103 A is disposed between the reconfigurable cores 101 A and 101 C.
- the memory 103 B is disposed between the reconfigurable cores 101 B and 101 D.
- the reconfigurable cores 101 A and 101 C are disposed with the S sides thereof facing each other.
- the reconfigurable cores 101 B and 101 D are disposed with the S sides thereof facing each other.
- This layout allows disposing the memories 103 collectively to make chip design easier because the configuration data is inputted only from the S sides. Furthermore, lengths of lines from the memories 103 to the reconfigurable cores 101 may be shortened. This enables dynamic reconfiguration of functions of the reconfigurable cores in a short period of time. It is noted that the memory 103 and the reconfigurable core 101 are interconnected using a multi-bit bus not shown in the figure.
- the reconfigurable cores 101 A and 101 B are disposed with the E sides thereof facing each other.
- the reconfigurable cores 101 C and 101 D are disposed with the E sides thereof facing each other.
- the E side of the reconfigurable core 101 is provided with IO units for an application data bus thereon.
- wiring delay has relatively little impact on signal lines for control signals.
- a line length of the application data bus between the reconfigurable cores 101 may be thus shortened by disposing the reconfigurable cores 101 with the E sides thereof facing each other. The impact of wiring delay in the application data bus may be reduced thereby.
- the reconfigurable logic semiconductor integrated circuit 100 has two register circuits 102 in series in each gap between the reconfigurable cores 101 side by side to each other in rows and columns.
- Each register circuit 102 is composed of a plurality of flip-flops and may hold some sets of multi-bit (for example, 16-bit) data.
- a pair of the two register circuits in series are formed in every gap between the side-by-side reconfigurable cores 101 .
- Each pair of the two register circuits 102 in series temporarily holds output from a reconfigurable core 101 that is a data source and transfers it to another reconfigurable core 101 that is a data destination.
- a first-stage register circuit 102 of the two serial register circuits 102 synchronously with the clock signal, holds data outputted from the reconfigurable core 101 that is the data source and outputs the data to a second-stage register circuit 102 .
- a second-stage register circuit 102 of the two serial register circuits 102 synchronously with the clock signal, holds the data outputted from the first-stage register circuit 102 and outputs the data to the reconfigurable core 101 that is the data destination.
- the gap between two side-by-side reconfigurable cores 101 has a pair of two register circuits 102 in series that temporarily holds output from a first reconfigurable core 101 and transfers it to a second reconfigurable core 101 , and a pair of two register circuits 102 in series that temporarily holds output from the second reconfigurable cores 101 and transfers it to the first reconfigurable core 101 .
- Each of the reconfigurable cores 101 transmits and receives data through the two register circuit in serial. This makes each of the reconfigurable cores 101 a separate circuit. Even when the reconfigurable logic semiconductor integrated circuit 100 is a large-scale circuit, each of the reconfigurable cores 101 is a separate circuit that is one-fourth of the reconfigurable logic semiconductor integrated circuit 100 . This will limit the combinations for mapping in each of the reconfigurable cores 101 even in the case of mapping of a large-scale circuit function. The circuit function is thus mapped rapidly. Mapping is described later in detail.
- the two register circuits 102 are formed in series in order to ease a timing constraint because of the delay due to the line length. Only with a single register circuit 102 , the timing constraint is severe in the case where, for example, the register circuit 102 may be required to latch, on a clock edge, data outputted from the farthest logic element 201 in the reconfigurable core 101 that is a data source, and on the next clock edge output the data to the farthest logic element 201 in the reconfigurable core 101 that is a data destination.
- This constraint is eased by forming two register circuits in series. For example, the first-stage register circuit 102 of the two register circuits in series formed nearer to the reconfigurable core 101 that is the data source, and the second-stage register circuit 102 nearer to the reconfigurable core 101 that is the data destination.
- clock signals to be inputted to the register circuits 102 and to be inputted to the reconfigurable core 101 that is the data destination is common.
- the register circuits 102 formed on the route through which data is transferred from the reconfigurable core 101 A to the reconfigurable core 101 C are provided with a clock signal CLKC as the reconfigurable core 101 C is provided with.
- CLKC clock signal
- mapping a circuit function on the reconfigurable logic semiconductor integrated circuit 100 according to the first embodiment of the present invention using a mapping apparatus The configuration data held in the memory 103 is generated through mapping.
- the keyboard 401 receives an operation by a designer.
- the display 402 shows the designer a process result.
- the CPU 403 performs an entire control of the mapping apparatus 400 by executing a program 406 stored in the ROM 404 .
- the ROM 404 is a read-only memory that stores the program 406 to be executed by the CPU 403 .
- the program 406 may be stored in a non-volatile memory or a hard disk (HD) not shown in the figures.
- the RAM 405 is a readable and writable memory to store working data to be used in the execution of the program 406 by the CPU 403 .
- the mapping by the mapping apparatus 400 may be achieved by a special hardware.
- FIG. 9 is a flowchart of mapping of the circuit function on the semiconductor integrated circuit 100 .
- the designer describes a circuit function to be mapped on the reconfigurable logic semiconductor integrated circuit 100 (S 201 ).
- the circuit function is described in a hardware description language such as HDL or a high-level language such as C language.
- the designer divides a large-scale circuit function into a plurality of process modules with two cycles of delay inserted between the process modules. This allows the process modules to have pairs of two serial register circuits inserted between the process modules.
- the mapping apparatus 400 divides the circuit function in the circuit description described by the designer into a plurality of circuit function blocks (S 202 ). Specifically, the mapping apparatus 400 integrates the process modules in the circuit description and redivides them into four blocks. The mapping apparatus assigns the divided blocks to the four reconfigurable cores 101 . The mapping apparatus 400 then excludes the pairs of two serial registers in the gaps between the four blocks from being mapped on the reconfigurable cores 101 in order to save the registers for assignment to the register circuit 102 .
- the process described below with reference to FIG. 10 is executed by the mapping apparatus 400 .
- the designer has divided a circuit description for a large-scale circuit into six process modules of modules 221 A to 221 F and entered them into the mapping apparatus 400 .
- the large-scale circuit receives data through the module 221 E and executes predetermined arithmetic process on the data to output a result of the arithmetic process from the module 221 D.
- the designer has described the circuit description (including two cycles of delay) so that pairs of two registers can be inserted in series between the modules. However, such registers are not inserted between the modules 221 A and 221 B because of a constraint in an algorism of the arithmetic process.
- the mapping apparatus 400 divides the circuit description into four blocks in consideration of scale and speed of the circuit of each process module. Furthermore, the mapping apparatus 400 assigns the divided blocks to the reconfigurable cores. For example, the mapping apparatus 400 assigns the modules 221 A and 221 B to the reconfigurable core 101 A, modules 221 C and 221 D to the reconfigurable core 101 B, the module 221 E to the reconfigurable core 101 C, and the module 221 F to the reconfigurable core 101 D.
- the mapping apparatus 400 assigns the register 222 A between the modules 221 A and 221 E to the register circuit 102 installed in the gap between the reconfigurable cores 101 A and 101 C.
- the mapping apparatus 400 assigns the register 222 B between the modules 221 B and 221 D to the register circuit 102 installed in the gap between the reconfigurable cores 101 A and 101 B.
- the mapping apparatus 400 assigns the register 222 D between the modules 221 C and 221 F to the register circuit 102 installed in the gap between the reconfigurable cores 101 B and 101 D.
- the mapping apparatus 400 assigns the register 222 E between the modules 221 E and 221 F to the register circuit 102 installed in the gap between the reconfigurable cores 101 C and 101 D.
- the mapping apparatus 400 excludes registers 222 A, 222 B, 222 D, and 222 F assigned to the register circuits 102 from being mapped.
- mapping apparatus 400 does not exclude the register 222 C installed between the modules 221 C and 221 D that are assigned to the single reconfigurable core 101 B from being mapped to the reconfigurable cores 101 .
- FIG. 11 is a flowchart that shows a flow of mapping of the circuit function on one reconfigurable core 101 in the step S 204 .
- the mapping apparatus 400 obtains the circuit description of the block into which the circuit function has been divided in the step S 202 and between which the register is eliminated from in the step S 203 (S 301 ).
- the mapping apparatus 400 obtains a constraint condition for mapping (S 302 ).
- the constraint condition may be about speed and area, and may be entered into the mapping apparatus 400 by the designer.
- the mapping apparatus 400 then executes logic synthesis of the circuit description obtained in the step S 301 (S 303 ). Specifically, the mapping apparatus 400 divides the circuit function described in the circuit description into functional units. Each of the functional units can be assigned to one of the logic elements 201 . The mapping apparatus 400 determines connections between the divided functional units. Subsequently, the mapping apparatus 400 places the divided functional units on the logic elements 201 in an actual circuit (S 304 ). A function (relation of output to input) of each logic element 201 is thus determined.
- mapping apparatus 400 routes the logic elements 201 using programmable wiring so that the connections determined by the logic synthesis are achieved (S 305 ).
- the placing on the logic elements 201 and routing the logic elements using the programmable wiring may be executed as a single process or separated processes.
- the mapping apparatus 400 judges whether or not the circuit resulting from the placing and routing fulfills the constraint condition obtained in the step S 302 (S 306 ).
- the constraint condition is fulfilled (Yes in S 306 )
- the synthesis of the block, placing, and routing is completed.
- the mapping apparatus subsequently judges whether or not the process from the steps S 304 to S 306 has been repeated a predetermined times (S 307 ).
- the mapping apparatus 400 executes the placing and routing process (S 304 and S 305 ) again.
- the mapping apparatus 400 repeats the placing and routing process (S 304 and S 305 ) until the constraint condition is fulfilled.
- the mapping apparatus 400 ends the process with an result that the mapping on the blocks is impossible.
- the process may be repeated from synthesis (S 303 ) through placing and routing (S 304 and S 305 ) when the constraint condition is not fulfilled (No in S 306 ).
- the mapping apparatus 400 may display an indication that the constraint condition cannot be fulfilled when such is the case even after repeating the process the predetermined times. Upon the indication, the designer will review the constraint condition. The mapping apparatus will then obtain a newly entered constraint condition (S 302 ) and executes the process of steps S 303 to S 306 under the new constraint condition.
- the mapping apparatus 400 maps one divided circuit function on each of the reconfigurable cores 101 , so that the process is converged in a short period of time in comparison with conventional mapping through which a large-scale circuit description is mapped on a large-scale reconfigurable core.
- the mapping apparatus 400 judges whether or not the constraint condition is fulfilled for all of the four reconfigurable cores 101 (S 205 ). When it is (Yes in S 205 ), the mapping of the circuit description for the large-scale circuit is completed.
- the mapping apparatus 400 judges whether or not the mapping process of the steps S 202 to S 204 has been repeated the predetermined times (S 206 ). When the process has not been repeated the predetermined times (No in S 206 ), the mapping apparatus 400 executes the process from the step S 202 again. When the process has been repeated the predetermined times (Yes in S 206 ), the mapping apparatus 400 judges that the circuit function described in the step S 201 cannot be mapped on the reconfigurable logic semiconductor integrated circuit 100 .
- the mapping apparatus 400 can handle each of the reconfigurable cores 101 as a separate circuit in execution of mapping. The mapping will be thus completed in a short period of time.
- the semiconductor integrated circuit 100 can operate as fast as a single large-scale reconfigurable logic semiconductor integrated circuit because the register circuits 102 are installed in the same chip as the reconfigurable cores 101 and driven by the same clock signal as provided for the reconfigurable cores 101 .
- register circuits 102 it is also possible to form three or more register circuits 102 in series.
- the reconfigurable cores 101 are provided with asynchronous clock signals
- at least two posterior, second- and third-stage register circuits 102 are preferably provided with the same clock signal as the reconfigurable core 101 that is a data destination for anti-metastability purpose.
- the timing constraint is severe with a single register circuit 102 .
- the timing constraint may be obeyed even with the single register circuit 102 when distance between the reconfigurable cores 101 is short and the reconfigurable cores 101 are of a small scale.
- the register circuit 102 is preferably disposed equally away from the reconfigurable core 101 that is a data source and the reconfigurable core 101 that is a data destination.
- each of the reconfigurable cores 101 are provided with different clock signals CLKA, CLKB, CLKC, and CLKD in the description above, these clock signals may be the same one in order to simplify a structure of the semiconductor integrated circuit. It is also possible that two or more of the plurality of reconfigurable cores are provided with the same clock signal.
- every gap between the side-by-side reconfigurable cores 101 has the two register circuits 102 in series, it is also possible that only one or more gaps between the side-by-side reconfigurable cores 101 have such a pair of the register circuits. It is also possible to form only the register circuits 102 for holding data transmitted from a first reconfigurable core 101 to a second reconfigurable core 101 of two side-by-side reconfigurable cores 101 , but not the register circuits 102 for holding data transmitted from the second reconfigurable core 101 to the first reconfigurable core 101 .
- the two register circuits 102 in series may be formed between two reconfigurable cores 101 that are not arranged side by side.
- the semiconductor integrated circuit 100 is described to be configured as a single circuit block on a what is called SOC, the semiconductor integrated circuit 100 per se may be also configured as a single-chip large scale integration (LSI).
- LSI single-chip large scale integration
- the reconfigurable cores 101 are necessarily used for achieving one circuit function. It is also possible to map one circuit function using some of the reconfigurable cores 101 . The rest of the reconfigurable cores may be mapped on with another circuit function.
- reconfigurable cores 101 A, 101 B, 101 C, and 101 D are described to have the same structure, they may have different structures.
- the number of logic elements 201 may be different among the reconfigurable cores 101 .
- Each of the reconfigurable cores 101 may be either of the dynamically reconfigurable core 101 that allows dynamic logic reconfiguration with power on, or a what is called FPGA that needs logic reconfiguration with power off.
- the configuration of the four IO units included in the reconfigurable cores 101 is not limited to that shown in FIG. 5 .
- the IO units may have any configuration as long as the configuration data is to be inputted from the S side.
- the semiconductor integrated circuit 100 is described to exemplarily have four of the reconfigurable cores 101 , the semiconductor integrated circuit 100 may have more than one reconfigurable cores.
- the semiconductor integrated circuit 100 may have two, three, or no less than five reconfigurable cores 101 .
- FIG. 12 shows a variation of the semiconductor integrated circuit 100 according to the first embodiment.
- the semiconductor integrated circuit 150 has a structure shown in FIG. 12 in which each of the reconfigurable cores 101 has one memory 103 .
- the semiconductor integrated circuit 150 shown in FIG. 12 has four memories of 103 A, 103 B, 103 C, and 103 D.
- the memory 103 A stores configuration is data to be inputted into the reconfigurable core 101 A.
- the memory 103 B stores configuration data to be inputted into the reconfigurable core 101 B.
- the memory 103 C stores configuration data to be inputted into the reconfigurable core 101 C.
- the memory 103 D stores configuration data to be inputted into the reconfigurable core 101 D. This structure allows parallel configuration for all the reconfigurable cores 101 and the configuration is completed in a short period of time.
- the semiconductor integrated circuit according to the second embodiment of the present invention has a function to stop providing the register circuits 102 and the reconfigurable cores 101 with the clock signals. This will reduce excess power consumption.
- FIG. 13 shows the structure of a semiconductor integrated circuit according to the second embodiment of the present invention.
- the semiconductor integrated circuit 200 shown in FIG. 13 has a plurality of first clock signal stopping circuits 104 and a plurality of second clock signal stopping circuit in addition to the structure of semiconductor integrated circuit 100 according to the first embodiment shown in FIG. 5 .
- Elements in common with FIG. 5 are denoted by the same reference numerals and thus detailed description thereof is omitted.
- the first clock signal stopping circuit 104 is formed corresponding to each of the plurality of the reconfigurable cores 101 .
- the first clock signal stopping circuit 104 controls whether or not a clock signal is provided for the corresponding reconfigurable core 101 .
- the first clock signal stopping circuit 104 stops providing the clock signal for the corresponding reconfigurable core 101 when the reconfigurable core 101 is not in use.
- the first clock signal stopping circuit 104 stops providing the clock signal for the register circuit 102 that is used for inputting the clock signal into the corresponding reconfigurable core 101 when the reconfigurable core 101 is not in use.
- the first clock signal stopping circuit 104 stops providing the clock signal for the corresponding reconfigurable core 101 when the reconfigurable core 101 is reconfigured to include no circuit.
- the second clock signal stopping circuit 105 is formed corresponding to each of the pairs of the two serial register circuits 102 .
- the second clock signal stopping circuit 105 controls whether or not a clock signal is provided for the corresponding register circuits 102 .
- the second clock signal stopping circuit 105 stops providing the clock signal the corresponding register circuits 102 when the register circuit 102 is not in use for signal transmission. For example, there may be no signal transmission between the reconfigurable cores 101 A and 101 B even while they are in operation. In such a case, the register circuits 102 between the reconfigurable cores 101 A and 101 B do not need to receive the clock signal. There may be no signal transmission from the reconfigurable core B to the reconfigurable core A even while there is in reverse direction. In this case, only providing the clock signals for the register circuits 102 inserted on the route of signal transmission from the reconfigurable core 101 B to the reconfigurable core 101 A is stopped.
- the semiconductor integrated circuit 200 thus stops providing the reconfigurable cores 101 not in use with clock signals. This will reduce excess power consumption.
- the semiconductor integrated circuit 200 also stops providing the register circuits 102 not in use with clock signals. This will reduce excess power consumption.
- the semiconductor integrated circuit 200 shown in FIG. 13 has the second clock signal stopping circuit 105 for each pair of the register circuits 102
- the semiconductor integrated circuit 200 may have the second clock signal stopping circuit 105 for at least any one pair of the register circuits 102 .
- the designer describes, in the circuit description, the process of inserting the two register circuits in series in the step S 201 shown in FIG. 10 .
- the third embodiment described is a program transformation apparatus that executes process of inserting the two register circuits in series in the circuit description.
- a function of program transformation apparatus according to the third embodiment of the present invention is achieved by a personal computer or the like that executes a program for it.
- the program transformation apparatus according to the third embodiment has the same configuration as shown in FIG. 8 .
- the function of the program transformation apparatus is achieved by the CPU 403 that executes the program 406 for it.
- the function of the program transformation apparatus according to the third embodiment may be achieved by special hardware.
- the program transformation apparatus transforms a circuit description similar to conventional ones into a status in which the circuit description can be mapped by the mapping apparatus 400 according to the first embodiment.
- the program transformation apparatus according to the third embodiment of the present invention selectively inserts the two register circuits in series between the process modules of the circuit description in which a single large-scale circuit function composed of the plurality of process modules is described.
- FIG. 14 is a flowchart that shows a process executed by a program transformation apparatus according to the third embodiment of the present invention.
- FIGS. 15 to 18 illustrate the process executed by the program transformation apparatus.
- the program transformation apparatus obtains the circuit description described by the designer.
- the circuit description is to be mapped on the reconfigurable logic semiconductor integrated circuit (S 401 ).
- the circuit description obtained by the program transformation apparatus is a circuit description in which the designer has described a circuit function as a plurality of process modules.
- the circuit function is described in a hardware description language such as HDL or a high-level language such as C language.
- the program transformation apparatus obtains the circuit description shown in FIG. 15 .
- the program transformation apparatus calculates relation (constraint) between input signals and output signals on the basis of the circuit description obtained in the step S 401 (S 402 ).
- the relation (constraint) is to be achieved when the circuit function composed of the plurality of the process modules is achieved in one circuit.
- the program transformation apparatus calculates, on the basis of a cycle number necessary for processing the process modules included in the circuit description, a cycle number from input of a signal into the whole circuit until when an effective output signal is obtained. For example, the program transformation apparatus calculates a constraint that a cycle number from input of an input signal IN 0 to obtainment of an output signal OUT 0 shown in FIG. 15 is five or less.
- the program transformation apparatus also calculates a constraint that a cycle number from input of an input signal IN 0 to obtainment of an output signal OUT 1 is three or less.
- the program transformation apparatus sets a virtual module (S 403 ). Specifically, the program transformation apparatus extracts a plurality of modules that forms a feedback system out of a plurality of modules, and sets the extracted modules as one virtual module. For example, a module 301 E feeds back output to a module 301 C as shown in FIG. 16 . The program transformation apparatus thus sets the module 301 C and the module 301 E as a virtual module 301 F. The program transformation apparatus also sets a module 301 A, 301 B, and 301 D that do not form a feedback system each as one module. In other words, the program transformation apparatus handles the modules 301 A, 301 B, and 301 D, and the virtual module 301 F each as one module in the process afterward.
- the program transformation apparatus generates a pattern where registers are inserted between the modules 301 A, 301 B, 301 D, and the virtual module 301 F, and a pattern where they are not inserted there (S 404 ).
- FIG. 17 exemplarily shows one of a plurality of patterns generated by the program transformation apparatus. This pattern has more registers to be inserted than any other patterns: registers 302 AB, 302 AD, 302 AF, 302 BD, and 302 BF between the modules 301 A, 301 B, 301 D, and the virtual module 301 F.
- the program transformation apparatus also generates a pattern where one or more of the registers 302 AB, 302 AD, 302 AF and 302 BD are inserted, and a pattern where none of them is inserted.
- the registers 302 AB, 302 AD, 302 AF and 302 BD are referred to as registers 302 when they are mentioned with no specific distinction.
- the program transformation apparatus For example, assuming the number of relationships where two modules transmit and receive a signal as N, the program transformation apparatus generates 2 N patterns. For the example shown in FIG. 17 , there are five relationships where two modules transmit and receive a signal. The program transformation apparatus thus generates 2 5 , that is, 32 patterns.
- Each of the registers 302 to be inserted is a pair of two registers in series, respectively.
- the program transformation apparatus then extracts a pattern that fulfills the constraint calculated in the step S 402 out of the plurality of patterns generated in the step S 404 .
- the program transformation apparatus judges whether or not each of the patterns generated in the step S 404 fulfills the constraint calculated in the step S 402 .
- the program transformation apparatus extracts a pattern shown in FIG. 18 when the constraint is not fulfilled with either of the registers 302 BD or 302 BF inserted. This pattern is extracted as the one that fulfills the constraint with registers 302 AB, 302 AD, and 302 AF inserted.
- the program transformation apparatus also extracts, as patterns that fulfills the constraint, a pattern where one or more of the registers 302 AB, 302 AD, and 302 AF are inserted, and a pattern where none of them is inserted.
- the program transformation apparatus selects one of the patterns extracted in the step S 405 (S 406 ). For example, the program transformation apparatus selects the pattern that has the most registers to be inserted among the extracted patterns. Specifically, the program transformation apparatus in the example shown in FIG. 18 selects the pattern where registers 302 AB, 302 AD, and 302 AF are inserted. The steps from the step S 202 shown in FIG. 9 are followed by the mapping apparatus 400 according to the selected pattern.
- the program transformation apparatus selects a pattern other than the one selected in the step S 406 from the patters extracted in the step S 405 when the constraint is not fulfilled or mapping is judged to be impossible in the process afterward.
- the steps from the step S 202 are followed by the mapping apparatus 400 according to the newly selected pattern.
- the program transformation apparatus according to the third embodiment of the present invention inserts registers corresponding to the register circuits 102 into a circuit description.
- the program transformation apparatus according to the third embodiment of the present invention is capable of converting a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules.
- the program transformation apparatus is capable of extracting only a pattern that fulfills the constraint from the plurality of patterns where registers are inserted.
- the program transformation apparatus does not insert a register between modules that form a feedback system. Inserting a register between the modules that form a feedback system will complicate the judgment on whether or not the constraint is fulfilled in the step S 405 and lead to increase in workload of the program transformation apparatus.
- the program transformation apparatus according to the third embodiment of the present invention does not insert a register between modules that form a feedback system, so that it can reduce the workload.
- the program transformation apparatus may obtain a large-scale circuit description and divide the obtained circuit description into a plurality of process modules.
- program transformation apparatus is described to calculate a constraint on the basis of a circuit description, the program transformation apparatus may also use a constraint inputted by a designer.
- program transformation apparatus is implemented as one of functions of the mapping apparatus 400 described in the first embodiment.
- the present invention is applicable to various electronic apparatus because of its capability of mapping a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
Abstract
A mapping apparatus maps, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit having a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function. A first group of register circuits are formed between at least two reconfigurable cores included in the plurality of reconfigurable cores and temporarily hold an output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores. The mapping apparatus includes a divider that divides the circuit function into a plurality of circuit function blocks, an eliminator that eliminates a register from between the plurality of circuit function blocks and a synthesis executer that executes logic synthesis on each of the plurality of circuit function blocks from between which the register has been eliminated. A placing and routing unit places and routes, on each of the reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
Description
- This is a divisional application of pending U.S. patent application Ser. No. 12/375,063, filed on Jan. 26, 2009, which is a U.S. National Stage of International Application No. PCT/JP2007/064261, filed on Jul. 19, 2007, which claims the benefit of Japanese Application No. 2006-204383, filed on Jul. 27, 2006, the contents of which are expressly incorporated by reference herein in their entireties. The International Application was not published under PCT Article 21(2) in English.
- The present invention relates to a semiconductor integrated circuit, a program transformation apparatus, and a mapping apparatus, and in particular, to a semiconductor integrated circuit having a plurality of reconfigurable cores.
- Conventionally, there have been semiconductor integrated circuits that have a logic reconfiguration function (hereinafter referred to as “reconfigurable logic semiconductor integrated circuits”) as typified by a field programmable gate array (FPGA).
-
FIG. 1 shows an overall configuration of a conventional reconfigurable logic semiconductor integrated circuit. A conventional reconfigurable logic semiconductorintegrated circuit 500 shown inFIG. 1 includes a plurality of logic elements (LE) 501 arranged in a matrix. In an FPGA, which is a reconfigurable logic semiconductor integrated circuit, thelogic elements 501 are composed of a look-up table (LUT). Rewriting the LUT changes relation of output to input of thelogic elements 501. Thelogic elements 501 are interconnected by programmable wiring that is not shown. The programmable wiring programmably determines output from whichlogic element 501 is inputted to whichlogic element 501. Changing of relation of output to input of thelogic elements 501 and changing of connections between thelogic elements 501 provides the semiconductorintegrated circuit 500 with a desired circuit function. - For the programmable wiring, connection flexibility is increased most when all the logic elements are respectively and
- directly interconnected. However, this requires enormous wiring resource, and thus is impractical. On the other hand, interconnecting the logic elements only on a one-to-one basis provides no flexibility. Various interconnection structures that balance wiring resource and flexibility for efficiency have been conceived. For example, a known technique using one of such structures is disclosed in
Patent Reference 1. - Hereinafter, a method for mapping a desired circuit function in the reconfigurable logic semiconductor integrated
circuit 500 shown inFIG. 1 is described with reference toFIG. 2 .FIG. 2 shows a procedure of mapping in a conventional reconfigurable logic semiconductor integratedcircuit 500. The mapping shown inFIG. 2 is executed using a synthesis tool and a place and route (P & R) tool. These tools are specialized for each of architectures of the reconfigurable logic semiconductor integratedcircuits 500. - First, a user describes a circuit function to be achieved in a hardware description language such as HDL or a high-level language such as the C language (S101). Next, the synthesis tool synthesizes logic on the described circuit function (S102). Specifically, the synthesis tool divides the described circuit function into functional units each of which can be assigned to each of the
logic element 501. The synthesis tool then determines connections between the divided functional units. - Subsequently, the P & R tool places the divided functional units on the
logic element 501 in an actual circuit (S103). A function (relation of output to input) of eachlogic element 501 is thus determined. - Following this, the P & R tool routes the
logic elements 501 using the programmable wiring so that the connections determined by the logic synthesis are achieved (S104). - The placing and routing above are repeated until predetermined constraints on speed (timing) and a circuit region (area) are fulfilled. The mapping ends when the constraints are fulfilled. The logic synthesis may be performed again when the predetermined constraints are not fulfilled.
-
Patent Reference 2 discloses a method for constructing a large-scale reconfigurable logic semiconductor integrated circuit through less design processes by interconnecting two FPGAs on a mask layout. - Patent Reference 1: Specification of U.S. Pat. No. 5,594,363
Patent Reference 2: Specification of U.S. Pat. No. 6,335,635 - Problems that Invention is to Solve
- In recent years, however, digital equipment such as digital TVs and mobile phones are becoming notably multifunctional, and processes in such digital equipment are becoming more complicated. In keeping with this trend, the scale of circuit functions to be achieved using reconfigurable logic semiconductor integrated circuits is increasing, and so is a need for mapping the large-scale circuit functions on reconfigurable logic semiconductor integrated circuits.
- The reconfigurable logic semiconductor integrated circuit disclosed in
Patent Reference 2 is excellent in scalability and relatively easy to be increased in scale because it is an aggregation of basic units. However, mapping a large-scale circuit function on a large-scale reconfigurable logic semiconductor integrated circuit increases combinations of functional units into which the circuit function to be achieved is divided into. Furthermore, it increases combinations of the functional units and logic elements to which the functional units are assigned respectively. Furthermore, it increases combinations of the logic elements to be interconnected using programmable wiring. This will lead to steep increase in combinations for mapping as the scale of the circuit become larger. Accordingly, mapping may not converge when an attempt is made to achieve the circuit function in a reconfigurable logic semiconductor integrated circuit as large in scale as possible using a conventional synthesis tool and a P & R tool. However, there is not a synthesis tool or a P & R tool useful enough to solve these problems. - The present invention, conceived to address the problems, has an object of providing a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped.
- The present invention has another object of providing a layout of semiconductor integrated circuit that can be easily designed in a small area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
- In order to achieve the above-mentioned object, the semiconductor integrated circuit according to the present invention includes: a plurality of reconfigurable cores arranged separately from one another, the plurality of reconfigurable cores each operating synchronously with a clock signal and having a logic reconfiguration function; and a first group of register circuits formed between a first reconfigurable core and a second reconfigurable core included in the plurality of reconfigurable cores, the first group of register circuits configured to temporarily hold output from the first reconfigurable core and transfer the output to the second reconfigurable core, wherein the plurality of reconfigurable cores each includes: a plurality of logic elements arranged in a matrix and each configured to implement predetermined logic; and programmable wiring interconnecting the plurality of logic elements.
- This structure allows mapping of a circuit function on reconfigurable cores that are separate from one another; thus, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit. As a result, the present invention will provide a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped.
- Furthermore, the first group of register circuits may include: a first register circuit configured to temporarily hold output from the first reconfigurable core; and a second register circuit configured to hold data outputted from the first register circuit and output the data to the second reconfigurable core.
- This structure will ease a timing constraint because of delay due to the line length.
- Furthermore, the first register circuit and the second register circuit may receive the same clock signal as a clock signal provided for the reconfigurable core that receives the data held in the second register circuit.
- This structure allows the second register circuit to hold the data securely even when the reconfigurable cores are operated asynchronously. As a result, metastability (a state where setup constraint or hold constraint is not satisfied) will be avoided.
- Furthermore, the reconfigurable core that outputs data to the first group of register circuits and the reconfigurable core that receives the data from the first group of register circuits may receive different clock signals.
- This structure prevents metastability from occurring when the reconfigurable cores are operated asynchronously.
- Furthermore, the plurality of reconfigurable cores may include a third reconfigurable core and a fourth reconfigurable core each having a rectangular shape defined by a first side, a second side opposite to the first side, a third side perpendicular to the first side, and a fourth side opposite to the third side, the first side configured to receive configuration data for reconfiguring logic of the reconfigurable core, and the third and fourth reconfigurable cores arranged separately from each other with the first sides of the third and fourth reconfigurable cores facing each other.
- This structure provides the configuration data for the third and the fourth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily. In addition, this configuration shortens lengths of lines from the storage circuits to the third and the fourth reconfigurable cores. As a result, functions of the reconfigurable cores will be dynamically reconfigured in a short period of time. Accordingly, the present invention will provide a semiconductor integrated circuit having a layout for easier designing in a smaller area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
- Furthermore, the semiconductor integrated circuit may further include a first storage circuit formed between the third and fourth reconfigurable cores, the first storage circuit configured to store configuration data for reconfiguring logic of the third and fourth reconfigurable cores.
- This structure will provides the configuration data stored in the first storage circuit for the third and the fourth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily. Additionally, this configuration shortens lengths of lines from the storage circuits to the third and the fourth reconfigurable cores. As a result, functions of the reconfigurable cores will be dynamically reconfigured in a short period of time.
- Furthermore, the plurality of reconfigurable cores may further include a fifth reconfigurable core and a sixth reconfigurable core each having a rectangular shape defined by the first side, the second side opposite to the first side, the third side perpendicular to the first side, and the fourth side opposite to the third side, the fifth and sixth reconfigurable cores arranged separately from each other with the first sides of the fifth and sixth reconfigurable cores facing each other, the third and fifth reconfigurable cores arranged separately from each other with the third sides of the third and fifth reconfigurable cores facing each other, and the fourth and sixth reconfigurable cores arranged separately from each other with the third sides of the fourth and sixth reconfigurable cores facing each other.
- This structure allows each of the reconfigurable cores to have signal input and output terminals for signals for the same purposes facing each other between the reconfigurable cores when the four reconfigurable cores are installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit. This makes chip designing easier and shortens lengths of lines between the reconfigurable cores.
- Furthermore, the semiconductor integrated circuit may further include a second storage circuit formed between the fifth and sixth reconfigurable cores, the second storage circuit configured to store configuration data for reconfiguring logic of the fifth and sixth reconfigurable cores.
- This structure provides the configuration data stored in the second storage circuit for the fifth and the sixth reconfigurable cores from the first sides thereof, so that storage circuits to store the configuration data can be disposed collectively and chips can be designed more easily. In addition, this configuration shortens lengths of lines from the second storage circuit to the fifth and the sixth reconfigurable cores. As a result, functions of the reconfigurable cores will be dynamically reconfigured in a short period of time.
- Furthermore, the semiconductor integrated circuit may further include a clock signal stopping circuit that stops providing a clock signal for the first group of register circuits.
- This structure allows mapping of a circuit function on the reconfigurable cores, handling them as circuits separate from one another, even when data is bi-directionally transmitted between the reconfigurable cores. Accordingly, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- Furthermore, the first group of register circuits may include: a second group of register circuits configured to temporarily hold output from the first reconfigurable core and to transfer the output to the second reconfigurable core; and a third group of register circuits configured to temporarily hold output from the second reconfigurable core and to transfer the output to the first reconfigurable core.
- This structure allows mapping of a circuit function on the reconfigurable cores, handling all the reconfigurable cores as circuits separate from one another
- Furthermore, the first group of register circuits may be disposed in each gap between side-by-side reconfigurable cores included in the plurality of reconfigurable cores, and be configured to temporarily hold output from one member of a pair of the side-by-side reconfigurable cores and to transfer the output to the other member of the pair of the side-by-side reconfigurable cores.
- This structure allows stopping providing clock signals for the unused first group of register circuits and reduces excess power consumption for the semiconductor integrated circuit according to the present invention.
- Furthermore, all of the plurality of reconfigurable cores may receive the same clock signal.
- This structure simplifies a structure of the semiconductor integrated circuit.
- Furthermore, the first group of register circuits may hold a plurality of sets of multi-bit data.
- This structure allows the semiconductor integrated circuit according to the present invention to transmit and receive a plurality of items of data between the reconfigurable cores.
- Furthermore, each of the logic elements may have an LUT.
- This structure allows changing relation of output to input of the logic elements by rewriting the LUT.
- Furthermore, each of the logic elements may have at least one arithmetic logic unit (ALU).
- This structure provides a reconfigurable core that is suitable for signal processing operation that is usually composed of repetitive simple calculations of image encoding and decoding or cryptographic processing.
- Furthermore, the semiconductor integrated circuit may further include a central processing unit (CPU), wherein the plurality of reconfigurable cores, the first group of register circuits, and the CPU are installed on a single semiconductor substrate.
- This structure allows a system on chip (SOC) including the reconfigurable logic semiconductor integrated circuit with the CPU to execute a variety of processes without special hardware.
- A mapping apparatus according to the present invention that maps, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit having: a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function; and a first group of register circuits formed between at least two reconfigurable cores included in the plurality of reconfigurable cores and temporarily holding output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores, the mapping apparatus includes: a dividing unit configured to divide the circuit function into a plurality of circuit function blocks; an eliminating unit configured to eliminate a register from between the plurality of circuit function blocks; a synthesis unit configured to execute logic synthesis on each of the plurality of circuit function blocks between which the register has been eliminated from; and a placing and routing unit configured to place and route, on each of the reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
- This structure allows the mapping apparatus according to the present invention to exclude a register that corresponds to the first group of registers included in the circuit description from being mapped. In addition, the mapping apparatus according to the present invention executes mapping, handling each of the reconfigurable cores as a separate circuit. Accordingly, the mapping apparatus according to the invention will have the mapping converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- A program transformation apparatus that transforms a circuit description in which a circuit function of a circuit composed of a plurality of modules is described, the program transformation apparatus includes: a calculation unit configured to calculate, according to the circuit description, a constraint of an input signal and an output signal of the circuit; a generating unit configured to generate a plurality of patterns in which a register is or is not inserted between the plurality of modules; an extracting unit configured to extract, out of the generated plurality of patterns, at least one pattern that fulfills the constraint; and a selecting unit configured to select one of the at least one extracted patterns and output the selected pattern as a transformed circuit description.
- This structure allows the program transformation apparatus according to the present invention to insert registers corresponding to the first group of register circuits into a circuit description. In other words, the program transformation apparatus according to the present invention converts a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules.
- Furthermore, the program transformation may further include a feedback extracting unit configured to extract, out of the plurality of modules, a plurality of modules that forms a feedback system, wherein the generating unit, handling the plurality of modules extracted by the feedback extracting unit as a single module, is configured to generate a plurality of patterns in which a register is or is not inserted between the modules.
- This structure allows the program transformation apparatus according to the present invention avoid inserting a register between modules that form a feedback system. This reduces workload of the program transformation apparatus.
- A mapping method executed in a mapping apparatus for mapping, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit having: a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function; and a first group of register circuits formed between at least two reconfigurable cores included in the plurality of reconfigurable cores and temporarily holding output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores, the mapping method includes: dividing the circuit function into a plurality of circuit function blocks; eliminating a register from between the circuit function blocks; executing logic synthesis on each of the plurality of circuit function blocks between which the register has been eliminated from; and placing and routing, on each of the reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
- This method will exclude a register that corresponds to the first group of registers included in the circuit description from being mapped. In addition, the mapping apparatus according to the present invention executes mapping, handling each of the reconfigurable cores as a separate circuit. Accordingly, the mapping will converge in a short period of time even for a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
- A program transformation method according to the present invention is to be executed in a program transformation apparatus that transforms a circuit description in which a circuit function of a circuit composed of a plurality of modules is described, the program transformation method including: calculating, according to the circuit description, a constraint of an input signal and an output signal of the circuit; generating a plurality of patterns in which a register is or is not inserted between the plurality of modules; extracting, out of the generated plurality of patterns, at least one pattern that fulfills the constraint; and selecting one of the at least one extracted patterns and outputting the selected pattern as a transformed circuit description.
- This method inserts registers corresponding to the first group of register circuits into a circuit description. In other words, the program transformation method according to the present invention converts a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules.
- It is noted that the present invention may be implemented not only as such a semiconductor integrated circuit, a mapping apparatus, a mapping method thereof, a program transformation apparatus, or a program transformation method thereof, but also as a program that causes a computer to execute characteristic steps included in the mapping method or the program transformation method. It is also noted that such a program may be, not to mention, distributed via storage media such as a CD-ROM or a transmission media such as the Internet.
- The present invention provides a reconfigurable logic semiconductor integrated circuit on which a large-scale circuit function is easily mapped. The present invention also provides a layout of semiconductor integrated circuit that can be easily designed in a small area when a plurality of reconfigurable cores is installed on a single chip in order to construct a large-scale reconfigurable logic semiconductor integrated circuit.
-
FIG. 1 shows a configuration of a conventional reconfigurable logic semiconductor integrated circuit. -
FIG. 2 shows a procedure of mapping in a conventional reconfigurable logic semiconductor integrated circuit. -
FIG. 3 shows a configuration of a semiconductor integrated circuit according to the first embodiment of the present invention. -
FIG. 4 shows a structure of a reconfigurable logic semiconductor integrated circuit according to the first embodiment of the present invention. -
FIG. 5 shows a structure of reconfigurable cores according to the first embodiment of the present invention. -
FIG. 6 shows a surrounding structure of a logic element according to the first embodiment of the present invention. -
FIG. 7 shows a structure of a logic element in detail according to the first embodiment of the present invention. -
FIG. 8 shows a configuration of a mapping apparatus according to the first embodiment of the present invention. -
FIG. 9 is a flowchart of mapping of a circuit function according to the first embodiment of the present invention. -
FIG. 10 illustrates assignment to each of the reconfigurable cores in mapping of circuit functions according to the first embodiment of the present invention. -
FIG. 11 is a flowchart of mapping of a circuit function on one reconfigurable core in the mapping of the circuit function according to the first embodiment of the present invention. -
FIG. 12 shows a structure of a variation of the semiconductor integrated circuit according to the first embodiment. -
FIG. 13 shows a structure of a semiconductor integrated circuit according to the second embodiment of the present invention. -
FIG. 14 is a flowchart that shows a process executed by a program transformation apparatus according to the third embodiment of the present invention. -
FIG. 15 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention. -
FIG. 16 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention. -
FIG. 17 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention. -
FIG. 18 illustrates a process executed by the program transformation apparatus according to the third embodiment of the present invention. - 1 Semiconductor apparatus
- 13 Hardware circuit
100, 150, 200, 500 Semiconductor integrated circuits (FPGA)
101, 101A, 101B, 101C, 101D Reconfigurable cores
102 Register circuit - 104 First clock signal stopping circuit
105 Second clock signal stopping circuit
201, 501 Logic elements - 203 Group of the circuit boxes
204E, 204N, 204S, 204W IO units
210 Look-up table - 301F Virtual module
400 Mapping apparatus - Hereinafter, a semiconductor integrated circuit according to the present invention is described in detail with reference to figures.
- A semiconductor integrated circuit according to the first embodiment of the present invention has two register circuits in series in each of gaps between a plurality of reconfigurable cores. Such a semiconductor integrated circuit allows mapping of a circuit function on the reconfigurable cores, handling them as circuits separate from one another. It is thus possible to easily map a large-scale circuit function even on a reconfigurable logic semiconductor integrated circuit.
- The semiconductor integrated circuit according to the first embodiment of the present invention is described below.
-
FIG. 3 shows a configuration of a semiconductor device that has a reconfigurable logic semiconductor integrated circuit according to the first embodiment of the present invention. - The
semiconductor device 1 shown inFIG. 3 has aCPU 10, random access memory (RAM) 11, a direct memory access (DMA) 12, ahardware circuit 13, and anFPGA 100. - The
CPU 10 performs an entire control of thesemiconductor device 1. TheRAM 11 is a readable and writable storage unit. TheDMA 12 transfers data between theFPGA 100 and theRAM 11 and between thehardware circuit 13 and theRAM 11. Thehardware circuit 13 is a circuit composed of special hardware to achieve a predetermined function. TheFPGA 100 is a reconfigurable logic semiconductor integrated circuit that exemplifies the semiconductor circuit according the present invention. - For example, the
CPU 10, theRAM 11, theDMA 12, thehardware circuit 13, and theFPGA 100 are installed on a single semiconductor substrate. In other words, the semiconductor integrated circuit (FPGA) 100 according to the first embodiment of the present invention is configured as a circuit block in a what is called SOC. -
FIG. 4 shows a structure of a reconfigurable logic semiconductor integratedcircuit 100 according to the first embodiment of the present invention. The semiconductor integratedcircuit 100 shown inFIG. 4 is a reconfigurable logic semiconductor integrated circuit. The semiconductor integratedcircuit 100 has fourreconfigurable cores register circuits 102, and twomemories - The
reconfigurable cores reconfigurable cores reconfigurable cores 101 when they are mentioned with no specific distinction. Thereconfigurable cores 101 are circuits that are capable of reconfiguring the logic thereof by changing connections therein according to configuration data inputted from outside the cores. Some sets of such configuration data may be preliminarily stored inside thereconfigurable cores 101. - Each of the
reconfigurable cores 101 is rectangular with four sides of north (N), south (S), east (E), and west (W). Thereconfigurable cores 101 are not symmetric with respect to these sides. Inner wiring thereof is structured differently between in an east-west direction and in a north-south direction. In the first embodiment, it is assumed that the configuration data to reconfigure the logic of thereconfigurable cores 101 is inputted from a direction of the S. Each of thereconfigurable cores 101 is handled as a hard macro in chip designing so that the multiple cores can be easily installed on a single chip. - The
reconfigurable cores 101 operate synchronously with clock signals. In the first embodiment, thereconfigurable cores 101 are provided with clock signals CLKA, CLKB, CLKC, and CLKD, respectively. -
FIG. 5 shows a structure of the reconfigurable cores 101 (101A, 101B, 101C, and 101D). Each of thereconfigurable cores 101 has a plurality of logic elements (LE) 201, a plurality of switch boxes (SB) 202, a plurality of groups of circuit boxes (CB) 203,IO units - The
logic elements 201 are arranged in a matrix and implement predetermined logic respectively. Thelogic elements 201 are functional elements that allow for changing functions thereof (the relation of output to input) according to the configuration data. Theswitch boxes 202 determine interconnections of the lines according to the configuration data. The groups ofcircuit boxes 203 determine connections of inputs and outputs of thelogic elements 201 to the lines according to the configuration data. - The connection of an output terminal of which
logic element 201 to an input terminal of whichlogic element 201 is determined by controlling relation of connections in theswitch boxes 202 and the groups of thecircuit boxes 203. In the first embodiment, theswitch boxes 202 and the groups of thecircuit boxes 203 are collectively referred to as programmable wiring. Thereconfigurable core 101 is provided with a clock-signal line therein in addition to the programmable wiring. - The
IO units reconfigurable core 101, respectively. - The
IO unit 204N is disposed on the N side of thereconfigurable core 101. TheIO unit 204N has input and output terminals for an application data bus and control signals. - The
IO unit 204E is disposed on the E side of thereconfigurable core 101. TheIO unit 204E has input and output terminals for an application data bus. - The
IO unit 204S is disposed on the S side of thereconfigurable core 101. TheIO unit 204S has input and output terminals for an application data bus and control signals. TheIO unit 204S further has input and output terminals for configuration data. - The
IO unit 204W is disposed on the W side of thereconfigurable core 101. TheIO unit 204W has input and output terminals for control signals. - The input and output terminals for the application data buses are used for input and output of a calculation result to and from other
reconfigurable cores 101, theCPU 10, theDMA 12, and thehardware circuit 13. The input and output terminals for control signals are used for input and output of a control signal to and from external hardware such as theCPU 10, theDMA 12, and thehardware circuit 13. The input and output terminals for the configuration data are used for input of the configuration data from thememories - This structure where the configuration data is inputted from only one direction S simplifies the wiring structure of the
reconfigurable core 101. Furthermore, disposing the IO units with the input and output terminals arranged differently on the sides of thereconfigurable core 101 achieves layouts suited for applications. -
FIG. 6 illustrates the inside of thereconfigurable cores 101 in further detail. Shown inFIG. 6 is a structure where onelogic element 201 is surrounded with theswitch boxes 202 and the groups of thecircuit boxes 203. - In the first embodiment, the
logic element 201 is a functional element with four input terminals on the west side and two output terminals on the east side. The groups of thecircuit boxes 203 programmably determine connections of the input and output terminals of the logic element stretching in the east-west direction to the lines stretching in the north-south direction. - The
switch boxes 202 programmably connect the lines stretching in the east-west direction and the lines stretching in the north-south direction. The output terminals of thelogic element 201 connected to the lines in the north-south direction may be connected to the lines in the east-west direction via the group of the circuit boxes. Thelogic element 201 is provided with a clock signal through a line different from the programmable wiring. -
FIG. 7 shows a structure of thelogic element 201 in detail. In the first embodiment, thelogic element 201 has a look-up table (LUT) 210, a plurality ofprogrammable multiplexers 211, and a flip-flop 212. The look-up table 210 is composed of small-size memories. The relation of outputs to inputs of the look-up table 210 is changed by rewriting content held in the memories. A signal selected by each of the plurality ofprogrammable multiplexers 211 is determined according to the configuration data or an output from anotherlogic element 201. - Each of the
reconfigurable cores 101 has such a configuration where the plurality oflogic elements 201 is arranged in a matrix as shown inFIGS. 5 to 7 that the density of the programmable wiring to interconnect thelogic elements 201 is high in thereconfigurable core 101. The wiring from the IO units for the application data buses, control signals, and configuration data is relatively less dense at a boundary between thereconfigurable core 101 and outside thereof. In addition to the wiring from the IO units, there is wiring in a gap area betweenreconfigurable cores 101 to connect them with another circuit block on the same chip as the semiconductor integratedcircuit 100. In other words, thereconfigurable cores 101 are separate from one another on a chip layout, and wiring structures are obviously different between inside and outside of thereconfigurable cores 101. - This is described below with reference to
FIG. 4 again. Thememories reconfigurable cores 101. Hereinafter, thememories memory 103A stores the configuration data for reconfiguring logic of thereconfigurable cores memory 103B stores the configuration data for reconfiguring logic of thereconfigurable cores memory 103A is disposed between thereconfigurable cores memory 103B is disposed between thereconfigurable cores - One of features of the present invention is that the
reconfigurable cores reconfigurable cores reconfigurable cores 101 may be shortened. This enables dynamic reconfiguration of functions of the reconfigurable cores in a short period of time. It is noted that the memory 103 and thereconfigurable core 101 are interconnected using a multi-bit bus not shown in the figure. - The
reconfigurable cores reconfigurable cores reconfigurable core 101 is provided with IO units for an application data bus thereon. Here, it is usually preferable to reduce wiring delay in the application data bus. On the other hand, wiring delay has relatively little impact on signal lines for control signals. A line length of the application data bus between thereconfigurable cores 101 may be thus shortened by disposing thereconfigurable cores 101 with the E sides thereof facing each other. The impact of wiring delay in the application data bus may be reduced thereby. - Another feature of the present invention is that the reconfigurable logic semiconductor integrated
circuit 100 has tworegister circuits 102 in series in each gap between thereconfigurable cores 101 side by side to each other in rows and columns. - Each
register circuit 102 is composed of a plurality of flip-flops and may hold some sets of multi-bit (for example, 16-bit) data. A pair of the two register circuits in series are formed in every gap between the side-by-sidereconfigurable cores 101. Each pair of the tworegister circuits 102 in series temporarily holds output from areconfigurable core 101 that is a data source and transfers it to anotherreconfigurable core 101 that is a data destination. A first-stage register circuit 102 of the twoserial register circuits 102, synchronously with the clock signal, holds data outputted from thereconfigurable core 101 that is the data source and outputs the data to a second-stage register circuit 102. A second-stage register circuit 102 of the twoserial register circuits 102, synchronously with the clock signal, holds the data outputted from the first-stage register circuit 102 and outputs the data to thereconfigurable core 101 that is the data destination. - Additionally, the gap between two side-by-side
reconfigurable cores 101 has a pair of tworegister circuits 102 in series that temporarily holds output from a firstreconfigurable core 101 and transfers it to a secondreconfigurable core 101, and a pair of tworegister circuits 102 in series that temporarily holds output from the secondreconfigurable cores 101 and transfers it to the firstreconfigurable core 101. - Each of the
reconfigurable cores 101 transmits and receives data through the two register circuit in serial. This makes each of the reconfigurable cores 101 a separate circuit. Even when the reconfigurable logic semiconductor integratedcircuit 100 is a large-scale circuit, each of thereconfigurable cores 101 is a separate circuit that is one-fourth of the reconfigurable logic semiconductor integratedcircuit 100. This will limit the combinations for mapping in each of thereconfigurable cores 101 even in the case of mapping of a large-scale circuit function. The circuit function is thus mapped rapidly. Mapping is described later in detail. - The two
register circuits 102 are formed in series in order to ease a timing constraint because of the delay due to the line length. Only with asingle register circuit 102, the timing constraint is severe in the case where, for example, theregister circuit 102 may be required to latch, on a clock edge, data outputted from thefarthest logic element 201 in thereconfigurable core 101 that is a data source, and on the next clock edge output the data to thefarthest logic element 201 in thereconfigurable core 101 that is a data destination. This constraint is eased by forming two register circuits in series. For example, the first-stage register circuit 102 of the two register circuits in series formed nearer to thereconfigurable core 101 that is the data source, and the second-stage register circuit 102 nearer to thereconfigurable core 101 that is the data destination. - It is also noted that clock signals to be inputted to the
register circuits 102 and to be inputted to thereconfigurable core 101 that is the data destination is common. For example, theregister circuits 102 formed on the route through which data is transferred from thereconfigurable core 101A to thereconfigurable core 101C are provided with a clock signal CLKC as thereconfigurable core 101C is provided with. This enables at least the second-stage register circuit 102 to securely hold the data even when thereconfigurable cores 101 are operated asynchronously. Accordingly, metastability (a state where a setup constraint or a hold constraint is not satisfied) that occurs when thereconfigurable cores 101 are operated asynchronously is avoided in the semiconductor integratedcircuit 100. - Hereinafter, a method is described for mapping a circuit function on the reconfigurable logic semiconductor integrated
circuit 100 according to the first embodiment of the present invention using a mapping apparatus. The configuration data held in the memory 103 is generated through mapping. -
FIG. 8 shows a hardware configuration of a mapping apparatus according to the first embodiment of the present invention. Themapping apparatus 400 shown inFIG. 8 maps a circuit function described in a circuit description on the semiconductor integratedcircuit 100 mentioned above. Themapping apparatus 400 may be, for example, a personal computer. Themapping apparatus 400 has akeyboard 401, adisplay 402, aCPU 403, aROM 404, and aRAM 405. - The
keyboard 401 receives an operation by a designer. Thedisplay 402 shows the designer a process result. TheCPU 403 performs an entire control of themapping apparatus 400 by executing aprogram 406 stored in theROM 404. TheROM 404 is a read-only memory that stores theprogram 406 to be executed by theCPU 403. Theprogram 406 may be stored in a non-volatile memory or a hard disk (HD) not shown in the figures. TheRAM 405 is a readable and writable memory to store working data to be used in the execution of theprogram 406 by theCPU 403. - With the configuration described above, when the
CPU 403 of themapping apparatus 400 executes theprogram 406, the circuit function described in the circuit description is mapped on the semiconductor integratedcircuit 100. - The mapping by the
mapping apparatus 400 may be achieved by a special hardware. -
FIG. 9 is a flowchart of mapping of the circuit function on the semiconductor integratedcircuit 100. - First, the designer describes a circuit function to be mapped on the reconfigurable logic semiconductor integrated circuit 100 (S201). The circuit function is described in a hardware description language such as HDL or a high-level language such as C language. When describing the circuit function, the designer divides a large-scale circuit function into a plurality of process modules with two cycles of delay inserted between the process modules. This allows the process modules to have pairs of two serial register circuits inserted between the process modules.
- Next, the
mapping apparatus 400 divides the circuit function in the circuit description described by the designer into a plurality of circuit function blocks (S202). Specifically, themapping apparatus 400 integrates the process modules in the circuit description and redivides them into four blocks. The mapping apparatus assigns the divided blocks to the fourreconfigurable cores 101. Themapping apparatus 400 then excludes the pairs of two serial registers in the gaps between the four blocks from being mapped on thereconfigurable cores 101 in order to save the registers for assignment to theregister circuit 102. - A detailed example of the process of the steps S202 and S203 executed by the
mapping apparatus 400 is described below with reference toFIG. 10 . -
FIG. 10 illustrates assignment process to each of thereconfigurable cores 101 in the step S202 and assignment to theregister circuits 102 in the step S203. - The process described below with reference to
FIG. 10 is executed by themapping apparatus 400. The designer has divided a circuit description for a large-scale circuit into six process modules ofmodules 221A to 221F and entered them into themapping apparatus 400. The large-scale circuit receives data through themodule 221E and executes predetermined arithmetic process on the data to output a result of the arithmetic process from themodule 221D. The designer has described the circuit description (including two cycles of delay) so that pairs of two registers can be inserted in series between the modules. However, such registers are not inserted between themodules - In the step S202, the
mapping apparatus 400 divides the circuit description into four blocks in consideration of scale and speed of the circuit of each process module. Furthermore, themapping apparatus 400 assigns the divided blocks to the reconfigurable cores. For example, themapping apparatus 400 assigns themodules reconfigurable core 101A,modules reconfigurable core 101B, themodule 221E to thereconfigurable core 101C, and themodule 221F to thereconfigurable core 101D. - In the step S203, the
mapping apparatus 400 assigns theregister 222A between themodules register circuit 102 installed in the gap between thereconfigurable cores mapping apparatus 400 assigns theregister 222B between themodules register circuit 102 installed in the gap between thereconfigurable cores mapping apparatus 400 assigns theregister 222D between themodules register circuit 102 installed in the gap between thereconfigurable cores mapping apparatus 400 assigns theregister 222E between themodules register circuit 102 installed in the gap between thereconfigurable cores mapping apparatus 400 excludesregisters register circuits 102 from being mapped. - Meanwhile, the
mapping apparatus 400 does not exclude theregister 222C installed between themodules reconfigurable core 101B from being mapped to thereconfigurable cores 101. - Next, the
mapping apparatus 400 maps the circuit function assigned to each of thereconfigurable cores 101 thereon (S204).FIG. 11 is a flowchart that shows a flow of mapping of the circuit function on onereconfigurable core 101 in the step S204. - First, the
mapping apparatus 400 obtains the circuit description of the block into which the circuit function has been divided in the step S202 and between which the register is eliminated from in the step S203 (S301). - Next, the
mapping apparatus 400 obtains a constraint condition for mapping (S302). For example, the constraint condition may be about speed and area, and may be entered into themapping apparatus 400 by the designer. - The
mapping apparatus 400 then executes logic synthesis of the circuit description obtained in the step S301 (S303). Specifically, themapping apparatus 400 divides the circuit function described in the circuit description into functional units. Each of the functional units can be assigned to one of thelogic elements 201. Themapping apparatus 400 determines connections between the divided functional units. Subsequently, themapping apparatus 400 places the divided functional units on thelogic elements 201 in an actual circuit (S304). A function (relation of output to input) of eachlogic element 201 is thus determined. - Following this, the
mapping apparatus 400 routes thelogic elements 201 using programmable wiring so that the connections determined by the logic synthesis are achieved (S305). The placing on thelogic elements 201 and routing the logic elements using the programmable wiring may be executed as a single process or separated processes. - The
mapping apparatus 400 then judges whether or not the circuit resulting from the placing and routing fulfills the constraint condition obtained in the step S302 (S306). When the constraint condition is fulfilled (Yes in S306), the synthesis of the block, placing, and routing is completed. When the constraint condition is not fulfilled (No in S306), the mapping apparatus subsequently judges whether or not the process from the steps S304 to S306 has been repeated a predetermined times (S307). When the process has not been repeated the predetermined times (No in S307), themapping apparatus 400 executes the placing and routing process (S304 and S305) again. Themapping apparatus 400 repeats the placing and routing process (S304 and S305) until the constraint condition is fulfilled. When the constraint condition is not fulfilled even after the process has been repeated the predetermined times (Yes in S307), themapping apparatus 400 ends the process with an result that the mapping on the blocks is impossible. - The process may be repeated from synthesis (S303) through placing and routing (S304 and S305) when the constraint condition is not fulfilled (No in S306).
- The
mapping apparatus 400 may display an indication that the constraint condition cannot be fulfilled when such is the case even after repeating the process the predetermined times. Upon the indication, the designer will review the constraint condition. The mapping apparatus will then obtain a newly entered constraint condition (S302) and executes the process of steps S303 to S306 under the new constraint condition. - The
mapping apparatus 400 maps one divided circuit function on each of thereconfigurable cores 101, so that the process is converged in a short period of time in comparison with conventional mapping through which a large-scale circuit description is mapped on a large-scale reconfigurable core. - The
mapping apparatus 400 then judges whether or not the constraint condition is fulfilled for all of the four reconfigurable cores 101 (S205). When it is (Yes in S205), the mapping of the circuit description for the large-scale circuit is completed. - When the constraint condition is not fulfilled for any one or more of the reconfigurable cores 101 (No in S205), the
mapping apparatus 400 judges whether or not the mapping process of the steps S202 to S204 has been repeated the predetermined times (S206). When the process has not been repeated the predetermined times (No in S206), themapping apparatus 400 executes the process from the step S202 again. When the process has been repeated the predetermined times (Yes in S206), themapping apparatus 400 judges that the circuit function described in the step S201 cannot be mapped on the reconfigurable logic semiconductor integratedcircuit 100. - There are two methods for the process of the steps S202, S203, S205, and S206: one is a method in which the process is executed by the
mapping apparatus 400 using a special point tool included in theprogram 406; the other is a method in which the process is executed as part of a synthesis tool. The process of S204 can be executed by themapping apparatus 400 using a synthesis tool and a P & R tool similar to those included in theprogram 406. - As described above, with the reconfigurable logic semiconductor integrated
circuit 100 according to the first embodiment of the present invention where two registers in series are inserted for each process module of a large-scale circuit function, themapping apparatus 400 can handle each of thereconfigurable cores 101 as a separate circuit in execution of mapping. The mapping will be thus completed in a short period of time. - In addition, the semiconductor integrated
circuit 100 can operate as fast as a single large-scale reconfigurable logic semiconductor integrated circuit because theregister circuits 102 are installed in the same chip as thereconfigurable cores 101 and driven by the same clock signal as provided for thereconfigurable cores 101. - The description above is the best mode for carrying out the present invention. Needless to say, however, the present invention is not limited to the embodiment above. For example, the following description is a possible variation.
- It is also possible to form three or
more register circuits 102 in series. In this case, when thereconfigurable cores 101 are provided with asynchronous clock signals, at least two posterior, second- and third-stage register circuits 102 are preferably provided with the same clock signal as thereconfigurable core 101 that is a data destination for anti-metastability purpose. - It is also possible to form only one
register circuit 102 between two reconfigurable cores. As described above, the timing constraint is severe with asingle register circuit 102. However, the timing constraint may be obeyed even with thesingle register circuit 102 when distance between thereconfigurable cores 101 is short and thereconfigurable cores 101 are of a small scale. In the case where theregister circuit 102 is single, theregister circuit 102 is preferably disposed equally away from thereconfigurable core 101 that is a data source and thereconfigurable core 101 that is a data destination. - Although each of the
reconfigurable cores 101 are provided with different clock signals CLKA, CLKB, CLKC, and CLKD in the description above, these clock signals may be the same one in order to simplify a structure of the semiconductor integrated circuit. It is also possible that two or more of the plurality of reconfigurable cores are provided with the same clock signal. - Although every gap between the side-by-side
reconfigurable cores 101 has the tworegister circuits 102 in series, it is also possible that only one or more gaps between the side-by-sidereconfigurable cores 101 have such a pair of the register circuits. It is also possible to form only theregister circuits 102 for holding data transmitted from a firstreconfigurable core 101 to a secondreconfigurable core 101 of two side-by-sidereconfigurable cores 101, but not theregister circuits 102 for holding data transmitted from the secondreconfigurable core 101 to the firstreconfigurable core 101. - The two
register circuits 102 in series may be formed between tworeconfigurable cores 101 that are not arranged side by side. For example, it is also possible to form theregister circuits 102 in series between thereconfigurable cores register circuits 102 in series between thereconfigurable cores - Although the semiconductor integrated
circuit 100 according to the first embodiment of the present invention is described to be configured as a single circuit block on a what is called SOC, the semiconductor integratedcircuit 100 per se may be also configured as a single-chip large scale integration (LSI). - It is also possible to use not an LUT but one or a plurality of ALUs as the
logic elements 201. Signal processing operation for image encoding and decoding or cryptographic processing is usually composed of repetitive simple calculations. Consequently, using one or the plurality of ALUs as thelogic elements 201 may provide areconfigurable core 101 suitable for such signal processing operation. Using such areconfigurable core 101 that uses an ALU as thelogic elements 201 is preferable especially when configuring the reconfigurable logic semiconductor integratedcircuit 100 according to the present invention as a single circuit block on a SOC because this will make it possible to have only theCPU 10 execute process of control system. When various signal processes need to be carried out on a conventional SOC, special hardware has been designed for each of the signal process. With one or a plurality of ALUs as thelogic elements 201 and an SOC that includes theCPU 10, the reconfigurable logic semiconductor integratedcircuit 100 can execute all the processes without special hardware. - For some circuit functions to be achieved on the reconfigurable logic semiconductor integrated
circuit 100, not all thereconfigurable cores 101 are necessarily used for achieving one circuit function. It is also possible to map one circuit function using some of thereconfigurable cores 101. The rest of the reconfigurable cores may be mapped on with another circuit function. - Although the
reconfigurable cores logic elements 201 may be different among thereconfigurable cores 101. - Each of the
reconfigurable cores 101 may be either of the dynamicallyreconfigurable core 101 that allows dynamic logic reconfiguration with power on, or a what is called FPGA that needs logic reconfiguration with power off. - The configuration of the four IO units included in the
reconfigurable cores 101 is not limited to that shown inFIG. 5 . The IO units may have any configuration as long as the configuration data is to be inputted from the S side. - Although the process of the steps S201 to S206 shown in
FIG. 9 is described to be executed by themapping apparatus 400, part of the process may be executed and inputted into themapping apparatus 400 by the designer. - Although the semiconductor integrated
circuit 100 is described to exemplarily have four of thereconfigurable cores 101, the semiconductor integratedcircuit 100 may have more than one reconfigurable cores. For example, the semiconductor integratedcircuit 100 may have two, three, or no less than fivereconfigurable cores 101. - Unlike the structure shown in
FIG. 4 where one memory 103 is provided for each pair of thereconfigurable cores 101 with the S sides thereof facing each other, it is also possible to provide eachreconfigurable core 101 with one memory 103.FIG. 12 shows a variation of the semiconductor integratedcircuit 100 according to the first embodiment. The semiconductor integratedcircuit 150 has a structure shown inFIG. 12 in which each of thereconfigurable cores 101 has one memory 103. The semiconductor integratedcircuit 150 shown inFIG. 12 has four memories of 103A, 103B, 103C, and 103D. Thememory 103A stores configuration is data to be inputted into thereconfigurable core 101A. Thememory 103B stores configuration data to be inputted into thereconfigurable core 101B. Thememory 103C stores configuration data to be inputted into thereconfigurable core 101C. The memory 103D stores configuration data to be inputted into thereconfigurable core 101D. This structure allows parallel configuration for all thereconfigurable cores 101 and the configuration is completed in a short period of time. - The semiconductor integrated circuit according to the second embodiment of the present invention has a function to stop providing the
register circuits 102 and thereconfigurable cores 101 with the clock signals. This will reduce excess power consumption. -
FIG. 13 shows the structure of a semiconductor integrated circuit according to the second embodiment of the present invention. - The semiconductor integrated
circuit 200 shown inFIG. 13 has a plurality of first clocksignal stopping circuits 104 and a plurality of second clock signal stopping circuit in addition to the structure of semiconductor integratedcircuit 100 according to the first embodiment shown inFIG. 5 . Elements in common withFIG. 5 are denoted by the same reference numerals and thus detailed description thereof is omitted. - The first clock
signal stopping circuit 104 is formed corresponding to each of the plurality of thereconfigurable cores 101. The first clocksignal stopping circuit 104 controls whether or not a clock signal is provided for the correspondingreconfigurable core 101. The first clocksignal stopping circuit 104 stops providing the clock signal for the correspondingreconfigurable core 101 when thereconfigurable core 101 is not in use. The first clocksignal stopping circuit 104 stops providing the clock signal for theregister circuit 102 that is used for inputting the clock signal into the correspondingreconfigurable core 101 when thereconfigurable core 101 is not in use. For example, the first clocksignal stopping circuit 104 stops providing the clock signal for the correspondingreconfigurable core 101 when thereconfigurable core 101 is reconfigured to include no circuit. - The second clock
signal stopping circuit 105 is formed corresponding to each of the pairs of the twoserial register circuits 102. The second clocksignal stopping circuit 105 controls whether or not a clock signal is provided for thecorresponding register circuits 102. The second clocksignal stopping circuit 105 stops providing the clock signal thecorresponding register circuits 102 when theregister circuit 102 is not in use for signal transmission. For example, there may be no signal transmission between thereconfigurable cores register circuits 102 between thereconfigurable cores register circuits 102 inserted on the route of signal transmission from thereconfigurable core 101B to thereconfigurable core 101A is stopped. - The semiconductor integrated
circuit 200 according to the second embodiment of the present invention thus stops providing thereconfigurable cores 101 not in use with clock signals. This will reduce excess power consumption. The semiconductor integratedcircuit 200 also stops providing theregister circuits 102 not in use with clock signals. This will reduce excess power consumption. - Although the semiconductor integrated
circuit 200 shown inFIG. 13 has the first clocksignal stopping circuit 104 for each of all thereconfigurable cores 101, the semiconductor integratedcircuit 200 may have the first clocksignal stopping circuit 104 for at least any one of the reconfigurable cores. In this case, mapping of the circuit function is preferentially executed for thereconfigurable core 101 having no corresponding first clocksignal stopping circuit 101. - Although the semiconductor integrated
circuit 200 shown inFIG. 13 has the second clocksignal stopping circuit 105 for each pair of theregister circuits 102, the semiconductor integratedcircuit 200 may have the second clocksignal stopping circuit 105 for at least any one pair of theregister circuits 102. - For the mapping described in the first embodiment, the designer describes, in the circuit description, the process of inserting the two register circuits in series in the step S201 shown in
FIG. 10 . In the third embodiment described is a program transformation apparatus that executes process of inserting the two register circuits in series in the circuit description. - A function of program transformation apparatus according to the third embodiment of the present invention is achieved by a personal computer or the like that executes a program for it. For example, the program transformation apparatus according to the third embodiment has the same configuration as shown in
FIG. 8 . In other words, the function of the program transformation apparatus is achieved by theCPU 403 that executes theprogram 406 for it. The function of the program transformation apparatus according to the third embodiment may be achieved by special hardware. - The program transformation apparatus according to the third embodiment of the present invention transforms a circuit description similar to conventional ones into a status in which the circuit description can be mapped by the
mapping apparatus 400 according to the first embodiment. The program transformation apparatus according to the third embodiment of the present invention selectively inserts the two register circuits in series between the process modules of the circuit description in which a single large-scale circuit function composed of the plurality of process modules is described. - Hereinafter, an operation of the program transformation apparatus for inserting the register circuits into the circuit description is described with reference to
FIGS. 14 to 18 . The circuit function of themodules -
FIG. 14 is a flowchart that shows a process executed by a program transformation apparatus according to the third embodiment of the present invention.FIGS. 15 to 18 illustrate the process executed by the program transformation apparatus. - First, the program transformation apparatus obtains the circuit description described by the designer. The circuit description is to be mapped on the reconfigurable logic semiconductor integrated circuit (S401). The circuit description obtained by the program transformation apparatus is a circuit description in which the designer has described a circuit function as a plurality of process modules. The circuit function is described in a hardware description language such as HDL or a high-level language such as C language. For example, the program transformation apparatus obtains the circuit description shown in
FIG. 15 . - Next, the program transformation apparatus calculates relation (constraint) between input signals and output signals on the basis of the circuit description obtained in the step S401 (S402). The relation (constraint) is to be achieved when the circuit function composed of the plurality of the process modules is achieved in one circuit. Specifically, the program transformation apparatus calculates, on the basis of a cycle number necessary for processing the process modules included in the circuit description, a cycle number from input of a signal into the whole circuit until when an effective output signal is obtained. For example, the program transformation apparatus calculates a constraint that a cycle number from input of an input signal IN0 to obtainment of an output signal OUT0 shown in
FIG. 15 is five or less. The program transformation apparatus also calculates a constraint that a cycle number from input of an input signal IN0 to obtainment of an output signal OUT1 is three or less. - Subsequently, the program transformation apparatus sets a virtual module (S403). Specifically, the program transformation apparatus extracts a plurality of modules that forms a feedback system out of a plurality of modules, and sets the extracted modules as one virtual module. For example, a
module 301E feeds back output to amodule 301C as shown inFIG. 16 . The program transformation apparatus thus sets themodule 301C and themodule 301E as avirtual module 301F. The program transformation apparatus also sets amodule modules virtual module 301F each as one module in the process afterward. - Following this, the program transformation apparatus generates a pattern where registers are inserted between the
modules virtual module 301F, and a pattern where they are not inserted there (S404).FIG. 17 exemplarily shows one of a plurality of patterns generated by the program transformation apparatus. This pattern has more registers to be inserted than any other patterns: registers 302AB, 302AD, 302AF, 302BD, and 302BF between themodules virtual module 301F. The program transformation apparatus also generates a pattern where one or more of the registers 302AB, 302AD, 302AF and 302BD are inserted, and a pattern where none of them is inserted. Hereinafter, the registers 302AB, 302AD, 302AF and 302BD are referred to as registers 302 when they are mentioned with no specific distinction. - For example, assuming the number of relationships where two modules transmit and receive a signal as N, the program transformation apparatus generates 2N patterns. For the example shown in
FIG. 17 , there are five relationships where two modules transmit and receive a signal. The program transformation apparatus thus generates 25, that is, 32 patterns. Each of the registers 302 to be inserted is a pair of two registers in series, respectively. - The program transformation apparatus then extracts a pattern that fulfills the constraint calculated in the step S402 out of the plurality of patterns generated in the step S404. The program transformation apparatus judges whether or not each of the patterns generated in the step S404 fulfills the constraint calculated in the step S402. For example, the program transformation apparatus extracts a pattern shown in
FIG. 18 when the constraint is not fulfilled with either of the registers 302BD or 302BF inserted. This pattern is extracted as the one that fulfills the constraint with registers 302AB, 302AD, and 302AF inserted. The program transformation apparatus also extracts, as patterns that fulfills the constraint, a pattern where one or more of the registers 302AB, 302AD, and 302AF are inserted, and a pattern where none of them is inserted. - The program transformation apparatus then selects one of the patterns extracted in the step S405 (S406). For example, the program transformation apparatus selects the pattern that has the most registers to be inserted among the extracted patterns. Specifically, the program transformation apparatus in the example shown in
FIG. 18 selects the pattern where registers 302AB, 302AD, and 302AF are inserted. The steps from the step S202 shown inFIG. 9 are followed by themapping apparatus 400 according to the selected pattern. - The program transformation apparatus selects a pattern other than the one selected in the step S406 from the patters extracted in the step S405 when the constraint is not fulfilled or mapping is judged to be impossible in the process afterward. The steps from the step S202 are followed by the
mapping apparatus 400 according to the newly selected pattern. - This is how the program transformation apparatus according to the third embodiment of the present invention inserts registers corresponding to the
register circuits 102 into a circuit description. In other words, the program transformation apparatus according to the third embodiment of the present invention is capable of converting a circuit description described in a conventional manner by a designer into a circuit description with two registers in series inserted between modules. - Furthermore, the program transformation apparatus according to the third embodiment of the present invention is capable of extracting only a pattern that fulfills the constraint from the plurality of patterns where registers are inserted.
- Furthermore, the program transformation apparatus according to the third embodiment of the present invention does not insert a register between modules that form a feedback system. Inserting a register between the modules that form a feedback system will complicate the judgment on whether or not the constraint is fulfilled in the step S405 and lead to increase in workload of the program transformation apparatus. The program transformation apparatus according to the third embodiment of the present invention does not insert a register between modules that form a feedback system, so that it can reduce the workload.
- Although the program transformation apparatus is described to obtain a circuit description in which a circuit function is described as a plurality of process modules in the step S401, the program transformation apparatus may obtain a large-scale circuit description and divide the obtained circuit description into a plurality of process modules.
- Although the program transformation apparatus is described to calculate a constraint on the basis of a circuit description, the program transformation apparatus may also use a constraint inputted by a designer.
- It is also possible that the program transformation apparatus is implemented as one of functions of the
mapping apparatus 400 described in the first embodiment. - The present invention is applicable to various electronic apparatus because of its capability of mapping a large-scale circuit function on a reconfigurable logic semiconductor integrated circuit.
Claims (5)
1. A mapping apparatus that maps, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit including a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function and a first group of register circuits formed between at least two reconfigurable cores of the plurality of reconfigurable cores, the first group of register circuits temporarily holding an output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores, said mapping apparatus comprising:
a divider configured to divide the circuit function into a plurality of circuit function blocks;
an eliminator configured to eliminate a register from between the plurality of circuit function blocks;
a synthesis executer configured to execute logic synthesis on each of the plurality of circuit function blocks from between which the register has been eliminated; and
a placing and routing unit configured to place and route, on each of said reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
2. A program transformation apparatus that transforms a circuit description in which a circuit function of a circuit including a plurality of modules is described, said program transformation apparatus comprising:
a calculator configured to calculate, according to the circuit description, a constraint of an input signal and an output signal of the circuit;
a generator configured to generate a plurality of patterns in which a register is or is not inserted between the plurality of modules;
an extractor configured to extract, of the generated plurality of patterns, at least one pattern that fulfills the constraint; and
a selector configured to select one of the at least one extracted patterns and to output the selected pattern as a transformed circuit description.
3. The program transformation apparatus according to claim 2 , further comprising:
a feedback extractor configured to extract, of said plurality of modules, a plurality of modules that form a feedback system,
wherein said generator, handling the plurality of modules extracted by said feedback extractor unit as a single module, is configured to generate a plurality of patterns in which a register is or is not inserted between the modules.
4. A mapping method executed in a mapping apparatus for mapping, on a semiconductor integrated circuit, a circuit function described in a circuit description, the semiconductor integrated circuit including a plurality of reconfigurable cores arranged separately from one another and having a logic reconfiguration function and a first group of register circuits formed between at least two reconfigurable cores of the plurality of reconfigurable cores, the first group of register circuits temporarily holding an output from one of the reconfigurable cores and transferring the output to another one of the reconfigurable cores, the mapping method comprising:
dividing the circuit function into a plurality of circuit function blocks;
eliminating a register from between the circuit function blocks;
executing logic synthesis on each of the plurality of circuit function blocks from between which the register has been eliminated; and
placing and routing, on each of the reconfigurable cores, each of the plurality of circuit function blocks on which the logic synthesis has been executed.
5. A program transformation method to be executed in a program transformation apparatus that transforms a circuit description in which a circuit function of a circuit including a plurality of modules is described, the program transformation method comprising:
calculating, according to the circuit description, a constraint of an input signal and an output signal of the circuit;
generating a plurality of patterns in which a register is or is not inserted between the plurality of modules;
extracting, of the generated plurality of patterns, at least one pattern that fulfills the constraint; and
selecting one of the at least one extracted patterns and outputting the selected pattern as a transformed circuit description.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/020,409 US20110126164A1 (en) | 2006-07-27 | 2011-02-03 | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006-204383 | 2006-07-27 | ||
JP2006204383 | 2006-07-27 | ||
PCT/JP2007/064261 WO2008013098A1 (en) | 2006-07-27 | 2007-07-19 | Semiconductor integrated circuit, program converting apparatus and mapping apparatus |
US37506309A | 2009-01-26 | 2009-01-26 | |
US13/020,409 US20110126164A1 (en) | 2006-07-27 | 2011-02-03 | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus |
Related Parent Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2007/064261 Division WO2008013098A1 (en) | 2006-07-27 | 2007-07-19 | Semiconductor integrated circuit, program converting apparatus and mapping apparatus |
US37506309A Division | 2006-07-27 | 2009-01-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20110126164A1 true US20110126164A1 (en) | 2011-05-26 |
Family
ID=38981410
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/375,063 Active US7906987B2 (en) | 2006-07-27 | 2007-07-19 | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus |
US13/020,409 Abandoned US20110126164A1 (en) | 2006-07-27 | 2011-02-03 | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/375,063 Active US7906987B2 (en) | 2006-07-27 | 2007-07-19 | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus |
Country Status (6)
Country | Link |
---|---|
US (2) | US7906987B2 (en) |
EP (1) | EP2048784A4 (en) |
JP (1) | JP4971998B2 (en) |
KR (1) | KR20090035538A (en) |
CN (1) | CN101496283A (en) |
WO (1) | WO2008013098A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022995A1 (en) * | 2009-07-21 | 2011-01-27 | Fuji Xerox Co., Ltd. | Circuit design information generating equipment, function execution system, and memory medium storing program |
US8286113B1 (en) * | 2011-01-11 | 2012-10-09 | Xilinx, Inc. | Verification of logic core implementation |
US10122364B2 (en) | 2012-05-25 | 2018-11-06 | Semiconductor Energy Laboratory Co., Ltd. | Programmable logic device and semiconductor device |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102057575A (en) * | 2008-06-05 | 2011-05-11 | 松下电器产业株式会社 | Signal processing device, signal processing method, integrated circuit for signal processing, and television receiver |
JP5589479B2 (en) * | 2010-03-25 | 2014-09-17 | 富士ゼロックス株式会社 | Data processing device |
CN102402415B (en) * | 2011-10-21 | 2013-07-17 | 清华大学 | Device and method for buffering data in dynamic reconfigurable array |
WO2014123616A1 (en) * | 2013-02-08 | 2014-08-14 | The Trustees Of Princeton University | Fine-grain dynamically reconfigurable fpga architecture |
US8860457B2 (en) | 2013-03-05 | 2014-10-14 | Qualcomm Incorporated | Parallel configuration of a reconfigurable instruction cell array |
JP6747765B2 (en) * | 2014-06-23 | 2020-08-26 | 東芝情報システム株式会社 | Semiconductor device |
US10432196B2 (en) * | 2015-07-22 | 2019-10-01 | Nuvoton Technology Corporation | Communication device, communication system and operation method thereof |
TWI561007B (en) * | 2015-07-22 | 2016-12-01 | Nuvoton Technology Corp | Function programmable circuit and operation method thereof |
TWI647551B (en) * | 2017-05-26 | 2019-01-11 | 新唐科技股份有限公司 | Communication device, communication system and operation method thereof |
US10747690B2 (en) * | 2018-04-03 | 2020-08-18 | Xilinx, Inc. | Device with data processing engine array |
CN110895649B (en) * | 2018-08-23 | 2023-05-23 | 珠海零边界集成电路有限公司 | Integrated circuit back-end wiring management system, wiring management method and chip |
Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5594363A (en) * | 1995-04-07 | 1997-01-14 | Zycad Corporation | Logic cell and routing architecture in a field programmable gate array |
US5671432A (en) * | 1995-06-02 | 1997-09-23 | International Business Machines Corporation | Programmable array I/O-routing resource |
US5682107A (en) * | 1994-04-01 | 1997-10-28 | Xilinx, Inc. | FPGA architecture with repeatable tiles including routing matrices and logic matrices |
US5692147A (en) * | 1995-06-07 | 1997-11-25 | International Business Machines Corporation | Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof |
US5732246A (en) * | 1995-06-07 | 1998-03-24 | International Business Machines Corporation | Programmable array interconnect latch |
US5897507A (en) * | 1996-11-25 | 1999-04-27 | Symbiosis Corporation | Biopsy forceps instrument having irrigation and aspiration capabilities |
US6021513A (en) * | 1995-12-12 | 2000-02-01 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
US6096091A (en) * | 1998-02-24 | 2000-08-01 | Advanced Micro Devices, Inc. | Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip |
US6167559A (en) * | 1996-05-20 | 2000-12-26 | Atmel Corporation | FPGA structure having main, column and sector clock lines |
US20010052793A1 (en) * | 2000-06-15 | 2001-12-20 | Nec Corporation | Reconfigurable device having programmable interconnect network suitable for implementing data paths |
US6335635B1 (en) * | 1997-04-09 | 2002-01-01 | Altera Corporation | Programmable reticle stitching |
US20030004547A1 (en) * | 1997-03-07 | 2003-01-02 | Owen James M. | Defibrillation system |
US20030201795A1 (en) * | 2000-09-02 | 2003-10-30 | Jung-Cheun Lien | Tileable field-programmable gate array architecture |
US20040017221A1 (en) * | 2002-04-03 | 2004-01-29 | Deepak Agarwal | Field programmable device |
US20050144210A1 (en) * | 2003-12-29 | 2005-06-30 | Xilinx, Inc. | Programmable logic device with dynamic DSP architecture |
US6970013B1 (en) * | 2002-03-01 | 2005-11-29 | Xilinx, Inc | Variable data width converter |
US7268581B1 (en) * | 2005-04-21 | 2007-09-11 | Xilinx, Inc. | FPGA with time-multiplexed interconnect |
US20070214336A1 (en) * | 2006-03-13 | 2007-09-13 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit apparatus |
US20080055632A1 (en) * | 2006-08-31 | 2008-03-06 | Fuji Xerox Co., Ltd. | Information processing apparatus, communication system, and recording medium storing information processing apparatus program, and computer data signal embodied in carrier wave |
US20080079468A1 (en) * | 2006-09-29 | 2008-04-03 | Matsushita Electric Industrial Co., Ltd. | Layout method for semiconductor integrated circuit |
US20080186059A1 (en) * | 2007-02-05 | 2008-08-07 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit |
US20090015293A1 (en) * | 2005-02-25 | 2009-01-15 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit, semiconductor integrated circuit control method, and signal transmission circuit |
US7616025B1 (en) * | 2007-08-14 | 2009-11-10 | Actel Corporation | Programmable logic device adapted to enter a low-power mode |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6150838A (en) * | 1999-02-25 | 2000-11-21 | Xilinx, Inc. | FPGA configurable logic block with multi-purpose logic/memory circuit |
JP2003329743A (en) | 2002-05-14 | 2003-11-19 | Renesas Technology Corp | Method and apparatus for testing semiconductor integrated circuit |
US20080288909A1 (en) * | 2003-12-18 | 2008-11-20 | Koninklijke Philips Electronic, N.V. | Template-Based Domain-Specific Reconfigurable Logic |
JP2007333538A (en) | 2006-06-14 | 2007-12-27 | Matsushita Electric Ind Co Ltd | Test circuit, selector and semiconductor integrated circuit |
-
2007
- 2007-07-19 CN CNA2007800282720A patent/CN101496283A/en active Pending
- 2007-07-19 KR KR1020097001408A patent/KR20090035538A/en not_active Application Discontinuation
- 2007-07-19 WO PCT/JP2007/064261 patent/WO2008013098A1/en active Application Filing
- 2007-07-19 US US12/375,063 patent/US7906987B2/en active Active
- 2007-07-19 JP JP2007553406A patent/JP4971998B2/en not_active Expired - Fee Related
- 2007-07-19 EP EP07791015A patent/EP2048784A4/en not_active Withdrawn
-
2011
- 2011-02-03 US US13/020,409 patent/US20110126164A1/en not_active Abandoned
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5682107A (en) * | 1994-04-01 | 1997-10-28 | Xilinx, Inc. | FPGA architecture with repeatable tiles including routing matrices and logic matrices |
US5594363A (en) * | 1995-04-07 | 1997-01-14 | Zycad Corporation | Logic cell and routing architecture in a field programmable gate array |
US5671432A (en) * | 1995-06-02 | 1997-09-23 | International Business Machines Corporation | Programmable array I/O-routing resource |
US5692147A (en) * | 1995-06-07 | 1997-11-25 | International Business Machines Corporation | Memory mapping method and apparatus to fold sparsely populated structures into densely populated memory columns or rows by selectively transposing X and Y address portions, and programmable gate array applications thereof |
US5732246A (en) * | 1995-06-07 | 1998-03-24 | International Business Machines Corporation | Programmable array interconnect latch |
US6021513A (en) * | 1995-12-12 | 2000-02-01 | International Business Machines Corporation | Testable programmable gate array and associated LSSD/deterministic test methodology |
US6167559A (en) * | 1996-05-20 | 2000-12-26 | Atmel Corporation | FPGA structure having main, column and sector clock lines |
US5897507A (en) * | 1996-11-25 | 1999-04-27 | Symbiosis Corporation | Biopsy forceps instrument having irrigation and aspiration capabilities |
US20030004547A1 (en) * | 1997-03-07 | 2003-01-02 | Owen James M. | Defibrillation system |
US6335635B1 (en) * | 1997-04-09 | 2002-01-01 | Altera Corporation | Programmable reticle stitching |
US6096091A (en) * | 1998-02-24 | 2000-08-01 | Advanced Micro Devices, Inc. | Dynamically reconfigurable logic networks interconnected by fall-through FIFOs for flexible pipeline processing in a system-on-a-chip |
US20010052793A1 (en) * | 2000-06-15 | 2001-12-20 | Nec Corporation | Reconfigurable device having programmable interconnect network suitable for implementing data paths |
US20030201795A1 (en) * | 2000-09-02 | 2003-10-30 | Jung-Cheun Lien | Tileable field-programmable gate array architecture |
US6970013B1 (en) * | 2002-03-01 | 2005-11-29 | Xilinx, Inc | Variable data width converter |
US20040017221A1 (en) * | 2002-04-03 | 2004-01-29 | Deepak Agarwal | Field programmable device |
US20050144210A1 (en) * | 2003-12-29 | 2005-06-30 | Xilinx, Inc. | Programmable logic device with dynamic DSP architecture |
US20090015293A1 (en) * | 2005-02-25 | 2009-01-15 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit, semiconductor integrated circuit control method, and signal transmission circuit |
US7268581B1 (en) * | 2005-04-21 | 2007-09-11 | Xilinx, Inc. | FPGA with time-multiplexed interconnect |
US20070214336A1 (en) * | 2006-03-13 | 2007-09-13 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit apparatus |
US20080055632A1 (en) * | 2006-08-31 | 2008-03-06 | Fuji Xerox Co., Ltd. | Information processing apparatus, communication system, and recording medium storing information processing apparatus program, and computer data signal embodied in carrier wave |
US20080079468A1 (en) * | 2006-09-29 | 2008-04-03 | Matsushita Electric Industrial Co., Ltd. | Layout method for semiconductor integrated circuit |
US20080186059A1 (en) * | 2007-02-05 | 2008-08-07 | Matsushita Electric Industrial Co., Ltd. | Semiconductor integrated circuit |
US7616025B1 (en) * | 2007-08-14 | 2009-11-10 | Actel Corporation | Programmable logic device adapted to enter a low-power mode |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022995A1 (en) * | 2009-07-21 | 2011-01-27 | Fuji Xerox Co., Ltd. | Circuit design information generating equipment, function execution system, and memory medium storing program |
US8359564B2 (en) * | 2009-07-21 | 2013-01-22 | Fuji Xerox Co., Ltd. | Circuit design information generating equipment, function execution system, and memory medium storing program |
US8286113B1 (en) * | 2011-01-11 | 2012-10-09 | Xilinx, Inc. | Verification of logic core implementation |
US10122364B2 (en) | 2012-05-25 | 2018-11-06 | Semiconductor Energy Laboratory Co., Ltd. | Programmable logic device and semiconductor device |
Also Published As
Publication number | Publication date |
---|---|
JP4971998B2 (en) | 2012-07-11 |
JPWO2008013098A1 (en) | 2009-12-17 |
CN101496283A (en) | 2009-07-29 |
US20090237113A1 (en) | 2009-09-24 |
WO2008013098A1 (en) | 2008-01-31 |
EP2048784A1 (en) | 2009-04-15 |
US7906987B2 (en) | 2011-03-15 |
KR20090035538A (en) | 2009-04-09 |
EP2048784A4 (en) | 2010-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7906987B2 (en) | Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus | |
Koch et al. | ReCoBus-Builder—A novel tool and technique to build statically and dynamically reconfigurable systems for FPGAS | |
US7701252B1 (en) | Stacked die network-on-chip for FPGA | |
US6829756B1 (en) | Programmable logic device with time-multiplexed interconnect | |
US9270279B2 (en) | Apparatus and methods for time-multiplex field-programmable gate arrays | |
KR101058468B1 (en) | Reconfigurable Logic Fabrics for Integrated Circuits, and Systems and Methods for Constructing Reconfigurable Logic Fabrics | |
US20070247189A1 (en) | Field programmable semiconductor object array integrated circuit | |
US11750195B2 (en) | Compute dataflow architecture | |
US10587270B2 (en) | Coarse-grain programmable routing network for logic devices | |
US7800404B2 (en) | Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array | |
US9672307B2 (en) | Clock placement for programmable logic devices | |
Kadam et al. | An overview of reconfigurable hardware for efficient implementation of dsp algorithms | |
Koch et al. | Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems | |
US20240118870A1 (en) | Digital Signal Processing Circuitry with Multiple Precisions and Dataflows | |
Morris et al. | A scalable re-configurable processor | |
CN109885512B (en) | System chip integrating FPGA and artificial intelligence module and design method | |
Meng et al. | A Study of Reconfigurable Switch Architecture for Chiplets Interconnection | |
Salem et al. | FPGA prototyping and design evaluation of a NoC-based MPSoC | |
Mrabet et al. | Implementation of scalable embedded FPGA for SOC | |
Карнаушенко et al. | Field Programmable Counter Arrays Integration with Field Programmable Gates Arrays | |
Shan et al. | The Buffered Edge Reconfigurable Cell Array and Its Applications | |
Zipf et al. | A configurable pipelined state machine as a hybrid ASIC and configurable architecture | |
Teubner et al. | FPGAs |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |