WO2005078933A1 - プログラマブル論理回路 - Google Patents

プログラマブル論理回路 Download PDF

Info

Publication number
WO2005078933A1
WO2005078933A1 PCT/JP2005/001837 JP2005001837W WO2005078933A1 WO 2005078933 A1 WO2005078933 A1 WO 2005078933A1 JP 2005001837 W JP2005001837 W JP 2005001837W WO 2005078933 A1 WO2005078933 A1 WO 2005078933A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
setting information
unit
logic circuits
logical operation
Prior art date
Application number
PCT/JP2005/001837
Other languages
English (en)
French (fr)
Inventor
Yasuhiro Aoyama
Yosuke Kudo
Original Assignee
Matsushita Electric Industrial Co., Ltd.
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
Priority claimed from JP2004035042A external-priority patent/JP3837135B2/ja
Priority claimed from JP2004035043A external-priority patent/JP3837136B2/ja
Application filed by Matsushita Electric Industrial Co., Ltd. filed Critical Matsushita Electric Industrial Co., Ltd.
Priority to US10/589,078 priority Critical patent/US7365566B2/en
Publication of WO2005078933A1 publication Critical patent/WO2005078933A1/ja

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
    • 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/17748Structural details of configuration resources
    • H03K19/17752Structural details of configuration resources for hot reconfiguration
    • 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
    • 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/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • 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
    • H03K19/17748Structural details of configuration resources
    • H03K19/17756Structural details of configuration resources for partial configuration or partial reconfiguration
    • 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/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • 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 programmable logic circuit capable of realizing a predetermined logical operation function by programming, and more particularly to a dynamic programmable logic circuit that performs processing while dynamically changing an internal configuration. is there.
  • a conventional programmable logic circuit is described in Patent Document 1.
  • This conventional programmable logic circuit is a dynamically reconfigurable field programmable logic device that uses a dynamic interconnect array, a latch circuit, and a dynamic logic core to execute the circuit to be implemented stepwise.
  • a large-scale logic circuit is realized, a plurality of the programmable logic circuits are connected in series, and logic processing of each level is executed sequentially.
  • the conventional programmable logic circuit uses a circuit level counter indicating a circuit level and an internal counter indicating an internal level, and when the internal level of the first chip reaches a specified level, Is controlled to operate the chip. That is, in the above-mentioned conventional programmable logic circuit, the circuit level is divided and implemented on a chip-by-chip basis.
  • Patent Document 1 Japanese Patent Publication No. Hei 8-510885
  • the present invention has been made in view of the power points, and has an object to provide a low-cost programmable logic circuit having high area efficiency and capable of realizing a large-scale logic circuit at high speed.
  • a first aspect of the present invention is directed to a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from outside to the plurality of unit logic circuits, and Output signal control means for supplying an output signal of the unit logic circuit to the outside, wherein the function of each of the plurality of unit logic circuits can be changed based on first setting information.
  • a logical operation means for performing predetermined logical operation processing on an input signal to generate data, and generating data by performing alignment, duplication and inversion of the data from the logical operation means based on second setting information
  • Data processing means for giving the output signal to the output signal control means, storage means for storing the first and second setting information, and receiving the setting information for branching and receiving the setting information for branching based on the setting information for branching.
  • a second aspect of the present invention is directed to a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, Output signal control means for supplying the output signal of the unit logic circuit to the outside.
  • Each of the plurality of unit logic circuits is capable of changing its function based on the first setting information, and performs a predetermined logic operation on the input signal to generate data;
  • a data processing unit that generates data by performing alignment, duplication, and inversion of the data from the logical operation unit based on second setting information, and provides the output signal to the output signal control unit;
  • storage means for storing second setting information; receiving the setting information for stopping; and the logical operation means based on the setting information for stopping.
  • Memory control means for controlling the stop of the data processing means, wherein each of the plurality of unit logic circuits is based on the first and second setting information sequentially read from the storage means.
  • a configuration is adopted in which some or all of the functions of the logical operation means and the data processing means are sequentially changed to perform the operation of a predetermined sequential circuit.
  • a third aspect of the present invention is directed to a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from outside to the plurality of unit logic circuits, Connecting means for connecting one of the unit logic circuits and another of the unit logic circuits which are physically adjacent to the one unit logic circuit in the unit logic circuit, and the plurality of unit logic circuits Output signal control means for supplying the output signal of the above to the outside, wherein each of the plurality of unit logic circuits is capable of changing its function based on the first setting information, Logic operation means for performing predetermined logic operation processing on data from the other unit logic circuit to generate a data, and aligning the data from the logic operation means based on second setting information.
  • Data processing means for generating data as the output signal and providing the output signal to the output signal control means; storage means for storing the first and second setting information; Memory control means for reading out one of the first and second setting information from the storage means based on the setting information for use and controlling the logical operation means and the data processing means.
  • Each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logical operation means and the data processing means based on the first and second setting information sequentially read from the storage means. In this configuration, a predetermined sequential circuit operates.
  • a fourth aspect of the present invention is directed to a fourth aspect, wherein a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, Connecting means for connecting one of the unit logic circuits and another of the unit logic circuits which are physically adjacent to the one unit logic circuit in the unit logic circuit, and the plurality of unit logic circuits Output signal control means for supplying the output signal of the above to the outside, wherein each of the plurality of unit logic circuits is capable of changing its function based on the first setting information, Data from the other unit logic circuit A logical operation means for generating data by performing a predetermined logical operation processing on any of the above, and performing data alignment, duplication and inversion processing from the logical operation means on the basis of second setting information to convert the data.
  • Data processing means for generating and providing the output signal as the output signal to the output signal control means; storage means for storing the first and second setting information; Memory control means for controlling the stop of the logical operation means and the data processing means based on the first and second data read from the storage means sequentially from the storage means. Based on the setting information, part or all of the functions of the logical operation means and the data processing means are sequentially changed to operate a predetermined sequential circuit.
  • a fifth aspect of the present invention is directed to a fifth aspect, wherein a plurality of unit logic circuits connected in parallel, an input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, Output signal control means for supplying the output signal of the unit logic circuit to the outside.
  • each of the plurality of unit logic circuits is capable of changing its function based on any of the first setting information, and generates data by performing a predetermined logical operation on the input signal.
  • Logical operation means and performs data alignment, duplication, and inversion processing from the logical operation means based on any of the second setting information to generate data, and outputs the data to the output signal control means as the output signal.
  • Memory control means for storing a start position address indicating a start position of a storage position address of the first and second setting information in the storage means based on any of the plurality of unit logics.
  • Each of the circuits is configured to read the logical operation means and the data based on one of the first and second setting information sequentially read from the storage means based on the head position address stored in the memory control means.
  • a configuration is adopted in which some or all of the functions of the processing means are sequentially changed to operate a predetermined sequential circuit.
  • a sixth aspect of the present invention is directed to a sixth aspect, wherein a plurality of unit logic circuits connected in parallel, A connection unit for connecting one unit logic circuit in the unit logic circuit and another unit logic circuit adjacent in physical arrangement to the one unit logic circuit; and Input signal control means for supplying to a plurality of unit logic circuits, and output signal control means for supplying output signals of the plurality of unit logic circuits to the outside, the input signal control means based on the input signal Means for providing a control signal to the plurality of unit logic circuits, and means for providing index information to the plurality of unit logic circuits when an index instruction signal is received.
  • the function can be changed based on either the S or the first setting information, and the data is obtained by performing a predetermined logical operation on the input signal or data from the adjacent unit logic circuit.
  • Logic operation means for generating data, and performing data alignment, duplication and inversion processing from the logic operation means based on any of the second setting information to generate data and output the data as the output signal.
  • Data processing means to be provided to the signal control means, storage means for storing the first and second setting information, and any one of the control signal and the index information when receiving any of the control signal and the index information
  • Memory control means for storing a head position address indicating a head position of a storage position address of the first and second setting information in the storage means based on the first and second setting information.
  • a low-cost programmable logic circuit having high area efficiency and capable of realizing a large-scale logic circuit at high speed can be provided.
  • FIG. 1 is a block diagram showing a configuration of a programmable logic circuit according to Embodiment 1 of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a processor element of the programmable logic circuit according to Embodiment 1 of the present invention.
  • FIG. 3 is a diagram illustrating a processor element of a programmable logic circuit according to Embodiment 1 of the present invention. Block diagram showing the configuration of the logic element
  • FIG. 18 A block diagram showing a processing circuit for implementing a programmable logic circuit
  • FIG. 19 is a diagram for explaining a storage state of setting information inside a memory device when branch control of the programmable logic circuit according to Embodiment 2 of the present invention is not used.
  • FIG. 20 is a diagram for explaining a storage state of setting information inside a memory device when branch control of the programmable logic circuit according to Embodiment 2 of the present invention is used.
  • FIG. 21 is a diagram for explaining stop setting information used for stop control by the programmable logic circuit according to Embodiment 3 of the present invention.
  • FIG. 22 is a block diagram showing a configuration of a programmable logic circuit according to Embodiment 4 of the present invention.
  • FIG. 23 is a block diagram showing a configuration of a processor element of a programmable logic circuit according to Embodiment 4 of the present invention.
  • FIG. 24 is a block diagram showing a configuration of a logic element of a processor element of a programmable logic circuit according to Embodiment 4 of the present invention.
  • FIG. 25 shows a configuration of a memory device of a programmable logic circuit according to Embodiment 4 of the present invention.
  • FIG. 1 is a block diagram showing a configuration of a programmable logic circuit according to Embodiment 1 of the present invention.
  • the programmable logic circuit 100 includes a plurality of processor elements 101, a plurality of memory devices 102, an input / output control unit 103, a control bus 104, and an input bus. 105 and an output bus 106.
  • a clock generation circuit 107 and a user circuit 108 are connected to the programmable logic circuit 100.
  • the plurality of processor elements 101 and the plurality of memory devices 102 are connected on a one-to-one basis.
  • the processor element 101 and the memory device 102 connected one-to-one form a unit logic circuit.
  • the plurality of unit logic circuits are connected in parallel.
  • Each of the plurality of processor elements 101 is one-dimensionally arranged in a line, and is connected to two other processor elements 101 that are physically adjacent to each other by a connection line 101a. That is, the plurality of unit logic circuits are arranged one-dimensionally in one row, and are physically arranged with respect to one of the unit logic circuits and one of the unit logic circuits in the plurality of unit logic circuits.
  • the other unit logic circuits adjacent to each other are connected by a connection line 101a.
  • the processor element 101 exchanges data with two adjacent other processor elements 101 using a connection line.
  • the input / output control unit 103 is an interface circuit with the outside, and is connected to the user circuit 108.
  • the control bus 104 is connected to the input / output control unit 103 and the processor element 101.
  • the control bus 104 receives control signals for initialization, activation, and the like from the input / output control unit 103 and transfers them to each processor element 101.
  • the input bus 105 is connected to the input / output control unit 103 and the processor element 101.
  • the input bus 105 receives data used for a logical operation from the input / output control unit 103 and transfers the data to each processor element 101.
  • the output bus 106 is connected to the input / output control unit 103 and the processor element 101.
  • the output bus 106 receives the operation result data from the processor element 101 and transfers the data to the input / output control unit 103.
  • the clock generation circuit 107 generates an internal clock signal 109 and a user clock signal 110.
  • the user clock signal 110 is used in the user circuit 108 and the input / output control unit 103.
  • the internal clock signal 109 has a frequency that is a multiple of the user clock signal 110 and is used inside the programmable logic circuit 100.
  • the contents of the logical operation performed by the programmable logic circuit 100 are stored in the memory device 102 as setting information.
  • Each processor element 101 sequentially reads the setting information of the memory device 102 and performs a corresponding logical operation process.
  • the programmable logic circuit 100 receives a start signal and data used for a logical operation from the user circuit 108 in synchronization with the user clock signal 110. After a certain period of time, The gramable logic circuit 100 supplies the data after the logical operation processing to the user circuit 108 in synchronization with the user one clock signal 110.
  • each memory device 102 stores setting information of an adjacent processor element 101.
  • the memory device 102 gives setting information specified by the address to the processor element 101.
  • the processor element 101 determines the processing content to be executed based on the setting information.
  • the processor element 101 When the initialization signal is input from the control bus 104, the processor element 101 reads a specific address of the memory device 102, extracts and stores a storage location address of the setting information from the input read data. I do.
  • This storage position address is an address indicating the head position of the setting information.
  • the processor element 101 When a start signal is input from the control bus 104, the processor element 101 sequentially reads setting information from the stored storage location address of the memory device 102. Further, the processor element 101 receives the data for logical processing from the input bus 105 and the adjacent processor element 101, performs logical processing of the data based on the setting information, and then arranges the data in a 1J, duplicates and inverts the data. And retain the data after processing. Further, the processor element 101 outputs the held processed data to the output bus 106 and the adjacent processor element 101.
  • the input / output control unit 103 receives a start signal and data for logic processing synchronized with the user clock signal 110 from the user circuit 108, and supplies the data to the input bus 105 in synchronization with the internal clock signal 109. Also, the input / output control unit 103 receives an initialization signal synchronized with the user clock signal 110 from the user circuit 108 and outputs this data to the input bus 105 in synchronization with the internal clock signal 109. Further, the input / output control unit 103 receives data after logic processing synchronized with the internal clock signal 109 from the output bus 106, and outputs this data to the user circuit 108 in synchronization with the user clock signal 110. This In this way, the input / output control unit 103 exchanges control signals, data for logic processing, and data of processing results with the user circuit 108.
  • FIG. 2 shows a configuration of the processor element 101.
  • the processor element 101 includes a logic element 200 and a memory control unit 201.
  • the processor element 101 is connected to a memory device 102, a control bus 104, an input bus 105, and an output bus 106, and is connected thereto.
  • the memory control unit 201 is connected to the memory device 102, the logic element 200, the control bus 104, and the data bus 111.
  • the logic element 200 is connected to the logic element 200 and the memory control unit 201 of the adjacent processor selection 101, the input bus 105, the output bus 106, and the data bus 111.
  • the memory control unit 201 upon receiving an initialization signal from the control bus 104, the memory control unit 201 performs the above-described process of extracting and holding the storage location address.
  • the memory control unit 201 sequentially reads the setting information from the stored storage position address of the memory device 102 and transfers the setting information to the logic element 200.
  • the logic element 200 receives data from the input bus 105 and the adjacent processor element 101, performs logic processing on the data based on the setting information transferred from the memory control unit 201, and then arranges and copies the data. And perform inversion processing, and hold the processed data.
  • the logic element 200 outputs the processed data to the output bus 106 and the adjacent processor element 101 based on the setting information transferred from the memory control unit 201.
  • FIG. 3 shows a configuration of the logic element 200.
  • FIG. 4 shows the configuration information and the configuration of the memory device 102.
  • a logic element 200 includes a logic sensor 300 and a cross-connect switch 30.
  • the logic element 200 is 1. Connected to input bus 105 and output bus 106.
  • the logic cell 300 is connected to the memory control unit 201, flip-flop 302, and cross-connect switch 301.
  • the cross connect switch 301 is connected to the memory control unit 201, the logic cell 300, the flip-flop 302, the input bus 105, and the logic cell 300 inside the adjacent logic element 200.
  • the flip-flop 302 is connected to the logic sensor 300, the cross-connect switch 301, the output bus 106, and the memory control unit 201.
  • the logic cell 300 forms a logic operation circuit.
  • the cross-connect switch 301 constitutes a data processing device. Further, the cross-connect switch 301 and the flip-flop 302 constitute a data processing device.
  • FIG. 4 shows a configuration of the memory device.
  • storage address information of the setting information is stored in a head portion inside the memory device 102.
  • the setting information is stored in a specific area inside the memory device 102 other than the head portion.
  • bits 25 to 26 are setting information of the logic cell 300, and bits 0 to 24 are setting information of the cross-connect switch 301.
  • Bits 0 to 24 are composed of 4-bit connection information and 1-bit inversion control information corresponding to the five outputs of the cross-connect switch 301 in 5-bit units.
  • the logic cell 300 performs a specific logic process specified by the setting information transferred from the memory control unit 201 on the data input from the flip-flop 302, and the cross-connect switch 301 , And outputs the processed data to the logic element 200 of the adjacent processor element 101.
  • the cross-connect switch 301 is provided for the specific data specified by the setting information transferred from the memory control unit 201 with respect to the data to which the logic cell 300, the input bus 105, and the logic element 200 of the adjacent processor element 101 are also input. 1J, perform duplication and inversion, and output the processed data to flip-flop 302.
  • the flip-flop 302 holds the data input from the cross-connect switch 301 at the timing of the internal clock signal 109.
  • the flip-flop 302 outputs the held data to the logic cell 300 and the output bus 106.
  • FIG. 5 shows an example of the function and operation of the logic cell 300 in this case.
  • the logic cell 300 when the setting information is 00, the logic cell 300 outputs a logical sum (OR) of the input data.
  • the logic cell 300 When the setting information is 01, the logic cell 300 outputs a logical product (AND) of the input data.
  • the logic cell 300 When the setting information is 10, the logic cell 300 outputs an exclusive OR (X ⁇ R) of the input data.
  • the logic cell 300 outputs inverted data (N ⁇ R) of the logical sum of the input data.
  • the logic sensor 300 is a circuit that can realize a plurality of different logic functions based on the setting information.
  • FIG. 7 shows an example of internal blocks and functions of the cross-connect switch 301.
  • each output data of the interconnecting unit 700 is exclusive-ORed with one bit of the setting information and output to the outside.
  • This XOR is for inverting the output data from the cross-connect switch 301 in bit units based on the setting information. In this case, since the number of outputs is 2, two bits of setting information are used in the XOR part, so that the setting information used by the entire cross-connect switch 301 is a total of six bits.
  • FIG. 8 shows a functional example of the interconnect 700 in this case.
  • the interconnecting unit 700 selects the data whose two MSBs of the setting information are output to OUT1 and the data whose two LSBs are output to OUT2.
  • the interconnecting unit 700 outputs the input data A when the setting information is 00, and outputs the input data B when the setting information is 01.
  • Interconnection section 700 outputs input data C when the setting information is 10, and outputs low level when the setting information is 11.
  • the cross-connect switch 301 can arrange, copy, and invert a plurality of pieces of input data based on the setting information, and can output a fixed value set in the setting information.
  • FIG. 9 and 10 show examples of the operation timing of the programmable logic circuit 100.
  • FIG. 9 shows the operation of the initialization from the outside.
  • Fig. 10 shows the operation of external activation and actual logical processing.
  • the input / output control unit 103 receives the initialization signal 900 synchronized with the user clock signal 110 from the user circuit 108, and holds it as the internal initialization signal 901.
  • the input / output control unit 103 outputs the held internal initialization signal 901 to the control bus 104 in synchronization with the internal clock signal 109.
  • the internal initialization signal 902 of the control bus 104 is input to the memory control units 201 of all the processor elements 101.
  • the memory control unit 201 of the processor element 101 outputs a read signal 903 to a specific address 904 of the memory device 102 by using the input internal initialization signal 902 as a trigger. After that, the memory control unit 201 once holds the input read data 905 as the holding data 906, and extracts and holds the storage location address 907 of the setting information from the holding data 906.
  • the storage location address 907 of the setting information is stored in each processor element 101, and the processing element can be executed at any time.
  • the programmable logic circuit 100 is in a startup waiting state.
  • the input / output control unit 103 receives the start signal 1000 and the processing data 1001 synchronized with the user clock signal 110 from the user circuit 108, and holds them as the internal start signal 1002 and the processing data 1003.
  • the input / output control unit 103 outputs the held internal activation signal 1002 to the control bus 104 in synchronization with the internal clock signal 109. Further, the input / output control unit 103 outputs the held internal processing data 1003 to the input bus 105 in synchronization with the internal clock signal 109.
  • the internal activation signal 1004 of the control bus 104 is input to the memory control units 201 of all the processor elements 101.
  • the logic processing data 1005 of the input bus 105 is input to the logic elements 200 of all the processor elements 101.
  • the memory control unit 201 of each of the processor elements 101 triggers the input internal activation signal 1004.
  • a read signal 903 is output to the storage position address 907 held in the memory device 102 during the T3 period.
  • each memory control unit 201 holds the read data 905 output from the memory device 102 as the holding data 906.
  • the memory control unit 201 outputs a read signal 603 to the next address of the memory device 102.
  • each memory control unit 201 outputs the held data 906 to the logic element 200.
  • Each memory control unit 201 holds read data 905 output from the memory device 102.
  • each memory control unit 201 outputs a read signal to the next address of the memory device 102.
  • Each logic element 200 performs alignment, duplication, and inversion of the logic processing data 1005 from the input bus 105 based on the input held data (setting information) 906, and stores the processed data in an internal flip-flop. Hold at 302.
  • each memory control unit 201 outputs the held data 906 to the logic element 200.
  • each memory control unit 201 internally holds read data 905 output from the memory device 102.
  • each memory control unit 201 outputs a read signal to the next address of the memory device 102.
  • Each logic element 200 performs logic processing on the logic processing data 1005 from the flip-flop 302, the input bus 105, and the adjacent processor element 101 based on the input held data (setting information) 906. Then, the processed data is held in the flip-flop 302.
  • one logical process is realized by repeating the process in the T10 period.
  • the data of the flip-flop 302 has been output to the output bus 106, and the input / output control unit 103 always holds this data in synchronization with the internal clock signal 109.
  • the input / output control unit 103 outputs the held data to the user circuit 108 in synchronization with the user clock signal 110.
  • the user circuit 108 refers to the flag of the input data and holds output data (data after logic processing) or holds data after a predetermined period.
  • FIG. 11 shows the function of a logic cell 300 having two inputs and two outputs.
  • FIG. 12 shows an example in which a 4-bit comparison circuit is mapped to a programmable logic circuit 100 having a logic cell 300.
  • FIG. 12 four physically different processor elements 101 are shown in the vertical direction, and what kind of processing the same processor element 101 performs in each cycle is shown in the horizontal direction.
  • FIG. 13 shows a 4-bit comparison circuit. As shown in Fig. 13, as input data, I
  • the input and output of the logic cell (LC) 300 are LSB on the upper side and MSB on the lower side.
  • the data described below the logic cell (LC) 300 is setting information for the logic cell (LC) 300.
  • the plurality of logic cells (LC) 300 operate as shown in FIG. First, in cycles 1 and 2, the plurality of logic cells (LCs) 300 arrange input data in bit units. In cycle 3, the plurality of logic cells (LC) 300 perform XNOR processing on each bit. In cycle 4, the plurality of mouth cells (LC) 300 perform an AND operation on the result of cycle 3. In cycle 5, the plurality of logic cells (LC) 300 perform an AND operation on the result of cycle 4. In cycle 6, the plurality of logic cells (LC) 300 output a comparison result.
  • the output is determined in six cycles of the internal clock signal 109.
  • the user circuit 108 looks as if the comparison process is completed in one clock.
  • the memory control unit 201 is connected to the memory device 102, the control bus 104, and the data bus 111.
  • the input terminal of the memory control unit 201 is connected to the output terminal of the flip-flop 302 of the logic element 200.
  • the output terminal of the memory control unit 201 is connected to the logic cell 300 of the logic element 200 and the cross-connect switch 301.
  • Memory control unit 201 transmits and receives information to and from memory device 102 based on a control signal from control bus 104, and receives data bus data 1111 from data bus 111. Further, the memory control unit 201 receives the flip-flop data 3021 from the flip-flop 302.
  • FIG. 14 is a diagram for explaining the configuration of branch setting information used for branch control by the programmable logic circuit 100.
  • the branch setting information 1400 includes a code 1401 indicating a branch, a selection code (REF) 1402 for branch determination data, a branch destination address iMPB) 1403, and a branch destination address (JMPA) 1404.
  • REF selection code
  • iMPB branch destination address
  • JMPA branch destination address
  • a code 1401 indicating a branch is composed of bits 2421. If “1111”, it indicates a branch, and if it is not “1111”, it indicates a normal process other than the branch.
  • the branch determination data selection code 1402 is composed of bits 19 and 16 and is information for selecting data used for branch determination. In this example, the selection code 1402 of the data for branch determination is used as information for selecting a specific bit from the data bus data 1111 and the flip-flop data 3021.
  • the memory control unit 201 in a series of read operations from the memory device 102, refers to bits 24 to 21 of the read data and, when the data value is other than “1111”, reads the read data. Is determined to be normal setting information, the data is directly transferred to the logic element 200, and normal processing is continued.
  • bits 24 to 21 are “1111”
  • the memory control unit 201 determines that the read data is branch control information, and causes the logic element 200 to temporarily stop the operation of pseudo setting information, for example, all “0”.
  • the memory control unit 201 selects a specific one bit from the data bus data 1111 and the flip-flop data 3021 according to the REF bit, and when the selected bit is “1”, the memory control unit 201 Set the address specified by JMPB to the read address to be output. When the selected bit is “0”, the memory control unit 201 sets the read address to be output to the memory device 102 to the address specified by JMPA. Thereafter, the memory control unit 201 reads the setting information of the memory device 102 in order from the set address and transfers the setting information to the logic element 200.
  • FIG. 15 is a block diagram showing a processing circuit on which a programmable logic circuit is mounted.
  • the processing circuit 1500 operates so that the selector 1501 outputs one of the processing results of the circuit A and the circuit B to the outside according to the processing result of the circuit C.
  • each of the circuits A, B, and C is realized using one processor element.
  • the number of processor elements mounted on the processing circuit (LSI) 1500 is three.
  • FIG. 16 shows a processing cycle when branch control of the programmable logic circuit is not used.
  • FIG. 16 shows the processing latency of each circuit in the clock cycle progression from left to right.
  • the processing latency of circuit A is 5 cycles.
  • the processing latencies of Circuit B and Circuit C are 5 and 6 cycles, respectively.
  • circuits A and B only hold data in the cycle until the processing of circuit C is completed.
  • one processor element receives the results of the circuits A and B, executes the processing of the selector 1501 in FIG. 15, and outputs the processing result data of the processing circuit 1500 to the outside.
  • FIG. 17 shows a processing routine when branch control of the programmable logic circuit 100 is used.
  • the process of only the circuit C is performed until the cycle 6 in FIG. 16, and in the cycle 7, the branch determination is executed using the result data of the circuit C.
  • the branch control by executing the branch control, it is possible to reduce a part of the processing that is executed in parallel at the same time and is consequently wasted. it can.
  • this branch control for processing that requires a long time to output, other processing can be assigned to the processor element 101 that is in an idle state, so that the overall processing performance can be improved.
  • the number of processor elements is sufficient for the circuit to be mounted, and even in such a case, the overall processing performance can be particularly effectively improved.
  • Embodiment 2 of the present invention improves memory use efficiency by branch control processing.
  • FIG. 18 is a block diagram showing a processing circuit for mounting a programmable logic circuit.
  • a processing circuit 1800 is a circuit that performs processing in the order of circuit A, circuit B, circuit C, circuit A, and circuit D.
  • the first circuit A and the third circuit A perform the same processing on the input.
  • FIG. 19 is a diagram for explaining a storage state of setting information inside memory device 102 when branch control of programmable logic circuit 100 is not used.
  • circuit A uses a 40-word memory area
  • circuits B, C, and D each use a 20-word memory area.
  • the processing circuit 1800 in FIG. 18 is executed in order up to the address 10 of the memory device 102 up to 150, and uses an area of 140 words in total.
  • FIG. 20 is a diagram for explaining a storage state of setting information inside memory device 102 when branch control of programmable logic circuit 100 is used.
  • Figure 20 Then, after the processing of the circuit A, the branch control information jumping to the head address of the circuit B or the circuit D is inserted. Also, after the processing of the circuit C, branch control information that jumps to the top address of the circuit A or the circuit D is inserted.
  • the processing order is as follows. First, the address 10 is read, and after the processing of the circuit A is completed, the processing jumps to the address 51 by branching to perform the processing of the circuit B. Thereafter, the processing of the circuit C is performed. After the processing is completed, the processing jumps to the address 10 by branching and the circuit A is processed again.
  • the processing jumps to the address 92 by branching, and the processing of the circuit D is performed. As a result, the area for one circuit A is reduced.
  • a branching method there is a method in which a flag bit is generated when the processing of the circuit C is completed, and the flag bit is used.
  • the memory area of the circuit used a plurality of times can be reduced, so that the functional mounting efficiency of the entire circuit is reduced. Increase.
  • the same process may be repeatedly executed, for example, in the process of monitoring external input data or in the process of counting up to a specific value.
  • a circuit that performs specific processing after counting up to 100 inserts branch control information after the circuit that performs +1 processing, and sets the counter value and fixed value as branch determination conditions. By using 100 comparison results, the area can be greatly reduced.
  • branching addresses it is not necessary to limit the number of branching addresses to two, and the number of bits to be referred to may be increased, and many branching destination addresses may be set.
  • the configuration of the programmable logic circuit according to the third embodiment of the present invention is the same as that of the programmable logic circuit 100 according to the first embodiment of the present invention.
  • the programmable logic circuit according to the third embodiment of the present invention improves mounting efficiency by stopping control.
  • FIG. 21 is a diagram for explaining stop setting information used for stop control by the programmable logic circuit 100 according to Embodiment 3 of the present invention.
  • the stop setting information 2100 includes a code 2101 indicating a branch, a code (REF) 2102 indicating a stop, and a stop cycle number 2103.
  • the code 2101 indicating a branch is composed of bits 24 to 21. When “1111” is set, it indicates a branch, and when it is not "1111", it indicates normal processing other than the branch.
  • the stop code 2102 is composed of bits 19 to 16 and is information indicating whether or not the stop is performed.
  • the number of stop cycles 2103 is information on the number of stop cycles (stop period) when the code 2102 indicating stop indicates stop.
  • the memory control unit 201 in the operation of reading information from the memory device 102, refers to bits 24 to 21 of the read information, and when the data value is other than “1111”, reads the data. It determines that the received information is normal setting information, transfers the information as it is to the logic element 200, and continues normal processing. When bits 24-21 of the read information are “1111” and the REF bit is other than “1111”, the memory control unit 201 determines that the read information is a branch code, and The operation of is performed.
  • the memory control unit 201 determines that the read information is a stop code, Latch bits 0-7 internally and start counting up the internal counter. The count-up continues until the counter value reaches the value of the latch data, and at the same time, pseudo setting information for stopping the operation to the logic element 200, for example, data of all zeros, is continuously transferred. During this time, the memory control unit 201 does not read information from the memory device 102. Thereafter, when the counter value reaches the value of the latch data, the memory control unit 201 starts reading information from the memory device 102 again and resumes the normal operation.
  • 100 is capable of operating a plurality of processor elements 101 independently or in a joint manner, capable of simultaneously performing a plurality of types of logical processing in parallel, and of jointly performing one logical processing. It is also possible to do.
  • the programmable logic circuit 100 since the same elements are one-dimensionally arranged in one row, the programmable logic circuit 100 flexibly responds to the mounting scale. Possible and highly extensible. Further, the programmable logic circuit 100 according to the first, second, and third embodiments of the present invention can significantly reduce setting information by limiting data transmission and reception between adjacent processor elements 101. Thus, the circuit area can be reduced, and the cost and power consumption of the LSI to be mounted can be reduced.
  • the programmable logic circuit 100 according to the first, second, and third embodiments of the present invention is different from the flip-flop of an arbitrary processor element 101 irrespective of the number of mounting elements from the flip-flop of another adjacent processor element 101. Since the wiring distance to the loop is minimal and constant, the operating frequency can be raised to its limit, and high-speed operation is possible compared to conventional programmable logic.
  • the programmable logic circuit 100 performs processing while changing the repetitive function on the same circuit, so that the circuit area can be reduced, and LSI cost and power consumption can be reduced.
  • the internal clock signal 109 does not necessarily have to be a multiple of the user's one clock signal 110.
  • the input / output control unit 103 is provided with an appropriate clock transfer circuit. By using this, a clock signal that is not synchronized with the user clock signal 110 may be used as the internal clock signal.
  • the memory device 102 may be configured to exist outside the programmable logic circuit 101, which need not be inside the programmable logic circuit 100.
  • the clock generation circuit 107 may be provided inside the programmable logic circuit 100.
  • a selection circuit such as a multiplexer is inserted between the memory device 102 and the processor element 101, and the memory device 102 and each processor element 101 May be changeable.
  • the amount of delay in data processing increases. Therefore, in order to maintain the frequency, it is necessary to increase the speed using a pipeline or the like.
  • the connection between the block and the input bus 105, the output bus 106, and the adjacent logic element 200 is not limited to the one shown in FIG. 3, for example, by providing a flip-flop between the logic cell 300 and the cross-connect switch 301, The operating frequency may be further increased.
  • data from input bus 105 may be input to logic cell 300 or flip-flop 302 instead of cross-connect switch 301.
  • each of the plurality of processor elements 101 may not be connected to another processor element 101.
  • FIG. 22 is a block diagram showing a configuration of a programmable logic circuit according to Embodiment 4 of the present invention.
  • the same components as those in the first embodiment of the present invention are denoted by the same reference numerals, and their description is omitted.
  • the programmable logic circuit 2200 includes a plurality of processor elements 101, a plurality of memory devices 102, an input / output control unit 103, a control bus 104, and an input bus 105. And an output bus 106.
  • the clock generation circuit 107 and the user circuit 108 are connected to the programmable logic circuit 2200.
  • the plurality of processor elements 101 and the plurality of memory devices 102 are connected on a one-to-one basis.
  • the processor element 101 and the memory device 102 connected one-to-one form a unit logic circuit.
  • the plurality of unit logic circuits are connected in parallel.
  • Each of the plurality of processor elements 101 is one-dimensionally arranged in one row, and is connected to two other processor elements 101 that are physically adjacent to each other by a connection line 101a. That is, the plurality of unit logic circuits are arranged one-dimensionally in one row, and are physically arranged with respect to one of the unit logic circuits and one of the unit logic circuits in the plurality of unit logic circuits.
  • the other unit logic circuits adjacent to each other are connected by a connection line 101a.
  • the processor element 101 exchanges data with two adjacent processor elements 101 using a connection line.
  • the input / output control unit 103 is an interface circuit with the outside, and is connected to the user circuit 108.
  • the input / output control unit 103 receives an input signal 1081 and an index instruction signal 1082 from the user circuit 108.
  • the control bus 104 is connected to the input / output control unit 103 and the processor element 101.
  • the control bus 104 receives control signals for initialization, activation, and the like from the input / output control unit 103 and transfers them to each processor element 101.
  • the input bus 105 is connected to the input / output control unit 103 and the processor element 101.
  • the input bus 105 receives data used for a logical operation from the input / output control unit 103 and transfers the data to each processor element 101.
  • the output bus 106 is connected to the input / output control unit 103 and the processor element 101.
  • the output bus 106 receives the operation result data from the processor element 101 and transfers the data to the input / output control unit 103.
  • the clock generation circuit 107 generates an internal clock signal 109 and a user clock signal 110.
  • the user clock signal 110 is used in the user circuit 108 and the input / output control unit 103.
  • the internal clock signal 109 has a frequency which is twice the frequency of the user clock signal 110 and is used inside the programmable logic circuit 2200.
  • the index bus 2201 is connected to the input / output control unit 103 and the processor element 101.
  • the contents of the logical operation performed by the programmable logic circuit 2200 are stored in the memory device 102 as setting information.
  • Each processor element 101 has a memory
  • the setting information of the device 102 is sequentially read, and a corresponding logical operation process is performed.
  • Programmable logic circuit 2200 receives a start signal and data used for a logical operation from user circuit 108 in synchronization with user clock signal 110. After a certain period of time, the programmable logic circuit 2200 supplies the data after the logical operation processing to the user circuit 108 in synchronization with the user one clock signal 110.
  • each memory device 102 stores setting information of an adjacent processor element 101.
  • the memory device 102 provides the processor element 101 with setting information specified by the address.
  • the processor element 101 determines the processing content to be executed based on the setting information.
  • the processor element 101 When an initialization signal is input from the control bus 104, the processor element 101 reads a specific address of the memory device 102, extracts a storage location address of setting information from input read data, and holds the address. I do.
  • This storage position address is an address indicating the head position of the setting information.
  • the processor element 101 When the activation signal is input from the control bus 104, the processor element 101 sequentially reads the setting information from the stored storage location address of the memory device 102. Further, the processor element 101 receives the data for logical processing from the input bus 105 and the adjacent processor element 101, performs logical processing of the data based on the setting information, and then arranges the data in a 1J, duplicates and inverts the data. And retain the data after processing. Further, the processor element 101 outputs the held processed data to the output bus 106 and the adjacent processor element 101.
  • the input / output control unit 103 receives a start signal and data for logic processing synchronized with the user clock signal 110 from the user circuit 108, and supplies the data to the input bus 105 in synchronization with the internal clock signal 109. Also, the input / output control unit 103 receives an initialization signal synchronized with the user clock signal 110 from the user circuit 108, and transmits this data to the internal clock. Output to the input bus 105 in synchronization with the signal 109.
  • the input / output control unit 103 receives data after logic processing synchronized with the internal clock signal 109 from the output bus 106, and outputs this data to the user circuit 108 in synchronization with the user clock signal 110. In this way, the input / output control unit 103 exchanges control signals, data for logic processing, and data of processing results with the user circuit 108.
  • FIG. 23 shows a configuration of the processor element 101.
  • the processor element 101 includes a logic element 200 and a memory control unit 201.
  • the processor element 101 is connected to a memory device 102, a control bus 104, an input bus 105, and an output bus 106.
  • the memory control unit 201 is connected to the memory device 102, the logic element 200, and the control bus 104.
  • the logic element 200 is connected to the logic element 200 and the memory control unit 201, the input bus 105, and the output bus 106 of the adjacent processor selection 101.
  • the memory control unit 201 when receiving an initialization signal from the control bus 104, the memory control unit 201 performs the above-described process of extracting and holding the storage location address.
  • the memory control unit 201 sequentially reads out setting information from the stored storage position address of the memory device 102, temporarily stores the setting information, and transfers it to the logic element 200.
  • the logic element 200 receives data from the input bus 105 and the adjacent processor element 101, performs logical processing on the data based on the setting information transferred from the memory control unit 201, and then aligns and copies the data. And perform inversion processing, and hold the processed data.
  • the logic element 200 outputs the processed data to the output bus 106 and the adjacent processor element 101 based on the setting information transferred from the memory control unit 201.
  • FIG. 24 shows a configuration of logic element 200.
  • Figure 25 shows the setup information and menu. The configuration of the memory device 102 is shown.
  • the logic element 200 includes a logic cell (logic operation circuit) 300, a cross-connect switch (data processing device) 301, and a flip-flop 302.
  • the logic element 200 is connected to the memory control unit 201, the input bus 105, and the output bus 106.
  • the logic cell 300 is connected to the memory control unit 201, the flip-flop 302, and the cross-connect switch 301.
  • the cross-connect switch 301 is connected to the memory control unit 201, the logic gate 300, the flip-flop 302, the input bus 105, and the logic cell 300 inside the adjacent logic element 200.
  • the flip-flop 302 is connected to the logic cell 300, the cross-connect switch 301, and the output bus 106.
  • the logic cell 300 constitutes a logic operation circuit.
  • the cross-connect switch 301 constitutes a data processing device. Further, the cross-connect switch 301 and the flip-flop 302 constitute a data processing device.
  • FIG. 25 shows the configuration of the memory device.
  • the storage address information of the setting information is stored at the head inside the memory device 102.
  • Setting information is stored in a specific area inside the memory device 102 other than the head part.
  • bits 25 to 28 are setting information of the logic cell 300, and bits 0 to 24 are connection information of the cross-connect switch 301. Bits 0 to 24 are composed of 4-bit connection information and 1-bit inversion control information corresponding to the five outputs of the cross-connect switch 301 in 5-bit units.
  • the logic cell 300 performs a specific logic process specified by the setting information transferred from the memory control unit 201 on the data input from the flip-flop 302, and the cross-connect switch 301 , And outputs the processed data to the logic element 200 of the adjacent processor element 101.
  • the cross-connect switch 301 is provided for the specific data specified by the setting information transferred from the memory control unit 201 with respect to the data to which the logic sensor 300, the input bus 105, and the logic element 200 of the adjacent processor element 101 are also input. 1J, perform duplication and inversion, and output the processed data to flip-flop 302.
  • the flip-flop 302 receives data input from the cross-connect switch 301, It is held at the timing of the unit clock signal 109.
  • the flip-flop 302 outputs the held data to the logic cell 300 and the output bus 106.
  • the functions and operations of the logic cell 300 and the cross-connect switch 301 according to the fourth embodiment of the present invention are the same as those according to the first embodiment of the present invention.
  • the functions and operations of the programmable logic circuit 2200 according to Embodiment 4 of the present invention are the same as those of the functions and operations of processing the index instruction signal This is the same as that according to Embodiment 1 of the invention.
  • the user operates the user circuit 108 to generate an index instruction signal for preferentially specifying a desired one of the first and second setting information. 108 can be generated.
  • the user circuit 108 supplies the index instruction signal 1082 to the input / output control unit 103.
  • the input / output control section 103 when receiving the index instruction signal 1082, the input / output control section 103 generates index information corresponding to the index instruction signal 1082, and processes the processor element via the index bus 2201. 101 to the memory control unit 201.
  • the memory control unit 201 When receiving the index information, the memory control unit 201 reads a specific address of the memory device 102 based on the index information, and extracts and stores a start position address indicating a start position of a storage position address of the setting information. .
  • the logic element 200 When receiving the data and the control signal from the input / output control unit 103, the logic element 200 stores the setting information stored in the memory control unit 201 based on the start position address indicating the start position of the storage position address of the setting information. As described above, part or all of the functions of the logic cell 300 and the cross-connect switch 301 are sequentially changed based on any of the setting information sequentially read from the memory device 102 to operate the predetermined sequential circuit. I do.
  • the programmable logic circuit 2200 is an aggregate of the processor elements 101 that perform a single operation, and each processor element 101 mainly performs a joint operation with the adjacent processor element 101. It is also possible for a plurality of adjacent processor elements 101 to perform one logical process as one group. As described above, in the programmable logic circuit 2200 according to the fourth embodiment of the present invention, the plurality of processor elements 101 can operate independently or jointly, and a plurality of types of logic processing can be performed. Can be performed simultaneously in parallel, and one logical process can be performed jointly and severally.
  • the programmable logic circuit 2200 according to the fourth embodiment of the present invention since the same elements are arranged one-dimensionally in one row, it is possible to flexibly cope with the mounting scale. High expandability. Further, the programmable logic circuit 2200 according to the fourth embodiment of the present invention can significantly reduce setting information by limiting data transmission and reception between the adjacent processor elements 101, thereby reducing the circuit area. And the cost and power consumption of the LSI to be mounted can be reduced.
  • the programmable logic circuit 2200 has a wiring distance to a flip-flop force of an arbitrary processor element 101 irrespective of the number of mounted elements and a flip-flop of another adjacent processor element 101. Since the operating frequency is minimized and constant, the operating frequency can be raised to its limit, and high-speed operation becomes possible compared to conventional programmable logic.
  • the programmable logic circuit 2200 performs processing while changing repetitive functions on the same circuit, so that the circuit area can be reduced and the size of the LSI to be mounted can be reduced. Cost and power consumption can be reduced.
  • the internal clock signal 109 does not necessarily need to be a multiple of the user's one clock signal 110.
  • the input / output control unit 103 is provided with an appropriate clock transfer circuit. By using this, a clock signal that is not synchronized with the user clock signal 110 may be used as the internal clock signal.
  • memory device 102 may be configured to exist outside programmable logic circuit 2200 which need not be inside programmable logic circuit 2200.
  • clock generation circuit 107 may be provided inside programmable logic circuit 2200.
  • a selection circuit such as a multiplexer is inserted between the memory device 102 and the processor element 101, and the memory device 102 and each processor are set by setting.
  • the connection with the mouth element 101 can be changed.
  • the amount of delay in data processing increases. Therefore, in order to maintain the frequency, it is necessary to increase the speed using a pipeline or the like.
  • the connection between the output bus 105, the output bus 106 and the adjacent logic element 200 is not limited to that shown in FIG. 3.
  • a flip-flop is provided between the logic sensor 300 and the cross-connect switch 301, and the operating frequency is further increased. May be increased.
  • data from input bus 105 may be input to logic cell 300 or flip-flop 302 instead of cross-connect switch 301.
  • each of the plurality of processor elements 101 may not be connected to another processor element 101.
  • a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, Output signal control means for externally supplying an output signal of the unit logic circuit, wherein each of the plurality of unit logic circuits is capable of changing its function based on first setting information, A logical operation means for generating data by performing predetermined logical operation processing on the basis of the second setting information, and generating and executing data by performing systematic IJ, duplication and inversion processing of the data from the logical operation means based on the second setting information.
  • a data processing means for providing the output signal to the output signal control means, a storage means for storing the first and second setting information, and receiving the setting information for branching based on the setting information for branching.
  • the first item of the storage means And memory control means for reading and providing one of the second setting information to the logical operation means and the data processing means to control the logic operation means and the data processing means, wherein each of the plurality of unit logic circuits is A part of or all functions of the logical operation means and the data processing means are sequentially changed on the basis of the first and second setting information sequentially read from the means to perform an operation of a predetermined sequential circuit.
  • each of the plurality of unit logic circuits sequentially reads from the storage unit Based on the first and second setting information, a part of or all of the functions of the logical operation circuit and the data processing means are sequentially changed to operate the predetermined sequential circuit.
  • each of the plurality of unit logic circuits receives the setting information for branching and reads one of the first and second setting information of the storage means based on the setting information for branching. Therefore, a more general-purpose programmable logic circuit can be provided.
  • a second aspect of the present invention is directed to a second aspect, wherein a plurality of unit logic circuits connected in parallel, an input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, Output signal control means for externally supplying an output signal of the unit logic circuit, wherein each of the plurality of unit logic circuits is capable of changing its function based on first setting information, A logical operation means for generating data by performing predetermined logical operation processing on the basis of the second setting information, and generating and executing data by performing systematic IJ, duplication and inversion processing of the data from the logical operation means based on the second setting information.
  • Data processing means for giving the output signal to the output signal control means, a storage means for storing the first and second setting information, and receiving the stop setting information, based on the stop setting information.
  • the logic operation means and A memory control means for controlling a stop of the data processing means, wherein each of the plurality of unit logic circuits is configured to execute the logic based on the first and second setting information sequentially read from the storage means.
  • a configuration is adopted in which some or all of the functions of the arithmetic means and the data processing means are sequentially changed to operate a predetermined sequential circuit.
  • each of the plurality of unit logic circuits sequentially or partially reads out all or some of the functions of the logic operation circuit and the data processing means based on the first and second setting information read from the storage means. Since the operation of the predetermined sequential circuit is performed by changing sequentially, it is possible to provide a low-cost programmable logic circuit having high area efficiency and capable of realizing a large-scale logic circuit at high speed. Further, according to this configuration, a more versatile programmable logic circuit is provided because the stopping of the logical operation means and the data processing means is controlled based on the stopping setting information in response to the stopping setting information. be able to.
  • the logical operation means is capable of changing a function based on the first setting information and has a predetermined function in the input signal. And a logic cell that generates the data by performing the logical operation processing.
  • the data processing means is arranged, duplicated, and inverted of the data from the logical operation means based on the second setting information.
  • a configuration including a cross-connect switch for performing the processing and generating the data is employed.
  • a fifth aspect of the present invention is the flip-flop according to the fourth aspect of the present invention, wherein the data processing means holds the data from the cross-connect switch and supplies the data to the output signal control means as the output signal.
  • a configuration having a pump is adopted.
  • a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from outside to the plurality of unit logic circuits, A connection unit for connecting one unit logic circuit in the unit logic circuit and another unit logic circuit adjacent to the one unit logic circuit in a physical arrangement, and Output signal control means for supplying an output signal to an external device, wherein each of the plurality of unit logic circuits is capable of changing its function based on first setting information, and the input signal and the adjacent A logical operation means for performing predetermined logical operation processing on any of the data from the other unit logic circuits to generate data; and aligning and duplicating the data from the logical operation means based on second setting information.
  • Perform inversion processing A data processing means for generating data and providing the output signal as the output signal to the output signal control means; a storage means for storing the first and second setting information; A memory control unit that reads one of the first and second setting information of the storage unit based on the setting information and controls the logical operation unit and the data processing unit to control the logical operation unit and the data processing unit; Each of the unit logic circuits is configured to read the logic based on the first and second setting information sequentially read from the storage means.
  • a configuration is adopted in which part or all of the functions of the arithmetic means and the data processing means are sequentially changed to operate a predetermined sequential circuit.
  • each of the plurality of unit logic circuits sequentially or partially reads out all or some of the functions of the logic operation circuit and the data processing means based on the first and second setting information read from the storage means. Since the operation of the predetermined sequential circuit is performed by changing sequentially, it is possible to provide a low-cost programmable logic circuit having high area efficiency and capable of realizing a large-scale logic circuit at high speed.
  • a predetermined logical operation process is performed on an input signal and data from another adjacent unit logic circuit or a shift to generate data
  • each of the plurality of unit logic circuits is In order to receive the setting information for branching and read out one of the first and second setting information in the storage means based on the setting information for branching and to supply the readout information to the logical operation means and the data processing means for control, more general purpose It is possible to provide a programmable logic circuit having a possibility.
  • a seventh aspect of the present invention is directed to a seventh aspect of the present invention, wherein a plurality of unit logic circuits connected in parallel, an input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits, A connection unit for connecting one unit logic circuit in the unit logic circuit and another unit logic circuit adjacent to the one unit logic circuit in a physical arrangement, and Output signal control means for supplying an output signal to an external device, wherein each of the plurality of unit logic circuits is capable of changing its function based on first setting information, and the input signal and the adjacent A logical operation means for performing predetermined logical operation processing on any of the data from the other unit logic circuits to generate data; and aligning and duplicating the data from the logical operation means based on second setting information.
  • a data processing means for generating data to output the data to the output signal control means as the output signal; a storage means for storing the first and second setting information; A memory control unit that controls stop of the logical operation unit and the data processing unit based on the setting information, wherein each of the plurality of unit logic circuits sequentially reads out the first one from the storage unit.
  • a configuration is adopted in which a part of or all of the functions of the logical operation means and the data processing means are sequentially changed based on the second setting information to operate a predetermined sequential circuit. According to this configuration, a part or all of the functions of the logic operation circuit and the data processing means are performed based on the first and second setting information that each of the plurality of unit logic circuits sequentially reads from the storage means.
  • the operation of the predetermined sequential circuit is performed by changing sequentially, it is possible to provide a low-cost programmable logic circuit having high area efficiency and capable of realizing a large-scale logic circuit at high speed. Further, according to this configuration, a predetermined logical operation is performed on the input signal and the data from the adjacent other unit logic circuit to generate data, and the stop setting information is received to generate the data. Since the stopping of the logical operation means and the data processing means is controlled based on the setting information for stopping, it is possible to provide a more versatile programmable logic circuit.
  • the logical operation means is capable of changing a function based on the first setting information and is capable of changing the input signal or the adjacent signal. And a logic cell that performs predetermined logical operation processing on the data from the other unit logic circuit to generate the data.
  • the data processing means arranges, copies, and inverts the data from the logical operation means based on the second setting information.
  • a configuration including a cross-connect switch for performing the processing and generating the data is employed.
  • a tenth aspect of the present invention is the flip-flop according to the ninth aspect of the present invention, wherein the data processing means holds the data from the cross-connect switch and supplies the data to the output signal control means as the output signal.
  • a configuration having a pump is adopted.
  • An eleventh aspect of the present invention is directed to an eleventh aspect of the present invention, wherein a plurality of unit logic circuits connected in parallel, input signal control means for supplying an input signal received from outside to the plurality of unit logic circuits, Output signal control means for supplying an output signal of the unit logic circuit to the outside, the input signal control means providing a control signal to the plurality of unit logic circuits based on the input signal, and an index
  • the index information is Means for providing to a plurality of unit logic circuits, wherein each of the plurality of unit logic circuits is capable of changing a function based on any of the first setting information and has a predetermined logic
  • a logical operation means for generating data by performing operation processing; and performing data alignment and duplication and inversion processing from the logical operation means based on any of the second setting information to generate data and output the data.
  • Data processing means for providing the output signal control means as a signal, storage means for storing the first and second setting information, and the control signal and the index information when any one of the control signal and the index information is received.
  • Memory control means for storing a start position address indicating a start position of a storage position address of the first and second setting information in the storage means based on any of the index information; Wherein each of the plurality of unit logic circuits sequentially reads out from the first and second setting information from the storage unit based on the head position address stored in the memory control unit.
  • a configuration is adopted in which part or all of the functions of the logical operation means and the data processing means are sequentially changed based on the operation of a predetermined sequential circuit.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage means based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • the logical operation means is capable of changing a function based on the first setting information and outputs a predetermined value to the input signal.
  • a configuration including a logic cell for performing the logical operation processing to generate the data is employed.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage means based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • the data processing means is configured to perform the data alignment from the logical operation means based on the second setting information.
  • a cross-connect switch for generating the data by performing the inversion process.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage unit based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • a fourteenth aspect of the present invention is the flip-flop according to the thirteenth aspect of the present invention, wherein the data processing means holds the data from the cross-connect switch and supplies the data to the output signal control means as the output signal.
  • a configuration having a pump is adopted.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage means based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • a fifteenth aspect of the present invention is directed to a plurality of unit logic circuits connected in parallel, one unit logic circuit among the plurality of unit logic circuits, and one unit logic circuit.
  • Connecting means for connecting the other unit logic circuits adjacent to each other on a physical arrangement; input signal control means for supplying an input signal received from the outside to the plurality of unit logic circuits; and outputs of the plurality of unit logic circuits
  • Output signal control means for supplying a signal to the outside, wherein the input signal control means provides a control signal to the plurality of unit logic circuits based on the input signal, and receives an index instruction signal.
  • Data processing means for performing data alignment, duplication, and inversion processing to generate data and providing the data as the output signal to the output signal control means;
  • Storage means for storing first and second setting information, and the first and second setting information in the storage means based on any of the control signal and the index information when receiving any of the control signal and the index information
  • Memory control means for storing a head position address indicating a head position of a storage position address of the second setting information, wherein each of the plurality of unit logic circuits is stored in the memory control means.
  • a part or all of the functions of the logical operation means and the data processing means are sequentially changed based on one of the first and second setting information sequentially read out from the storage means based on a position address. In this case, a predetermined sequential circuit operation is performed.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage unit based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • the logical operation means is capable of changing a function based on the first setting information, and is capable of changing the input signal or an adjacent signal.
  • a configuration including a logic cell for performing the predetermined logical operation processing on the data from the other unit logic circuit to generate the data is adopted.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information sequentially read from the storage unit based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all functions of the processing means are sequentially changed to operate a predetermined sequential circuit. Can be provided.
  • the data processing means performs alignment and duplication of the data from the logical operation means based on the second setting information.
  • a configuration including a cross-connect switch for performing the inversion processing and generating the data is employed.
  • each of the plurality of unit logic circuits performs an operation based on the first and second setting information sequentially read from the storage unit based on the control signal and the index instruction signal. Since a predetermined sequential circuit operates by sequentially changing some or all of the functions of the logical operation circuit and the data processing means, it has a high area efficiency and can realize a large-scale logic circuit at high speed. An inexpensive programmable logic circuit can be provided.
  • An eighteenth aspect of the present invention is the flip-flop according to the seventeenth aspect of the present invention, wherein the data processing means holds the data from the cross-connect switch and supplies the data to the output signal control means as the output signal.
  • a configuration having a pump is adopted.
  • each of the plurality of unit logic circuits sequentially reads the logical operation circuit and the data based on the first and second setting information read from the storage means based on the control signal and the index instruction signal.
  • a low-cost programmable logic circuit with high area efficiency and high-speed realization of a large-scale logic circuit because a part of or all of the processing means are sequentially changed to perform a predetermined sequential circuit operation. Can be provided.
  • the present invention can be applied to a control device for controlling an electronic device, and the like.

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)
  • Logic Circuits (AREA)

