WO2008013098A1 - Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage - Google Patents

Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage Download PDF

Info

Publication number
WO2008013098A1
WO2008013098A1 PCT/JP2007/064261 JP2007064261W WO2008013098A1 WO 2008013098 A1 WO2008013098 A1 WO 2008013098A1 JP 2007064261 W JP2007064261 W JP 2007064261W WO 2008013098 A1 WO2008013098 A1 WO 2008013098A1
Authority
WO
WIPO (PCT)
Prior art keywords
reconfigurable
circuit
reconfigurable core
semiconductor integrated
core
Prior art date
Application number
PCT/JP2007/064261
Other languages
English (en)
French (fr)
Inventor
Shinichi Marui
Original Assignee
Panasonic Corporation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Panasonic Corporation filed Critical Panasonic Corporation
Priority to JP2007553406A priority Critical patent/JP4971998B2/ja
Priority to EP07791015A priority patent/EP2048784A4/en
Priority to US12/375,063 priority patent/US7906987B2/en
Publication of WO2008013098A1 publication Critical patent/WO2008013098A1/ja
Priority to US13/020,409 priority patent/US20110126164A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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
    • HELECTRICITY
    • H01ELECTRIC ELEMENTS
    • H01LSEMICONDUCTOR DEVICES NOT COVERED BY CLASS H10
    • H01L21/00Processes or apparatus adapted for the manufacture or treatment of semiconductor or solid state devices or of parts thereof
    • H01L21/70Manufacture 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/77Manufacture or treatment of devices consisting of a plurality of solid state components or integrated circuits formed in, or on, a common substrate
    • H01L21/78Manufacture 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/82Manufacture 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic 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/1778Structural details for adapting physical parameters
    • H03K19/17796Structural details for adapting physical parameters for physical disposition of blocks

