WO2004088500A1 - プログラマブル論理デバイス - Google Patents

プログラマブル論理デバイス Download PDF

Info

Publication number
WO2004088500A1
WO2004088500A1 PCT/JP2004/004752 JP2004004752W WO2004088500A1 WO 2004088500 A1 WO2004088500 A1 WO 2004088500A1 JP 2004004752 W JP2004004752 W JP 2004004752W WO 2004088500 A1 WO2004088500 A1 WO 2004088500A1
Authority
WO
WIPO (PCT)
Prior art keywords
output
input
memory
logic function
line
Prior art date
Application number
PCT/JP2004/004752
Other languages
English (en)
French (fr)
Inventor
Tsutomu Sasao
Yukihiro Iguchi
Original Assignee
Kitakyushu Foundation For The Advancement Of Industry Science And Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kitakyushu Foundation For The Advancement Of Industry Science And Technology filed Critical Kitakyushu Foundation For The Advancement Of Industry Science And Technology
Priority to JP2005504294A priority Critical patent/JP4246200B2/ja
Priority to CA002521167A priority patent/CA2521167A1/en
Priority to US10/551,391 priority patent/US7486109B2/en
Publication of WO2004088500A1 publication Critical patent/WO2004088500A1/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
    • H03K19/17748Structural details of configuration resources
    • H03K19/1776Structural details of configuration resources for memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • 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/1778Structural details for adapting physical parameters
    • H03K19/17784Structural details for adapting physical parameters for supply voltage