Abstract

 プログラマブル論理回路100のプロセッサエレメント101は、第1の設定情報に基づいて機能の変更が可能であって入力信号に所定の論理演算処理を行ってデータを生成するロジックセル300と、第2の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生成するクロスコネクトスイッチ301と、分岐用設定情報に基づいてメモリ装置102の前記第1及び第2の設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御部201と、を有している。複数の単位論理回路の各々は、メモリ装置102から順次に読み出す前記第1及び第2の設定情報に基づいてロジックセル300とクロスコネクトスイッチ301の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う。

Description

明 細 書
プログラマブル論理回路
技術分野
[0001] 本発明は、プログラムすることにより所定の論理演算の機能を実現できるプログラマ ブル論理回路に関するものであり、特に、動的に内部構成を変化させながら処理を 行うダイナミックプログラマブル論理回路に関するものである。
背景技術
[0002] 従来のプログラマブル論理回路として、特許文献 1に記載のものがある。この従来 のプログラマブル論理回路は、動的相互接続アレーとラッチ回路とダイナミックロジッ クコアを用いて、具現化すべき回路を段階的に実行する動的再構成可能なフィール ドプログラマブルロジックデバイスである。前記従来のプログラマブル論理回路にお いては、大規模な論理回路を実現する場合に、複数の前記プログラマブル論理回路 を直列に接続して、各レベルの論理処理を順番に実行するようにしている。
[0003] この場合に、前記従来のプログラマブル論理回路においては、回路レベルを示す 回路レベルカウンタと内部レベルを示す内部カウンタを用いて、第 1のチップの内部 レベルが規定のレベルまで達すると、次のチップを動作させるように制御している。す なわち、前記従来のプログラマブル論理回路においては、チップ単位に回路レベル を分割して具現化している。
特許文献 1 :特表平 8 - 510885号公報
発明の開示
発明が解決しょうとする課題
[0004] し力 ながら、従来のプログラマブル論理回路におレ、ては、より大規模な論理回路 を実現しょうとすると、処理並列度を 1チップに収まる程度に抑える必要があるため、 処理時間が増加するという問題がある。また、従来のプログラマブル論理回路におい ては、処理時間を短縮するため、単一のチップに含まれるダイナミックロジックモジュ ールの個数を増加させることで処理並列度を高めると、これに比例して動的相互接 続アレーの接続点が増加し必要となる設定情報が増大するため、実装回路面積が 増大してしまうという問題がある。
[0005] 本発明は、力かる点に鑑みてなされたものであり、高い面積効率を有し、大規模な 論理回路を高速に実現可能である低価格のプログラマブル論理回路を提供すること を目的とする。
課題を解決するための手段
[0006] 本発明の第 1のものは、並列に接続されている複数の単位論理回路と、外部から受 け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記 複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し 、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の変更が可 能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演 算手段と、第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と 複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御 手段に与えるデータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段 と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記 第 1及び第 2の設定情報のいずれかを読み出して前記論理演算手段と前記データ 処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回 路の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基 づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変 更して所定の順序回路の動作を行う構成を採る。
[0007] 本発明の第 2のものは、並列に接続されている複数の単位論理回路と、外部から受 け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記 複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し
、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の変更が可 能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理演 算手段と、第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と 複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制御 手段に与えるデータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段 と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段と 前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単 位論理回路の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設定 情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を 順次に変更して所定の順序回路の動作を行う構成を採る。
[0008] 本発明の第 3のものは、並列に接続されている複数の単位論理回路と、外部から受 け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記 複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回 路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段 と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、 を具備し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の 変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータ のレ、ずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2 の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処 理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデ ータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、分岐用設定 情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第 1及び第 2の 設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与 えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前 記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基づいて前記論理 演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順 序回路の動作を行う構成を採る。
[0009] 本発明の第 4のものは、並列に接続されている複数の単位論理回路と、外部から受 け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記 複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回 路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段 と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、 を具備し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の 変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータ のいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2 の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処 理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデ ータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、停止用設定 情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処 理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路 の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基づ いて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更 して所定の順序回路の動作を行う構成を採る。
[0010] 本発明の第 5のものは、並列に接続されている複数の単位論理回路と、外部から受 け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前記 複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備し
、前記入力信号制御手段は、前記入力信号に基づいて制御信号を前記複数の単位 論理回路に与える手段と、インデクス指示信号を受けた時にインデクス情報を前記複 数の単位論理回路に与える手段と、を有し、前記複数の単位論理回路の各々が、第 1の設定情報のいずれかに基づいて機能の変更が可能であって前記入力信号に所 定の論理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情報のい ずれかに基づいて前記論理演算手段からの前記データの整列と複製と反転処理を 行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ 処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、前記制御信号及 び前記インデクス情報のレ、ずれかを受けた時に当該制御信号及び当該インデクス情 報のいずれかに基づいて前記記憶手段における前記第 1及び第 2の設定情報の格 納位置アドレスの先頭位置を示す先頭位置アドレスを記憶するメモリ制御手段と、を 具備し、前記複数の単位論理回路の各々が、前記メモリ制御手段に記憶されている 前記先頭位置アドレスに基づいて前記記憶手段から順次に読み出す前記第 1及び 第 2の設定情報のいずれかに基づいて前記論理演算手段と前記データ処理手段の 一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
[0011] 本発明の第 6のものは、並列に接続されている複数の単位論理回路と、前記複数 の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路に 対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と、 外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御 手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段 と、を具備し、前記入力信号制御手段は、前記入力信号に基づいて制御信号を前記 複数の単位論理回路に与える手段と、インデクス指示信号を受けた時にインデクス 情報を前記複数の単位論理回路に与える手段と、を有し、前記複数の単位論理回 路の各々力 S、第 1の設定情報のいずれかに基づいて機能の変更が可能であって前 記入力信号又は隣接の前記他の単位論理回路からのデータに所定の論理演算処 理を行ってデータを生成する論理演算手段と、第 2の設定情報のいずれかに基づい て前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生 成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記 第 1及び第 2の設定情報を記憶する記憶手段と、前記制御信号及び前記インデクス 情報のいずれ力を受けた時に当該制御信号及び当該インデクス情報のいずれかに 基づいて前記記憶手段における前記第 1及び第 2の設定情報の格納位置アドレスの 先頭位置を示す先頭位置アドレスを記憶するメモリ制御手段と、を具備し、前記複数 の単位論理回路の各々 1 前記メモリ制御手段に記憶されている前記先頭位置アド レスに基づいて前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報の いずれかに基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機 能を順次に変更して所定の順序回路の動作を行う構成を採る。
発明の効果
[0012] 本発明によれば、高い面積効率を有し、大規模な論理回路を高速に実現可能であ る低価格のプログラマブル論理回路を提供することができる。
図面の簡単な説明
[0013] [図 1]本発明の実施の形態 1に係るプログラマブル論理回路の構成を示すブロック図 [図 2]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの 構成を示すブロック図
[図 3]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの ロジックエレメントの構成を示すブロック図
園 4]本発明の実施の形態 1に係るプログラマブル論理回路の設定情報とメモリ装置 の構成を説明するための図
園 5]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの ロジックエレメントにおけるロジックセルの機能を説明するためのブロック図 園 6]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの ロジックエレメントにおけるロジックセルの動作を説明するための図
園 7]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの クロスコネクトスィッチの構成を示すブロック図
園 8]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメントの クロスコネクトスィッチの動作を説明するための図
園 9]本発明の実施の形態 1に係るプログラマブル論理回路の初期化時の動作を説 明するためのタイミング図
園 10]本発明の実施の形態 1に係るプログラマブル論理回路の起動時及びデータ処 理時の動作を説明するためのタイミング図
園 11]本発明の実施の形態 1に係るプログラマブル論理回路のプロセッサエレメント のロジックエレメントにおけるロジックセルの動作を説明するための図
園 12]本発明の実施の形態 1に係るプログラマブル論理回路で 4ビットの比較回路を マッピングした場合のプロセッサエレメントの動作を時間軸方向に展開した図 園 13]本発明の実施の形態 1に係るプログラマブル論理回路で 4ビットの比較回路を マッピングした場合のプロセッサエレメントで形成する 4ビットの比較回路を示す回路 図
園 14]本発明の実施の形態 1に係るプログラマブル論理回路に用いる分岐用設定情 報を説明するための図
園 15]プログラマブル論理回路を実装した—処理回路を示すブロック図
園 16]本発明の実施の形態 1に係るプログラマブル論理回路の分岐制御を用いない 場合の処理サイクルを説明するための図
園 17]本発明の実施の形態 1に係るプログラマブル論理回路の分岐制御を用いた場 合の処理サイクルを説明するための図
[図 18]プログラマブル論理回路を実装する処理回路を示すブロック図
[図 19]本発明の実施の形態 2に係るプログラマブル論理回路の分岐制御を用いない 場合におけるメモリ装置の内部の設定情報の格納状態を説明するための図
[図 20]本発明の実施の形態 2に係るプログラマブル論理回路の分岐制御を用いた場 合におけるメモリ装置の内部の設定情報の格納状態を説明するための図
[図 21]本発明の実施の形態 3に係るプログラマブル論理回路による停止制御に用い られる停止用設定情報を説明するための図
[図 22]本発明の実施の形態 4に係るプログラマブル論理回路の構成を示すブロック 図
[図 23]本発明の実施の形態 4に係るプログラマブル論理回路のプロセッサエレメント の構成を示すブロック図
[図 24]本発明の実施の形態 4に係るプログラマブル論理回路のプロセッサエレメント のロジックエレメントの構成を示すブロック図
[図 25]本発明の実施の形態 4に係るプログラマブル論理回路のメモリ装置の構成を 示す図
発明を実施するための最良の形態
[0014] 以下、本発明の実施の形態について、図面を参照して詳細に説明する。
[0015] (実施の形態 1)
図 1は、本発明の実施の形態 1に係るプログラマブル論理回路の構成を示すブロッ ク図である。
[0016] 図 1に示すように、本発明の実施の形態 1に係るプログラマブル論理回路 100は、 複数のプロセッサエレメント 101、複数のメモリ装置 102、入出力制御部 103、制御バ ス 104、入力バス 105及び出力バス 106を具備している。プログラマブル論理回路 1 00には、クロック生成回路 107及びユーザー回路 108が接続されている。
[0017] 複数のプロセッサエレメント 101と複数のメモリ装置 102とは、 1対 1で接続されてい る。 1対 1で接続されているプロセッサエレメント 101とメモリ装置 102とは、単位論理 回路を構成している。複数の単位論理回路は、並列に接続されている。 [0018] 複数のプロセッサエレメント 101の各々は、 1次元的に 1列状に配置されており、物 理配置上で隣接する 2つの他のプロセッサエレメント 101と接続線 101aで接続され ている。すなわち、複数の単位論理回路は、 1次元的に 1列状に配置されており、複 数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路 に対して物理的配置上で隣接する他の前記単位論理回路とは、接続線 101aで接 続されている。
[0019] プロセッサエレメント 101は、接続線を用いて隣接する 2つの他のプロセッサエレメ ント 101との間でデータの受け渡しを行う。
[0020] 入出力制御部 103は、外部とのインターフェース回路となっており、ユーザー回路 1 08と接続されている。制御バス 104は、入出力制御部 103及びプロセッサエレメント 101と接続されている。制御バス 104は、初期化及び起動等の制御信号を入出力制 御部 103から受け取り、各プロセッサエレメント 101に転送する。入力バス 105は、入 出力制御部 103及びプロセッサエレメント 101と接続されている。入力バス 105は、 論理演算に用いるデータを入出力制御部 103から受け取り、各プロセッサエレメント 101に転送する。
[0021] 出力バス 106は、入出力制御部 103及びプロセッサエレメント 101と接続されてい る。出力バス 106は、演算結果のデータをプロセッサエレメント 101から受け取り、入 出力制御部 103に転送する。クロック生成回路 107は、内部クロック信号 109及びュ 一ザ一クロック信号 110を生成する。ユーザークロック信号 110は、ユーザー回路 10 8及び入出力制御部 103で使用される。内部クロック信号 109は、ユーザークロック 信号 110の遞倍の周波数となっており、プログラマブル論理回路 100の内部で使用 される。
[0022] 次に、本プログラマブル論理回路 100の機能に関して、図面を参照して説明する。
[0023] 図 1において、プログラマブル論理回路 100が行う論理演算処理の内容は、メモリ 装置 102に設定情報として保持されている。各プロセッサエレメント 101は、メモリ装 置 102の設定情報を順次に読み出して、対応する論理演算処理を行う。プログラマ ブル論理回路 100は、ユーザー回路 108からユーザークロック信号 110に同期して 起動信号及び論理演算に用いるデータを受ける。これから一定時間経過後に、プロ グラマブル論理回路 100は、論理演算処理後のデータをユーザー回路 108にユー ザ一クロック信号 110に同期して与える。
[0024] 次に、プログラマブル論理回路 100の内部ブロックの機能に関して、図面を参照し て説明する。
[0025] 図 1において、各メモリ装置 102には、隣接のプロセッサエレメント 101の設定情報 が格納されている。メモリ装置 102は、プロセッサエレメント 101から制御信号とメモリ アドレスが入力されると、アドレスで指定された設定情報をプロセッサエレメント 101に 与える。プロセッサエレメント 101は、この設定情報に基づいて、実行する処理内容を 決定する。
[0026] プロセッサエレメント 101は、制御バス 104から初期化信号が入力されると、メモリ装 置 102の特定のアドレスを読み出し、入力される読み出しデータから設定情報の格 納位置アドレスを抽出して保持する。この格納位置アドレスは、設定情報の先頭位置 を示すアドレスである。
[0027] また、プロセッサエレメント 101は、制御バス 104から起動信号が入力されると、メモ リ装置 102の前記保持した格納位置アドレスから順次に設定情報を読み出す。さら に、プロセッサエレメント 101は、入力バス 105及び隣接のプロセッサエレメント 101 から論理処理用のデータを受け取り、設定情報に基づいてデータの論理処理を行つ た後にデータの整歹 1J、複製及び反転処理を行い、かつ、処理後のデータの保持を行 う。また、プロセッサエレメント 101は、保持した処理後のデータを出力バス 106及び 隣接のプロセッサエレメント 101に出力する。
[0028] このようにして、複数のプロセッサエレメント 101は、データの受け渡しを行う。入出 力制御部 103は、ユーザー回路 108からユーザークロック信号 110に同期した起動 信号及び論理処理用データを受け取り、このデータを内部クロック信号 109に同期さ せて入力バス 105に与える。また、入出力制御部 103は、ユーザー回路 108からュ 一ザ一クロック信号 110に同期した初期化信号を受け取り、このデータを内部クロック 信号 109に同期させて入力バス 105に出力する。また、入出力制御部 103は、出力 バス 106から内部クロック信号 109に同期した論理処理後のデータを受け取り、この データをユーザークロック信号 110に同期させてユーザー回路 108に出力する。この ようにして、入出力制御部 103は、ユーザー回路 108との制御信号、論理処理用及 び処理結果のデータの受け渡しを行う。
[0029] 次に、プログラマブル論理回路 100の内部のプロセッサエレメント 101の構成につ いて、図面を参照して説明する。
[0030] 図 2は、プロセッサエレメント 101の構成を示している。図 2に示すように、プロセッサ エレメント 101は、ロジックエレメント 200及びメモリ制御部 201を具備している。プロ セッサエレメント 101は、メモリ装置 102、制御バス 104、入力バス 105及び出力バス 106と接続されてレヽる。メモリ制卸部 201は、メモリ装置 102、ロジックエレメント 200、 制御バス 104及びデータバス 111と接続されている。ロジックエレメント 200は、隣接 のプロセッサセレメント 101のロジックエレメント 200及びメモリ制御部 201、入力バス 105、出力バス 106並びにデータバス 111と接続されている。
[0031] 次に、プロセッサエレメント 101の機能について、図面を参照して説明する。図 2に おいて、メモリ制御部 201は、制御バス 104から初期化信号を受けると、前述した格 納位置アドレスの抽出及び保持の処理を行う。メモリ制御部 201は、制御バス 104か ら起動信号が入力されると、メモリ装置 102の前記保持した格納位置アドレスから順 次に設定情報を読み出し、ロジックエレメント 200に転送する。
[0032] ロジックエレメント 200は、入力バス 105及び隣接のプロセッサエレメント 101からデ ータを受け取り、メモリ制御部 201から転送される設定情報に基づいてデータの論理 処理を行った後にデータの整列、複製及び反転処理を行い、かつ、処理後のデータ の保持を行う。また、ロジックエレメント 200は、メモリ制御部 201から転送される設定 情報に基づいて、出力バス 106及び隣接のプロセッサエレメント 101に処理後のデ ータを出力する。
[0033] 次に、プロセッサエレメント 101の内部のロジックエレメント 200の構成及び設定情 報の構成について、図面を参照して説明する。
[0034] 図 3には、ロジックエレメント 200の構成が示されている。図 4には、設定情報とメモリ 装置 102の構成が示されている。
[0035] 図 3において、ロジックエレメント 200は、ロジックセノレ 300、クロスコネクトスィッチ 30
1及びフリップフロップ 302を具備している。ロジックエレメント 200は、メモリ制御部 20 1、入力バス 105及び出力バス 106と接続されている。ロジックセル 300は、メモリ制 御部 201、フリップフロップ 302及びクロスコネクトスィッチ 301と接続されている。クロ スコネクトスィッチ 301は、メモリ制御部 201、ロジックセノレ 300、フリップフロップ 302 、入力バス 105及び隣接のロジックエレメント 200の内部のロジックセル 300と接続さ れている。フリップフロップ 302は、ロジックセノレ 300、クロスコネクトスィッチ 301、出 力バス 106及びメモリ制御部 201と接続されている。
[0036] なお、ロジックセル 300は、論理演算回路を構成している。また、クロスコネクトスイツ チ 301は、データ処理装置を構成している。また、クロスコネクトスィッチ 301及びフリ ップフロップ 302は、データ処理装置を構成している。
[0037] 図 4は、メモリ装置の構成を示している。図 4において、メモリ装置 102の内部の先 頭部分には、設定情報の格納アドレス情報が格納されている。メモリ装置 102の内部 における先頭部分以外の特定領域には、設定情報が格納されている。
[0038] 図 4において、ビット 25— 26はロジックセル 300の設定情報であり、ビット 0— 24は クロスコネクトスィッチ 301の設定情報である。ビット 0— 24は、 5ビット単位にクロスコ ネクトスイッチ 301の 5つの出力に対応する 4ビットの接続情報及び 1ビットの反転制 御情報から構成されている。
[0039] 次に、ロジックエレメント 200の機能について、図面を参照して説明する。図 3にお いて、ロジックセル 300は、フリップフロップ 302から入力されるデータに対し、メモリ 制御部 201から転送される設定情報によって指定される特定の論理処理を行レ、、ク ロスコネクトスィッチ 301、隣接のプロセッサエレメント 101のロジックエレメント 200へ 処理後のデータを出力する。クロスコネクトスィッチ 301は、ロジックセル 300、入カバ ス 105、隣接のプロセッサエレメント 101のロジックエレメント 200力も入力されるデー タに対し、メモリ制御部 201から転送される設定情報によって指定される特定のデー タの整歹 1J、複製及び反転処理を行い、フリップフロップ 302へ処理後のデータを出力 する。フリップフロップ 302は、クロスコネクトスィッチ 301から入力されるデータを、内 部クロック信号 109のタイミングで保持する。フリップフロップ 302は、保持したデータ をロジックセル 300及び出力バス 106に出力する。
[0040] 次に、ロジックセル 300の機能及び動作について、具体例を用いて説明する。 [0041] 図 5において、ロジックセル 300に対し設定情報の 2ビット及び入力データの 2ビット が入力され、ロジックセル 300は出力データの 1ビットを出力している。図 6は、この場 合のロジックセル 300の機能及び動作の例を示している。図 6において、設定情報が 00である時には、ロジックセル 300は入力データの論理和(OR)を出力する。設定情 報が 01である時には、ロジックセル 300は入力データの論理積 (AND)を出力する。 設定情報が 10である時には、ロジックセル 300は入力データの排他的論理和(X〇R )を出力する。設定情報が 11である時には、ロジックセル 300は入力データの論理和 の反転データ(N〇R)を出力する。このように、ロジックセノレ 300は、設定情報に基づ いて、異なる複数の論理機能を実現可能な回路である。
[0042] 次に、クロスコネクトスィッチ 301の機能について、具体例を用いて説明する。
[0043] 図 7には、クロスコネクトスィッチ 301の内部ブロック及び機能の例が示されている。
図 7において、クロスコネクトスィッチ 301の内部の相互接続部 700に対し設定情報 の 4ビット並びに入力データ A、 B、 Cの 3ビット及びロウレベルが入力され、相互接続 部 700から出力データ OUTl、 OUT2の 2ビットが出力されている。さらに、相互接続 部 700の各出力データは、設定情報の 1ビットと排他的論理和 (XOR)がとられ、外 部に出力される。この XORは、クロスコネクトスィッチ 301からの出力データを設定情 報に基づいてビット単位に反転するためのものである。この場合、出力数は 2である ので XOR部分に 2ビットの設定情報が使用されるため、クロスコネクトスィッチ 301の 全体で使用する設定情報は合計 6ビットとなる。
[0044] 図 8は、この場合の相互接続部 700の機能例を示している。図 8において、相互接 続部 700は、設定情報の MSBの 2ビットが OUT1に出力されるデータを選択し、 LS Bの 2ビットが OUT2に出力されるデータを選択している。相互接続部 700は、設定 情報が 00である時には入力データ Aを出力し、設定情報が 01である時には入力デ ータ Bを出力する。相互接続部 700は、設定情報が 10である時には入力データ Cを 出力し、設定情報が 11である時にはロウレベルを出力する。
[0045] このように、クロスコネクトスィッチ 301は、設定情報に基づいて複数の入力データ の整列、複製及び反転処理が可能であり、また、設定情報に設定された固定値を出 力することも可能な回路である。 [0046] 次に、プログラマブル論理回路 100の動作について、図面を参照して説明する。図 9及び図 10には、プログラマブル論理回路 100の動作タイミングの例が示されている 。図 9には、外部からの初期化の動作が表されている。図 10には、外部からの起動及 び実際の論理処理の動作が表されてレ、る。
[0047] まず、 T1期間において、入出力制御部 103は、ユーザー回路 108からユーザーク ロック信号 110に同期した初期化信号 900を受けて内部初期化信号 901として保持 する。 T2期間において、入出力制御部 103は、保持した内部初期化信号 901を内 部クロック信号 109に同期させて制御バス 104に出力する。制御バス 104の内部初 期化信号 902は、すべてのプロセッサエレメント 101のメモリ制御部 201に入力され る。
[0048] T3期間において、プロセッサエレメント 101のメモリ制御部 201は、入力された内部 初期化信号 902をトリガにして、メモリ装置 102の特定のアドレス 904に対し、読み出 し信号 903を出力する。その後、メモリ制御部 201は、入力される読み出しデータ 90 5を保持データ 906として一度保持し、この保持データ 906から設定情報の格納位置 アドレス 907を抽出して保持する。 T1一 T3の動作により、設定情報の格納位置アド レス 907が各プロセッサエレメント 101に記憶され、いつでも処理を実行できる状態と なる。
[0049] T4期間において、プログラマブル論理回路 100は、起動待ち状態である。 T5期間 において、入出力制御部 103は、ユーザー回路 108からユーザークロック信号 110 に同期した起動信号 1000及び処理用データ 1001を受け取って内部起動信号 100 2及び処理用データ 1003として保持する。 T6期間において、入出力制御部 103は 、保持した内部起動信号 1002を内部クロック信号 109に同期させて制御バス 104に 出力する。また、入出力制御部 103は、保持した内部処理用データ 1003を内部クロ ック信号 109に同期させて入力バス 105に出力する。
[0050] 制御バス 104の内部起動信号 1004は、すべてのプロセッサエレメント 101のメモリ 制御部 201に入力される。入力バス 105の論理処理用データ 1005は、すべてのプ 口セッサエレメント 101のロジックエレメント 200に入力される。 T7期間において、各プ 口セッサエレメント 101のメモリ制御部 201は、入力された内部起動信号 1004をトリガ にして、メモリ装置 102の T3期間において保持した格納位置アドレス 907に対し読 み出し信号 903を出力する。 Τ8期間において、各メモリ制御部 201は、メモリ装置 10 2から出力される読み出しデータ 905を保持データ 906として保持する。同時に、メモ リ制御部 201は、メモリ装置 102の次のアドレスに対し、読み出し信号 603を出力す る。
[0051] Τ9期間において、各メモリ制御部 201は、保持データ 906をロジックエレメント 200 に出力する。また、各メモリ制御部 201は、メモリ装置 102から出力される読み出しデ ータ 905を保持する。同時に、各メモリ制御部 201は、メモリ装置 102の次のアドレス に対し、読み出し信号を出力する。各ロジックエレメント 200は、入力される保持デー タ(設定情報) 906に基づいて、入力バス 105からの論理処理用データ 1005の整列 、複製及び反転処理を行い、処理後のデータを内部のフリップフロップ 302に保持す る。
[0052] T10期間において、各メモリ制御部 201は、保持データ 906をロジックエレメント 20 0に出力する。また、各メモリ制御部 201は、メモリ装置 102から出力される読み出し データ 905を内部に保持する。同時に、各メモリ制御部 201は、メモリ装置 102の次 のアドレスに対して読み出し信号を出力する。
[0053] 各ロジックエレメント 200は、フリップフロップ 302、入力バス 105及び隣接のプロセ ッサエレメント 101からの論理処理用データ 1005を、入力される保持データ(設定情 報) 906に基づいて論理処理を行って、処理後のデータをフリップフロップ 302に保 持する。以下、 T10期間の処理を繰り返すことにより、一つの論理処理を実現する。
[0054] すべての期間において、フリップフロップ 302のデータは、出力バス 106に出力さ れており、入出力制御部 103は、このデータを常に内部クロック信号 109に同期して 保持している。入出力制御部 103は、保持データをユーザークロック信号 110に同期 してユーザー回路 108に出力する。ユーザー回路 108は、入力されるデータのフラ グを参照し、出力データ (論理処理後のデータ)を保持する、又は、決められた期間 後のデータを保持する。
[0055] 次に、特定の論理処理機能をプログラマブル論理回路 100にマッピングした例を、 図面を参照して説明する。説明を簡潔に行うため、動作例で示した T9、 T10期間の ロジックエレメント 200の動作のみを説明する。
[0056] 図 11は、 2入力 2出力のロジックセル 300の機能を示している。図 12は、ロジックセ ル 300を持つプログラマブル論理回路 100に対して、 4ビットの比較回路をマッピング した場合の例を示している。図 12において、縦方向には物理的に異なる 4つのプロ セッサエレメント 101が示されており、横方向には同一のプロセッサエレメント 101が 各サイクルでどのような処理を行うかが示されている。
[0057] 図 13は、 4ビットの比較回路を示している。図 13に示すように、入力データとして、 I
NO 7の 8ビットデータがあり、 IN0 3と IN4 7の比較結果が 1ビットのデータとし て出力される。
[0058] 図 12において、ロジックセル(LC) 300の入力及び出力は、上側が LSBであり、下 側が MSBである。また、ロジックセル(LC) 300の下部に記載されているデータは、口 ジックセル (LC) 300に対する設定情報である。複数のロジックセル (LC) 300は、図 13に示すように動作する。まず、サイクル 1及び 2において、複数のロジックセル (LC ) 300は入力データをビット単位に整列する。サイクル 3において、複数のロジックセ ノレ(LC) 300は各ビットに対して XNORの処理を行う。サイクル 4において、複数の口 ジックセル(LC) 300はサイクル 3の結果に対して AND処理を行う。サイクル 5におい て、複数のロジックセル(LC) 300はサイクル 4の結果に対して AND処理を行う。サイ クル 6において、複数のロジックセル (LC) 300は比較結果を出力する。結果として、 内部クロック信号 109の 6サイクルで出力が確定される。内部クロック信号 109のクロ ック数がユーザークロック信号 110のクロック数の 6倍である時に、ユーザー回路 108 力 は、 1クロックで比較処理が完了したように見える。
[0059] 次に、本発明の実施の形態 1に係るプログラマブル論理回路 100のメモリ制御部 2 01の動作を主とした動作について、図面を参照して詳細に説明する。
[0060] 図 3に示すように、メモリ制御部 201は、メモリ装置 102、制御バス 104及びデータ バス 111と接続されている。また、メモリ制御部 201の入力端子は、ロジックエレメント 200のフリップフロップ 302の出力端子に接続されている。また、メモリ制御部 201の 出力端子は、ロジックエレメント 200のロジックセル 300及びクロスコネクトスィッチ 30 1に接続されている。 [0061] メモリ制御部 201は、制御バス 104からの制御信号に基づいてメモリ装置 102と情 報の送受をし、かつ、データバス 111からのデータバスデータ 1111を受ける。また、 メモリ制御部 201は、フリップフロップ 302からのフリップフロップデータ 3021を受ける
[0062] 次に、プログラマブル論理回路 100による分岐制御について、詳細に説明する。
[0063] 図 14は、プログラマブル論理回路 100による分岐制御に用いられる分岐用設定情 報の構成を説明するための図である。分岐用設定情報 1400は、分岐を示すコード 1 401、分岐判定用データの選択コード(REF) 1402、分岐先アドレス iMPB) 1403 及び分岐先アドレス (JMPA) 1404を有してレ、る。
[0064] 分岐を示すコード 1401は、ビット 24 21からなり、「1111」である場合には分岐を 示し、「1111」でない場合には分岐以外の通常の処理を示している。分岐判定用デ ータの選択コード 1402は、ビット 19一 16からなり、分岐判定に用いるデータを選択 するための情報である。本例では、分岐判定用データの選択コード 1402は、データ バスデータ 1111及びフリップフロップデータ 3021から特定の 1ビットを選択するため の情報として使用される。分岐先アドレス 1403は、ビット 15— 8からなり、判定用ビッ ト = 1の時に飛ぶ分岐先アドレスを示している。分岐先アドレス 1404は、ビット 7— 0 からなり、判定用ビット =0の時に飛ぶ分岐先アドレスを示している。
[0065] 図 3において、メモリ制御部 201は、一連のメモリ装置 102からの読み出し動作にお いて、読み出しデータのビット 24— 21を参照し、データ値が「1111」以外である時に は読み出しデータが通常の設定情報であると判断し、ロジックエレメント 200にデータ をそのまま転送し、通常の処理を継続する。また、メモリ制御部 201は、ビット 24— 21 が「1111」である時には読み出しデータが分岐制御用情報であると判断し、ロジック エレメント 200に動作を一時停止する擬似設定情報、例えば、すべて「0」のデータを 転送し、図 14における REFビット、すなわち、ビット 19一 16を参照する。
[0066] 次に、メモリ制御部 201は、 REFビットに従って、データバスデータ 1111及びフリツ プフロップデータ 3021から特定の 1ビットを選択し、選択した前記ビットが「1」である 時にはメモリ装置 102に出力する読み出しアドレスに JMPBで指定されたアドレスを セットする。 [0067] メモリ制御部 201は、選択した前記ビットが「0」である時にはメモリ装置 102に出力 する読み出しアドレスに JMPAで指定されたアドレスをセットする。これ以降において 、メモリ制御部 201は、セットされたアドレスより順番にメモリ装置 102の設定情報を読 み出しロジックエレメント 200に転送する。
[0068] 次に、プログラマブル論理回路 100の分岐制御による処理について、図 1乃至図 3 と共に図 15乃至図 17を参照して詳細に説明する。
[0069] 図 15は、プログラマブル論理回路を実装した処理回路を示すブロック図である。図
15において、処理回路 1500は、回路 Cの処理結果に従って回路 A及び回路 Bの処 理結果のいずれかの値をセレクタ 1501が外部に出力するよう動作する。簡単のため 、各回路 A、 B、 Cは、それぞれ 1つのプロセッサエレメントを用いて実現可能とする。 また、処理回路(LSI) 1500に搭載されたプロセッサエレメントの数は 3とする。
[0070] まず、図 16に、プログラマブル論理回路の分岐制御を用いない場合の処理サイク ルを示す。図 16は、左から右方向へのクロックサイクル進行における、それぞれの回 路の処理レイテンシを示している。例えば、回路 Aの処理レイテンシは 5サイクルであ る。回路 B及び回路 Cの処理レイテンシはそれぞれ 5サイクル及び 6サイクルである。 これらのレイテンシの差を吸収するため、回路 A、 Bは、回路 Cの処理完了までのサイ クルにデータ保持のみを行っている。サイクル 7において、 1つのプロセッサエレメント は、回路 A、 Bの結果をうけて、図 15におけるセレクタ 1501の処理を実行して外部に 処理回路 1500の処理結果データを出力する。
[0071] 図 16に示すように、結果的に全体として 7サイクルの処理時間及び 3つのプロセッ サエレメントが必要となっている。これは、 1つのプロセッサエレメントを 1サイクル使用 する処理を 1プロセッサエレメント時間とすると、 3 X 7 = 21のプロセッサエレメント時 間を使用していることになる。
[0072] 一方、図 17には、プログラマブル論理回路 100の分岐制御を用いた場合の処理サ イタルを示す。図 17に示す例では、図 16におけるサイクル 6までの期間に回路 Cの みの処理を行い、サイクル 7において、回路 Cの結果データを用いて分岐判定を実 行している。分岐判定結果としてメモリ制御部 201は、回路 Bの処理に対応するアド レスをメモリ装置 100に対し出力し、次のサイクルより回路 Bを実行している。結果的 に全体処理時間は、 14サイクルに増加している力 プロセッサエレメントの必要数は 1に削減できるため、全体で 1 X 14= 14のプロセッサエレメント時間で処理が完了し ていることになる。
[0073] このように、本発明の実施の形態 1においては、分岐制御を実施することにより、同 時に並列的に実行される処理のうち、結果的に無駄になる処理部分を削減すること ができる。特に、出力までの要求時間が長い処理にこの分岐制御を用いることにより 、空き状態となるプロセッサエレメント 101に他の処理を割り当てることができるため、 全体の処理性能を高めることが可能となる。また、本発明の実施の形態 1においては 、プロセッサエレメントの数が実装すべき回路に対して十分でなレ、場合にも特に有効 に全体の処理性能を高めることが可能となる。
[0074] (実施の形態 2)
次に、本発明の実施の形態 2について、図面を参照して詳細に説明する。本発明 の実施の形態 2に係るプログラマブル論理回路の構成は、本発明の実施の形態 1に 係るプログラマブル論理回路 100と同じである。
[0075] 本発明の実施の形態 2に係るプログラマブル論理回路は、分岐制御の処理によりメ モリ使用効率を向上させるものである。
[0076] 図 18は、プログラマブル論理回路を実装する処理回路を示すブロック図である。図 18において、処理回路 1800は、回路 A、回路 B、回路 C、回路 A及び回路 Dの順に 処理を行う回路である。最初の回路 Aと 3番目の回路 Aは入力に対して同一の処理 を行うものとする。
[0077] また、図 19は、プログラマブル論理回路 100の分岐制御を用いない場合における メモリ装置 102の内部の設定情報の格納状態を説明するための図である。図 19にお いて、回路 Aは 40ワードのメモリ領域を使用し、回路 B、 C、 Dはそれぞれ 20ワードの メモリ領域を使用する。
[0078] 図 18における処理回路 1800は、メモリ装置 102のアドレス 10力も 150まで順に実 行され、合計 140ワードの領域を使用することになる。
[0079] 一方、図 20は、プログラマブル論理回路 100の分岐制御を用いた場合におけるメ モリ装置 102の内部の設定情報の格納状態を説明するための図である。図 20にお いて、回路 Aの処理後には回路 B又は回路 Dの先頭アドレスに飛ぶ分岐制御用情報 が挿入されている。また、回路 Cの処理後に、回路 A又は回路 Dの先頭アドレスに飛 ぶ分岐制御用情報が挿入されている。本例において処理順序は、先ず、アドレス 10 力 読み出しを行って回路 Aの処理完了後に、分岐によりアドレス 51に飛んで回路 B の処理を行う。その後に、回路 Cの処理を行い、処理完了後、分岐によりアドレス 10 に飛び再度回路 Aを処理する。
[0080] 回路 Aの処理完了後に、分岐によりアドレス 92に飛び、回路 Dの処理を行う。結果 的に回路 Aの 1つ分の領域が削減されている。分岐の方法としては、回路 Cの処理完 了時にフラグビットを生成し、このフラグビットを用いる方法がある。
[0081] このように、本発明の実施の形態 2においては、分岐制御を実施することにより、複 数回使用される回路のメモリ領域を削減することができるため、回路全体の機能実装 効率が高まる。また、本発明の実施の形態 2においては、外部からの入力データを監 視する処理や特定の値までカウントアップするような処理にぉレ、ては、同一の処理が 繰り返し実行される場合が多い回路、例えば、 100までカウントアップ後に特定の処 理を行うような回路においては、 + 1の処理を行う回路の後に分岐制御用情報を挿 入し、分岐判定条件として、カウンタ値と固定値 100の比較結果を用いることにより、 大きく面積を削減することができる。
[0082] なお、本発明の実施の形態 2において、分岐するアドレスは、 2通りに限定する必要 はなぐ参照するビット数を増やして、多くの分岐先アドレスを設定してもよい。
[0083] (実施の形態 3)
次に、本発明の実施の形態 3について、図面を参照して詳細に説明する。本発明 の実施の形態 3に係るプログラマブル論理回路の構成は、本発明の実施の形態 1に 係るプログラマブル論理回路 100と同じである。本発明の実施の形態 3に係るプログ ラマブル論理回路は、停止制御により実装効率を向上させるものである。
[0084] 図 21は、本発明の実施の形態 3に係るプログラマブル論理回路 100による停止制 御に用レ、られる停止用設定情報を説明するための図である。停止用設定情報 2100 は、分岐を示すコード 2101、停止を示すコード(REF) 2102及び停止サイクル数 21 03を有している。 [0085] 分岐を示すコード 2101は、ビット 24— 21からなり、「1111」である場合には分岐を 示し、「1111」でない場合には分岐以外の通常の処理を示している。停止を示すコ ード 2102は、ビット 19一 16カゝらなり、停止か否かを示す情報である。停止サイクル数 2103は、停止を示すコード 2102が停止を示している時における停止サイクル数(停 止期間)の情報である。
[0086] 図 3において、メモリ制御部 201は、メモリ装置 102からの情報の読み出し動作にお いて、読み出した情報のビット 24— 21を参照し、データ値が「1111」以外である時に 、読み出した情報が通常の設定情報であると判断し、ロジックエレメント 200に情報を そのまま転送し、通常の処理を継続する。メモリ制御部 201は、読み出した情報のビ ット 24— 21が「1111」であり、 REFビットが「1111」以外である時に、読み出した情 報が分岐コードであると判断し、前述した分岐の動作を行う。
[0087] また、メモリ制御部 201は、読み出した情報のビット 24— 21が「1111」であり、かつ 、 REFビットが「1111」である時に、読み出した情報が停止コードであると判断し、ビ ット 0— 7を内部にラッチし、内部カウンタのカウントアップを開始する。カウンタ値が前 記ラッチデータの値に達するまでカウントアップは継続し、同時にロジックエレメント 2 00に動作を停止する擬似設定情報、例えば、すべて 0のデータを転送し続ける。こ の間、メモリ制御部 201は、メモリ装置 102の情報の読み出しは行わない。その後に 、カウンタ値が前記ラッチデータの値に達した時点で、メモリ制御部 201は、再びメモ リ装置 102の情報の読み出しを開始して通常動作を再開する。
[0088] このような制御により、連帯動作する他のプロセッサエレメント 101の処理完了待ち 状態にあるプロセッサエレメント 101、又は、自身の処理完了により動作の必要のなく なったプロセッサエレメント 101の消費電力を抑えることができ、かつ、メモリ装置 102 における無駄な領域を削減できる。
[0089] 例えば、図 15において、回路 A及び回路 Bの処理が 2サイクルで完了するような場 合に、回路 Cの処理完了まで前記擬似停止コードをサイクルごとに読み出した場合 に、 4 X 2 = 8サイクル分のメモリ領域が停止コードのみで使用されてしまうことになる 。停止コードを回路 A及び回路 Bの領域の直後に揷入することにより、 6サイクル分の 無駄なコードを削減できることになる。同時にこの期間のメモリアクセスが停止するた め、その分の消費電力を抑えることができる。また、停止サイクル数の領域に停止期 間が X無限となる値を設定することにより、最初から使用しないプロセッサエレメント 10 1の消費電力を抑えることも可能である。
[0090] 以上説明したように、本発明の実施の形態 1、 2、 3に係るプログラマブル論理回路
100は、複数のプロセッサエレメント 101が独立に動作することも連帯動作することも 可能であり、複数種類の論理処理を同時に並列的に行うことが可能であり、かつ、一 つの論理処理を連帯して行うことも可能となっている。
[0091] また、本発明の実施の形態 1、 2、 3に係るプログラマブル論理回路 100は、同一の エレメントが 1次元的に 1列状に配列されているため、実装規模に応じて柔軟に対応 可能であり、拡張性が高い。また、本発明の実施の形態 1、 2、 3に係るプログラマブ ル論理回路 100は、データの送受を隣接のプロセッサエレメント 101の間に限定する ことにより、設定情報を大幅に削減することが可能となり、回路面積を削減でき、かつ 、実装する LSIのコスト及び消費電力を削減できる。
[0092] また、本発明の実施の形態 1、 2、 3に係るプログラマブル論理回路 100は、実装ェ レメント数に関係なぐ任意のプロセッサエレメント 101のフリップフロップから隣接す る他のプロセッサエレメント 101のフリップフロップまでの配線距離が最小限かつ一定 であるため、動作周波数を限界にまで引き上げることが可能となり、従来のプログラマ ブルロジックに比して、高速動作が可能となっている。
[0093] また、本発明の実施の形態 1、 2、 3に係るプログラマブル論理回路 100は、同一の 回路上で、繰り返し機能を変更しながら処理を行うため、回路面積を削減でき、かつ 、実装する LSIのコスト及び消費電力を削減できる。
[0094] なお、本発明の実施の形態 1において、内部クロック信号 109は、必ずしもユーザ 一クロック信号 110の通倍である必要がなぐ例えば、入出力制御部 103に適切なク ロック乗せ換え回路を用いることで、ユーザークロック信号 110に同期しないクロック 信号を内部クロック信号として用いてもよい。
[0095] また、本発明の実施の形態 1、 2, 3において、メモリ装置 102は、プログラマブル論 理回路 100の内部に存在する必要がなぐプログラマブル論理回路 101の外部に存 在する構成でもよい。また、本発明の実施の形態 1、 2、 3において、クロック生成回路 107は、プログラマブル論理回路 100の内部に配設してもよい。
[0096] また、本発明の実施の形態 1、 2、 3において、メモリ装置 102とプロセッサエレメント 101との間にマルチプレクサなどの選択回路を挿入して、設定によりメモリ装置 102と 各プロセッサエレメント 101との接続を変更可能にしてもよい。ただし、この場合には データの処理の遅延量が増加するため、周波数を維持するためには、パイプライン 等を用いて高速化を図る必要がある。
[0097] また、本発明の実施の形態 1、 2、 3において、図 3に示すロジックエレメント 200の 内部の各ブロック、ロジックセノレ 300、クロスコネクトスィッチ 301及びフリップフロップ 302の間の接続及び前記各ブロックと入力バス 105、出力バス 106及び隣接のロジ ックエレメント 200との接続は、図 3のものに限定されるものではなぐ例えば、ロジック セル 300とクロスコネクトスィッチ 301の間にフリップフロップを設けて、さらに動作周 波数を高めてもよレ、。また、本発明の実施の形態 1において、入力バス 105からのデ ータはクロスコネクトスィッチ 301ではなぐロジックセル 300又はフリップフロップ 302 に入力してもよい。
[0098] また、本発明の実施の形態 1において、複数のプロセッサエレメント 101の各々は、 他のプロセッサエレメント 101に接続されていなくてもよい。
[0099] (実施の形態 4)
次に、本発明の実施の形態 4について、図面を参照して詳細に説明する。
[0100] 図 22は、本発明の実施の形態 4に係るプログラマブル論理回路の構成を示すプロ ック図である。本発明の実施の形態 4においては、本発明の実施の形態 1と同じ構成 要素には同じ参照符合が付されてそれらの説明が省略される。
[0101] 図 22に示すように、本発明の実施の形態 4に係るプログラマブル論理回路 2200は 、複数のプロセッサエレメント 101、複数のメモリ装置 102、入出力制御部 103、制御 バス 104、入力バス 105及び出力バス 106を具備している。プログラマブル論理回路 2200には、クロック生成回路 107及びユーザー回路 108が接続されている。
[0102] 複数のプロセッサエレメント 101と複数のメモリ装置 102とは、 1対 1で接続されてい る。 1対 1で接続されているプロセッサエレメント 101とメモリ装置 102とは、単位論理 回路を構成している。複数の単位論理回路は、並列に接続されている。 [0103] 複数のプロセッサエレメント 101の各々は、 1次元的に 1列状に配置されており、物 理配置上で隣接する 2つの他のプロセッサエレメント 101と接続線 101aで接続され ている。すなわち、複数の単位論理回路は、 1次元的に 1列状に配置されており、複 数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路 に対して物理的配置上で隣接する他の前記単位論理回路とは、接続線 101aで接 続されている。
[0104] プロセッサエレメント 101は、接続線を用いて隣接する 2つの他のプロセッサエレメ ント 101との間でデータの受け渡しを行う。
[0105] 入出力制御部 103は、外部とのインターフェース回路となっており、ユーザー回路 1 08と接続されている。入出力制御部 103は、ユーザー回路 108から入力信号 1081 及びインデクス指示信号 1082を受ける。制御バス 104は、入出力制御部 103及び プロセッサエレメント 101と接続されている。制御バス 104は、初期化及び起動等の 制御信号を入出力制御部 103から受け取り、各プロセッサエレメント 101に転送する 。入力バス 105は、入出力制御部 103及びプロセッサエレメント 101と接続されてい る。入力バス 105は、論理演算に用いるデータを入出力制御部 103から受け取り、各 プロセッサエレメント 101に転送する。
[0106] 出力バス 106は、入出力制御部 103及びプロセッサエレメント 101と接続されてい る。出力バス 106は、演算結果のデータをプロセッサエレメント 101から受け取り、入 出力制御部 103に転送する。クロック生成回路 107は、内部クロック信号 109及びュ 一ザ一クロック信号 110を生成する。ユーザークロック信号 110は、ユーザー回路 10 8及び入出力制御部 103で使用される。内部クロック信号 109は、ユーザークロック 信号 110の遁倍の周波数となっており、プログラマブル論理回路 2200の内部で使 用される。インデクスバス 2201は、入出力制御部 103及びプロセッサエレメント 101 と接続されている。
[0107] 次に、本プログラマブル論理回路 2200の機能に関して、図面を参照して説明する
[0108] 図 22において、プログラマブル論理回路 2200が行う論理演算処理の内容は、メモ リ装置 102に設定情報として保持されている。各プロセッサエレメント 101は、メモリ装 置 102の設定情報を順次に読み出して、対応する論理演算処理を行う。プログラマ ブル論理回路 2200は、ユーザー回路 108からユーザークロック信号 110に同期して 起動信号及び論理演算に用いるデータを受ける。これから一定時間経過後に、プロ グラマブル論理回路 2200は、論理演算処理後のデータをユーザー回路 108にユー ザ一クロック信号 110に同期して与える。
[0109] 次に、プログラマブル論理回路 2200の内部ブロックの機能に関して、図面を参照 して説明する。
[0110] 図 22において、各メモリ装置 102には、隣接のプロセッサエレメント 101の設定情 報が格納されている。メモリ装置 102は、プロセッサエレメント 101から制御信号とメモ リアドレスが入力されると、アドレスで指定された設定情報をプロセッサエレメント 101 に与える。プロセッサエレメント 101は、この設定情報に基づいて、実行する処理内 容を決定する。
[0111] プロセッサエレメント 101は、制御バス 104から初期化信号が入力されると、メモリ装 置 102の特定のアドレスを読み出し、入力される読み出しデータから設定情報の格 納位置アドレスを抽出して保持する。この格納位置アドレスは、設定情報の先頭位置 を示すアドレスである。
[0112] また、プロセッサエレメント 101は、制御バス 104から起動信号が入力されると、メモ リ装置 102の前記保持した格納位置アドレスから順次に設定情報を読み出す。さら に、プロセッサエレメント 101は、入力バス 105及び隣接のプロセッサエレメント 101 から論理処理用のデータを受け取り、設定情報に基づいてデータの論理処理を行つ た後にデータの整歹 1J、複製及び反転処理を行い、かつ、処理後のデータの保持を行 う。また、プロセッサエレメント 101は、保持した処理後のデータを出力バス 106及び 隣接のプロセッサエレメント 101に出力する。
[0113] このようにして、複数のプロセッサエレメント 101は、データの受け渡しを行う。入出 力制御部 103は、ユーザー回路 108からユーザークロック信号 110に同期した起動 信号及び論理処理用データを受け取り、このデータを内部クロック信号 109に同期さ せて入力バス 105に与える。また、入出力制御部 103は、ユーザー回路 108からュ 一ザ一クロック信号 110に同期した初期化信号を受け取り、このデータを内部クロック 信号 109に同期させて入力バス 105に出力する。また、入出力制御部 103は、出力 バス 106から内部クロック信号 109に同期した論理処理後のデータを受け取り、この データをユーザークロック信号 110に同期させてユーザー回路 108に出力する。この ようにして、入出力制御部 103は、ユーザー回路 108との制御信号、論理処理用及 び処理結果のデータの受け渡しを行う。
[0114] 次に、プログラマブル論理回路 2200の内部のプロセッサエレメント 101の構成につ いて、図面を参照して説明する。
[0115] 図 23は、プロセッサエレメント 101の構成を示している。図 23に示すように、プロセ ッサエレメント 101は、ロジックエレメント 200及びメモリ制御部 201を具備している。 プロセッサエレメント 101は、メモリ装置 102、制御バス 104、入力バス 105及び出力 バス 106と接続されている。メモリ制御部 201は、メモリ装置 102、ロジックエレメント 2 00及び制御バス 104と接続されている。ロジックエレメント 200は、隣接のプロセッサ セレメント 101のロジックエレメント 200及びメモリ制御部 201、入力バス 105及び出 力バス 106と接続されている。
[0116] 次に、プロセッサエレメント 101の機能について、図面を参照して説明する。図 23 において、メモリ制御部 201は、制御バス 104から初期化信号を受けると、前述した 格納位置アドレスの抽出及び保持の処理を行う。メモリ制御部 201は、制御バス 104 力 起動信号が入力されると、メモリ装置 102の前記保持した格納位置アドレスから 順次に設定情報を読み出し、一時的に記憶してロジックエレメント 200に転送する。
[0117] ロジックエレメント 200は、入力バス 105及び隣接のプロセッサエレメント 101からデ ータを受け取り、メモリ制御部 201から転送される設定情報に基づいてデータの論理 処理を行った後にデータの整列、複製及び反転処理を行い、かつ、処理後のデータ の保持を行う。また、ロジックエレメント 200は、メモリ制御部 201から転送される設定 情報に基づいて、出力バス 106及び隣接のプロセッサエレメント 101に処理後のデ ータを出力する。
[0118] 次に、プロセッサエレメント 101の内部のロジックエレメント 200の構成及び設定情 報の構成について、図面を参照して説明する。
[0119] 図 24には、ロジックエレメント 200の構成が示されている。図 25には、設定情報とメ モリ装置 102の構成が示されてレ、る。
[0120] 図 24において、ロジックエレメント 200は、ロジックセル(論理演算回路) 300、クロス コネクトスィッチ(データ処理装置) 301及びフリップフロップ 302を具備している。ロジ ックエレメント 200は、メモリ制御部 201、入力バス 105及び出力バス 106と接続され ている。ロジックセノレ 300は、メモリ制御部 201、フリップフロップ 302及びクロスコネク トスイッチ 301と接続されている。クロスコネクトスィッチ 301は、メモリ制御部 201、口 ジックセノレ 300、フリップフロップ 302、入力バス 105及び隣接のロジックエレメント 20 0の内部のロジックセル 300と接続されている。フリップフロップ 302は、ロジックセノレ 3 00、クロスコネクトスィッチ 301及び出力バス 106と接続されている。
[0121] なお、ロジックセル 300は、論理演算回路を構成している。また、クロスコネクトスイツ チ 301は、データ処理装置を構成している。また、クロスコネクトスィッチ 301及びフリ ップフロップ 302は、データ処理装置を構成している。
[0122] 図 25は、メモリ装置の構成を示している。図 25において、メモリ装置 102の内部の 先頭部分には、設定情報の格納アドレス情報が格納されている。メモリ装置 102の内 部における先頭部分以外の特定領域には、設定情報が格納されている。
[0123] 図 25において、ビット 25— 28はロジックセル 300の設定情報であり、ビット 0— 24 はクロスコネクトスィッチ 301の接続情報である。ビット 0— 24は、 5ビット単位にクロス コネクトスィッチ 301の 5つの出力に対応する 4ビットの接続情報及び 1ビットの反転制 御情報から構成されている。
[0124] 次に、ロジックエレメント 200の機能について、図面を参照して説明する。図 24にお いて、ロジックセル 300は、フリップフロップ 302から入力されるデータに対し、メモリ 制御部 201から転送される設定情報によって指定される特定の論理処理を行レ、、ク ロスコネクトスィッチ 301、隣接のプロセッサエレメント 101のロジックエレメント 200へ 処理後のデータを出力する。クロスコネクトスィッチ 301は、ロジックセノレ 300、入カバ ス 105、隣接のプロセッサエレメント 101のロジックエレメント 200力も入力されるデー タに対し、メモリ制御部 201から転送される設定情報によって指定される特定のデー タの整歹 1J、複製及び反転処理を行い、フリップフロップ 302へ処理後のデータを出力 する。フリップフロップ 302は、クロスコネクトスィッチ 301から入力されるデータを、内 部クロック信号 109のタイミングで保持する。フリップフロップ 302は、保持したデータ をロジックセル 300及び出力バス 106に出力する。
[0125] 本発明の実施の形態 4に係るロジックセル 300及びクロスコネクトスィッチ 301の機 能及び動作は、本発明の実施の形態 1に係るものと同じである。また、本発明の実施 の形態 4に係るプログラマブル論理回路 2200の機能及び動作は、インデクス指示信 号 1082を処理する機能及び動作、並びに、データバス 111を有していない点を除 けば、本発明の実施の形態 1に係るものと同じである。
[0126] 次に、入出力制御部 103がユーザー回路 108からインデクス指示信号 1082を受 けた時における動作について、図面を参照して説明する。
[0127] 図 22に示すように、ユーザーは、ユーザー回路 108を操作することにより、第 1及び 第 2の設定情報のうちの所望のものを優先的に指定するためのインデクス指示信号 をユーザー回路 108に生成させることができる。ユーザー回路 108は、インデクス指 示信号 1082を入出力制御部 103に与える。
[0128] 図 23及び図 24に示すように、入出力制御部 103は、インデクス指示信号 1082を 受けた時にこのインデクス指示信号 1082に応じたインデクス情報を生成してインデク スバス 2201を介してプロセッサエレメント 101のメモリ制御部 201に与える。
[0129] メモリ制御部 201は、インデクス情報を受けた時にインデクス情報に基づいてメモリ 装置 102の特定のアドレスを読み出し、設定情報の格納位置アドレスの先頭位置を 示す先頭位置アドレスを抽出して記憶する。
[0130] ロジックエレメント 200は、入出力制御部 103からデータ及び制御信号を受けると、 メモリ制御部 201に記憶されてレ、る設定情報の格納位置アドレスの先頭位置を示す 先頭位置アドレスに基づいて、前述のように、メモリ装置 102から順次に読み出す設 定情報のいずれかに基づいてロジックセル 300とクロスコネクトスィッチ 301の一部又 は全ての機能を順次に変更して所定の順序回路の動作を行う。
[0131] このように、プログラマブル論理回路 2200は、単体動作を行うプロセッサエレメント 101の集合体であり、各プロセッサエレメント 101は、主に隣接のプロセッサエレメント 101との間で連帯動作を行う。また、複数の隣接のプロセッサエレメント 101がーつの グループとして、一つの論理処理を行うことも可能である。 [0132] 以上説明したように、本発明の実施の形態 4に係るプログラマブル論理回路 2200 は、複数のプロセッサエレメント 101が独立に動作することも連帯動作することも可能 であり、複数種類の論理処理を同時に並列的に行うことが可能であり、かつ、一つの 論理処理を連帯して行うことも可能となっている。
[0133] また、本発明の実施の形態 4に係るプログラマブル論理回路 2200は、同一のエレ メントが 1次元的に 1列状に配列されているため、実装規模に応じて柔軟に対応可能 であり、拡張性が高い。また、本発明の実施の形態 4に係るプログラマブル論理回路 2200は、データの送受を隣接のプロセッサエレメント 101の間に限定することにより、 設定情報を大幅に削減することが可能となり、回路面積を削減でき、かつ、実装する LSIのコスト及び消費電力を削減できる。
[0134] また、本発明の実施の形態 4に係るプログラマブル論理回路 2200は、実装エレメ ント数に関係なぐ任意のプロセッサエレメント 101のフリップフロップ力 隣接する他 のプロセッサエレメント 101のフリップフロップまでの配線距離が最小限かつ一定であ るため、動作周波数を限界にまで引き上げることが可能となり、従来のプログラマブル ロジックに比して、高速動作が可能となってレ、る。
[0135] また、本発明の実施の形態 4に係るプログラマブル論理回路 2200は、同一の回路 上で、繰り返し機能を変更しながら処理を行うため、回路面積を削減でき、かつ、実 装する LSIのコスト及び消費電力を削減できる。
[0136] なお、本発明の実施の形態 4において、内部クロック信号 109は、必ずしもユーザ 一クロック信号 110の遞倍である必要がなぐ例えば、入出力制御部 103に適切なク ロック乗せ換え回路を用いることで、ユーザークロック信号 110に同期しないクロック 信号を内部クロック信号として用いてもよい。
[0137] また、本発明の実施の形態 4において、メモリ装置 102は、プログラマブル論理回 路 2200の内部に存在する必要がなぐプログラマブル論理回路 2200の外部に存在 する構成でもよい。また、本発明の実施の形態 4において、クロック生成回路 107は、 プログラマブル論理回路 2200の内部に配設してもよい。
[0138] また、本発明の実施の形態 4において、メモリ装置 102とプロセッサエレメント 101と の間にマルチプレクサなどの選択回路を揷入して、設定によりメモリ装置 102と各プ 口セッサエレメント 101との接続を変更可能にしてもよレ、。ただし、この場合にはデー タの処理の遅延量が増加するため、周波数を維持するためには、ノ ィプライン等を 用いて高速化を図る必要がある。
[0139] また、本発明の実施の形態 4において、図 24に示すロジックエレメント 200の内部 の各ブロック、ロジックセノレ 300、クロスコネクトスィッチ 301及びフリップフロップ 302 の間の接続及び前記各ブロックと入力バス 105、出力バス 106及び隣接のロジックェ レメント 200との接続は、図 3のものに限定されるものではなぐ例えば、ロジックセノレ 3 00とクロスコネクトスィッチ 301の間にフリップフロップを設けて、さらに動作周波数を 高めてもよい。また、本発明の実施の形態 4において、入力バス 105からのデータは クロスコネクトスィッチ 301ではなぐロジックセル 300又はフリップフロップ 302に入力 してもよい。
[0140] また、本発明の実施の形態 4において、複数のプロセッサエレメント 101の各々は、 他のプロセッサエレメント 101に接続されていなくてもよい。
[0141] 本発明の第 1の態様は、並列に接続されている複数の単位論理回路と、外部から 受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前 記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備 し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の変更が 可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理 演算手段と、第 2の設定情報に基づいて前記論理演算手段からの前記データの整 歹 IJと複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制 御手段に与えるデータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手 段と、分岐用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前 記第 1及び第 2の設定情報のいずれかを読み出して前記論理演算手段と前記デー タ処理手段とに与えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回 路の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基 づいて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変 更して所定の順序回路の動作を行う構成を採る。
[0142] この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す 第 1及び第 2の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全 ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し 、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を 提供すること力 Sできる。また、この構成によれば、複数の単位論理回路の各々が分岐 用設定情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第 1及 び第 2の設定情報のいずれかを読み出して論理演算手段とデータ処理手段とに与 えて制御するため、より汎用性があるプログラマブル論理回路を提供することができ る。
[0143] 本発明の第 2の態様は、並列に接続されている複数の単位論理回路と、外部から 受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前 記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備 し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の変更が 可能であって前記入力信号に所定の論理演算処理を行ってデータを生成する論理 演算手段と、第 2の設定情報に基づいて前記論理演算手段からの前記データの整 歹 IJと複製と反転処理を行ってデータを生成して前記出力信号として前記出力信号制 御手段に与えるデータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手 段と、停止用設定情報を受けて当該停止用設定情報に基づいて前記論理演算手段 と前記データ処理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の 単位論理回路の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設 定情報に基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機 能を順次に変更して所定の順序回路の動作を行う構成を採る。
[0144] この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す 第 1及び第 2の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全 ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し 、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を 提供すること力 Sできる。また、この構成によれば、停止用設定情報を受けて当該停止 用設定情報に基づいて論理演算手段とデータ処理手段との停止を制御するため、よ り汎用性があるプログラマブル論理回路を提供することができる。 [0145] 本発明の第 3の態様は、本発明の第 1の態様において、前記論理演算手段が、前 記第 1の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の論 理演算処理を行って前記データを生成するロジックセルを具備する構成を採る。
[0146] この構成によれば、本発明の第 1の態様と同じ発明の効果を有する。
[0147] 本発明の第 4の態様は、本発明の第 1の態様において、前記データ処理手段が、 前記第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と複製 と反転処理を行って前記データを生成するクロスコネクトスィッチを具備する構成を採 る。
[0148] この構成によれば、本発明の第 1の態様と同じ効果を有する。
[0149] 本発明の第 5の態様は、本発明の第 4の態様において、前記データ処理手段が、 前記クロスコネクトスィッチからの前記データを保持し前記出力信号として前記出力 信号制御手段に与えるフリップフロップを具備する構成を採る。
[0150] この構成によれば、本発明の第 4の態様と同じ効果を有する。
[0151] 本発明の第 6の態様は、並列に接続されている複数の単位論理回路と、外部から 受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前 記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理 回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手 段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と 、を具備し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の 変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータ のいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2 の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処 理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデ ータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、分岐用設定 情報を受けて当該分岐用設定情報に基づいて前記記憶手段の前記第 1及び第 2の 設定情報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与 えて制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前 記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基づいて前記論理 演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順 序回路の動作を行う構成を採る。
[0152] この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す 第 1及び第 2の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全 ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し 、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を 提供すること力 Sできる。また、この構成によれば、入力信号及び隣接の他の単位論理 回路からのデータのレ、ずれかに所定の論理演算処理を行ってデータを生成し、また 、複数の単位論理回路の各々が分岐用設定情報を受けて当該分岐用設定情報に 基づいて記憶手段の第 1及び第 2の設定情報のいずれかを読み出して論理演算手 段とデータ処理手段とに与えて制御するため、より汎用性があるプログラマブル論理 回路を提供することができる。
[0153] 本発明の第 7の態様は、並列に接続されている複数の単位論理回路と、外部から 受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前 記複数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理 回路に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手 段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と 、を具備し、前記複数の単位論理回路の各々は、第 1の設定情報に基づいて機能の 変更が可能であって前記入力信号及び隣接の前記他の単位論理回路からのデータ のいずれかに所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2 の設定情報に基づいて前記論理演算手段からの前記データの整列と複製と反転処 理を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデ ータ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、停止用設定 情報を受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処 理手段との停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路 の各々は、前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基づ いて前記論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更 して所定の順序回路の動作を行う構成を採る。 [0154] この構成によれば、複数の単位論理回路の各々が記憶手段から順次に読み出す 第 1及び第 2の設定情報に基づいて論理演算回路とデータ処理手段の一部又は全 ての機能を順次に変更して所定の順序回路の動作を行うため、高い面積効率を有し 、大規模な論理回路を高速に実現可能である低価格のプログラマブル論理回路を 提供すること力 Sできる。また、この構成によれば、入力信号及び隣接の他の単位論理 回路からのデータのレ、ずれかに所定の論理演算処理を行ってデータを生成し、また 、停止用設定情報を受けて当該停止用設定情報に基づいて論理演算手段とデータ 処理手段との停止を制御するため、より汎用性があるプログラマブル論理回路を提供 すること力 Sできる。
[0155] 本発明の第 8の態様は、本発明の第 7の態様において、前記論理演算手段が、前 記第 1の設定情報に基づいて機能の変更が可能であって前記入力信号又は隣接の 前記他の単位論理回路からの前記データに所定の論理演算処理を行って前記デー タを生成するロジックセルを具備する構成を採る。
[0156] この構成によれば、本発明の第 7の態様と同じ効果を有する。
[0157] 本発明の第 9の態様は、本発明の第 6の態様において、前記データ処理手段が、 前記第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と複製 と反転処理を行って前記データを生成するクロスコネクトスィッチを具備する構成を採 る。
[0158] この構成によれば、本発明の第 6の態様と同じ効果を有する。
[0159] 本発明の第 10の態様は、本発明の第 9の態様において、前記データ処理手段が、 前記クロスコネクトスィッチからの前記データを保持し前記出力信号として前記出力 信号制御手段に与えるフリップフロップを具備する構成を採る。
[0160] この構成によれば、本発明の第 9の態様と同じ効果を有する。
[0161] 本発明の第 11の態様は、並列に接続されている複数の単位論理回路と、外部から 受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御手段と、前 記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段と、を具備 し、前記入力信号制御手段は、前記入力信号に基づいて制御信号を前記複数の単 位論理回路に与える手段と、インデクス指示信号を受けた時にインデクス情報を前記 複数の単位論理回路に与える手段と、を有し、前記複数の単位論理回路の各々が、 第 1の設定情報のいずれかに基づいて機能の変更が可能であって前記入力信号に 所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情報の いずれかに基づいて前記論理演算手段からの前記データの整列と複製と反転処理 を行ってデータを生成して前記出力信号として前記出力信号制御手段に与えるデー タ処理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、前記制御信号 及び前記インデクス情報のいずれかを受けた時に当該制御信号及び当該インデクス 情報のいずれかに基づいて前記記憶手段における前記第 1及び第 2の設定情報の 格納位置アドレスの先頭位置を示す先頭位置アドレスを記憶するメモリ制御手段と、 を具備し、前記複数の単位論理回路の各々が、前記メモリ制御手段に記憶されてい る前記先頭位置アドレスに基づいて前記記憶手段から順次に読み出す前記第 1及 び第 2の設定情報のいずれかに基づいて前記論理演算手段と前記データ処理手段 の一部又は全ての機能を順次に変更して所定の順序回路の動作を行う構成を採る。
[0162] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0163] 本発明の第 12の態様は、本発明の第 11の態様において、前記論理演算手段が、 前記第 1の設定情報に基づいて機能の変更が可能であって前記入力信号に所定の 論理演算処理を行って前記データを生成するロジックセルを具備する構成を採る。
[0164] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0165] 本発明の第 13の態様は、本発明の第 11の態様において、前記データ処理手段が 、前記第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と複 製と反転処理を行って前記データを生成するクロスコネクトスィッチを具備する構成を 採る。
[0166] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0167] 本発明の第 14の態様は、本発明の第 13の態様において、前記データ処理手段が 、前記クロスコネクトスィッチからの前記データを保持し前記出力信号として前記出力 信号制御手段に与えるフリップフロップを具備する構成を採る。
[0168] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0169] 本発明の第 15の態様は、並列に接続されている複数の単位論理回路と、前記複 数の単位論理回路における一の前記単位論理回路と当該一の前記単位論理回路 に対して物理的配置上で隣接する他の前記単位論理回路とを接続する接続手段と 、外部から受け取る入力信号を前記複数の単位論理回路に供給する入力信号制御 手段と、前記複数の単位論理回路の出力信号を外部に供給する出力信号制御手段 と、を具備し、前記入力信号制御手段は、前記入力信号に基づいて制御信号を前記 複数の単位論理回路に与える手段と、インデクス指示信号を受けた時にインデクス 情報を前記複数の単位論理回路に与える手段と、を有し、前記複数の単位論理回 路の各々力 S、第 1の設定情報のいずれかに基づいて機能の変更が可能であって前 記入力信号又は隣接の前記他の単位論理回路からのデータに所定の論理演算処 理を行ってデータを生成する論理演算手段と、第 2の設定情報のいずれかに基づい て前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生 成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記 第 1及び第 2の設定情報を記憶する記憶手段と、前記制御信号及び前記インデクス 情報のいずれ力を受けた時に当該制御信号及び当該インデクス情報のいずれかに 基づいて前記記憶手段における前記第 1及び第 2の設定情報の格納位置アドレスの 先頭位置を示す先頭位置アドレスを記憶するメモリ制御手段と、を具備し、前記複数 の単位論理回路の各々が、前記メモリ制御手段に記憶されている前記先頭位置アド レスに基づいて前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報の いずれかに基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機 能を順次に変更して所定の順序回路の動作を行う構成を採る。
[0170] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0171] 本発明の第 16の態様は、本発明の第 15の態様において、前記論理演算手段が、 前記第 1の設定情報に基づいて機能の変更が可能であって前記入力信号又は隣接 の前記他の単位論理回路からの前記データに所定の論理演算処理を行って前記デ ータを生成するロジックセルを具備する構成を採る。
[0172] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0173] 本発明の第 17の態様は、本発明の第 15の態様において、前記データ処理手段が 、前記第 2の設定情報に基づいて前記論理演算手段からの前記データの整列と複 製と反転処理を行って前記データを生成するクロスコネクトスィッチを具備する構成を 採る。
[0174] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0175] 本発明の第 18の態様は、本発明の第 17の態様において、前記データ処理手段が 、前記クロスコネクトスィッチからの前記データを保持し前記出力信号として前記出力 信号制御手段に与えるフリップフロップを具備する構成を採る。
[0176] この構成によれば、複数の単位論理回路の各々が制御信号及びインデクス指示信 号に基づいて記憶手段から順次に読み出す第 1及び第 2の設定情報に基づいて論 理演算回路とデータ処理手段の一部又は全ての機能を順次に変更して所定の順序 回路の動作を行うため、高い面積効率を有し、大規模な論理回路を高速に実現可能 である低価格のプログラマブル論理回路を提供することができる。
[0177] 本明糸田書は、 2004年 2月 12日出願の 2004—035042及び 2004—035043に基 づく。この内容は、すべてここに含めておく。
産業上の利用可能性
[0178] 本発明は、電子装置を制御する制御装置などに適用することができる。