Definitions

  • the present invention relates to a semiconductor integrated circuit, a program conversion device, and a mapping device, and in particular
  • the present invention relates to a semiconductor integrated circuit including a plurality of reconfigurable cores.
  • semiconductor integrated circuit that can reconfigure its own logic represented by an FPGA (Field Programmable Gate Array) (hereinafter referred to as a “semiconductor integrated circuit that can reconfigure logic”). To do.
  • FPGA Field Programmable Gate Array
  • FIG. 1 is a diagram showing an overall configuration of a conventional logic reconfigurable semiconductor integrated circuit.
  • a conventional logic reconfigurable semiconductor integrated circuit 500 shown in 1 includes a plurality of logic elements (LE) 501 arranged in an array.
  • the logic element 501 is configured by a look-up table (LUT). By rewriting the contents of the LUT, the relationship of the output to the input of the logic element 501 changes.
  • Each logic element 501 is connected by a programmable wiring (not shown). Programmable wiring determines which logic element 501 output is input to which logic element 501 in a programmable manner.
  • a desired circuit function can be realized in the semiconductor integrated circuit 500 by changing the output relationship with respect to the input of the logic element 501 and the connection relationship of each logic element 501.
  • FIG. 2 is a diagram showing a flow of mapping for the conventional logic reconfigurable semiconductor integrated circuit 500.
  • the mapping shown in FIG. 2 is performed for each architecture of the semiconductor integrated circuit 500 that can reconfigure logic by using a dedicated synthesis tool and a P & R (Place and Route) tool.
  • the user describes a circuit function to be realized by using a nodua description language such as HDL (Hardware Description Language) or an advanced language such as C language (S101).
  • a nodua description language such as HDL (Hardware Description Language) or an advanced language such as C language (S101).
  • the synthesis tool performs logic synthesis on the described circuit function (S102). Specifically, the synthesis tool divides the described circuit function into functional units that can be assigned to one logic element 501. Next, the synthesis tool determines the connection relationship between the divided functional units.
  • the logic elements 501 are wired using programmable wiring so as to satisfy the connection relationship determined by the P & R tool force logic synthesis (S104).
  • mapping ends when the predetermined limit is met.
  • logic synthesis may be performed again.
  • Patent Document 2 discloses a technique for constructing a large-scale logic reconfigurable semiconductor integrated circuit with a small number of design steps by connecting two FPGAs on a mask layout.
  • Patent Document 1 US Pat. No. 5,594,363 specification
  • Patent Document 2 US Patent No. 6335635
  • the logically reconfigurable semiconductor integrated circuit disclosed in Patent Document 2 is an aggregate of basic units, and thus has high scalability and is relatively easy to scale up.
  • mapping a large-scale circuit function to a large-scale logic reconfigurable semiconductor integrated circuit the number of combinations that first divide the circuit function to be realized into functional units increases. Furthermore, the combination of which logic element is assigned to each functional unit increases. In addition, the combination of how programmable wiring is used to connect logic elements increases. As a result, the number of mapping combinations increases rapidly as the circuit scale increases. Therefore, the mapping may not converge when trying to realize a circuit function using a large-scale reconfigurable semiconductor integrated circuit to the maximum extent using conventional synthesis tools and P & R tools. On the other hand, there is a cleverness that can solve these problems! /, And synthesis tools and P & R tools currently exist! / ,!
  • the present invention has been made in view of the above, and an object thereof is to provide a logic reconfigurable semiconductor integrated circuit capable of easily mapping a large-scale circuit function.
  • an object when a plurality of reconfigurable cores are mounted on one chip to form a large-scale logic reconfigurable semiconductor integrated circuit, a semiconductor that is easy to design and has a small area.
  • An object is to provide an integrated circuit layout.
  • a semiconductor integrated circuit operates in synchronization with a clock and can reconfigure its own logic. Formed between the reconfigurable core of the first reconfigurable core and the first reconfigurable core and the second reconfigurable core included in the plurality of reconfigurable cores, and the first reconfigurable core.
  • a first register circuit group that temporarily holds the output of the reconfigurable core and outputs the output to the second reconfigurable core, each of the plurality of reconfigurable cores being arranged in an array,
  • a plurality of logic elements each realizing a predetermined logic, and a programmable wiring connecting the plurality of logic elements.
  • the present invention can provide a logic reconfigurable semiconductor integrated circuit capable of easily mapping a large-scale circuit function.
  • the first register circuit group includes a first register circuit that temporarily holds an output of the first reconfigurable core, and data that is output from the first register circuit. And a second register circuit for outputting to the second reconfigurable core.
  • the timing constraint can be relaxed with respect to the delay caused by the wiring distance.
  • the clock input to the first register circuit and the second register circuit is the same clock as the reconfigurable core that is the output destination of the data held by the second register circuit. There may be.
  • the reconfigurable core that outputs data to the first register circuit group and the reconfigurable core that receives data from the first register circuit group are input clock power. It can be different.
  • the plurality of reconfigurable cores are opposed to the first side to which the configuration data for reconfiguring the logic of the reconfigurable core is input and the first side.
  • a third reconfigurable core having a rectangular shape surrounded by a second side, a third side orthogonal to the first side, and a fourth side facing the third side; and
  • the fourth reconfigurable core includes a fourth reconfigurable core, and the third reconfigurable core and the fourth reconfigurable core are separately laid out so that the first sides face each other. May be.
  • configuration data can be supplied from the first side to the third reconfigurable core and the fourth reconfigurable core.
  • the memory circuit that holds the configuration data can be firmly arranged and the chip design is facilitated.
  • the wiring distance from the memory circuit to the third reconfigurable core and the fourth reconfigurable core can be shortened.
  • the functions of the reconfigurable core can be dynamically reconfigured in a short time. Therefore, the present invention provides a semiconductor integrated circuit having a layout that is easy to design and has a small area when a large-scale logic reconfigurable semiconductor integrated circuit is configured by mounting a plurality of reconfigurable cores on one chip. Can be provided.
  • the semiconductor integrated circuit is further formed between the third reconfigurable core and the fourth reconfigurable core, and the third reconfigurable core and the third reconfigurable core;
  • a first memory circuit may be provided that holds configuration data for reconfiguring the logic of the fourth reconfigurable core.
  • the configuration data held in the first memory circuit can be supplied from the first side to the third reconfigurable core and the fourth reconfigurable core.
  • the memory circuit that holds the configuration data can be firmly arranged and the chip design is facilitated.
  • the wiring distance from the first memory circuit to the third reconfigurable core and the fourth reconfigurable core can be shortened.
  • the functions of the reconfigurable core can be dynamically reconfigured in a short time.
  • the plurality of reconfigurable cores further includes a first side, a second side facing the first side, and a third side orthogonal to the first side. And a fifth reconfigurable core and a sixth reconfigurable core having a rectangular shape surrounded by the fourth side facing the third side, and the fifth reconfigurable core.
  • the reusable core and the sixth reconfigurable core are arranged separately so that the first sides face each other, and the third reconfigurable core and the fifth reconfigurable core Are arranged so that the third sides face each other, and the fourth reconfigurable core and the sixth reconfigurable core are separated so that the third sides face each other. May be arranged.
  • each reconfigurable core When a large-scale logically reconfigurable semiconductor integrated circuit is configured by mounting four reconfigurable cores on one chip, each reconfigurable core The signal input / output terminal force used for the same application is placed facing each other between reconfigurable cores. Thereby, chip design can be easily performed. In addition, the wiring distance between the reconfigurable cores can be shortened.
  • the semiconductor integrated circuit is further formed between the fifth reconfigurable core and the sixth reconfigurable core, and includes the fifth reconfigurable core and the fifth reconfigurable core. There may be provided a second memory circuit for holding configuration data for reconfiguring the logic of the sixth reconfigurable core.
  • configuration data held in the second memory circuit can be supplied from the first side to the fifth reconfigurable core and the sixth reconfigurable core.
  • the memory circuit that holds the configuration data can be firmly arranged and the chip design is facilitated.
  • the wiring distance from the second memory circuit to the fifth reconfigurable core and the sixth reconfigurable core can be shortened.
  • the functions of the reconfigurable core can be dynamically reconfigured in a short time.
  • the semiconductor integrated circuit may further include a clock stop circuit for individually stopping the supply of clocks to the first register circuit group.
  • the first register circuit group temporarily holds the output of the first reconfigurable core and outputs the second register circuit group to the second reconfigurable core.
  • a third register circuit group that temporarily holds an output of the second reconfigurable core and outputs the second reconfigurable core to the first reconfigurable core.
  • each of the reconfigurable circuits is configured as an independent circuit.
  • the first register circuit group includes the plurality of reconfigurable cores. The output of one reconfigurable core that is placed between all adjacent reconfigurable cores and temporarily outputs one of the two reconfigurable cores may be temporarily output and output to another reconfigurable core.
  • the same clock may be input to all of the plurality of reconfigurable cores.
  • the first register circuit group may hold a plurality of sets of data including a plurality of bits.
  • the semiconductor integrated circuit according to the present invention can exchange a plurality of data between reconfigurable cores.
  • Each of the logic elements may include a LUT! /.
  • Each of the logic elements includes at least one ALU (Arithmetic Logic
  • the semiconductor integrated circuit further includes a CPU (Central Processing Unit), and the plurality of reconfigurable cores, the first register circuit group, and the CPU are on one semiconductor substrate. May be implemented.
  • CPU Central Processing Unit
  • the mapping device is capable of reconfiguring its own logic, and includes a plurality of reconfigurable cores that are separately laid out and the plurality of reconfigurable cores.
  • a semiconductor integrated circuit comprising a first register circuit group formed between at least two of the figureable cores, temporarily holding the output of one reconfigurable core and outputting the same to another reconfigurable core
  • the mapping apparatus according to the present invention can exclude the register corresponding to the first register circuit group included in the circuit description from the mapping target. Also, the mapping device according to the present invention can map each reconfigurable core independently. Therefore, the mapping apparatus according to the present invention can use a force S to converge the mapping in a short time even when a large-scale circuit function is mapped to a semiconductor integrated circuit capable of logical reconfiguration.
  • the program conversion apparatus is a program conversion apparatus for converting a circuit description in which a circuit function of a circuit composed of a plurality of modules is described, and based on the circuit description, an input signal of the circuit From the calculation means for calculating the constraint between the output signal and the output signal, the generation means for generating or not inserting a register between the plurality of modules, and the plurality of generated patterns, Pattern extraction means for extracting a pattern that satisfies the constraints, and selection means for selecting any one of the extracted patterns and outputting the converted circuit description as a circuit description.
  • the program conversion device can add a register corresponding to the first register circuit group to the circuit description. That is, the product conversion device according to the present invention can convert the circuit description similar to the conventional one described by the designer into a circuit description in which a register is inserted between modules.
  • the program conversion apparatus further includes feedback extraction means for extracting a plurality of modules having a feedback system from the plurality of modules, and the generation means is extracted by the feedback extraction means. Multiple modules in one As a module, a plurality of patterns may be generated without inserting or inserting a register between modules.
  • the program conversion apparatus does not add a register between modules having a feedback system. Thereby, the processing amount of the program conversion apparatus can be reduced.
  • the mapping method according to the present invention is capable of reconfiguring its own logic, and includes a plurality of reconfigurable cores that are laid out separately from each other, and the plurality of reconfigurable cores.
  • a semiconductor integrated circuit comprising a first register circuit group formed between at least two of the cores, temporarily holding an output of one reconfigurable core and outputting to another reconfigurable core,
  • a mapping method in a mapping device for mapping circuit functions described in a circuit description wherein the circuit functions are divided into a plurality of circuit function blocks, and the plurality of circuit functions are divided from the plurality of circuit function blocks.
  • Exclusion step of excluding registers located between blocks, and logical synthesis of each of the excluded circuit function blocks Comprising a forming step and a place and route step of placing and wiring each of said logically combining circuitry functional blocks to each of the reconfigurable Figi Yu Reconfigurable core.
  • the register corresponding to the first register circuit group included in the circuit description can be excluded from the mapping target.
  • Each reconfigurable core can be mapped independently. Therefore, even when mapping a large-scale circuit function to a semiconductor reconfigurable circuit, the mapping can be converged in a short time.
  • the program conversion method according to the present invention is a program conversion method in a program conversion apparatus for converting a circuit description in which circuit functions of a circuit composed of a plurality of modules are described, and based on the circuit description, A calculation step for calculating a constraint between an input signal and an output signal of the circuit, a generation step for generating a plurality of patterns without inserting or inserting a register between the plurality of modules, and the plurality of the generated plurality of patterns.
  • the program conversion method according to the present invention can convert a circuit description similar to the conventional one described by the designer into a circuit description in which a register is inserted between modules.
  • the present invention includes such a semiconductor integrated circuit, a mapping device, a mapping method thereof, a program conversion device, and a mapping method and a program conversion method that can only be realized as the program conversion method. It can also be realized as a program that causes a computer to execute the steps. Needless to say, such a program can be distributed via a recording medium such as a CD-ROM and a transmission medium such as the Internet.
  • the present invention can provide a logic reconfigurable semiconductor integrated circuit capable of easily mapping a large-scale circuit function.
  • the present invention also provides a layout of a semiconductor integrated circuit that is easy to design and has a small area when a large-scale logic reconfigurable semiconductor integrated circuit is configured by mounting a plurality of reconfigurable cores on a single chip. Can provide.
  • FIG. 1 is a diagram showing a configuration of a conventional logic reconfigurable semiconductor integrated circuit.
  • FIG. 2 is a diagram showing a flow of mapping of circuit functions to a conventional logic reconfigurable semiconductor integrated circuit.
  • FIG. 3 is a diagram showing a configuration of a semiconductor integrated circuit according to the first embodiment of the present invention.
  • FIG. 4 is a diagram showing a configuration of a semiconductor integrated circuit capable of logic reconfiguration according to the first embodiment of the present invention.
  • FIG. 5 is a diagram showing a configuration of a reconfigurable core according to Embodiment 1 of the present invention.
  • FIG. 6 is a diagram showing a configuration around a logic element according to Embodiment 1 of the present invention.
  • FIG. 7 is a diagram showing a detailed configuration of the logic element according to the first embodiment of the present invention.
  • FIG. 8 is a diagram showing a configuration of a mapping apparatus according to Embodiment 1 of the present invention.
  • FIG. 9 is a flowchart showing the flow of circuit function mapping according to the first embodiment of the present invention.
  • FIG. 10 is a diagram for explaining assignment to each reconfigurable core in circuit function mapping according to Embodiment 1 of the present invention.
  • FIG. 11 is a flowchart showing a flow of mapping of circuit functions to one reconfigurable circuit in the mapping of circuit functions according to Embodiment 1 of the present invention.
  • FIG. 12 is a diagram showing a configuration of a modified example of the semiconductor integrated circuit according to the first embodiment of the present invention.
  • FIG. 13 is a diagram showing a configuration of a semiconductor integrated circuit according to the second embodiment of the present invention.
  • FIG. 14 is a flowchart showing a process flow of the program conversion apparatus according to the third embodiment of the present invention.
  • FIG. 15 is a diagram for explaining processing of the program conversion apparatus according to the third embodiment of the present invention.
  • FIG. 16 is a diagram for explaining processing of the program conversion apparatus according to the third embodiment of the present invention.
  • FIG. 17 is a diagram for explaining processing of the program conversion apparatus according to the third embodiment of the present invention.
  • FIG. 18 is a diagram for explaining processing of the program conversion apparatus according to the third embodiment of the present invention.
  • FPGA Semiconductor integrated circuit
  • Embodiment 1 of the present invention includes a two-stage register circuit between each of a plurality of reconfigurable cores. As a result, each reconfigurable core can be mapped as an independent circuit. Therefore, even when a large-scale circuit function is mapped to a semiconductor integrated circuit that can be logically reconfigured, it can be easily mapped.
  • FIG. 3 is a diagram showing a configuration of a semiconductor device including the reconfigurable semiconductor integrated circuit according to Embodiment 1 of the present invention.
  • a semiconductor device 1 shown in FIG. 3 includes a CPU 10, a RAM (Random Access Memory) 11, a DMA (Direct Memory Access) 12, a hardware circuit 13, and an FPGA 100.
  • a CPU Central Processing Unit
  • RAM Random Access Memory
  • DMA Direct Memory Access
  • the CPU 10 performs overall control of the semiconductor device 1.
  • the RAM 11 is a readable / writable storage unit.
  • the DMA 12 performs data transfer between the FPGA 100 and the hardware circuit 13 and the RAMI 1.
  • the hardware circuit 13 is a circuit composed of dedicated hardware that realizes a predetermined function.
  • the FPGA 100 is a reconfigurable semiconductor integrated circuit and is an example of a semiconductor integrated circuit according to the present invention.
  • the CPU 10, the RAM 11, the DMA 12, the hardware circuit 13, and the FPGA 100 are mounted on one semiconductor substrate. That is, the semiconductor integrated circuit (FPGA) 100 according to the first embodiment of the present invention is configured as one circuit block in a so-called SOC.
  • FPGA semiconductor integrated circuit
  • FIG. 4 is a diagram showing a configuration of a semiconductor integrated circuit 100 capable of logic reconfiguration according to the first embodiment of the present invention.
  • a semiconductor integrated circuit 100 shown in FIG. 4 is a semiconductor integrated circuit capable of logic reconfiguration.
  • the semiconductor integrated circuit 100 includes four reconfigurable cores 101A, 101B, 101C, and 101D, a plurality of register circuits 102, and two memories 103A and 103B.
  • Reconfigurable cores 101A, 101B, 101C, and 101D are circuits each capable of reconfiguring their own logic. Note that the reconfigurable cores 101A, 101B, 101C, and 101D are referred to as reconfigurable cores 101 unless otherwise distinguished.
  • the reconfigurable core 101 is a circuit that can change the internal connection relationship according to configuration data input from the outside of the core and reconfigure the logic accordingly. It should be noted that a plurality of sets of configuration data can be stored in advance in the reconfigurable core 101.
  • Each reconfigurable core 101 has a rectangular shape, which is east (E), west (W), and south.
  • the reconfigurable core 101 has four sides (S) and north (N).
  • the reconfigurable core 101 has different internal wiring structures in the east-west direction and the north-south direction, which are not symmetrical about these four sides.
  • configuration data for reconfiguring the logic of the reconfigurable core 101 is input from the S direction.
  • Each reconfigurable core 101 is handled as a hard macro in terms of chip design, which makes it possible to easily mount multiple cores on one chip.
  • the reconfigurable core 101 operates in synchronization with the clock.
  • separate clocks CLKA, CLKB, CLCK, and CLKD are input to each reconfigurable core 101.
  • FIG. 5 is a diagram showing a configuration of the reconfigurable core 101 (101A, 101B, 101C, and 101D).
  • the reconfigurable core 101 includes a plurality of logic elements (LE) 201, a plurality of switch boxes (SB) 202, a plurality of wiring box groups (CB) 203, and IO units 204 N, 204E, 204S, and 204W. And a wiring group extending in the row direction and the column direction.
  • the plurality of logic elements 201 are arranged in an array, and each implements a predetermined logic.
  • the logic element 201 is a functional element that can change its function (relationship between input and output) according to configuration data.
  • the switch box 202 determines which wiring and which wiring are to be connected in accordance with the configuration data. In the wiring box group 203, it is determined to which wiring the input and output of the logic element 201 are connected according to the configuration data.
  • the switch box 202 By controlling the connection relationship between the switch box 202 and the wiring box group 203, it is possible to programmably determine which output of which logic element 201 is connected to which input of which logic element 201. Therefore, in the present embodiment, the switch box 202, the wiring box group 203, and the wiring group are collectively referred to as simply programmable wiring. Also called a line. In addition to the programmable wiring, a clock wiring is also provided in the reconfigurable core 101.
  • IO sections 204N, 204E, 204S and 204W are input / output circuits arranged in the east, west, north and south directions of the reconfigurable core plate.
  • the IO unit 204N is arranged in the N direction of the reconfigurable core 101.
  • IO section 204N is arranged in the N direction of the reconfigurable core 101.
  • the IO unit 204E is arranged in the E direction of the reconfigurable core 101.
  • the IO unit 204S is arranged in the S direction of the reconfigurable core 101.
  • the IO unit 204S has input / output for application data bus and control. Furthermore, IO section 204S
  • the IO unit 204W is arranged in the W direction of the reconfigurable core 101.
  • the IO unit 204W has a control input / output.
  • the input / output for the application data bus is another reconfigurable core.
  • the control input / output is used for input / output of control signals to / from external hardware such as the CPU 10, the DMA 12, and the hardware circuit 13.
  • the configuration data input / output is used to input configuration data from the memories 103A and 103B.
  • the wiring structure of the reconfigurable core 101 can be simplified.
  • an optimal layout arrangement according to the application can be realized.
  • FIG. 6 is a diagram for explaining the inside of the reconfigurable core 101 in more detail.
  • Figure 6 shows one logic element 201 and a switch box 20 around it.
  • FIG. 2 is a diagram showing the configuration of a wiring box group 203.
  • the logic element 201 is a functional element with four inputs and two outputs, and the input is provided in the west direction and the output is provided in the east direction.
  • the wiring box group 203 is this east-west
  • the force to connect the input / output of the logic element 201 extending in the direction to any of the wiring extending in the north-south direction is determined in a programmable manner.
  • the switch box 202 connects the wiring extending in the east-west direction and the wiring extending in the north-south direction in a programmable manner.
  • the output of the logic element 201 can be connected once to the north-south direction wiring and then to the east-west direction wiring via the wiring box group.
  • the clock is supplied to the logic element 201 through a wiring different from the programmable wiring.
  • FIG. 7 is a diagram showing a detailed configuration of the logic element 201.
  • the logic element 201 includes a lookup table (LUT) 210, a plurality of programmable multiplexers 211, and a flip-flop 212.
  • One lookup table 210 is composed of a small memory. The relationship of the output with respect to the input of the lookup table 210 is changed by rewriting the contents held in the memory. The signal selected by each of the plurality of programmable multiplexers 211 is determined according to the configuration data or the output from other logic elements 201.
  • each reconfigurable core 101 has a configuration in which a plurality of logic elements 201 are arranged in an array, so that the logic elements are included in the reconfigurable core 101 as a hard macro.
  • the programmable wiring to connect 201 is densely wired.
  • the wiring from the IO for application data bus, control, and configuration is wired as relatively sparse wiring.
  • wiring for connecting the semiconductor integrated circuit 100 to another circuit block on the same chip is wired. That is, each reconfigurable core 101 is separated on the chip layout, and its wiring structure is clearly different between the inside and the outside.
  • Memories 103A and 103B are reconfigurable cores
  • Memory 103A is a configuration for reconfiguring the logic of the reconfigurable cores 101A and 101C. Stores calibration data.
  • the memory 103B stores configuration data for reconfiguring the logic of the reconfigurable cores 101B and 101D.
  • the memory 103A is arranged between the reconfigurable core 101A and the reconfigurable core 101C.
  • the memory 103B is arranged between the reconfigurable core 101B and the reconfigurable core 101D.
  • the reconfigurable core 101A and the reconfigurable core 101C are arranged so that the S direction faces each other.
  • the reconfigurable core 101B and the reconfigurable core 101D are arranged so that the S direction faces each other. Since the configuration data is input only from the S direction, such a layout makes it possible to arrange the memory 103 in a solid manner and facilitate chip design. Also, the wiring distance from the memory 103 to each reconfigurable core 101 can be shortened. As a result, the functions of the reconfigurable core can be dynamically reconfigured in a short time.
  • the memory 103 and the reconfigurable core 101 are connected by a multi-bit bus.
  • the reconfigurable core 101A and the reconfigurable core 101B are arranged so that the E direction faces each other.
  • the reconfigurable core 101C and the reconfigurable core 101D are arranged so that the E direction faces each other.
  • IO for the application data bus is arranged in the E direction of the reconfigurable core 101.
  • the effect of wiring delay is not a problem for control signal wiring. Therefore, the wiring distance of the application data bus between the reconfigurable cores 101 can be shortened by arranging the plurality of reconfigurable cores 101 so that the E directions face each other. As a result, the influence of the wiring delay of the application data bus can be reduced.
  • the logically reconfigurable semiconductor integrated circuit 100 includes a register circuit 102 between each of the reconfigurable cores 101 adjacent in the vertical direction or the horizontal direction. Two stages are provided.
  • Each register circuit 102 includes a plurality of flip-flops, and can hold a plurality of sets of data composed of a plurality of bits (for example, 16 bits). 2 stages each The register circuit is formed between all adjacent reconfigurable cores 101.
  • Each of the two-stage register circuits 102 temporarily holds the output of the reconfigurable core 101 serving as the data output source and outputs it to the reconfigurable core 101 serving as the data input destination.
  • the previous-stage register circuit 102 holds the data output from the reconfigurable core 101, which is the data output source, in synchronization with the clock and outputs the data to the subsequent-stage register circuit 102.
  • the latter-stage register circuit 102 holds the data output from the previous-stage register circuit 102 in synchronization with the clock and outputs the data to the reconfigurable core 101 that is the data input destination. .
  • a two-stage register circuit 102 that outputs to one reconfigurable core 101 and a two-stage register circuit 102 that temporarily holds the output of the other reconfigurable core 101 and outputs to one reconfigurable core 101 are formed.
  • Each reconfigurable core 101 exchanges data through the register circuit 102 in two stages. Thereby, each reconfigurable core 101 can be handled as an independent circuit. Even if the logic reconfigurable semiconductor integrated circuit 100 as a whole becomes a large-scale circuit, each reconfigurable core 101 itself must be an independent 1 / 4-sized circuit. Therefore, even when trying to map a large-scale circuit function, the number of mapping combinations within each reconfigurable core 101 can be limited. Therefore, circuit functions can be mapped at high speed. Details of the mapping will be described later.
  • one reason for providing two stages of the register circuit 102 is to relax the timing constraint on the delay caused by the wiring distance.
  • the register circuit 102 stores the output data from the logic element 201 at the farthest position of the reconfigurable core 101 that is the data output source at a certain clock edge.
  • the data must be output to the logic element 201 at the farthest position of the reconfigurable core 101 that is the data input destination at the next clock edge, and the timing constraint becomes severe.
  • two stages of register circuit 102 are provided. This relaxes this constraint.
  • the first-stage register circuit 102 is arranged near the reconfigurable core 101 side that is the data output source, and the second-stage register circuit 102 is the data input It is placed near the reconfigurable core 1101 side.
  • the same clock as the clock input to the reconfigurable core 101 that is the data output destination is input to the register circuit 102.
  • the same clock CLKC as that of the reconfigurable core 101C is supplied to the register circuit 102 provided on the path through which data is transferred from the reconfigurable core 101A to the reconfigurable core 101C.
  • FIG. 8 is a diagram showing a hardware configuration of the mapping apparatus according to Embodiment 1 of the present invention.
  • the mapping device 400 shown in FIG. 8 maps the circuit functions described in the circuit description to the semiconductor integrated circuit 100 described above.
  • the mapping device 400 is, for example, a personal computer.
  • the mapping apparatus 400 is provided with a keyboard 401, a display 402, a CPU 403, a ROM 404, and a RAM 405.
  • the keyboard 401 receives an operation by a designer.
  • a display 402 displays processing results and the like to the designer.
  • the CPU 403 controls the entire mapping apparatus 400 by executing a program 406 stored in the ROM 404.
  • the ROM 404 is a read-only memory that stores a program 406 executed by the CPU 403.
  • the program 4006 may be held in a non-illustrated non-volatile memory or HD (Hard Disk).
  • the RAM 405 is a readable / writable memory that holds work data used when the CPU 403 executes the program 406. With the above configuration, the CPU 403 of the mapping apparatus 400 executes the program 406, thereby mapping the circuit function described in the circuit description to the semiconductor integrated circuit 100.
  • mapping by the mapping apparatus 400 may be realized by dedicated hardware.
  • FIG. 9 is a flow chart showing a flow of mapping of circuit functions to the semiconductor integrated circuit 100.
  • the designer describes a circuit function to be mapped to the logic reconfigurable semiconductor integrated circuit 100 (S201).
  • a hardware description language such as HDL or a high-level language such as C language is used.
  • designers describe large-scale circuit functions by dividing them into multiple processing modules, and describe them so that there is a two-cycle delay between these processing modules. As a result, a two-stage register circuit is inserted between each processing module.
  • the mapping apparatus 400 divides the circuit function described in the circuit description described by the designer into a plurality of circuit function blocks (S202). Specifically, the mapping apparatus 400 once bundles the processing modules included in the circuit description and then subdivides them into four blocks. The mapping device hits the re-divided block against the four reconfigurable cores 101. Next, the mapping apparatus 400 excludes the two-stage register located between the four blocks from the mapping target to the reconfigurable core 101 in order to allocate the register circuit 102 (S203).
  • FIG. 10 is a diagram for explaining the assignment process to each reconfigurable core 101 in step S202 and the assignment process to register circuit 102 in step S203.
  • mapping apparatus 400 when a designer inputs a circuit description of a large-scale circuit divided into six processing modules 221A to 221F will be described with reference to FIG.
  • data is input from the module 221E, and after performing predetermined arithmetic processing, the result of the arithmetic processing is output from the module 221D.
  • the circuit description is described by the designer so that two stages of registers are inserted between each module. (2 cycle delays are described). However, no register is inserted between the module 221A and the module 221B due to the limitation of the algorithm of the arithmetic processing.
  • the mapping apparatus 400 divides this circuit description into four blocks in consideration of the circuit scale and speed of each processing module. Also, mapping apparatus 400 assigns the divided blocks to each reconfigurable core.
  • the mapping device 400 includes modules 221A and 221B for the reconfigurable core 101A, modules 221C and 221D for the reconfigurable core 101B, module 221E for the reconfigurable core 101C, and module 221F for the reconfigurable core 101B.
  • mapping apparatus 400 assigns register 222A existing between module 221A and module 221E to register circuit 102 provided between reconfigurable cores 101A and 101C.
  • the mapping apparatus 400 assigns the register 222B between the module 221B and the module 221D to the register circuit 102 provided between the reconfigurable cores 101A and 101B.
  • the mapping apparatus 400 assigns the register 222D provided between the modules 221C and 221F to the register circuit 102 provided between the reconfigurable cores 101B and 101D.
  • the mapping apparatus 400 assigns the register 222E provided between the modules 221E and 221F to the register circuit 102 provided between the reconfigurable cores 101C and 101D.
  • the mapping apparatus 400 excludes the registers 222A, 222B, 222D, and 222F that are harmful to the register circuit 102 from the mapping target.
  • the mapping device 400 maps the register 222C provided between the module 221C and the module 221D assigned to one reconfigurable core 101B to the reconfigurable core 101. Leave on subject.
  • FIG. 11 is a flowchart showing a flow of mapping of circuit functions to one reconfigurable core 101 in step S204.
  • mapping apparatus 400 obtains a circuit description of a block that is subdivided in step S202 and from which a register is excluded in step S203 (S301). [0112] Next, the mapping apparatus 400 acquires a constraint condition for mapping (S302).
  • the constraint conditions are conditions related to speed, area, and the like. Further, for example, the constraint condition is input to the mapping apparatus 400 by the designer.
  • the mapping apparatus 400 logically synthesizes the circuit description acquired in step S301 (S303). Specifically, the mapping apparatus 400 divides the circuit function described in the circuit description into functional units that can be assigned to one logic element 201. The mapping apparatus 400 determines the connection relationship of the divided functional units. Next, the mapping apparatus 400 arranges the divided functional units on the logic element 201 in the actual circuit (S304). Thereby, the function (relationship of output to input) of each logic element 201 is determined.
  • mapping apparatus 400 wires each logic element 201 using programmable wires so as to satisfy the connection relationship determined by logic synthesis (S305). Note that the placement on the logic element 201 and the connection of the logic element 201 by programmable wiring may be performed as one process or as a divided process.
  • the mapping apparatus 400 determines whether or not the arranged and wired circuit satisfies the constraint condition acquired in Step S302 (S306). When the constraint condition is satisfied (Yes in S306), the block synthesis, placement, and wiring are completed. If the constraint condition is not satisfied (No in S306), it is determined whether or not the next mapping device 400 (or a predetermined number of steps S304 to S306 has been repeated (S307). If the repetition process is not performed (No in S307), the mapping apparatus 400 performs the placement and wiring process (S304 and S305) again, that is, the mapping apparatus 400 performs the placement and wiring process (S304 and S305). ) Is repeated until the constraint condition is satisfied, and if the constraint condition is not satisfied even if the processing is repeated a predetermined number of times (Yes in S307), the mapping device 400 cannot map to the block. To finish the process.
  • the mapping apparatus 400 satisfies the constraint condition even if the processing is repeated a predetermined number of times. If not, a message indicating that the constraint condition cannot be satisfied may be displayed. As a result, the constraint condition is reviewed by the designer, and the mapping apparatus 400 can acquire the newly input constraint condition (S302) and perform the processing of steps S303 to S306 for the new constraint condition.
  • mapping device 400 maps the circuit functions divided for each reconfigurable core 101, it maps a large-scale circuit description to one large-scale reconfigurable core as before. Compared to the case, the process can be converged in a short time.
  • mapping apparatus 400 determines whether or not the restriction condition is satisfied for all four reconfigurable cores 101 (S205). If it is satisfied! /, (Yes in S205), the mapping of the circuit description of the large-scale circuit is completed.
  • mapping device 400 (or the mapping process in steps S202 to S204) when the constraint condition is satisfied for any one or more of the reconfigurable cores 101, if the constraint condition is met (No in S205) (S206) If the predetermined number of repetitions has not been performed (No in S206), the mapping apparatus 400 performs the processing from step S202 onward again. If the number of repetitions has been performed (Yes in S206), the mapping apparatus 400 determines that the circuit function described in Step S201 cannot be mapped to the logically reconfigurable semiconductor integrated circuit 100. .
  • steps S202, S203, S205, and S206 also, the mapping device 400 force, the method that is executed using the dedicated point tool included in the S program 406, and the synthesis tool that is executed
  • the processing of S204 can be realized by causing the mapping apparatus 400 to execute a synthesis tool and a P & R tool similar to the conventional one included in the program 406.
  • the mapping apparatus 400 can perform mapping by treating each reconfigurable core 101 as an independent circuit. Therefore, the mapping is completed in a short time. Furthermore, since the reconfigurable core 101 and the register circuit 102 are provided in the same chip, and the register circuit 102 is driven by the same clock as the clock supplied to the reconfigurable core 101, The semiconductor integrated circuit 100 can operate at the same speed as a single large-scale logic reconfigurable semiconductor integrated circuit.
  • Three or more stages of register circuits 102 may be provided.
  • the clocks of the reconfigurable cores 101 are asynchronous
  • at least the two-stage register circuit 102 in the subsequent stage is a reconfigurable data input destination as a measure against the metastable. It is desirable to supply the same clock as the universal core 101.
  • the register circuit 102 may be one stage. As described above, when the register circuit 102 has one stage, the timing constraint becomes severe. However, if the distance between the reconfigurable cores 101 is short! /, And if the circuit scale of the reconfigurable core 101 is small! /, The register circuit 102 has only one stage. However, timing constraints can be observed. When the register circuit 102 has one stage, it is desirable that the register circuit 102 be arranged at an equal distance from the reconfigurable core 101 that is the data output source and the reconfigurable core 101 that is the data input destination. Masle.
  • the two-stage register circuit 102 is formed in one or more of the forces formed between the adjacent reconfigurable cores 101 between the adjacent reconfigurable cores 101. It only has to be done. Also, only one register circuit 102 that holds data transmitted from one of the two adjacent reconfigurable cores 101 to the other reconfigurable core 101 is provided. Reconfigurable core 10 Register register that holds data sent to one reconfigurable core 101 from 1 The path 102 may not be provided.
  • a two-stage register circuit 102 may be formed between non-adjacent reconfigurable cores 101.
  • a two-stage register circuit 102 may be formed between the reconfigurable core 101A and the reconfigurable core 101D.
  • a two-stage register circuit 102 may be formed between the reconfigurable core 101B and the reconfigurable core 101B.
  • the semiconductor integrated circuit 100 is configured as one circuit block in a so-called SOC.
  • the semiconductor integrated circuit 100 is a single-scale LSI (Large Scale Integration) by itself. ).
  • the logic element 201 it is also possible to use one or a plurality of ALUs that are not LUTs. Signal processing operations such as image encoding, image decoding, and encryption processing are often composed of simple operations. Therefore, by using one or a plurality of ALUs as the logic element 201, the reconfigurable core 101 optimal for signal processing calculation can be realized.
  • the logically reconfigurable semiconductor integrated circuit 100 according to the present invention is configured as one circuit block in the SOC, the processing of the control system can be left to the CPU 10, so the ALU is used as the logic element 201. It is preferable to use the reconfigurable core 101.
  • conventional SOC when it is necessary to realize various types of signal processing, dedicated hardware is designed for each signal processing.
  • one or more ALUs are used as the logic element 201 and the SOC including the CPU 10 is used, all processing is performed by one semiconductor reconfigurable semiconductor integrated circuit 100 without providing dedicated hardware. be able to.
  • the reconfigurable cores 101A, 101B, 101C, and 101D may have the same configuration but different power.
  • the number of logic elements 201 included in each reconfigurable core 101 may be different.
  • each reconfigurable core 101 is kept powered on.
  • the configuration of the four IO units included in the reconfigurable core 101 is not limited to the configuration shown in FIG. As long as configuration data is input from the S direction, the configuration of the IO unit may be arbitrary.
  • the force semiconductor integrated circuit 100 for which four examples of the reconfigurable core 101 have been described may include a plurality of reconfigurable cores 101.
  • the semiconductor integrated circuit 100 may include two, three, five or more reconfigurable cores 101.
  • the memory 103 is a set of reconfigurable cores facing in the S direction.
  • FIG. 12 shows a modified example of the semiconductor integrated circuit 100 according to the first embodiment, and shows a configuration of a semiconductor integrated circuit 150 including one memory 103 for each reconfigurable core 101.
  • the semiconductor integrated circuit 150 includes four memories 103A, 103B, 103C, and 103D.
  • the memory 103A stores configuration data input to the reconfigurable core 101A.
  • the memory 103B stores configuration data input to the reconfigurable core 101B.
  • the memory 103C stores configuration data input to the reconfigurable core 101C.
  • the memory 103D stores configuration data input to the reconfigurable core 101D.
  • the semiconductor integrated circuit according to the second embodiment of the present invention includes a register circuit 102 and a reconfigurable circuit. It has a function of stopping the supply of the clock to the giulable core 101. This can reduce extra power consumption.
  • FIG. 13 is a diagram showing a configuration of the semiconductor integrated circuit according to the second embodiment of the present invention.
  • a semiconductor integrated circuit 200 shown in FIG. 13 includes a plurality of first clock stop circuits 104 and a plurality of second clock stops in addition to the configuration of the semiconductor integrated circuit 100 according to the first embodiment shown in FIG. Circuit 105.
  • symbol is attached
  • the first clock stop circuit 104 is formed corresponding to each of the plurality of reconfigurable cores 101.
  • the first clock stop circuit 104 controls whether or not a clock is supplied to the corresponding reconfigurable core 101.
  • the first clock stop circuit 104 stops the supply of the clock to the reconfigurable core 101 when the corresponding reconfigurable core 101 is not used.
  • the first clock stop circuit 104 supplies the clock to the register circuit 102 used for inputting a signal to the reconfigurable core 101 when the corresponding reconfigurable core 101 is not used! / Stop.
  • the first clock stop circuit 104 stops the clock supply when no circuit is configured in the corresponding reconfigurable core 101.
  • the second clock stop circuit 105 is formed corresponding to each of the two-stage register circuits 102.
  • the second clock stop circuit 105 controls the supply of the clock to the corresponding register circuit 102.
  • the second clock stop circuit 105 stops the supply of the clock to the register circuit 102 when the signal transmission using the corresponding register circuit 102 is not performed. For example, even if the reconfigurable cores 101A and 101B are operating, there may be no signal transmission between them. In such a case, it is not necessary to supply a clock to the register circuit 102 between the reconfigurable cores 101A and 101B. In addition, there is a force S with signal transmission from the reconfigurable core 101A to the reconfigurable core 101B, and there may be no signal transmission in the reverse direction. In that case, the clock supply only to the register circuit 102 inserted in the path for signal transmission from the reconfigurable core 101B to the reconfigurable core 101A should be stopped.
  • the semiconductor integrated circuit 200 according to Embodiment 2 of the present invention is not used Stop supplying the clock to the Configurable Core 101. This can reduce extra power consumption.
  • the semiconductor integrated circuit 200 stops supplying the clock to the register circuit 102 that is not used. Thereby, extra power consumption can be reduced.
  • the semiconductor integrated circuit 200 has a first clock stop circuit 104 corresponding to each of all the reconfigurable cores 101, and the semiconductor integrated circuit 200 has a reconfigurable core.
  • One or more first clock stop circuits 104 corresponding to one or more of the powers of the ruble core 101 may be provided. In this case, when mapping the circuit function, mapping may be preferentially performed on the reconfigurable core 101 in which the corresponding first clock stop circuit 104 is not provided.
  • the semiconductor integrated circuit 200 includes a second clock stop circuit 105 corresponding to each of all the register circuits 102.
  • the semiconductor integrated circuit 200 includes any power of the register circuit 102.
  • One or more second clock stop circuits 105 corresponding to one or more may be provided.
  • Embodiment 3 describes a program conversion apparatus that performs processing for inserting a two-stage register circuit into a circuit description.
  • the function of the program conversion device according to the third embodiment of the present invention is realized, for example, when a personal computer or the like executes the program.
  • the program conversion apparatus according to Embodiment 3 has the same configuration as that shown in FIG. That is, the function of the program conversion device is realized by the CPU 403 executing the program 406. Note that the function of the program conversion apparatus according to the third embodiment of the present invention may be realized by dedicated hardware.
  • the program conversion apparatus converts a circuit description similar to the conventional one into a state that can be mapped by the mapping apparatus 400 according to the first embodiment described above.
  • the program conversion apparatus according to the third embodiment of the present invention provides a circuit description between circuit modules in which a circuit function of one large-scale circuit composed of a plurality of process modules is described. Select a two-stage register circuit selectively.
  • FIG. 14 is a flowchart showing a process flow of the program conversion apparatus according to the third embodiment of the present invention.
  • 15 to 18 are diagrams for explaining the processing of the program conversion apparatus.
  • the program conversion apparatus acquires a circuit description that is described by the designer and that maps to a logic reconfigurable semiconductor integrated circuit (S401).
  • the circuit description acquired by the program conversion device is a circuit description in which circuit functions are described as a plurality of processing modules by the designer.
  • a hardware description language such as HDL or a high-level language such as C language is used.
  • the program conversion apparatus acquires the circuit description shown in FIG.
  • the program conversion device based on the circuit description acquired in step S401, satisfies the relationship between the input signal and the output signal when the circuit function composed of a plurality of processing modules is a single circuit. (Constraint) is calculated (S402). Specifically, the program conversion device is based on the number of cycles required for processing of each processing module included in the circuit description, and the number of cycles from when the input signal of the entire circuit is input until a valid output signal is obtained. Is calculated. For example, as a restriction, the program conversion apparatus calculates the number of cycles from when the input signal INO shown in FIG. 15 is input until the output signal OUTO is obtained as 5 cycles or less. As a restriction, the program conversion device calculates the number of cycles from when the input signal INO is input until the output signal OUT1 is obtained as 3 cycles or less.
  • the program conversion apparatus sets a virtual module (S403). Specifically, the program conversion apparatus extracts a plurality of modules having a feedback system from the plurality of modules and sets them as one virtual module. For example, as shown in FIG. 16, since the output of the module 301E feeds back to the module 301C, the program conversion apparatus sets the module 301C and the module 301E as one virtual module 301F.
  • the program conversion device is a module that does not have a feedback system. 301A, 301B and 301D are each set as one module. That is, the program conversion apparatus treats the modules 301A, 301B, 301D and the virtual module 301F as one module each in the subsequent processing.
  • the program conversion apparatus inserts a register between each of the modules 301A, 301B, 301D and the virtual module 301F, or generates a pattern that does not insert (S404).
  • the pattern having the maximum number of registers is shown in FIG. 17, as shown in FIG. 17, in each of the modules 301A, 301B, 301D and the temporary module 301F.
  • 302AF, 302BD, and 302BF are inserted patterns.
  • the program conversion apparatus generates a pattern in which one or more of the registers 302AB, 302AD, 302AF, 302BD, and 302BF are inserted, and a pattern in which all are not inserted.
  • the registers 302AB, 302AD, 302AF, 302BD, and 302BF are referred to as registers 302 unless otherwise distinguished.
  • each inserted register 302 is a two-stage register.
  • the program conversion apparatus extracts a pattern satisfying the constraint calculated in step S402 from among the plurality of patterns generated in step S404 (S405).
  • the program conversion apparatus determines whether or not the constraint calculated in step S402 is satisfied for each of the plurality of patterns generated in step S404. For example, if at least one of the registers 302BD and 302BF is inserted and the constraint is not satisfied, the program conversion apparatus satisfies the constraint on the pattern in which the registers 302AB, 302AD, and 302AF shown in FIG. 18 are inserted. Extract as a pattern. Further, the program conversion apparatus extracts a pattern in which one or more of the registers 302AB, 302AD, and 302AF are inserted and a pattern in which none is inserted as a pattern that satisfies the constraints.
  • the program conversion device selects any one of the patterns extracted in step S405 (S406).
  • the program conversion apparatus selects a pattern having the largest number of registers to be inserted among the extracted patterns. That is, in the example shown in FIG.
  • the program conversion device selects the pattern in which the registers 302AB, 302AD, and 302AF are inserted.
  • the processing after step S202 shown in FIG. 9 is executed by the mapping apparatus 400 described above for the selected pattern.
  • the program conversion apparatus differs from the pattern selected in step S406 among the patterns extracted in step S405. Select a pattern.
  • the mapping apparatus 400 executes the processing after step S202 for the newly selected pattern.
  • the program conversion apparatus can add a register corresponding to the register circuit 102 to the circuit description. That is, the program conversion apparatus according to Embodiment 3 of the present invention can convert a circuit description similar to the conventional one described by the designer into a circuit description in which a two-stage register is inserted between modules.
  • the program conversion apparatus can extract only a pattern satisfying a restriction from a plurality of patterns into which a register is inserted.
  • the program conversion apparatus does not add a register between modules having a feedback system.
  • a register is added between modules having a feedback system, it is complicated to determine whether or not the constraint in step S405 is satisfied, and the processing amount of the program conversion apparatus increases. Since the program conversion apparatus according to Embodiment 3 does not add a register between modules having a feedback system, the amount of processing can be reduced.
  • the program conversion apparatus obtains a circuit description in which circuit functions are described as a plurality of processing modules in step S401, and the program conversion apparatus acquires one large-scale circuit description.
  • the obtained circuit description may be divided into a plurality of processing modules.
  • the program conversion apparatus calculates the constraint based on the circuit description in step S402.
  • the program conversion apparatus may use the constraint input by the designer.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Manufacturing & Machinery (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Logic Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

明 細 書
半導体集積回路、プログラム変換装置及びマッピング装置
技術分野
[0001] 本発明は、半導体集積回路、プログラム変換装置及びマッピング装置に関し、特に
、複数のリコンフィギユラブルコアを備える半導体集積回路に関する。
背景技術
[0002] 従来、 FPGA (Field Programmable Gate Array)に代表される自己の論理を 再構成することが可能な半導体集積回路 (以下、「論理再構成可能な半導体集積回 路」と記す。)が存在する。
[0003] 図 1は、従来の論理再構成可能な半導体集積回路の全体構成を示す図である。図
1に示す従来の論理再構成可能な半導体集積回路 500は、アレイ状に配置される複 数のロジックエレメント (LE) 501を備える。論理再構成可能な半導体集積回路の一 つである FPGAでは、ロジックエレメント 501は、ルックアップテーブル(LUT)で構成 される。 LUTの内容を書き換えることによって、ロジックエレメント 501の入力に対する 出力の関係が変化する。また、各々のロジックエレメント 501は図示しないプログラマ ブルな配線で接続される。プログラマブルな配線により、何れのロジックエレメント 50 1の出力が何れのロジックエレメント 501に入力されるかがプログラマブルに決定され る。以上のように、ロジックエレメント 501の入力に対する出力の関係と、各々のロジッ クエレメント 501の接続関係とを変更することによって、半導体集積回路 500に所望 の回路機能を実現できる。
[0004] また、プログラマブルな配線につ!/、ては、全てのロジックエレメントが全てのロジック エレメントと直接接続されるようにすると最も接続の自由度が高くなるが、配線リソース が膨大となって現実的ではない。一方で 1つのロジックエレメントが 1つのロジックエレ メントとし力、接続できないとすると自由度がない。配線リソースと自由度とのバランスを とってどのような配線構造とすると効率がよいかについては様々に考えられており、一 例として特許文献 1に記載される技術が知られて!/、る。
[0005] 次に、図 1に示す論理再構成可能な半導体集積回路 500に所望の回路機能をマ ッビングする方法について図 2を用いて説明する。図 2は、従来の論理再構成可能な 半導体集積回路 500に対するマッピングの流れを示す図である。図 2に示すマツピン グは論理再構成可能な半導体集積回路 500のァーキテクチユア毎に専用の合成ッ ール及び P&R (Place and Route)ツールを用いて行われる。
[0006] まず、ユーザは、 HDL (Hardware Description Language)などのノヽードゥエ ァ記述言語、又は C言語などの上級言語を用いて、実現すべき回路機能を記述する (S 101)。次に、合成ツールが、記述された回路機能に対して論理合成を行う(S10 2)。具体的には、合成ツールは、記述された回路機能を 1つのロジックエレメント 501 に割り当て可能な機能単位に分割する。次に、合成ツールは、分割された機能単位 間の接続関係を決定する。
[0007] 次に、 P&Rツール力 分割された機能単位を実回路におけるロジックエレメント 50 1上に配置する(S103)。これにより、各々のロジックエレメント 501の機能(入力に対 する出力の関係)が決定される。
[0008] 次に、 P&Rツール力 論理合成によって決定された接続関係を満たすように、プロ グラマブルな配線を用いてロジックエレメント 501間を配線する(S 104)。
[0009] 以上の配置及び配線を、速度(タイミング)及び回路領域(面積)に対する所定の制 限が満たされるまで繰り返す。所定の制限が満たされた場合に、マッピングが終了す る。また、所定の制限が満たされない場合には、論理合成を再度行うこともある。
[0010] なお、 2つの FPGAをマスクのレイアウト上で接続することにより、少ない設計工数 で大規模な論理再構成可能な半導体集積回路を構築する手法が特許文献 2に開示 されている。
特許文献 1:米国特許第 5594363号明細書
特許文献 2 :米国特許第 6335635号明細書
発明の開示
発明が解決しょうとする課題
[0011] しかしながら、近年、デジタル TV及び携帯電話に代表されるデジタル機器の多機 能化は目覚ましぐこれらのデジタル機器で処理される内容も複雑になっている。こ れに伴い、論理再構成可能な半導体集積回路を用いて実現すべき回路機能も大規 模化が進んでおり、大規模な論理再構成可能な半導体集積回路に大規模な回路機 能をマッピングする必要性が高まってレ、る。
[0012] 特許文献 2に開示される論理再構成可能な半導体集積回路は、基本単位の集合 体であるのでスケーラビリティに富み、かつ規模拡張が比較的容易である。しかしな がら、大規模な論理再構成可能な半導体集積回路に大規模な回路機能をマツピン グする場合、まず実現すべき回路機能を機能単位に分割する組み合わせが増大す る。さらに各々の機能単位をどのロジックエレメントに割り当てるかの組み合わせが増 大する。さらにプログラマブルな配線をどのように用いてロジックエレメント間を接続す るかの組み合わせも増大する。結果として、回路規模の増大に伴ってマッピングの組 み合わせは急激に増大する。したがって、従来の合成ツール及び P&Rツールを用 いて大規模な再構成可能な半導体集積回路を最大限用いて回路機能を実現しょう とした場合、マッピングが収束しないことも考えられる。一方でこれらの課題を解決で きるような賢!/、合成ツール及び P&Rツールは現状では存在して!/、な!/、。
[0013] 本発明は上記に鑑みてなされたものであり、大規模な回路機能を容易にマッピング することが可能な論理再構成可能な半導体集積回路を提供することを目的とする。
[0014] さらに、別の目的として、複数のリコンフィギユラブルコアを 1チップに実装して大規 模な論理再構成可能な半導体集積回路を構成する場合に、設計が容易かつ小面積 となる半導体集積回路のレイアウトを提供することを目的とする。
課題を解決するための手段
[0015] 上記目的を達成するために、本発明に係る半導体集積回路は、クロックに同期して 動作し、自己の論理を再構成することが可能であり、各々が分離してレイアウトされる 複数のリコンフィギユラブルコアと、前記複数のリコンフィギユラブルコアに含まれる第 1のリコンフィギユラブルコアと第 2のリコンフィギユラブルコアとの間に形成され、前記 第 1のリコンフィギユラブルコアの出力を一時保持し、前記第 2のリコンフィギユラブル コアへと出力する第 1のレジスタ回路群とを備え、前記複数のリコンフィギユラブルコ ァの各々は、アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレ メントと、前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備え [0016] この構成によれば、各々のリコンフィギユラブルコアを独立した回路として回路機能 をマッピングできるので、大規模な回路機能を論理再構成可能な半導体集積回路に マッピングする場合であっても、短時間にマッピングを収束させることができる。よって 、本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可 能な半導体集積回路を提供できる。
[0017] また、前記第 1のレジスタ回路群は、前記第 1のリコンフィギユラブルコアの出力を一 時保持する第 1のレジスタ回路と、前記第 1のレジスタ回路から出力されるデータを保 持し、前記第 2のリコンフィギユラブルコアへと出力する第 2のレジスタ回路とを含んで あよい。
[0018] この構成によれば、配線距離に起因する遅延に対してタイミング制約を緩和できる
[0019] また、前記第 1のレジスタ回路及び前記第 2のレジスタ回路に入力されるクロックは 、前記第 2のレジスタ回路が保持するデータの出力先となるリコンフィギユラブルコア と同一のクロックであってもよい。
[0020] この構成によれば、各リコンフィギユラブルコアを非同期で動作させた場合でも、第 2のレジスタ回路でデータを確実に保持できる。よって、メタステーブル(セットアップ 制約又はホールド制約が満たされな!/、状態)の発生を防止できる。
[0021] また、前記第 1のレジスタ回路群へデータを出力するリコンフィギユラブルコアと、前 記第 1のレジスタ回路群からデータが入力されるリコンフィギユラブルコアとは入力さ れるクロック力異なってもよレ、。
[0022] この構成によれば、各リコンフィギユラブルコアを非同期で動作させた場合に発生 するメタステーブルの発生を防止できる。
[0023] また、前記複数のリコンフィギユラブルコアは、前記リコンフィギユラブルコアの論理 を再構成するためのコンフィギュレーションデータが入力される第 1の辺と、前記第 1 の辺と対向する第 2の辺と、前記第 1の辺と直交する第 3の辺と、前記第 3の辺と対向 する第 4の辺とで囲まれる矩形の形状を有する第 3のリコンフィギユラブルコア及び第 4のリコンフィギユラブルコアを含み、前記第 3のリコンフィギユラブルコア及び第 4のリ コンフィギユラブルコアは、前記第 1の辺同士が対向するように分離してレイアウトされ てもよい。
[0024] この構成によれば、コンフィギュレーションデータを第 1の辺から第 3のリコンフィギュ ラブルコア及び第 4のリコンフィギユラブルコアに供給できる。これにより、コンフィギュ レーシヨンデータを保持する記憶回路を固めて配置することが可能となり、チップ設 計が容易となる。また、記憶回路から、第 3のリコンフィギユラブルコア及び第 4のリコ ンフィギユラブルコアへの配線距離を短くできる。これにより、短い時間で動的にリコン フィギユラブルコアの機能を再構成できる。よって、本発明は、複数のリコンフィギユラ ブルコアを 1チップに実装して大規模な論理再構成可能な半導体集積回路を構成 する場合に、設計が容易かつ小面積となるレイアウトを有する半導体集積回路を提 供できる。
[0025] また、前記半導体集積回路は、さらに、前記第 3のリコンフィギユラブルコアと前記第 4のリコンフィギユラブルコアとの間に形成され、前記第 3のリコンフィギユラブルコア及 び前記第 4のリコンフィギユラブルコアの論理を再構成するためのコンフィギユレーシ ヨンデータを保持する第 1記憶回路を備えてもよい。
[0026] この構成によれば、第 1記憶回路に保持されるコンフィギュレーションデータを第 1 の辺から第 3のリコンフィギユラブルコア及び第 4のリコンフィギユラブルコアに供給で きる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置す ることが可能となり、チップ設計が容易となる。また、第 1記憶回路から、第 3のリコンフ ィギユラブルコァ及び第 4のリコンフィギユラブルコアへの配線距離を短くできる。これ により、短い時間で動的にリコンフィギユラブルコアの機能を再構成できる。
[0027] また、前記複数のリコンフィギユラブルコアは、さらに、第 1の辺と、前記第 1の辺と対 向する第 2の辺と、前記第 1の辺と直交する第 3の辺と、前記第 3の辺と対向する第 4 の辺とで囲まれる矩形の形状を有す第 5のリコンフィギユラブルコア及び第 6のリコン フィギユラブルコアを含み、前記第 5のリコンフィギユラブルコアと第 6のリコンフィギュ ラブルコアとは、前記第 1の辺同士が対向するように分離して配置され、前記第 3のリ コンフィギユラブルコアと第 5のリコンフィギユラブルコアとは、前記第 3の辺同士が対 向するように分離して配置され、前記第 4のリコンフィギユラブルコアと第 6のリコンフィ ギユラブルコアとは、前記第 3の辺同士が対向するように分離して配置されてもよい。 [0028] この構成によれば、 4つのリコンフィギユラブルコアを 1チップに実装して大規模な論 理再構成可能な半導体集積回路を構成する場合に、各リコンフィギユラブルコアにお ける同じ用途に用いられる信号の入出力端子力、各リコンフィギユラブルコア間で対 向して配置される。これにより、チップ設計を容易に行うことができる。また、リコンフィ ギユラブルコァ間の配線距離を短くできる。
[0029] また、前記半導体集積回路は、さらに、前記第 5のリコンフィギユラブルコアと前記第 6のリコンフィギユラブルコアとの間に形成され、前記第 5のリコンフィギユラブルコア及 び前記第 6のリコンフィギユラブルコアの論理を再構成するためのコンフィギユレーシ ヨンデータを保持する第 2記憶回路を備えてもよい。
[0030] この構成によれば、第 2記憶回路に保持されるコンフィギュレーションデータを第 1 の辺から第 5のリコンフィギユラブルコア及び第 6のリコンフィギユラブルコアに供給で きる。これにより、コンフィギュレーションデータを保持する記憶回路を固めて配置す ることが可能となり、チップ設計が容易となる。また、第 2記憶回路から、第 5のリコンフ ィギユラブルコア及び第 6のリコンフィギユラブルコアへの配線距離を短くできる。これ により、短い時間で動的にリコンフィギユラブルコアの機能を再構成できる。
[0031] また、前記半導体集積回路は、さらに、前記第 1のレジスタ回路群へのクロックの供 給を個別に停止するクロック停止回路を備えてもよい。
[0032] この構成によれば、リコンフィギユラブルコア間で双方向にデータが受け渡される場 合でも、各々のリコンフィギユラブルコアを独立した回路として回路機能をマッピング できる。よって、大規模な回路機能を論理再構成可能な半導体集積回路にマツピン グする場合であっても、短時間にマッピングを収束させることができる。
[0033] また、前記第 1のレジスタ回路群は、前記第 1のリコンフィギユラブルコアの出力を一 時保持し、前記第 2のリコンフィギユラブルコアへと出力する第 2のレジスタ回路群と、 前記第 2のリコンフィギユラブルコアの出力を一時保持し、前記第 1のリコンフィギユラ ブルコアへと出力する第 3のレジスタ回路群とを含んでもよい。
[0034] この構成によれば、全てのリコンフィギユラブルの各々を独立した回路として回路機 [0035] また、前記第 1のレジスタ回路群は、前記複数のリコンフィギユラブルコアの間のうち 、隣接するリコンフィギユラブルコアの間の全てに配置され、隣接する 2つのリコンフィ ギユラブルコァのうち一のリコンフィギユラブルコァの出力を一時保持し、他のリコンフ ィギユラブルコアへと出力してもよい。
[0036] この構成によれば、使用されない第 1のレジスタ回路群へのクロックの供給を停止で きる。これにより、本発明に係る半導体集積回路は、余分な消費電力を削減できる。
[0037] また、前記複数のリコンフィギユラブルコアには全て同一のクロックが入力されてもよ い。
[0038] この構成によれば、半導体集積回路の構成を単純化できる。
[0039] また、前記第 1のレジスタ回路群は、複数のビットから構成されるデータを複数組保 持してもよい。
[0040] この構成によれば、本発明に係る半導体集積回路は、リコンフィギユラブルコア間で 複数のデータを受け渡しできる。
[0041] また、前記ロジックエレメントの各々は LUTを備えてもよ!/、。
[0042] この構成によれば、ルックアップテーブルの内容を書き換えることによって、ロジック エレメントの入力に対する出力の関係を任意に変更できる。
[0043] また、前記ロジックエレメントの各々は少なくとも 1つの ALU (Arithmetic Logic
Unit)を備えてもよい。
[0044] この構成によれば、画像の符号化、画像の復号化及び喑号処理などの単純な演算 の繰り返しによって構成される信号処理演算に最適なリコンフィギユラブルコアが実 現できる。
[0045] また、前記半導体集積回路は、さらに、 CPU (Central Processing Unit)を備 え、前記複数のリコンフィギユラブルコア、前記第 1のレジスタ回路群、及び前記 CPU は、 1つの半導体基板上に実装されてもよい。
[0046] この構成によれば、 CPUを含む SOC (System On Chip)において、専用ハード ウェアを設けなくても 1つの論理再構成可能な半導体集積回路で多種の処理を行う こと力 Sでさる。
[0047] また、本発明に係るマッピング装置は、 自己の論理を再構成することが可能であり、 各々が分離してレイアウトされる複数のリコンフィギユラブルコアと、前記複数のリコン フィギユラブルコアのうち少なくとも 2つの間に形成され、一のリコンフィギユラブルコア の出力を一時保持し、他のリコンフィギユラブルコアへと出力する第 1のレジスタ回路 群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングする マッピング装置であって、前記回路機能を、複数の回路機能ブロックに分割する分割 手段と、前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置 するレジスタを除外する除外手段と、前記除外された回路機能ブロックの各々を論理 合成する合成手段と、前記論理合成された回路機能ブロックの各々を前記リコンフィ ギユラブルコアの各々に配置及び配線する配置配線手段とを備える。
[0048] この構成によれば、本発明に係るマッピング装置は、回路記述に含まれる第 1のレ ジスタ回路群に対応するレジスタをマッピング対象から外すことができる。また、本発 明に係るマッピング装置は、各々のリコンフィギユラブルコアを独立にマッピングでき る。よって、本発明に係るマッピング装置は、大規模な回路機能を論理再構成可能な 半導体集積回路にマッピングする場合であっても、短時間にマッピングを収束させる こと力 Sでさる。
[0049] また、本発明に係るプログラム変換装置は、複数のモジュールからなる回路の回路 機能が記述された回路記述を変換するプログラム変換装置であって、前記回路記述 に基づき、前記回路の入力信号と出力信号との制約を算出する算出手段と、前記複 数のモジュール間にレジスタを揷入、又は揷入しない複数のパターンを生成する生 成手段と、前記生成された複数のパターンから、前記制約を満たすパターンを抽出 するパターン抽出手段と、前記抽出されたパターンのうちいずれかを選択し変換後 の回路記述として出力する選択手段とを備える。
[0050] この構成によれば、本発明に係るプログラム変換装置は、回路記述に第 1のレジス タ回路群に対応するレジスタを加えることができる。すなわち、本発明に係るプロダラ ム変換装置は、設計者により記述された従来と同様の回路記述を、モジュール間に レジスタを揷入した回路記述に変換できる。
[0051] また、前記プログラム変換装置は、さらに、前記複数のモジュールのうちフィードバ ック系を有する複数のモジュールを抽出するフィードバック抽出手段を備え、前記生 成手段は、前記フィードバック抽出手段により抽出された複数のモジュールを 1つの モジュールとして、モジュール間にレジスタを揷入、又は揷入しない複数のパターン を生成してもよい。
[0052] この構成によれば、本発明に係るプログラム変換装置は、フィードバック系を有する モジュール間にはレジスタを加えない。これにより、プログラム変換装置の処理量を 低減できる。
[0053] また、本発明に係るマッピング方法は、 自己の論理を再構成することが可能であり、 各々が分離してレイアウトされる複数のリコンフィギユラブルコアと、前記複数のリコン フィギユラブルコアのうち少なくとも 2つの間に形成され、一のリコンフィギユラブルコア の出力を一時保持し、他のリコンフィギユラブルコアへと出力する第 1のレジスタ回路 群とを備える半導体集積回路に、回路記述に記述される回路機能をマッピングする マッピング装置におけるマッピング方法であって、前記回路機能を、複数の回路機能 ブロックに分割する分割ステップと、前記複数の回路機能ブロックから、前記複数の 回路機能ブロックの間に位置するレジスタを除外する除外ステップと、前記除外され た回路機能ブロックの各々を論理合成する合成ステップと、前記論理合成された回 路機能ブロックの各々を前記リコンフィギユラブルコアの各々に配置及び配線する配 置配線ステップとを含む。
[0054] この方法によれば、回路記述に含まれる第 1のレジスタ回路群に対応するレジスタ をマッピング対象から外すことができる。また、各々のリコンフィギユラブルコアを独立 にマッピングできる。よって、大規模な回路機能を論理再構成可能な半導体集積回 路にマッピングする場合であっても、短時間にマッピングを収束させることができる。
[0055] また、本発明に係るプログラム変換方法は、複数のモジュールからなる回路の回路 機能が記述された回路記述を変換するプログラム変換装置におけるプログラム変換 方法であって、前記回路記述に基づき、前記回路の入力信号と出力信号との制約を 算出する算出ステップと、前記複数のモジュール間にレジスタを揷入、又は揷入しな V、複数のパターンを生成する生成ステップと、前記生成された複数のパターンから、 前記制約を満たすパターンを抽出するパターン抽出ステップと、前記抽出されたバタ ーンのうちいずれかを選択し変換後の回路記述として出力する選択ステップとを含む [0056] この方法によれば、回路記述に第 1のレジスタ回路群に対応するレジスタを加える こと力 Sできる。すなわち、本発明に係るプログラム変換方法は、設計者により記述され た従来と同様の回路記述を、モジュール間にレジスタを揷入した回路記述に変換で きる。
[0057] なお、本発明は、このような半導体集積回路、マッピング装置、そのマッピング方法 、プログラム変換装置、及びそのプログラム変換方法として実現できるだけでなぐマ ッビング方法及びプログラム変換方法に含まれる特徴的なステップをコンピュータに 実 fiさせるプログラムとして実現することもできる。そして、そのようなプログラムは、 C D— ROM等の記録媒体及びインターネット等の伝送媒体を介して流通させることが できるのは言うまでもない。
発明の効果
[0058] 本発明は、大規模な回路機能を容易にマッピングすることが可能な論理再構成可 能な半導体集積回路を提供できる。また、本発明は、複数のリコンフィギユラブルコア を 1チップに実装して大規模な論理再構成可能な半導体集積回路を構成する場合 に、設計が容易かつ小面積となる半導体集積回路のレイアウトを提供できる。
図面の簡単な説明
[0059] [図 1]図 1は、従来の論理再構成可能な半導体集積回路の構成を示す図である。
[図 2]図 2は、従来の論理再構成可能な半導体集積回路への回路機能のマッピング の流れを示す図である。
[図 3]図 3は、本発明の実施の形態 1に係る半導体集積回路の構成を示す図である。
[図 4]図 4は、本発明の実施の形態 1に係る論理再構成可能な半導体集積回路の構 成を示す図である。
[図 5]図 5は、本発明の実施の形態 1に係るリコンフィギユラブルコアの構成を示す図 である。
[図 6]図 6は、本発明の実施の形態 1に係るロジックエレメント周辺の構成を示す図で ある。
[図 7]図 7は、本発明の実施の形態 1に係るロジックエレメントの詳細な構成を示す図 である。 [図 8]図 8は、本発明の実施の形態 1に係るマッピング装置の構成を示す図である。
[図 9]図 9は、本発明の実施の形態 1に係る回路機能のマッピングの流れを示すフロ 一チャートである。
[図 10]図 10は、本発明の実施の形態 1に係る回路機能のマッピングにおける各リコン フィギユラブルコアへの割り当てを説明するための図である。
[図 11]図 11は、本発明の実施の形態 1に係る回路機能のマッピングにおける 1つのリ コンフィギユラブルコへの回路機能のマッピングの流れを示すフローチャートである。
[図 12]図 12は、本発明の実施の形態 1に係る半導体集積回路の変形例の構成を示 す図である。
[図 13]図 13は、本発明の実施の形態 2に係る半導体集積回路の構成を示す図であ
[図 14]図 14は、本発明の実施の形態 3に係るプログラム変換装置の処理の流れを示 すフローチャートである。
[図 15]図 15は、本発明の実施の形態 3に係るプログラム変換装置の処理を説明する ための図である。
[図 16]図 16は、本発明の実施の形態 3に係るプログラム変換装置の処理を説明する ための図である。
[図 17]図 17は、本発明の実施の形態 3に係るプログラム変換装置の処理を説明する ための図である。
[図 18]図 18は、本発明の実施の形態 3に係るプログラム変換装置の処理を説明する ための図である。
符号の説明
1 半導体装置
10 CPU
11 RAM
12 DMA
13 ハードウェア回路
100、 150、 200、 500 半導体集積回路(FPGA) 皿、皿 A、皿 B、 101 C、 101D リコンフィギユラブルコア
102 レジスタ回路
103、 103A、 103B、 103C、 103D メモリ
104 第 1クロック停止回路
105 第 2クロック停止回路
201、 501 ロジックエレメント
202 スィッチボックス
203 配線ボックス群
204E、 204N、 204S、 204W IO部
210 ルックアップテーブル
21 1 マノレチプレクサ
212 フリップフロップ
221A、 221B、 221C、 221D、 221E、 221F、 301A、 301B、 301C、 301D、 30 IE モジュール
222k 222B、 222C、 222D、 222E、 302、 302AB、 302AD、 302AF、 302B D、 302BF レジスタ
301F 仮想モジュール
400 マッピング装置
401 キーボード
402 ディスプレイ
403 CPU
404 ROM
405 RAM
406 プログラム
発明を実施するための最良の形態
[0061] 以下、本発明に係る半導体集積回路の実施の形態について、図面を参照しながら 詳細に説明する。
[0062] (実施の形態 1) 本発明の実施の形態 1に係る半導体集積回路は、複数のリコンフィギユラブルコア 間にそれぞれ 2段のレジスタ回路を備える。これにより、各々のリコンフィギユラブルコ ァを独立した回路として回路機能をマッピングできる。よって、大規模な回路機能を 論理再構成可能な半導体集積回路にマッピングする場合であっても、容易にマツピ ングできる。
[0063] まず、本発明の実施の形態 1に係る半導体集積回路の構成を説明する。
[0064] 図 3は、本発明の実施の形態 1に係る再構成可能な半導体集積回路を備える半導 体装置の構成を示す図である。
[0065] 図 3に示す半導体装置 1は、 CPU10と、 RAM (Random Access Memory) 11 と、 DMA (Direct Memory Access) 12と、ハードウェア回路 13と、 FPGA100と を備える。
[0066] CPU10は、半導体装置 1の全体の制御を行う。 RAM11は、読み書き可能な記憶 部である。 DMA12は、 FPGA100及びハードウェア回路 13と、 RAMI 1との間のデ ータ転送を行なう。ハードウェア回路 13は、所定の機能を実現する専用ハードウェア で構成された回路である。 FPGA100は、再構成可能な半導体集積回路であり、本 発明に係る半導体集積回路の一例である。
[0067] 例えば、 CPU10、 RAM11 , DMA12、ハードウェア回路 13及び FPGA100は、 1 つの半導体基板上に実装されている。すなわち、本発明の実施の形態 1に係る半導 体集積回路(FPGA) 100は、所謂 SOCにおける 1つの回路ブロックとして構成され
[0068] 図 4は、本発明の実施の形態 1に係る論理再構成可能な半導体集積回路 100の構 成を示す図である。図 4に示す半導体集積回路 100は、論理再構成可能な半導体 集積回路である。半導体集積回路 100は、 4つのリコンフィギユラブルコア 101A、 10 1B、 101C及び 101Dと、複数のレジスタ回路 102と、 2つのメモリ 103A及び 103Bと を備える。
[0069] リコンフィギユラブルコア 101A、 101B、 101C及び 101Dは、各々が自己の論理を 再構成することが可能な回路である。なお、リコンフィギユラブルコア 101A、 101B、 101C及び 101Dを特に区別しない場合には、リコンフィギユラブルコア 101と記す。 リコンフィギユラブルコア 101は、コアの外部から入力されるコンフィギュレーションデ ータに応じてその内部の接続関係を変更し、それによつて論理を再構成することが 可能な回路である。なお、コンフィギュレーションデータはリコンフィギユラブルコア 10 1の内部に複数セット予め格納しておくことも可能である。
[0070] また、各々のリコンフィギユラブルコア 101は矩形の形状であり、東(E)、西(W)、南
(S)、北(N)の 4つの辺を有している。リコンフィギユラブルコア 101はこれら 4つの辺 について対称ではなぐ東西方向と南北方向で内部の配線構造は異なっている。ま た、本実施の形態においてはリコンフィギユラブルコア 101の論理を再構成するため のコンフィギュレーションデータは S方向から入力されるものとする。各々のリコンフィ ギユラブルコア 101はチップ設計上ハードマクロとして取り扱われ、これによつて複数 のコアを容易に 1チップに実装することが可能となる。
[0071] また、リコンフィギユラブルコア 101は、クロックに同期して動作する。本実施の形態 において各々のリコンフィギユラブルコア 101には別々のクロック CLKA、 CLKB、 C LKC及び CLKDが入力される。
[0072] 図 5は、リコンフィギユラブルコア 101 (101A、 101B、 101C及び 101D)の構成を 示す図である。リコンフィギユラブルコア 101は、複数のロジックエレメント(LE) 201と 、複数のスィッチボックス(SB) 202と、複数の配線ボックス群(CB) 203と、 IO部 204 N、 204E、 204S及び 204Wと、行方向及び列方向に延びる配線群とを備える。
[0073] 複数のロジックエレメント 201は、アレイ状に配置され、各々が所定の論理を実現す る。ロジックエレメント 201は、コンフィギュレーションデータに応じて、その機能(入力 に対する出力の関係)を変更することが可能な機能素子である。スィッチボックス 202 は、コンフィギュレーションデータに応じて、何れの配線と何れの配線とを接続するか が決定される。配線ボックス群 203は、コンフィギュレーションデータに応じて、ロジッ クエレメント 201の入力及び出力を何れの配線に接続するかが決定される。
[0074] スィッチボックス 202及び配線ボックス群 203の接続関係を制御することによって、 何れのロジックエレメント 201の出力が何れのロジックエレメント 201の入力に接続さ れるかをプログラマブルに決定できる。そこで本実施の形態においては、このスィッチ ボックス 202、配線ボックス群 203、及び配線群を総称して、単にプログラマブルな配 線とも称する。また、リコンフィギユラブルコア 101内にはプログラマブルな配線とは別 にクロック配線も設けられる。
[0075] IO部 204N、 204E、 204S及び 204Wは、リコンフィギユラブルコア皿の東西南 北方向の各々に配置される入出力回路である。
[0076] IO部 204Nは、リコンフィギユラブルコア 101の N方向に配置される。 IO部 204Nは
、アプリケーションデータバス用及び制御用の入出力を有する。
[0077] IO部 204Eは、リコンフィギユラブルコア 101の E方向に配置される。 IO部 204Eは
、アプリケーションデータバス用の入出力を有する。
[0078] IO部 204Sは、リコンフィギユラブルコア 101の S方向に配置される。 IO部 204Sは、 アプリケーションデータバス用及び制御用の入出力を有する。さらに、 IO部 204Sは
、コンフィギュレーションデータ用の入出力を有する。
[0079] IO部 204Wは、リコンフィギユラブルコア 101の W方向に配置される。 IO部 204W は、制御用の入出力を有する。
[0080] ここで、アプリケーションデータバス用の入出力は、他のリコンフィギユラブルコア 10
1、 CPU10、 DMA12及びハードウェア回路 13との間で演算結果の入出力に用い られる。制御用の入出力は、 CPU10、 DMA12及びハードウェア回路 13等の外部 ハードウェアとの間の制御信号の入出力に用いられる。コンフィギュレーションデータ 用の入出力は、メモリ 103A及び 103Bからのコンフィギュレーションデータの入力に 用いられる。
[0081] このように、 S方向の一方向のみからコンフィギュレーションデータを入力する構造 にすることによって、リコンフィギユラブルコア 101の配線構造を簡易化できる。また、 リコンフィギユラブルコア 101の各方向に、入出力の配置が異なる IO部を配置するこ とで、用途に応じた最適なレイアウト配置を実現できる。
[0082] 図 6は、リコンフィギユラブルコア 101の内部をさらに詳細に説明するための図であ る。図 6は、 1つのロジックエレメント 201と、その周辺に配置されるスィッチボックス 20
2、及び配線ボックス群 203の構成を示す図である。
[0083] 本実施の形態においては、ロジックエレメント 201は 4入力 2出力の機能素子であり 、その入力は西方向、出力は東方向に設けられる。配線ボックス群 203はこの東西方 向に延びるロジックエレメント 201の入出力を南北方向に延びる配線の何れに接続 する力、をプログラマブルに決定する。
[0084] スィッチボックス 202は東西方向に延びる配線と南北方向に延びる配線とをプログ ラマブルに接続する。また、ロジックエレメント 201の出力は南北方向の配線に一度 乗り換えた後に配線ボックス群を介して東西方向の配線へと接続することも可能であ る。またロジックエレメント 201には、プログラマブルな配線とは異なる配線でクロック が供給される。
[0085] 図 7は、ロジックエレメント 201の詳細な構成を示す図である。本実施の形態におい て、ロジックエレメント 201は、ルックアップテーブル(LUT) 210と、複数のプログラム 可能なマルチプレクサ 211と、フリップフロップ 212とを備える。ルックアップテーブル 210は、 1つが小規模なメモリで構成される。ルックアップテーブル 210の入力に対す る出力の関係は、メモリに保持される内容が書き換えられることにより、変更される。複 数のプログラマブルなマルチプレクサ 211の各々により選択される信号は、コンフィギ ユレーシヨンデータ又は他のロジックエレメント 201からの出力に応じて決定される。
[0086] 図 5〜図 7に示されるように、各々のリコンフィギユラブルコア 101が複数のロジック エレメント 201をアレイ状に配置した構成を有するため、ハードマクロとしてのリコンフ ィギユラブルコア 101内部ではロジックエレメント 201を接続するためのプログラマブ ルな配線が密に配線されている。リコンフィギユラブルコア 101と外部との境界領域で はアプリケーションデータバス用、制御用、及びコンフィギュレーション用の IOからの 配線が比較的疎な配線として配線されている。リコンフィギユラブルコア 101間では I O部からの配線に加えて、半導体集積回路 100と同一チップ上の他の回路ブロックと の接続を行うための配線が配線されている。すなわち、各々のリコンフィギユラブルコ ァ 101はチップレイアウト上で分離されており、その配線構造は内部と外部とで明ら かに異なる。
[0087] 再び図 4を参照して説明を行う。メモリ 103A及び 103Bは、リコンフィギユラブルコア
101に入力されるコンフィギュレーションデータを一時格納するためのメモリである。 なお、メモリ 103A及び 103Bを特に区別しない場合には、メモリ 103と記す。メモリ 1 03Aは、リコンフィギユラブルコア 101A及び 101Cの論理を再構成するためのコンフ ィギユレーシヨンデータを格納する。メモリ 103Bは、リコンフィギユラブルコア 101B及 び 101Dの論理を再構成するためのコンフィギュレーションデータを格納する。また、 メモリ 103Aは、リコンフィギユラブルコア 101Aとリコンフィギユラブルコア 101Cとの間 に配置される。メモリ 103Bは、リコンフィギユラブルコア 101Bとリコンフィギユラブルコ ァ 101Dとの間に配置される。
[0088] 本発明の 1つの特徴として、 4つのリコンフィギユラブルコア 101のうちリコンフィギュ ラブルコア 101Aとリコンフィギユラブルコア 101Cとは、 S方向が対向するように配置 される。また、リコンフィギユラブルコア 101Bとリコンフィギユラブルコア 101Dとは S方 向が対向するように配置される。コンフィギュレーションデータは S方向からのみ入力 されるので、このようなレイアウトとすることによって、メモリ 103を固めて配置すること が可能となり、チップ設計が容易となる。また、メモリ 103から各々のリコンフィギュラブ ルコア 101への配線距離を短くできる。これにより、短い時間で動的にリコンフィギュ ラブルコアの機能を再構成できる。なお、図中で示してはいないが、メモリ 103とリコ ンフィギユラブルコア 101とは複数ビットのバスで接続されている。
[0089] また、リコンフィギユラブルコア 101Aとリコンフィギユラブルコア 101Bとは、 E方向が 対向するように配置される。リコンフィギユラブルコア 101Cとリコンフィギユラブルコア 101Dとは、 E方向が対向するように配置される。上述したようにリコンフィギユラブル コア 101の E方向は、アプリケーションデータバス用の IOが配置される。ここで、一般 にアプリケーションデータバスには配線遅延の減少が望まれる。一方、制御用の信号 配線は、配線遅延の影響が比較的問題にならない。よって、 E方向が対向するように 複数のリコンフィギユラブルコア 101を配置することで、リコンフィギユラブルコア 101 間のアプリケーションデータバスの配線距離を短くできる。これにより、アプリケーショ ンデータバスの配線遅延の影響を低減できる。
[0090] また、本実施の形態の特徴のひとつとして、論理再構成可能な半導体集積回路 10 0は、上下方向あるいは左右方向に隣接するリコンフィギユラブルコア 101の間の各 々にレジスタ回路 102を 2段設けている。
[0091] 各々のレジスタ回路 102は、複数のフリップフリップで構成されており、複数ビット( 例えば、 16ビット)からなるデータを複数セット保持することが可能である。各々の 2段 のレジスタ回路は、隣接するリコンフィギユラブルコア 101間の全てに形成される。各 々の 2段のレジスタ回路 102は、データの出力元となるリコンフィギユラブルコア 101 の出力を一時保持し、データの入力先となるリコンフィギユラブルコア 101に出力する 。 2段のレジスタ回路 102のうち前段のレジスタ回路 102は、データの出力元となるリ コンフィギユラブルコア 101から出力されるデータをクロックに同期して保持し、後段 のレジスタ回路 102に出力する。 2段のレジスタ回路 102のうち後段のレジスタ回路 1 02は、前段のレジスタ回路 102から出力されるデータをクロックに同期して保持し、 データの入力先となるリコンフィギユラブルコア 101に出力する。
[0092] また、隣接するリコンフィギユラブルコア 101間には、隣接する 2つのリコンフィギユラ ブルコア 101のうち一のリコンフィギユラブルコア 101の出力を一時保持し、他のリコ ンフィギユラブルコア 101へと出力する 2段のレジスタ回路 102と、他のリコンフィギュ ラブルコア 101の出力を一時保持し、一のリコンフィギユラブルコア 101へと出力する 2段のレジスタ回路 102とが形成される。
[0093] 各リコンフィギユラブルコア 101は、レジスタ回路 102を 2段介してデータのやりとりを 行う。これにより、各々のリコンフィギユラブルコア 101は独立した回路として取り扱うこ とができる。論理再構成可能な半導体集積回路 100全体が大規模な回路になったと しても、各々のリコンフィギユラブルコア 101自体は独立した 1/4の大きさの回路にし かならない。そのため、大規模な回路機能をマッピングしょうとした場合であっても、 各々のリコンフィギユラブルコア 101内でのマッピングの組み合わせを限られたものに できる。したがって、高速に回路機能をマッピングできる。なお、マッピングの詳細に ついては後述する。
[0094] ここで、レジスタ回路 102を 2段設けている 1つの理由は配線距離に起因する遅延 に対してタイミング制約を緩和するためである。例えば、レジスタ回路 102を 1段しか 設けない場合、レジスタ回路 102は、データの出力元となるリコンフィギユラブルコア 1 01の最も離れた位置のロジックエレメント 201からの出力データをあるクロックエッジ で格納し保持し、次のクロックエッジでデータの入力先となるリコンフィギユラブルコア 101の最も離れた位置のロジックエレメント 201までデータを出力しなくてはならない 可能性があり、タイミング制約が厳しくなる。一方、レジスタ回路 102を 2段設けること によってこの制約は緩和される。例えば、 2段のレジスタ回路 102のうち、初段のレジ スタ回路 102は、データの出力元となるリコンフィギユラブルコア 101側の近傍に配置 され、 2段目のレジスタ回路 102は、データの入力先となるリコンフィギユラブルコア 1 01側の近傍に配置される。
[0095] また、レジスタ回路 102に入力されるクロックはデータの出力先となるリコンフィギュ ラブルコア 101に入力されるクロックと同一のクロックが入力される。例えば、リコンフィ ギユラブルコア 101Aからリコンフィギユラブルコア 101Cへとデータが転送される経路 上に設けられたレジスタ回路 102にはリコンフィギユラブルコア 101Cと同一のクロック CLKCが供給される。これにより、各リコンフィギユラブルコア 101を非同期で動作さ せた場合でも、少なくとも後段のレジスタ回路 102ではデータが確実に保持される。 よって、半導体集積回路 100は、各リコンフィギユラブルコア 101を非同期で動作させ た場合に生じるメタステーブル (セットアップ制約、又はホールド制約が満たされない 状態)の発生を防止できる。
[0096] 次に、マッピング装置を用いて、本発明の実施の形態 1に係る論再構成可能な半 導体集積回路 100に回路機能をマッピングする方法について説明する。マッピング によりメモリ 103に保持されるコンフィギュレーションデータが作成される。
[0097] 図 8は、本発明の実施の形態 1に係るマッピング装置のハードウェア構成を示す図 である。図 8に示すマッピング装置 400は、上述した半導体集積回路 100に回路記 述に記述される回路機能をマッピングする。マッピング装置 400は、例えば、パーソ ナルコンピュータである。マッピング装置 400は、キーボード 401と、ディスプレイ 402 と、 CPU403と、 ROM404と、 RAM405とを備免る。
[0098] キーボード 401は、設計者による操作を受け付ける。ディスプレイ 402は、設計者に 処理結果等を表示する。 CPU403は、 ROM404に格納されるプログラム 406を実行 することにより、マッピング装置 400の全体を制御する。 ROM404は、 CPU403によ り実行されるプログラム 406を格納する読み出し専用メモリである。なお、プログラム 4 06は、図示しない不揮発性メモリ又は HD (Hard Disk)等に保持されてもよい。 RA M405は、 CPU403がプログラム 406を実行する際に用いられるワークデータ等を 保持する読み書き可能なメモリである。 [0099] 以上の構成により、マッピング装置 400の CPU403がプログラム 406を実行するこ とにより、半導体集積回路 100に回路記述に記述される回路機能をマッピングする。
[0100] なお、マッピング装置 400によるマッピングは、専用のハードウェアにより実現されて あよい。
[0101] 図 9は、半導体集積回路 100への回路機能のマッピングの流れを示すフローチヤ ートである。
[0102] まず、設計者は論理再構成可能な半導体集積回路 100にマッピングする回路機能 を記述する(S201)。この回路機能の記述には HDLなどのハードウェア記述言語、 又は C言語などの高級言語が使用される。回路機能を記述する際には、設計者は大 規模な回路機能を複数の処理モジュールに分けて記述し、これらの処理モジュール 間には 2サイクルの遅延が入るように記述する。これにより、各処理モジュールの間に は 2段のレジスタ回路が揷入されることになる。
[0103] 次に、マッピング装置 400は、設計者によって記述された回路記述に記述される回 路機能を複数の回路機能ブロックに分割する(S202)。具体的には、マッピング装置 400は、回路記述に含まれる処理モジュールを一度束ねた上で 4つのブロックに再 分割する。マッピング装置は、再分割されたブロックを 4つのリコンフィギユラブルコア 101に害 IJり当てる。次に、マッピング装置 400は、 4つのブロックの間に位置する 2段 のレジスタをレジスタ回路 102に割り当てるために、リコンフィギユラブルコア 101への マッピング対象から除外する(S203)。
[0104] 以下、図 10を用いて、マッピング装置 400によるステップ S202及び S203の処理 の具体例を説明する。
[0105] 図 10は、ステップ S202での各リコンフィギユラブルコア 101への割り当て、及びステ ップ S203でのレジスタ回路 102への割り当て処理を説明するための図である。
[0106] 図 10を用いて、設計者により、モジュール 221A〜221Fの 6つの処理モジュール に分割された大規模回路の回路記述が入力された場合の、マッピング装置 400の処 理を説明する。この大規模回路はモジュール 221Eからデータが入力され、所定の 演算処理を施した後にモジュール 221Dから演算処理の結果が出力される。設計者 により各々のモジュールの間にレジスタが 2段揷入されるように回路記述が記述され ている(2サイクルの遅延が記述されている)。但し、モジュール 221Aとモジュール 22 1Bとの間では演算処理のアルゴリズムの制約からレジスタは揷入されていない。
[0107] ステップ S202ではこの回路記述を、マッピング装置 400が、各々の処理モジユー ルの回路規模及び速度を考慮して、 4つのブロックに分割する。また、マッピング装置 400は、分割されたブロックを各リコンフィギユラブルコアへと割り当てる。例えば、マ ッビング装置 400は、モジュール 221A及び 221Bをリコンフィギユラブルコア 101A に、モジュール 221C及び 221Dをリコンフィギユラブルコア 101Bに、モジュール 221 Eをリコンフィギユラブルコァ 101Cに、モジユーノレ 221Fをリコンフィギユラブルコァ 10 1Dに割り当てる。
[0108] ステップ S203で、マッピング装置 400は、モジュール 221Aとモジュール 221Eとの 間に存在するレジスタ 222Aをリコンフィギユラブルコア 101Aと 101Cとの間に設けら れたレジスタ回路 102に割り当てる。マッピング装置 400は、モジュール 221Bとモジ ユール 221Dとの間のレジスタ 222Bをリコンフィギユラブルコア 101Aと 101Bとの間 に設けられたレジスタ回路 102に割り当てる。マッピング装置 400は、モジュール 221 Cとモジュール 221Fとの間に設けられたレジスタ 222Dをリコンフィギユラブルコア 10 1Bと 101Dとの間に設けられたレジスタ回路 102に割り当てる。マッピング装置 400 は、モジュール 221Eとモジュール 221Fとの間に設けられたレジスタ 222Eをリコンフ ィギユラブルコア 101Cと 101Dとの間に設けられたレジスタ回路 102に割り当てる。 マッピング装置 400は、レジスタ回路 102に害 ijり当てたレジスタ 222A、 222B、 222D 及び 222Fをマッピング対象からは除外する。
[0109] 一方で、マッピング装置 400は、 1つのリコンフィギユラブルコア 101Bに割り当てら れたモジュール 221Cとモジュール 221Dとの間に設けられたレジスタ 222Cを、リコ ンフィギユラブルコア 101へのマッピング対象に残す。
[0110] 次に、マッピング装置 400は、各々のリコンフィギユラブルコア 101に割り当てられた 回路機能をマッピングする(S204)。図 11は、ステップ S204での、 1つのリコンフィギ ユラブルコア 101への回路機能のマッピングの流れを示すフローチャートである。
[0111] まず、マッピング装置 400は、ステップ S202で再分割され、ステップ S203でレジス タが除外されたブロックの回路記述を取得する(S301)。 [0112] 次に、マッピング装置 400は、マッピングにおける制約条件を取得する(S302)。例 えば、制約条件は、速度及び面積などに関する条件である。また、例えば、制約条件 は、設計者によりマッピング装置 400に入力される。
[0113] 次に、マッピング装置 400は、ステップ S301で取得された回路記述を論理合成す る(S303)。具体的には、マッピング装置 400は、回路記述に記述される回路機能を 1つのロジックエレメント 201に割り当て可能な機能単位に分割する。マッピング装置 400は、分割された機能単位の接続関係を決定する。次に、マッピング装置 400は、 分割された機能単位を実回路におけるロジックエレメント 201上に配置する(S304) 。これによつて、各々のロジックエレメント 201の機能(入力に対する出力の関係)が 決定される。
[0114] 次に、マッピング装置 400は、論理合成によって決定された接続関係を満たすよう に、プログラマブルな配線を用いて各々のロジックエレメント 201を配線する(S305) 。なお、ロジックエレメント 201への配置とプログラマブルな配線によるロジックエレメン ト 201の接続とは 1つの処理として行われてもよいし、分割された処理として行われて あよい。
[0115] 次に、マッピング装置 400は、配置及び配線された回路が、ステップ S302で取得さ れた制約条件を満たすか否かを判定する(S306)。制約条件を満たす場合(S306 で Yes)、ブロックの合成、配置及び配線が終了する。また、制約条件を満たさない場 合(S306で No)、次 ίこ、マッピング装置 400 (ま、所定の回数ステップ S304〜S306 の処理が繰り返されたか否かを判定する(S307)。所定の回数の繰り返し処理が行 われていない場合(S307で No)、マッピング装置 400は、再度、配置及び配線処理 (S304及び S305)を行う。すなわち、マッピング装置 400は、配置及び配線処理(S 304及び S305)を制約条件が満たされるまで繰り返す。また、所定の回数処理が繰 り返されても制約条件を満たさない場合(S307で Yes)、マッピング装置 400は、プロ ックへのマッピングが不可であるとして処理を終了する。
[0116] なお、制約条件を満たさない場合(S306で No)、合成処理(S303)、配置及び配 線処理(S304及び S305)を再度行ってもよい。
[0117] また、マッピング装置 400は、所定の回数処理が繰り返されても制約条件が満たさ れない場合には、制約条件を満たせない旨を表示してもよい。これにより、設計者に より制約条件が見直され、マッピング装置 400は、新たに入力された制約条件を取得 し(S302)、新たな制約条件に対してステップ S303〜306の処理を行うことができる
[0118] ここで、マッピング装置 400は、リコンフィギユラブルコア 101毎に分割された回路機 能をマッピングするので、従来のように大規模な回路記述を 1つの大規模なリコンフィ ギユラブルコアにマッピングする場合と比較して、短時間で処理を収束させることがで きる。
[0119] 次に、マッピング装置 400は、 4つのリコンフィギユラブルコア 101の全てについて制 約条件が満たされたか否かが判定する(S205)。満たされて!/、る場合(S205で Yes) 、大規模回路の回路記述のマッピングが終了する。
[0120] 複数のリコンフィギユラブルコア 101のいずれ力、 1以上について制約条件が満たさ れてレ、なレ、場合(S205で No)、マッピング装置 400 (ま、ステップ S202〜S204での マッピング処理が所定の回数繰り返し行われたかを判定する(S206)。所定の回数 の繰り返し処理が行われていない場合(S206で No)、マッピング装置 400は、ステツ プ S202以降の処理を再度行う。所定の回数の繰り返し処理が行われている場合(S 206で Yes)、マッピング装置 400は、ステップ S201で記述された回路機能は論理 再構成可能な半導体集積回路 100にはマッピングできないものであると判断する。
[0121] ここで、ステップ S202、 S203、 S205及び S206の処理 (ま、マッピング装置 400力 S プログラム 406に含まれる専用のポイントツールを用いて実行する方法と、合成ツー ルの一部として実行する方法とがある。また、 S204の処理は、マッピング装置 400が プログラム 406に含まれる従来と同様の合成ツール及び P&Rツールを実行すること により実現できる。
[0122] 以上説明してきたように、本発明の実施の形態 1の論理再構成可能な半導体集積 回路 100を用いることにより、大規模な回路機能における処理モジュール毎にレジス タを 2段揷入しておけば、マッピング装置 400は各々のリコンフィギユラブルコア 101 を独立の回路と取り扱ってマッピングを行うことができる。したがって、短時間でマツピ ングが終了する。 [0123] さらにリコンフィギユラブルコア 101とレジスタ回路 102とが同一チップ内に設けされ 、かつレジスタ回路 102がリコンフィギユラブルコア 101に供給されるクロックと同一の クロックで駆動されているので、半導体集積回路 100は 1つの大規模な論理再構成 可能な半導体集積回路と同様の速度で動作できる。
[0124] これまで本発明を実施するための最良の形態について説明してきたが、本発明が 上記の実施の形態に限定されるものではないことは言うまでもない。一例として、以 下のような変形を施すことが可能である。
[0125] レジスタ回路 102は 3段以上設けてもよい。この場合、各リコンフィギユラブルコア 10 1のクロックが非同期であるとすれば、少なくとも後段の 2段のレジスタ回路 102につ いては、メタステーブルへの対策として、データの入力先となるリコンフィギユラブルコ ァ 101と同一のクロックを供給することが望ましい。
[0126] また、レジスタ回路 102は 1段であってもよい。なお、上述したようにレジスタ回路 10 2が 1段の場合、タイミング制約が厳しくなる。し力もながら、リコンフィギユラブルコア 1 01間の距離が短!/、場合、及びリコンフィギユラブルコァ 101の回路規模が小さ!/、場 合等には、レジスタ回路 102が 1段であっても、タイミング制約を守ることができる。レ ジスタ回路 102が 1段の場合、レジスタ回路 102は、データの出力元となるリコンフィ ギユラブルコア 101と、データの入力先となるリコンフィギユラブルコア 101から等距離 の位置に配置されることが望ましレ、。
[0127] また、上記説明において、各々のリコンフィギユラブルコア 101には異なるクロック C LKA、 CLKB、 CLKC及び CLKDが入力されるとした力 構成を単純化するために このクロックを全て同一のクロックとすることも可能である。また、複数のリコンフィギュ ラブルコア 101のうちいずれか 2以上に同一のクロックを供給してもよい。
[0128] また、上記説明において、 2段のレジスタ回路 102は、隣接するリコンフィギユラブル コア 101間の全てに形成されている力 隣接するリコンフィギユラブルコア 101間のう ち 1以上に形成されればよい。また、隣接する 2つのリコンフィギユラブルコア 101のう ち一のリコンフィギユラブルコア 101からの他のリコンフィギユラブルコア 101へ送信さ れるデータを保持するレジスタ回路 102のみを設け、他のリコンフィギユラブルコア 10 1からの一のリコンフィギユラブルコア 101へ送信されるデータを保持するレジスタ回 路 102を設けなくてもよい。
[0129] また、隣接しないリコンフィギユラブルコア 101間に 2段のレジスタ回路 102を形成し てもよい。例えば、リコンフィギユラブルコア 101Aとリコンフィギユラブルコア 101Dと の間に 2段のレジスタ回路 102を形成してもよい。リコンフィギユラブルコア 101Bとリコ ンフィギユラブルコア 101Bとの間に 2段のレジスタ回路 102を形成してもよい。
[0130] また、本発明の実施の形態 1に係る半導体集積回路 100は、所謂 SOCにおける 1 つの回路ブロックとして構成されとした力 半導体集積回路 100は、それだけで 1チッ プの LSI (Large Scale Integration)として構成されてもよい。
[0131] また、ロジックエレメント 201として LUTではなぐ 1又は複数の ALUを用いることも 可能である。画像の符号化、画像の復号化及び暗号処理などの信号処理演算は単 純な演算の繰り返しによって構成されることが多い。したがって、ロジックエレメント 20 1として 1又は複数の ALUを用いることによって、信号処理演算に最適なリコンフィギ ユラブルコア 101が実現できる。特に本発明に係る論理再構成可能な半導体集積回 路 100を SOCにおける 1つの回路ブロックとして構成する場合には、制御系の処理 は CPU10に任せることができるので、 ALUをロジックエレメント 201として用いたリコ ンフィギユラブルコア 101を用いることが好ましい。従来の SOCでは様々な種類の信 号処理を実現する必要がある場合には、信号処理毎に専用ハードウェアを設計して いた。一方、ロジックエレメント 201として 1又は複数の ALUを用い、かつ CPU10を 含む SOCとすることで、専用ハードウェアを設けなくても 1つの論理再構成可能な半 導体集積回路 100で全ての処理を行うことができる。
[0132] また、論理再構成可能な半導体集積回路 100で実現すべき回路機能によっては、 全てのリコンフィギユラブルコア 101を用いて 1つの回路機能を実現する必要はなぐ 一部のリコンフィギユラブルコア 101を用いて 1つの回路機能をマッピングしてもよい。 また、残りのリコンフィギユラブルコアには別の回路機能をマッピングしてもよい。
[0133] また、上記説明において、リコンフィギユラブルコア 101A、 101B、 101C及び 101 Dは、同じ構成であるとした力 異なる構成であってもよい。例えば、各リコンフィギュ ラブルコア 101に含まれるロジックエレメント 201の数が異なってもよい。
[0134] また、本発明において各々のリコンフィギユラブルコア 101は、電源を投入したまま 動的に論理を再構成することが可能な動的再構成可能なリコンフィギユラブルコア 10
1であっても、論理を再構成するためには一度電源を落とす必要がある所謂 FPGA であっても、何れでも構わない。
[0135] また、リコンフィギユラブルコア 101が備える 4つの IO部の構成は、図 5に示す構成 に限定されるものではな!/、。 S方向からコンフィギュレーションデータが入力される構 成であれば、 IO部の構成は任意でよい。
[0136] また、上記説明において、図 9に示すステップ S20;!〜 S206の処理を、マッピング 装置 400力 S行うとした力 S、処理の一部を設計者が行いマッピング装置 400に入力して あよい。
[0137] また、上記説明において、リコンフィギユラブルコア 101が 4つの例を説明した力 半 導体集積回路 100は、複数のリコンフィギユラブルコア 101を備えればよい。例えば、 半導体集積回路 100は、 2、 3又は 5以上のリコンフィギユラブルコア 101を備えてもよ い。
[0138] また、メモリ 103は図 4に示すように S方向が対向する 1組のリコンフィギユラブルコア
101に 1つ設けるのではなぐリコンフィギユラブルコア 101毎にメモリ 103を 1つ設け る構成としてもよい。図 12は、実施の形態 1に係る半導体集積回路 100の変形例で あり、リコンフィギユラブルコア 101毎にメモリ 103を 1つ備える半導体集積回路 150の 構成を示す図である。図 12に示すように、半導体集積回路 150は、 4つのメモリ 103 A、 103B、 103C及び 103Dを備える。メモリ 103Aは、リコンフィギユラブルコア 101 Aに入力されるコンフィギュレーションデータを格納する。メモリ 103Bは、リコンフィギ ユラブルコア 101Bに入力されるコンフィギュレーションデータを格納する。メモリ 103 Cは、リコンフィギユラブルコア 101Cに入力されるコンフィギュレーションデータを格 納する。メモリ 103Dは、リコンフィギユラブルコア 101Dに入力されるコンフィギユレ一 シヨンデータを格納する。このような構成にすることで、全てのリコンフィギユラブルコア 101を並列にコンフィギュレーションできるので、短期間でコンフィギュレーションが終 了する。
[0139] (実施の形態 2)
本発明の実施の形態 2に係る半導体集積回路は、レジスタ回路 102及びリコンフィ ギユラブルコア 101へのクロックの供給を停止する機能を有する。これにより、余分な 消費電力を削減できる。
[0140] 図 13は、本発明の実施の形態 2に係る半導体集積回路の構成を示す図である。
[0141] 図 13に示す半導体集積回路 200は、図 5に示す実施の形態 1に係る半導体集積 回路 100の構成に加えて、複数の第 1クロック停止回路 104と、複数の第 2クロック停 止回路 105とを備える。なお、図 5と同様の要素には同一の符号を付しており、説明 は省略する。
[0142] 第 1クロック停止回路 104は、複数のリコンフィギユラブルコア 101の各々に対応し て形成される。第 1クロック停止回路 104は、対応するリコンフィギユラブルコア 101に クロックを供給するか否かを制御する。第 1クロック停止回路 104は、対応するリコンフ ィギユラブルコア 101が使用されない場合には、当該リコンフィギユラブルコア 101へ のクロックの供給を停止する。また、第 1クロック停止回路 104は、対応するリコンフィ ギユラブルコア 101が使用されな!/、場合には、当該リコンフィギユラブルコア 101への 信号の入力に用いられるレジスタ回路 102へのクロックの供給を停止する。例えば、 第 1クロック停止回路 104は、対応するリコンフィギユラブルコア 101に回路が構成さ れない場合に、クロックの供給を停止する。
[0143] 第 2クロック停止回路 105は、 2段のレジスタ回路 102の各々に対応して形成される 。第 2クロック停止回路 105は、対応するレジスタ回路 102へのクロックの供給を制御 する。第 2クロック停止回路 105は、対応するレジスタ回路 102を用いた信号伝達が 行われない場合には、当該レジスタ回路 102へのクロックの供給を停止する。例えば 、リコンフィギユラブルコア 101Aと 101Bとが動作していたとしても、その間で信号伝 達がないことはあり得る。そのような場合にはリコンフィギユラブルコア 101Aと 101Bと の間のレジスタ回路 102にクロックを供給する必要はない。またリコンフィギユラブルコ ァ 101Aからリコンフィギユラブルコア 101Bへの信号伝達がある力 S、逆方向には信号 伝達がないこともあり得る。その場合にはリコンフィギユラブルコア 101Bからリコンフィ ギユラブルコア 101Aへの信号伝達を行う経路に揷入されたレジスタ回路 102のみへ のクロックの供給を停止すればょレ、。
[0144] 以上より、本発明の実施の形態 2に係る半導体集積回路 200は、使用されないリコ ンフィギユラブルコア 101へのクロックの供給を停止する。これにより、余分な消費電 力を削減できる。また、半導体集積回路 200は、使用されないレジスタ回路 102への クロックの供給を停止する。これにより、余分な消費電力を削減できる。
[0145] なお、図 13では、半導体集積回路 200は、全てのリコンフィギユラブルコア 101の 各々に対応する第 1クロック停止回路 104を備えている力 S、半導体集積回路 200は、 リコンフィギユラブルコア 101のいずれ力、 1以上に対応する 1以上の第 1クロック停止 回路 104を備えてもよい。この場合、回路機能のマッピング時に、対応する第 1クロッ ク停止回路 104が設けられていないリコンフィギユラブルコア 101に、優先的にマツピ ングを fiえばよい。
[0146] また、図 13では、半導体集積回路 200は、全てのレジスタ回路 102の各々に対応 する第 2クロック停止回路 105を備えている力 半導体集積回路 200は、レジスタ回 路 102のいずれ力、 1以上に対応する 1以上の第 2クロック停止回路 105を備えてもよ い。
[0147] (実施の形態 3)
上述した実施の形態 1におけるマッピングでは、図 10に示すステップ S201の回路 記述に 2段のレジスタ回路を揷入する処理を設計者が行うとした。実施の形態 3では 回路記述に 2段のレジスタ回路を揷入する処理を行うプログラム変換装置について 説明する。
[0148] 本発明の実施の形態 3に係るプログラム変換装置の機能は、例えば、パーソナルコ ンピュータ等がプログラムを実行することにより実現される。例えば、実施の形態 3に 係るプログラム変換装置は、図 8に示す構成と同様の構成である。すなわち、プログ ラム変換装置の機能は、 CPU403がプログラム 406を実行することにより実現される 。なお、本発明の実施の形態 3に係るプログラム変換装置の機能は、専用のハードウ エアにより実現されてもよい。
[0149] 本発明の実施の形態 3に係るプログラム変換装置は、従来と同様の回路記述を上 述した実施の形態 1に係るマッピング装置 400でマッピング可能な状態に変換する。 本発明の実施の形態 3に係るプログラム変換装置は、複数の処理モジュールからな る 1つの大規模な回路の回路機能が記述された回路記述の、各処理モジュール間 に選択的に 2段のレジスタ回路を揷入する。
[0150] 以下、設計者 ίこより 5つのモジユーノレ 301A、 301B、 301C、 301D及び 301Eの回 路機能が記述された回路記述に、プログラム変換装置がレジスタ回路を揷入する動 作について、図 14〜図 18を用いて説明する。
[0151] 図 14は、本発明の実施の形態 3に係るプログラム変換装置の処理の流れを示すフ ローチャートである。図 15〜図 18は、プログラム変換装置の処理を説明するための 図である。
[0152] まず、プログラム変換装置は、設計者により記述された、論理再構成可能な半導体 集積回路にマッピングする回路記述を取得する(S401)。プログラム変換装置により 取得される回路記述は、設計者により、複数の処理モジュールとして回路機能が記 述された回路記述である。回路記述には HDLなどのハードウェア記述言語、又は C 言語などの高級言語が使用される。例えば、プログラム変換装置は、図 15に示す回 路記述を取得する。
[0153] 次に、プログラム変換装置は、ステップ S401で取得された回路記述に基づき、複 数の処理モジュールからなる回路機能を 1つの回路とした場合の入力信号と出力信 号との満たすべき関係(制約)を算出する(S402)。具体的には、プログラム変換装 置は、回路記述に含まれる各処理モジュールの処理に要するサイクル数に基づき、 全体の回路の入力信号が入力されてから有効な出力信号が得られるまでのサイクル 数を算出する。例えば、プログラム変換装置は、制約として、図 15に示す入力信号 I NOが入力されてから、出力信号 OUTOが得られるまでのサイクル数を 5サイクル以 内と算出する。また、プログラム変換装置は、制約として、入力信号 INOが入力されて から、出力信号 OUT1が得られるまでのサイクル数を 3サイクル以内と算出する。
[0154] 次に、プログラム変換装置は、仮想モジュールを設定する(S403)。具体的には、 プログラム変換装置は、複数のモジュールのうちフィードバック系を有する複数のモ ジュールを抽出し、 1つの仮想モジュールと設定する。例えば、図 16に示すように、 モジュール 301Eの出力がモジュール 301Cにフィードバックしているので、プログラ ム変換装置は、モジュール 301Cとモジュール 301Eとを 1つの仮想モジュール 301F として設定する。また、プログラム変換装置は、フィードバック系を有さないモジュール 301A、 301B及び 301Dを各々 1つのモジュールとして設定する。すなわち、プログ ラム変換装置は、モジュール 301A、 301B、 301D及び仮想モジュール 301Fを各 々 1つのモジュールとして以降の処理で扱う。
[0155] 次に、プログラム変換装置は、モジュール 301A、 301B、 301D及び仮想モジユー ル 301Fの各々の間にレジスタを揷入、又は揷入しないパターンを生成する(S404) 。例えば、プログラム変換装置により生成される複数のパターンのうちレジスタの数が 最大となるパターンは、図 17に示すように、モジュール 301A、 301B、 301D及び仮 モジユーノレ 301Fの各々の ΓρΙίこレジスタ 302AB、 302AD、 302AF、 302BD及び 302BFが揷入されるパターンである。また、プログラム変換装置は、レジスタ 302AB 、 302AD、 302AF、 302BD及び 302BFのうちいずれ力、 1以上が揷入されるパター ン、及び全てが揷入されないパターンを生成する。なお、レジスタ 302AB、 302AD 、 302AF、 302BD及び 302BFを特に区別しない場合は、レジスタ 302と記す。
[0156] 例えば、信号の受け渡しがあるモジュール間の数を Nとすると、プログラム変換装置 は、 2N個のパターンを生成する。図 17に示す例では、信号の受け渡しがあるモジュ ール間の数は 5箇所である。よって、プログラム変換装置は、 25 = 32通りのパターン を生成する。ここで、揷入されるレジスタ 302は、各々 2段のレジスタである。
[0157] 次に、プログラム変換装置は、ステップ S404で生成された複数のパターンのうち、 ステップ S402で算出された制約を満たすパターンを抽出する(S405)。プログラム 変換装置は、ステップ S404で生成された複数のパターンの各々に対して、ステップ S402で算出された制約を満たすか否かを判定する。例えば、レジスタ 302BD及び 302BFのうち少なくとも一方を揷入した場合に制約が満たさない場合、プログラム変 換装置は、図 18に示すレジスタ 302AB、 302AD及び 302AFが揷入されたパター ンを制約が満たされるパターンとして抽出する。また、プログラム変換装置は、レジス タ 302AB、 302AD及び 302AFのうちいずれ力、 1以上が揷入されたパターン及びい ずれも揷入されないパターンを制約が満たされるパターンとして抽出する。
[0158] 次に、プログラム変換装置は、ステップ S405で抽出されたパターンのうちいずれか を選択する(S406)。例えば、プログラム変換装置は、抽出されたパターンのうち最も 揷入されるレジスタの数が多いパターンを選択する。つまり、図 18に示す例では、プ ログラム変換装置は、レジスタ 302AB、 302AD及び 302AFが揷入されたパターン を選択する。選択されたパターンに対して、図 9に示すステップ S202以降の処理が 上述したマッピング装置 400により実行される。
[0159] また、以降の処理で制約条件が満たされない場合、又はマッピング不可と判断され た場合に、プログラム変換装置は、ステップ S405で抽出されたパターンのうちステツ プ S406で選択されたパターンと異なるパターンを選択する。新たに選択されたバタ ーンに対してマッピング装置 400によりステップ S202以降の処理が実行される。
[0160] 以上より、本発明の実施の形態 3に係るプログラム変換装置は、回路記述にレジス タ回路 102に対応するレジスタを加えることができる。すなわち、本発明の実施の形 態 3に係るプログラム変換装置は、設計者により記述された従来と同様の回路記述を 、モジュール間に 2段のレジスタが揷入された回路記述に変換できる。
[0161] また、本発明の実施の形態 3に係るプログラム変換装置は、レジスタが揷入された 複数のパターンから制約を満たすパターンのみを抽出できる。
[0162] また、本発明に係る実施の形態 3に係るプログラム変換装置は、フィードバック系を 有するモジュール間にはレジスタを加えない。フィードバック系を有するモジュール間 にはレジスタを加えた場合、ステップ S405における制約を満たすか否かの判断が複 雑になり、プログラム変換装置の処理量が増加する。実施の形態 3に係るプログラム 変換装置は、フィードバック系を有するモジュール間にはレジスタを加えないので、 処理量を低減できる。
[0163] なお、上記説明では、プログラム変換装置はステップ S401において複数の処理モ ジュールとして回路機能が記述された回路記述を取得するとした力 S、プログラム変換 装置は 1つの大規模な回路記述を取得し、取得した回路記述を複数の処理モジユー ルに分割してもよい。
[0164] また、上記説明では、ステップ S402においてプログラム変換装置が回路記述に基 づき制約を算出するとしたが、プログラム変換装置は、設計者により入力された制約 を用いてもよい。
[0165] また、上述したプログラム変換装置を、実施の形態 1で説明したマッピング装置 400 の 1機能として実現してもよい。 産業上の利用可能性
本発明によれば、論理再構成可能な半導体集積回路に大規模な回路機能をマツ ビングすることが可能となるので、様々な電子機器において利用可能性がある。

Claims

請求の範囲
[1] クロックに同期して動作し、 自己の論理を再構成することが可能であり、各々が分離 してレイアウトされる複数のリコンフィギユラブルコアと、
前記複数のリコンフィギユラブルコアに含まれる第 1のリコンフィギユラブルコアと第 2 のリコンフィギユラブルコアとの間に形成され、前記第 1のリコンフィギユラブルコアの 出力を一時保持し、前記第 2のリコンフィギユラブルコアへと出力する第 1のレジスタ 回路群とを備え、
前記複数のリコンフィギユラブルコアの各々は、
アレイ状に配置され、各々が所定の論理を実現する複数のロジックエレメントと、 前記複数のロジックエレメントの間を接続するプログラマブルな配線とを備える ことを特徴とする半導体集積回路。
[2] 前記第 1のレジスタ回路群は、
前記第 1のリコンフィギユラブルコアの出力を一時保持する第 1のレジスタ回路と、 前記第 1のレジスタ回路から出力されるデータを保持し、前記第 2のリコンフィギユラ ブルコアへと出力する第 2のレジスタ回路とを含む
ことを特徴とする請求項 1記載の半導体集積回路。
[3] 前記第 1のレジスタ回路及び前記第 2のレジスタ回路に入力されるクロックは、前記 第 2のレジスタ回路が保持するデータの出力先となるリコンフィギユラブルコアと同一 のクロックである
ことを特徴とする請求項 2記載の半導体集積回路。
[4] 前記第 1のレジスタ回路群へデータを出力するリコンフィギユラブルコアと、前記第 1 のレジスタ回路群からデータが入力されるリコンフィギユラブルコアとは入力されるクロ ックが異なる
ことを特徴とする請求項 3記載の半導体集積回路。
[5] 前記複数のリコンフィギユラブルコアは、
前記リコンフィギユラブルコアの論理を再構成するためのコンフィギュレーションデ ータが入力される第 1の辺と、前記第 1の辺と対向する第 2の辺と、前記第 1の辺と直 交する第 3の辺と、前記第 3の辺と対向する第 4の辺とで囲まれる矩形の形状を有す る第 3のリコンフィギユラブルコア及び第 4のリコンフィギユラブルコアを含み、 前記第 3のリコンフィギユラブルコア及び第 4のリコンフィギユラブルコアは、前記第 1 の辺同士が対向するように分離してレイアウトされる
ことを特徴とする請求項 1記載の半導体集積回路。
[6] 前記半導体集積回路は、さらに、
前記第 3のリコンフィギユラブルコアと前記第 4のリコンフィギユラブルコアとの間に形 成され、前記第 3のリコンフィギユラブルコア及び前記第 4のリコンフィギユラブルコア の論理を再構成するためのコンフィギュレーションデータを保持する第 1記憶回路を 備える
ことを特徴とする請求項 5記載の半導体集積回路。
[7] 前記複数のリコンフィギユラブルコアは、さらに、
第 1の辺と、前記第 1の辺と対向する第 2の辺と、前記第 1の辺と直交する第 3の辺と 、前記第 3の辺と対向する第 4の辺とで囲まれる矩形の形状を有す第 5のリコンフィギ ユラブルコア及び第 6のリコンフィギユラブルコアを含み、
前記第 5のリコンフィギユラブルコアと第 6のリコンフィギユラブルコアとは、前記第 1 の辺同士が対向するように分離して配置され、
前記第 3のリコンフィギユラブルコアと第 5のリコンフィギユラブルコアとは、前記第 3 の辺同士が対向するように分離して配置され、
前記第 4のリコンフィギユラブルコアと第 6のリコンフィギユラブルコアとは、前記第 3 の辺同士が対向するように分離して配置される
ことを特徴とする請求項 6記載の半導体集積回路。
[8] 前記半導体集積回路は、さらに、
前記第 5のリコンフィギユラブルコアと前記第 6のリコンフィギユラブルコアとの間に形 成され、前記第 5のリコンフィギユラブルコア及び前記第 6のリコンフィギユラブルコア の論理を再構成するためのコンフィギュレーションデータを保持する第 2記憶回路を 備える
ことを特徴とする請求項 7記載の半導体集積回路。
[9] 前記半導体集積回路は、さらに、 前記第 1のレジスタ回路群へのクロックの供給を個別に停止するクロック停止回路を 備える
ことを特徴とする請求項 1記載の半導体集積回路。
[10] 前記第 1のレジスタ回路群は、
前記第 1のリコンフィギユラブルコアの出力を一時保持し、前記第 2のリコンフィギュ ラブルコアへと出力する第 2のレジスタ回路群と、
前記第 2のリコンフィギユラブルコアの出力を一時保持し、前記第 1のリコンフィギュ ラブルコアへと出力する第 3のレジスタ回路群とを含む
ことを特徴とする請求項 1記載の半導体集積回路。
[11] 前記第 1のレジスタ回路群は、前記複数のリコンフィギユラブルコアの間のうち、隣 接するリコンフィギユラブルコアの間の全てに配置され、隣接する 2つのリコンフィギュ ラブルコアのうち一のリコンフィギユラブルコアの出力を一時保持し、他のリコンフィギ ユラブルコアへと出力する
ことを特徴とする請求項 1記載の半導体集積回路。
[12] 前記複数のリコンフィギユラブルコアには全て同一のクロックが入力される
ことを特徴とする請求項 1記載の半導体集積回路。
[13] 前記第 1のレジスタ回路群は、複数のビットから構成されるデータを複数組保持す る
ことを特徴とする請求項 1記載の半導体集積回路。
[14] 前記ロジックエレメントの各々は LUTを備える
ことを特徴とする請求項 1記載の半導体集積回路。
[15] 前記ロジックエレメントの各々は少なくとも 1つの ALUを備える
ことを特徴とする請求項 1記載の半導体集積回路。
[16] 前記半導体集積回路は、さらに、
CPUを備え、
前記複数のリコンフィギユラブルコア、前記第 1のレジスタ回路群、及び前記 CPUは 、 1つの半導体基板上に実装される
ことを特徴とする請求項 1記載の半導体集積回路。
[17] 自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数の リコンフィギユラブルコアと、
前記複数のリコンフィギユラブルコアのうち少なくとも 2つの間に形成され、一のリコ ンフィギユラブルコアの出力を一時保持し、他のリコンフィギユラブルコアへと出力す る第 1のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置であって、 前記回路機能を、複数の回路機能ブロックに分割する分割手段と、
前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレ ジスタを除外する除外手段と、
前記除外された回路機能ブロックの各々を論理合成する合成手段と、 前記論理合成された回路機能ブロックの各々を前記リコンフィギユラブルコアの各 々に配置及び配線する配置配線手段とを備える
ことを特徴とするマッピング装置。
[18] 複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプロ グラム変換装置であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算 出手段と、
前記複数のモジュール間にレジスタを揷入、又は揷入しな!/、複数のパターンを生 成する生成手段と、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するバタ ーン抽出手段と、
前記抽出されたパターンのうちいずれ力、を選択し変換後の回路記述として出力す る選択手段とを備える
ことを特徴とするプログラム変換装置。
[19] 前記プログラム変換装置は、さらに、
前記複数のモジュールのうちフィードバック系を有する複数のモジュールを抽出す るフィードバック抽出手段を備え、
前記生成手段は、前記フィードバック抽出手段により抽出された複数のモジュール を 1つのモジュールとして、モジュール間にレジスタを揷入、又は揷入しない複数の パターンを生成する
ことを特徴とする請求項 18記載のプログラム変換装置。
[20] 自己の論理を再構成することが可能であり、各々が分離してレイアウトされる複数の リコンフィギユラブルコアと、
前記複数のリコンフィギユラブルコアのうち少なくとも 2つの間に形成され、一のリコ ンフィギユラブルコアの出力を一時保持し、他のリコンフィギユラブルコアへと出力す る第 1のレジスタ回路群とを備える半導体集積回路に、
回路記述に記述される回路機能をマッピングするマッピング装置におけるマツピン グ方法であって、
前記回路機能を、複数の回路機能ブロックに分割する分割ステップと、 前記複数の回路機能ブロックから、前記複数の回路機能ブロックの間に位置するレ ジスタを除外する除外ステップと、
前記除外された回路機能ブロックの各々を論理合成する合成ステップと、 前記論理合成された回路機能ブロックの各々を前記リコンフィギユラブルコアの各 々に配置及び配線する配置配線ステップとを含む
ことを特徴とするマッピング方法。
[21] 複数のモジュールからなる回路の回路機能が記述された回路記述を変換するプロ グラム変換装置におけるプログラム変換方法であって、
前記回路記述に基づき、前記回路の入力信号と出力信号との制約を算出する算 前記複数のモジュール間にレジスタを揷入、又は揷入しな!/、複数のパターンを生 成する生成ステップと、
前記生成された複数のパターンから、前記制約を満たすパターンを抽出するバタ ーン抽出ステップと、
前記抽出されたパターンのうちいずれ力、を選択し変換後の回路記述として出力す る選択ステップとを含む
ことを特徴とするプログラム変換方法。
PCT/JP2007/064261 2006-07-27 2007-07-19 Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage WO2008013098A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2007553406A JP4971998B2 (ja) 2006-07-27 2007-07-19 半導体集積回路、プログラム変換装置及びマッピング装置
EP07791015A EP2048784A4 (en) 2006-07-27 2007-07-19 INTEGRATED SEMICONDUCTOR SWITCHING, PROGRAMMING DEVICE AND ILLUSTRATION DEVICE
US12/375,063 US7906987B2 (en) 2006-07-27 2007-07-19 Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus
US13/020,409 US20110126164A1 (en) 2006-07-27 2011-02-03 Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2006204383 2006-07-27
JP2006-204383 2006-07-27

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/020,409 Division US20110126164A1 (en) 2006-07-27 2011-02-03 Semiconductor integrated circuit, program transformation apparatus, and mapping apparatus

Publications (1)

Publication Number Publication Date
WO2008013098A1 true WO2008013098A1 (fr) 2008-01-31

Family

ID=38981410

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2007/064261 WO2008013098A1 (fr) 2006-07-27 2007-07-19 Circuit intégré à semi-conducteurs, appareil de conversion de programmes et appareil de mappage

Country Status (6)

Country Link
US (2) US7906987B2 (ja)
EP (1) EP2048784A4 (ja)
JP (1) JP4971998B2 (ja)
KR (1) KR20090035538A (ja)
CN (1) CN101496283A (ja)
WO (1) WO2008013098A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203920A (ja) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd データ処理装置
JP2016009709A (ja) * 2014-06-23 2016-01-18 東芝情報システム株式会社 半導体装置
JP2016513363A (ja) * 2013-02-08 2016-05-12 ザ トラスティーズ オブ プリンストン ユニヴァーシティ ファイングレイン構造の動的に再構成可能なfpgaアーキテクチャ
JP2017079474A (ja) * 2012-05-25 2017-04-27 株式会社半導体エネルギー研究所 プログラマブルロジックデバイス
CN110895649A (zh) * 2018-08-23 2020-03-20 珠海零边界集成电路有限公司 一种集成电路后端布线管理系统、布线管理方法和芯片
CN112074824A (zh) * 2018-04-03 2020-12-11 赛灵思公司 具有数据处理引擎阵列的装置
US11972132B2 (en) 2018-04-03 2024-04-30 Xilinx, Inc. Data processing engine arrangement in a device

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102057575A (zh) * 2008-06-05 2011-05-11 松下电器产业株式会社 信号处理装置、信号处理方法、信号处理用集成电路及电视接收机
JP5407631B2 (ja) * 2009-07-21 2014-02-05 富士ゼロックス株式会社 回路情報生成装置、機能実行システム、及びプログラム
US8286113B1 (en) * 2011-01-11 2012-10-09 Xilinx, Inc. Verification of logic core implementation
CN102402415B (zh) * 2011-10-21 2013-07-17 清华大学 一种动态可重构阵列内数据缓存的装置及方法
US8860457B2 (en) 2013-03-05 2014-10-14 Qualcomm Incorporated Parallel configuration of a reconfigurable instruction cell array
TWI561007B (en) * 2015-07-22 2016-12-01 Nuvoton Technology Corp Function programmable circuit and operation method thereof
US10432196B2 (en) * 2015-07-22 2019-10-01 Nuvoton Technology Corporation Communication device, communication system and operation method thereof
TWI647551B (zh) * 2017-05-26 2019-01-11 新唐科技股份有限公司 通訊裝置、通訊系統及其操作方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH098646A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> プログラマブル・アレイ相互接続ラッチ
US5594363A (en) 1995-04-07 1997-01-14 Zycad Corporation Logic cell and routing architecture in a field programmable gate array
US6335635B1 (en) 1997-04-09 2002-01-01 Altera Corporation Programmable reticle stitching
JP2003329743A (ja) * 2002-05-14 2003-11-19 Renesas Technology Corp 半導体集積回路のテスト方法およびテスト装置
WO2005062212A1 (en) * 2003-12-18 2005-07-07 Koninklijke Philips Electronics N.V. Template-based domain-specific reconfigurable logic

Family Cites Families (22)

* Cited by examiner, † Cited by third party
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
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
US5867507A (en) * 1995-12-12 1999-02-02 International Business Machines Corporation Testable programmable gate array and associated LSSD/deterministic test methodology
US5894565A (en) * 1996-05-20 1999-04-13 Atmel Corporation Field programmable gate array with distributed RAM and increased cell utilization
US5897507A (en) * 1996-11-25 1999-04-27 Symbiosis Corporation Biopsy forceps instrument having irrigation and aspiration capabilities
US6148233A (en) * 1997-03-07 2000-11-14 Cardiac Science, Inc. Defibrillation system having segmented electrodes
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
US6150838A (en) * 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US6469540B2 (en) * 2000-06-15 2002-10-22 Nec Corporation Reconfigurable device having programmable interconnect network suitable for implementing data paths
US6870396B2 (en) * 2000-09-02 2005-03-22 Actel Corporation Tileable field-programmable gate array architecture
US6970013B1 (en) * 2002-03-01 2005-11-29 Xilinx, Inc Variable data width converter
DE60231191D1 (de) * 2002-04-03 2009-04-02 Sicronic Remote Kg Llc Feldprogrammierbare Vorrichtung
US8495122B2 (en) * 2003-12-29 2013-07-23 Xilinx, Inc. Programmable device with dynamic DSP architecture
JP2006237388A (ja) * 2005-02-25 2006-09-07 Matsushita Electric Ind Co Ltd 半導体集積回路及び半導体集積回路の制御方法及び信号伝送回路
US7268581B1 (en) * 2005-04-21 2007-09-11 Xilinx, Inc. FPGA with time-multiplexed interconnect
JP4328334B2 (ja) * 2006-03-13 2009-09-09 パナソニック株式会社 半導体集積回路装置
JP2007333538A (ja) * 2006-06-14 2007-12-27 Matsushita Electric Ind Co Ltd テスト回路、セレクタおよび半導体集積回路
JP2008059335A (ja) * 2006-08-31 2008-03-13 Fuji Xerox Co Ltd 情報処理装置、通信システムおよび情報処理装置プログラム
JP2008091406A (ja) * 2006-09-29 2008-04-17 Matsushita Electric Ind Co Ltd 半導体集積回路のレイアウト方法
JP2008192841A (ja) * 2007-02-05 2008-08-21 Matsushita Electric Ind Co Ltd 半導体集積回路
US7616025B1 (en) * 2007-08-14 2009-11-10 Actel Corporation Programmable logic device adapted to enter a low-power mode

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
JPH098646A (ja) * 1995-06-07 1997-01-10 Internatl Business Mach Corp <Ibm> プログラマブル・アレイ相互接続ラッチ
US6335635B1 (en) 1997-04-09 2002-01-01 Altera Corporation Programmable reticle stitching
JP2003329743A (ja) * 2002-05-14 2003-11-19 Renesas Technology Corp 半導体集積回路のテスト方法およびテスト装置
WO2005062212A1 (en) * 2003-12-18 2005-07-07 Koninklijke Philips Electronics N.V. Template-based domain-specific reconfigurable logic

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2048784A4 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011203920A (ja) * 2010-03-25 2011-10-13 Fuji Xerox Co Ltd データ処理装置
US8719550B2 (en) 2010-03-25 2014-05-06 Fuji Xerox Co., Ltd. Reconfigurable processing system including synchronized postprocessing
JP2017079474A (ja) * 2012-05-25 2017-04-27 株式会社半導体エネルギー研究所 プログラマブルロジックデバイス
US10122364B2 (en) 2012-05-25 2018-11-06 Semiconductor Energy Laboratory Co., Ltd. Programmable logic device and semiconductor device
JP2016513363A (ja) * 2013-02-08 2016-05-12 ザ トラスティーズ オブ プリンストン ユニヴァーシティ ファイングレイン構造の動的に再構成可能なfpgaアーキテクチャ
JP2016009709A (ja) * 2014-06-23 2016-01-18 東芝情報システム株式会社 半導体装置
CN112074824A (zh) * 2018-04-03 2020-12-11 赛灵思公司 具有数据处理引擎阵列的装置
JP2021532430A (ja) * 2018-04-03 2021-11-25 ザイリンクス インコーポレイテッドXilinx Incorporated データ処理エンジンアレイを有するデバイス
US11972132B2 (en) 2018-04-03 2024-04-30 Xilinx, Inc. Data processing engine arrangement in a device
CN110895649A (zh) * 2018-08-23 2020-03-20 珠海零边界集成电路有限公司 一种集成电路后端布线管理系统、布线管理方法和芯片

Also Published As

Publication number Publication date
JPWO2008013098A1 (ja) 2009-12-17
EP2048784A4 (en) 2010-10-27
US20090237113A1 (en) 2009-09-24
US20110126164A1 (en) 2011-05-26
CN101496283A (zh) 2009-07-29
US7906987B2 (en) 2011-03-15
KR20090035538A (ko) 2009-04-09
EP2048784A1 (en) 2009-04-15
JP4971998B2 (ja) 2012-07-11

Similar Documents

Publication Publication Date Title
JP4971998B2 (ja) 半導体集積回路、プログラム変換装置及びマッピング装置
JP4208577B2 (ja) 集積回路装置
EP2041872B1 (en) Reconfigurable logic fabrics for integrated circuits and systems and methods for configuring reconfigurable logic fabrics
US9270279B2 (en) Apparatus and methods for time-multiplex field-programmable gate arrays
US20070247189A1 (en) Field programmable semiconductor object array integrated circuit
US20060158219A1 (en) Programmable logic and routing blocks with dedicated lines
JP4484756B2 (ja) リコンフィギュラブル回路および処理装置
US20080263334A1 (en) Dynamically configurable and re-configurable data path
US8516025B2 (en) Clock driven dynamic datapath chaining
JP2008537268A (ja) 可変精度相互接続を具えたデータ処理エレメントの配列
US11750195B2 (en) Compute dataflow architecture
Manohar Reconfigurable asynchronous logic
Koch et al. Zero logic overhead integration of partially reconfigurable modules
US7800404B2 (en) Field programmable application specific integrated circuit with programmable logic array and method of designing and programming the programmable logic array
WO2005062212A1 (en) Template-based domain-specific reconfigurable logic
Nayak et al. A framework for adding low-overhead, fine-grained power domains to CGRAs
WO2006059775A2 (en) Dynamically reconfigurable processor
JP2005276854A (ja) 処理装置
US20090198973A1 (en) Processing circuit
JP2001134551A (ja) 半導体集積回路およびそのレイアウト設計方法
JP2009017141A (ja) プログラマブル論理回路装置、プログラマブル論理回路再構成方法、及び、プログラム
JP2008219728A (ja) 再構成可能な演算処理回路
JP2000208632A (ja) 半導体集積回路設計方法

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200780028272.0

Country of ref document: CN

WWE Wipo information: entry into national phase

Ref document number: 2007553406

Country of ref document: JP

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07791015

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2007791015

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 1020097001408

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 12375063

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

NENP Non-entry into the national phase

Ref country code: RU