|
Sponsored Links
Title: Programmable logic circuit
Abstract: A programmable logic circuit (100) includes a processor element (101) having: a logic cell (300) which can modify the function according to first setting information and generates data by performing a predetermined logic calculation on an input signal; a cross connect switch (301) for generating data by performing alignment, copying, and inversion of the data from the logic calculation means according to second setting information; and a memory control unit (201) which reads out the first or the second setting information from a memory device (102) according to branch setting information and supplies it to the logic calculation means and the data processing means for performing control. According to the first and the second setting information successively read from the memory device (102), each of unit logic circuits successively modifies a part or whole of the logic cell (300) and the cross connect switch (301) and performs a predetermined sequence circuit operation.
Patent Number: 7,365,566 Issued on 04/29/2008 to Aoyama, et al.
| Inventors: |
Aoyama; Yasuhiro (Tokyo, JP), Kudo; Yosuke (Osaka, JP) | | Assignee: |
Matsushita Electric Industrial Co., Ltd.
(Osaka,
JP)
|
| Appl. No.:
|
10/589,078 |
| Filed:
|
February 8, 2005 |
| PCT Filed:
|
February 08, 2005
|
| PCT No.:
|
PCT/JP2005/001837
|
| 371(c)(1),(2),(4) Date:
|
June 18, 2007
|
| PCT Pub. No.:
|
WO2005/078933
|
| PCT Pub. Date:
|
August 25, 2005
|
Foreign Application Priority Data | | | | | |
Feb 12, 2004
[JP] | | |
2004-035042 | |
Feb 12, 2004
[JP] | | |
2004-035043 | |
|
| Current U.S. Class: |
326/39 ; 326/38; 326/41 |
| Current International Class: |
H03K 19/177 (20060101); G06F 7/38 (20060101) |
| Field of Search: |
326/38-41
|
References Cited [Referenced By]
U.S. Patent Documents
Foreign Patent Documents
| | | | | | |
| 8250685 | |
Sep., 1996 | |
JP | |
| 8510885 | |
Nov., 1996 | |
JP | |
| 85108855 | |
Nov., 1996 | |
JP | |
| 200168993 | |
Mar., 2001 | |
JP | |
| 2004310730 | |
Nov., 2004 | |
JP | |
|
Other References PCT International Search Report dated Apr. 12, 2005. cited by other. | Primary Examiner: Tran; Anh Q.
Attorney, Agent or Firm: Dickinson Wright, PLLC
Claims
The invention claimed is:
1. A programmable logic circuit comprising: a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals
received from outside to the plurality of unit logic circuits; and an output signal control section that supplies output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic
operation section that performs predetermined logic operation on the input signals and generates data, said logic operation section having functions that are changeable based on first setting information; a data processing section that generates data by
carrying out arrangement, duplication and inversion processing on the data from the logic operation section based on second setting information, and provides the data to the output signal control section as output signals; a storage section that stores
the first and second setting information; and a memory control section that takes control by receiving jump setting information, reading out either the first or the second setting information of the storage section based on the jump setting information
and providing the setting information to the logic operation circuit and the data processing section, wherein each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the data
processing section based on the first and second setting information read out sequentially from the storage section and carries out predetermined operations of a sequential circuit.
2. A programmable logic circuit comprising: a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic circuits; and an output
signal control section that supplies output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic operation section that performs predetermined logic operation on the input signal and
generates data, said logic operation section having functions that are changeable based on first setting information; a data processing section that generates data by carrying out arrangement, duplication and inversion processing on the data from the
logic operation section based on the second setting information, and provides the data to the output signal control section as output signals; a storage section that stores the first and second setting information; and a memory control section that
receives stopping setting information and controls stopping between the logic operation section and the data processing section based on the stopping setting information, wherein each of the plurality of unit logic circuits sequentially changes some or
all of the functions of the logic operation section and the data processing section based on the first and second setting information read out sequentially from the storage section and carries out predetermined operations of a sequential circuit.
3. The programmable logic circuit according to claim 1, wherein the logic operation section further comprises a logic cell that performs predetermined logic operation on the input signals and generates data, said logic cell having functions
that are changeable based on the first setting information.
4. The programmable logic circuit according to claim 2, wherein the logic operation section further comprises a logic cell that performs predetermined logic operation on the input signals and generates data, said logic cell having functions
that are changeable based on the first setting information.
5. The programmable logic circuit according to claim 1, wherein the data processing section further comprises a cross-connecting switch that generates data by carrying out arrangement, duplication and inversion processing on the data from the
logic operation section based on the second setting information.
6. The programmable logic circuit according to claim 2, wherein the data processing section further comprises a cross-connecting switch that generates data by carrying out arrangement, duplication and inversion processing on the data from the
logic operation section based on the second setting information.
7. The programmable logic circuit according to claim 5, wherein the data processing section comprises a flip-flop that holds the data from the cross-connecting switch and supplies the data to the output signal control section as the output
signals.
8. The programmable logic circuit according to claim 6, wherein the data processing section comprises a flip-flop that holds the data from the cross-connecting switch and supplies the data to the output signal control section as the output
signals.
9. The programmable logic circuit according to claim 1, further comprising a connecting section that connects one unit logic circuit in the plurality of unit logic circuits and another unit logic circuit neighboring the one unit logic circuit
in physical arrangement, wherein the logic operation section performs predetermined logic operation on one of the input signal and data from the another neighboring unit logic circuit and generates data, said logic operation section having functions that
are changeable based on first setting information.
10. The programmable logic circuit according to claim 2, further comprising a connecting section that connects one unit logic circuit in the plurality of unit logic circuits and another unit logic circuit neighboring the one unit logic circuit
in physical arrangement, wherein the logic operation section performs predetermined logic operation on one of the input signal and data from the another neighboring unit logic circuit and generates data, said logic operation section having functions that
are changeable based on first setting information.
11. The programmable logic circuit according to claim 10, wherein the logic operation section further comprises a logic cell that performs predetermined logic operation on the input signals and generates data, said logic cell having functions
that are changeable based on the first setting information.
12. The programmable logic circuit according to claim 5, wherein the data processing section comprises a flip-flop that holds the data from the cross-connecting switch and supplies the data to the output signal control section as the output
signals.
13. The programmable logic circuit according to claim 6, wherein the data processing section comprises a flip-flop that holds the data from the cross-connecting switch and supplies the data to the output signal control section as the output
signals.
14. A programmable logic circuit comprising: a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic circuits; and an output
signal control section that supplies output signals of the plurality of unit logic circuits to outside, the input signal control section comprising: a section that supplies a control signal to the plurality of unit logic circuits based on the input
signal; and a section that supplies index information to the plurality of unit logic circuits at the time of receiving an index designation signal, each of the plurality of unit logic circuits comprising: a logic operation section that performs
predetermined logic operation on the input signal and generates data, said logic operation section having functions that are changeable based on any of the first setting information; a data processing section that carries out arrangement, duplication,
and inversion processing on the data from the logic operation section based on any of the second setting information, generates data and provides the data to the output signal control section as the output signals; a storage section storing the first
and second setting information; and a memory control section that stores a lead position address indicating the lead position of storage position addresses of the first and second setting information at the storage section based on one of the control
signal and index information at the time of receiving one of the control signal and the index information, wherein each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the data
processing section based on either the first or second setting information read out sequentially from the storage section based on the lead position address stored in the memory control section and carries out predetermined operations of a sequential
circuit.
15. The programmable logic circuit according to claim 14, wherein the logic operation section further comprises a logic cell that performs predetermined logic operation on the input signals and generates the data, said logic cell having
functions that are changeable based on the first setting information.
16. The programmable logic circuit according to claim 14, wherein the data processing section further comprises a cross-connecting switch that generates data by carrying out arrangement, duplication and inversion processing on the data from the
logic operation section based on the second setting information.
17. The programmable logic circuit according to claim 16, wherein the data processing section comprises a flip-flop that holds the data from the cross-connecting switch and supplies the data to the output signal control section as the output
signals.
18. The programmable logic circuit according to claim 14, further comprising a connecting section that connects one unit logic circuit in the plurality of unit logic circuits and another unit logic circuit neighboring the one unit logic circuit
in physical arrangement, wherein the logic operation section performs predetermined logic operation on one of the input signal and data from the another neighboring unit logic circuit and generates data, said logic operation section having functions that
are changeable based on first setting information. Description
TECHNICAL FIELD
The present invention relates to a programmable logic circuit capable of implementing functions for predetermined logic operations as a result of programming, and particularly relates to a dynamic programmable logic circuit capable of carrying
out processing while dynamically changing internal configuration.
BACKGROUND ART
As a programmable logic circuit of the related art, there is a one disclosed in Japanese patent document 1. This programmable logic circuitry of the related art consists of dynamically reconfigurable field-programmable logic devices employing
dynamically connected arrays, latch circuits, and dynamic logic cores that are gradually being executed in circuits. With programmable logic circuits of the related art, in the case of implementing large scale logic circuits, a plurality of the
programmable logic circuits are connected in series, and logic processing of each level is executed sequentially.
In this case, with programmable logic circuits of the related art, control is performed such that when an internal level of a first chip reaches a specified level, a next chip is operated using a circuit level counter indicating the circuit level
and an internal counter indicating the internal level. Namely, programmable logic circuits of the related art are implemented in such a manner that circuit level is divided in chip units. Patent Document 1: Japanese Patent Application Laid-Open No. Hei
8-510885.
DISCLOSURE OF INVENTION
Problems to be Solved by the Invention
However, with programmable logic circuits of the related art, when a large scale logic circuit is implemented, there is a problem in that processing time increases because the extent to which parallel processing can be adopted is limited to what
can be achieved with a single chip. Further, with programmable logic circuits of the related art, when the extent of parallel processing is increased by increasing the number of dynamic logic modules contained on a single chip sequentially to shorten
processing time, connection points of dynamically connected arrays and required setting information increase proportionally with this, and there is therefore a problem that the implementation area for the circuit increases.
In view of the foregoing problems, it is an object of the present invention to provide a low-cost programmable logic circuit having a high implementation area efficiency capable of bringing about high-speed, large scale logic circuits.
Means for Solving the Problem
A first aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic
circuits; and an output signal control section that supplies output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic operation section that performs predetermined logic operation
on the input signals and generates data, the logic operation section having functions that are changeable based on first setting information; a data processing section that generates data by carrying out arrangement, duplication and inversion processing
on the data from the logic operation section based on second setting information, and provides the data to the output signal control section as output signals; a storage section that stores the first and second setting information; and a memory control
section that takes control by receiving jump setting information, reading out either the first or the second setting information of the storage section based on the jump setting information and providing the setting information to the logic operation
circuit and the data processing section, where each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the data processing section based on the first and second setting information
read out sequentially from the storage section and carries out predetermined operations of a sequential circuit.
A second aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic
circuits; and an output signal control section that supplies output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic operation section that performs predetermined logic operation
on the input signal and generates data, the logic operation section having functions that are changeable based on first setting information; a data processing section that generates data by carrying out arrangement, duplication and inversion processing
on the data from the logic operation section based on the second setting information, and provides the data to the output signal control section as output signals; a storage section that stores the first and second setting information; and a memory
control section that receives stopping setting information and controls stopping between the logic operation section and the data processing section based on the stopping setting information, wherein each of the plurality of unit logic circuits
sequentially changes some or all of the functions of the logic operation section and the data processing section based on the first and second setting information read out sequentially from the storage section and carries out predetermined operations of
a sequential circuit.
A third aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic
circuits; a connecting section that connects one unit logic circuit in the plurality of unit logic circuits and another unit logic circuit neighboring the one unit logic circuit in physical arrangement; and an output signal control section that supplies
output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic operation section that performs predetermined logic operation on one of the input signal and data from the another
neighboring unit logic circuit, and generates data, the logic operation section having functions that are changeable based on the first setting information; a data processing section that generates data by carrying out arrangement, duplication and
inversion processing on the data from the logic operation section based on the second setting information, and provides the data to the output signal control section as output signals; a storage section that stores the first and second setting
information; and a memory control section that takes control by receiving jump setting information, reading out either the first or the second setting information of the storage section based on the jump setting information and providing the setting
information to the logic operation circuit and the data processing section, where each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the data processing section based on the
first and second setting information read out sequentially from the storage section and carries out predetermined operations of a sequential circuit.
A fourth aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic
circuits; a connecting section that connects one unit logic circuit and another unit logic circuit neighboring the one unit logic circuit in physical arrangement in the plurality of unit logic circuits; and an output signal control section that supplies
output signals of the plurality of unit logic circuits to outside, each of the plurality of unit logic circuits comprising: a logic operation section that performs predetermined logic operation on one of the input signal and data from the another
neighboring unit logic circuit, and generates data, the logic operation section having functions that are changeable based on the first setting information; a data processing section that generates data by carrying out arrangement, duplication and
inversion processing on the data from the logic operation section based on the second setting information, and provides the data to the output signal control section as the output signals; a storage section that stores the first and second setting
information; and a memory control section that receives stopping setting information and controls stopping between the logic operation section and the data processing section based on the stopping setting information, where each of the plurality of unit
logic circuits sequentially changes some or all of the functions of the logic operation section and the data processing section based on the first and second setting information read out sequentially from the storage section and carries out predetermined
operations of a sequential circuit.
A fifth aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; an input signal control section that supplies input signals received from outside to the plurality of unit logic
circuits; and an output signal control section that supplies output signals of the plurality of unit logic circuits to outside, the input signal control section comprising: a section that supplies a control signal to the plurality of unit logic circuits
based on the input signal; and a section that supplies index information to the plurality of unit logic circuits at the time of receiving an index designation signal, each of the plurality of unit logic circuits comprising: a logic operation section that
performs predetermined logic operation on the input signal and generates data, the logic operation section having functions that are changeable based on any of the first setting information; a data processing section that generates data by carrying out
arrangement, duplication and inversion processing on the data from the logic operation section based on any of the second setting information and provides the data to the output signal control section as the output signals; a storage section storing the
first and second setting information; and a memory control section that stores a lead position address indicating the lead position of storage position addresses of the first and second setting information at the storage section based on one of the
control signal and index information at the time of receiving one of the control signal and the index information, where each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the
data processing section based on one of the first and second setting information read out sequentially from the storage section based on the lead position address stored in the memory control section and carries out predetermined operations of a
sequential circuit.
A sixth aspect of the present invention adopts a configuration having a plurality of unit logic circuits connected in parallel; a connecting section that connects one unit logic circuit and another unit logic circuit neighboring the one unit
logic circuit in physical arrangement in the plurality of unit logic circuits; an input signal control section that supplies input signals received from outside to the plurality of unit logic circuits; and an output signal control section that supplies
output signals of the plurality of unit logic circuits to outside, the input signal control section comprising: a section that supplies a control signal to the plurality of unit logic circuits based on the input signal; and a section that supplies index
information to the plurality of unit logic circuits at the time of receiving an index designation signal, and each of the plurality of unit logic circuits comprising: a logic operation section performs predetermined logic operation on the input signal or
data from the another neighboring unit logic circuit and generates data, the logic operation section having functions that are changeable based on any of the first setting information; a data processing section that generates data by carrying out
arrangement, duplication and inversion processing on the data from the logic operation section based on any of the second setting information and provides the data to the output signal control section as the output signals; a storage section that stores
the first and second setting information; and a memory control section that stores a lead position address indicating the lead position of storage position addresses of the first and second setting information at the storage section based on one of the
control signal and index information at the time of receiving one of the control signal and the index information, where each of the plurality of unit logic circuits sequentially changes some or all of the functions of the logic operation section and the
data processing section based on one of the first and second setting information read out sequentially from the storage section based on the lead position address stored in the memory control section and carries out predetermined operations of a
sequential circuit.
Advantageous Effect of the Invention
According to the present invention, it is possible to provide a low-cost programmable logic circuit having a high implementation area efficiency capable of bringing about high-speed, large scale logic circuits.
BRIEF DESCRIPTION OF
DRAWINGS
FIG. 1 is a block diagram showing a configuration of a programmable logic circuit of a first embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a processor element of a programmable logic circuit of the first embodiment of the present invention.
FIG. 3 is a block diagram showing a configuration of a logic element of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 4 is a view illustrating setting information and a memory apparatus configuration of a programmable logic circuit of the first embodiment of the present invention.
FIG. 5 is a block diagram illustrating functions of a logic cell at a logic element of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 6 is a view illustrating the operation of a logic cell at a logic element of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 7 is a block diagram showing a configuration of a cross-connecting switch of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 8 is a view illustrating the operation of a cross-connecting switch of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 9 is a timing diagram illustrating the operation at the time of initialization of a programmable logic circuit of the first embodiment of the present invention.
FIG. 10 is a timing diagram illustrating the operation at the time of start-up and the time of data processing of a programmable logic circuit of the first embodiment of the present invention.
FIG. 11 is a view illustrating the operation of a logic cell at a logic element of a processor element for a programmable logic circuit of the first embodiment of the present invention.
FIG. 12 is a view of the operations of a processor element expanded in a time axis direction in the case where a four-bit comparator circuit is mapped using a programmable logic circuit of the first embodiment of the present invention.
FIG. 13 is a circuit diagram showing a four-bit comparator circuit formed by a processor element in the case where a four-bit comparator circuit is mapped using a programmable logic circuit of the first embodiment of the present invention.
FIG. 14 is a view illustrating setting information for use in jumping used at a programmable logic circuit of the first embodiment of the present invention.
FIG. 15 is a block diagram showing a processing circuit mounted with a programmable logic circuit.
FIG. 16 is a view illustrating a processing cycle in the case where jump control is not used for the programmable logic circuit of the first embodiment of the present invention.
FIG. 17 is a view illustrating a processing cycle in the case where jump control is used for the programmable logic circuit of the first embodiment of the present invention.
FIG. 18 is a block diagram showing a processing circuit mounted with a programmable logic circuit.
FIG. 19 is a view illustrating a storage state for setting information within a memory apparatus in the case where jump control is not used for a programmable logic circuit of a second embodiment of the present invention.
FIG. 20 is a view illustrating a storage state for setting information within a memory apparatus in the case where jump control is used for a programmable logic circuit of the second embodiment of the present invention.
FIG. 21 is a view illustrating stopping setting information used in stopping control at a programmable logic circuit of a third embodiment of the present invention.
FIG. 22 is a block diagram showing a configuration of a programmable logic circuit of a fourth embodiment of the present invention.
FIG. 23 is a block diagram showing a configuration of a processor element of a programmable logic circuit of the fourth embodiment of the present invention.
FIG. 24 is a block diagram showing a configuration of a logic element of a processor element for a programmable logic circuit of the fourth embodiment of the present invention.
FIG. 25 is a view illustrating a configuration of a memory apparatus of a programmable logic circuit of the fourth embodiment of the present invention.
BEST MODE FOR CARRYING OUT THE INVENTION
Embodiments of the present invention will be described below in detail with reference to the accompanying drawings.
First Embodiment
FIG. 1 is a block diagram showing a configuration of a programmable logic circuit of a first embodiment of the present invention.
As shown in FIG. 1, programmable logic circuit 100 of the first embodiment of the present invention provides a plurality of processor elements 101, a plurality of memory apparatus 102, input/output control section 103, control bus 104, input bus
105, and output bus 106. Clock generating circuit 107 and user circuit 108 are connected to programmable logic circuit 100.
The plurality of processor elements 101 and the plurality of memory apparatus 102 are connected so as to be individually paired together. Processor element 101 and memory apparatus 102 connected so as to be individually paired together
constitute a unit logic circuit. A plurality of unit logic circuits are connected together in parallel.
Each of the plurality of processor elements 101 are arranged in a single row-shape in one dimension, and connected to two other processor elements 101 that are neighboring in physical arrangement by connecting wire 101a. Namely, the plurality of
unit logic circuits are arranged in a single row-shape in one dimension, and one unit logic circuit and another unit logic circuit neighboring the one logic circuit in physical arrangement in the plurality of unit logic circuits are connected by
connecting wire 101a.
Processor element 101 then exchanges data with two neighboring other processor elements 101 using the connecting wire.
Input/output control section 103 is a circuit for interfacing with outside and is connected to user circuit 108. Control bus 104 connects input/output control section 103 and processor elements 101. Control bus 104 receives control signals for,
for example, initialization and activation from input/output control section 103 and transfers these signals to each processor element 101. Input bus 105 connects input/output control section 103 and processor elements 101. Input bus 105 receives data
used in logic operations from input/output control section 103 and transfers this data to each processor element 101.
Output bus 106 connects input/output control section 103 and processor elements 101. Output bus 106 receives data for operation results from processor elements 101 and transfers this data to input/output control section 103. Clock generating
circuit 107 generates internal clock signal 109 and user clock signal 110. User clock signal 110 is used in user circuit 108 and input/output control section 103. Internal clock signal 109 is a frequency that is a multiple of the user clock signal 110
and is used within programmable logic circuit 100.
Next, a description is given with reference to a drawing with regards to functions of this programmable logic circuit 100.
In FIG. 1, content of logic operation carried out by programmable logic circuit 100 is held as setting information in memory apparatus 102. Each processor element 101 reads out setting information from memory apparatus 102 sequentially and
carries out corresponding logic operation. Programmable logic circuit 100 receives data used as activation signals and for logic operations in synchronization with user clock signal 110 from user circuit 108. After a subsequent fixed period of time
elapses, programmable logic circuit 100 provides the data after logical operation to user circuit 108 in synchronization with user clock signal 110.
Next, a description is given with reference to the drawings with regards to functions of the internal clock of programmable logic circuit 100.
In FIG. 1, setting information of neighboring processor elements 101 is stored in each memory apparatus 102. When the control signal and memory address are input from processor elements 101, memory apparatus 102 provides setting information
designated by the address to the processor elements 101. Processor element 101 then determines the content of processing to be executed based on this setting information.
When an initialization signal is input by control bus 104, processor element 101 reads out a specific address of memory apparatus 102, and extracts and holds a storage position address of setting information from the input read-out data. This
storage position address is an address indicating the lead position of the setting information.
Further, when an activation signal is input by control bus 104, processor elements 101 reads out the setting information sequentially from the storage position address held in memory apparatus 102. Moreover, processor element 101 receives data
for logic processing use from input bus 105 and neighboring processor elements 101, and after carrying out logic processing on data based on setting information, performs arrangement, duplication, and inversion processing on the data and holds the data
after processing. Further, processor elements 101 output the data held after processing to output bus 106 and neighboring processor elements 101.
In this way, the plurality of processor elements 101 hand over the data. Input/output control section 103 receives the activation signal synchronized with user clock signal 110 and data for logic processing use from user circuit 108, and
provides this data to input bus 105 in synchronization with internal clock signal 109. Further, input/output control section 103 receives the initialization signal synchronized with user clock signal 110 from user circuit 108 and outputs this data to
input bus 105 in synchronization with internal clock signal 109. Further, input/output control section 103 receives data after logic processing in synchronization with internal clock signal 109 from output bus 106 and outputs this data to user circuit
108 in synchronization with user clock signal 110. In this way, input/output control section 103 hands over a control signal and data for logic processing use and for processing results to user circuit 108.
Next, a description is given with reference to a drawing of a configuration of the processor elements 101 within programmable logic circuit 100.
FIG. 2 shows a configuration of processor element 101. As shown in FIG. 2, processor element 101 provides a logic element 200 and memory control section 201. Processor element 101 is connected to memory apparatus 102, control bus 104, input bus
105 and output bus 106. Memory control section 201 is connected to memory apparatus 102, logic element 200, control bus 104, and data bus 111. Logic element 200 is connected to logic element 200 and memory control section 201, input bus 105, output bus
106 and data bus 111 of neighboring processor element 101.
Next, a description is given with reference to a drawing of the functions of processor elements 101. In FIG. 2, upon receiving the initialization signal from control bus 104, memory control section 201 carries out processing to extract and hold
the storage position address described previously. When an activation signal is input from control bus 104, memory control section 201 reads out setting information sequentially from the storage position address held in memory apparatus 102 and
transfers this setting information to logic element 200.
Logic element 200 receives data from input bus 105 and neighboring processor elements 101, and after carrying out logic processing on data based on setting information transferred from memory control section 201, performs arrangement,
duplication, and inversion processing on the data and holds the data after processing. Moreover, logic element 200 outputs data after processing to output bus 106 and neighboring processor elements 101 based on setting information transferred from
memory control section 201.
Next, a description is given with reference to the drawings of a structure for logic elements 200 within processor elements 101 and a configuration of setting information.
A configuration of logic element 200 is shown in FIG. 3.
Configurations of setting information and memory apparatus 102 are shown in FIG. 4.
In FIG. 3, logic element 200 has a logic cell 300, cross-connecting switch 301 and flip-flop 302. Logic element 200 is connected to memory control section 201, input bus 105, and output bus 106. Logic cell 300 is connected to memory control
section 201, flip-flop 302, and cross-connecting switch 301. Cross-connecting switch 301 is connected to memory control section 201, logic cell 300, flip-flop 302, input bus 105 and logic cell 300 within neighboring logic element 200. Flip-flop 302 is
connected to logic cell 300, cross-connecting switch 301, output bus 106 and memory control section 201.
Logic cell 300 constitutes a logic operation circuit. Further, cross-connecting switch 301 constitutes data processing apparatus. Moreover, cross-connecting switch 301 and flip-flop 302 constitute data processing apparatus.
FIG. 4 shows a configuration of a memory apparatus. In FIG. 4, storage address information of setting information is stored at a leading portion within memory apparatus 102. Setting information is stored in specific regions other than the
leading portion within memory apparatus 102.
In FIG. 4, bits 25 to 26 are setting information of logic cell 300, and bits 0 to 24 are setting information of cross-connecting switch 301. Bits 0 to 24 are in five units, each unit having a configuration including four bits of connection
information and one bit of inversion control information corresponding to the five outputs of cross-connecting switch 301.
Next, a description is given with reference to a drawing of the functions of logic element 200. In FIG. 3, logic cell 300 carries out specific logic processing designated by the setting information transferred from memory control section 201 on
data input from flip-flop 302, and outputs data after processing to cross-connecting switch 301 and logic element 200 of neighboring processor element 101. Cross-connecting switch 301 then carries out arrangement, duplication, and inversion processing
on specific data designated by setting information transferred by memory control section 201 on data input from logic cell 300, input bus 105, and logic element 200 of neighboring processor element 101, and outputs data after processing to flip-flop 302. Flip-flop 302 holds data input by cross-connecting switch 301 at the timing of internal clock signal 109. Flip-flop 302 outputs the held data to logic cell 300 and output bus 106.
Next, a description is given of the functions and operations of logic cell 300 using specific examples.
In FIG. 5, two bits of setting information and two bits of input data are input to logic cell 300, and logic cell 300 outputs one bit of output data. FIG. 6 shows an example of the functions and operations of logic cell 300 in this case. In
FIG. 6, logic cell 300 outputs a logical or (OR) for input data when the setting information is "00." Logic cell 300 outputs a logical and (AND) for input data when the setting information is "01." Logic cell 300 outputs an exclusive or (XOR) for input
data when the setting information is "10." Logic cell 300 outputs an inverted or (NOR) data for input data when the setting information is "11." In this way, logic cell 300 is a circuit capable of implementing a plurality of different logic functions
based on the setting information.
Next, a description is given of functions of cross-connecting switch 301 using a specific example.
FIG. 7 shows examples of internal blocks and the functions of cross-connecting switch 301. In FIG. 7, four bits of setting information, three bits of input data A, B, C, and a low level are input to interconnecting section 700 within
cross-connecting switch 301, and two bits of output data OUT1, OUT2 are output from interconnecting section 700. Further, each item of output data of interconnecting section 700 is subjected to an exclusive or operation (XOR) together with one bit of
setting information, and output to outside. This XOR inverts output data from cross-connecting switch 301 in bit units based on the setting information. In this case, as the number of outputs is two, two bits of setting information are used at the XOR
section, so that the setting information used at overall cross-connecting switch 301 is six bits in total.
FIG. 8 shows an example of the functions of interconnecting section 700 in this case. In FIG. 8, interconnecting section 700 selects data where two bits of the MSB of the setting information are output to OUT1, and selects data where two bits of
the LSB are output to OUT2. Interconnecting section 700 outputs input data A when setting information is "00," and outputs input data B when setting information is "01." Interconnecting section 700 outputs input data C when setting information is "10,"
and outputs a low level when setting information is "11."
In this way, cross-connecting switch 301 is a circuit capable of carrying out arrangement, duplication and inversion processing on a plurality of items of input data based on setting information, and outputting fixed values set in the setting
information.
Next, a description is given with reference to the drawings of the operation of programmable logic circuit 100. An example of the timing of operations of programmable logic circuit 100 is shown in FIG. 9 and FIG. 10. An initialization operation
from outside is shown in FIG. 9. Activation from outside and an actual logic processing operation are shown in FIG. 10.
First, in period T1, input/output control section 103 receives initialization signal 900 synchronized with user clock signal 110 from user circuit 108 and holds this as internal initialization signal 901. In period T2, input/output control
section 103 synchronizes the held internal initialization signal 901 with internal clock signal 109 and outputs this to control bus 104. Internal initialization signal 902 of control bus 104 is input to memory control sections 201 of all of the
processor elements 101.
In period T3, memory control sections 201 of processor elements 101 output read-out signal 903 for a specific address 904 of memory apparatus 102 taking the input internal initialization signal 902 as a trigger. After this, memory control
section 201 holds input read-out data 905 once as hold data 906, and extracts and holds a storage position address 907 of setting information from this hold data 906. Storage position addresses 907 of the setting information are then stored in each
processor element 101 as a result of the operations of T1 to T3, and a state where processing can be executed at any time is entered.
In period T4, programmable logic circuit 100 is then in a standby state. In period T5, input/output control section 103 receives activation signal 100 synchronized with user clock signal 110 and data 1001 for processing use from user circuit 108
and holds this as internal activation signal 1002 and processing data 1003. In period T6, input/output control section 103 outputs the held internal activation signal 1002 in synchronization with internal clock signal 109 and outputs this to control bus
104. Further, input/output control section 103 synchronizes the held internal processing data 1003 with internal clock signal 109 and outputs the result data to input bus 105.
Internal activation signal 1004 of control bus 104 is input to memory control sections 201 of all of processor elements 101. Logic processing data 1005 of input bus 105 is input to logic elements 200 of all of processor elements 101.
In period T7, memory control section 201 of each processor element 101 outputs read-out signal 903 for storage position address 907 held in period T3 of memory apparatus 102 taking input internal activation signal 1004 as a trigger. In period
TB, each memory control section 201 holds read-out data 905 output from memory apparatus 102 as hold data 906. At the same time, memory control section 201 outputs read-out signal 603 to the next address of memory apparatus 102.
In period T9, each memory control section 201 outputs hold data 906 to logic element 200. Further, each memory control section 201 holds read-out data 905 output from memory apparatus 102. At the same time, each memory control section 201
outputs a read-out signal to the next address of memory apparatus 102. Each logic element 200 carries out arrangement, duplication and inversion processing for logic processing data 1005 from input bus 105 based on input hold data (setting information)
906 and holds the data after processing in internal flip-flop 302.
In period T10, each memory control section 201 outputs hold data 906 to logic element 200. Further, each memory control section 201 internally holds read-out data 905 output from memory apparatus 102. At the same time, each memory control
section 201 outputs read-out signal to the next address of memory apparatus 102.
Each logic element 200 then carries out logic processing on logic processing data 1005 from flip-flop 302, input bus 105 and neighboring processor element 101 based on input hold data (setting information) 906 and holds the data after processing
in flip-flop 302. In the following, single logic processing is implemented by repeating the processing of period T10.
In all of the periods, data of flip-flop 302 is output to output bus 106, and input/output control section 103 always holds this data in synchronization with internal clock signal 109. Input/output control section 103 outputs the hold data in
synchronization with user clock signal 110 and outputs this data to user circuit 108. User circuit 108 refers to a flag of the input data, and holds the output data (data after logic processing) or the data after a predetermined period.
Next, a description is given with reference to the drawings of an example of mapping specific logic processing functions at programmable logic circuit 100. For ease of description, only the operations of logic element 200 at the periods T9 and
T10 shown in the operation example will be described.
FIG. 11 shows a function of logic cell 300 with two inputs and two outputs. FIG. 12 shows an example of the case where a four-bit comparator circuit is mapped with programmable logic circuit 100 having logic cells 300. In FIG. 12, four
processor elements 101 that are physically different are shown in the longitudinal direction, and what kind of processing is carried out by the same processor elements 101 in each cycle is shown in the lateral direction.
FIG. 13 shows a four-bit comparator circuit. As shown in FIG. 13, eight bits of data of IN0 to 7 are taken as input data, and comparison results for IN0 to 3 and IN4 to 7 are output as one bit of data.
In FIG. 12, input and output of logic cell (LC) 300 is such that the upper side is the LSB and the lower side is the MSB. Further, data described at the lower part of logic cell (LC) 300 is setting information of logic cell (LC) 300. The
plurality of logic cells (LC) 300 operate as shown in FIG. 13. First, in cycle 1 and 2, the plurality of logic cells (LC) 300 arrange the input data in bit units. In cycle 3, the plurality of logic cells (LC) 300 carry out XNOR processing on each bit.
In cycle 4, the plurality of logic cells (LC) 300 carry out AND processing on the results of cycle 3. In cycle 5, the plurality of logic cells (LC) 300 carry out AND processing on the results of cycle 4. In cycle 6, the plurality of logic cells (LC)
300 output comparison results. As a result, an output is determined in six cycles of internal clock signal 109. When the number of clocks of internal clock signal 109 is six times the number of clocks of user clock signal 110, from user circuit 108,
comparison processing seems to be completed in one clock.
Next, a detailed description is given with reference to a drawing of principally the operations of memory control section 201 of programmable logic circuit 100 of the first embodiment of the present invention.
As shown in FIG. 3, memory control section 201 is connected to memory apparatus 102, control bus 104, and data bus 111. Further, input terminal of memory control section 201 is connected to output terminal of flip-flop 302 of logic element 200.
Moreover, output terminal of memory control section 201 is connected to logic cell 300 and cross-connecting switch 301 of logic element 200.
Memory control section 201 exchanges information with memory apparatus 102 based on a control signal from control bus 104 and receives data bus data 1111 from data bus 111. Further, memory control section 201 receives flip-flop data 3021 from
flip-flop 302.
Next, a detailed description is given of jump control by programmable logic circuit 100.
FIG. 14 is a view illustrating a configuration of jump setting information used in jump control by programmable logic circuit 100. Jump setting information 1400 has code 1401 indicating a jump, jump determination data selection code (REF) 1402,
jump destination address (JMPB) 1403 and jump destination address (JMPA) 1404.
Code 2101 indicating a jump is comprised of bits 24 to 21, indicating a jump when "1111", and indicating normal processing other than a jump when not "1111." Jump determination data selection code 1402 is comprised of bits 19 to 16, and is
information for selecting data used in a jump determination. In this example, jump determination data selection code 1402 can be used as information for selecting one specific bit from data bus data 1111 and flip-flop data 3021. Jump destination
address 1403 is comprised of bits 15 to 8, and indicates the jump destination address when the determination bit=1. Jump destination address 1404 is comprised of bits 7 to 0, and indicates a jump destination address in the case of the determination
bit=0.
In FIG. 3, in the series of read-out operations from memory apparatus 102, memory control section 201 refers to bits 24 to 21 of the read-out data. When the data value is other than "1111," memory control section 201 determines that the read-out
data is normal setting information, transfers the data as is to logic element 200, and continues normal processing. Further, when bits 24 to 21 are "1111," memory control section 201 determines that the read-out data is jump control information,
transfers dummy setting information of data of, for example, all "0" for stopping operation temporarily to logic element 200, and then refers to the REF bits in FIG. 14, namely, bits 19 to 16.
Next, memory control section 201 selects one specific bit from data bus data 1111 and flip-flop data 3021 in accordance with the REF bits, and when the selected bit is "1," the address designated by JMPB to the read-out address output to memory
apparatus 102 is set.
When the selected bit is "0," memory control section 201 sets the address designated by JMPA to the read-out address output to memory apparatus 102. Thereafter, memory control section 201 reads out setting information from memory apparatus 102
sequentially from the set address, and transfers this information to logic element 200.
Next, a detailed description is given with reference to FIGS. 1 to 3 and FIGS. 15 to 17 of processing performed by jump control of programmable logic circuit 100.
FIG. 15 is a block diagram showing a processing circuit mounted with a programmable logic circuit. In FIG. 15, processing circuit 1500 operates such that selector 1501 outputs a value of one of the processing results of circuit A and circuit B
to outside in accordance with the processing results of circuit C. For simplicity, each circuit A, B and C can be implemented using a single processor element. Further, the number of processor elements mounted on processing circuit (LSI) 1500 is taken
to be three.
First, a processing cycle in the case where jump control of the programmable logic circuit is not used is shown in FIG. 16. FIG. 16 shows the processing latencies of the circuits with the progress of the clock cycle from left to right. For
example, the processing latency of circuit A is five cycles. The processing latency of circuit B and circuit C is five cycles and six cycles respectively. Sequentially to absorb the differences between these latencies, only data holding is carried out
during the cycles up to the completion of processing for circuits A, B and C. In cycle 7, one processor element receives the results of circuit A and B, executes the processing of selector 1501 in FIG. 15, and outputs the processing result data of
processing circuit 1500 to outside.
As shown in FIG. 16, as a result, seven cycles of processing time and three processor elements are necessary. This means when processing where one processor element uses one cycle is taken to be a unit of processor element time, then
3.times.7=21 units of processor element time are used.
On the other hand, a processing cycle in the case where jump control of the programmable logic circuit 100 is used is shown in FIG. 17. In the example shown in FIG. 17, only processing for circuit C is executed in the period up to cycle 6 in
FIG. 16, and in cycle 7, jump determination is executed using the result data of circuit C. Memory control section 201 outputs an address corresponding to the processing of circuit B to memory apparatus 100 as the jump determination result and circuit B
is executed from the next cycle. As a result, the overall processing time increases to 14 cycles, but the number of processor elements required can be reduced to one. This means that overall processing can be completed using 1.times.14=14 units of
processor element time.
In this way, in the first embodiment of the present invention, it is possible to reduce processing portions that are effectively deemed unnecessary for processing executed simultaneously in parallel by implementing jump control. In particular,
by using the jump control in processing where the time required until output is long, it is possible to allocate other processing to processor elements 101 that are in an empty state, and overall processing efficiency can therefore be increased.
Further, in the first embodiment of the present invention, it is possible to effectively increase overall processing performance in the case where the number of processor elements is not sufficient for the circuit on which mounting is intended.
Second Embodiment
The following is a detailed description with reference to a drawing of a second embodiment of the present invention. The configuration of the programmable logic circuit of the second embodiment of the present invention is the same as the
programmable logic circuit 100 of the first embodiment of the present invention.
The programmable logic circuit of the second embodiment of the present invention improves memory usage efficiency using jump control processing.
FIG. 18 is a block diagram showing a processing circuit mounted with a programmable logic circuit. In FIG. 18, processing circuit 1800 is a circuit carrying out 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 are taken to carry out the same processing with respect to the input.
Further, FIG. 19 is a view illustrating a storage state for setting information within memory apparatus 102 in the case where jump control of programmable logic circuit 100 is not used. In FIG. 19, circuit A uses a 40-word memory region, and
circuits B, C and D use 20-word memory regions, respectively.
Processing circuit 1800 in FIG. 18 executes sequentially from address 10 to address 150 of memory apparatus 102, and uses a region of 140 words in total.
On the other hand, FIG. 20 is a view illustrating a storage state for setting information within memory apparatus 102 in the case where jump control of programmable logic circuit 100 is used. In FIG. 20, jump control information is inserted at a
lead address of circuit B or circuit D after the processing of circuit A. Further, jump control information for jumping to a lead address of circuit A or circuit D is inserted after the processing of circuit C. In this example, the processing order
starts with performing reading out from address 10, and after processing of circuit A, a jump to address 51 is made, and then processing of circuit B is performed. After this, processing of circuit C is carried out, and after completion of this
processing, a jump is made to address 10, and the processing of circuit A is again performed.
After completion of the processing of circuit A, a jump is made to address 92, and processing of circuit D is carried out. This means that effectively a region of one portion of circuit A is eliminated. A method of jump may be a method where a
flag bit is generated at the time of completion of processing for circuit C, and this flag bit is then employed.
In the second embodiment of the present invention, it is possible to eliminate memory regions of a circuit used a plurality of times by implementing jump control, and the efficiency of function mounting of the circuit as a whole is increased.
Further, in the second embodiment of the present invention, in processing of monitoring input data from outside or processing counting up to a specific value, a circuit where the same processing is repeatedly executed a large number of times--for
example, a circuit carrying out specifi
|