Claims

請求の範囲
[1] 並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記 複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の 出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理 回路の各々は、第 1の設定情報に基づいて機能の変更が可能であって前記入力信 号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情 報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行つ てデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処 理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、分岐用設定情報を 受けて当該分岐用設定情報に基づいて前記記憶手段の前記第 1及び第 2の設定情 報のいずれかを読み出して前記論理演算手段と前記データ処理手段とに与えて制 御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶 手段から順次に読み出す前記第 1及び第 2の設定情報に基づいて前記論理演算手 段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路 の動作を行うプログラマブル論理回路。
[2] 並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記 複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の 出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単位論理 回路の各々は、第 1の設定情報に基づいて機能の変更が可能であって前記入力信 号に所定の論理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情 報に基づいて前記論理演算手段からの前記データの整列と複製と反転処理を行つ てデータを生成して前記出力信号として前記出力信号制御手段に与えるデータ処 理手段と、前記第 1及び第 2の設定情報を記憶する記憶手段と、停止用設定情報を 受けて当該停止用設定情報に基づいて前記論理演算手段と前記データ処理手段と の停止を制御するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は 、前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報に基づいて前記 論理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定 の順序回路の動作を行うプログラマブル論理回路。
[3] 前記論理演算手段は、前記第 1の設定情報に基づいて機能の変更が可能であつ て前記入力信号に所定の論理演算処理を行って前記データを生成するロジックセル を具備する請求項 1又は請求項 2に記載のプログラマブル論理回路。
[4] 前記データ処理手段は、前記第 2の設定情報に基づいて前記論理演算手段から の前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクト スィッチを具備する請求項 1から請求項 3のいずれかに記載のプログラマブル論理回 路。
[5] 前記データ処理手段は、前記クロスコネクトスィッチからの前記データを保持し前記 出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項 4 に記載のプログラマブル論理回路。
[6] 並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記 複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路に おける一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上 で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理 回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単 位論理回路の各々は、第 1の設定情報に基づいて機能の変更が可能であって前記 入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論 理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情報に基づいて 前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生 成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記 第 1及び第 2の設定情報を記憶する記憶手段と、分岐用設定情報を受けて当該分岐 用設定情報に基づいて前記記憶手段の前記第 1及び第 2の設定情報のいずれかを 読み出して前記論理演算手段と前記データ処理手段とに与えて制御するメモリ制御 手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段から順次に読 み出す前記第 1及び第 2の設定情報に基づいて前記論理演算手段と前記データ処 理手段の一部又は全ての機能を順次に変更して所定の順序回路の動作を行うプロ グラマブル論理回路。
[7] 並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記 複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路に おける一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上 で隣接する他の前記単位論理回路とを接続する接続手段と、前記複数の単位論理 回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記複数の単 位論理回路の各々は、第 1の設定情報に基づいて機能の変更が可能であって前記 入力信号及び隣接の前記他の単位論理回路からのデータのいずれかに所定の論 理演算処理を行ってデータを生成する論理演算手段と、第 2の設定情報に基づいて 前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生 成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記 第 1及び第 2の設定情報を記憶する記憶手段と、停止用設定情報を受けて当該停止 用設定情報に基づいて前記論理演算手段と前記データ処理手段との停止を制御す るメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、前記記憶手段 から順次に読み出す前記第 1及び第 2の設定情報に基づいて前記論理演算手段と 前記データ処理手段の一部又は全ての機能を順次に変更して所定の順序回路の動 作を行うプログラマブル論理回路。
[8] 前記論理演算手段は、前記第 1の設定情報に基づいて機能の変更が可能であつ て前記入力信号又は隣接の前記他の単位論理回路からの前記データに所定の論 理演算処理を行って前記データを生成するロジックセルを具備する請求項 7に記載 のプログラマブル論理回路。
[9] 前記データ処理手段は、前記第 2の設定情報に基づいて前記論理演算手段から の前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクト スィッチを具備する請求項 6から請求項 8のいずれかに記載のプログラマブル論理回 路。
[10] 前記データ処理手段は、前記クロスコネクトスィッチからの前記データを保持し前記 出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項 9 に記載のプログラマブル論理回路。
[11] 並列に接続されている複数の単位論理回路と、外部から受け取る入力信号を前記 複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理回路の 出力信号を外部に供給する出力信号制御手段と、を具備し、前記入力信号制御手 段は、前記入力信号に基づいて制御信号を前記複数の単位論理回路に与える手段 と、インデクス指示信号を受けた時にインデクス情報を前記複数の単位論理回路に 与える手段と、を有し、前記複数の単位論理回路の各々は、第 1の設定情報のいず れかに基づいて機能の変更が可能であって前記入力信号に所定の論理演算処理 を行ってデータを生成する論理演算手段と、第 2の設定情報のいずれかに基づいて 前記論理演算手段からの前記データの整列と複製と反転処理を行ってデータを生 成して前記出力信号として前記出力信号制御手段に与えるデータ処理手段と、前記 第 1及び第 2の設定情報を記憶する記憶手段と、前記制御信号及び前記インデクス 情報のいずれ力、を受けた時に当該制御信号及び当該インデクス情報のいずれかに 基づいて前記記憶手段における前記第 1及び第 2の設定情報の格納位置アドレスの 先頭位置を示す先頭位置アドレスを記憶するメモリ制御手段と、を具備し、前記複数 の単位論理回路の各々は、前記メモリ制御手段に記憶されている前記先頭位置アド レスに基づいて前記記憶手段から順次に読み出す前記第 1及び第 2の設定情報の いずれかに基づいて前記論理演算手段と前記データ処理手段の一部又は全ての機 能を順次に変更して所定の順序回路の動作を行うプログラマブル論理回路。
[12] 前記論理演算手段は、前記第 1の設定情報に基づいて機能の変更が可能であつ て前記入力信号に所定の論理演算処理を行って前記データを生成するロジックセル を具備する請求項 11に記載のプログラマブル論理回路。
[13] 前記データ処理手段は、前記第 2の設定情報に基づいて前記論理演算手段から の前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクト スィッチを具備する請求項 11に記載のプログラマブル論理回路。
[14] 前記データ処理手段は、前記クロスコネクトスィッチからの前記データを保持し前記 出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項 1 3に記載のプログラマブル論理回路。
[15] 並列に接続されている複数の単位論理回路と、前記複数の単位論理回路における 一の前記単位論理回路と当該一の前記単位論理回路に対して物理的配置上で隣 接する他の前記単位論理回路とを接続する接続手段と、外部から受け取る入力信号 を前記複数の単位論理回路に供給する入力信号制御手段と、前記複数の単位論理 回路の出力信号を外部に供給する出力信号制御手段と、を具備し、前記入力信号 制御手段は、前記入力信号に基づいて制御信号を前記複数の単位論理回路に与 える手段と、インデクス指示信号を受けた時にインデクス情報を前記複数の単位論理 回路に与える手段と、を有し、前記複数の単位論理回路の各々は、第 1の設定情報 のいずれかに基づいて機能の変更が可能であって前記入力信号又は隣接の前記 他の単位論理回路からのデータに所定の論理演算処理を行ってデータを生成する 論理演算手段と、第 2の設定情報のいずれかに基づいて前記論理演算手段からの 前記データの整列と複製と反転処理を行ってデータを生成して前記出力信号として 前記出力信号制御手段に与えるデータ処理手段と、前記第 1及び第 2の設定情報を 記憶する記憶手段と、前記制御信号及び前記インデクス情報のレ、ずれかを受けた時 に当該制御信号及び当該インデクス情報のレ、ずれかに基づレ、て前記記憶手段にお ける前記第 1及び第 2の設定情報の格納位置アドレスの先頭位置を示す先頭位置ァ ドレスを記憶するメモリ制御手段と、を具備し、前記複数の単位論理回路の各々は、 前記メモリ制御手段に記憶されてレ、る前記先頭位置アドレスに基づレ、て前記記憶手 段から順次に読み出す前記第 1及び第 2の設定情報のいずれかに基づいて前記論 理演算手段と前記データ処理手段の一部又は全ての機能を順次に変更して所定の 順序回路の動作を行うプログラマブル論理回路。
[16] 前記論理演算手段は、前記第 1の設定情報に基づいて機能の変更が可能であつ て前記入力信号又は隣接の前記他の単位論理回路からの前記データに所定の論 理演算処理を行って前記データを生成するロジックセルを具備する請求項 15に記載 のプログラマブル論理回路。
[17] 前記データ処理手段は、前記第 2の設定情報に基づいて前記論理演算手段から の前記データの整列と複製と反転処理を行って前記データを生成するクロスコネクト スィッチを具備する請求項 15に記載のプログラマブル論理回路。
[18] 前記データ処理手段は、前記クロスコネクトスィッチからの前記データを保持し前記 出力信号として前記出力信号制御手段に与えるフリップフロップを具備する請求項 1 7に記載のプログラマブル論理回路。
PCT/JP2005/001837 2004-02-12 2005-02-08 プログラマブル論理回路 WO2005078933A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US10/589,078 US7365566B2 (en) 2004-02-12 2005-02-08 Programmable logic circuit

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2004035042A JP3837135B2 (ja) 2004-02-12 2004-02-12 プログラマブル論理回路
JP2004-035043 2004-02-12
JP2004035043A JP3837136B2 (ja) 2004-02-12 2004-02-12 プログラマブル論理回路
JP2004-035042 2004-02-12