Definitions

  • the present invention relates to a programmable logic device, and more particularly, to a look-up table in which a target logic function is decomposed into a plurality of ordered decomposition functions, and the decomposition functions are expressed as a decomposition table.
  • ⁇ Lookup table cascade (hereinafter referred to as “LUT cascade”). Related to programmable logic devices. Background art
  • FPGA field programmable gate array
  • An FPGA is a programmer that can change the contents of a plurality of logic cells (Configurable Logic Blocks; hereinafter referred to as “CLBs”) arranged in a matrix and the wiring connections between the logic cells by rewriting the memory. It is a logical device. FPGAs perform calculations in hardware, unlike Micro Processing Units (MPUs), which perform calculations in software according to programs. Therefore, it has the feature that the operation execution speed of the logical function is high.
  • MPUs Micro Processing Units
  • FPGA changes the routing of physical wiring between each CLB by a program. Therefore, it is necessary to design the placement and routing in order to minimize the wiring delay, and the design takes a long time. Also, depending on how to route the wiring between each CLB, The wiring delay time changes. Therefore, it is difficult to predict the operation time of the logic circuit at the time of design.
  • the LUT cascade is a series of LUTs connected in series, and can be expressed in a form in which LUTs of a plurality of decomposition functions obtained by functional decomposition of a logical function (objective logical function) for performing arithmetic processing are connected in series.
  • the FPGA differs from a logic circuit in that it is realized as a two-dimensional CLB network, while the LUT cascade is different in that the target logic function is realized by a one-dimensionally connected LUT.
  • Each 1 ⁇ 8 used in 0 implements a basic logic gate.
  • the LUT cascade it is generally necessary to connect LUTs expressing complex logical functions of multiple inputs and multiple outputs in series (one-dimensionally) to realize complex logical circuits.
  • the output and input of each LUT are generally connected by multiple wires. Since a two-dimensional wiring network is not required, the wiring area is generally small, and most of the chip area is the memory area for storing the LUT. Also, the chip area for wiring and the delay time of the wiring part are smaller than those of FPGA.
  • Fig. 52 is a diagram showing the principle of the LUT forcesuit. Here, for simplicity, we will explain the LUT cascade without intermediate output.
  • (,..., ⁇ ⁇ — represents an input variable.
  • a set of input variables is represented by ⁇ X ⁇
  • each decomposition function fi is represented by Y I + 1 .
  • n. k (k is the number of input variables of the decomposition function f)
  • n s — 1 k-u s — t (0 ⁇ t ⁇ k-2) (Citation [2], [3]). Therefore, the objective logic function f is decomposed into S-1 k-input decomposition function (je ⁇ 0,-, s-2 ⁇ ) and 1 k-1 input decomposition function f s —.
  • each decomposition function f r (re ⁇ 0,-, ⁇ - ⁇ ) is represented by a decomposition table, and this is defined as a LUT (lookup table).
  • the decomposition chart of the objective logical function f r () is a 2 rl column 2 1 1 row table, each row and column has a binary code label, and its element is f r Is a table that is the corresponding truth value.
  • Each LUT (LUT r ) Can be implemented using a k-input ur + 1 output memory (hereinafter referred to as a “logic function memory.”) Such a logic function memory is cascaded as shown in FIG. By L A UT cascade is realized.
  • the calculation speed may be slower than the optimized FPGA.
  • the operation of each decomposition function is performed at high speed using a logical function memory. As a result, the computation speed can be increased as compared to programs running on the MPU.
  • the operation speed is uniquely determined by the number of LUT stages. Therefore, it is easy to accurately predict the operation time of the target logic function when designing a logic circuit.
  • wiring may be performed only between logic function memories adjacent to each other. Therefore, there is no need to consider the effects of wiring delays when designing the logic circuit. Therefore, the logic circuit design of the LUT cascade is significantly easier than that of the FPGA.
  • an object of the present invention is to flexibly change the number of input lines and the number of rails of input variables between the respective logic function memories according to the target logic function.
  • Another object of the present invention is to provide a programmable logic device that can be designed with the memory capacity of a logic function memory kept to a minimum.
  • a first configuration of the programmable logic device according to the present invention includes the following configuration.
  • a logic function memory arranged in a serial order for storing LUT (lookup table) of the logic function
  • connection memory for storing connection information
  • connection circuit capable of reconfiguring the connection relationship between the output line or the external input line of the logic function memory and the input line of the logic function memory at a subsequent stage.
  • the logic function memory of each stage stores the logic function represented by each LUT in order to represent the target logic function by the LUT cascade.
  • the “memory” refers to a device in which one data is stored corresponding to each address, and the data corresponding to the address is read by designating the end address. Therefore, the “memory” is not limited to a physically single memory element, but may be a combination of a plurality of memory elements.
  • Each connection circuit forms a connection relationship between either the output line or the external input line of the preceding logic function memory and each input line of the subsequent logic function memory according to the connection information output by the connection memory. Thereby, a LUT cascade can be realized.
  • the logic function in the logic function memory and the connection information in the connection memory are rewritten according to the LUT cascade that performs the arithmetic processing.
  • the number of output lines of the preceding logic function memory for connecting to the input lines of the subsequent logic function memory and the number of external input lines can be freely changed.
  • the programmable logic device is crucially different from the FPGA in that logic function memories are arranged in series (one-dimensionally).
  • logic function memories are arranged in series (one-dimensionally).
  • the connection relation of the input and output lines between CLBs does not have a one-to-one correspondence. Therefore, it is necessary to increase the degree of freedom of the connection circuit so that it can handle all kinds of connection relationships. As a result, the connection circuit becomes large-scale, and the ratio of the wiring area in the chip is extremely large.
  • connection circuit may selectively connect the output line and the external input line of one logic function memory to the input line of one logic function memory.
  • the connection circuit performs connection such that
  • the connection circuit basically has a function of selecting
  • connection circuit has an extremely simple configuration as compared to the connection circuit of the FPGA. Therefore, the wiring area occupied in the chip can be extremely small. Also, the connection is only between two logic function memories, and no placement and routing design is required. Therefore, it is not necessary to consider the influence of physical wiring delay in circuit design.
  • a second configuration of the programmable logic device includes the following configuration: (1) Logic function memory arranged in a ring for storing LUTs of logic functions;
  • connection memory for storing connection information
  • connection relationship between the output line or the external input line of the preceding logic function memory and the input line of the subsequent logic function memory is determined in accordance with the output of the connection memory.
  • a connection circuit that can be configured.
  • the logic function memories are arranged in a one-dimensional ring. Therefore, the connection circuit may selectively connect the output line and the external input line of one logic function memory and the input line of one logic function memory. Therefore, as in the case of the first configuration, the connection circuit is significantly simpler than the connection circuit of the FPGA, and the wiring area can be reduced. Also, since the connection is only between two logic function memories, no placement and routing design is required. Therefore, it is not necessary to consider the effect of physical wiring delay in the logic design.
  • the third configuration of the programmable logic device is the first configuration or the second configuration.
  • An external output line for outputting an operation result of a logical function to an external circuit; wherein the connection memory is provided between two of the logical function memories; It also stores connection information for selecting what is connected to the line;
  • connection circuit also connects between the output line of the logic function memory at the preceding stage and the external output line between the two logic function memories according to the output of the connection memory;
  • the output can be obtained from any of the logic function memories connected in series. Therefore, when the number of stages in the LUT cascade is small, by taking out the output in the middle of the logical function memory string as an output variable, the arithmetic processing can be terminated early and the arithmetic speed can be increased.
  • the operation result determined in the middle of the LUT cascade can be output in the middle without being input to the subsequent LUT.
  • the number of LUT inputs in the subsequent stage can be reduced.
  • the calculation processing speed can be increased.
  • the reduction in the number of inputs to the LUTs at the subsequent stage reduces the memory capacity required for the LUTs at the subsequent stage.
  • a fourth configuration of the programmable logic device in any one of the first to third configurations, further includes an area designation storage unit that stores an area designation variable that designates a memory area of the logic function memory;
  • connection circuit is provided between the two logic function memories according to the output of the area designation storage means.
  • the input variable from the output of the logic function memory and the external input line in the preceding stage is an area designation variable
  • the output from the memory area of the logic function memory of the preceding stage specified by the area designation variable and the input variable from the external input line are input to the memory area of the subsequent logic function memory specified by , So as to be input to the logic function memory at the subsequent stage,
  • the memory when the LUT is stored in each logic function memory, the memory is divided into a plurality of areas (eg, pages) and a plurality of LUTs are stored.
  • the area specification storage means stores the value of an area specification variable that specifies the memory area in which the LUT of each logical function is stored.
  • connection information is stored so that the output line of the area specification storage means for outputting the area specification variable corresponding to each logical function is connected to the input line of the subsequent logic function memory.
  • connection information is read from the connection memory from the area designation variable and the area designation storage means corresponding to the logic function, and the connection relationship of the connection circuit is switched.
  • the LUT of the memory area specified by the area specification variable of each logic function memory is read. This makes it possible to switch between the operations of a plurality of objective logic functions.
  • a fifth configuration of the programmable logic device in any one of the first to fourth configurations, is provided on an input side or an output side of the logic function memory, and includes a data strobe signal input from outside.
  • An intermediate variable register which takes in an input to the logic function memory or an output of the logic function memory and temporarily holds the same;
  • each logic function memory In synchronism with the data strobe signal, each logic function memory is operated by LUT one stage at a time. Therefore, if the data strobe signal is synchronized with the clock of the external circuit, the LUT operation of each logical function can be synchronized with the external circuit.
  • the degree of freedom regarding the number of inputs of logic functions that can be operated can be increased.
  • a clock pulse is used to construct a LUT cascade using one or more rounds of the logic function memory ring.
  • the function operation may be sequentially performed by changing the used area of the same logic function memory as needed. Therefore, it is possible to flexibly change the number of LUT cascade stages according to the number of target logic functions and the amount of memory. Therefore, the degree of freedom in design increases.
  • the number of LUT cascades can be increased by using clock pulses. Therefore, LUT of each stage can be reduced. Therefore, as the logic function memory of each stage, a memory having a relatively small memory capacity can be used. Therefore, the power consumption of each logic function memory can be kept low. Furthermore, according to the flow of operation, only some of the logic function memories perform data read operations. Only the memory that performs this operation consumes power mainly. Therefore, it can be operated with lower power consumption than MPU PFPGA. In addition, if the memory that does not perform the data reading operation is configured to be in the low power consumption state (sleep state), the power consumption can be further reduced.
  • a sixth configuration of the programmable logic device according to the present invention is the same as any one of the first to fifth configurations!
  • a bypass line connected in parallel with the intermediate variable register; and an output line of the intermediate variable register, which is provided on the output side of the intermediate variable register, or one of the bypass lines.
  • a bypass selection circuit that outputs a line signal;
  • each bypass selection circuit selects the output line of the intermediate variable register, it is possible to perform synchronous arithmetic processing using the data strobe signal. Also, if the bypass line is selected by each bypass selection circuit, the output power of the preceding logic function memory is sent directly to the subsequent logic function memory without being stopped by the intermediate variable register. Therefore, the operation of the target logic function by the LUT cascade can be executed asynchronously and at high speed.
  • a seventh configuration of the programmable logic device according to the present invention is the programmable logic device according to the fifth or sixth configuration, wherein the data strobe signal is counted, and a logic function memory identification number for executing an operation is identified. Means;
  • the “job” refers to an operation of generating data by performing an operation on an input variable using each LUT of the LUT cascade.
  • An eighth configuration of the programmable logic device according to the present invention is the programmable logic device according to any one of the fifth to seventh configurations, wherein the logic function memory for executing arithmetic processing is in a normal operation state, and the other logic function memories are Power supply control means for performing control for setting a low power consumption state; It is characterized by having.
  • the power supply control unit sets the logic function memory not used for the arithmetic processing to a low power consumption state (sleep state), and sets only the logic function memory used for the arithmetic processing to a normal operation state (wake-up state). And As a result, the power consumption of the programmable logic device can be reduced.
  • the ninth configuration of the programmable logic device according to the present invention is the programmable logic device according to any one of the first to eighth configurations, wherein a part of input lines of each of the logic function memories is connected to the external circuit without passing through the connection circuit. It is characterized by being directly connected to an input line.
  • At least one input variable is input to each logic function memory other than the first stage. Therefore, when a programmable logic device is manufactured for general purpose, input variables must be directly input to at least one of the inputs of each logic function memory other than the first stage without passing through a connection circuit. Constitute. Thereby, the number of input lines of the connection circuit can be reduced. Further, since the number of output wirings of the connection circuit and the connection memory can be reduced, it is possible to further reduce the size of the circuit.
  • a part of output lines of each of the logic function memories does not pass through the connection circuit. It is characterized in that it is directly connected to some input lines of the logic function memory in the subsequent stage. In each of the logic function memories other than the first stage, the output of the preceding logic function memory is input to a part of the input, and the input variables are input to the other inputs.
  • connection circuit includes a plurality of selector circuits
  • each of the selector circuits may be one of an output line of the logic function memory of the preceding stage and the external input line, or an output line of the logic function memory of the preceding stage. Selecting one of the external input line and the output line of the area designation storage means and connecting it to the input line of the logic function memory at the subsequent stage;
  • connection circuit outputs an output of the logic function memory in a preceding stage according to an output value of the connection memory.
  • a shifter circuit for shifting the connection order of the lines and connecting to the input line of the logic function memory at the subsequent stage is provided.
  • connection circuit in the first configuration, includes a plurality of multiplexers
  • the multiplexer selects one of the plurality of output lines and the plurality of external input lines of the logic function memory of the preceding stage according to the output value of the connection memory, and Connected to the input line of the logic function memory;
  • FIG. 1 is a block diagram showing an entire configuration of a programmable logic device according to Embodiment 1 of the present invention.
  • FIG. 2 is a circuit diagram showing a configuration of the input variable selection circuit of FIG.
  • FIG. 3 is a block diagram showing the configuration of the logic function memory of FIG.
  • FIG. 4 is a circuit block diagram around the connection circuit of FIG.
  • FIG. 5 is a block diagram showing the configuration of the connection memory of FIG.
  • FIG. 6 is a flowchart showing the operation of the programmable logic device according to the first embodiment.
  • FIG. 7 is a circuit block diagram in the case where a mouth switch is used in the connection circuit of FIG.
  • FIG. 8 is a circuit block diagram when a multiplexer array is used in the connection circuit of FIG.
  • FIG. 9 is a circuit block diagram when a selector array is used for the connection circuit of FIG.
  • FIG. 10 is a diagram showing a logical function of the 8-bit adder.
  • FIG. 11 is a diagram showing an 8-bit adder obtained by performing function decomposition into eight decomposition functions.
  • FIG. 12 is a diagram showing an 8-bit adder obtained by performing function decomposition into eight decomposition functions.
  • FIG. 13 is a diagram showing an 8-bit adder obtained by performing function decomposition into four decomposition functions.
  • Figure 14 shows the truth values of each decomposition function of the 8-bit adder, ⁇
  • FIG. 15 shows the truth values stored in the 0th page of the logic function memory 4-0 in Example 1.
  • FIG. 16 shows the truth values stored in the 0th page of the logic function memory 4-1 to 4-3 in Example 1.
  • FIG. 17 is a block diagram showing the overall configuration of a programmable logic device according to Embodiment 2 of the present invention.
  • FIG. 18 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 3 of the present invention. .
  • FIG. 19 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 4 of the present invention.
  • FIG. 20 is a block diagram showing the configuration of the output register and output decoder of FIG. .
  • FIG. 21 is a block diagram showing the configuration of the storage element of FIG.
  • FIG. 22 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 5 of the present invention.
  • FIG. 23 is a block diagram showing the configuration of the second output selection circuit of FIG.
  • FIG. 24 is a block diagram showing the entire configuration of a programmable logic device according to Embodiment 6 of the present invention.
  • FIG. 25 is a block diagram showing the entire configuration of a programmable logic device according to Embodiment 7 of the present invention.
  • FIG. 26 is a block diagram showing the configuration of the arithmetic and control unit 10 of FIG.
  • FIG. 27 is a block diagram showing the internal configuration of the output controller 64 of FIG.
  • FIG. 28 is a flowchart showing the operation of the programmable logic device according to the seventh embodiment.
  • FIG. 29 is a timing chart illustrating changes in respective signals during the operation of the programmable logic device according to the seventh embodiment.
  • FIG. 30 is a diagram showing a logical function f for adding 2 n-bit binary numbers A and B.
  • Fig. 31 is a diagram in which the logical function f for adding 2 n-bit binary numbers A and B is decomposed into 2 n decomposition functions ⁇ , g or ⁇ —.
  • Fig. 32 shows the logical function f for adding 2 XI-bit binary numbers B to 2 n decomposition functions ⁇ g. , g..., ⁇ —.
  • FIG. 33 is a diagram in which a logical function f for adding 2 n-bit binary numbers A and B is function-decomposed into n decomposition functions ⁇ f 0 , f 1; ..., F ⁇ .
  • FIG. 34 is a truth table of the decomposition function f i.
  • FIG. 35 is a truth table stored in the first page of the logic function memory 4-0.
  • FIG. 36 is a truth table stored in the 0th page of the logic function memories 4-0 to 4-3.
  • FIG. 37 is a block diagram showing an entire configuration of a programmable logic device according to Embodiment 8 of the present invention.
  • FIG. 38 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 9 of the present invention.
  • FIG. 39 is a diagram showing an overall configuration of a programmable logic device according to Example 10 of the present invention.
  • FIG. 40 is a block diagram illustrating a configuration of an arithmetic unit of the programmable logic device according to the tenth embodiment of the present invention.
  • FIG. 41 is a diagram showing the configuration of the connection circuit and the memory address register of FIG. 40.
  • FIG. 42 is a diagram showing a configuration of an output circuit of a programmable logic device according to Embodiment 10 of the present invention.
  • FIG. 43 is a diagram showing a flow of an operation processing operation of the programmable logic device according to the tenth embodiment.
  • FIG. 44 is a diagram illustrating a flow of an arithmetic processing operation of the programmable logic device according to the tenth embodiment.
  • FIG. 45 is a diagram illustrating a flow of an arithmetic processing operation of the programmable logic device according to the tenth embodiment.
  • FIG. 46 is a diagram for explaining the concept of memory packing.
  • FIG. 47 is a diagram illustrating a configuration of a programmable logic device according to Example 11 of the present invention.
  • FIG. 48 is a diagram showing an example in which a four-stage LUT cascade is realized by a programmable logic device using two logic circuit memories.
  • Fig. 49 is a diagram expressing the logical functions f and g in a LUT cascade.
  • Figure 50 is a diagram expressing the logical functions f and g in a LUT cascade.
  • FIG. 51 is a diagram illustrating an LUT ring obtained by combining the logical functions f and g.
  • FIG. 52 is a diagram showing the principle of the LUT cascade. BEST MODE FOR CARRYING OUT THE INVENTION
  • the symbol “ ⁇ ” represents an unordered set.
  • the number of variables in X is represented by I.
  • ⁇ xjeix ⁇ , ⁇ x ⁇ ⁇ x. ⁇ u ⁇ ' ⁇ ' ⁇ ⁇ ⁇ x s — Let it be represented by a composite logic function like Decomposing the objective logic function f (X) into a set of ordered functions (f., Fi,..., F s ) is called “function decomposition”. Each function ⁇ fi; ie ⁇ 0, 1, 2, ..., s-1 ⁇ obtained by functional decomposition of the objective logic function f (X) is referred to as a "decomposition function”.
  • Multi-output logic function refers to a logic function having a plurality of output variables.
  • FIG. 1 is a block diagram showing the entire configuration of a programmable logic device according to Embodiment 1 of the present invention.
  • the programmable logic device includes an input variable register 1, an input variable selection circuit 2—. ⁇ 2-3, human selection memory 3-0-3-3, ff Lunry function memory 4-. ⁇ 4-3, connection circuit 5-:! ⁇ 5—3, connection memory 6— :! 6 to 3 and operation J control [510].
  • the input variable X is input to the input variable register 1 from an external input line.
  • the logic function memories 4-0 to 4-3 store a truth table of a decomposition function 3 ⁇ 4; ie ⁇ 0, 1, 2, 3 ⁇ obtained by performing a function decomposition of the objective logic function f as an LUT.
  • the number of logic function memories 4-i ie ⁇ 0, 1, 2, 3 ⁇
  • the number memories 4-0 to 4-3 are arranged in series, and are arranged in series via connection circuits 5-1 to 5-3, respectively.
  • Each of the input selection memories 3-0 to 3-3 stores information (hereinafter referred to as "input selection information") relating to the selection of input variables of the input variable selection circuits 2-0 to 2-3 as an LUT. .
  • the input variable selection circuit 2-0 to 2-3 switches the selection of input variables based on the input selection signal output from each input selection memory 3-0 to 3-3.
  • connection circuit 5-i (i G ⁇ 1, 2, 3 ⁇ ) selects intermediate variables and input variables input from the logic function memory 4- (i-1) and the input variable selection circuit 2-i. Then, connect them to the logic function memory 4-i and the external output line 7-i at the subsequent stage in an appropriate order.
  • connection information stores information on the connection relationship of each connection circuit 5-i (hereinafter, referred to as “connection information”). The connection circuit 5-i reconstructs the connection relationship based on the connection information signal output from the connection memory 6-i.
  • FIG. 2 shows the input variable selection circuit 2-i (iE ⁇ 0, l, 2, 3 ⁇ in FIG. -It is a circuit diagram showing the configuration of 0 to 2-3 when collectively referred to as symbol 2.). In addition, this circuit diagram is simplified in order to explain the operation principle.
  • the input variable selection circuit 2-i (ie ⁇ 0, 1, 2, 3 ⁇ ) of the present embodiment is constituted by a shifter circuit as shown in FIG. FIG. 2 shows an example of an input variable selection circuit 2-i having 17 inputs and 8 outputs for convenience of explanation, but the number of inputs and outputs is not limited to this.
  • the output terminals out (00) to out (07) of the input variable selection circuit 2-0 are connected to the inputs of the logic function memory 4-0.
  • the output terminals out (00) -out (07) of the input variable selection circuit 2-i are connected to a part of the input terminal of the connection circuit 5-i.
  • the input variable selection circuit 2-i (iE ⁇ 0,1,2,3 ⁇ ) receives the 8-bit shift circuit 11-3, the 4-bit shift circuit 11-2, and the 2-bit shift circuit 11_ from the input side. 1, and 1-bit shift circuits 11-0 are connected in series. As a result, the input variable selection circuit 2-i (iE ⁇ 0,1,2,3 ⁇ )
  • One-bit control lines shf 0 to shf 3 are connected to the respective shift circuits 11-0 to 11-3.
  • the shift circuit 11-i does not shift the connection, and the control line shf j (je ⁇ 0, 1, 2, 3 ⁇ ).
  • the control lines shf0 to shf3 of the input variable selection circuit 2-i are connected to the output of the input selection memory 3-i.
  • the contents of the 4-bit memory read from the input selection memory 3-0 (that is, 'input selection information) are output as control signals to the control lines shf0 to shf3 as they are, and the input variable selection circuit 2-
  • the shift amount of the input variable at i (ie ⁇ 0, l, 2, 3 ⁇ ) is set.
  • the signal amplitude of the input variable X is attenuated by each of the pass transistors in the shifter circuits 11-0 to 11-3. Therefore, in practice, it is necessary to insert an amplifier (buffer) every several stages of the shifter circuit in order to compensate for the signal amplitude of the input variable X.
  • a shifter cannot be used for the selection circuit 2-i (ie ⁇ 0, l, 2, 3 ⁇ ).
  • a connection circuit similar to the crossbar switch shown in FIG. 7 or the multiplexer array (described later) shown in FIG. 8 may be used.
  • FIG. 3 shows the logic function memory 4-i (iE ⁇ 0, l, 2, 3) in Fig. 1.
  • symbols 4-0 to 4-3 are collectively referred to, they are written as symbol 4.
  • FIG. 2 is a block diagram showing the configuration of FIG.
  • Logic function memory 4 has a memory area FM consisting of p pages inside. ⁇ FM p .
  • the truth table of the decomposition function ie ⁇ 0,1,2,3 ⁇ , je ⁇ 0, • ⁇ •, ⁇ - ⁇
  • FMj the memory area in which the LUT ( j ) is stored.
  • the subscript " (j) " (jG ⁇ 0, '", p-1 ⁇ ) represents the i-th objective logic function f (j) .
  • the decomposition function ⁇ fi (j) ⁇ of the target logical function f (j) is stored in the first page of each logical function memory 4. Then, the page is switched according to the purpose of use, and It is configured so that a logical function can be selected.
  • the logic memory 4-i (ie ⁇ 0, 1,2,3 ⁇ ) includes an address decoder 16.
  • Ryo dress decoder 16 based on the page selection number p r inputted from the calculation control unit 10, to allow the memory 'access to the memory area.
  • FIG. 4 shows the connection circuit 5-i (iE ⁇ l, 2,3 ⁇ in FIG. 1; hereinafter, when the symbols 5-1 to 5-3 are collectively referred to as symbol 5). It is a circuit block diagram. Note that this circuit diagram is simplified to explain the principle of operation.
  • connection circuit 5 in the present embodiment has an input line ⁇ . Is constituted by a shifter circuit outputting ⁇ ⁇ input signals from 5 cyclically shifted by any bits number to the output line 0l ⁇ O 15.
  • Is constituted by a shifter circuit outputting ⁇ ⁇ input signals from 5 cyclically shifted by any bits number to the output line 0l ⁇ O 15.
  • FIG. 4 for convenience of explanation, a connection circuit of 16-bit input and 16-bit output is shown as an example, but the number of input / output bits is not particularly limited to this.
  • Connection circuit 5 is input line i. From the side of ⁇ it 5 , an 8-bit shifter circuit 20-3, a 4-bit shifter circuit 20-2, a 2-bit shifter circuit 20-1, and a 1-bit shifter circuit 20-0 are connected in series.
  • the on / off state of each shifter circuit 20_i (iE ⁇ 0, 1, 2, 3 ⁇ ) is output to the output of the connection memory 6 (collectively 6-1 to 6-3 is collectively referred to as code 6. The same applies hereinafter.). It is controlled by the connected control line Sj (je ⁇ 0,1,2,3 ⁇ ).
  • Input line i of connection circuit 5-r (re ⁇ 1,2, 3 ⁇ ). ⁇ I out of 15 , i. Through i 7 is connected to the output side of the previous logic function memory 4- (r- 1), i 8 ⁇ 5 is connected to the output side of the input variable selection circuit 2-r. Also, among the output lines o Q to o 15 of the connection circuit 5-r, o. Oo 7 are connected to the input side of the subsequent logic function memory 4-r, and o 8 oo 15 are external output lines 7-r. Input line i when there is no shift in the connection relationship of each shifter circuit 20-0-20-3. ⁇ : ⁇ 15, respectively output line. . It is connected to the ⁇ ⁇ 15. Thus, the intermediate variable Y r is the output of the preceding logic function memories 4- (r- 1) is input all the subsequent logic function memory 4-r.
  • Each ⁇ _ it is connected to the output line o 8 ⁇ O 15, input line ij ⁇ i 7 + j, respectively, the output line o. Connected to ⁇ 7 .
  • the 8-j-bit intermediate variable Y f is input to the subsequent logical function memory 4_r.
  • the subscript “ (j) ” (jE ⁇ 0, ⁇ ⁇ , -1 ⁇ ) indicates that it is connection information corresponding to the j-th objective logic function f (j) .
  • Ss Nc — i is a control line of each shifter circuit 20-0 to 20- (N c -1) of the connection circuit 5-i.
  • An address decoder 21 is provided inside each connection memory 6.
  • Ryo dress decoder 21, according to the page selection number p r inputted from the operation control unit 10 selects the r-th memory region CM r.
  • FIG. 6 is a flowchart showing the operation of the programmable logic device according to the first embodiment.
  • the decomposition function ⁇ ⁇ ,..., F s (2 ⁇ s ⁇ 4) obtained by functional decomposition of the objective logical function f (X) to be operated is stored in each of the logical function memories 4-0 to 4-3. Write it on page r.
  • r indicates a page number.
  • the r-th page of each input selection memory 3-0 to 3-3 and each connection memory 6- :! to 6-3 contains the above decomposition function ⁇ f.
  • each of the input selection memories 3-0 to 3-3 outputs the input selection information written in the r-th page to the control lines shf0 to shf3 of the input variable selection circuits 2-0 to 2_3 (S2).
  • the connection memories 6-1 to 6-3 store the connection information (), ⁇ , s written in the r-th page. ( R) ) is output to each control line of the connection circuit 5-1 to 5-3 (S3).
  • the input variable selection circuits 2-0 to 2-3 output a part of the input terminals in (00) to: in (16) according to the input selection information input to the control lines shf 0 to shf 3 and output terminals out ( 00) to out (07).
  • Connection circuit 5- To 5-3, the connection information input from the control line ( "), ⁇ ⁇ ⁇ , s. Fei)) to thus connects the input line i 8 through i 15 and output line O. ⁇ O 7 .
  • the arithmetic control unit 10 outputs the input variable X by using the input variable register 1 (S4).
  • the logic function memories 4-0 and the connection circuit 5-1 5 3 respectively, the input variables Xo, X had X 2, X 3 is output.
  • the logic function memory 4-0 stores the input variable X.
  • This intermediate variable is transmitted to the input of the logic function memory 4-1 via the connection circuit 5-1.
  • some of the intermediate variables are transmitted to the external output line 7-1.
  • the logic function memory 4-1 contains the intermediate variables transmitted from the logic function memory 4-0 and the input variables transmitted from the input variable register 1 via the input variable selection circuit 2-1 and the connection circuit 5-1.
  • the force variable is entered.
  • Logic function memories 4-1 based on the input variables and intermediate variables, and outputs the truth value of the decomposition function ( ⁇ ) as intermediate variables Y 2.
  • the intermediate variables Upsilon 2 is transmitted to the input of the logic function memories 4-2 through the connection circuit 5-2. In some cases, a portion of the intermediate variables Upsilon 2 is transmitted to the external output line 7-2.
  • the intermediate variable Upsilon 3 is transmitted to the input of the logic function memories 4-3 through the connection circuit 5-3. In some cases, a portion of the intermediate variables Upsilon 3 is transmitted to the external output line 7 _ 3.
  • the logic function memory 4-3 outputs the truth value f 3 (X 3 , Y 3 ) of the decomposition function f 3 as the output variable f based on the input variable ⁇ 3 and the intermediate variable ⁇ 3 .
  • This output variable f is transmitted to the external output line 7-4 (S5).
  • the above processing is performed by pipeline processing while transmitting serially from the previous stage to the subsequent stage. Then, the operation result of the objective logic function f is expressed by each external output line 7— :! ⁇ 7—Retrieved from 4.
  • connection circuit 5— :! The shifter circuit shown in Fig. 4 was used for ⁇ 5-3, but the crossbar switch shown in Fig. 7 was used for the connection circuits 5-1 to 5-3.
  • the connection circuit 5—i is
  • connection circuit 5_i 'using the crossbar switch has the disadvantage that the number of switching control lines is large and the circuit is large as compared with the shifter circuit, it is necessary to reduce the number of pass / transistor stages through which signals pass. Therefore, the calculation speed can be increased.
  • connection circuit 5 If the permutation of the variable order is not required in 5-3, a connection circuit 5-i, '' using a selector 'array (Selector Array) as shown in FIG. 9 may be used.
  • the connection circuit 5-i ′′ with a selector array can be configured with an extremely simple circuit. Therefore, the connection circuit 5_i ',' requires only a small layout area, is fast, and has low circuit power consumption.
  • each of the logic function memories 4_0 to 413 is operated asynchronously.
  • each of the logic function memories 4-0 to 413 is synchronized by a clock. May be operated.
  • the carry input bit c in is used for adding large numbers of 8 bits or more, and when using adders connected in series and using lower order adders. This bit indicates a carry from. Carry output bit c. Similarly, ut is a bit indicating a carry output to the upper adder.
  • each decomposition function is composed of two input variables, ⁇ and an intermediate variable c representing a carry.
  • n is a logical function that outputs u t (1 )
  • the decomposition function 1 ⁇ 2. G or g 2 , g 3 , 'g 4 , g 5 , g 6 , g 7 ⁇ , and the four arcs.
  • each decomposition function group is synthesized into one, and four decomposition functions f are obtained.
  • each decomposition function is a 5-input, 3-output logical function expressed by a logical expression such as (Equation 4) or (Equation 5).
  • each decomposition function fi is as shown in Fig.14. Therefore, the truth table of FIG. 15 is stored in the 0th page of the logic function memory 4-0.
  • the truth table (LUT) in FIG. 16 is stored in the logical function memories 4-1 to 4-3 on page 0.
  • S 2i , S 2i + 1 , c out (i) (ie ⁇ l, 2,3 ⁇ ) are the input lines i 2 , i 3 , i of the connection circuit 5— (i + 1), respectively.
  • the 0th page of each of the input selection memories 3-0 to 3-3 stores information of 0-bit shift, 5-bit shift, 9-bit shift, and 13-bit shift, respectively. That is, as input selection information (shfO, shfl, shf2, shf3) of each input selection memory 3-0 to 3-3, (0,0,0,0), (0,1,0,1), Store (1,0,0,1) and (1,1,0,1).
  • variables A, B, and c in are input to the input variable register 1.
  • Input variable register 1 stores these variables.
  • Operation controlling unit 10 an input selection memory 3-0 ⁇ 3-3, logical function number memory 4 0 ⁇ 4- 3, and a page selection number p r relative ⁇ Pi connected memory 6- 1 ⁇ 6- 3 Set page 0.
  • the input variable selection circuits 2-0 to 2-3 change a part of the input terminals in (00) to: in (16) to the output terminals out (00) to according to the input selection information input to the control lines shf0 to shf3. out (07) is electrically connected.
  • the arithmetic control unit 10 outputs the input variable X by using the input variable register 1.
  • the values of the input variables are input to the input terminals of the input variable selection circuits 2_1 to 2-3 as shown in (Table 1).
  • Input variable selection circuit 2-0 (out (00), out (01), out (02), out (03), out (04)).
  • (C in, a have a 0, b l5 b. ) And input this to the logic function memory 4-0.
  • outputs out (05) to out (07) are omitted because they are not used.
  • the logic function memory 4-0 stores the address of the LUT (LUT) stored on the 0th page.
  • (I 0 , i i 2 , i 3 , i 4 , i 5 , i 6 , i 7 ) (c in , a l5 a 0 , b 1; b 0 ,-,--)
  • connection circuit 5-1 (( ⁇ , o have o 2, ⁇ 3, o 4 , o 5, o 6, o 7.) -,, S., Output S ut (.),-,-,-) To connection circuit 5-1.
  • "-" indicates don't care (may be 0 or 1).
  • the input lines (i 0 , i i 2 , i 3 , i 4 , i 5 , i 6 , i 7 ) of the connection circuit 5-1 are (-,-, S 0 , S, c). ut ( ⁇ ) ,-,-,-) is input. '
  • the output lines ⁇ 8 to ⁇ 15 of the connection circuit 5-1 are taken out as the external output line 7-1. Therefore, the operation result S. , Si are output to two of the external output lines 7-1.
  • connection circuit 5-2 (-,- , S 2 , S 3 , c out "),,-,-) are output to the connection circuit 5-2.
  • each input line (i., I ,, i 2 , i) of the connection circuit 5-2 is output.
  • Output line o 8 ⁇ O 15 of the connection circuit 5-2 is taken as an external output line 7-2. Therefore, the operation results S 2 and S 3 are output to two of the external output lines 7-2.
  • the logic function memory 4-2 stores the address (i 0 , i or i 2 , i 3 , i 4 , i 5 , i 6 , i 7 ) of the LUT (LUT) stored in the 0th page.
  • each input line of the connection circuit 5- 3 ((i, i have i 2, i 3, i 4 , i 5, i 6, i 7.) -, -, S 4, S 5, c Ut ( 2 ),-,-, one) is input.
  • the values of (Table 4) are output from the connection circuits 5-3, respectively.
  • Output line o 8 ⁇ O 15 of the connecting circuit 5-3 is taken as an external output line 7-3. Therefore, the operation results S 4 and S 5 are output to two of the external output lines 7_3.
  • FIG. 17 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 2 of the present invention.
  • some of the output lines of the input variable selection circuits 2-1 to 2-3 are connected to the logic function memories 4-1 to 4--3 without passing through the connection circuit 5-1-5-3. It is characterized by being directly connected to the input.
  • at least one input variable is often input to the inputs of the logic function memories 4-1 to 4-3. That is, at least one of the output lines of the input variable selection circuits 2-1 to 2-3 is often connected to the input of the logic function memory 4-1 to 4-3.
  • connection circuits 5-1 to 5-3 are logically connected without passing through the connection circuits 5-1 to 5-3 from the beginning.
  • the number of input lines of the connection circuits 5-1 to 5-3 can be reduced.
  • the connection circuits 5-1 to 5-3 are configured by shifter circuits as shown in Fig. 4, it is possible to reduce the number of shifter stages, thereby increasing the operation speed and reducing power consumption. Can be achieved.
  • FIG. 18 is a block diagram illustrating an overall configuration of a programmable logic device according to Embodiment 3 of the present invention.
  • connection circuits 5-1 to 5-3 are used.
  • the first feature is that -31-3 is provided. Also, a part of the intermediate variables input from the preceding logic function memory 4- (i-1) (ie ⁇ 1, 2, 3 ⁇ ) to the subsequent logic function memory 4-i is connected to the connection circuit 5-i.
  • a second feature is that the input is performed directly without intervention.
  • connection circuits 5-1 to 5-3 With this configuration, the number of input lines of the connection circuits 5-1 to 5-3 can be reduced. As a result, the connection circuits 5-1 to 5-3 can be reduced in size. Also, contact When the continuation circuits 5-1 to 5-3 are configured by shifter circuits as shown in FIG. 4, the number of shifters can be reduced, and the calculation speed can be increased.
  • FIG. 19 is a block diagram showing the overall configuration of a programmable logic device according to Embodiment 4 of the present invention.
  • FIG. 20 is a block diagram showing the configuration of the output register and output decoder of FIG. The figure is a block diagram showing the configuration of the storage element in FIG.
  • the output variable register 51 for temporarily storing the output variables output to the external output lines 7-1 to 7_4, and the output variable register 51 outputs a load signal for capturing the output variables.
  • An output selection decoder 52 is provided.
  • Other configurations are the same as those in FIG. 1, and thus description thereof is omitted.
  • each of the logic function memories 4-0 to 4-3 has an internal address latch (not shown) and operates in synchronization with a clock.
  • the output variable register 51 stores 32 storage elements M (i, j) (ie ⁇ l, 2, 3, 4 ⁇ , j ⁇ ⁇ 0, 1, 2, 3, 4, 5, 6, 7 ⁇ ). Have.
  • Each storage element M (i, j) is composed of a D flip-flop (hereinafter, referred to as "DFF") 53 for holding data and a 2-input, 1-output multiplexer (hereinafter, referred to as "MUX") 54.
  • DFF 53 receives a common clock signal Clock. When the clock signal Clock is 1, the DFF 53 latches the value input to the data input D.
  • the output of MUX 54 is connected to data input D of DFF 53.
  • outputs 0 to 53 (3 is connected to the input D 0 of 0 ⁇ of the MUX 54.
  • Input D 1 on the 1 side of the MUX 54 is connected to the j-th line of the external output line 7_i
  • FIG. 22 ' is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 5 of the present invention.
  • the present embodiment is characterized in that a first output selection circuit 25, a second output selection circuit 26, an input selection memory 3-4, and an input variable selection circuit 2-4 are provided.
  • the other configuration is the same as that of FIG. 1, and the description is omitted.
  • the second output selection circuit 26 selects all or a part of the output variables output from the logic function memory 43 in the final stage according to the value of the input variable input from the input variable selection circuit 2-4. And output.
  • the input variable selection circuit 2-4 is constituted by a shift circuit similar to that shown in FIG. However, in this embodiment, the output of the logic function memory 413 in the last stage is 8 bits, and therefore the output of the shift circuit used in the input variable selection circuit 2-4 is 3 bits.
  • the output of the input variable selection circuit 2—4 depends on the number N of outputs of the logic function memory (Equation 6) It is said.
  • the outputs out (00) to out (02) (see FIG. 2) of the input variable selection circuit 2-4 are represented by F 0 , F, and F 2 , respectively.
  • the first output selection circuit 25 is configured by a multiplexer, and according to the output selection signal t output from the arithmetic control unit 10, each of the logic function memories 410-4 _ 2 and the second output selection circuit 26 Select and output one of the output variables output from 6.
  • the output selection signal t is a 2-bit signal representing the designation number (te ⁇ (00), (01), (10), (11) ⁇ ) of the output bundle selected by the first output selection circuit 25. Signal.
  • FIG. 23 is a block diagram showing the configuration of the second output selection circuit 2.6 of FIG. Note that this circuit diagram is simplified to explain the operation principle.
  • the second output selection circuit 26 connects a 2-input, 1-output multiplexer (hereinafter, referred to as “X”) 31 to 37 in multiple stages in a cascaded manner. Each stage is configured so that the output can be taken out through MUX 38 to MUX 44.
  • FIG. 23 shows an example in which the number of bits Nc of the output line is 8 bits for convenience of explanation. The force Nc is not limited to 8 bits.
  • ⁇ y 7 is connected to the output of the logic function memories 4 _ 3. This input line y. From ⁇ y 7, the value of the output variable Y is input.
  • the output line f (Q) to f (7) of the output selection circuit 26 is the input line y. Output variable selected from ⁇ 7 The value of..., g is output.
  • Input line y. , Yi, input line y 2, y 3; input line y 4, y 5, and the input line y 6, y 7 is connected to the input side of the MUX 31, MUX 32, MUX 33 , and MUX 34, respectively .
  • the outputs of the MUXs 31, 32 and 33, 34 are connected to the inputs of the marauders 35, 36, respectively.
  • the outputs of MUX 35 and 36 are connected to the input of MUX 37.
  • the input line y. The output of MUX 31), (the output of the input line y 2, MUX 32), (the output of the input line y 4, MUX 33), and (the output of the input line y 6, MUX 34) are connected to the inputs of MUX 38, # 39, MUX40, and MUX 41, respectively. Further, (the output of the input lines Yl, MUX 35), (the output of the input line y 3, MUX 37), and (the output of the input line y 5, MUX 36) are each Application X42, MUX43, and the input side of MUX44 It is connected.
  • MUX31-34 are common input variables F. Controls the switching. That is, F. There is the case of "0", the MUX 31, 32, 33, 34, respectively, to select an input line y 0, y 2, y 4 , y 6, F 0 force S "1" when, MUX 31, 32 , 33, 34, respectively, to select the y 3, y 5, y 7 have input lines y.
  • Switching of the MUXs 35 and 36 is controlled by a common input variable. That is, when is "0", the MUXs 35 and 36 select the MUXs 31 and 33, respectively, and when the force S is "1", the MUXs 35 and 36 select the MUXs 32 and 34, respectively.
  • MUX 37 is, switching control is by the input variables F 2. That is, the-out F 2 is "0" Noto, MUX 37 selects the MUX 35, F. When mosquito "1", MUX 37 selects MUX 36
  • 8 input lines y by MUX31-34. 4 is selected from among the ⁇ y 7.
  • 2 is selected from among the ⁇ y 7.
  • One of 7 is selected. This is the objective logic function
  • logic function memory It means that the logical operation by the input variables (F Q,, F 2 ) can be performed on the intermediate variable Y output by 4-3. Therefore, the number of input variables in the operation performed by the logic function memories 4-0 to 4-3 can be reduced.
  • the objective logic function f (x., X is ...
  • Equation 7 (Equation 7) — 1 / (0, 1, ⁇ ⁇ ⁇ , 3 ⁇ 4— 2) V ⁇ n—lj (0, 1, ⁇ ⁇ ⁇ , -2) and Shannon expansion to obtain the function (3 ⁇ 4, ⁇ ..., ⁇ ⁇ 2 ) into four decomposition functions f. (X.), f x ( ⁇ ⁇ , ⁇ ,), f 2 ( ⁇ 2 , ⁇ 2 ), f 3 (X 3 , Y 3 ) (where X.
  • U3 ⁇ 4 UX 2 UX 3 ⁇ x., X ..., X n — 2 ⁇ ), and if the number of outputs of the decomposition function (,) in the final stage is reduced to 4 or less, then the logic function memory 4 0 0 to 4 1 3 Can reduce the number of input variables to be input by one. Then, the input variable may be input to the second output variable selection circuit 26 as an input variable.
  • Equation 8 (Equation 8) ; ⁇ , ⁇ , rc n _ 3 ) V ⁇ ⁇ _ 1 3 ⁇ 4_ 2 ( ⁇ 0 ,, ⁇ , x n - S )
  • the number of input variables to be input to the logic function memory 410-413 can be reduced by two.
  • VX n -lX n -2Xn-3f "'( ⁇ , ⁇ ⁇ ⁇ , , N— 4), the Canonical expansion gives the logical function memory 4-1 0 to 4-1 3 The number can be reduced by three.
  • the MUXs 38 to 44 are configured so that the output when each of the output lines is selected is output through the common output lines f (Q) to f (7). ing.
  • the switching of the MUXs 38 to 44 is controlled by a common selection switching variable Select.
  • MUX38 is, Select selects the input line y 0 when “0”, selects the output of MUX31 when Select is “1”, and outputs the signal value of the selected line to the output line f (fl).
  • MUX39 is, Select selects the input line y 2 when “0”, Select selects the output of the MUX 32 when the “1”, and outputs the signal value of the selected line to the output line f (2).
  • MUX40 is, Select selects the input line y 4 when “0”, Select selects the output of the MUX 33 when the "1", and outputs a signal value of Itaru ⁇ the line to the output line f (4) .
  • MUX41 is, Select selects the input line y 6 when it is “0”, selects the output of MUX34 when Select is “1", and outputs the signal value of the selected line to the output line f (6).
  • the MUX42 selects the input line when Select is “0”, selects the output of MUX35 when Select is “1”, and outputs the signal value of the selected line to the output line f (1) .
  • MUX43 is, Select selects the input line y 3 when it is “0”, selects the output of Akira X37 when Select is “1”, and outputs the signal value of the selected line to the output line f (3).
  • MUX 44 is, Select selects the input line y 5 when "0", Select selects the output of the MUX 36 when the "1", and outputs the signal value of the selected line to the output line f (5) .
  • the output line f (7) is directly connected to the input line y 7.
  • the second output selection circuit 26 By providing the second output selection circuit 26 in this manner, when the number of output variables f (X) is equal to or less than one-two of the total number of output lines of the last-stage logic function memory 4-1-3, Further selection operation can be performed by using the second output selection circuit 26. This makes it possible to substantially increase the total number of input variables of the decomposition function that performs the operation in the logic function memories 410 to 4_3 by one or more. Therefore, it is possible to increase the number of input variables allowed in the entire programmable logic device.
  • the multiplexer in the output selection circuit 26 uses a 2-input / 1-output multiplexer.
  • a w-input / 1-output (w ⁇ 2) MUX can be used.
  • FIG. 24 is a block diagram showing the entire configuration of a programmable logic device according to Embodiment 6 of the present invention.
  • the present embodiment is characterized in that the second output selection circuit 26 is connected to the subsequent stage of the first output selection circuit 25. Note that the first output selection circuit 25 and the second output selection circuit Except for the connection to the route 26, the configuration is the same as that of the fifth embodiment, except for the MS order.
  • variable set in the first selection circuit 25 is selected in the first selection circuit 25.
  • Selected variable set in the first selection circuit 25 based on the value of the input variable (F have F 2, F 3) and a selection switch shift number Select, its all or in part by the second selection circuit 26 Selected and output as output variable.
  • any n variable logic function f (x, X physician ..., x n -.,) It may be expressed in the following form.
  • FIG. 25 is a block diagram illustrating an overall configuration of a programmable logic device according to Embodiment 7 of the present invention.
  • the programmable logic device includes an input variable register 1, an input variable selection circuit 2-0 to 2-3, an input selection memory 3-0 to 3-3, and a logic function memory 4-0 to 4 — 3, Connection circuit 5-. To 5-3, connection memories 6-0 to 6-3, area designation memories 8_0 to 8-3, and an operation control unit 10. In this embodiment, each circuit operates in synchronization with a common clock.
  • the input variables are input to the input variable register 1 from the external input line.
  • the logical function memory 4-0 to 4-3 stores the truth table of the decomposition function ⁇ f i; ie ⁇ 0, 1, 2, 3 ⁇ obtained by function decomposition of the target logical function f as LUT You.
  • the number of stages of the logic function memory 4-i is four, but in general, the number of stages can be set arbitrarily. You.
  • These logic function memories 4-0 to 4-3 are arranged in order, and are connected in a ring shape via connection circuits 5-0 to 5-3, respectively.
  • the logic function memories 4_0 to 4-3 in the present embodiment use the same memory as that described in FIG.
  • the address 'decoder 16 based on the page selection number p (p r) which is input from the area designating memory 8- i, the memory of the memory area FM k' to allow access.
  • the input selection memories 3-0 to 3-3 store information relating to the selection of the input variables of the input variable selection circuits 2-0 to 2-3 (hereinafter referred to as "input selection information").
  • the input variable selection circuits 2-0 to 2-3 switch between input variable selections based on the input selection signals output from the input selection memories 3-0 to 3-3.
  • a shifter circuit as shown in FIG. 2 is used for the input variable selection circuits 2-0 to 2-3.
  • input terminals in (00) to: in (16) are connected to the output terminal of input variable register 1.
  • an input variable X (x ⁇ ..., X n ) is input from the input terminals in (00) to Ln (16).
  • the output terminals 0 (00) to 0 (07) of the input variable selection circuit 2-i (ie ⁇ 0, 1, 2, 3 ⁇ ) are connected to some of the input-side terminals of the connection circuit 5-i Have been.
  • connection circuit 5-i (ie ⁇ 0, 1, 2, 3 ⁇ ) is an intermediate variable and input from the logic function memory 4- (i-1 mod 4) and the input variable selection circuit 2-i. Connect the variables to the logic function memory 4-i and the external output line 7-i at the subsequent stage in different order.
  • connection memory 6-i (i ⁇ ⁇ 0, 1, 2, 3 ⁇ ) stores information (hereinafter, referred to as “connection information”) relating to the connection relationship of each connection circuit 5-i.
  • connection information hereinafter, referred to as “connection information” relating to the connection relationship of each connection circuit 5-i.
  • the connection circuit 5-i switches the connection relationship based on the connection information signal output from the connection memory 6-i.
  • connection circuits 5-0 to 5_3 a cyclic shifter circuit as shown in FIG. 4 is used for the connection circuits 5-0 to 5_3.
  • connection circuit 5-j (j ⁇ ⁇ l, 2, 3 ⁇ ) input line i. ⁇ I out of 15 , i. Through i 7 is connected to the output side of the previous logical function memory 4- (j-1),: 1 8 ⁇ : 1 15 is connected to the output side of the Input variable selection circuit 2.
  • input line i of connection circuit 5-0. Out of 5 , i. ⁇ ; 1 7 is connected before being connected to the output side of the logic function memories 4-3 stages, i 8 ⁇ 5 on the output side of the input variable selection circuit 2 0.
  • the output line o of the connection circuit 5 -j (je ⁇ 0, 1, 2, 3 ⁇ ).
  • ⁇ O out of 15 , o. ⁇ O 7 is connected to the input side of the subsequent logic function memories 4_j, o 8 ⁇ o 15 external output line 7 - it has a j.
  • connection memory 6-i ie ⁇ 0, 1, 2, 3 ⁇
  • connection memory 6-i ie ⁇ 0, 1, 2, 3 ⁇
  • Each area designating memory 8-i corresponds to the number of operation stages of the target logic function, and the LUT stored in the logic function memory 4-i uses Stored page numbers (hereinafter referred to as “area specification variables”) are stored.
  • Logic function memory 4-i sets pages according to the area specification variable output by area specification memory 8-i.
  • the arithmetic control unit 10 controls arithmetic processing of the entire programmable logic device.
  • FIG. 26 is a block diagram showing the configuration of the arithmetic and control unit 10 of FIG.
  • the arithmetic control unit 10 has a configuration including an arithmetic step 'register 61, a step' counter 62, a page counter 63, and an output controller 64.
  • Operation step ⁇ Register 61 stores the number of operation steps, which is the number of decomposition functions after the target logical function is decomposed.
  • the step 'counter 62 counts the number of stages of the decomposition function for which the operation is currently being performed.
  • the value stored in the calculation step register 61 is set in the step counter 62, and the value stored therein is reduced by one as the calculation processing proceeds by one stage.
  • ⁇ Consists of a down counter The step counter 62 outputs an end signal END when the count value i becomes 0. Also, the step counter 62 sets the count value to the value stored in the operation step register 61 when a reset signal reset is input from the outside.
  • the page 'counter 63 counts the page number of each memory in which the data output from the input selection memory 3, the connection memory 6, and the area designation memory 8 are stored, and outputs the count value k as a count signal pk. I do.
  • the page counter 63 resets the count value k to 0 when the reset signal reset is input or when the end signal END is input from the step counter 62.
  • Output controller 6 each of the logic function memories 4 - 0-4 - for the three chips 'Inepuru signal CE 0 ⁇ CE 3, and Adoresu' strike opening over strobe signal ADSP 0 ⁇ ADSP 3 by outputting Controls the output of the logic function memory 4-0 to 4-3.
  • the chip enable signal CEi is a signal for activating the i-th logic function memory 4-i, and the chip enable signal CEi becomes "1" (true value) (asserted).
  • the logic function memory 4-i accepts an external input signal and outputs data. It becomes possible.
  • the address' stroop signal ADSPi is a signal for controlling the latch of the input address to the logic function memory 4-i.
  • FIG. 27 is a block diagram showing the internal configuration of the output controller 64 of FIG.
  • the output controller 64 is constituted by a Johnson counter 69 consisting of four flip-flops (hereinafter referred to as “FF”) 65 to 68, four AND circuits 70 to 73, and one OR circuit 74. I have.
  • FF flip-flops
  • a common clock signal clock is input to clock terminals C of FF65 to 68.
  • Output 0 of FF65, 66, 67, 68. , Q have Q 2, N0T (Q 3), respectively, FF 65, 66, 67, 68 data input Dp D 2, D 3 of, D. It is connected to the.
  • the OR circuit 74 outputs a reset signal reset 'of the logical sum of the reset signal reset and the end signal END.
  • the reset pin 'reset' is input to the reset terminal rst of FF65 to FF68.
  • Transition cyclically as follows. That is, for each clock, the operation of shifting right by one bit, inverting the most significant bit (Q 3 ), and setting the least significant bit (Q 0 ) is repeated.
  • FF65, 67 of Deca, Q 2, respectively, chip Ineburu signal CE. Are output as.
  • FF 65, 67 of the output N0T (Q.), N0T ( Q 2) , respectively, is output as the chip 'rice one enable signal CE 2, CE 3.
  • ⁇ 0 ⁇ ( ⁇ is an inverted output of the output.
  • the AND circuit 70 outputs the logical product of the outputs Q. and NOT (Q of the FFs 65 and 66 as the address / stop signal ADSP.
  • the circuit 71 outputs the output of the FFs 67 and 68 and the logical product of N0T (Q 3 ) as an address strobe signal ADSP.
  • the AND circuit 72 outputs the outputs NOT (Q Q ) and Q x of the FFs 65 and 66 The product is output as the address 'strobe signal ADSP 2.
  • the AND circuit 73 outputs the logical product of the outputs NOT (Q 2 ) and Q 3 of the FFs 67 and 68 as the address' strobe signal ADSP 3 .
  • the logical function memory 4 0 4 3 chips In the state where Ineburu signal CE 0 ⁇ CE 3 is "0", and shall become a low power consumption mode. As a result, the power consumption of the logic function memory 4 not used for the operation is reduced, and the power consumption of the entire LUT cascade circuit can be further reduced.
  • FIG. 28 is a flowchart showing the operation of the programmable logic device according to the seventh embodiment.
  • FIG. 29 is a timing chart showing changes in respective signals during the operation of the programmable logic device according to the seventh embodiment.
  • the truth table of the decomposed function ⁇ , ⁇ , ⁇ (l ⁇ s) obtained by function decomposition of the objective logical function f (X) to be operated is used as the LUT as a logical function memory.
  • the writing function to each memory is not shown in FIG. 25, but is performed by a normal memory writing method. Further, the total number of stages s of the decomposition function is written in the operation step register 61 of the operation control unit 10. In the following, description will be made assuming that s> 4.
  • time interval T In the state where the above write is performed, first, time interval T.
  • the count values i and p of the step counter 62 and the page counter 63 are reset by the reset signal reset input from the outside (S1).
  • the count H of the step counter 62 is initialized to the value s stored in the operation step register 61
  • the count value p of the page counter 63 is initialized to 0.
  • the FFs 65 to 68 of the output controller 64 in the arithmetic control unit 10 are reset by the reset signal reset (S2).
  • the input selection memory 3-i (ie ⁇ 0, 1, 2, 3 ⁇ ) outputs the input selection information stored in page 0 to the control lines shf0 to shf3 of the input variable selection circuit 2-i. I do.
  • the input variable selection circuit 2-i converts a part of the input terminals in (00) to: in (16) to the output terminals out (00) to out (07) according to the input selection information input to the control lines shf0 to shf3. Electrically connected to
  • connection memory 6-i (ie ⁇ 0, 1, 2, 3 ⁇ ) outputs the connection information (—),..., ⁇ ") Stored in the 0th page to the connection circuit 5-i.
  • connection circuit 5-i each control line Yori input is the connection information ((°), one, 3. (°)) in accordance with the input line i 8 through i 15 and the output line o. ⁇ o 7 And connect.
  • the area designation memory 8-i (ie ⁇ 0, 1, 2, 3 ⁇ ) stores the area 'designated variable P (0) stored in page 0 to the address' decoder 16 of the logic function memory 4-i'. Output.
  • the logic function memory 4-i is in a state where the p-th page (0) can be selected.
  • the input variable register 1 starts outputting the input variable to each of the input variable selection circuits 2-0 to 2-3 (S4).
  • the input circuit X is connected to the connection circuits 5-0 to 5-3, respectively.
  • X or X 2 , X 3 are output.
  • Connection circuit 5-Input variables input to i (ie ⁇ 0, 1, 2, 3 ⁇ ), X and X 2 , X 3 are input sides of the logic function memory 4-i according to the set connection order. Is output to .
  • the data D. starts to be output from the logic function memory 4-0 (S5).
  • the ADSP output from the AND circuit 70 becomes "1".
  • ADSP 0 becomes "1”
  • an address register in the logic function memory 4-0 is established based on the input variable X input from the connection circuit 5-0 (S6).
  • the logic function memory 4-0 starts to output the value of the LUT (intermediate variable Y 4p + (s_i ) ) corresponding to the established address in page 0 to the connection circuit 5-1.
  • the intermediate variable ⁇ 4 ⁇ + (3 - ⁇ ) output to 5-1 is input to the logic function memory 4-1 according to the set connection relationship.
  • the intermediate variable Y 4p + (s — A part is transmitted to the external output line 7-1.At the end of the time interval ⁇ , ADSP falls from "1" to "0" and the logic function memory 41 0 Internal address register is latched.
  • ADSPt output from the AND circuit 71 becomes "1" (SI1).
  • SI1 the address of the logic function memory 4-1 is established based on the intermediate variables and the new input variables input from the logic function memory 4-0 in the preceding stage via the connection circuit 5-1.
  • the output data of the logic function memory 4-1 changes, and the LUT value (intermediate variable Y 4p + ( s -i)) corresponding to the established address in the pk-th page Output starts at 5-2.
  • the ADSP output from the fiber circuit 71 becomes "0", and the output data of the logic function memory 4-1 is determined as the intermediate variable Y4P + (S -1) ( S12).
  • the intermediate variable Y 4P + (S output to the connection circuit 5-2 is input to the logic function memory 4-2 according to the set connection relationship. In some cases, the intermediate variable Y 4P + (S Is transmitted to the external output line 7-2.
  • ADSP 2 is the output of the fine circuit 72 becomes "1" (S 1 6) .
  • the logic function memory 4-2 is input from the logic function memory 4-1 in the preceding stage via the connection circuit 5-2.
  • the address is established based on the intermediate variables and the new input variables. With the establishment of this address, the output data D 2 of the logic function memory 4-2 changes, and LUT value corresponding to the established address in the page (intermediate variable Y 4p + (s ) output starts to be output to connection circuit 5-3.
  • ADSP 3 which is the output of the AND circuit 73 becomes "1" (S 21).
  • the address of the logic function memory 4-3 is established based on the intermediate variables and the new input variables input from the logic function memory 4-2 at the preceding stage via the connection circuit 5-3.
  • the logical output data D 3 of the function memory 4-3 is changed, the value of the LUT corresponding to the established address in the pk page (intermediate variables Y 4p + (s _), connection circuit It starts to be output to 5-0.
  • the page counter 63 increments the count value p (S23).
  • the value of the count signal p p is increased ⁇ only 1, the input selected memory 3-0 ⁇ 3-3, connection memory 6 - 0-6 - 3, and a region of the designated memory 8 _0 ⁇ 8-3
  • the selected page switches. Accordingly, the connection relationship between the input variable selection circuits 2-0 to 2-3 and the connection circuits 5-0 to 5-3 also switches.
  • each logic function memory stores the chip enable signal C and the address strobe signal ADSPi at "1". The page will not be switched unless it becomes a state that accepts the address as "".
  • the step 'counter 62 decrements the count value i (S24). Also, at this time, the output Q of Jeongseon's counter 69. Becomes 1.
  • steps S9, S14, S19, and S25 if the count value i of the step counter 62 is 0, the step counter 62 outputs an end signal END. As a result, the arithmetic control unit 10 stops the arithmetic operation, and the arithmetic ends.
  • the arithmetic processing is performed by serial processing from the first stage to the second stage. If the operation of all the decomposition functions has not been completed at the time when the arithmetic processing in the last logical function memory 4-3 has been completed, the intermediate data output from the logical function memory 4-3 is obtained. The variable is fed back to the first-level logic function memory, and the operation is repeated. Then, the operation result of the objective logic function f is taken out from each external output H7-; L ⁇ 7-4 Next, the specific operation of the programmable logic device will be described using a specific example in order to explain the above operation more clearly.
  • the carry input bit Ci n is used to add a large number of 2 n bits or more when connecting adders in series. This bit indicates the carry from the lower adder.
  • ut is a bit indicating a carry output to a higher-order adder.
  • the input variable selection circuits 2-0 to 2-3 use log 2 (2n + l) (when log 2 (2n + l) is not an integer, log 2 It is assumed that it consists of a (2n + l) input 8 output shifter circuit in which (2n + l) rounded-up) stages of shifters are connected in series.
  • the logical function f is expressed by Fig. 30. .
  • This function is composed of 2 ⁇ decomposition functions ⁇ g. , G or...
  • each decomposition function is represented by a logical expression such as (Equation 12). Or (Equation 13). (Number 1 2)
  • each decomposition function has two input variables bi and an intermediate variable c representing a carry.
  • ut (i is the sum of the modulo one, Si and the intermediate variable of the carry c.
  • This is a logic function that outputs ut (1 ).
  • This is a four-stage logic function memory as shown in Fig. 25.
  • the decomposition function ⁇ g., Gl,. , Gl ⁇ , ⁇ g 2 , g 3 ⁇ ,-, ⁇ g 2n — 2 , g 2n — J. Then, as shown in Fig.
  • each decomposition Function E is grouped into one and represented by n decomposition functions f., F ⁇ ⁇ , f n — i, where each decomposition function is expressed by (Equation 14) or (Equation 15) It is a three-variable input and three-variable output logic function represented by a simple logical expression.
  • S 2i , S 2i + 1 , c out (i) (ie ⁇ l, 2,-, ⁇ -l ⁇ ) are respectively connected to the input lines i 2 ,
  • the output bits of the logic function memory are allocated so as to be output to i 3 and i 4 . .
  • the 0th page of each input selection memory 3-0—3-3 contains 0-bit shift, 5-bit shift, 9-bit shift, 13-bit shift, and p-th page (1 ⁇ p ⁇ [(nl ) / 4]) stores information of 16p + l bit shift, 16p + 5 bit shift, 16p + 9 bit shift, and 16p + 13 bit shift, respectively.
  • four bits as the connection information in the case of shifting (3 3, 3 2, 3 1, 5) when the (0,1,0,0), is 5 bits shift
  • connection information (0,1,0,1) is shifted by 8 bits as connection information
  • connection memory 6 (1,0,0,0) is stored in each page of the connection memory.
  • n 13
  • the contents of the connection memory 6 are as shown in (Table 5) below. (Table 5)
  • 1 is stored as an area specification variable.
  • 0 is stored as an area specification variable in the 0th page of the area specification memories 8-1-1 to 8-3.
  • variables A, B, and c in are input to the input variable register 1 and stored.
  • the Johnson counter 69 is reset to zero.
  • the page counter 63 of the arithmetic control unit 10 sets the input selection menu.
  • the 0th page is set as the page selection number Pr according to the memory 3-0 to 3-3, the connection memory 6-0 to 6-3, and the area designation memory 8-0 to 8-3.
  • the input variable selection circuits 2-0 to 2-3 output eight of the input terminals in (00) to; in (x-1) according to the input selection information input to each control line. Out (00) to out (07) are electrically connected.
  • the input selection memory 3-0 connects in (00) to in (07) to out (00) to out (07), and the input selection memory 3-1 shifts 5 bits, in (05)-: In (12) is connected to out (00)-out (07), input selection memory 3-2 is shifted 9 bits, and in (09)-: in (16) is out (00) to out (07), input selection memory 3-3 shifts 13 bits, and connects in (13) to in (20) to out (00) to out (07).
  • connection memories 6-0 to 6-3 respectively store the connection information written on page 0.
  • connection circuit 5-0 shifts 8 bits to each of i 8 to i 15. Connects to o 7 and connects ⁇ to 0 8 to 015 , respectively. . connect to also connect the memory 6-1 to 6-3, by 4-bit shift, ⁇ : 1 11 connected respectively 0 0-0 7, a i 12 ⁇ ii 5, i 0 ⁇ i 3 Connect to o 8 to Oi 5 respectively.
  • the area specification memories 8-0 to 8-3 output the area specification variables written in the 0th page to the address decoder 16 of the logic function memories 4-0 to 4-3, respectively.
  • the logical function memory 4-0 becomes accessible to one page
  • the logical function memories 4-1 to 4-3 become accessible to one page.
  • the arithmetic control unit 10 outputs the input variable X by using the input variable register 1.
  • the values of the input variables are input to the input terminals of the input variable selection circuits 2-1 to 2-3 as shown in (Table 7). (Table 7)
  • the connection circuit 5-0 shifts them by 8 bits and outputs them to output lines (o 0 , 0 or o 2 , o 3 , o 4 ). In this way, the input variables (c in , a a, b 1? B.) Are input to the logic function memory 4-0.
  • the output controller 64 of the arithmetic and control unit 10 outputs CE.
  • the set to "1”, the logical function memory 4-0 internal address' register, the address (i Q, i have i 2, i 3, i 4 , i 5, i 6, i 7)
  • connection circuit 5 - Outputs to 1. That is, each input line of the connection circuit 5-1 ((i, i have i 2, i 3, i 4 , i 5, i 6, i 7.) -, -, -,-) Is input.
  • Output line o 8 ⁇ O 15 of the connection circuit 5-1 is taken as an external output line 7-1. Therefore, the operation result S. Si is output to two of the external output lines 7-1 q '
  • Input to 5-2 input line (i 8 i 9 i 10 , i) From the connection circuit 5-2, respectively, and output the value (Table 9) c
  • Output line o 8 ⁇ O 15 of the connecting circuit 5-2 is taken as an external output line 7-2. Therefore, the operation results S 2 and S 3 are output to two of the external output lines 7-2.
  • the operation is performed in the logic function memory 4-2 and the logic function memory 4-3. Then, the operation results S 4 and S 5 of the logic function memory 4-2 are output to two of the external output lines 7-3. Further, the output value of the logic function memories 4- 3 (-, -, S 6, S 7, c ou, (3), -, -, -) is input lines i of the connection circuit 5-0. ⁇ Feed back to '. '
  • the page counter 63 increments the count value k by 1 and outputs the count value k to the count signal pk.
  • connection memory 6, and the area designation memory 8 are changed, the output from these memories is also changed.
  • the shift amount information output from the input selection memory 3-0 is changed to 17-bit shift.
  • the operation results S 6 and S 7 of the logic function memory 4-3 are output to two of the external output lines 7-0.
  • the output value of the logical function memory 4- 0 (-, -., S 8, S 9, c ut (4), -,-) Are input lines i of connection circuit 5-1. Is input to the ⁇ i 7. Connection circuit 5-1, which was 5-bit shift,. And outputs the (S 8, S 9, c . Ut (4)) output line (o 13, o 14, o 15). As a result, the operation results (S 8 , S 9 , c. Ut (4) ) of the logic function memory 4-0 are output to three of the external output lines 7-1. As described above, all the calculation results are output to the output lines 7-0 to 7-3, and the calculation ends.
  • the input variables X Q , X 1? ..., ⁇ i input to the LUTs of each stage do not have a common element (that is, ⁇ ⁇ ⁇ ⁇ (i ⁇ j )),
  • the programmable logic device according to the present invention can be used also in a case where any two of the input variables X Q and X ′ ′′ JS have common elements.
  • FIG. 37 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 8 of the present invention.
  • connection circuits 5-0 to 5-3 are used.
  • the first feature is the provision of ⁇ 81-3.
  • a part of the intermediate variables input from the preceding logic function memory 4- (i-1) (ie ⁇ l, 2, 3 ⁇ ) to the subsequent logic function memory 4-i is connected to the connection circuit 5-i.
  • a second feature is that the input is performed directly without intervention.
  • connection circuits 5-0 to 5-3 With this configuration, it is possible to reduce the number of input lines of the connection circuits 5-0 to 5-3. it can. As a result, the connection circuits 5-0 to 5-3 can be reduced in size. Further, when the connection circuits 5-0 to 5-3 are configured by shifter circuits as shown in FIG. 4, the number of shifter stages can be reduced, and the calculation speed can be increased.
  • FIG. 38 is a block diagram showing an overall configuration of a programmable logic device according to Embodiment 9 of the present invention.
  • a plurality of outputs of the last logical function memory 4-3 are temporarily stored on the input side of the feed-back connection circuit, and the feed-pack connection circuit 5-0.
  • a synchronous memory that operates in synchronization with a clock is used as the logic function memories 4-0 to 4_3.
  • the logic function memories 4-0 to 4-3 are not limited to synchronous memories, and it is also possible to use memories that operate asynchronously.
  • the output of the logic function memory 4-3 at the last stage is feed-packed to the input of the logic function memory 4-0 at the front stage, the output of the logic function memory 4-0 to 4-3 is asynchronous. If memory is used, unexpected operation may occur, such as oscillation.
  • the intermediate variable register 82 is provided, and each time the operation of one operation loop is completed, the output values of the logic function memories 4-0 to 4-3 are determined once, and the logic function memory 4 -Store the value of the intermediate variable output by 3 in the intermediate variable register 82. Then, the processing shifts to the next operation loop, in which the intermediate variable stored in the intermediate variable register 82 is input to the value logic function memory 4-0 to perform the operation processing.
  • FIG. 39 is a diagram showing an overall configuration of a professional logic device according to Embodiment 10 of the present invention.
  • the programmable logic device of this embodiment is composed of an arithmetic unit 85 and s units (s ⁇ 2
  • up to s operations can be performed by pipeline processing.
  • FIG. 39 shows a configuration in which s output circuits 86 are provided. However, the number of output circuits 86 can be reduced as needed.
  • FIG. 40 is a block diagram illustrating a configuration of a computing unit 85 of a programmable logic device according to Embodiment 10 of the present invention.
  • input variable register 1 input variable selection circuit 2—0 to 2— (s ⁇ 1) (s ⁇ 3), input selection memory 3-0 to 3- (s ⁇ 1), logic function memory 4- 0 to 4- (s-1), connection circuit 5-0 to 5- (s-1), connection memory
  • connection circuit 5-i a memory 'address' register ( memory address register: hereinafter referred to as “MAR”.) 90 and direct access selector (hereinafter, referred to as “DAS”) 91-i are connected in this order.
  • a DAS 91-0 is connected to the input side of the logic function memory 410 at the forefront stage.
  • All output lines of input selection circuit 2-0 are connected to the input lines of DAS 91-0 at the forefront stage.
  • a part of the output line of the input selection circuit 2—i (i1, ⁇ 1,-, s-1 ⁇ ) is connected to a part of the input line of the logic function memory 41—i, and the others are MAR 90—i Input line Connected to part of.
  • the input lines of the logic function memory 410 at the forefront are all connected to the output lines of the DAS 91-0. Also, the other logic function memory 41 i (i e ⁇ 1,..., S-1 ⁇
  • All the output lines of the logic function memory 41 (s-1) at the last stage are connected to the external output line 7-s.
  • the output lines of the other logic function memory 41 i (i ⁇ ⁇ 0, ⁇ ⁇ ⁇ , s-2 ⁇ ) are all part of the input lines of the connection circuit 5 _ (i + 1). It is connected.
  • Each of the logic function memories 4-0 to 4_s has a power control terminal PW.
  • each logic function memory 41 i (ie ⁇ 0,..., S-1 ⁇ ′) is in a wake-up mode.
  • each logic function memory 41 i is in a low-power mode.
  • Each logic function memory 4-1 0 to 4-s power supply control terminal PW has a power supply control signal ⁇ from outside. ⁇ ⁇ s — i is input. This power control signal ⁇ . ⁇ ⁇ s —i controls the power supply of each logical function memory 4 — 0 to 41 s .
  • this power control signal ⁇ When executing multiple jobs by pipeline processing using all logic function memories, this power control signal ⁇ .
  • ⁇ ⁇ s 1 is always set to 1.
  • the power control signal ⁇ according to the job flow.
  • ⁇ . ⁇ s Input polyphase clock to i.
  • connection circuit 5 Of the input lines of the connection circuit 5—i (i ⁇ ⁇ 1,..., S-1 ⁇ ), those other than those connected to the output line of the input selection circuit 2-0 are connected to the logic function memory 41. (i-1) is connected to the output line. Also, part of the output line of connection circuit 5—i is connected to MAR 90—i. Others are connected to the external output line 7-i. The details of the connection circuit 5-i will be described later.
  • MAR 9 0—i temporarily holds variable values input from multiple input lines (data input lines).
  • MAR 90-i also has a function as an intermediate variable register. Some of the input lines of MAR 90-i are connected to some of the output lines of the input selection circuit 21-i, and others are connected to some of the output lines of the connection circuit 5-i. All of the output lines of MAR 90-i are connected to a part of the input lines of DAS 91-i. .
  • the MAR 90_i has an external connection input line, a reset input line, and a bypass control input line.
  • An external clock input line receives an external clock signal (clock). Further, a reset signal and a bypass control signal are input from the arithmetic and control unit 10 to the reset input line and the bypass control input line, respectively.
  • This MAR 90-i functions as an intermediate variable register that takes in the input to the logic function memory and temporarily holds it. In this case, the clock signal input to the external clock input line becomes the data strobe signal. The details of MAR 90-i will be described later.
  • DAS 9 1-i (ie ⁇ 0,..., S _ 1 ⁇ ) writes data directly to the logic function memory 41-i from outside and performs tests on the logic function memory 4-i It is provided for the purpose.
  • the DAS 91-i has the same number of multiplexers with two inputs and one output (hereinafter referred to as "MU X") as many as the input lines (data input lines) of the logic function memory 4-i.
  • the output terminal of each MUX is connected to each input line of the logic function memory 41i.
  • One of the two input terminals (0-side input terminal) of each MUX is connected to the external address input line 101-i.
  • the other (the 1-side input terminal) is connected to the output line of MAR 90-i (partially, directly to the output line of the input selection circuit 2-i).
  • the selection control terminal of each mux is connected to the selection control line 102.
  • Selection control line 1 0 2 is supplied with a DAS select control signal (DAS select) from the arithmetic control unit 10.
  • DAS select DAS select control signal
  • the external address input line 1 0 1—i receives the address to be accessed when directly accessing the logical function memory 4—i.
  • the connection memory 6—i (ie ⁇ 1,..., S-1 ⁇ ) stores the area specification variables in addition to the connection variables representing the connection information.
  • the connection information is the logical function memory of the preceding logical function memory 41 (i-1) between the two logical function memories 4-1 (i-1) and 4-1i.
  • the area specification variable is a variable for specifying the memory area of the logic function memory 41 (i-l), 41 i. Therefore, the connection memory 6-i also has a function as an area designation storage means. These details will be described later.
  • FIG. 41 is a diagram showing the configuration of the connection circuit of FIG. 40 and the memory 'address' register (MAR).
  • the connection circuit 5-i is provided with a memory 'packing' shifter (hereinafter referred to as “MPS”) 9 2, and a Reinole 'selector (rail selector) 9 3.
  • MPS memory 'packing' shifter
  • Reinole 'selector rail selector
  • the MPS 92 has k input lines (data input lines), the same number (k) of output lines (data output lines) as input lines, and shift control lines. Each output line of the logical function memory 4 in the previous stage is connected to each input line of the MPS 92. Connect to the MPS92 shift control line Memory 6—Part of the area specification variable R output from i (hereinafter, referred to as “column selection variable”) is input.
  • the column selection variable is the memory where the data to be fetched is stored when a part of the data read from the memory cell in the logic function memory 41 (i-1) in the previous stage is stored.
  • the MPS 92 can select a necessary one from the output variables of the logic function memory 4- (i-1) in the preceding stage.
  • the rail 'selector 93 includes a plurality of 2-input 1-output multiplexers (hereinafter, referred to as "MUX") 93a.
  • MUX 2-input 1-output multiplexers
  • Each MUX 93a has one output terminal, one input terminal (data input terminal), and one selection control input terminal.
  • connection variable output from the connection memory 6-i is input to the selection control input terminal of each MUX 93a.
  • Each MUX 93a selects the 0-side input terminal or the 1-side input terminal according to the value of the connection variable input to the selection control input terminal.
  • each MUX 93a is connected to the input line of MAR 90-i.
  • Each output line of the input selection circuit 2-i is connected to one input terminal (0-side input terminal) of each MU X93a.
  • a part of the output line of the input selection circuit 2-i is directly connected to the input line of the MAR 90-i without going through the MUX 93a.
  • MUXs 93a are divided into two sets: a page Z input variable selection group 93b and a preceding stage output variable Z input variable selection group 93c.
  • the row specification variable R 2 specifies the area in the row direction of the memory cell to be accessed when accessing the memory cell in the subsequent logic function memory 41 i. Variable.
  • Each MUX 93a of the page Z input variable selection group 93b selects either the row specification variable or the input variable and outputs it to the input line of the MAR 90-i.
  • the number of bits of the row specification variable can be made variable.
  • Each output line of the MPS 92 is connected to one-side input terminal of each MUX 93a of the preceding-stage output variable / input variable selection group 93c.
  • Each MU X 93a of the preceding stage output variable / input variable selection group 93c is either the output variable selected by the MPS or the input variable output from the logic function memory 4-(i-1) of the previous stage. Select either one and output to the input line of MAR 90-i.
  • MAR90-i has a configuration in which a plurality of pairs of synchronous D flip-flops (hereinafter, referred to as “DFF”) 90 a and bypass selection circuits 90 b are arranged.
  • DFF synchronous D flip-flops
  • Each DF F 9 O a has a data input terminal (D), a data output terminal (Q), a clock terminal (LOAD), and a “reset terminal” (RST). It consists of a two-input one-output multiplexer.
  • An external clock signal (clock) is input to the clock terminal (LOAD) of the DFF 90a.
  • This clock signal is the data strobe signal.
  • the reset signal (reset) output by the arithmetic control unit 10 is input to the reset terminal (RST) of the DFF 90a.
  • the data input terminal (D) of the DFF 90a is connected to the 1-side input terminal of the bypass selection circuit 90b by a bypass line 90c.
  • the data output terminal (Q) of the DFF 90a is connected to the 0-side input terminal of the bypass selection circuit 90b.
  • the data input terminal of each DFF 90a is connected to each output line (each output line of the rail selector 93 or input variable selection circuit 2-i) of the preceding connection circuit 5-i.
  • the bypass control output from the arithmetic control unit 10 is connected to the selection control input terminal of the bypass selection circuit 90 b.
  • a path control signal is input.
  • the bypass selection circuit 90b selects the 0-side input terminal or the 1-side input terminal according to the bypass control signal.
  • a part of the DFF 90a has its data output terminal connected to the subsequent DAS 91-i, and the other part has its data output terminal connected to the external output line 7-i.
  • DFF 90 a connected to each MU X 93 a of the input variable selection group 9 3 c of the preceding stage is partially connected to the DAS 91 i of the subsequent stage, and the remaining part is externally output. Connected to line 7—i.
  • FIG. 42 is a diagram showing a configuration of an output circuit 86 1 i (i ⁇ ⁇ 1, 1,..., S ⁇ ) of a programmable logic device according to Embodiment 10 of the present invention.
  • the output circuit 86-i comprises an output selection circuit 94, an output shifter 95, an output packing shifter 96, an output selection memory 97, an output packing register 98, and an output register 99.
  • Output selecting circuit 9 based on the value of the step variable output from the arithmetic controller 1 0 (step), any of the output variable to Y S which is output to the external output line 7- 1 ⁇ 7- s Choose one. Then, the selected output variable is output to the output shifter 95.
  • the output variable from the output selection circuit 94 is input to the output shifter 95.
  • the output shifter 95 shifts the output variable and outputs it to the output packing shifter 96.
  • the output packing shifter 96 has a plurality of data input lines and a plurality of data output lines. A part of the data input line is connected to an output line of the output shifter 95, and the other part is connected to an output line of an output packing register 98 described later. Output packing.
  • the output line of the shifter 96 is connected to the input line of the output packing 'register.
  • the number of input lines of the output packing shifter 96 is the sum of the number of output lines of the output shifter 95 and the number of output lines of the output packing register 98. Meanwhile, output packing shifter 9
  • the number of output lines of 6 is the same as the number of output lines of output packing register 98.
  • the output packing shifter 96 shifts the input line by a predetermined amount and connects a part of the input line to the output line. When the shift amount is 0, the input line connected to the output line of the output packing register 98 is connected to the output line of the output packing shifter 96. .
  • the output selection memory 97 stores information on the shift amount of the output shifter 95 and the output packing shifter 96.
  • the output selection memory 97 outputs these shift 1 and quantity information to the output shifter 95 and the output packing shifter 96 in accordance with the page variables input from the arithmetic control unit 10.
  • the output shifter 95 and the output packing shifter 96 shift according to the shift amount information.
  • the output packing register 98 latches the output of the output packing shifter 96 according to an externally input clock.
  • the output of the output packing register 98 is output to the output register 99, and is fed back to the input side of the output packing shifter 96.
  • output variables sequentially output to the external output lines 70-i can be packed in the output packing register 98 in order without gaps.
  • an output load signal (0_load) is input from the operation control unit 10 when all operations are completed, the output register 99 captures and holds the output of the output packing register 98.
  • FIGS. 43 to 45 are diagrams showing the flow of the arithmetic processing operation of the programmable logic device according to the tenth embodiment.
  • ⁇ . ⁇ 5 is a five-phase clock.
  • the DAS selection control signal is set to 1. Therefore, DAS 91-1-0 to 91-4 is the former.
  • the input value from the stage is selected and transmitted to the logic function memory 4 in the subsequent stage.
  • all the logic function memories 410 to 4-4 are in a low power consumption state.
  • an input variable X is input to the input variable register 1 from an external input line.
  • Input variable register 1 captures and holds input variable X.
  • the input variable X is output from the input variable register 1 to each input variable selection circuit 2-0 to 2_4.
  • Each input selection circuit 2-i (i ⁇ ⁇ 0, 1, 2, 3, 4 ⁇ ) stores the i-th logic function memory 4 out of the input variables X according to the output value of the input selection memory 3-i. 1. Select the input variable to be input to i.
  • the input selection memory 2-0 outputs the input variable to the input line of the logic function memory 410.
  • the input selection memory 2—i (ie ⁇ 1, 2, 3, 4 ⁇ ) inputs the input variables to the input lines of the connection circuit 5—i.
  • connection circuit 5-1 connects the output line of the logic function memory 410, the output line of the input variable selection circuit 2-1 and the input line of the MAR 90-1 according to the output of the connection memory 6-1. Then, part of the calculation result of the first-stage LUT is output to the external output line 7-1 as an output variable. Other variables are output to the input line of MAR 90-1 as intermediate variables. The input variables are also output to the MAR 90-1 input line.
  • the MAR 90-1 captures and holds the intermediate variables and the input variables. And the power control signal ⁇ . Becomes 0, and the logic function memory ⁇ It enters the low power consumption state. At the same time, as shown in FIG. 44 (a), the power supply control signal becomes 1, and the logic function memory 411 enters the wake-up state. Then, the operation result of the second-stage LUT is output from the output line of the logic function memory 411.
  • the connection circuit 5-2 connects the output line of the logic function memory 41-1, the output line of the input variable selection circuit 2-2, and the input line of the MAR 90-2 according to the output of the connection memory 6-2.
  • a part of the operation result of the second stage of the LUT is output as an output variable Y 2 to the external output line 7-2. Further, other variables, is output as an intermediate variable U 2 to the input line of the MAR 90-2. The input variable X 2 is also output to the MAR 90-2 input line.
  • the power consumption of the entire circuit is reduced by setting only the logic function memory used for the operation to the backup state and executing the operation, and setting the other unused logic function memories to the low power consumption state. Can be suppressed.
  • the programmable logic device of the present embodiment can execute a plurality of tasks by pipeline processing. This makes it possible to efficiently process many tasks.
  • all the logic function memories 4-0 to 4-1 (s-1) are set to the wake-up state, and the bypass control signal input to MAR 90-i (ie ⁇ 1,..., s-1)) is set to 1
  • MAR 90-i ie ⁇ 1,..., s-1
  • FIG. 46 is a diagram for explaining the concept of memory packing.
  • Fig. 46 (a), Fig. 4 6 (b) The figure shows the memory map of the logic function memory.
  • the number of page specification bits must be variable. It is also necessary to be able to read the column address in the logical function memory from an arbitrary position.
  • connection circuit 5-i (ie ⁇ 1,..., S -1 ⁇ ) according to the present embodiment shown in FIG. 41 enables such memory packing.
  • the page specification performed by the row specified variables R 2 to connect memory 6- i outputs.
  • what is the page designation bit Whether the bit is used is specified by the connection variables output from the connection memory 6-i, which are input to the MUX 93a of the page Z input variable selection group 93b.
  • up to three bits can be used as the page designation bits (this is not limited to three bits, and any number of bits may be designed according to the purpose). If not used as a page specification bit, that bit can instead be filled with an input variable.
  • the read position of the column address in the logic function memory is changed by the MPS 92.
  • the MPS 92 uses the logic function memory 4-(i-1) Shift output by 8 bits. This makes it possible to read the column address in the logic function memory from an arbitrary position.
  • the reading position of the column address is specified by the column selection variable 1 ⁇ output from the connection memory 6-i. As described above, by using the connection circuit 5-i (i i ⁇ 1,, s-1 ⁇ ) of the present embodiment, memory packing can be realized.
  • the arithmetic control unit 10 outputs to the output circuit 86-i the step number (i-1) of the logic function memory 4- (i-1) to which the output variable is output as a step variable (step).
  • the output selector 94 selects an output variable based on the value of the step variable (step).
  • the selected output variable Y i is output to the input line of the output shifter 95.
  • the output selection memory 97 outputs information on the shift amount of the output shifter 95 and the output packing shifter 96 based on the value of the step variable (step).
  • the output shifter 95 shifts the output variable according to the shift amount information input from the output selection memory 97. This allows variables to be packed from the end bits, except for unused bits of the output variable.
  • the output of the output shifter 95 is output to the input line of the output packing shifter 96.
  • the output packing shifter 96 further shifts the input line by a predetermined amount, and connects a part thereof to the output line. For example, assume that the number of valid bits of the output variable output from the output shifter 95 is r bits. In this case, the output packing shifter 96 shifts the input line by r bits and connects it to the output line. As a result, the r-bit output variable output from the output shifter 95 is packed into the range of the lower bits of the input line of the output packing register 98. The output packing register 98 holds the output value of the output packing shifter 96 in synchronization with the clock elk.
  • the step variable (step) becomes i, and 'the output selector 94 selects the output variable Y i +1 .
  • the output packing is performed. The number is output.
  • the variable value previously held in the output packing 'register 98 is fed back to the input line of the output packing shifter 96. Therefore, the variable value previously held in the output packing register 98 is also input to the output packing 'register 98 after being shifted by the same decimal number as the new output variable. Then, the output packing 'register 98 holds the output value of the output packing' shifter 96 in synchronization with the clock elk.
  • FIG. 47 is a diagram illustrating a configuration of a programmable logic device according to Example 11 of the present invention.
  • the basic configuration of the programmable logic device of the present embodiment is the same as that of the programmable logic device of the tenth embodiment.
  • s (s ⁇ 2) logic function memories 410-400 are used.
  • Example 10 differs from Example 10 in that (s -1) is connected in a ring shape. That is, a connection circuit 5 s, a MAR 90 s, and a DAS 91 s are provided at a stage subsequent to the logic function memory 41 (s-1), and the output line of the DAS 91 s is connected to the logic function memory. Connected to input line 4-0.
  • FIG. 48 A four-stage LUT cascade is realized using these two logic circuit memories 410, 4-1.
  • the first-stage LUT is page 0 of logic circuit memory 4-0 (Fig. 48 (a))
  • the second-stage LUT is page 0 of logic circuit memory 4-1.
  • the third-stage LUT is used as the first page of the logic circuit memory 40-10 (Fig. 48 (c))
  • the fourth-stage LUT is used as the 1 ⁇ ⁇ "of the logic circuit memory 4-1.
  • Figure 48 (d) Note that the page is fixed here, but the above-mentioned memory packing method may be used to increase the memory usage efficiency of the logic circuit memory. it can.
  • the logical function f in (Equation 16) can be represented by a six-stage LUT cascade as shown in Fig. 49 (a).
  • the logic function g in (Equation 17) can be represented by a six-stage LUT cascade as shown in Fig. 49 (b).
  • these two LUT cascades are realized using a programmable logic device in which six logic circuit memories are connected in a ring.
  • the input variables of each stage of the LUT cascade of the logic function ⁇ and the input variables of each stage of the LUT cascade of the logic function g are shifted from each other so as to overlap.
  • the two LUT cascades are combined into one LUT ring as shown in FIG.
  • two combinational logic circuits are represented by one LUT ring. If this LUT ring is stored in each logic memory, the operations of the two combinational logic circuits f and g can be executed simultaneously by one programmable logic device.
  • connection circuit and the connection memory using the connection circuit and the connection memory, the output line of the preceding logic function memory, the input line of the input variable, and the subsequent logic function are used in accordance with the respective target logic functions.
  • the connection relationship with the input lines of the memory can be reconfigured. This increases the degree of freedom in combining the number of available logic function rails and the number of input variables. . Then, it becomes possible to design more logic circuits with more objective logic functions with one LUT cascade logic circuit. Further, since the combination of the number of rails and the number of input variables can be optimized, the number of input lines of the logic function memory can be minimized. As a result, memory usage efficiency is improved. As a result, the utilization efficiency of the LSI chip is improved. Therefore, downsizing and high integration of the circuit can be achieved.
  • connection circuit enables the output of the logic function memory in the preceding stage to be connected to an external output line for outputting the operation result of the logic function. This makes it possible to extract the output of the logic function memory in the middle of the LUT cascade as an output variable, reduce the required memory amount, and increase the operation speed.
  • a memory area having a different LUT of the logic function is allocated to a plurality of target logic functions, and selectively accessible memory areas are selectively switched according to the output of the area designation storage means. It is possible to execute the operation of the objective logic function.
  • input variables to be input to each connection circuit and each logic function memory can be individually selected by each input variable selection circuit. Therefore, it is possible to perform operations of a plurality of logic function memories at the same time, thereby enabling pipeline processing.

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Automation & Control Theory (AREA)
  • Logic Circuits (AREA)

Abstract

 目的論理関数に応じ、論理関数メモリ間の入力線数、レイル数を変化させ、メモリ容量を必要最小限に抑えて最適化設計できるプログラマブル論理デバイスである。論理関数メモリ(4)を直列に順序配列し、LUTを記憶させる。外部入力線から、各論理関数メモリ(4)への入力変数を入力する。二つの論理関数メモリ(4)間において、接続メモリ(6)が記憶する接続情報に従って、接続回路(5)が前段の論理関数メモリ(4)の出力線又は外部入力線と後段の論理関数メモリ(4)の入力線との接続を行う。目的論理関数に合わせて、接続情報を書き換えれば、接続回路を再構成し、入力線数、レイル数を変化させることができる。レイル数と入力線数の比を論理関数に合わせて最適化し、メモリ容量を必要最小限に抑えることが可能となる。

Description

明 細 書 プログラマプル論理デパイス 技術分野
本発明は、 プログラム可能な論理デバィス (programmable logic device) に係り、 特に、 目的論理関数を、 順序づけられた複数の分解関数に関数分解し、 それら分解関 数を分解表として表現したルックアップ ·テーブル ·カスケ一ド (look up table cascade;以下 「LUTカスケード」 とレ、う。 ) の演算を行うためのプログラマブル論 理デバイスに関する。 背景技術
近年、 論理回路の設計においては、 フィールド 'プログラマブル 'ゲートアレイ ( Field Programmable Gate Array。 以下、 「FPGA」 という。 ) が広く用いられるよ うになつている (引用文献 [1] ) 。 FPGAは、 マトリックス状に配列された複数 の論理セル (Configurable Logic Block;以下、 「CLB」 という。 ) の内容と論理 セル間の配線の接続とをメモリの書き換えによって変更することが可能なプログラマ ブノレ論理デバイスである。 FPGAは、 プログラムに従ってソフトウェア的に演算を 行うマイクロ 'プロセッサ (Micro Processing Unit;以下、 「MPU」 とレ、う。 ) と は異なり、 ハードウェア的に演算を行う。 従って、 論理関数の演算実行速度が速いと いう特徴を有する。
—方、 FPGAは、 各 C L B間の物理的な配線の引き回しをプログラムにより変更 する。 そのため、 配線遅延をできる限り小さくするように考慮した配置配線設計が必 要とされ、 設計に長時間を要する。 また、 各 CLB間の配線め引き回し方に依存して 、 配線遅延時間が変化する。 そのため、 設計時において論理回路の演算時間の予測が 困難である。
また、 2次元的に配列された C L B間の配線を、 再構成可能なように自在に接続切 り替えを行うことから、 チップ内における配線領域の割合が非常に大きくなる。 また 、 接続部にパス · トランジスタを使用する、 ため配線部分の遅延が非常に大きい。 そこで、 上記 FPGAの欠点をカバーするプログラム可能な論理回路として、 LU Tカスケード (LUT cascade) が提案されている (引用文献 [2] , [3] 参照) 。 L UTカスケードとは、 LUTを直列接続したものであり、 演算処理を行う論理関数 ( 目的論理関数) を関数分解して得られる複数の分解関数の L U Tを直列接続した形で 表現できる。 FPGAは、 論理回路をそのまま 2次元的な CLBのネットワークとし て実現するのに対し、 LUTカスケードは、 目的論理関数を 1次元的に直列接続した LUTで実現する点において異なる。
つまり、 ?0 で用ぃられる各じ1^8は、 基本的な論理ゲートを実現するもので ある。 そして、 これらの基本論理ゲートを配線により結合することで、 複雑な論理回 路を実現することに基本的な設計思想がある。 従って、 必然的に、 FPGAをチップ 上にレイァゥトする場合、 2次元的に配置された CLB間を自在に配線接続するため の配線ネットワークを構成する必要がある。 そのため、 論理領域のほかに広レ、配線領 域が必要となり、 レイァゥト面積が大きくなりがちである。
それに対し、 LUTカスケードにおいては、 一般に、 多入力多出力の複雑な論理関 数を表現する LUTを、 直列的 (1次元的) に接続して、 複雑な論理回路を実現する ことに基本的な設計思想がある。 そのため、 各 LUTの出力と入力は、 一般に複数の 配線により接続される。 そして、 2次元的な配線ネットワークは不要であるため、 一 般に配線領域は少なく、.チップ面積の殆どが L U Tを格納するためのメモリ領域とな る。 また、 配線のための、 チップ面積や、 配線部分の遅延時間も FPGAに比べて少な い。
以下、 L U Tカスケードの一設計法について簡単に説明する。 第 52図は LUT力 スケードの原理を表す図である。 なお、 ここでは簡単のため、 中間出力のない LUT カスケ一ドについて説明を行う。
LUTカスケードにおいて論理関数の演算を行う場合、 まず、 演算を行う論理関数 (目的論理関数) f(X)を s個 (s≥2) の分解関数 { ( ) ; i=0, -, S-1} に関数分解 する。 ここで、 Χ=( ,···,χη— は入力変数を表す。 また、 入力変数の集合を {X}で表す
。 ここで、 {χ}={χ。} ι ··υ {xs— , {x η {Ι^}=Φ (i≠j; i, je{o, --, 3-1}) である。 各分解関数 fiの出力変数 (一般に、 ベクトル) を YI + 1で表す。 以下、 X,Yの変数の個数 を し I Υ Iのように表すこととし、 特に、 I =n, I Xj I , と表 記する。
任意の目的論理関数 ま、 n。=k (kは分解関数 f。の入力変数の数) 、
Figure imgf000005_0001
(0く iく s-1) , ns1=k - us— t (0≤t≤k-2) となるように関数分解することが可能である (引 用文献 [2] , [3] 参照) 。 そこで、 目的論理関数 fを S- 1個の k入力の分解関数 (j e{0, -, s-2}) と 1個の k- 1入力の分解関数 fs— とに分解する。 そして、 各分解関数 fr (re{0, --,ε-Ι}) を分解表により表し、 これを LUT (look up table) とする。 こ こで、 目的論理関数 fr ( )の分解表 (decomposition chart) とは、 2 rl列 21 1行の 表で、 各行、 各列に 2進符号のラベルをもち、 その要素が frの対応する真理値であるよ うな表をいう。
第 52図において、 s個の LUT (LUT。〜LUTS— は、 それぞれ、 分解関数 { ; i = 0, ···, s-1} を表現したものである。 それぞれの LUT (LUTr) は、 k入力 ur + 1出力の メモリ (以下、 「論理関数メモリ」 という。 ) を用いて実現することができる。 この ような論理関数メモリを、 第 52図に示すようにカスケード接続することにより、 L U Tカスケードが実現される。
L U Tカスケードでは、 目的論理関数 fの入出力変数の個数が大きい場合には、 多数 の L U Tをカスケ一ド接続する必要がある。 そのため、 最適化された F P G Aに比べ れば演算速度は遅くなる場合もある。 しかし、 L U Tカスケードでは、 各分解関数の 演算は、 論理関数メモリを用いて高速に行われる。 そのため、 MP U上.で動くプログ ラムに比べると演算速度を高速化することができる。
そして、 L U Tの段数によって、 一義的に演算速度が定まる。 そのため、 論理回路 の設計時に目的論理関数の演算時間を正確に予測することが容易である。 また、 L U Tカスケードでは、 互いに隣接する論理関数メモリ間でのみ配線を行えばよい。 その ため、 論理回路の設計時には配線遅延等の影響を考慮する必要がない。 従って、 L U Tカスケ一ドは F P G Aに比べると論理回路設計が格別に容易になる。
しかしながら、 実際に第 5 2図に示したような L U Tカスケ一ドにより目的論理関 数の演算を行う場合には、 目的論理関数を関数分解して得られる分解関数の L U T間 のレイル数 (二つの L U T間の線数 (中間変数の数) ) や各 L U Tの入力変数の個数 が目的論理関数により異なる。 そのため、 種々の目的論理関数を論理回路で実現しよ うとした場合、 入力変数の個数及びレイル数が異なる種々の L U Tカスケ一ドの論理 回路が必要となり、 実用性に欠ける。
そこで、 多様な目的論理関数に対応可能なプログラマブル論理デバィスとするため には、 各論理関数メモリの入力のビット数に余裕をもたせるべく、 あらかじめビット 数を十分大きくとっておくことが考えられる。 しかし、 論理関数メモリのメモリ容量 は、 論理関数メモリの入力が 1増加するごとに 2倍に増大する。 従って、 入力のビッ ト数に余裕をもたせる場合、 使用されないメモリ領域が増大しメモリ領域の無駄が多 くなる。 また、 メモリ容量の増大に伴いメモリのレイアウト面積が増大する。 そのた め、 回路の高集積ィヒが困難となり、 回路消費.電力も大きくなる。 . そこで、 本発明の目的は、 目的論理関数に応じて、 各論理関数メモリ間の入力変数 の入力線数とレイル数とを柔軟に変化させることが可能で、 論理関数メモリの入力数 、 延いては論理関数メモリのメモリ容量を必要最小限に抑えて設計することが可能な プログラマブル論理デバィスを提供することにある。 '
〔引用文献〕 .
[ 1 ] 米国再発行特許 R e . 3 4, 3 6 3号明細書
[ 2 ] 笹尾勤, 松浦宗寛, 井口幸洋, "多出力関数のカスケード実現と再構成可能 ハードウェアによる実現" , 電子情報通信学会 FTS研究会, FTS2001- 8, pp. 57-64, 三 重大学(2001- 04) .
[ d ] T. Sasao, M. Matsuura, and Y. ェ guchi, A cascade realization of multiple—output function for reconf igurable hardware, " International Workshop on Logic and Synthesis (IWLS01) , Lake Tahoe, CA, June 12 - 15, 2001. pp. 225- 230. 発明の開示
本発明に係るプログラマブル論理デバイスの第 1の構成は、 以下の構成を含むこと · を特徴とする:
( 1 ) 論理関数の L U T (look up table) を記憶するための、 直列に順序づけて配列 された論理関数メモリ ;
( 2 ) 前記各論理関数メモリに対する入力変数が入力される複数の外部入力線;
( 3 ) 二つの前記論理関数メモリ間において、 前段の前記論理関数メモリの出力線又 は前記外部入力線のうち後段の前記論理関数メモリの各入力線に接続されるものを選 択するための接続情報を記憶する接続メモリ ;
( 4 ) 二つの前記論理関数メモリ間において、 前記接続メモリの出力に従って、 前段 の前記論理関数メモリの出力線又は前記外部入力線と後段の前記論理関数メモリの入 力線との接続関係の再構成を行うことが可能な接続回路。
各段の論理関数メモリには、 目的論理関数を L U Tカスケ一ドにより表現するため に各 L U Tが表現する論理関数を格納しておく。 なお、 ここで 「メモリ」 とは、 各ァ ドレスに対応して一つのデータが記憶されており、 了ドレスを指定することによって そのアドレスに対応するデータを読み出す装置をいう。 従って、 「メモリ」 は物理的 に 1個単体をなすメモリ素子に限らず、 複数のメモリ素子を組み合わせて構成したも のであってもかまわない。 各接続回路は、 接続メモリが出力する接続情報に従って、 前段の論理関数メモリの出力線又は外部入力線の何れかと、 後段の論理関数メモリの 各入力線との接続関係を構成する。 これにより、 L U Tカスケードが実現できる。 演算処理を行う L U Tカスケ一ドに合わせて論理関数メモリ内の論理関数及び接続 メモリ内の接続情報を書き換える。 これにより、 後段の論理関数メモリの入力線に接 続するための前段の論理関数メモリの出力線の数、 及び外部入力線の数を自在に変更 できる。 そして、 L U Tカスケードを実現する論理回路を自在に再構成することが可 能となる。 すなわち、 目的論理関数に応じて、 隣接する二つの L U T間を結ぶレイル' 数と外部からの入力変数の入力数との割合を任意に変更することが可能となる。 その ため、 1つのプログラマブル論理デバイスで実現可能な目的論理関数の範囲を広げる ことができる。 その結果、 各論理関数メモリの入力線の数を減らすことが可能となる 。 従って、 回路を小型化することもできる。
また、 各論理関数の L U Tの出力数と外部入力線からの入力変数の個数との割合を 最適化することができる。 そのため、 論理関数メモリの入力線の配分、 メモリの使用 領域の無駄をなくすことができる。
なお、 本発明に係るプログラマプル論理デバイスは、 論理関数メモリが直列 (一次 元的) に配列されている点において、 F P GAとは決定的に異なる。 すなわち、 FPGAの場合、 ファン 'アウト (fan- out) があるので、 CLB間の入 出力線の'接続関係は 1対 1対応とはならない。 従って、 あらゆる接続関係に対応でき るように接続回路の自由度を大きくする必要がある。 そのため、 接続回路が大規模と なり、 チップ内に占める配線領域の割合が非常に大きレヽ。
それに対し、 本発明に係るプログラマブル論理デバイスは、 論理関数 モリが直列 配列されている。 従って、 接続回路は、 1つの論理関数メモリの出力線及ぴ外部入力 線と、 1つの論理関数メモリの入力線とを選択的に対応づけて接続すればよい。
すなわち、 前段の論理関数メモリの出力線の集合を ={ }、 外部入力線の集合を X={x}、 後段の論理関数メモリの入力線の集合を Zr+1 = {zr + 1}とする。 このとき、 接続回 路は、 UXとなるように、 集合 UXの要素のうちの |zr + 11個が集合 zr + 1の各要 素に一対一対応するように接続を行う。 すなわち、 接続回路は、 基本的には l^uxl個 の線から |zr+11個の線を選択する機能 (また、 必要に応じて、 選択した |zr+11個の線の 順序を変更する機能) を有するものであればよい。
従って、 ハードウェア的には、 接続回路は、 FPGAの接続回路に比べ、 極めて簡 単な構成とな,る。 そめため、 チップ内に占める配線領域も極めて小さくすることがで きる。 また、 2つの論理関数メモリ間のみの接続であり、 配置配線設計は不要である 。 従って、 回路設計において物理的な配線遅延の影響を考慮する必要もない。
更に、 チップ内における配線領域が限定的である。 そのため、 高いクロック周波数 で使用する場合にも、 予め反射やクロストーク等の伝送路の周波数特性や寄生効果の 影響を受けにくく設計しておくことが可能である。 すなわち、 高速回路としても使用 することが可能となる。 これは、 FPGAにより複雑な論理回路を設計した場合に、 高いクロック周波数で使用できる回路の実現が困難になることとは対照的である。 本発明に係るプログラマブル論理デバイスの第 2の構成は、 以下の構成を含むこと を特徴とする: (1) 論理関数の LUTを記憶するための、 リング状に配列された論理関数メモリ ;
(2) 前記各論理関数メモリに対する入力変数が入力される複数の外部入力線;
(3) 二つの前記論理関数メモリ間において、 前段の前記論理関数メモリの出力線又 は前記外部入力線のうち後段の前記論理関数メモリの各入力線に接続されるものを選 択するための接続情報を記憶する接続メモリ ; .
(4) 二つの前記論理関数メモリ間において、 前記接続メモリの出力に従って、 前段 の前記論理関数メモリの出力線又は前記外部入力線と後段の前記論理関数メモリの入 力線との接続関係の再構成を行うことが可能な接続回路。
このように、 論理関数メモリをリング状に接続することによって、 後述 (実施例 1 1 〔例 3〕 参照。 ) のように、 入力変数の一部又は全部が共通する複数の組み合わせ 論理関数を、 LUTリングとして 1つのプログラマブル論理デバイスで同時に実現さ せることが可能となる。
また、 後で述べるように、 論理関数メモリのアドレスを保持するラッチを付カロし、 クロック 'パルスと同期させ、 論理関数メモリをリング状に接続することにより、 任 意段数の LUTカスケードを模擬することが可能となる。 これにより、 論理関数メモ リの使用効率をより向上させることができる。
なお、 本発明に係るプログラマブル論理デバイスは、 FPGAと異なり、 論理関数 メモリは一次元的なリング状に配列されている。 従って、 接続回路は、 1つの論理関 数メモリの出力線及ぴ外部入力線と、 1つの論理関数メモリの入力線とを選択的に対 応づけて接続すればよい。 従って、 第 1の構成の場合と同様、 FPGAの接続回路に 比べて接続回路は極めて簡単となり、 配線領域も小さくすることができる。 また、 2 つの論理関数メモリ間のみの接続であるため、 配置配線設計は不要である。 従って、 論理設計において物理的な配線遅延の影響を考慮する必要はない。
本発明に係るプログラマブル論理デバイスの第 3の構成は、 前記第 1又は 2の構成 において、 論理関数の演算結果を外部回路に出力するための外部出力線を備え; 前記接続メモリは、 二つの前記論理関数メモリ間において、 前段の前記論理関数メ モリの出力線のうち前記外部出力線に接続されるものを選択するための接続情報をも 記憶するものであり ;
前記接続回路は、 二つの前記論理関数メモリ間において、 前記接続メモリの出力に 従って、 前段の前記論理関数メモリの出力線と前記外部出力線との接続をも行うもの である;
ことを特徴とする。
この構成により、 直列接続された論理関数メモリうちの任意のものから、 その出力 を取り出すことができる。 従って、 L U Tカスケードの段数が少ない場合には、 論理 関数メモリ列の途中の出力を出力変数として取り出すことで、 演算処理を早期に終了 させて演算速度を高速化することができる。
また、 多出力論理関数の演算を行う場合には、 L U Tカスケードの途中で確定した 演算結果を、 後段の L U Tに入力することなく、 途中で出力させることができる。 こ れにより、 後段の L U Tの入力数を削減することができる。 また、 演算結果が確定し た時点でそれを出力することで、 演算処理速度を上げることができる。 更に、 後段の L U Tの入力数が減ることで、 後段の L U Tに必要とされるメモリ容量の削減が可能 となる。 '
本発明に係るプログラマブル論理デパイスの第 4の構成は、 前記第 1乃至 3の何れ か一の構成において、 論理関数メモリのメモリ領域を指定する領域指定変数を記憶す る領域指定記憶手段を備え;
前記接続回路は、 二つの前記論理関数メモリ間において、 領域指定記憶手段の出力 に従って、 .
前段の前記論理関数メモリの出力及び外部入力線からの入力変数が、 領域指定変数 により特定される後段の前記論理関数メモリのメモリ領域に入力されるように、 又は、 領域指定変数により特定される前段の前記論理関数メモリのメモリ領域から の出力及び外部入力線からの入力変数が、 後段の前記論理関数メモリに入力されるよ うに、
前段の前記論理関数メモリの出力線、 外部入力線、 及ぴ領域指定記憶手段の出力線 と、 後段の前記論理関数メモリの入力線との接続を行うものである;
ことを特 ί敷とする。
この構成によれば、 各論理関数メモリに L U Tを格納する場合に、 メモリを複数の 領域 (ページ等) に区切って複数の L U Tを記憶させておく。 領域指定記憶手段には 、 それぞれの論理関数の L U Tが格納されたメモリ領域を指定する領域指定変数の値 を記憶させておく。 接続メモリには、 それぞれの論理関数に対応する領域指定変数が 出力される領域指定記憶手段の出力線が、 後段の論理関数メモリの入力線と接続する ように接続情報を記憶させておく。
そして、 所望の論理関数の L U Tを読み出す場合には、 その論理関数に対応する領 域指定変数、 領域指定記憶手段から、 接続情報を接続メモリから読み出し、 接続回路 の接続関係を切り替える。 それとともに、 各論理関数メモリの領域指定変数で指定さ れるメモリ領域の L U Tを読み出す。 これにより、 複数の目的論理関数の演算を切り 替えて行うことが可能となる。
本発明に係るプログラマブル論理デバイスの第 5の構成は、 前記第 1乃至 4の何れ か一の構成において、 前記論理関数メモリの入力側又は出力側に設けられ、 外部から 入力されるデータ · ストロープ信号に従って、 前記論理関数メモリへの入力又は前記 論理関数メモリの出力を取り込んで一時的に保持する中間変数レジスタ;
を備えていることを特徴とする。
これにより、 各段の論理関数メモリの出力は中間変数レジスタで一時的に保持され る。 そのため、 演算処理の流れは中間変数レジスタで一時的に止められる。 すなわち
、 データ 'ストローブ信号に同期して、 各論理関数メモリを 1段ずつ L U Tによる演 算が行われる。 従って、 データ ·ストローブ信号を外部回路のクロックなどに同期さ せれば、 各論理関数の L U Tの演算を外部回路に同期させることができる。
また、 論理関数メモリごとに演算が 1段ずつ行われる。 そのため、 複数のデータ ( ジョブ) に対する演算をパイプライン処理で実行させることが可能となる。
また、 論理関数メモリがリング状に接続されている場合、 演算可能な論理関数の入 力数に関する自由度を大きくすることができる。 すなわち、 目的論理関数の入力変数 の個数が各論理関数メモリの入力線数の総和よりも多い場合、 クロック ·パルスを使 用することにより、 論理関数メモリのリングを一周以上用いて L U Tカスケードを構 成する。 そして、 同じ論理関数メモリの使用領域を必要に応じて変化させて関数演算 を順次行わせればよい。 従って、 目的論理関数やメモリ量の数に応じて L U Tカスケ 一ドの段数を柔軟に変化させることが可能となる。 そのため、 設計自由度が大きくな る。
更に、 論理関数メモリがリング状に接続されている場合、 クロック 'パルスを使用 することにより、 L U Tカスケードの段数を多くすることができる。 そのため、 各段 の L U Tを小さくすることができる。 従って、 各段の論理関数メモリは、 メモリ容量 の比較的小さいものを使用することができる。 そのため、 各論理関数メモリの消費電 力は低く抑えることが可能である。 更に、 演算の流れに従って、 一部の論理関数メモ リのみがデータ読み出しの動作をする。 そして、 この動作を行うメモリのみが主とし て電力を消費する。 従って、 M P UゃF P G Aに比べ、 低消費電力で動作させること が可能となる。 また、 データ読み出しの動作をしていないメモリは、 低消費電力状態 (スリープ状態) にするように構成すれば、 更に消費電力の低減が可能となる。
ここで、 データ 'ストローブ信号としてクロック ·パルスを使用することができる 本発明に係るプログラマブル論理デバィスの第 6の構成は、 前記第 1乃至 5の何れ か一の構成におい!:、 前記中間変数レジスタと並列に接続されたパイパス線; 及び、 前記中間変数レジスタの出力側に設けられ、 前記中間変数レジスタの出力線 又は前記バイパス線の何れか一方を選択し、 選択された線の信号を出力するバイパス 選択回路;
を備えていることを特徴とする。
この構成により、 各バイパス選択回路で、 中間変数レジスタの出力線を選択すれば 、 データ ·ストローブ信号を使用した同期的な演算処理を行わせることができる。 ま た、 各バイパス選択回路で、 バイパス線を選択すれば、 前段の論理関数メモリの出力 力 中間変数レジスタで止められることなく直接後段の論理関数メモリに送られる。 従って、 L U Tカスケードによる目的論理関数の演算を非同期的に高速で実行するこ とができる。
本発明に係るプログラマブル論理デバイスの第 7の構成は、 前記第 5又は 6の構成 において、 前記データ ·ストローブ信号を計数し、 演算を実行する前記論理関数メモ リの番号を特定する論理関数メモリ特定手段;
を備えていることを特徴とする。
このように、 論理関数メモリ特定手段を設けることで、 演算の実行中において、 ジ ヨブが存在する論理関数メモリの位置を特定する'ことができる。 ここで、 「ジョブ」 とは、 入力変数に対して L U Tカスケ一ドの各 L U Tにより演算を実行しデータを生 成する作業をいう。
本発明に係るプログラマブル論理デバイスの第 8の構成は、 前記第 5乃至 7の何れ か一の構成において、 演算処理を実行させる前記論理関数メモリを通常動作状態とし 、 それ以外の前記論理関数メモリを低消費電力状態とする制御を行う電源制御手段; を備えていることを特徴とする。
この構成によれば、 各段の論理関数メモリによる演算処理は中間変数 1
時的に止められながら、 データ 'ストローブ信号に同期して 1段ずつ実行される。 こ の際、 電源制御手段は、 演算処理に使用されていない論理関数メモリは低消費電力状 態 (スリープ状態) とし、 演算処理に使用する論理関数メモリのみを通常動作状態 ( ウェイク ·アツプ状態) とする。 これにより、 プログラマブル論理デパイスの消費電 力を低減させることもできる。
本発明に係るプログラマブル論理デバイスの第 9の構成は、 前記第 1乃至 8の何れ か一の構成において、 前記各論理関数メモリの一部の入力線は、 前記接続回路を介す ことなく前記外部入力線に直接接続されていることを特徴とする。
最初の段の論理関数メモリについては、 総ての入力に対して入力変数が入力される 。 一方、 最初の段以外の各論理関数メモリにおいては、 その入力の一部には前段の論 理関数メモリの出力が入力され、 他の入力には、 入力変数が入力される。
ところで、 実用的な L U Tカスケードの多くにおいて、 最初の段以外の各論理関数 メモリには、 最低限 1つの入力変数が入力される。 そこで、 プログラマブル論理デバ イスを汎用目的で製作する場合には、 最初の段以外の各論理関数メモリの入力のうち の少なくとも 1つに、 接続回路を介すことなく入力変数を直接入力するように構成す る。 これにより、 接続回路の入力線の数を減らすことができる。 また、 接続回路及び 接続メモリの出力の配線数を減らすことができるため、 回路を更に小型ィ匕することが 可能となる。
本発明に係るプログラマブル論理デバィスの第 1 0の構成は、 前記第 1乃至 9の何 れか一の構成において、 前記各論理関数メモリの一部の出力線は、 前記接続回路を介 すことなくその後段の論理関数メモリの一部の入力線に直接接続されていることを特 徴とする。 最初の段以外の各論理関数メモリにおいては、 その入力の一部には前段の論理関数 メモリの出力が入力され、 他の入力には、 入力変数が入力される。
ところで、 実用的な L U Tカスケードの多くにおいて、 最初の段以外の各論理関数 メモリには、 最低 1つは前段の論理関数メモリの出力が入力される。 そこで、 プログ ラマブル論理デバイスを汎用目的で製作する場合には、 最初の段以外の各論理関数メ モリの入力のうちの一部を、 接続回路を介すことなく前段の論理関数メモリの出力を 直接入力するように構成する。 これにより、 接続回路の入力線の数を減らすことがで きる。 また、 接続回路及び接続メモリの出力の配線数を減らすことができるため、 回 路を更に小型化することが可能となる。
本発明に係るプログラマブル論理デバイスの第 1 1の構成は、 前記第 1乃至 1 0の 何れか一の構成において、 前記接続回路は、 複数のセレクタ回路を含み;
前記各セレクタ回路は、 前記接続メモリの出力値に従って、 前段の前記論理関数メ モリの出力線と前記外部入力線とのうち何れか一つ、 又は、 前段の前記論理関数メモ リの出力線と前記外部入力線と領域指定記憶手段の出力線とのうち何れか一つを選択 して後段の前記論理関数メモリの入力線に接続するものであること ;
を特徴とする。
本発明に係るプログラマブル論理デバイスの第 1 2の構成は、 前記第 1乃至 1 1の 何れか一の構成において、 前記接続回路は、 前記接続メモリの出力値に従って、 前段 の前記論理関数メモリの出力線の接続順序をシフトして後段の前記論理関数メモリの 入力線に接続するシフタ回路を含むことを特徴とする。
本発明に係るプログラマブル論理デバイスの第 1 3の構成は、 前記第 1乃至 1 2の 何れか一の構成において、 前記接続回路は、 複数のマルチプレクサを含み;
前記マルチプレクサは、 前記接続メモリの出力値に従って、 前段の前記論理関数メ モリの複数の出力線及び複数の前記外部入力線のうちの何れか一本を選択して後段の 前記論理関数メモリの入力線に接続するものであること ;
を特徴とする。 図面の簡単な説明 '
第 1図は本発明の実施例 1に係るプログラマブル論理デバィスの全体構成を表すブ 口ック図である。
第 2図は第 1図の入力変数選択回路の構成を表す回路図である。
第 3図は第 1図の論理関数メモリの構成を表すプロック図である。
第 4図は第 1図の接続回路の周辺の回路ブロック図である。
第 5図は第 1図の接続メモリの構成を表すプロック図である。
第 6図は実施例 1に係るプログラマブル論理デバイスの動作を表すフローチヤ一ト である。
第 7図は第 1図の接続回路にク口スバ ·スィツチを使用した場合の回路プロック図 である。
第 8図は第 1図の接続回路にマルチプレクサ ·アレイを使用した場合の回路プロッ ク図である。
第 9図は第 1図の接続回路にセレクタ ·アレイを使用した場合の回路プロック図で ある。
第 1 0図は 8ビット加算器の論理関数を表す図である。
第 1 1図は 8つの分解関数に関数分解した 8ビット加算器を表す図である。
第 1 2図は 8つの分解関数に関数分解した 8ビット加算器を表す図である。
第 1 3図は 4つの分解関数に関数分解した 8ビット加算器を表す図である。
第 1 4図は 4つの分解関数に関数分解した 8ビット加算器の各分解関数の真理値で ある η , 第 1 5図は例 1において論理関数メモリ論理関数メモリ 4 - 0の 0ページ目に記憶さ れた真理値である。 ―
第 1 6図は例 1において論理関数メモリ論理関数メモリ 4 - 1〜4— 3の 0ページ目 に記憶された真理値である。
第 1 7図は本発明の実施例 2に係るプログラマブル論理デバィスの全体構成を表す ブロック図である。
第 1 8図は本発明の実施例 3に係るプログラマブル論理デバィスの全体構成を表す プロック図である。 .
第 1 9図は本発明の実施例 4に係るプログラマブル論理デバイスの全体構成を表す ブロック図である。
第 2 0図は第 1 6図の出力レジスタ及び出力デコーダの構成を表すブロック図であ る。 .
第 2 1図は第 1 7図の記憶素子の構成を表すブロック図である。
第 2 2図は本発明の実施例 5に係るプログラマブル論理デバィスの全体構成を表す ブロック図である。
第 2 3図は第 1 9図の第 2の出力選択回路の構成を表すプロック図である。
第 2 4図は本発明の実施例 6に係るプログラマプル論理デバイスの全体構成を表す プロック図である。
第 2 5図は本発明の実施例 7に係るプログラマブル論理デバィスの全体構成を表す プロック図である。
第 2 6図は第 2 5図の演算制御部 1 0の構成を表すプロック図である。
第 2 7図は第 2 6図の出力コントローラ 6 4の内部構成を表すプロック図である。 第 2 8図は実施例 7に係るプログラマプル論理デバィスの動作を表すフローチャー トである。 第 2 9図は実施例 7に係るプログラマブル論理デバイスの動作時における各信号の 変化を表すタイミング図である。
第 3 0図は 2 nビットの二進数 A, Bの加算を行う論理関数 fを表す図である。
第 3 1図は 2 nビットの二進数 A,Bの加算を行う論理関数 fを 2 n個の分解関数 { , g¾ η— に関数分解した図である。
第 3 2図は 2 XIビットの二進数ん Bの加算を行う論理関数 fを 2 n個の分解関数 {g。 , gい …, η— に関数分解した図である。
第 3 3図は 2 nビットの二進数 A,Bの加算を行う論理関数 fを n個の分解関数 { f0 , f1 ; …, f^ }に関数分解した図である。
第 3 4図は分解関数 f iの真理値表である。
第 3 5図は論理関数メモリ 4 - 0の第 1ページに記憶する真理値表である。
第 3 6図は論理関数メモリ 4 - 0〜 4 - 3の第 0ページに記憶する真理値表である。 第 3 7図は本発明の実施例 8に係るプログラマブル論理デバィスの全体構成を表す プロック図である。
第 3 8図は本発明の実施例 9に係るプログラマブル論理デバィスの全体構成を表す ブロック図である。
第 3 9図は本発明の実施例 1 0に係るプログラマブル論理デバイスの全体構成を表 す図である。 - 第 4 0図は本発明の実施例 1 0に係るプログラマブル論理デバイスの演算部の構成 を表すブロック図である。
第 4 1図は第 4 0図の接続回路とメモリ ·ァドレス · レジスタの構成を表す図であ る。
第 4 2図は本発明の実施例 1 0に係るプログラマプル論理デバイスの出力回路の構 成を表す図である。 ' 第 43図は実施例 10に係るプログラマプル論理デパイスの演算処理動作の流れを 表す図である。
第 44図は実施例 10に係るプログラマブル論理デバイスの演算処理動作の流れを 表す図である。
第 45図は実施例 10に係るプログラマブル論理デパイスの演算処理動作の流れを 表す図である。
第 46図はメモリ ·パッキングの概念を説明する図である。
第 47図は本発明の実施例 1 1に係るプログラマブル論理デバイスの構成を表す図 である。 ' 第 48図は 2個の論理回路メモリを用いたプログラマブル論理デバイスで 4段の L UTカスケ一ドを実現する例を表す図である。
第 49図は論理関数 f, gを LUTカスケードで表現した図である。
第 50図は論理関数 f, gを LUTカスケードで表現した図である。
第 51図は論理関数 f , gを合成した LUTリングを表す図である。
第 52図は LUTカスケードの原理を表す図である。 発明を実施するための最良の形態
〔用語の定義〕
最初に、 以下の説明で使用する記号及ぴ用語について定義しておく。
(1) 記号 「{ }」 は非順序集合 (unordered set) を表す。 記号 「 ( ) 」 は順序集 合 (ordered set) を表す。 変数の集合 {xい χ2, '··,χη}について、 集合の各要素の順序を 考慮する場合には、 (Xい χ2,···,χη)=Χと記す。 順序を考慮しない場合には、 { ,¾,··· ,xn} = {¾と記す。 Xの変数の個数を Iで表す。
(2) プログラ プル論理デバイスにより LUTカスケ一ドを実現しようとする論理 関数のことを 「目的論理関数」 といい、 fと記す。 目的論理関数の入力変数の集合を X=(xい χ2, ···,χη) (但し、 ηは自然数) と記す。
(3) 目的論理関数 f (X)が、 f (X) =f s (Xs—い f s2 (Xs2 , f s3 (〜f (Xい f。(X。)) · · ·))),
{xjeix}, {x}={x。} u } υ·'·υ {xs— のような合成論理関数で表されるとする。 こ のとき、 目的論理関数 f (X)を順序づけられた複数の関数の集合 (f。, f i, ··.·, f s )に分解 することを 「関数分解 (function decomposition) 」 という。 目的論理関数 f (X)を関 数分解して得られる各関数 {fi; ie{0, 1, 2,…, s - 1}}を 「分解関数 (decomposition function) 」 とレヽつ。
(4) 「多出力論理関数」 とは、,出力変数の個数が複数である論理関数をいう。
以下、 本発明を実施するための最良の形態について、 図面を参照しながら説明する
(実施例 1)
第 1図は本発明の実施例 1に係るプログラマブル論理デバイスの全体構成を表すブ 口ック図である。
本発明の実施例 1に係るプログラマプル論理デバイスは、 入力変数レジスタ 1、 入 力変数選択回路 2—。〜 2— 3、 人力選択メモリ 3— 0〜3— 3、 ff侖理関数メモリ 4―。〜 4— 3、 接続回路 5 -:!〜 5— 3、 接続メモリ 6—:!〜 6— 3、 及び演算 J御眘 [510を備え ている。
入力変数レジスタ 1は、 目的論理関数 f (X)の演算に用いられる n個の入力変数 X=(Xl, ···, ) (但し、 nは自然数) を記憶する。 尚、 入力変数 Xは、 外部入力線より入力変数レ ジスタ 1に入力される。 論理関数メモリ 4- 0〜4- 3は、 目的論理関数 fを関数分解し て得られる分解関数 ¾; ie{0, 1, 2, 3}}の真理値表を、 LUTとして記憶する。 尚、 本 実施例においては、 説明の便宜上、 論理関数メモリ 4- i (ie{0, 1,2, 3}) の段数を 4 段としているが、 一般にはこの段数は任意に設定することができる。 これらの論理関 数メモリ 4-0〜 4- 3は、 直列に配列され、 それぞれ接続回路 5-1〜 5- 3を介して 直列に順序づけて配列されている。
入力変数選択回路 2-0〜 2- 3は、 入力変数レジスタ 1から出力される n個の入力変 ¾X= (Xい …, xn )のうちから、 それぞれ、 各段の論理関数メモリ 4- 0〜4- 3に記憶され た分解関数 {f i; i E {0, 1, 2, 3} }の真理値表の入力変数 Xi (ie {0, 1, 2, 3}) を選択し、 論理関数メモリ 4一 0又は接続回路 5—1〜 5— 3へ出力する。 入力選択メモリ 3- 0〜 3 - 3は、 それぞれ、 入力変数選択回路 2-0〜 2 - 3の入力変数の選択に関する情報 ( 以下、 「入力選択情報」 という。 ) が LUTとして記憶されている。 入力変数選択回 路 2- 0〜2- 3は、 各入力選択メモリ 3- 0〜 3- 3から出力される入力選択信号に基 づいて、 入力変数の選択の切り換えを行う。
各接続回路 5- i ( i G { 1 , 2, 3 } ) は、 論理関数メモリ 4- ( i -1) 及び入力 変数選択回路 2- iより入力される、 中間変数 及び入力変数 を、 選択するとともに 適宜順序づけて、 後段の論理関数メモリ 4- i及び外部出力線 7- iへ接続する。 各接 続メモリ 6- iは、 各接続回路 5- iの接続関係に関する情報 (以下、 「接続情報」 と いう。 ) を記憶している。 接続回路 5- iは、 接続メモリ 6- iから出力される接続情 報信号に基づき、'接続関係の再構成を行う。
演算制御部 1 0は、 このプログラマブル論理デパイス全体の演算処理の制御を行う 第 2図は第 1図の入力変数選択回路 2- i (iE {0, l, 2, 3}。 以下、 符号 2- 0〜2- 3 をまとめていう場合には、 符号 2と記す。 )の構成を表す回路図である。 尚、 この回路 図は、 動作原理を説明するために、 簡略ィヒして記載している。
本実施例の入力変数選択回路 2- i (ie{0, 1,2, 3})は、 第 2図のようなシフタ回路に より構成されている。 尚、 第 2図では、 説明の便宜上、 1 7入力 8出力の入力変数選 択回路 2- iの例を示しているが、 入出力の数は、 これに限られるものではない。 入力変数選択回路 2- i £{0,1,2,3})の入カ端子 (00)〜^1(16)は、 入力変数レジ スタ 1の出力端子に接続されている。 従って、 入力端子 in (00)〜in (16)からは入力変 数 X=(xい…, xn)が入力される。 また、 入力変数選択回路 2-0の出力端子 out (00)〜 out (07)は、 論理関数メモリ 4-0の入力に接続されている。 入力変数選択回路 2- i (i e {1, 2, 3})の出力端子 out (00) -out (07)は、 接続回路 5 - iの入力側端干の一部に接続 されている。
入力変数選択回路 2- i (iE {0,1, 2, 3})は、 入力側から、 8ビットシフト回路 1 1 - 3、 4ビッ トシフト回路 1 1-2、 2ビットシフト回路 1 1 _ 1、 及び 1ビットシフト 回路 1 1-0が直列に接続されている。 これにより、 入力変数選択回路 2- i (iE
{0,1,2,3})は、 入力端子 in(00)〜in(16)の内容を 0〜15ビッ トの範囲でシフトさせて、 連続する 8ビット分を出力端子 out (00)〜out (07)に出力させることができる。
各シフト回路 1 1- 0〜1 1-3には、 1ビットの制御線 shf 0〜shf 3が接続されてい る。 制御線 shf j (je{0, 1,2, 3}) 力 のときは、 シフト回路 1 1- iは接続のシフトを 行わず、 制御線 shf j (je{0, 1,2, 3}) が 1のときは、 シフト回路 1 1- iは接続のシフ トを行う。 尚、 入力変数選択回路 2- i (iG{0, l,2,3})の各制御線 shf0〜shf3は、 入力 選択メモリ 3- iの出力に接続されている。 すなわち、 入力選択メモリ 3-0から読み 出された 4ビットのメモリの内容 (すなわち、 '入力選択情報) 、 選択制御信号とレ てそのまま制御線 shf0〜shf3に出力され、 入力変数選択回路 2- i (ie{0, l,2,3})にお ける入力変数のシフト量が設定される。 - 尚、 第 2図では、 簡略化のために省略しているが、 シフタ回路 1 1-0〜1 1-3内 の各パス ' トランジスタにより入 変数 Xの信号振幅が減衰する。 従って、 実際には、 入力変数 Xの信号振幅を捕償するために、 シフタ回路の数段ごとに増幅器 (バッファ) を挿入しておくことが必要となる。
また、 多出力論理関数を、 複数の出力集合に分割して実現する'場合には、 入力変数 選択回路 2- i (ie{0,l,2,3})にシフタが使用できない場合がある。 このような場合、 接続回路を第 7図に示すクロスバ ·スィッチや第 8図に示すマルチプレクサ ·アレイ (後述) と同様のものを使用してもよい。
第 3図は第 1図の論理関数メモリ 4- i (iE{0, l,2,3) . 以下、 符号 4- 0〜4- 3を まとめていう場合には、 符号 4と記す。 )の構成を表すブロック図である.。
論理関数メモリ 4は、 その内部に、 pページからなるメモリ領域 FM。〜FMp を備えて いる。 これらのメモリ領域には、 分解関数 (ie {0,1,2, 3}, je{0,•■•,ρ-Ι}) の真 理値表が LUT (図では 「LUT(j)」 と記す。 ) として格納されている。 以下では 、 LUT( j )が格納されているメモリ領域を FMjと記す。
尚、 ここで、 添字 「(j)」 (jG{0,'",p- 1}) は、 ; i番目の目的論理関数 f(j)を表す。 本実施例におけるプログラマブル論理デバイスでは、 複数の目的論理関数 f(j)の分解関 数 {fi(j) }を、 それぞれの論理関数メモリ 4の第〗ページに記憶させておく。 そして、 使用目的に応じて、 ページを切り換えて、 目的論理関数を選択することが可能な構成 とされている。
また、 論理関数メモリ 4- i (ie{0, 1,2, 3}) は、 アドレス 'デコーダ 16を備えて いる。 了ドレス ·デコーダ 16は、 演算制御部 10から入力されるページ選択番号 pr に基づいて、 メモリ領域 のメモリ 'アクセスを可能とする。 また、 アドレス 'デコ ーダ 16は、 接続回路 2から Ninビットの入力線 17を介して入力される変数 0 ,ΥΓ) ( re {0,1,2, 3}. 但し、 r=0のとき、 Υτ = φ。 ) に基づき、 メモリ領域 FI^内のメモリ内容 を読み出すアドレスを選択する。 この選択されたアドレスのメモリ ·セルには、 分解 関数 f r ( j )の真理値 fr ( j ) (Xr, Yr )が格納されている。 メモリ領域 FMrは、 アドレス 'デコ ーダ 16により、'メモリ ·セル内のァドレスが指定されると、 当該メモリ ·セル内に 記憶されているデータを、 中間変数 Yr + 1 = (yr + 1,い…, yr + 1, lYr + 1|)として出力線 18 に出力する。 第 4図は第 1図の接続回路 5- i (iE{l,2,3}. 以下、 符号 5- 1〜5- 3をまとめて いう場合には、 符号 5と記す。 )の周辺の回路ブロック図である。 尚、 この回路図は、 動作原理を説明するために、 簡略化して記載している。
本実施例における接続回路 5は、 入力線 ί。〜^ 5からの入力信号を循環的に任意のビ ット数だけシフトさせて出力線 0l〜o15に出力するシフタ回路により構成されている。 尚、 第 4図においては、 説明の便宜上、 一例として、 16ビット入力 16ビット出力 の接続回路を記載しているが、 入出力のビット数は、 特にこれに限定されない。
接続回路 5は、 入力線 i。〜it 5の側から、 8ビットシフタ回路 20 - 3、 4ビッ トシフ タ回路 20-2、 2ビットシフタ回路 20-1、 1ビットシフタ回路 20-0が直列に接 続された構成とされている。 各シフタ回路 20_ i (iE{0, 1,2,3}) のオン Zオフは、 接続メモリ 6 (符号 6- 1〜6- 3をまとめて符号 6と記す。 以下同じ。 ) の出力に接 続された制御線 Sj ( j e {0,1,2,3} ) により制御される。
接続回路 5- r (re {1,2, 3}) の入力線 i。〜i15のうち、 i。〜i7は前段の論理関数メモ リ 4- (r- 1) の出力側に接続されており、 i85は入力変数選択回路 2- rの出力側に 接続されている。.また、 接続回路 5- rの出力線 oQ〜o15のうち、 o。〜o7は、 後段の論理 関数メモリ 4- rの入力側に接続されており、 o8〜o15は外部出力線 7— rとなっている。 各シフタ回路 20-0-20-3の接続関係のシフトがないときには、 入力線 i。〜: ί15 は、 それぞれ出力線。。〜 ο15に接続される。 これにより、 前段の論理関数メモリ 4- (r- 1) の出力である中間変数 Yrは、 総て後段の論理関数メモリ 4- rに入力される。
—方、 シフタ回路 20-3のみが接続関係を 8ビットシフトさせた場合には、 入力線 i0〜i7力 それぞれ、 出力線 o8〜o15に接続され、 入力線 i8〜i15力 それぞれ、 出力線 o。〜o7に接続される。 これにより、 前段の論理関数メモリ 4- (r-1) の出力である中 間変数 Yrは、 総て外部出力線 7- rに出力される。 また、 入力変数選択回路 2 - rから出力 される入力変数 は、 総て後段の論理関数メモリ 4-rに入力される。 また、 各シフタ回路 20- 0〜20- 2により、 接続関係を jビット (l j^7) だ けシフトさせた場合には、 入力線 i15_j + 1〜i15, ;!。〜 _ それぞれ、 出力線 o8〜o15 に接続され、 入力線 ij〜i7 + jが、 それぞれ、 出力線 o。〜o7に接続される。 これにより、 入力線 i8〜i7 + jに入力される jビットの入力変数 Xrが、 後段の論理関数メモリ 4-rに入 力されるとともに、 入力線 ij〜i7に入力される 8- jビットの中間変数 Yfが後段の論理関 数メモリ 4_rに入力される。 従って、 後段の論理関数メモリ 4-rに入力する入力変数) ς の変数の個数 | ηΓと、 後段の論理関数メモリ 4 - rに入力する中間変数 の変数の個 数 lYr |=urとを、 k=nr+ur =8の条件下で自由に変更することが可能となっている。
第 5図は第 1図の接続メモリ 6の構成を表すプロック図である。 接続メモリ 6- i ( i e { 1, 2, 3} ) の内部には、 p個のメモリ領域 CM。〜CMP 備えられている。 各 メモリ領域 CM。〜CMp には、 接続回路 5- iの各シフタ回路 20- (Nc-1) 〜20- 0 ( ここで、 Ncは接続回路におけるシフタ回路の段数を表し、 第 4図では Nc =4である。 ) の シフト情報を表す接続情報 (¾c— '),…, sQ(j)) ( j ≡{0, ···, p-1}) が記憶されてい る。 尚、 ここで、 添字 「(j)」 (jE{0,■··, - 1}) は、 j番目の目的論理関数 f(j)に対応 した接続情報であることを表す。
これらのメモリ領域 CMo CMp iの Ncビットの出力線 s。〜sNc— iは、 接続回路 5- iの各 シフタ回路 20- 0〜20- (Nc-1) の制御線となっている。
また、 各接続メモリ 6の内部には、 アドレス ·デコーダ 21が設けられている。 了 ドレス ·デコーダ 21は、 演算制御部 10から入力されるページ選択番号 prに従って 、 r番目のメモリ領域 CMrを選択する。 アドレス ·デコーダ 21により選択されたメモリ 領域 CMrは、 Ncビットの接続情報 (sNc ,…, s0 (r))からなる接続制御信号を接続回 路 5に出力する。
以上のように構成された本実施例に係るプログラマブル論理デバイスにおいて、 以 下その動作について説明する。 第 6図は実施例 1に係るプログラマブル論理デバイスの動作を表すフローチヤ一ト である。
最初に、 演算を行おうとする目的論理関数 f(X)を関数分解した分解関数 ¾,···, fs (2≤s≤4) を、 各論理関数メモリ 4- 0〜4- 3の第 rページに書き込んでおく。 尚、 ここで、 rはページ番号を示す。 また、 各入力選択メモリ 3-0〜3- 3及び各接続メモ リ 6-:!〜 6-3の第 rページには、 上記各分解関数 {f。, fい…, fs— に対応した入力選 択情報及び接続情報を書き込んでおく。 尚、 各メモリへの書き込み機能については、 第 1図では図示していないが、 通常のメモリの書き込み方法により行われる。 以下で は、 s=4であるものとして説明する。
以上の書き込みがされた状態において、 まず、 演算制御部 10は、 各入力選択メモ リ 3- 0〜3- 3、 及ぴ接続メモリ 6-:!〜 6- 3に対して、 ページ選択番号 prを設定す る (S 1) 。
これにより、 各入力選択メモリ 3- 0〜3- 3は、 第 rページに書き込まれた入力選択 情報を入力変数選択回路 2- 0〜2_3の制御線 shf0〜shf3に出力する (S 2) 。 また 、 接続メモリ 6- 1〜6 - 3は、 第 rページに書き込まれた接続情報( ),■··, s。(r))を 接続回路 5 - 1〜 5 - 3の各制御線に出力する (S 3) 。
入力変数選択回路 2 - 0〜 2 - 3は、 制御線 shf 0〜shf 3に入力された入力選択情報に 従って、 入力端子 in (00)〜: in (16)の一部を出力端子 out (00)〜out (07)と電気的に接続 する。 接続回路 5-:!〜 5-3は、 各制御線より入力される接続情報 ( "),···, s。ひ))に 従って、 入力線 i8〜i15と出力線 o。〜o7とを接続する。
次に、 演算制御部 10は、 入力変数レジスタ 1により、 入力変数 Xの出力を行う (S 4) 。 これにより、 論理関数メモリ 4-0及び接続回路 5—1〜 5— 3には、 それぞれ、 入力変数 Xo , Xい X2, X3が出力される。
これに伴い、 まず論理関数メモリ 4-0は、 入力変数 X。に対する分解関数 fnの真理値 f0(XQ)を中間変数 として出力する。 この中間変数 は、 接続回路 5-1を介して論理 関数メモリ 4-1の入力に伝達される。 また、 場合によっては、 中間変数 の一部は、 外部出力線 7— 1へと伝達される。 · 論理関数メモリ 4-1には、 論理関数メモリ 4-0から伝達された中間変数 と、 入力 変数選択回路 2 - 1及び接続回路 5 - 1を介して入力変数レジスタ 1から.伝達される入 力変数 が入力される。 論理関数メモリ 4-1は、 入力変数 及び中間変数 に基づき 、 分解関数 の真理値 ( ,^)を中間変数 Y2として出力する。 この中間変数 Υ2は、 接 続回路 5- 2を介して論理関数メモリ 4- 2の入力に伝達される。 また、 場合によって は、 中間変数 Υ2の一部は、 外部出力線 7— 2へと伝達される。
論理関数メモリ 4- 2には、 論理関数メモリ 4- 1から伝達された中間変数 Υ2と、 入力 変数選択回路 2-2及ぴ接続回路 5 - 2を介して入力変数レジスタ 1から伝達される入 力変数 Χ2が入力される。 論理関数メモリ 4- 2は、 入力変数 Χ2及び中間変数 Υ2に基づき 、 分解関数 f2の真理値 f2(X2,Y2)を中間変数 Υ3として出力する。 この中間変数 Υ3は、 接 続回路 5- 3を介して論理関数メモリ 4- 3の入力に伝達される。 また、 場合によって は、 中間変数 Υ3の一部は、 外部出力線 7 _ 3へと伝達される。
論理関数メモリ 4-3には、 論理関数メモリ 4- 2から伝達された中間変数 Υ3と、 入力 変数選択回路 2-3及ぴ接続回路 5 - 3を介して入力変数レジスタ 1から伝達される入 力変数 Χ3が入力される。 論理関数メモリ 4- 3は、 入力変数 Χ3及び中間変数 Υ3に基づき 、 分解関数 f3の真理値 f3(X3,Y3)を出力変数 fとして出力する。 この出力変数 fは、 外部 出力線 7— 4に伝達される (S 5) 。 以上の処理は、 前段から後段に向かって直列に 伝達しながらパイプライン処理により行われる。 そして、 目的論理関数 f の演算結果 は、 各外部出力線 7— :!〜 7— 4より取り出される。
なお、 本実施例では接続回路 5— :!〜 5— 3として、 第 4図のシフタ回路を使用し たが'、 接続回路 5— 1〜5— 3としては、 第 7図に示したクロスバ 'スィッチ (Cross Bar Switch) による接続回路 5— i ' ( i e { 1, 2, 3} ) や第 8図に示したマル チプレクサ'アレイ (Multiplexer Array) による接続回路 5— i" を使用することが できる。 要するに、 前段の論理関数メモリの出力線の集合 Υ^、 外部入力線の集合 、 後段の論理関数メモリの入力線の集合 に対して、 接続回路 5— iは、 集合 YwUXiの要 素から |Ζ 個の要素を選択し、 集合 の要素と一対一に対応づける機能 . (又は、 必要に 応じて、 選択した IzJ個の要素の順序を外部指示に従って置換し集合 の要素と一対一 に対応づける機能) を有するものであればよい。
尚、 上記クロスバ ·スィッチによる接続回路 5_ i ' は、 シフタ回路に比べると切 換制御線の数が多くなり回路が大きくなるという欠点はあるが、 信号が通過するパス · トランジスタの段数を減らすことができるため、 演算速度の高速化が可能となる。 また、 接続回路 5—;!〜 5— 3において、 変数順序の置換を必要としない場合には 、 第 9図に示したようなセレクタ 'アレイ (Selector Array) による接続回路 5— i ,''を使用してもよい。 セレクタ ·アレイによる接続回路 5— i '',は極めて簡単な回 路で構成することが可能である。 従って、 接続回路 5_ i','は、 小さいレイアウト面 積しか必要とせず、 高速であり、 回路消費電力も小さい。
また、 本実施例では、 各論理関数メモリ 4 _0〜4一 3を非同期に動作させる例を 示したが、 本発明においては、 各論理関数メモリ 4— 0〜4一 3をクロックで同期さ せて動作させてもよい。
次に、 上記動作をより分かりやすく説明するため、 具体的な例を用いて本実施例の プログラマブル論理デバィスの具体的な動作の説明を行う。
〔例 1〕 加算回路
ここでは、 簡単な例として、 二つの 8ビットの二進数 A=(a7, a6, a5, a4, a3, a2, aい a。), B = (b7, b6, b5, b4, b3, b2, bl5 b。)の加算を行う加算器を、 上記プロダラ マブル論理デバイスによって実行する例を説明する。 尚、 下位からの桁上げ (キヤリ 一) 入力ビットとして cinも考慮して、 以下のような演算を行う加算器を考える。
(数 1) ·
O 6 5 4 3 a< 1 CIQ
. b ¾ h 2 bQ
Cout SQ 5 4 ¾ 2 Si SQ ここで、 桁上げ入力ビッ卜 cinとは、 8ビット以上の大きな数の加算を行う場合に、 加算器を直列につなげて使用する際に、 下位の加算器からの桁上げを表すビットであ る。 桁上げ出力ビット c。utも、 同様に、 上位の加算器に出力する桁上げを表すビットで ある。
このような二つの 8ビットの二進数 A, Bの加算を行う論理関数を f =f (X) (X= (A, B) ) とすると、 論理関数 fは第 10図により表される。 この関数は、 第 1 1図のように、 8 つの分解関数 { , gい g2, g3, g4, g5, g6, g7}に関数分解することが可能である。 こ こで、 各分解関数は、 (数 2) 又は (数 3) のような論理式で表される。
(数 2)
90 = [ ί, ^ο]
= [O-QOQ V aQcin V bQcin, α0 ® ¾ Θ
(数 3) n. ― i ^ q.]
iϊ 一 ίし otti,
Figure imgf000030_0001
(¾ = 1,2,3,4,5,6,7) すなわち、 各分解関数は、 2つの入力変数 , ^及び桁上げを表す中間変数 c。 ut (i" 1〉の 2を法とする和 Si及び桁上げの中間変数 c。 u t ( 1 )を出力する論理関数となっている n これを、 第 1図のような 4段の論理関数メモリ 4- 0〜4- 3からなるプログラマブ ル論理デバイスで実現する。 この場合には、 第 12図に示したように、 分解関数 ½。, gい g2, g3, 'g4, g5, g6, g7}を、 4つの分角爭関数糸且 {g。, gx} , {g2, g3) , tg4, g5 } , {g6, g7}に分ける。 そして、 第 1 3図に示すように、 各々の分解関数組を 1つに 合成し、 4つの分解関数 f。, f1; f2, f3で表す。 ここで、 各分解関数は、. (数 4) 又は (数 5) のような論理式で表される 5入力 3出力論理関数である。
(数 4)
= [ai V (αι V bi)(a0b0 V a0cin V b0cin) ,
αι Θ &i Θ (a0b0 V,a0cin V bQcin}, α0 Θ 6o θ cin]
(数 5)
fi ― [CoutJ 2ij
一 [a2i+i i+i V (a2i+i V & 2i+i)(a2i&2i V 2ic^t ) V b2ic^( t 1)),
a2i+i Θ b2i+i Θ { 2ib2i V ^c^ V 62i&1)), a2i φ b2i ® )]
( 1,2,3)
各々の分解関数 f iの真理値表は、 第 14図のようになる。 そこで、 第 15図の真理値 表を、 論理関数メモリ 4-0の第 0ページに記憶させる。 第 16図の真理値表 (LUT ) を論理関数メモリ 4ー 1〜4— 3の第 0ページに記憶させる。 ここで、 それぞれ、 S2i, S2i + 1, cout (i) (ie{l,2, 3}) は、 それぞれ接続回路 5— (i+1) の入力線 i2 , i3, i4に出力されるように論理関数メモリの出力ビットを割り当てる。
各入力選択メモリ 3- 0〜3- 3の第 0ページには、 それぞれ、 0ビットシフト、 5 ビットシフト、 9ビットシフト、 13ビットシフトの情報を記憶させる。 すなわち、 各入力選択メモリ 3-0〜 3-3の入力選択情報 (shfO, shfl, shf2, shf3) として、 それぞれ、 (0,0, 0,0)、 (0,1,0,1)、 (1,0,0,1)、 (1, 1,0, 1)を記憶させる。 各接続メモリ 6-:!〜6-3の第 0ページには、 接続情報としてシフト情報 (4ビッ ト) を記憶させる。 すなわち、 接続情報として(s3,s2Sl,s。) = (0,1,0,0)を記憶させる 以上のようにプログラムされた状態において、 以下、 プログラマブル論理デバイス の演算処理を説明する。 .
まず、 入力変数レジスタ 1には、 変数 A,B,cinが入力される。 入力変数レジスタ 1は これらの変数を記憶する。 演算制御部 10は、 入力選択メモリ 3-0〜 3- 3、 論理関 数メモリ 4- 0〜4- 3、 及ぴ接続メモリ 6- 1〜6- 3に対してページ選択番号 prとし て第 0ページを設定する。
これにより、 各入力選択メモリ 3- 0〜3 3は、 第 0ページに書き込まれた入力選 択情報 (shfO, shfl, shf2, shf3) =(0,0,0,0)、 (0,1,0,1)、 (1,0, 0, 1), (1, 1, 0, 1)を 、 入力変数選択回路 2-0〜2- 3の制御線 Shf0〜shf3に出力する。 入力変数選択回路 2- 0〜2- 3は、 制御線 shf0〜shf3に入力された入力選択情報に従って、 入力端子 in (00)〜: in (16)の一部を出力端子 out (00)〜out (07)と電気的に接続する。
具体的には、 入力選択メモリ 3-0は、 (shfO, shfl, shf2, shf3) =(0, 0, 0, 0) なので、 in (00)〜: in (07)を out (00)〜out (07)に接続する。 入力選択メモリ 3-1は、 ( shfO, shfl, shf2, shf3) =(0, 1, 0, 1)なので、 5ビットシフトさせて、 in(05)〜 in(12)を out(00)〜out(07)に接続する。 入力選択メモリ 3- 2は、 (shfO, shfl, shf2, shf3) =(1, 0, 0, 1)なので、 9ビットシフトさせて、 in (09)〜: Ln (16)を out (00)〜out (07)に接続する。 入力選択メモリ 3- 3は、 (shf0, shfl, shf2, shf3) = (1, 1, 0, 1)なので、 1 3ビットシフトさせて、 in (13)〜;n (16)を out (00)〜out (03) に接続する。 このとき、 out (04)〜out (07)には入力変数は伝達されない。
ま.た、 接続メモリ 6- .1〜 6- 3は、 各々、 第 0ページに書き込まれた接続情報 (s3 (0),-,s0 (0)) = (0,1, 0,0)を接続回路 5-:!〜 5-3の各制御線に出力する。 接続回 路 5- 1〜5- 3は、 各制御線より入力される接続情報 (S3(k),"',s。(k))に従って、 入力 線 〜^ 5と出力線 o0〜o7とを接続する。 具体的には、 各接続メモリ 6- 1〜 6- 3は、 4ビットシフトさせて、 i4〜i, iをそれぞれ o。〜o7に接続し、 i12〜i15, i。〜: ί3をそれ ぞれ ο8〜ο15に接続する。
次に、 演算制御部 1 0は、 入力変数レジスタ 1により、 入力変数 Xの出力を行う。 こ のとき、 入力変数選択回路 2_ 1〜 2 - 3の入力端子には、 それぞれ、 (表 1) のよう に入力変数の値が入力される。
(表 1)
Figure imgf000033_0001
入力変数選択回路 2-0は、 (out (00), out (01), out (02), out (03), out (04)).= (cin, aい a0, bl5 b。)を出力し、 これを論理関数メモリ 4-0に入力する。 ここで、 出 力 out (05)〜out (07)は使用されないので省略した。
論理関数メモリ 4-0は、 第 0ページに記憶された LUT (LUT。) のアドレス . (i0, iい i2, i3, i4, i5, i6, i7)= (cin, al5 a0, b1 ; b0, -, - -) に記憶された真理値
f 0 (Ci n, aい a。, bい b。 )の値(ο。, oい o2, ο3 , o4, o5, o6, o7 ) = (―, , S。, Sい c。 u t (。), -,―, -)を接 続回路 5-1に出力する。 ここで、 「-」 はドントケア (0でも 1でもよい。 ) を表す 。 このとき、 接続回路 5—1の各入力線 (i0, iい i2, i3, i4, i5, i6, i7) には (- ,- , S0, S , c。u t (ΰ),-, -,-)が入力さ;^る。 '
一方、 入力変数選択回路 2-1は、 (out (00), out (01), out (02) , out (03)) = (a3¾,b3,b2)を出力し、 これを接続回路 5 - 1の入力線 (i8, i9, i10, in) に入力する 接続回路 5-1からは、 それぞれ、 (表 2) の値が出力される c
(表 2)
Figure imgf000034_0002
接続回路 5-1の出力線 ο8〜ο15は、 外部出力線 7— 1として取り出される。 従って、 演算結果 S。, Siが外部出力線 7— 1のうちの 2本に出力される。
次に、 ff侖理関数メモリ 4-1は、 第 0ページに記憶された LUT (LUT。) のアドレス (i0,i1} i2,i3, i4,i5,i6,i7)= (c。 u t ( 0 ),一,一, -, , ¾ , b3, b2 ) に記憶された真理値
(cut (0), , a2, b3, b2)の値、o0, 0い o2, o3, o4, o5, o6, o7) = (-, -, S2, S3, cout "), ,-,-) を接続回路 5- 2に出力する。 このとき、 接続回路 5- 2の各入力線 (i。, I,, i2, i3
, i7) には(-,-,32,83,。(^(1),-,-,-)が入カされる。
一方、 入力変数選択回路 2- 2は、 (out (00), out (01), out (02) , out (03)) = (a5,a4,b5,b4)を出力し、 これを接続回路 5- 2の入力線 (i^
Figure imgf000034_0001
iu) に入力する 接続回路 5-2からは、 それぞれ、 (表 3) の値が出力される c
(表 3)
Figure imgf000034_0003
接続回路 5-2の出力線 o8〜o15は、 外部出力線 7— 2として取り出される。 従って、 演算結果 S2 , S3が外部出力線 7— 2のうちの 2本に出力される。 次に、 論理関数メモリ 4- 2は、 第 0ページに記憶された LUT (LUT。) のアドレス (i0, iい i2, i3,i4, i5, i6,i7)= (cout (1),-, -, - a5,a4,b5,b4) に記憶された真理値 f 2 (c0 u t ( 1 ), , a4, b5, b4 )の値 (ο0 , 0い o2, o3, o4, o5, o6, o7 ) = (-, -, S4, S5 , c0 u t ( 2 ), -,―, -) を接続回路 5- 3に出力する。 このとき、 接続回路 5- 3の各入力線 (i。, iい i2, i3, i4, i5, i6, i7) には (-, -, S4,S5,c。ut(2), -, -,一)が入力される。
一方、 入力変数選択回路 2 - 3は、 (out (00) , out (01), out (02), out (03) ) = (a7, a6, b7, b6)を出力し、 これを接続回路 5-3の入力線 (^,^, ί,ο, ί^) に入力する。 接続回路 5- 3からは、 それぞれ、 (表 4) の値が出力される。
(表 4)
Figure imgf000035_0001
接続回路 5- 3の出力線 o8〜o15は、 外部出力線 7— 3として取り出される。 従って、 演算結果 S4, S5が外部出力線 7_ 3のうちの 2本に出力される。
最後に、 論理関数メモリ 4- 3は、 第 0ページに記憶された LUT (LUT。) のァドレ ス 0,1ぃ:12,:13,:14,;15, ,1_7)= (cout (2),-, -, - a7,a6,b7,b6) に記憶された真理値 f 3 (c。 u t ( 2 ), a7, a6, b7, b6 )の値 (o。, oい ο2 , ο3 , ο4 , o5, o6, o7 ) = (―,―, S6, S7, c。 u t ( 3 ),―,一, -) を出力線 7— 4に出力する。 これにより、 総ての演算結果が出力線 7— 1〜7— 4に 出力されて演算が終了する。
〔例 1終わり〕
(実施例 2)
第 1 7図は本発明の実施例 2に係るプログラマプル論理デバイスの全体構成を表す ブロック図である。 本実施例においては、 入力変数選択回路 2-1〜 2- 3の出力線の一部を、 接続回路 5-1-5-3を介すことなく、 論理関数メモリ 4- 1〜4- 3の入力に直接接続したこ とを特徴とする。 実用的な多くの論理関数においては、 論理関数メモリ 4- 1〜4 - 3 の入力には、 最低でも 1つの入力変数が入力される場合が多い。 すなわち、 入力変数 選択回路 2-1〜 2- 3の出力線の最低 1本は、 論理関数メモリ 4-1〜 4- 3の入力に 接続される場合が多い。 従って、 汎用的な用途で使用するプログラマブル論理デバィ スでは、 最初から入力変数選択回路 2 - 1〜 2 - 3の出力線の一部を、 接続回路 5- 1〜 5- 3を介さずに論理関数メモリ 4- 1〜4- 3の入力に直接接続しておけば、 接続回路 5-1〜 5-3の入力線の本数を減らすことができる。 その結果、 接続回路 5-:!〜 5 - 3を小型化することが可能となる。 また、 接続回路 5- 1〜5- 3を第 4図のようなシ フタ回路により構成する場合には、 シフタの段数を減らすことが可能であり、 演算速 度の高速化及び低消費電力化を図ることができる。
(実施例 3)
第 18図は本発明の実施例 3に係るプログラマブル論理デバイスの全体構成を表す ブロック図である。
本実施例においては、 接続回路 5 - 1〜 5 - 3に入力する入力変数を選択する入力変 数選択回路 2- 1〜2- 3に加えて、 接続回路 5- 1〜5- 3を介さずに、 論理関数メモ リ 4- 1〜4- 3に直接入力する入力変数の選択を行う入力変数選択回路 30 - 1〜 3 0 - 3及びその入力選択情報を記憶する入力選択メモリ 31-1-31-3を設けたこと を第 1の特徴とする。 また、 前段の論理関数メモリ 4- ( i-1) ( i e {1, 2, 3 } ) から後段の論理関数メモリ 4- iに入力される中間変数の一部を、 接続回路 5 - i を介さずに直接入力するように構成したことを第 2の特徴とする。
このように構成することで、 接続回路 5 - 1〜 5 - 3の入力線の本数を減らすことが できる。 その結果、 接続回路 5- 1〜5- 3を小型ィ匕することが可能となる。 また、 接 続回路 5-1〜 5- 3を第 4図のようなシフタ回路により構成する場合には、 シフタの 段数を減らすことが可能であり、 演算速度の高速化を図ることができる。
(実施例 4)
第 1 9図は本発明の実施例 4に係るプログラマブル論理デバィスの全体構成を表す ブロック図、 第 20図は第 1 9図の出力レジスタ及び出力デコーダの構成を表すブロ' ック図、 第 21図は第 20図の記憶素子の構成を表すプロック図である。 本実施例に おいては、 外部出力線 7— 1〜7_4に出力された出力変数を一時的に記憶する出力 変数レジスタ 51、 及び出力変数レジスタ 51が出力変数を取り込むためのロード信 号を出力する出力選択デコーダ 52を備えたことを特徴とする。 他の構成については 、 第 1図と同様であるため、 説明は省略する。 尚、 本実施例においては各論理関数メ モリ 4ー0〜4ー3は、 内部にアドレス 'ラッチ (図示せず) を備えており、 クロッ クにより同期して動作するものとする。
出力変数レジスタ 51は、 32個の記憶素子 M (i , j ) (ie{l,2, 3, 4}, j≡ {0, 1,2, 3, 4, 5, 6, 7}) を備えている。 各記憶素子 M ( i , j ) は、 データを保持する D フリップ'フロップ (以下、 「DFF」 という。 ) 53と 2入力 1出力のマルチプレ クサ (以下、 「MUX」 という。 ) 54とから構成されている。 DFF 53には、 共 通のクロック信号 Clockが入力される。 このクロック信号 Clockが 1のときに、 DFF 53はデータ入力 Dに入力された値をラッチする。 MUX 54の出力は DFF 53の データ入力 Dに接続されている。 また、 0? 53の出カ(3は、 MUX 54の 0顿の 入力 D 0に接続されている。 MUX 54の 1側の入力 D 1は、 外部出力線 7_ iの j 番目の線に接続されている。 MUX 54は、 ロード信号 Loadにより制御され、 Load = 0のときに 0側の入力を選択し、 Load = 1のときに 1側の入力を選択する。
出力選択デコーダ 52には、 演算制御部 10力 ら、 2ビットの出力選択信号 tが入 力される。 そして、 出力選択デコーダ 52は、 4つの出力選択信号 1\〜丁4を出力する 。 t二 (0, 0)のときは、 (Tl, Τ2, Τ3, Τ4) =(1, 0, 0, 0) が出力される。 t = (0, 1) のときは、 (Τ1, Τ2, Τ3, Τ4) =(0, 1, 0, 0) が出力される。 t = (1, 0)のときは、 (Tl, T2, Τ3, Τ4) =(0, 0, 1, 0) が出力される。 t二 (1, 1)のときは、 (Tl, T2, T3, T4) =(0, 0, 0, 1)が出力される。 各出力選択信号 T\ (i≡ {1, 2, 3, 4} ) は、 各記憶素子 M (i, ;1 ) にロード信号 Loadとして入力される。
演算制御部 10は、 演算開始時には、 t= (00) として、 論理関数メモリ 4一 0 が演算結果を出力した後に t= (01) 、 論理関数メモリ 4一 1が演算結果を出力し た後に t= (10) 、 論理関数メモリ 4一 2が演算結果を出力した後に t= (1 1) のように出力選択信号 tを切り換えて、 演算結果を出力変数レジスタ 51にラッチす る。 そして、 演算が終了した時点で、 出力変数レジスタ 51に記憶された出力変数を 読み出すことで、 演算結果を得ることができる。
(実施例 5)
第 22'図は本発明の実施例 5に係るプログラマブル論理デバイスの全体構成を表す ブロック図である。
本実施例においては、 第 1の出力選択回路 25、 第 2の出力選択回路 26、 入力選 択メモリ 3— 4、 及ぴ入力変数選択回路 2— 4を備えていることを特徴とする。 尚、 他の構成については、 第 1図と同様であるため、 説明は省略する。
第 2の出力選択回路 26は、 入力変数選択回路 2— 4から入力される入力変数の値 に従って、 最終段の論理関数メモリ 4一 3から出力される出力変数のうちの全部又は 一部を選択して出力する。 尚、 入力変数選択回路 2— 4は、 第 2図に示したものと同 様のシフト回路で構成されている。 但し、 本実施例では、 最終段の論理関数メモリ 4 一 3の出力が 8ビッ 1、であるため、 入力変数選択回路 2— 4に使用されるシフト回路 の出力は、 3ビットとされる。 一般には、 入力変数選択回路 2— 4の出力は、 最終段 の論理関数メモリ 4一 3の出力の数 Nに対して、 (数 6 )
Figure imgf000039_0001
とされる。 以下、 入力変数選択回路 2— 4の出力 out (00)〜out (02) (第 2図参照) を 、 それぞれ、 F0 , Fい F2で表す。
第 1の出力選択回路 2 5は、 マルチプレクサにより構成されており、 演算制御部 1 0から出力される出力選択信号 tに従って、 各論理関数メモリ 4一 0〜4 _ 2及び第 2の出力選択回路 2 6から出力される出力変数のうちの何れかを選択して出力する。 ここで、 出力選択信号 tとは、 第 1の出力選択回路 2 5が選択する出力線束の指定 番号 (t e { (00),(01),(10),(11) } ) を表す 2ビットの信号である。 第 1の出力選択回 路 2 5は、 t = (00)のときは接続回路 5— 1の出力線束 (第 4図の o8〜o1 5 ) を選択し 、 t = (01)のときは接続回路 5— 2の出力線束を選択し、 t = (10)のときは接続回路 5— 3の出力線束を選択し、 t = (11)のときは第 2の出力選択回路 2 6の出力線束を 選択する。
第 2 3図は第 2 2図の第 2の出力選択回路 2. 6の構成を表すブロック図である。 尚 、 この回路図は、 動作原理を説明するために、 簡略化して記載している。
第 2の出力選択回路 2 6は、 第 2 3図に示したように、 2入力 1出力のマルチプレ クサ (以下、 「 X」 という。 ) 3 1〜3 7を多段にカスケード状に接続し、 各段にお いて出力を、 MUX 3 8〜MUX4 4を通して取り出すことができるように構成されている 。 尚、 第 2 3図では、 説明の便宜上、 出力線のビット数 Ncが 8ビットの例を示している 力 Ncは 8ビットに限られるものではない。
第 2 3図において、 第 2の出力選択回路 2 6の入力線 y。〜y7は、 論理関数メモリ 4 _ 3の出力に接続される。 この入力線 y。〜y7より、 出力変数 Yの値が入力される。 また、 出力選択回路 2 6の出力線 f( Q )〜f( 7 )からは、 入力線 y。〜y7のうち選択された出力変数 の値 …, ト が出カされる。
入力線 y。, Yi、 入力線 y2, y3; 入力線 y4, y5、 及び入力線 y6, y7は、 それぞれ MUX 31、 MUX 32、 MUX 33 , 及び MUX 34の入力側に接続されている。 MUX31, 32、 及び匿 33, 34の出力は、 それぞれ匪 35、 及び MUX 36の入力側に接続されている。 MUX 35, 36の出力は、 MUX 37の入力に接続されている。
一方、 (入力線 y。, MUX 31の出力) 、 (入力線 y2, MUX 32の出力) 、 (入力線 y4, MUX 33の出力) 、 及び (入力線 y6, MUX 34の出力) は、 それぞれ MUX 38、 丽39、 MUX40、 及び MUX 41の入力側に接続されている。 また、 (入力線 Yl, MUX35の出力 ) 、 (入力線 y3, MUX 37の出力) 、 及び (入力線 y5, MUX 36の出力) は、 それぞれ 願 X42、 MUX43、 及び MUX44の入力側に接続されている。
MUX31〜34は、 共通の入力変数 F。により切換制御がされる。 すなわち、 F。が "0 " のときは、 MUX31, 32, 33, 34は、 それぞれ、 入力線 y0, y2, y4, y6を選択し、 F0力 S "1" のときは、 MUX31, 32, 33, 34は、 それぞれ、 入力線 yい y3, y5, y7を 選択する。
MUX35, 36は、 共通の入力変数 により切換制御がされる。 すなわち、 が " 0 " のときは、 MUX 35 , 36は、 それぞれ、 MUX 31, 33を選択し、 力 S "1" のとき は、 MUX35, 36は、 それぞれ、 MUX32, 34を選択する。
また、 MUX 37は、 入力変数 F2により切換制御がされる。 すなわち、 F2が "0" のと きは、 MUX 37は MUX 35を選択し、 F。カ " 1 " のときは、 MUX 37は MUX 36を選択する
MUX31〜34によって、 8本の入力線 y。〜y7のうちの 4本が選択される。 MUX 31〜 36によって、 8本の入力線 y。〜y7のうちの 2本が選択される。 MUX 31〜 37によつ て、 8本の入力線 y。〜y.7のうちの 1本が選択される。 これは、 目的論理関数
fiD^if.i ), f2(X), ···, fra(X))の出力変数の個数 mが 4個以下の場合、 論理関数メモリ 4 - 3の出力する中間変数 Yに対し、 更に入力変数 (FQ, , F2)による論理演算が可能で あることを意味する。 従って、 論理関数メモリ 4— 0~4— 3により行う演算におけ る入力変数の数を減らすことができる。
すなわち、 例えば、 目的論理関数 f(x。,xい ···, — )を、
(数 7) — 1/ ( 0, 1, · · ·, ¾— 2) V ^n—lj ( 0, 1, · · ·, - 2) のようにシャノン展開して、 関数 (¾,χい …, χη 2)を 4つの分解関数 f。(X。), fxχ ,Υ,), f222), f3 (X3,Y3) (但し、 X。 U¾ UX2 UX3 = {x。,xい …, xn2}) に関数分解し 'て、 最終段の分解関数 ( , )の出カ数を4以下となるょぅにすれば、 論理関数メモ リ 4一 0〜4一 3に入力する入力変数の個数を 1個減らすことができる。 そして、 入 力変数 は、 入力変数 として、 第 2の出力変数選択回路 2 6に入力するようにすれ ばよい。
同様に、 目的論理関数 f(x。,xい ·'·,χη2,xn— を、
(数 8)
Figure imgf000041_0001
;ι,···, rcn_3) V χη_1¾_20, , · · · , xn-S)
Figure imgf000041_0002
3) のようにシヤノン展開すれば、 論理関数メモリ 4一 0〜4一 3に入力する入力変数の 個数を 2個減らすことができ、
(数 9) 1, · · ' , — 4)
Figure imgf000041_0003
o ,: »ι,… · , ΧΠ- )
Vxn- 1 Χη-2Χη-Ζ ϊ'" (^Ο , Χΐ, ·· ·, η 4) V Χη_ιΧη-2 η-ζί'" {XQ, 1, · · · , ",4)
VXn-lXn-2Xn-3f"' (Χθ, · · · ,
Figure imgf000041_0004
1, · · · , n— 4) のようにシヤノン展開すれば、 論理関数メモリ 4一 0〜4一 3に入力する入力変数の 個数を 3個減らすことができる。
尚、 MUX31〜MUX37により選択された 8ビット、 4ビット、 2ビット、 又は 1 ビットの出力は、 共通の 8本の出力線によって第 1の出力選択回路 25に出力する必 要がある。 そこで、 第 23図では、 MUX 38〜44によって、 上記各本数の出力線が選 択されたときの出力を、 共通の出力線 f(Q)〜f(7)を通して出力されるように構成されて いる。 MUX 38 ~ 44は、 共通の選択切換変数 Selectによつて切換制御がされる。 尚、 選択切換変数 Selectの設定値は、 出力変数 ΐ(Χ) = (·^ (X), f2(X), …, fra(X))の個数 mに よって、 あらかじめ選択切換メモリ 45に記憶される。 そして、 演算制御部 10の制 御によって、 Selectに設定される。
MUX38は、 Selectが "0" のとき入力線 y0を選択し、 Selectが " 1 " のとき MUX31 の出力を選択し、 選択した線の信号値を出力線 f(fl)に出力する。 MUX39は、 Selectが "0" のとき入力線 y2を選択し、 Selectが "1" のとき MUX 32の出力を選択し、 選択 した線の信号値を出力線 f(2)に出力する。 MUX40は、 Selectが "0" のとき入力線 y4 を選択し、 Selectが "1" のとき MUX 33の出力を選択し、 達択した線の信号値を出力 線 f(4)に出力する。 MUX41は、 Selectが "0" のとき入力線 y6を選択し、 Selectが " 1" のとき MUX34の出力を選択し、 選択した線の信号値を出力線 f(6)に出力する。
MUX42は、 Selectが "0" のとき入力線 を選択し、 Selectが "1" のとき MUX 35 の出力を選択し、 選択した線の信号値を出力線 f(1)に出力する。 MUX43は、 Selectが "0" のとき入力線 y3を選択し、 Selectが "1" のとき顯 X37の出力を選択し、 選択 した線の信号値を出力線 f(3)に出力する。 MUX 44は、 Selectが "0" のとき入力線 y5 を選択し、 Selectが "1" のとき MUX 36の出力を選択し、 選択した線の信号値を出力 線 f(5)に出力する。 また、 出力線 f(7)は、 入力線 y7に直結されている。
目的論理関数 fの演算結果 f(X)のビット数 (出力の本数) が 8のときは、 Selectを " 0" とする。 これにより、 出カ線 〜^ には、 入力線 y。〜y7に入力される出力変数 Y=(y0. "- 5Υτ) の値が出力される。 出力の本数が 4のときは、 Selectを "1" に設定し 、 入力変数 F。に "0"又は "1" を入力する。 これにより、 入力線 y。〜y7のうち F。=0の ときは (y0, y2, y4, y6) の 4本が、 F0=lのときは (yい y3, y5, y7) の 4本が、 出力 線 f ( , f(2),f(4),f(6)に出力される。 出力の本数が 2のときは、 Selectを "1" とし 、 入力変数 F。、 F,に "0" 又は "1" を設定する。 これにより、 (F。, FL) = (0, 0)のと きは、 出力線 f(1), f(6)には入力線 y。〜y7のうち 2本に入力される出力変数 Y= (y0, y4) の値が出力される。 (F。, ^) = (0, 0), (0, 1),(1, 1)のときは出力には (yい y5), (y2, y6), (y3, y7)の値がそれぞれ出力される。 出力の本数が 1のときは、 Selectを " 1" とし、 入力変数 F。, Fい に "0" 又は "1" を設定する。 これにより、 出力線 f(3)には、 入力線 y。〜y7のうち 1本に FQ, F1; F2で指定した入力が出力される。
このように第 2の出力選択回路 26を設けることにより、 出力変数 f (X)の個数が、 最終段の論理関数メモリ 4一 3の全出力線の本数の 1ノ 2以下の場合には、 第 2の出 力選択回路 26を用いて更に選択操作を行うことが可能である。 これによつて、 論理 関数メモリ 4一 0〜4_3において演算を行う分解関数の入力変数の総数を実質的に 1個以上増すことが可能となる。 従って、 プログラマプル論理デバイス全体で許容さ れる入力変数の数を増やすことが可能となる。
尚、 第 23図では、 出力選択回路 26内のマルチプレクサは 2入力 1出力のものを 使用しているが、 一般に、 w入力 1出力 (w≥2) の MUXを使用することが可能で ある。
(実施例 6 )
第 24図は本発明の実施例 6に係るプログラマブル論理デバィスの全体構成を表す ブロック図である。
本実施例においては、.第 2の出力選択回路 26を、 第 1の出力選択回路 25の後段 側に接続したことを特徴とする。 尚、 第 1の出力選択回路 25及ぴ第 2の出力選択回 路 26の接続 MS序以外は、 実施例 5と同様に構成されているので、 各部の説明につい ては省略する。
接続回路 5— 1〜5— 3及び論理関数メモリ 4一 3から出力される変数組は、 第 1 の選択回路 25において何れか一つが選択される。 第 1の選択回路 25において選択 された変数組は、 入力変数 (Fい F2,F3) 及び選択切換変数 Selectの値に基づいて、 第 2 の選択回路 26によりその総て又は一部が選択され、 出力変数として出力される。 ここで、 任意の n変数論理関数 f (x。, Xい…, xn - , )は、 以下の形で表現することが可能 である。
(数 10)
Figure imgf000044_0001
) V n-2Xn-lfl(xQ, ,… , — 3)
Figure imgf000044_0002
従つて、 上記部分関数 f。〜f3を論理関数メモリ 4一 0〜4_3により実現し、 各部分 関数 f 0〜f 3と xn2 , xn1等との積項を第 2の出力選択回路 26により演算することで、 n変数の論理関数を実現することが可能となる。
(実施例 7 )
第 25図は本発明の実施例 7に係るプログラマブル論理デバイスの全体構成を表す ブロック図である。
本発明の実施例 7に係るプログラマブル論理デバイスは、 入力変数レジスタ 1、 入 力変数選択回路 2 - 0〜 2 - 3、 入力選択メモリ 3 - 0〜3- 3、 論理関数メモリ 4-0〜 4— 3、 接続回路 5 -。〜 5-3、 接続メモリ 6-0〜 6 - 3、 領域指定メモリ 8_0〜8 - 3、 及び演算制御部 10を備えている。 尚、 本実施例においては、 各回路は共通のク ロックによって同期して動作するものとする。 入力変数レジスタ 1は、 目的論理関数 f(X)の演算に用いられる n個の入力変数 X = (Xl, …, xn) (但し、 nは自然数) を記憶する。 尚、 入力変数 は、 外部入力線から入力 変数レジスタ 1に入力される。 論理関数メモリ 4- 0〜 4- 3は、 目的論理関数 fを関数 分解して得られる分解関数 {fi ; ie{0, 1, 2, 3}}の真理値表を、 LUTとして記憶す る。 尚、 本実施例においては、 一例として、 論理関数メモリ 4- i (i e {◦, 1, 2 , 3} ) の段数を 4段としているが、 一般にはこの段数は任意に設定することができ る。 これらの論理関数メモリ 4- 0〜 4- 3は、 順序づけて配列され、 それぞれ接続回 路 5-0〜5- 3を介してリング状に接続されている。
尚、 本実施例における論理関数メモリ 4_0〜4- 3は、 第 3図で説明したものと同 様のものを使用する。 その際、 アドレス 'デコーダ 16は、 領域指定メモリ 8- iから 入力されるページ選択番号 p (pr) に基づいて、 メモリ領域 FMkのメモリ 'アクセスを 可能とする。
入力変数選択回路 2 - 0〜 2 - 3は、 入力変数レジスタ 1から出力される n個の入力変 数 X=(xい…, xn)のうちから、 それぞれ、 各段の論理関数メモリ 4- 0〜4- 3に記憶され た分解関数¾ {0, 1, 2, 3}}の真理値表の入力変数 (ie{0, 1, 2, 3}) を選択 し、 接続回路 5-0〜 5- 3へ出力する。 入力選択メモリ 3- 0〜3- 3は、 それぞれ、 入力変数選択回路 2- 0〜2- 3の入力変数の選択に関する情報 (以下、 「入力選択情 報」 という。 ) が記憶されている。 入力変数選択回路 2-0〜 2- 3は、 各入力選択メ モリ 3- 0〜3- 3から出力される入力選択信号に基づいて、 入力変数の選択の切り換 えを行う。
尚、 本実施例においては、 入力変数選択回路 2-0〜 2- 3には、 第 2図に示したよ うなシフタ回路を使用する。 第 2図の入力変数選択回路 2- i (ie{0, 1, 2, 3})にお いて、 入力端子 in (00)〜: in (16)は、 入力変数レジスタ 1の出力端子に接続されている 。 従って、 入力端子 in (00)〜; Ln (16)からは入力変数 X=(xい…, xn)が入力される。 また 、 入力変数選択回路 2- i (ie{0, 1, 2, 3})の出カ端子0 (00)〜0 (07)は、 接続回 路 5 - iの入力側端子の一部に接続されている。
各接続回路 5- i (ie{0, 1, 2, 3}) は、 論理関数メモリ 4- ( i -1 mod 4) 及び入 力変数選択回路 2- iより入力される、 中間変数 及び入力変数 を、 順序を変えて、 後段の論理関数メモリ 4- i及ぴ外部出力線 7- iへ接続する。 各接続メモリ 6- i (i ≡ {0, 1, 2, 3}) は、 各接続回路 5- iの接続関係に関する情報 (以下、 「接続情報」 という。 ) を記憶している。 接続回路 5- iは、 接続メモリ 6- iから出力される接続 情報信号に基づき、 接続関係の切り換えを行う。
尚、 本実施例においては、 説明の便宜上、 接続回路 5— 0〜5_ 3には、 第 4図に 示したようなサイクリックなシフタ回路を使用することとする。 第 4図に示したよう な接続回路 5- j (j≡ {l, 2, 3}) において、 入力線 i。〜i15のうち、 i。〜i7は前段の論 理関数メモリ 4- (j-1) の出力側に接続されており、 :18〜:115は入カ変数選択回路2 の出力側に接続されている。 また、 接続回路 5-0の入力線 i。〜 5のうち、 i。〜; 17は前 段の論理関数メモリ 4- 3の出力側に接続されており、 i85は入力変数選択回路 2- 0の出力側に接続されている。 一方、 接続回路 5 -j (je{0, 1, 2, 3}) の出力線 o。〜 o15のうち、 o。〜o7は、 後段の論理関数メモリ 4_jの入力側に接続されており、 o8〜o15 は外部出力線 7 - jとなっている。
また、 本実施例においては、 各接続メモリ 6- i (ie{0, 1, 2, 3}) は、 第 5図に 示したものと同様のものが使用されている。
各領域指定メモリ 8- i (ie{0, 1, 2, 3}) は、 目的論理関数の演算段数に対応し て、 論理関数メモリ 4- iに記憶された LUTのうちの使用するものが格納されている ページ番号 (以下、 「領域指定変数」 という。 ) が記憶されている。 論理関数メモリ 4 - iは、 領域指定メモ.リ 8- iが出力する領域指定変数に従ってページを設定する。 演算制御部 1 0は、 プログラマブル論理デパイス全体の演算処理の制御を行う。 第 2 6図は第 2 5図の演算制御部 1 0の構成を表すプロック図である。
演算制御部 1 0は、 演算ステップ ' レジスタ 6 1、 ステップ 'カウンタ 6 2、 ぺー ジ ·カウンタ 6 3、 及ぴ出力コントローラ 6 4を備えた構成からなる。
演算ステップ · レジスタ 6 1には、 目的論理関数を関数分解した後の分解関数の数 である演算ステップ数が格納される。 ステップ 'カウンタ 6 2は、 現在演算が行われ ている分解関数の段数をカウントする。 このステップ ·カウンタ 6 2には、 演算ステ ップ · レジスタ 6 1に格納された値が設定され、 演算処理が 1段進行するのに応じて 、 内部に格納された値を 1ずつ減じていくダウン ·カウンタによって構成されている 。 ステップ ·カウンタ 6 2は、 そのカウント値 iが 0となったときに、 終了信号 ENDを 出力する。 また、 ステップ 'カウンタ 6 2は、 外部からリセット信号 resetが入力され たとき、 カウント値を演算ステップ · レジスタ 6 1に格納された値に設定する。
ページ 'カウンタ 6 3は、 入力選択メモリ 3、 接続メモリ 6、 及び領域指定メモリ 8が出力するデータが格納されている各メモリのページ番号をカウントし、 そのカウ ント値 kをカウント信号 pkとして出力する。 ページ'カウンタ 6 3は、 アップ'カウ ンタであり、 出力コントローラ 6 4から出力されるチップ ·ィネーブル信号 CE3の立ち 下がりを検出したときに、 カウント値 kを 1だけ増加させる。 尚、 ページ'カウンタ 6 3は、 リセット信号 resetが入力されたとき、 又はステップ 'カウンタ 6 2から終了 信号 ENDが入力されたときに、 カウント値 kを 0にリセットする。
出力コントローラ 6 4は、 各々の論理関数メモリ 4 - 0〜4 - 3に対して、 チップ' ィネープル信号 CE0〜CE3、 及びァドレス 'スト口ーブ信号 ADSP0〜ADSP3を出力すること で、 論理関数メモリ 4 - 0〜 4 - 3の出力制御を行う。
尚、 チップ ·ィネーブル信号 CEiは、 i段目の論理関数メモリ 4 - iを活性化する信号 であり、 チップ ·ィネーブル信号 CEiが " 1 " (真値) となった (アサ一トされた) と きに、 論理関数メモリ 4 - iが外部からの入力信号の受け付け及びデータの出力を行う ことが可能となる。 アドレス 'ストロープ信号 ADSPiは、 論理関数メモリ 4- iに対して 、 入力されたアドレスのラッチを制御するための信号である。 論理関数メモリ 4- iは 、 クロックエッジでアドレス *ストローブ信号 ADSPi力 S "1" (真値) となっている ( アサートされている) ときに、 入力線 i (00)〜i (07)に入力されているデータを、 内部 のァドレス · レジスタに設定する。 また、 アドレス 'ストローブ信号 ADSPiが "1" か ら "0" (偽値) に遷移すると、 内部のァドレス · レジスタに設定されているァドレ ス値をラッチする。 尚、 チップ ·ィネーブル信号 C が " 0 " (偽値) とされた状態で は、 ADSPiが "1" となっても、 入力線 i (00)〜i (07)に入力されているデータはラッチ されない。
第 27図は第 26図の出力コントローラ 64の内部構成を表すブロック図である。 出力コントローラ 64は、 4つのフリップ.フロップ (以下、 「FF」 とレヽう。 ) 6 5〜 68からなるジョンソン ·カウンタ 69、 4つの AND回路 70〜73、 及び 1つの OR回路 74によって構成されている。
FF65〜68のクロック端子 Cには、 共通のクロック信号 clockが入力されている。 また、 FF65, 66, 67, 68の出カ0。, Qい Q2, N0T(Q3)は、 それぞれ、 FF65, 66, 67, 68のデータ入力 Dp D2, D3, D。に接続されている。 また、 OR回路 7 4は、 リセット信号 reset及び終了信号 ENDの論理和のリセット信号 reset' を出力する 。 FF65〜68のリセット端子 rstには、 リセット信苦 reset' が入力されている。
このように構成することにより、 ジョンソン ·カウンタ 69の出力 (Q。, Q1? Q2, Q3 ) の状態は、 クロック信号 clockが立ち上がるごとに、
(0, 0, 0, 0)
→ (1, 0, 0, 0)
→ (1, 1, 0, 0) .
→ (1, 1, 1, 0) → (1, 1 , 1 , 1 )
→ (0, 1 , 1, 1)
→ (0, 0, 1, 1 )
→ (0, 0, 0, 1 )
→ (0, 0, 0, 0)
のようにサイクリックに遷移する。 すなわち、 それぞれのクロックごとに、 1ビッ ト 右にシフトして、 最上位のビット (Q3) を反転して、 最下位のビット (Q0) とするとい う動作を繰り返す。
FF65, 67の出カ , Q2が、 それぞれ、 チップ ·ィネーブル信号 CE。, として出 力される。 また、 FF65, 67の出力 N0T(Q。), N0T(Q2)が、 それぞれ、 チップ'イネ一 ブル信号 CE2, CE3として出力される。 ここで、 Ν0Τ(ς は、 出力 の反転出力である。 また、 AND回路 70は、 FF65, 66の出力 Q。, NOT (Q の論理積をアドレス ·ストロ ープ信号 ADSP。として出力する。 AND回路 71は、 FF67, 68の出カ , N0T(Q3)の論 理積をァドレス 'ストローブ信号 ADSP として出力する。 AND回路 72は、 FF65, 66 の出力 NOT (QQ), Qxの論理積をァドレス 'ストローブ信号 ADSP2として出力する。 AND回 路 73は、 FF 67, 68の出力 NOT (Q2 ) , Q3の論理積をァドレス 'ストローブ信号 ADSP3として出力する。
尚、 論理関数メモリ 4— 0〜 4- 3は、 チップ.ィネーブル信号 CE0〜CE3が "0" とさ れた状態においては、 低消費電力モードになるものとする。 これにより、 演算に使用 されない論理関数メモリ 4の消費電力が低減され、 LUTカスケード回路全体を、 よ り低消費電力化することができる。
以上のように構成された本実施例に係るプログラマブル論理デバイスにおいて、 以 下その動作について説明する。
第 28図は実施例 7に係るプログラマブル論理デバイスの動作を表すフローチャー ト、 第 29図は実施例 7に係るプログラマブル論理デバイスの動作時における各信号 の変化を表すタイミング図である。
最初に、 演算を行おうとする目的論理関数 f(X)を関数分解した分解関数 ^,···,^^} (l≤s) の真理値表を、 LUTとして各論理関数メモリ 4- 0〜4- 3に書き込んでお く。 ここで、 (i = 0, 1, ., ., S— 1)を表す L U T は、 4 — (i. mod 4)の メ モ リ の int (i/4) ページに書き込んでおく。 尚、 同一の論理関数メモリ 4におい て、 異なるページに同一の LUTが書き込まれることとなる場合には、 複数ページに 同一の LUTを書き込むことはせず、 1つの LUTのみを書き込むようにする (以下 、 これを 「書込縮約」 という) 。 メモリ容量を節約するためである。 また、 入力選択 メモリ 3- 0〜 3- 3及ぴ各接続メモリ 6-1〜6- 3には、 第 0ページから順に上記各 分解関数 {f。,…, — に対応した入力選択情報及び接続情報を書き込んでおく。 また、 領域指定メモリ 8- i (ie{0, 1, 2, 3}) の; jページには、 分解関数 fi*4 + j (但し、 0< = i*4+j< = s-l)に対応する LUTが記憶されている論理関数メモリ 4- iのぺー ジ数 Pを格納する。 尚、 各メモリへの書き込み機能については、 第 25図では図示して いないが、 通常のメモリの書き込み方法により行われる。 更に、 演算制御部 10の演 算ステップ · レジスタ 6 1には、 分解関数の全段数 sを書き込んでおく。 尚、 以下では 、 s>4であるものとして説明する。
以上の書き込みがされた状態において、 まず、 時間区間 T。において、 演算制御部 10 は、 外部から入力されるリセット信号 resetによって、 ステップ ·カウンタ 62、 ぺー ジ 'カウンタ 63のカウント値 i , pがそれぞれリセットされる (S 1) 。 このとき、 ステップ ·カウンタ 62のカウン H直 iは、 演算ステップ · レジスタ 61内に記憶さ れた値 sに初期化され、 ページ 'カウンタ 63のカウント値 pは 0に初期化される。 ま た、 当該リセット信号 resetにより、 演算制御部 10内の出力コントローラ 64の FF 6 5〜68がリセットされる (S 2) 。 このとき、 FF65〜 68からなるジョンソン'カウンタ 6 9は、 出力値として、 ( Q0,Qい Q2.,Q3) = (0, 0, 0, 0) , (NOT (Q0 ) , NOT (Qx ) , NOT (Q2 ) , NOT (Q3 ) ) = (1,. 1, 1, 1 ) を出力する。 従って、 出力コントローラ 64は、 各論理関数メモリ 4-0, 4-1, 4-2, 4 - 3に対して、 チップ'ィネーブル信号 CE0, CEい CE2, CE3として、 それぞれ 0, 0, 1, 1を出力する。 また、 ページ ·カウンタ 63は、 カウント信号 pkとして◦ を、 入力選択メモリ 3-0-3-3, 接続メモリ 6-0-6-3, 及び領域指定メモリ 8- 0〜8- 3に対して出力する (S 3) 。
これにより、 入力選択メモリ 3- i (ie{0, 1, 2, 3}) は、 第 0ページに格納され た入力選択情報を、 入力変数選択回路 2- iの制御線 shf0〜shf3に出力する。 入力変数 選択回路 2 - iは、 制御線 shf0〜shf3に入力された入力選択情報に従って、 入力端子 in (00)〜: in (16)の一部を出力端子 out (00)〜out (07)と電気的に接続する。
また、 接続メモリ 6- i (ie{0, 1, 2, 3}) は、 第 0ページに格納された接続情報 ( — ),…^"))を接続回路 5- iに出力する。 これにより、 接続回路 5- iは、 各 制御線ょり入カされる接続情報( (°),一,3。(°))に従って、 入力線 i8〜i15と出力線 o。 〜o7とを接続する。
更に、 領域指定メモリ 8- i (ie{0, 1, 2, 3}) は、 第 0ページに格納された領域 '指定変数 P(0)を論理関数メモリ 4- iのアドレス 'デコーダ 16に出力する。 これによ り、 論理関数メモリ 4- iは、 第 p(0)ページが選択され得る状態となる。
そして、 入力変数レジスタ 1は、 各入力変数選択回路 2-0〜 2- 3に対して、 入力 変数の出力を開始する (S 4) 。 これにより、 接続回路 5-0〜5- 3には、 それぞれ 、 入力変数 X。, Xい X2, X3が出力される。 接続回路 5 - i (ie{0, 1, 2, 3}) に入力さ れた入力変数 , Xい X2, X3は、 設定された接続順序に従って、 論理関数メモリ 4- i の入力側に出力される。.
続いて、 時間区間 において、 次のクロック信号 clockの立ち上がりで、 ジョ 'カウンタ 6 9の出力 (QQ'Q Q^QS) は、 (1, 0,0, 0) に変化する。 これにより、 CE0 力 S " 1 " となり、 論理関数メモリ 4-0がアクセス可能な状態となるとともに、 CE i "
0" となる。 従って、 論理関数メモリ 4-0から、 データ D。が出力され始める (S 5) また、 これとほぼ同時に、 AND回路 70の出力である ADSP。が " 1" と.なる。 ADSP0が "1" となると、 論理関数メモリ 4-0は、 接続回路 5-0から入力される入力変数 X。に 基づいて、 その内部のァドレス · レジスタが制定される (S 6) 。 そして、 論理関数 メモリ 4-0は、 第 0ページ内の制定されたアドレスに対応する LUTの値 (中間変数 Y4p + (s_i)) を、 接続回路 5-1に出力し始める。 接続回路 5-1に出力された中間変数 Υ4ρ + (3-υは、 設定された接続関係に従って、 論理関数メモリ 4-1に入力される。 また 、 場合によっては、 中間変数 Y4p+(s— の一部は、 外部出力線 7-1へと伝達される。 時 間区間 Ίの最後に ADSP。が "1" から "0" に立ち下がり、 論理関数メモリ 4一 0内部の アドレス · レジスタはラッチされる。
時間区間 Τ2において、 ADSP。が " 1 " となってから次のクロック信号 clockが立ち上が つたときに、 ジョンソン'カウンタ 69の出力 (Q0, Ql5 Q2, Q3) は、 (1, 1, 0, 0) に '変化する。 これにより、 ADSP。は "0" となる (S 7) 。 これにより、 論理関数メモリ 4一 0の出力データ DQの値が中間変数 Y4p+(s— に確定する。 一方、 このとき、 Q。=lな ので、 CE0は " 1" にラッチされている。
次いで、 時間区間 T3において、 次のクロック信号 clockの立ち上がりで、 ステップ . カウンタ 62は、 カウント値 iをデクリメントする (S 8) 。 また、 このとき、 ジョ ンソン ·カウンタ 69の値は(Q。 ,Q1,Q2,Q3) = (1, 1, 1, 0)となる。
ここで、 ステップ ·カウンタ 6 2のカウント値 iが 0でない場合において (S 9) 、 出力 ¾の値が 1に遷移すると、 が "1 " となるとともに、 CE3が "0" となる。 そ れに伴って、 論理関数メモリ 4-1の出力線から出力データ 1^が出力され始める (S 1 0) 。
また、 これとほぼ同時に、 AND回路 71の出力である ADSPtが "1" となる (S I 1) 。 これにより、 論理関数メモリ 4-1は、 接続回路 5-1を介して前段の論理関数メモ リ 4-0から入力される中間変数と新たな入力変数とに基づいてァドレスが制定される 。 このアドレスの制定に伴って、 論理関数メモリ 4-1の出力データ が変化し、 第 pk ページ内の制定されたアドレスに対応する LUTの値 (中間変数 Y4p+(s-i)) 力 接続 回路 5- 2に出力され始める。
そして、 時間区間 T4において、 次のクロック信号 clockの立ち上がりで、 ジョンソン •カウンタ 6 9の値は½。,01,02,93)=(1,1,1,1)となる。 これにより、 纖回路 7 1の出 力である ADSPが "0" となり、.論理関数メモリ 4-1の出力データ が、 中間変数 Y4P+ ( S— 1)に確定する (S 1 2) 。 接続回路 5- 2に出力された中間変数 Y4P+ ( S は、 設定された接続関係に従って、 論理関数メモリ 4- 2に入力される。 また、 場合によつ ては、 中間変数 Y4P+ ( S の一部は、 外部出力線 7- 2へと伝達される。
次いで、 時間区間 T5において、 次のクロック信号 clockの立ち上がりで、 ステップ. カウンタ 6 2は、 カウント値 iをデクリメントする (S 1 3) 。 また、 このとき、 ジ ョンソン ·カウンタ 6 9の値は(Q^ Q Q^ QSXO, 1, 1, 1)となる。
ここで、 ステップ 'カウンタ 6 2のカウント値 iが 0でない場合 (S 1 4) 、 出力 Q0 の値が 0に遷移すると、 CE2が " 1 " となるとともに、 CE。は " 0 " となる。 それに伴つ て、 論理関数メモリ 4-0の出力が停止するとともに、 論理関数メモリ 4- 2の出力線 から出力データ D2が出力され始める (S 1 5) 。
また、 これとほぼ同時に、 細回路 72の出力である ADSP2が "1" となる (S 1 6) 。 これにより、 論理関数メモリ 4-2は、 接続回路 5- 2を介して前段の論理関数メモ リ 4-1から入力される.中間変数と新たな入力変数とに基づいてァドレスが制定される 。 このアドレスの制定に伴って、 論理関数メモリ 4- 2の出力データ D2が変化し、 第 pk ページ内の制定されたアドレスに対応する LUTの値 (中間変数 Y4p+(s ) 力 接続 回路 5- 3に出力され始める。
そして、 時間区間 T6において、 次のクロック信号 clockの立ち上がりで、 ジョンソン •カウンタ 69の値は(Q0,Qい Q2,Q3) = (0, 0, 1, 1)となる。 これにより、 AND回路 72の出 力である ADSP2が "0" となり、 論理関数メモリ 4- 2の出力データ D2が、 中間変数 Y4p+(s に確定する (S 17) 。 接続回路 5- 3に出力された中間変数 Y4p+(s は、 設定された接続関係に従って、 論理関数メモリ 4- 3に入力される。 また、 場合によつ ては、 中間変数 Y4p+(s の一部は、 外部出力線 7- 3へと伝達される。
次いで、 時間区間 T7において、 次のクロック信号 clockの立ち上がりで、 ステップ. カウンタ 62は、 カウント値 iをデクリメントする (S 18) 。 また、 このとき、 ジ ョンソン ·カウンタ 69の値は½。,91,^!2,93) = (0,0,0, 1)となる。
ここで、 ステップ 'カウンタ 62のカウント値 iが 0でない場合において (S 19 ) 、 出力 ¾の値が 0に遷移すると、 CE3が "1" となるとともに、 C は "0" となる。 それに伴って、 論理関数メモリ 4-1の出力が停止するとともに、 論理関数メモリ 4- 3の出力線から出力データ D3が出力され始める (S 20) 。
また、 これとほぼ同時に、 AND回路 73の出力である ADSP3が "1" となる (S 21) 。 これにより、 論理関数メモリ 4- 3は、 接続回路 5-3を介して前段の論理関数メモ リ 4-2から入力される中間変数と新たな入力変数とに基づいてァドレスが制定される 。 このアドレスの制定に伴って、 論理関数メモリ 4- 3の出力データ D3が変化し、 第 pk ページ内の制定されたアドレスに対応する LUTの値 (中間変数 Y4p+(s_ ) 、 接続 回路 5 - 0に出力され始める。
そして、 時間区間 T。において、 次のクロック信号 clockの立ち上がりで、 ジョンソン 'カゥンタ69の値は½。,0(1,92,93) = (0,0,0,0)となる。 これにより、 AND回路 73の出 力である ADSP3が "0" となり、 論理関数メモリ 4- 3の出力データ D3が、 中間変数 Y4p+(s に確定する (S 22) 。 接続回路 5- 0に出力された中間変数 Y4p+(s は、 設定された接続関係に従って、 論理関数メモリ 4-0に入力される。 また、 場合によつ ては、 中間変数 Y4p+(s の一部は、 外部出力線 7-0へと伝達される。
このとき、 ページ 'カウンタ 63は、 カウント値 pをインクリメントする (S 23) 。 これにより、 カウント信号 ppの値が 1だけ増カ卩し、 入力選択メモリ 3-0〜 3- 3、 接 続メモリ 6 - 0〜6 - 3、 及び領域指定メモリ 8 _0〜 8- 3の選択されるページが切り 替わる。 これに伴って、 入力変数選択回路 2-0〜 2- 3及び接続回路 5-0〜 5- 3の 接続関係も切り替わる。 尚、 領域指定メモリ 8- 0〜8- 3の選択されるページが切り 替わつた場合であっても、 各論理関数メモリは、 チップ ·ィネーブル信号 C 及ぴァド レス · ストローブ信号 ADSPiが "1" となってァドレスを受け付ける状態とならない限 りにおいては、 ページが切り替わることはない。
次いで、 時間間隔 Ί において、 次のクロック信号 clockの立ち上がりで、 ステップ' カウンタ 62は、 カウント値 iをデクリメントする (S 24) 。 また、 このとき、 ジ ヨンソン'カウンタ 69の出力 Q。の値が 1となる。
ここで、 ステップ 'カウンタ 62のカウント値 iが 0でない場合には (S 25) 、 再ぴステップ S 5の動作に戻る。
上記ステップ S 9, S 14, S 19, S 25において、 ステップ'カウンタ 62の カウント値 iが 0であった場合は、 ステップ ·カウンタ 62は終了信号 ENDを出力する 。 これにより、 演算制御部 10は演算動作を停止し、 演算が終了する。
以上のように、 演算処理は、 前段から後段に向かって直列処理により行われる。 そ して、 最後段の論理関数メモリ 4 - 3における演算処理が終了した時点で、 まだ総ての 分解関数の演算が終了していない場合には、 論理関数メモリ 4- 3から出力される中間 変数を再び最前段の論理関数メモリにフィード ·バックして、 演算処理を繰り返す。 そして、 目的論理関数 f の演算結果は、 各外部出力 H7-;L〜7- 4より取り出される 次に、 上記動作をより分かりやすく説明するため、 具体的な例を用いてプログラマ ブル論理デパイスの具体的な動作を説明する。
〔例 2〕 加算回路
ここでは、 簡単な例として、 二つの 2nビット (n≥5) の二進数 A二( a2n—い a2n2, ···, aい a0), B二 (b2n一い b2n2, ·■·, b1; b。;)の加算を行う加算器を、 上記プロダラ マブル論理デバィスによって実行する例を説明する。 尚、 下位からの桁上げ (キヤリ 一) 入力ビットとして cinも考慮して、 以下のような演算を行う加算器を考える。
(数 1 1) ひ 2n—l «2n-2 … «1 «0
2n-l & 2n - 2 … &1 ひ 0
+/ ^in
cout >J2n-l *¾n— 2 … S Q ここで、 桁上げ入力ビット Ci nとは、 2 nビット以上の大きな数の加算を行う場合に 、 加算器を直列につなげて使用する際に、 下位の加算器からの桁上げを表すビットで ある。 桁上げ出力ビット c。utも、 同様に、 上位の加算器に出力する桁上げを表すビット である。
尚、 この例においては、 入力変数選択回路 2-0〜 2- 3は、 第 2図と同様に、 log2 (2n+l) (log2 (2n+l)が整数でないときは、 log2 (2n+l)を切り上げた数) 段のシフタ が直列接続された、 (2n+l)入力 8出力のシフタ回路で構成されているものとする。 このような二つの 2 nビットの二進数 A, Bの加算を行う論理関数を f=f (X) (X= (A, B) ) とすると、 論理関数 fは第 30図により表される。 この関数は、 第 31図のように、 2 η個の分解関数 {g。, gい ···, に関数分解することが可能である。 ここで、 各 分解関数は、 (数 12).又は (数 13) のような論理式で表される。 (数 1 2)
„ r (o) c i
= [αο¾ a0cin V &0n, 0 Θ &ο θ cin]
(数 1 3)
9ί — [Couti
= V £¾c t ) V ¾ otii ), α¾ φ φ c^f. )]
= 1,2, · ·· ,2η - 1) すなわち、 各分解関数は、 2つの入力変数 bi及び桁上げを表す中間変数 c。ut (i一 の 2を法とする和 Si及ぴ桁上げの中間変数 c。 u t ( 1 )を出力する論理関数となっている。 これを、 第 25図のような 4段の論理関数メモリ 4- 0〜4- 3からなるプログラマ ブル論理デバイスで実現する場合には、 第 3 2図に示したように、 分解関数 {g。, gl, ···, g^— Jを、 n個の分解関数組 {g。, gl} , {g2, g3} , -, {g2n2, g2n— Jに分け る。 そして、 第 3 3図に示したように、 各々の分解関数 Eを 1つにまとめて n個の分 解関数 f。, fい ·■·, fn— iで表す。 ここで、 各分解関数は、 (数 14) 又は (数 1 5) の ような論理式で表される 3変数入力 3変数出力論理関数である。
(数 1 4) fo = [cS?i, i,S0]
= [ひ1&1 (α2 V bi)(a0b0 V a0cin V b0cin),
ひ l Φ &i Φ (o060 V a0cin V b0cin), α0 Θ &o Θ cin]
(数 1 5)
Figure imgf000057_0001
= [a2i+i i+i V (a2i+i V b2i+i)(a2ib2i V a2ic ut ' 1)),
«2i+i Θ b2i+1 Θ {a2ib2i V 1) V b2iU a2i Θ b2i φ 1)] (« = 1,2,···,η- 1) 各々の分解関数 fiの真理値表は、 第 34図のようになる。 そこで、 第 3 5図の真理値 表を、 論理関数メモリ 4-0の第 1ページに記憶させ、 第 36図の真理値表 (LUT) を論理関数メモリ 4- 0〜4- 3の第 0ページに記憶させる。 ここで、 それぞれ、 S2i, S2i + 1, cout (i) (ie{l,2, -,η-l}) は、 それぞれ接続回路 5- (i+1) の入力線 i2 , i3, i4に出力されるように論理関数メモリの出力ビットを割り当てる。.
各入力選択メモリ 3-0— 3-3の第 0ページには、 それぞれ、 0ビットシフト、 5 ビットシフト、 9ビットシフト、 1 3ビットシフト、 第 pぺ一ジ (1≤p≤ [(n-l)/4] ) には、 それぞれ、 16p+lビットシフト、 16p+5ビットシフト、 16p+9ビットシフト、 16p+13ビットシフトの情報を記憶させておく。
接続メモリ 6-0の第 0ページには、 接続情報として、 8ビット分シフトさせる情報 を記憶させる。 接続メモリ 6- 1〜6- 3の第 0ページには、 接続情報として 4ビット 分シフトさせる情報を記憶させる。'また、 各接続メモリ 6- 0〜6- 3の第 kページ ( 1≤P≤ [(n-l)/4] ) には、 接続情報として 4ビット分シフトさせる情報を記憶させ る。 但し、 接続メモリ 6-ひ ( a =n mod 4) の第 [n/4] ページの接続情報は、 最終段 の分解関数の出力変数 (5ビット) を出力させるための接続情報なので、 当該ページ には 5ビット分シフトさせる情報を記憶させる。 尚、 4ビット分シフトさせる場合に は接続情報として(33,32,31 , 5。) = (0,1,0,0)を、 5ビット分シフトさせる場合には
(s3,s2,s1,s0) = (0, 1, 0, 1)を、 8ビット分シフトさせる場合には接続情報として
(33,32,31,3。)=(1,0,0,0)を接続メモリの各ぺージに記憶させる。 例えば、 n= 1 3の 場合、 接続メモリ 6の内容は、 以下の (表 5) のようになる。 (表 5)
Figure imgf000059_0001
領域指定メモリ 8-0の第 0ページには、 領域指定変数として 1を記憶させておく。 また、 領域指定メモリ 8- 1〜8- 3の第 0ページには、 領域指定変数として 0を記憶 させておく。 更に、 領域指定メモリ 8-0〜 8-3の第 kページ (l≤p≤ [(n-l)/4] ) には、 領域指定変数として 0を記憶させておく。 例えば、 n=13の場合、 接続メ モリ 6の内容は、 以下の (表 6) のようになる。
(表 6)
Figure imgf000059_0002
以上のようにプログラムされた状態において、 以下、 プログラマブル論理デバイス の演算処理を説明する。 尚、 以下の説明では、 簡単のため n = 5として説明する。 まず、 入力変数レジスタ 1には、 変数 A, B, cinが入力され記憶される。 また、 演算 ステップ · レジスタ 61には、 n = 5が記憶される。 そして、 演算制御部 10は、 ま ず、 ステップ ·カウンタ 62のカウントイ直 iを n = 5にリセットし、 ページ 'カウン タ 63のカウント値 kを 0にリセットする。 更に、 ジョンソン .カウンタ 69も 0に リセットする。 これにより、 演算制御部 10のページ ·カウンタ 63は、 入力選択メ モリ 3— 0〜3— 3、 接続メモリ 6— 0〜6— 3、 及び領域指定メモリ 8— 0〜8— 3に对 してページ選択番号 Prとして第 0ページを設定する。
また、 入力変数選択回路 2-0〜 2- 3は、 各々の制御線に入力された入力選択情報 に従って、 入力端子 in (00)〜; in (x-1)のうちの 8つを出力端子 out (00)〜out (07)と電気 的に接続する。
具体的には、 入力選択メモリ 3-0は、 in (00)〜in (07)を out (00)〜out (07)に接続し 、 入力選択メモリ 3-1は、 5ビットシフトさせて、 in (05)〜: In (12)を out (00)〜 out (07)に接続し、 入力選択メモリ 3-2は、 9ビットシフトさせて、 in (09)〜: in (16) を out (00)〜out (07)に接続し、 入力選択メモリ 3- 3は、 13ビットシフトさせて、 in (13)〜: in (20)を out (00)〜out (07)に接続する。
また、 接続メモリ 6- 0〜6- 3は、 各々、 第 0ページに書き込まれた接続情報
(s3 (。),···, s。(°))を接続回路 5-0〜 5- 3の各制御線に出力する。 接続回路 5-0〜 5 - 3は、 各制御線より入力される接続情報 (S3 (Q),"',S。(()))に従って、 入力線 i8〜i15と 出力線 o0〜o7とを接続する。 具体的には、 接続回路 5-0は、 8ビットシフトさせて、 i8〜i15をそれぞれ。。〜 o7に接続し、 ^〜 をそれぞれ08015に接続する。 また、 接続 メモリ 6-1〜 6-3は、 4ビットシフトさせて、 〜:111をそれぞれ00〜07に接続し、 i12〜ii 5 , i0〜i3をそれぞれ o8〜Oi 5に接続する。
また、 領域指定メモリ 8- 0〜8- 3は、 各々、 第 0ページに書き込まれた領域指定 変数を、 論理関数メモリ 4- 0〜4- 3のァドレス ·デコーダ 16に対して出力する。 これ (こより、 論理関数メモリ 4 - 0は、 1ページがアクセス可能な状態となり、 論理関 数メモリ 4- 1〜4- 3は、 1ページがアクセス可能な状態となる。
次に、 演算制御部 10は、 入力変数レジスタ 1により、 入力変数 Xの出力を行う。 こ のとき、 入力変数選択回路 2-1〜 2-3の入力端子には、 それぞれ、 (表 7) のよう に入力変数の値が入力される。 (表 7)
Figure imgf000061_0002
入力変数選択回路 2 - 0は、 (out (00), out (01), out (02), out (03), out (04) ) = (cin, aい a。, , bQ)を出力し、 これを接続回路 5-0の入力線 (i8, i9, i10, i12) に入力する。 尚、 出力 out (05)〜out (07)は使用されないので省略した。 接続回路 5-0は、 8ビットシフトさせて、 これらを出力線 (o0, 0い o2, o3, o4) に出力する 。 このようにして、 入力変数 (cin, aい a。, b1? b。)が論理関数メモリ 4-0に入力され る。
次に、 演算制御部 1 0の出力コントローラ 64は、 CE。を "1" に設定して論理関数 メモリ 4-0のデータ出力を行わせるとともに、 ADSP。を "1" に設定して、 論理関数メ モリ 4-0内部のアドレス ' レジスタに、 アドレス(iQ, iい i2, i3, i4, i5, i6, i7) =
(ο^, Β^ Βο, ^, ^, -, -, -) を制定する。 ここで、 「-」 はドントケア (0でも 1でもよ い。 ) を表す。 アドレス制定後に、 出力コントローラ 64は、 ADSP。を "0" とする。 アドレス制定後、 論理関数メモリ 4-0の出力端子には、 第 1ページに格納された L UT (LUTj ) のアドレス (Cin'a a^b bo,-,-,-) に記憶された真理値
f0 (Ci n, aい a。, bい b。)の値 (-,-, S。, Sい c。 u t ( ° ),―, -, -)が現れ、 これが接続回路 5 - 1に 出力される。 すなわち、 接続回路 5-1の各入力線 (i。, iい i2, i3, i4, i5, i6, i7 ) には(-, -,
Figure imgf000061_0001
-, -)が入力される。
一方、 入力変数選択回路 2-1は、 (out (00), out (01) , out (02) , out (03)) = ( ,a2,b3,b2)を出力し、 これを接続回路 5-1の入力線 (i8, i9, i1(), i„) に入力する 接続回路 5-1力 らは、 それぞれ、 (表 8) の値が出力される c
(表 8)
Figure imgf000062_0001
接続回路 5- 1の出力線 o8〜o15は、 外部出力線 7-1として取り出される。 従って、 演算結果 S。 Siが外部出力線 7- 1のうちの 2本に出力される q '
次に、 演算制御部 1 0のステップ ·カウンタ 6 2は、 そのカウント値 iを i - 1 =4 に更新する。 そして、 演算制御部 1 0の出力コントローラ 6 4は、 を " 1 " に設定 して論理関数メモリ 4 1のデータ出力を行わせるとともに、 ADSPiを "1 " に設定して 、 論理関数メモリ 4 - 1内部のアドレス ' レジスタに、 アドレス(i i i2 i3 i4 i5 i6, i7)= (cout (0), - -, - a3,a2,b3,b2) を制定する。 アドレス制定後に、 出力コ ントローラ 6 4は、 ADSPLを " 0 " とする。 更に、 0段目の論理関数メモリ 4-0の出力 値は既にアドレス · レジスタに取り込んだので、 出力コントローラ 64は、 CE。を "0 " として、 論理関数メモリ 4-0の出力を停止させる。
アドレス制定後、 論理関数メモリ 4-1の出力端子には、 第 0ページに格納された L UT (LUT。) のアドレス (Cut(。),-,-,-,a3 b3 b2) に記憶された真理値
x (。。^( ^ , の値 ,-, , ,^ -)が現れ、 これが接続回路 5- 2に出力される。 すなわち、 接続回路 5- 2の各入力線 (i iい i2 i3 i4 i5 i6, i7 ) には (―, -, S2 S3 c。ut (1), -, -, -)が入力される。
一方、 入力変数選択回路 2 - 2は、 (out (00), out (01), out (02) out (03) ) = (a5 a4 b5 b4)を出力し、 これを接続回路 5- 2の入力線 (i8 i9 i10, i ) に入力する 接続回路 5- 2からは、 それぞれ、 (表 9) の値が出力される c
(表 9)
Figure imgf000063_0001
接続回路 5- 2の出力線 o8〜o15は、 外部出力線 7- 2として取り出される。 従って、 演算結果 S2, S3が外部出力線 7 - 2のうちの 2本に出力される。
' 以下同様にして、 論理関数メモリ 4-2、 論理関数メモリ 4- 3においても演算が行 われる。 そして、 論理関数メモリ 4- 2の演算結果 S4,S5は外部出力線 7-3のうちの 2 本に出力される。 また、 論理関数メモリ 4- 3の出力値 (-, -, S6, S7, cou,(3), -, -, -)は、 接続回路 5-0の入力線 i。〜 にフィード ·'バックされる。 '
次に、 演算制御部 1 0のステップ 'カウンタ 6 2は、 そのカウント値 iを i_l = l に更新する。 ここで、 論理関数メモリ 4- 3における演算処理が終了したので、 ページ 'カウンタ 6 3は、 そのカウント値 kを 1だけインクリメントし、 そのカウント値 k をカウント信号 pkに出力する。
これに伴い、 入力選択メモリ 3、 接続メモリ 6、 及び領域指定メモリ 8のアクセス ページが変更されるため、 これらのメモリからの出力も変更される。 具体的には、 入 力選択メモリ 3-0から出力されるシフト量の情報が 1 7ビットシフトに変更される。 また、 接続メモリ 5-0から出力される接続情報が(s3, s2, sい s0) = (0, 1,0, 0)に変更 され、 接続メモリ 5-1から出力される接続情報が(s3, s2, sい s0) = (0, 1,0, 1)に変更 される。 更に、 領域指定メモリ 8-0が出力する領域指定変数 p(pp=l)の値が 0に変更さ れ、 論理関数メモリ 4 - 0は 0ページがアクセス可能な状態となる。 また、 これにより、 論理関数メモリ 4- 3の演算結果 S6,S7は外部出力線 7-0のうち の 2本に出力される。
そして、 上述の場合と同様に、 論理関数メモリ 4-0において演算処理が行われ、 論 理関数メモリ 4- 0の出力値 (- ,-, S8, S9, c。ut(4), -, -)は接続回路 5-1の入力 線 i。〜i7に入力される。 接続回路 5-1は、 これを 5ビットシフトして、.(S8, S9, c。ut (4))を出力線 (o13,o14,o15) に出力する。 これにより、 論理関数メモリ 4-0の演 算結果 (S8, S9, c。ut (4))は外部出力線 7-1のうちの 3本に出力される。 以上で、 総て の演算結果が出力線 7 - 0〜 7 - 3に出力されて演算が終了する。
〔例 2終わり〕
尚、 上記 〔例 2〕 においては、 各段の LUTに入力する入力変数 XQ, X1 ? .··,¾ iは 互いに共通の要素を持たない (すなわち、 ^υχ^φ (i≠j) ) と仮定したが、 本発明 におけるプログラマブル論理デバイスは、 入力変数 XQ, Xい '''JS の何れか 2つが共 通の要素を有するような場合にも使用することが可能である。
(実施例 8)
第 37図は本発明の実施例 8に係るプログラマブル論理デバィスの全体構成を表す ブロック図である。
本実施例においては、 接続回路 5 - 0〜 5 _ 3に入力する入力変数を選択する入力変 数選択回路 2-0〜 2- 3に加えて、 接続回路 5- 0〜5- 3を介さずに、 論理関数メモ リ 4- 0〜 4- 3に直接入力する入力変数の選択を行う入力変数選択回路 80— 0〜8 0 - 3及びその入力選択情報を記憶する入力選択メモリ 81— 1〜81— 3を設けた ことを第 1の特徴とする。 また、 前段の論理関数メモリ 4- ( i-1) (ie{l, 2, 3} ) から後段の論理関数メモリ 4- iに入力される中間変数の一部を、 接続回路 5 - iを 介さずに直接入力するように構成したことを第 2の特徴とする。
このように構成することで、 接続回路 5-0〜 5- 3の入力線の本数を減らすことが できる。 その結果、 接続回路 5-0〜 5- 3を小型ィ匕することが可能となる。 また、 接 続回路 5-0〜 5- 3を第 4図のようなシフタ回路により構成する場合には、 シフタの 段数を減らすことが可能であり、 演算速度の高速化を図ることができる。
(実施例 9)
第 38図は本発明の実施例 9に係るプログラマブル論理デバイスの全体構成を表す プロック図である。
本実施例においては、 フィード'バック用の接続回路の入力側に、 最後段の論理関 数メモリ 4 - 3の複数個の出力を一時的に記憶し、 フィード .パック用の接続回路 5 - 0に出力する中間変数レジスタ 82を備えていることを特徴とする。
実施例 7においては、 論理関数メモリ 4- 0〜4_3として、 クロックに同期して動 作するシンクロナスなメモリを使用した。 し力 し、 論理関数メモリ 4-0〜 4- 3は、 シンクロナスなメモリには限られず、 非同期に動作するメモリを使用することも可能 である。
しかしながら、 最終段の論理関数メモリ 4-3の出力は、 最前段の論理関数メモリ 4-0の入力にフィード 'パックされることから、 論理関数メモリ 4- 0〜4- 3に非同 期のメモリを使用した場合、 場合によっては発振を起こすなど、 予期しない動作が起 こる可能性がある。
そこで、 本実施例では、 中間変数レジスタ 82を備えた構成とし、 1演算ループの 演算が終了するごとに、 論理関数メモリ 4- 0〜4- 3の出力値を一旦確定させ、 論理 関数メモリ 4- 3が出力する中間変数の値を中間変数レジスタ 82に記憶させる。 そし て、 次の演算ループに移り、 中間変数レジスタ 82に記憶された中間変数を値の論理 関数メモリ 4-0に入力して演算処理を行うようにする。
これにより、 論理関数メモリ 4- 0〜4- 3に非同期なメモリを使用した場合にも、 発振すること等を防止できる。 (実施例 1 o)
第 39図は本発明の実施例 10に係るプロ 論理デバイスの全体構成を表 す図である。 本実施例のプログラマブル論理デバィスは、 演算部 85と s個 ( s≥ 2
) の出力回路 86—:!〜 86— sにより構成されている。 本実施例のプログラマブル 論理デバイスでは、 最大 s個の演算をパイプライン処理により行うこと.が可能である
。 従って、 第 39図では出力回路 86を s個設けた構成としている。 しかし、 出力回 路 86の数は、 必要に応じて減らすこともできる。
第 40図は本発明の実施例 10に係るプログラマブル論理デバイスの演算部 85の 構成を表すブロック図である。 第 40図において、 入力変数レジスタ 1、 入力変数選 択回路 2— 0〜2— (s— 1) (s≥3) 、 入力選択メモリ 3-0〜 3- (s— 1) 、 論理関数メモリ 4- 0〜4- (s— 1) 、 接続回路 5- 0〜5- (s— 1) 、 接続メモリ
6-0-6- (s— 1) 、 外部出力線 7_1〜7— s、 及び演算制御部 10は第 1図と 同様であり、 同記号を付している。
本実施形態に係るプログラマプル論理デバイスは、 s個 (s≥2) の論理関数メモ リ 4一 i ( i =0, …, s -1) を直列に接続した構成である。 i一 1段目 (i e {
1, …, s - 1} ) の論理関数メモリ 4一 ( i - 1) と、 i段目の論理関数メモリ 4 一 iとの間には、 接続回路 5— i, メモリ 'アドレス ' レジスタ (memory address register:以下、 「MAR」 という。 ) 90 及びダイレク ト ·アクセス ·セレ クタ (direct access selector:以下、 「DAS」 とレ、う。.) 91一 iがこの順に接 続されている。 また、 最前段の論理関数メモリ 4一 0の入力側には、 DAS 91— 0 が接続されている。
入力選択回路 2— 0の出力線は、 すべて最前段の D A S 91-0の入力線に接続さ れている。 入力選択回路 2— i ( i≡ {1, -, s-1} ) の出力線は、 その一部が 論理関数メモリ 4一 iの入力線の一部と接続され、 その他は MAR 90— iの入力線 の一部に接続されている。
最前段の論理関数メモリ 4一 0の入力線は、 その全部が D A S 9 1 -0の出力線と 接続されている。 また、 それ以外の論理関数メモリ 4一 i ( i e { 1 , ···, s - 1 }
) の入力線は、 全部がその前段に配置された DAS 9 1一 iの各出力線に接続されて いる。
最後段の論理関数メモリ 4一 ( s - 1) の出力線は、 その全部が外部出力線 7— s に接続されている。 また、 それ以外の論理関数メモリ 4一 i ( i≡ {0, ·■·, s - 2 } ) の出力線は、 その全部が接続回路 5 _ ( i + 1 ) の入力線の一部に接続されてい る。
各論理関数メモリ 4— 0〜4 _ sは、 電源制御端子 PWを備えている。 電源制御端 子 PWに 1が入力されたときには、 各論理関数メモリ 4一 i ( i e { 0, ···, s - 1 } ') はウェイク ·アップ状態 (wake-up mode) となる。 PWに 0が入力されたときに は、 各論理関数メモリ 4一 iは、 低消費電力状態 (low- power mode) となる。 各論理 関数メモリ 4一 0〜4— sの電源制御端子 PWには、 それぞれ、 外部から電源制御信 号 φ。〜φ s — iが入力されている。 この電源制御信号 φ。〜φ s — i によって、 各論 理関数メモリ 4 _ 0〜4一 sの電源制御が行われる。 すべての論理関数メモリを使用 してパイプライン処理により複数のジョブを実行するときは、 この電源制御信号 φ。〜 Φ s1 には常時 1が入力される。 一方、 それ以外の場合には、 ジョブの流れに合わせ て、 電源制御信号 φ。〜.φ s — i に多相クロックを入力する。 これにより、 演算処理を 実行する論理関数メモリのみをウェイク ·アップ状態とするとともに、 それ以外のも のは低消费電力状態とし、 消費電力の節減が図られる。
接続回路 5— i ( i ≡ { 1 , ···, s - 1 } ) の入力線のうち、 入力選択回路 2— 0 の出力線に接続されたもの以外のものは、 論理関数メモリ 4一 ( i - 1) の出力線に 接続されている。 また、 接続回路 5— iの出力線の一部は、 MAR 9 0— iに接続さ れており、 その他のものは、 外部出力線 7— iに接続されている。 尚、 接続回路 5— iの詳細については煢述する。
MA R 9 0— i ( i ≡ { 1 , …, s— 1 } ) は、 複数の入力線 (データ入力線) か ら入力される変数値を一時的に保持する。 MA R 9 0— iは、 中間変数レジスタとし ての機能も有する。 MAR 9 0— iの入力線は、 一部が入力選択回路 2一 iの出力線 の一部と接続され、 その他のものは接続回路 5— iの出力線の一部と接続されている 。 MA R 9 0 - iの出力線は、 その全部が、 D A S 9 1— iの入力線の一部に接続さ れている。 .
また、 MAR 9 0 _ iは、 外部ク口ック入力線、 リセット入力線、 及びバイパス制 御入力線を有する。 外部クロック入力線には、 外部からクロック信号 (clock) が入力 される。 また、 リセッ ト入力線及ぴバイパス制御入力線には、 演算制御部 1 0から、 それぞれリセッ ト信号 (reset signal) , バイパス制御信号が入力される。 尚、 この MA R 9 0— iは、 論理関数メモリへの入力を取り込んで一時的に保持する中間変数 レジスタとして機能する。 この場合、 外部クロック入力線に入力されるクロック信号 がデータ ·ストローブ信号となる。 MAR 9 0 - iの詳細については後述する。
D A S 9 1 - i ( i e { 0 , ···, s _ 1 } ) は、 外部から論理関数メモリ 4一 iに 対して、 データを直接書き込んだり、 論理関数メモリ 4ー iのテストを行ったりする ために設けられたものである。 D A S 9 1— iは、 論理関数メモリ 4— iの入力線 ( データ入力線) と同数の 2入力 1出力のマルチプレクサ (以下、 「MU X」 という。 ) を備えている。 各 MU Xの出力端子は、 論理関数メモリ 4一 iの各入力線に接続さ れている。 各 MU Xの 2つの入力端子のうちの一方 ( 0側入力端子) は、 外部アドレ ス入力線 1 0 1— iに接続されている。 また、 もう一方 ( 1側入力端子) は、 MA R 9 0— iの出力線 (一部は、 直接、 入力選択回路 2— iの出力線) に接続されている 。 各 MU Xの選択制御端子は、 選択制御線 1 0 2が接続されている。 選択制御線 1 0 2には、 演算制御部 1 0から、 D A S選択制御信号 (DAS select) が入力される。 各 MU Xは、 D A S選択制御信号が 0のときには 0側入力端子を選択し、 D A S選択制 御信号が 1のときには 1側入力端子を選択する。
外部ァドレス入力線 1 0 1— iには、 論理関数メモリ 4— iを直接アクセスする場 合に、 アクセスしょうとするァドレスが入力される。 D A S選択制御信号を 0として 、 外部アドレス入力線 1 0 1— iにアドレスを入力することにより、 論理関数メモリ 4一 iの直接アクセスが可能となる。 この機能を利用して、 論理関数メモリ 4一 iに データを書き込んだり、 論理関数メモリ 4一 iのテストを行ったりすることができる なお、 本実施例においては、 接続メモリ 6— i ( i e { 1, ···, s— 1 } ) は、.接 続情報を表す接続変数のほかに、 領域指定変数を記憶している。 接続情報とは、 二つ の論理関数メモリ 4一 (i一 1 ) , 4一 i間において、 前段の論理関数メモリ 4一 ( i - 1 ) の出力線又は外部入力線のうち後段の論理関数メモリ 4一 iの各入力線に接 続されるものを選択するための情報である。 また、 領域指定変数とは、 論理関数メモ リ 4一 (i— l ) , 4一 iのメモリ領域を指定するための変数である。 従って、 接続 メモリ 6— iは、 領域指定記憶手段としての機能も兼ね備えている。 尚、 これらの詳 細については後述する。
第 4 1図は第 4 0図の接続回路とメモリ 'アドレス ' レジスタ (MA R) の構成を 表す図である。 接続回路 5— iは、 メモリ 'パッキング 'シフタ (memory packing shifter:以下、 「M P S」 とレ、う。 ) 9 2、 及ぴレイノレ 'セレクタ (rail selector ) 9 3を備えている。
MP S 9 2は k個の入力線 (データ入力線) 、 入力線と同数 (k個) の出力線 (デー タ出力線) 、 及びシフト制御線を備えている。 MP S 9 2の各入力線には、 前段の論 理関数メモリ 4の各出力線が接続されている。 MP S 9 2のシフト制御線には、 接続 メモリ 6— iから出力される領域指定変数 Rの一部 (以下、 「列選択変数」 という 。 ) が入力される。 列選択変数 は、 前段の論理関数メモリ 4一 (i -1) 内のメモ リ ·セルから読み出したデータの一部を取得する場合において、 取り出すデータが格 納されているメモリ 'セルの列方向の領域を特定する変数である。 MPS 92は、 論 理関数メモリ 4一 ( i -1) の各出力線から入力される変数 Yi = {yi }の順序を、 列選択 変数 により指定される量だけシフトして、 出力線に出力する。 これにより、 MP S 92は、 前段の論理関数メモリ 4— ( i -1) の出力変数から、 必要なものを選択す ることができる。
レイル 'セレクタ 93は、 複数の 2入力 1出力のマルチプレクサ (以下、 「MUX 」 という。 ) 93 aを備えている。 各 MUX 93 aは、 1個の出力端子、 1個の入力 端子 (データ入力端子) 、 及び 1個の選択制御入力端子を備えている。
各 MUX 93 aの選択制御入力端子には、 接続メモリ 6— iから出力される各接続 変数が入力される。 各 MUX93 aは、 選択制御入力端子に入力される接続変数の値 によって、 0側入力端子又は 1側入力端子を選択する。
各 MUX 93 aの出力端子は、 MAR 90— iの入力線に接続されている。 各 MU X93 aの一方の入力端子 (0側入力端子) には、 入力選択回路 2— iの各出力線が 接続されている。 尚、 入力選択回路 2— iの出力線の一部は、 MUX93 aを介さず 、 直接 MAR 90— iの入力線に接続されている。
これらの MUX 93 aは、 ページ Z入力変数選択群 93 bと前段出力変数 Z入力変 数選択群 93 cとの 2つの集合に分けられる。
ページノ入力変数選択群 93 bの各 MUX 93 aの 1側入力端子には、 接続メモリ 6— iから出力される領域指定変数 Rの残りの一部 R2 (以下、 「行指定変数」 という 。 ) が入力される。 行指定変数 R2は、 後段の論理関数メモリ 4一 i内のメモリ 'セル にアクセスする場合において、 アクセスするメモリ 'セルの行方向の領域を特定する 変数である。 ページ Z入力変数選択群 93 bの各 MUX 93 aは、 行指定変数又は入 力変数の何れか一方を選択して、 MAR 90— iの入力線に出力する。 このように、 ページ/入力変数選択群 93 bの各 MUX 93 aを設けることによって、 行指定変数 のビット数を可変とすることができる。
前段出力変数/入力変数選択群 93 cの各 MUX 93 aの 1側入力端子には、 MP S 92の各出力線が接続されている。 前段出力変数/入力変数選択群 93 cの各 MU X 93 aは、 前段の論理関数メモリ 4— ( i一 1) が出力する出力変数のうち MP S により選択されたもの、 又は入力変数の何れか一方を選択して、 MAR 90— iの入 力線に出力する。
MAR90— iは、 同期型 Dフリップ ·フロップ (以下、 「DFF」 という。 ) 9 0 aとバイパス選択回路 90 bとの組が複数個配列された構成を有する。 各 DF F 9 O aは、 データ入力端子 (D) 、 デ"タ出力端子 (Q) 、 クロック端子 (LOAD) 、 及び' リセット端子'(RST) を有する。 また、 各バイパス選択回路 90 bは、 2入力 1出力の マルチプレクサで構成されている。
DFF 90 aのクロック端子 (LOAD) には、 外部からのクロック信号 (clock) が入 力される。 尚、 このクロック信号が、 データ 'ストローブ信号となる。 DFF 90 a のリセット端子 (RST) には、 演算制御部 10が出力するリセット信号 (reset) が入 力される。
DFF 90 aのデータ入力端子 (D) は、 バイパス選択回路 90 bの 1側入力端子と 、 バイパス線 90 cにより接続されている。 また、 DF F 90 aのデータ出力端子 (Q ) は、 バイパス選択回路 90 bの 0側入力端子と接続されている。 各 DFF 90 aの データ入力端子は、 前段の接続回路 5 - iの各出力線 (レイル ·セレクタ 93の各出 力線又は入力変数選択回路 2— i ) に接続されている。
バイパス選択回路 90 bの選択制御入力端子には、 演算制御部 10が出力するバイ パス制御信号が入力される。 バイパス選択回路 9 0 bほ、 このバイパス制御信号によ り、 0側入力端子又は 1側入力端子を選択する。
D F F 9 0 aのうちの一部は、 そのデータ出力端子が後段の D A S 9 1 - iに接続 されており、 残りの一部は、 そのデータ出力端子が外部出力線 7— iに接続されてい る。 この場合、 ページ Z入力変数選択群 9 3 bの各 MU X 9 3 aと接続された D F F 9 0 a、 又は、 入力変数選択回路 2— iの出力線と直接接続された D F F 9 0 aは、 後段の D A S 9 1 - iに接続される。 前段出力変数 Z入力変数選択群 9 3 cの各 MU X 9 3 aと接続された D F F 9 0 aは、 一部が後段の D A S 9 1— iに接続され、 残 りの一部は外部出力線 7— iに接続される。
第 4 2図は本発明の実施例 1 0に係るプログラマブル論理デバィスの出力回路 8 6 一 i ( i≡ { 1 , · · ·, s } ) の構成を表す図である。 出力回路 8 6— iは、 出力選択 回路 9 4、 出力シフタ 9 5、 出力パッキング ·シフタ 9 6、 出力選択メモリ 9 7、 出 力パッキング. レジスタ 9 8、 出力レジスタ 9 9を備えている。
出力選択回路 9 4は、 演算制御部 1 0から出力されるステップ変数 (step) の値に 基づいて、 外部出力線 7— 1〜7— sに出力される出力変数 〜Y S のうち何れか一 つを選択する。 そして、 選択した出力変数 を出力シフタ 9 5に出力する。 出力シフタ 9 5には、 出力選択回路 9 4から出力変数 が入力される。 出力シフタ 9 5は、 出力変 数 をシフトして、 出力パッキング ·シフタ 9 6に出力する。
出力パッキング ·シフタ 9 6は、 複数のデータ入力線と複数のデータ出力線を有す る。 このデータ入力線の一部は、 出力シフタ 9 5の出力線に接続されており、 残りは 、 後述の出力パッキング · レジスタ 9 8の出力線に接続されている。 出力パッキング .シフタ 9 6の出力線は、 出力パッキング ' レジスタの入力線に接続されている。 出 力パッキング 'シフタ 9 6の入力線の数は、 出力シフタ 9 5の出力線の数と出力パッ キング · レジスタ 9 8の出力線の数の和だけある。 一方、 出力パッキング ·シフタ 9 6の出力線の数は、 出力パッキング · レジスタ 9 8の出力線の数と同数である。
出力パッキング ·シフタ 9 6は、 入力線を所定の量だけシフトして、 その一部を出 力線に接続する。 シフト量が 0のときには、 出力パッキング ' レジスタ 9 8の出力線 に接続された入力線が、 出力パッキング ·シフタ 9 6の出力線に接続されるように構 成されている。 . .
出力選択メモリ 9 7は、 出力シフタ 9 5及び出力パッキング ·シフタ 9 6のシフト 量に関する情報が記憶されている。 出力選択メモリ 9 7は、 演算制御部 1 0から入力 されるぺージ変数に従つて、 これらのシフ 1、量情報を出力シフタ 9 5及び出力パツキ ング ·シフタ 9 6に出力する。 出力シフタ 9 5及び出力パッキング ·シフタ 9 6は、 このシフト量情報に従ってシフトを行う。
出力パッキング ' レジスタ 9 8は、 外部から入力されるクロックに従って、 出力パ ッキング ·シフタ 9 6の出力をラッチする。 出力パッキング · レジスタ 9 8の出力は 、 出力レジスタ 9 9に出力されるとともに、 出力パッキング 'シフタ 9 6の入力側に フィード ·バックされる。 この構成により、 外部出力線 7 0— iに順次出力される出 力変数を、 出力パッキング · レジスタ 9 8に順番に隙間なく詰め込むことができる。 出力レジスタ 9 9は、 すべての演算が終了した時点で演算制御部 1 0から出力ロー ド信号 (0_load) が入力されると、 出力パッキング ' レジスタ 9 8の出力を取り込ん で保持する。
以上のように構成された本実施例に係るプログラマブル論理デバイスについて、 以 下その動作を説明する。
第 4 3図〜第 4 5図は実施例 1 0に係るプログラマブル論理デバィスの演算処理動 作の流れを表す図である。 ここでは、 論理関数メモリ 4の段数が 5段 ( s = 5 ) の例 について説明する。 尚、. ここで φ。〜φ 5 は 5相クロックである。 また、 D A S選択制 御信号は 1に設定されているものとする。 従って、 D A S 9 1— 0〜9 1— 4は、 前 . 段からの入力値を選択し、 後段の論理関数メモリ 4に伝達する。
初期状態では、 すべての論理関数メモリ 4一 0〜4— 4は低消費電力状態とされて いる。
まず、 第 43 (a) 図に示すように、 外部入力線から入力変数 Xが入力変数レジスタ 1に入力される。 入力変数レジスタ 1は、 入力変数 Xを取り込んで保持する。 入力変数 Xは、 入力変数レジスタ 1から各入力変数選択回路 2— 0〜 2 _ 4に出力される。 各入 力選択回路 2 - i ( i≡ {0, 1, 2, 3, 4} ) は、 入力選択メモリ 3— iの出力 値に従って、 入力変数 Xの中から i段目の論理関数メモリ 4一 iに入力する入力変数 を選択する。
入力選択メモリ 2— 0は、 入力変数 を論理関数メモリ 4一 0の入力線に出力する。 入力選択メモリ 2— i (i e {1, 2, 3, 4} ) は、 入力変数 を接続回路 5— iの 入力線に入力する。
次に、 第 43 (b) 図に示すように、 論理関数メモリ 4— 0の電源制御端子 PWに 入力される電源制御信号 Φ。が 1になる。 これにより.、 論理闋数メモリ 4一 0は、 ゥェ イク ·アップ状態となる。 そして、 論理関数メモリ 4一 0の出力線から、 1段目の L UTによる演算結果が出力される。 尚、 第 43図〜 45において、 網掛けされた論理 関数メモリは、 ウェイク ·アップ状態にある論理関数メモリを表している。
接続回路 5—1は、 接続メモリ 6— 1の出力に従って、 論理関数メモリ 4一 0の出 力線及び入力変数選択回路 2— 1の出力線と MAR 90-1の入力線とを接続する。 そして、 1段目の LUTの演算結果の一部は、 出力変数 として外部出力線 7— 1に出 力される。 また、 その他の変数は、 中間変数 として MAR 90-1の入力線に出力さ れる。 また、 入力変数 も MAR 90— 1の入力線に出力される。
次に、 クロック elkの立ち上りで、 MAR 90—1は、 中間変数 と入力変数 を取 り込んで保持する。 そして、 電源制御信号 φ。が 0となり、 論理関数メモリ 4一 0は再 ぴ低消費電力状態となる。 それとともに、 今度は、 第 44 (a) 図に示すように、 電 源制御信号 が 1となり、 論理関数メモリ 4一 1がウェイク 'アップ状態となる。 そ して、 論理関数メモリ 4一 1の出力線から、 2段目の LUTの演算結果が出力される 。 接続回路 5— 2は、 接続メモリ 6— 2の出力に従って、 論理関数メモリ 4一 1の出 力線及び入力変数選択回路 2-2の出力線と MAR 90-2の入力線とを接続する。 そして、 2段目の LUTの演算結果の一部は、 出力変数 Y2として外部出力線 7— 2に出 力される。 また、 その他の変数は、 中間変数 U2として MAR 90-2の入力線に出力さ れる。 また、 入力変数 X2も MAR 90— 2の入力線に出力される。
以下、 同様にして、 第 44 (b) 図, 第 45 (a) 図, 第 45 (b) 図の順に演算 が進行し、 すべての演算が終了する。
このように、 演算に使用する論理関数メモリのみをゥヱイク ·アップ状態として演 算を実行させ、 使用していない他の論理関数メモリは低消費電力状態にすることによ り、 回路全体の消費電力を抑えることができる。
尚、 ここでは、 1つのタスクのみを実行させる動作について説明したが、 本実施例 のプログラマブル論理デバイスは、 複数のタスクをパイプライン処理により実行する ことも可能である。 これにより、 多数のタスクを効率よく演算処理することが可能と なる。
また、 すべての論理関数メモリ 4— 0〜4一 (s - 1) をウェイク 'アップ状態と し、 MAR 90— i ( i e { 1, …, s— 1} ) に入力するバイパス制御信号を 1と しておくことで、 クロックを使用せずに非同期モードで高速に演算処理を行うことも 可能である。
次に、 領域指定変数 Rと MPS 92を使用した論理関数メモリ 4一 i (i e {0, - , s— 1}.) のメモリ '.パッキング方法に関して説明する。
第 46図はメモリ ·パッキングの概念を説明する図である。 第 46 (a) 図, 第 4 6 (b) 図は、 論理関数メモリのメモリ ·マップを表している。
実施例 1で示したプログラマブル論理デバイスでは、 各論理関数メモリについて、 ページを切り替えることにより複数の論理関数の L U Tを記憶させておくことが可能 である。 これを概念的に表示すると、 第 46 (a) 図のようになる。 第 46図では、 ページ指定ビットとして、 論理関数メモリの行ァドレスの上位 2ビットを割り当てて いる。 そうすると、 論理関数メモリは 4ページに区分される。 そして、 ページ毎に L UTを格納すると、 最低 4個の LUTを格納することができる。 また、 1個の LUT が行内のすべての列ァドレスを使用していないような場合には、 1つのページ内に複 数の LUTを格納することも可能である。
例えば、 第 46 (a) 図では、 2ページ目に、 論理関数 f 2 , £ 6及び 7の3っの LUTを格納している。 また、 3ページ目には f 3及び f 8 の 2つの LUTを格納して いる。
しかしながら、 この方法では、 論理関数メモリの内部に未使用の領域が散在するこ ととなり、 メモリ使用効率が低い。 そこで、 第 46 (b) 図のように、 論理関数メモ リ内にできるだけ隙間なく LUTを詰め込むようにすれば、 メモリ使用効率が向上す る。 従って、 1つの論理関数メモリ内に格納することのできる LUTの数も増やすこ とができる。 このように、 論理関数メモリ内に LUTをできるだけ隙間なく格納する ことを 「メモリ 'パッキング」 という。
上記のようなメモリ ·パッキングを実現するためには、 ページ指定ビットの数を可 変にする必要がある。 また、 論理関数メモリ内の列アドレスを、 任意の位置から読み 出せるようにすることが必要である。
第 41図に示した本実施例に係る接続回路 5— i (i e {1, ···, s -1} ) は、 このようなメモリ 'パッキングを行うことを可能とする。 まず、 ページ指定は、 接続 メモリ 6— iが出力する行指定変数 R2により行う。 また、 ページ指定ビットとして何 ビット使用するかは、 接続メモリ 6— iが出力する接続変数のうち、 ページ Z入力変 数選択群 9 3 bの MU X 9 3 aに入力するものにより指定される。 第 4 1図の例では 、 ベージ指定ビットとして最大 3ビットまで使用することが可能である (尚、 これは 3ビットに限らず、 目的にあわせて何ビットで設計してもよい) 。 ページ指定ビット として使用しない場合には、 代わりにそのビットには入力変数を入力することができ る。
次に、 論理関数メモリ内の列アドレスの読み出し位置の変更は、 M P S 9 2により 行う。 例えば、 前段の論理関数メモリ 4一 (i一 1 ) の指定された行において、 列方 向に 8ビットずらして読み出したい場合には、 M P S 9 2により論理関数メモリ 4— ( i - 1 ) の出力を 8ビットシフトさせる。 これにより、 論理関数メモリ内の列アド レスを、 任意の位置から読み出せるようにすることができる。 なお、 列アドレスの読 み出し位置の指定は、 接続メモリ 6— iが出力する列選択変数 1^により行われる。 以上のように、 本実施例の接続回路 5— i ( i ≡ { 1 , - , s— 1 } ) を使用する と、 メモリ ·パッキングを実現することが可能となる。
最後に、 第 4 2図に示した出力回路 8 6— iの動作について簡単に説明する。 まず 、 演算制御部 1 0は、 出力変数 が出力される論理関数メモリ 4— ( i - 1 ) の段数 ( i一 1 ) をステップ変数 (step) として出力回路 8 6— iに出力する。 出力セレクタ 9 4は、 このステップ変数 (step) の値に基づき、 出力変数 を選択する。 選択された 出力変数 Y i は、 出力シフタ 9 5の入力線に出力される。
一方、 出力選択メモリ 9 7は、 ステップ変数 (step) の値に基づき、 出力シフタ 9 5及ぴ出力パッキング ·シフタ 9 6のシフト量に関する情報を出力する。
通常は、 必ずしも出力変数 のすベてのビットが利用されているわけではなく、 その 一部のビットのみに有効な出力変数が出力される。 そこで、 出力シフタ 9 5は、 出力 選択メモリ 9 7から入力されるシフト量情報に従って、 出力変数 をシフトさせる。 こ れにより、 出力変数 の未使用ビットを除いて、 変数を端のビットから詰め込むことが できる。 出力シフタ 9 5の出力は、 出力パッキング ·シフタ 9 6の入力線に出力され る。
出力パッキング ·シフタ 9 6は、 更に、 入力線を所定の量だけシフトして、 その一 部を出力線に接続する。 例えば、 出力シフタ 9 5から出力される出力変数 の有効なビ ット数が rビットであったとする。 この場合、 出力パッキング ·シフタ 9 6は、 入力 線を rビットだけシフトして出力線に接続する。 これにより、 出力シフタ 9 5から出 力される rビットの出力変数は、 ちょうど出力パッキング · レジスタ 9 8の入力線の 下位 ビットの範囲に詰め込まれる。 出力パッキング · レジスタ 9 8は、 クロック elk に同期して、 出力パッキング ·シフタ 9 6の出力値を保持する。
次に、 ステップ変数 (step) が i となり、'出力セレクタ 9 4が出力変数 Yi + 1を選択す ると、 同様にして、 出力パッキング♦ レジスタ 9 8の入力線の下位ビットに、 出力変 数が出力される。 このとき、 先に出力パッキング ' レジスタ 9 8に保持された変数値 は、 出力パッキング ·シフタ 9 6の入力線にフィード 'バックされている。 従って、 先に出力パッキング · レジスタ 9 8に保持された変数値も、 新たな出力変数と同じビ ッ小数だけシフトして出力パッキング' レジスタ 9 8に入力される。 そして、 出力パ ッキング ' レジスタ 9 8は、 クロック elkに同期して、 出力パッキング 'シフタ 9 6の 出力値を保持する。
このようにして、 出力パッキング ·シフタ 9 6に出力変数が順次隙間なく詰め込ま れる。 そして、 演算が終了した時点で、 演算制御部 1 0は出力ロード信号 (0_load) を 1とする。 これにより、 出力レジスタ 9 9は出力パッキング ·シフタ 9 6の出カイ直 を取り込んで記憶し、 外部に出力する。
このようにして、 本実施例の出力回路を使用すれば、 各論理関数メモリから個々に 出力される演算結果をパッキングして、 まとめて出力させることが可能となる。 (実施例 1 1)
第 47図は本発明の実施例 1 1に係るプログラマブル論理デバイスの構成を表す図 である。 本実施例のプログラマブル論理デパイスは、 基本的な構成は実施例 10のプ 口グラマプル論理デバィスと同様であるが、 本実施例では s個 (s≥2) の論理関数 メモリ 4一 0〜4— (s -1) がリング状に接続されている点において実施例 10と は異なる。 すなわち、 論理関数メモリ 4一 (s-1) の後段に、 接続回路 5— s、 M AR 90— s、 DAS 91— sが設けられており、 DAS 91— sの出力線は、 論理 関数メモリ 4— 0の入力線に接続されている。
このように、 論理関数メモリ 4ー0〜4ー (s -1) をリング状に接続したことで 、 このプログラマプル論理デバイスで実行可能な LUTカスケードの段数を s段より も大きくすることが可能である。 従って、 LUTカスケードの設計自由度が大きくな る。
例えば、 s = 2の場合を考える。 この 2つの論理回路メモリ 4一 0, 4—1を用い て 4段の LUTカスケードを実現する。 第 48図に示したように、 1段目の LUTを 論理回路メモリ 4— 0の 0ページ (第 48 (a) 図) 、 2段目の L UTを論理回路メ モリ 4—1の 0ページ (第 48 (b) 図) 、 3段目の LUTを論理回路メモリ 4一 0 の 1ページ (第 48 (c) 図) 、 4段目の LUTを論理回路メモリ 4— 1の 1ぺ^ "ジ (第 48 (d) 図) に格納すればよい。 尚、 ここではページを固定したが、 論理回路 メモリのメモリ使用効率を上げるためには、 上述したメモリ ·パッキングの手法を用 いることもできる。
また、 この論理回路メモリをリング状に接続したプログラマブル論理デバィスを用 いて、 以下の 〔例 3〕 に示すように、 2つ以上の組み合わせ論理回路の演算を 1つの プログラマブル論理デバイスで同時に実行することが可能となる。
〔例 3〕 (数 1 6) 、 (数 1 7) で表される 2つの論理関数 f , gを考える。
(数 1 6)
J = (l Xi V X 3 V iC4) ¾ V XQ
(数 1 7)
g = ({X4X5 V XQ)XI V x2)xs
(数 1 6) の論理関数 f は、 第 49 (a) 図に示したような 6段の LUTカスケ一 ドにより表現することができる。 (数 1 7) の論理関数 gは、 第 49 (b) 図に示し たような 6段の LUTカスケードにより表現することができる。
そこで、 この 2つの LUTカスケードを、 6個の論理回路メモリをリング状に接続 したプログラマブル論理デバイスを用いて実現する。 この場合、 第 50図に示したよ うに、 論理関数 ίの LUTカスケードの各段の入力変数と、 論理関数 gの LUTカス ケードの各段の入力変数が重複するように、 互いにずらして配置する。
そして、 この 2つの LUTカスケ一ドを、 第 5 1図に示したような 1つの LUTリ ングに合成する。 これにより、 2つの組み合わせ論理回路が 1つの LUTリングによ り表現される。 そして、 この LUTリングを各論理関数メモリに格納すれば、 2つの 組み合わせ論理回路 f、 gの演算を 1つのプログラマブル論理デバイスで同時に実行 することが可能となる。
〔例 3終わり〕 産業上の利用可能性
以上のように、 本発明によれば、 接続回路と接続メモリを用いて、 それぞれの目的 論理関数に応じて、 前段の論理関数メモリの出力線及ぴ入力変数の入力線と後段の論 理関数メモリの入力線との接続関係を再構成することが可能な構成とした。 これによ り、 使用可能な論理関数のレイル数及び入力変数の個数の組み合わせの自由度が増す 。 そして、 より多くの目的論理関数の論理回路を 1つの L U Tカスケード論理回路に より設計することが可能となる。 また、 レイル数及ぴ入力変数の数の組み合わせを最 適化できるため、 論理関数メモリの入力線数を極力少なくすることができる。 そのた め、 メモリの使用効率も向上する。 その結果、 L S Iチップの利用効率が向上する。 従って、 回路の小型化 ·高集積ィ匕を図ることができる。
また、 接続回路が、 前段の論理関数メモリの出力を、 論理関数の演算結果を出力す る外部出力線に接続可能とした。 これにより、 L U Tカスケ一ドの途中の論理関数メ モリの出力を出力変数として取り出し、 必要なメモリ量を削減し、 演算速度を高速ィ匕 することが可能となる。
また、 各論理関数メモリについて、 複数の目的論理関数に対して、 論理関数の L U Tの異なるメモリ領域を割り当て、 領域指定記憶手段の出力に従ってアクセス可能な メモリ領域を選択的に切り換えることで、 複数の目的論理関数の演算を実行させるこ とが可能となる。
更に、 各接続回路及び各論理関数メモリに対して入力する入力変数を、 各入力変数 選択回路により個別に選択することができる。 従って、 複数の論理関数メモリの演算 を同時に行うことが可能であり、 パイプライン処理が可能となる。

Claims

請 求 の 範 囲
. 以下の構成を含むプログラマプル論理デバィス (programmable logic device) 蘭理関数の L U T (look up table) を記憶するための、 直列に順序づけて配列され た論理関数メモリ ; .
前記各論理関数メモリに対する入力変数が入力される複数の外部入力線; 二つの前記論理関数メモリ間において、 前段の前記論理関数メモリの出力線又は前 記外部入力線のうち後段の前記論理関数メモリの各入力線に接続されるものを選択す るための接続情報を記憶する接続メモリ ;
二つの前記論理関数メモリ間において、 前記接続メモリの出力に従って、 前段の前 記論理関数メモリの出力線又は前記外部入力線と後段の前記論理関数メモリの入力線 との接続関係の再構成を行うことが可能な接続回路。
2 . 以下の構成を含むプログラマプル論理デバィス :
論理関数の L U Tを記憶するための、 リング状に配列された論理関数メモリ ; 前記各論理関数メモリに対する入力変数が入力される複数の外部入力線; 二つの前記論理関数メモリ間において、 前段の前記論理関数メモリの出力線又は前 記外部入力線のうち後段の前記論理関数メモリの各入力線に接続されるものを選択す るための接続情報を記憶する接続メモリ ;
二つの前記論理関数メモリ間において、 前記接続メモリの出力に従って、 前段の前 記論理関数メモリの出力線又は前記外部入力線と後段の前記論理関数メモリの入力線 との接続関係の再構成を行うことが可能な接続回路。
3 . 論理関数の演算結果を外部回路に出力するための外部出力線を備え;
' 前記接続メモリは、 二つの前記論理関数メモリ間において、 前段の前記論理関数メ モリの出力線のうち前記外部出力線に接続されるものを選択するための接続情報をも 記憶するものであり ;
前記接続回路は、 二つの前記論理関数メモリ間において、 前記接続メモリの出力に 従って、 前段の前記論理関数メモリの出力線と前記外部出力線との接続をも行うもの で、める ;
ことを特徴とする請求の範囲第 1項又は第 2項記載のプログラマブル論理デパイス。
4 - 論理関数メモリのメモリ領域を指定する領域指定変数を記憶する領域指定記憶手 段を備え; '
前記接続回路は、 二つの前記論理関数メモリ間において、 領域指定記憶手段の出力 に従って、
前段の前記論理関数メモリの出力及び外部入力線からの入力変数が、 領域指定変数 により特定される後段の前記論理関数メモリのメモリ領域に入力されるように、 又は、 領域指定変数により特定される前段の前記論理関数メモリのメモリ領域から の出力及び外部入力線からの入力変数が、 後段の前記論理関数メモリに入力されるよ うに、
前段の前記論理関数メモリの出力線、 外部入力線、 及び領域指定記憶手段の出力線 と、 後段の前記論理関数メモリの入力線との接続を行うものである;
ことを特徴とする請求の範囲第 1項乃至第 3項の何れか一記載のプログラマプル論理 デバイス。
5 . 前記論理関数メモリの入力側又は出力側に設けられ、 外部から入力されるデータ 'スト口ーブ信号に従って、 前記論理関数メモリへの入力又は前記論理関数メモリの 出力を取り込んで一時的に保持する中間変数レジスタ ;
を備えていることを特徴とする請求の範囲第 1項乃至第 4項の何れか一記-載のプログ ラマブノレ論理デパイス。.
6 . 前記中間変数レジスタと並列に接続されたパイパス線; 及び、 前記中間変数レジスタの出力側に設けられ、 前記中間変数レジスタの出力線 又は前記バイパス線の何れか一方を選択し、 選択された線の信号を出力するバイパス 選択回路;
を備えていることを特徴とする請求の範囲第 1項乃至第 5項の何れか一記載のプログ ラマプル論理デバイス。
7 . 前記データ 'ストローブ信号を計数し、 演算を実行する前記論理関数メモリの番 号を特定する論理関数メモリ特定手段;
を備えていることを特徴とする請求の範囲第 5項又は第 6項記載のプログラマブル論 理デバイス。
8 . 演算処理を実行させる前記論理関数メモリを通常動作状態とし、 それ以外の前記 論理関数メモリを低消費電力状態とする制御を行う電源制御手段;
を備えている請求の範囲第 5項乃至第 7項の何れか一記載のプログラマブル論理デバ イス。
9 . 前記各論理関数メモリの一部の入力線は、 前記接続回路を介すことなく前記外部 入力線に直接接続されていることを特徴とする請求の範囲第 1項乃至第 8項の何れか 一記載のプログラマブル論理デパイス。
1 0 . 前記各論理関数メモリの一部の出力線は、 前記接続回路を介すことなくその後 段の論理関数メモリの一部の入力線に直接接続されていることを特徴とする請求の範 囲第 1項乃至第 9項の何れか一に記載のプログラマブル論理デバィス。
1 1 . 前記接続回路は、 複数のセレクタ回路を含み;
前記各セレクタ回路は、 前記接続メモリの出力値に従って、 前段の前記論理関数メ モリの出力線と前記外部入力線とのうち何れか一つ、 又は、 前段の前記論理関数メモ リの出力線と前記外部入力線と領域指定記憶手段の出力線とのうち何れか一つを選択 して後段の前記論理関数メモリの入力線に接続するものであること ; を特徴とする請求の範囲第 1項乃至第 1 0項の何れか一記載のプログラマブル論理デ パイス。
1 2 . 前記接続回路は、 前記接続メモリの出力値に従って、 前段の前記論理関数メモ リの出力線の接続順序をシフトして後段の前記論理関数メモリの入力線に接続するシ
5 フタ回路を含むことを特徴とする請求の範囲第 1項乃至第 1 1項の何れか一記載のプ ログラマプル論理デバィス。
1 3 . 前記接続回路は、 複数のマルチプレクサを含み;
前記マルチプレクサは、 前記接続メモリの出力値に従って、 前段の前記論理関数メ モリの複数の出力線及ぴ複数の前記外部入力線のうちの何れか一本を選択して後段の 10 前記論理関数メモリの入力線に接続するものであること ;
を特徴とする請求の範囲第 1項乃至第 1 2項の何れか一記载のプログラマブル論理デ パイス。
PCT/JP2004/004752 2003-03-31 2004-03-31 プログラマブル論理デバイス WO2004088500A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005504294A JP4246200B2 (ja) 2003-03-31 2004-03-31 プログラマブル論理デバイス
CA002521167A CA2521167A1 (en) 2003-03-31 2004-03-31 Programmable logic device
US10/551,391 US7486109B2 (en) 2003-03-31 2004-03-31 Programmable logic device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003093922 2003-03-31
JP2003-093922 2003-03-31
JP2003-105762 2003-04-09
JP2003105762 2003-04-09

Publications (1)

Publication Number Publication Date
WO2004088500A1 true WO2004088500A1 (ja) 2004-10-14

Family

ID=33134312

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2004/004752 WO2004088500A1 (ja) 2003-03-31 2004-03-31 プログラマブル論理デバイス

Country Status (5)

Country Link
US (1) US7486109B2 (ja)
JP (1) JP4246200B2 (ja)
KR (1) KR101000099B1 (ja)
CA (1) CA2521167A1 (ja)
WO (1) WO2004088500A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007243671A (ja) * 2006-03-09 2007-09-20 Kddi Corp 論理プログラマブルデバイス保護回路
US7877555B1 (en) * 2005-09-20 2011-01-25 Altera Corporation Power-aware RAM processing
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
JPWO2014080872A1 (ja) * 2012-11-20 2017-01-05 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8832326B1 (en) * 2005-11-01 2014-09-09 Xilinx, Inc. Circuit and method for ordering data words
CN102331733A (zh) * 2010-07-14 2012-01-25 中国科学院沈阳计算技术研究所有限公司 基于片上可编程系统的数控系统逻辑控制器及其实现方法
KR101802945B1 (ko) 2011-06-27 2017-12-29 삼성전자주식회사 논리 장치 및 이를 포함하는 반도체 패키지
MX365907B (es) * 2012-01-19 2019-06-19 Victor Equipment Co Ensamble de conducto universal para un soplete.
TWI636667B (zh) * 2013-04-02 2018-09-21 Taiyo Yuden Co., Ltd. 可再構成之邏輯元件
WO2016121038A1 (ja) 2015-01-28 2016-08-04 三菱電機株式会社 インテリジェント機能ユニット及びプログラマブルロジックコントローラシステム
US10141937B2 (en) * 2016-08-09 2018-11-27 Andapt, Inc. Pulse-width modulation (PWM) control loop for power application
TWI640996B (zh) * 2017-12-21 2018-11-11 新唐科技股份有限公司 記憶體電路及其測試方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
USRE34363E (en) * 1984-03-12 1993-08-31 Xilinx, Inc. Configurable electrical circuit having configurable logic elements and configurable interconnects
JP4191219B2 (ja) * 2006-10-30 2008-12-03 エルピーダメモリ株式会社 メモリ回路、半導体装置及びメモリ回路の制御方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SASAO TSUTOMU ET AL.: "Tashutsuryoku kansu no cascade jutsugen to saikosei kano hardware ni yoru jitsugen", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS GIJUTSU KENKYU HOKOKU, vol. 101, no. 3, 6 April 2001 (2001-04-06), pages 57 - 64, XP002904095 *
TOMITA AKIHIKO ET AL.: "LUT array-gata PLD no sekkei to shisaku", THE INSTITUTE OF ELECTRONICS, INFORMATION AND COMMUNICATION ENGINEERS GIJUTSU KENKYU HOKOKU, vol. 100, no. 475, 23 November 2000 (2000-11-23), pages 173 - 178, XP002904096 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877555B1 (en) * 2005-09-20 2011-01-25 Altera Corporation Power-aware RAM processing
JP2007243671A (ja) * 2006-03-09 2007-09-20 Kddi Corp 論理プログラマブルデバイス保護回路
JP2011129141A (ja) * 2011-01-17 2011-06-30 Renesas Electronics Corp 半導体集積回路
JPWO2014080872A1 (ja) * 2012-11-20 2017-01-05 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法

Also Published As

Publication number Publication date
KR101000099B1 (ko) 2010-12-09
US7486109B2 (en) 2009-02-03
JP4246200B2 (ja) 2009-04-02
KR20060002739A (ko) 2006-01-09
CA2521167A1 (en) 2004-10-14
JPWO2004088500A1 (ja) 2006-07-06
US20080204072A1 (en) 2008-08-28

Similar Documents

Publication Publication Date Title
JP4664311B2 (ja) カスケード接続するdspスライスを備えた集積回路
EP1271474B1 (en) Function block
US8495122B2 (en) Programmable device with dynamic DSP architecture
US7472155B2 (en) Programmable logic device with cascading DSP slices
US7467175B2 (en) Programmable logic device with pipelined DSP slices
US7567997B2 (en) Applications of cascading DSP slices
US7480690B2 (en) Arithmetic circuit with multiplexed addend inputs
TWI234737B (en) Integrated circuit device
US20050144213A1 (en) Mathematical circuit with dynamic rounding
JP6250548B2 (ja) 再構成可能な半導体装置の論理構成方法
JPH0379126A (ja) 構成可能論理素子
JPH07177008A (ja) 改良されたプログラマブル論理セルアレイアーキテクチャ
JP6564186B2 (ja) 再構成可能な半導体装置
WO2004088500A1 (ja) プログラマブル論理デバイス
JP2006518144A (ja) プログラム可能な論理セルのアレイをもつ電子回路
US20070260805A1 (en) Computer with a Reconfigurable Architecture for Integrating a Global Cellular Automaton
JP6405262B2 (ja) 再構成可能な論理デバイス
JP4330472B2 (ja) 処理装置
Havrilov et al. Design of Digital Data Selectors on FPGA in a Laboratory Environment
Warrier et al. Reconfigurable DSP block design for dynamically reconfigurable architecture
JP3567689B2 (ja) フィールドプログラマブルゲートアレイ
JP2005275698A (ja) データフローグラフ処理方法、リコンフィギュラブル回路および処理装置
Cascades Realization of Sequential Circuits by Look-Up Table Rings
Lai et al. A new architecture for time-multiplexed FPGA and its circuit partitioning algorithm
Astola et al. Synthesis with Multiplexers

Legal Events

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

Ref document number: 2005504294

Country of ref document: JP

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 JP 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 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 IT 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: 1020057009781

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 2521167

Country of ref document: CA

Ref document number: 20048087832

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 1020057009781

Country of ref document: KR

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

Ref document number: 10551391

Country of ref document: US