Publications (1)

Publication Number Publication Date
WO2005078933A1 true WO2005078933A1 (ja) 2005-08-25

Family

ID=34863446

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2005/001837 WO2005078933A1 (ja) 2004-02-12 2005-02-08 プログラマブル論理回路

Country Status (3)

Country Link
US (1) US7365566B2 (ja)
KR (1) KR100840030B1 (ja)
WO (1) WO2005078933A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009509226A (ja) * 2005-09-21 2009-03-05 エヌエックスピー ビー ヴィ バス回路
JP4861030B2 (ja) * 2006-03-24 2012-01-25 株式会社東芝 半導体装置
US8539420B2 (en) * 2011-07-05 2013-09-17 Xilinx, Inc. Method and apparatus for self-annealing multi-die interconnect redundancy control
EP3107212B1 (en) * 2015-06-16 2018-04-25 Framatome Field programmable gate array comprising plurality of functional blocks and control device for a power plant
US9985611B2 (en) * 2015-10-23 2018-05-29 Intel Corporation Tunnel field-effect transistor (TFET) based high-density and low-power sequential
US10482209B1 (en) 2018-08-06 2019-11-19 HLS Logix LLC Field programmable operation block array

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08250685A (ja) * 1995-03-08 1996-09-27 Nippon Telegr & Teleph Corp <Ntt> プログラマブルゲートアレイ
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム
JP2004310730A (ja) * 2003-01-15 2004-11-04 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた集積回路装置、処理装置およびそれらを利用した処理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4870302A (en) 1984-03-12 1989-09-26 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
JPH08510885A (ja) 1993-05-28 1996-11-12 リージェンツ オブ ザ ユニバーシティー オブ カリフォルニア ダイナミックロジックコアに動的に相互接続するフィールドプログラマブル・ロジックデバイス
JPH09231788A (ja) * 1995-12-19 1997-09-05 Fujitsu Ltd シフトレジスタ及びプログラマブル論理回路並びにプログラマブル論理回路システム
US6633181B1 (en) * 1999-12-30 2003-10-14 Stretch, Inc. Multi-scale programmable array
JP2002217709A (ja) * 2001-01-22 2002-08-02 Sharp Corp プログラマブル論理回路
JP2002368092A (ja) * 2001-06-12 2002-12-20 Matsushita Electric Ind Co Ltd プログラマブル論理回路

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08250685A (ja) * 1995-03-08 1996-09-27 Nippon Telegr & Teleph Corp <Ntt> プログラマブルゲートアレイ
JP2001068993A (ja) * 1999-08-25 2001-03-16 Fuji Xerox Co Ltd 情報処理システム
JP2004310730A (ja) * 2003-01-15 2004-11-04 Sanyo Electric Co Ltd リコンフィギュラブル回路を備えた集積回路装置、処理装置およびそれらを利用した処理方法

Also Published As

Publication number Publication date
KR100840030B1 (ko) 2008-06-19
US7365566B2 (en) 2008-04-29
US20070279085A1 (en) 2007-12-06
KR20060110362A (ko) 2006-10-24

Similar Documents

Publication Publication Date Title
US7653805B2 (en) Processing in pipelined computing units with data line and circuit configuration rule signal line
CN102541809B (zh) 一种动态可重构处理器
JP2007531957A (ja) 非同期スタティックランダムアクセスメモリ
WO2005078933A1 (ja) プログラマブル論理回路
US7734896B2 (en) Enhanced processor element structure in a reconfigurable integrated circuit device
JP2006040254A (ja) リコンフィギュラブル回路および処理装置
US5678058A (en) Vector processor
US8402251B2 (en) Selecting configuration memory address for execution circuit conditionally based on input address or computation result of preceding execution circuit as address
EP1388048B1 (en) Storage system for use in custom loop accellerators
JP4838009B2 (ja) リコンフィグラブル回路
US4811201A (en) Interconnect circuit
US20070260805A1 (en) Computer with a Reconfigurable Architecture for Integrating a Global Cellular Automaton
JP3837135B2 (ja) プログラマブル論理回路
JP3837136B2 (ja) プログラマブル論理回路
JP2005057452A (ja) プログラマブル論理回路
CN112486453A (zh) 一种异步先入先出寄存器以及芯片
US20090282223A1 (en) Data processing circuit
JP2007148622A (ja) インターフェース設定方法
CN101351770A (zh) 从装置和主装置、包含这些装置的系统和从装置操作方法
JP4892852B2 (ja) シリアルインターフェースの制御方法
US9378782B1 (en) Apparatus with write-back buffer and associated methods
JP5447511B2 (ja) 通信回路および通信方法
JP2003255025A (ja) 半導体集積回路
JP2006085574A (ja) データ処理システムおよびその制御方法
JP2005057451A (ja) プログラマブル論理回路

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): BW GH GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 1020067016161

Country of ref document: KR

NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Country of ref document: DE

WWP Wipo information: published in national office

Ref document number: 1020067016161

Country of ref document: KR

122 Ep: pct application non-entry in european phase
WWE Wipo information: entry into national phase

Ref document number: 10589078

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 10589078

Country of ref document: US