[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP5701054B2 - Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method - Google Patents

Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method Download PDF

Info

Publication number
JP5701054B2
JP5701054B2 JP2010292024A JP2010292024A JP5701054B2 JP 5701054 B2 JP5701054 B2 JP 5701054B2 JP 2010292024 A JP2010292024 A JP 2010292024A JP 2010292024 A JP2010292024 A JP 2010292024A JP 5701054 B2 JP5701054 B2 JP 5701054B2
Authority
JP
Japan
Prior art keywords
logic block
inputs
reconfigurable logic
input
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010292024A
Other languages
Japanese (ja)
Other versions
JP2012142662A (en
Inventor
敏則 末吉
敏則 末吉
全広 飯田
全広 飯田
太樹 尼崎
太樹 尼崎
宏太 加藤
宏太 加藤
善信 市田
善信 市田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rohm Co Ltd
Kumamoto University NUC
Original Assignee
Rohm Co Ltd
Kumamoto University NUC
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 Rohm Co Ltd, Kumamoto University NUC filed Critical Rohm Co Ltd
Priority to JP2010292024A priority Critical patent/JP5701054B2/en
Publication of JP2012142662A publication Critical patent/JP2012142662A/en
Application granted granted Critical
Publication of JP5701054B2 publication Critical patent/JP5701054B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Logic Circuits (AREA)

Description

本発明は、リコンフィギュラブルロジックブロック(以下、RLB[Reconfigurable Logic Block]と呼ぶ)、並びに、これを用いたプログラマブル論理回路装置、及び、テクノロジマッピング方法に関するものである。   The present invention relates to a reconfigurable logic block (hereinafter referred to as RLB [Reconfigurable Logic Block]), a programmable logic circuit device using the same, and a technology mapping method.

近年、ハードウェア記述言語 (HDL[Hardware Description Language])を用いたプログラミングにより、半導体装置に集積化された内部論理回路を現場で自由に再構築することが可能なプログラマブル論理回路装置(PLD[Programmable Logic Device]、FPGA[Field Programmable Gate Array]、DAP/DNA[Digital Application Processor/Distributed Network Architecture]、DRP[Dynamically Reconfigurable Processor]など)が種々実用化されている。   In recent years, a programmable logic circuit device (PLD [Programmable]) capable of freely reconstructing an internal logic circuit integrated in a semiconductor device in the field by programming using a hardware description language (HDL [Hardware Description Language]). Logic Device], FPGA [Field Programmable Gate Array], DAP / DNA [Digital Application Processor / Distributed Network Architecture], DRP [Dynamically Reconfigurable Processor], etc.) have been put into practical use.

なお、上記に関連する従来技術の一例としては、特許文献1〜特許文献7、及び、非特許文献1を挙げることができる。   In addition, as an example of the prior art relevant to the above, patent document 1-patent document 7, and nonpatent literature 1 can be mentioned.

米国特許第4,706,216号明細書US Pat. No. 4,706,216 米国特許第4,870,302号明細書US Pat. No. 4,870,302 米国特許第6,998,872号明細書US Pat. No. 6,998,872 米国特許出願公開第2007/0222477号明細書US Patent Application Publication No. 2007/0222477 特開2003−18000号公報JP 2003-18000 A 特開2004−248293号公報JP 2004-248293 A 特開2007−166579号公報JP 2007-166579 A

(Vaughn Betz, Jonathan Rose, and Alexander Marquardt)著、「Architecture and CAD for Deep-Submicron FPGAs (The Springer International Series in Engineering and Computer Science) 」、Springer出版(Vaughn Betz, Jonathan Rose, and Alexander Marquardt), `` Architecture and CAD for Deep-Submicron FPGAs (The Springer International Series in Engineering and Computer Science) '', published by Springer

FPGAなどのプログラマブル論理回路装置では、所望の論理回路を実現するための基本素子としてルックアップテーブル(以下、LUT[Look-Up Table]と呼ぶ)が用いられている。LUTは、真理値表の出力値をコンフィギュレーションメモリに1対1で保持しており、それらを複数のマルチプレクサによりデコードすることで、所望の論理回路を実現することが可能である。K入力のLUT(以下、K−LUTと呼ぶ)を用いれば、K入力以下の論理回路を全て実装することができる。しかしながら、従来のLUTでは、入力数を増やすほど遅延性能が高くなる(遅延が小さくなる)が、使用されないメモリ数が増えて実装面積(LUTのサイズ)が大きくなる、言い換えれば、LUTの使用メモリ数(LUTのサイズ)と遅延性能がトレードオフの関係にある、という問題があった(例えば、特許文献1や特許文献2を参照)。   In a programmable logic circuit device such as an FPGA, a lookup table (hereinafter referred to as LUT [Look-Up Table]) is used as a basic element for realizing a desired logic circuit. The LUT holds the output values of the truth table in the configuration memory on a one-to-one basis, and a desired logic circuit can be realized by decoding them with a plurality of multiplexers. If a K-input LUT (hereinafter referred to as a K-LUT) is used, all logic circuits having K inputs or less can be implemented. However, in the conventional LUT, the delay performance increases as the number of inputs increases (the delay decreases), but the number of unused memories increases and the mounting area (LUT size) increases. In other words, the memory used by the LUT There is a problem that the number (LUT size) and the delay performance are in a trade-off relationship (see, for example, Patent Document 1 and Patent Document 2).

なお、従来より、LUTの使用メモリ数を減らす工夫として、図27で示すようなアダプティブLUTが提案されている(例えば、特許文献3や特許文献4を参照)。これは、入力数の多いLUTを分割することで、入力数の少ないLUTを複数個使用できるようにし、メモリ数を削減する技術である。確かに、入力数の多いアダプティブLUTを使用して論理回路を実装すれば、入力数の少ないLUTを多数使用して論理回路を実装する場合よりも、遅延性能を高めることが可能である。しかしながら、従来のアダプティブLUTでは、入力数の多いLUTを分割せずに用いた場合、LUTの使用メモリ数(消費電力)が多くなる、という問題があった。   Conventionally, an adaptive LUT as shown in FIG. 27 has been proposed as a device for reducing the number of memories used in the LUT (see, for example, Patent Document 3 and Patent Document 4). This is a technique for reducing the number of memories by dividing a LUT having a large number of inputs so that a plurality of LUTs having a small number of inputs can be used. Certainly, if the logic circuit is mounted using an adaptive LUT with a large number of inputs, the delay performance can be improved as compared with the case where a logic circuit is mounted using a large number of LUTs with a small number of inputs. However, the conventional adaptive LUT has a problem that the number of used memories (power consumption) of the LUT increases when an LUT having a large number of inputs is used without being divided.

また、従来より、図28で示すようなクラスタベース論理ブロックの構成手法が提案されている(例えば、非特許文献1を参照)。これば、入力数の少ないLUTを多数クラスタリングすることにより、LUTのメモリ使用率を下げずに性能を改善する技術である。しかしながら、従来のクラスタベース論理ブロックでは、論理ブロック内でLUT同士を接続するためにマルチプレクサとメモリが多数必要となるため、配線に必要なハードウェアリソースが増加する、という問題があった。   Conventionally, a cluster-based logical block configuration method as shown in FIG. 28 has been proposed (see, for example, Non-Patent Document 1). This is a technique for improving the performance without lowering the LUT memory usage rate by clustering a large number of LUTs with a small number of inputs. However, the conventional cluster-based logical block has a problem in that a large number of multiplexers and memories are required to connect the LUTs in the logical block, so that hardware resources necessary for wiring increase.

図29は、上記した従来技術の特徴をまとめた一覧表である。従来のLUT(例えば、4−LUT)は、論理ブロックのサイズが小さいので、構成メモリ数は少なくて済むが、遅延性能は低く、また、同一回路を実装したときの論理ブロックの使用数は多くなる。これに対して、従来のアダプティブLUT(例えば、アダプティブ6−LUT)やクラスタベース論理ブロック(例えば、4−LUT×8)は、遅延性能が高く、また、同一回路を実装したときの論理ブロックの使用数は少なくて済むが、論理ブロックのサイズが大きいので、構成メモリ数が多くなる。   FIG. 29 is a list summarizing the above-described features of the prior art. Conventional LUTs (for example, 4-LUT) have a small logical block size, so the number of constituent memories is small. However, the delay performance is low, and the number of logical blocks used when the same circuit is mounted is large. Become. On the other hand, conventional adaptive LUTs (for example, adaptive 6-LUT) and cluster-based logical blocks (for example, 4-LUT × 8) have high delay performance, and the logical block when the same circuit is mounted. Although the number of uses is small, the size of the logical block is large, so the number of constituent memories is large.

また、その他の従来技術として、特許文献5では、M入力N出力のルックアップテーブルであって、複数のLUTユニットと、前記複数のLUTユニットによる内部構成を制御する内部構成制御手段と、を備えるルックアップテーブルが開示されている。この従来技術によれば、例えば、6入力3出力の場合、2−LUTを3つ、3LUT−を2つ、または、6−LUTを1つといったように、モードを切り替えることで面積効率を向上させることが可能である。しかしながら、この従来技術では、6入力の論理回路を実装するためには64ビットのメモリが必要であるため、テクノロジマッピングで6入力の論理回路が多数出てきた場合には、使用メモリ数が多くなっていた。また、出力線が従来のLUTよりも多いので、配線領域が増加するという懸念もあった。   In addition, as another conventional technique, in Patent Document 5, an M-input N-output look-up table includes a plurality of LUT units and an internal configuration control unit that controls an internal configuration of the plurality of LUT units. A lookup table is disclosed. According to this prior art, for example, in the case of 6 inputs and 3 outputs, the area efficiency is improved by switching the mode such as 3 2-LUTs, 2 3 LUTs, or 6 6-LUTs. It is possible to make it. However, in this prior art, a 64-bit memory is required to implement a 6-input logic circuit. Therefore, when a large number of 6-input logic circuits appear in technology mapping, the number of memories used is large. It was. In addition, since there are more output lines than the conventional LUT, there is a concern that the wiring area increases.

また、特許文献6では、6つの2−LUTから構成されており、完全な4−LUTと、一般的に用いられる6入力の論理関数を比較的高い割合で実装することが可能な不完全ルックアップテーブルが提案されている。この従来技術によれば、構成可能論理回路は6入力全ての論理関数のサブセットしか実行できないため、構成可能論理回路がFPGA内で占めるシリコン領域を大幅に減少することが可能である。しかしながら、この従来技術では、論理セルからの出力線が2本あるので、6入力のサブセットとして使用した場合、配線領域が増加してしまう。また、セル内のコンフィギュレーションメモリ数については、さらなる削減の余地があった。   Further, Patent Document 6 is composed of six 2-LUTs, and an incomplete look that can implement a complete 4-LUT and a commonly used 6-input logic function at a relatively high rate. An uptable has been proposed. According to this prior art, the configurable logic circuit can execute only a subset of all six input logic functions, so that the silicon area occupied by the configurable logic circuit in the FPGA can be greatly reduced. However, in this prior art, since there are two output lines from the logic cell, the wiring area increases when used as a 6-input subset. In addition, there is room for further reduction in the number of configuration memories in the cell.

また、特許文献7では、演算回路を構成する第1の回路、および、該演算回路外の回路を構成する第2の回路を備えるリコンフィギュラブルロジックブロックであって、前記第1および第2の回路における所定の信号の設定を変化させることにより、異なる回路を構成するようにしたリコンフィギュラブルロジックブロックが提案されている。この従来技術によれば、算術演算と論理演算を効率良く実装し、また、論理演算においては、少ないBLE[Basic Logic Element]数で一部の論理回路を実装することが可能である。しかしながら、この従来技術において、実装可能な一部の論理回路は、その出現確率を考慮したものではなく、効率的な論理回路の実装については、さらなる改善の余地があった。   Further, in Patent Document 7, a reconfigurable logic block including a first circuit that constitutes an arithmetic circuit and a second circuit that constitutes a circuit outside the arithmetic circuit, the first and second A reconfigurable logic block has been proposed in which different circuits are configured by changing the setting of a predetermined signal in a circuit. According to this prior art, arithmetic operations and logic operations can be efficiently implemented, and in logic operations, some logic circuits can be implemented with a small number of BLE [Basic Logic Elements]. However, in this prior art, some of the logic circuits that can be mounted do not consider the appearance probability, and there is room for further improvement in the efficient logic circuit mounting.

本発明は、本願の発明者らにより見出された上記の問題点に鑑み、デバイスの小面積化と低消費電力化を実現することが可能なリコンフィギュラブルロジックブロック、並びにこれを用いたプログラマブル論理回路装置、及び、テクノロジマッピング方法を提供することを目的とする。   In view of the above-mentioned problems found by the inventors of the present application, the present invention provides a reconfigurable logic block capable of realizing a reduction in device area and power consumption, and a programmable using the same. An object is to provide a logic circuit device and a technology mapping method.

上記目的を達成するために、本発明に係るリコンフィギュラブルロジックブロックは、最大K入力(x[0]〜x[K−1])のリコンフィギュラブルロジックブロックであって、m入力(y[0]〜y[m−1]、ただしmはKよりも小さくyはxに属する)の第1ルックアップテーブルと、n入力(z[0]〜z[n−1]、ただしnはKよりも小さくzはxに属する)の第2ルックアップテーブルと、p入力(c[0]〜c[p−1]、ただしpはKよりも小さくcはxに属する)の組み合わせ回路と、前記組み合わせ回路の出力に応じて前記第1ルックアップテーブルと前記第2ルックアップテーブルのいずれか一方を選択するセレクタと、を有する構成(第1の構成)とされている。   In order to achieve the above object, a reconfigurable logic block according to the present invention is a reconfigurable logic block having a maximum of K inputs (x [0] to x [K-1]), and has m inputs (y [ 0] to y [m−1], where m is smaller than K and y belongs to x, and n inputs (z [0] to z [n−1], where n is K A second look-up table smaller than z belonging to x) and a combinational circuit of p inputs (c [0] to c [p−1], where p is smaller than K and c belongs to x), A configuration (first configuration) is provided that includes a selector that selects one of the first lookup table and the second lookup table in accordance with the output of the combinational circuit.

なお、上記第1の構成から成るリコンフィギュラブルロジックブロックは、複数の論理回路を各々表現した真理値表を比較して、同一パターンが連続している部分を前記第2ルックアップテーブルで実装し、残りの部分を前記第1ルックアップテーブルで実装する構成(第2の構成)にするとよい。   The reconfigurable logic block having the above first configuration compares a truth table representing each of a plurality of logic circuits, and implements a portion in which the same pattern is continuous using the second lookup table. The remaining portion may be configured to be implemented with the first lookup table (second configuration).

また、上記第2の構成から成るリコンフィギュラブルロジックブロックにおいて、前記複数の論理回路は、K入力のルックアップテーブルでマッピングされた論理回路のうち、出現確率の高いものを含む構成(第3の構成)にするとよい。   In the reconfigurable logic block having the second configuration, the plurality of logic circuits include a logic circuit mapped with a K-input look-up table having a high appearance probability (third Configuration).

また、本発明に係るプログラマブル論理回路装置は、上記第3の構成から成るリコンフィギュラブルロジックブロックを有する構成(第4の構成)とされている。   In addition, the programmable logic circuit device according to the present invention has a configuration (fourth configuration) having a reconfigurable logic block having the third configuration.

また、本発明に係るテクノロジマッピング方法は、上記第4の構成から成るプログラマブル論理回路装置を対象としたものであって、入力数jとして前記リコンフィギュラブルロジックブロックの最大入力数Kを設定してフローを第2ステップに進める第1ステップと;カバリングされていないノードを探索してフローを第3ステップに進める第2ステップと;j入力のカットがあるか否かを判定し、カットがあればフローを第4ステップに進め、カットがなければフローを第10ステップに進める第3ステップと;j入力の部分回路にカットしてフローを第5ステップに進める第4ステップと;jがmよりも大きいか否かを判定し、大きければフローを第6ステップに進め、大きくなければフローを第8ステップに進める第5ステップと;前記部分回路のP代表元を算出してフローを第7ステップに進める第6ステップと;前記P代表元に基づいて前記部分回路が前記リコンフィギュラブルロジックブロックで実装可能か否かを判定し、実装可能であればフローを第8ステップに進め、実装不可能であればフローを第3ステップに進める第7ステップと;前記リコンフィギュラブルロジックブロックでノードのカバリングを行い、フローを第9ステップに進める第8ステップと;全てのノードがカバリング済みであるか否かを判定し、カバリング済みであれば一連のフローを終了させ、カバリング済みでなければフローを第2ステップに進める第9ステップと;入力数jを一つデクリメントさせてフローを第2ステップに進める第10ステップと;を有する構成(第5の構成)とされている。   The technology mapping method according to the present invention is intended for the programmable logic circuit device having the fourth configuration described above, and sets the maximum input number K of the reconfigurable logic block as the input number j. A first step that advances the flow to the second step; a second step that searches for a node that is not covered and advances the flow to the third step; determines whether there is a cut of j inputs; If the flow advances to the fourth step, and if there is no cut, the third step advances the flow to the tenth step; the fourth step advances the flow to the fifth step by cutting into a j-input partial circuit; j is greater than m If it is greater, the flow proceeds to the sixth step; otherwise, the flow proceeds to the eighth step; Calculating a P representative element of the partial circuit and proceeding the flow to the seventh step; determining whether or not the partial circuit can be implemented by the reconfigurable logic block based on the P representative element; If implementation is possible, the flow proceeds to the eighth step, and if implementation is impossible, the seventh step proceeds to the third step; covering the node with the reconfigurable logic block, and the flow to the ninth step An eighth step to proceed; a determination as to whether or not all nodes have been covered; a ninth flow to end the series of flows if they have been covered; and a flow to the second step if not already covered; A tenth step of decrementing the input number j by one and advancing the flow to the second step (fifth configuration); It has been.

本発明によれば、デバイスの小面積化と低消費電力化を実現することが可能なリコンフィギュラブルロジックブロック、並びに、これを用いたプログラマブル論理回路装置、及び、テクノロジマッピング方法を提供することが可能となる。   According to the present invention, it is possible to provide a reconfigurable logic block capable of realizing a reduction in area and power consumption of a device, a programmable logic circuit device using the same, and a technology mapping method. It becomes possible.

本発明に係るプログラマブル論理回路装置の全体構成例を示すブロック図The block diagram which shows the example of whole structure of the programmable logic circuit apparatus which concerns on this invention 3入力論理回路の一実装例を示す図Diagram showing an implementation example of a 3-input logic circuit 本発明に係るリコンフィギュラブルロジックブロックの概念的構成を示す図The figure which shows the notional structure of the reconfigurable logic block which concerns on this invention メモリの一使用例を示す真理値表Truth table showing an example of memory usage リコンフィギュラブルロジックブロックの第1構成例を示す図The figure which shows the 1st structural example of a reconfigurable logic block 第1構成例における入力条件とメモリとの関係を示す図The figure which shows the relationship between the input conditions and memory in a 1st structural example. 6−LUTでマッピングした回路のメモリパターン(P同値類)を示す図The figure which shows the memory pattern (P equivalence class) of the circuit mapped by 6-LUT 6入力のテクノロジマッピング方法を示すフローチャートFlow chart showing a 6-input technology mapping method 本発明に係るテクノロジマッピング方法の全体像を示すフローチャートThe flowchart which shows the general view of the technology mapping method which concerns on this invention リコンフィギュラブルロジックブロックの第2構成例を示す図The figure which shows the 2nd structural example of a reconfigurable logic block リコンフィギュラブルロジックブロックの第3構成例を示す図The figure which shows the 3rd structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第4構成例を示す図The figure which shows the 4th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第5構成例を示す図The figure which shows the 5th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第6構成例を示す図The figure which shows the 6th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第7構成例を示す図The figure which shows the 7th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第8構成例を示す図The figure which shows the 8th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第9構成例を示す図The figure which shows the 9th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第10構成例を示す図The figure which shows the 10th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第11構成例を示す図The figure which shows the 11th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第12構成例を示す図The figure which shows the 12th structural example of a reconfigurable logic block リコンフィギュラブルロジックブロックの第13構成例を示す図The figure which shows the 13th structural example of a reconfigurable logic block リコンフィギュラブルロジックブロックの第14構成例を示す図The figure which shows the 14th structural example of a reconfigurable logic block リコンフィギュラブルロジックブロックの第15構成例を示す図The figure which shows the 15th structural example of a reconfigurable logic block. リコンフィギュラブルロジックブロックの第16構成例を示す図The figure which shows the 16th structural example of a reconfigurable logic block 各構成例におけるLUTの形成方法とメモリの集約状態を示す図The figure which shows the formation method of LUT and the aggregation state of a memory in each structural example 各構成例における論理回路のカバー率を示す図The figure which shows the coverage of the logic circuit in each configuration example アダプティブLUTの一従来例を示すブロック図Block diagram showing a conventional example of an adaptive LUT クラスタベース論理ブロックの一従来例を示すブロック図Block diagram showing a conventional example of a cluster-based logical block 従来技術の特徴をまとめた一覧表List of features of conventional technologies

<プログラマブル論理回路装置>
図1は、本発明に係るプログラマブル論理回路装置の全体構成例を示すブロック図である。本構成例のプログラマブル論理回路装置100は、I/Oブロック101と、リコンフィギュラブルロジックブロック102(以下、RLB[Reconfigurable Logic Block]102と略称する)と、コネクションブロック103(以下、CB[Connection Block]103と略称する)と、スイッチブロック104(以下、SW[Switch Block]104と略称する)と、配線105と、を有する。
<Programmable logic circuit device>
FIG. 1 is a block diagram showing an example of the overall configuration of a programmable logic circuit device according to the present invention. The programmable logic circuit device 100 of this configuration example includes an I / O block 101, a reconfigurable logic block 102 (hereinafter abbreviated as RLB [Reconfigurable Logic Block] 102), a connection block 103 (hereinafter referred to as CB [Connection Block]). ], A switch block 104 (hereinafter abbreviated as SW [Switch Block] 104), and a wiring 105.

I/Oブロック101は、外部との信号授受を行う。RLB102は、マトリクス状に複数配列されており、論理回路を実現するための演算素子として使用される。CB103は、RLB102と配線105とを結合する。SB104は、配線105のクロスポイントとなる。   The I / O block 101 exchanges signals with the outside. A plurality of RLBs 102 are arranged in a matrix and are used as arithmetic elements for realizing a logic circuit. The CB 103 couples the RLB 102 and the wiring 105. The SB 104 is a cross point of the wiring 105.

プログラマブル論理回路装置100の性能を改善するためには、新しいRLB102が必要であり、本発明は、主としてRLB102の新規な構成に関するものである。   In order to improve the performance of the programmable logic circuit device 100, a new RLB 102 is required, and the present invention mainly relates to a new configuration of the RLB 102.

<本発明に至った経緯>
論理回路を従来のLUTで表現する場合、同じ論理関数を異なるLUTのメモリパターン(構成情報)で実現しているものが多く見られる。また、LUTのメモリパターンには同じデータの繰り返し部分が多数存在する。すなわち、一般に用いられている従来のLUTによる回路表現は、真理値表をそのままコンフィギュレーションデータとして表現したものであり、同じ論理回路でも複数の実装が存在する。そのため、入力信号の入れ替えによって得られる論理回路を同一とみなせば、LUTによる回路表現は本質的に冗長であると言える。以下では、LUTの冗長性について、3入力の論理回路を例示して説明する。
<Background to the Present Invention>
When a logic circuit is represented by a conventional LUT, there are many cases in which the same logic function is realized with different LUT memory patterns (configuration information). In addition, there are many repeated portions of the same data in the LUT memory pattern. That is, the conventional LUT-based circuit representation is a truth table directly expressed as configuration data, and there are a plurality of implementations even in the same logic circuit. Therefore, if the logic circuits obtained by switching the input signals are regarded as the same, it can be said that the circuit representation by the LUT is essentially redundant. Hereinafter, the redundancy of the LUT will be described by exemplifying a 3-input logic circuit.

図2は、3入力論理回路の一実装例を示す図である。図2に示すように、関数fと関数gの真理値表は、一部のパターンが異なっているが、入力bと入力cを入れ替えれば、関数fと関数gを同一とみなすことができる。このとき、関数fを実現するための論理回路と、関数gを実現するための論理回路は、同じP[Permutation]同値類に属する。すなわち、関数fが関数gの入力順序を入れ替えることによって得られるならば、関数fと関数gは、同じP同値類に属すると言える。   FIG. 2 is a diagram illustrating an implementation example of a three-input logic circuit. As shown in FIG. 2, the truth table of the function f and the function g is different in some patterns, but if the input b and the input c are interchanged, the function f and the function g can be regarded as the same. At this time, the logic circuit for realizing the function f and the logic circuit for realizing the function g belong to the same P [Permutation] equivalence class. That is, if the function f is obtained by changing the input order of the function g, it can be said that the function f and the function g belong to the same P equivalence class.

本願の発明者らは、上記考察から、LUTによる回路表現の冗長性を除くことにより、従来のLUTより少ないコンフィギュレーションメモリ数でも、従来と同等の論理回路を実装可能な論理セルを実現することができる、との着想を得て本発明に至った。   The inventors of the present application realize a logic cell capable of mounting a logic circuit equivalent to the conventional one even with a smaller number of configuration memories than the conventional LUT by removing the redundancy of the circuit expression by the LUT from the above consideration. The present invention has been obtained with the idea of being able to.

<リコンフィギュラブルロジックブロック>
図3は、本発明に係るリコンフィギュラブルロジックブロックの概念的構成を示す図である。本発明に係る最大K入力(x[0]〜x[K−1])のリコンフィギュラブルロジックブロック(K−ALUT)は、m入力(y[0]〜y[m−1]、ただし、mはKよりも小さくyはxに属する)の第1ルックアップテーブル1と、n入力(z[0]〜z[n−1]、ただし、nはKよりも小さくzはxに属する)の第2ルックアップテーブル2と、p入力(c[0]〜c[p−1]、ただし、pはKよりも小さくcはxに属する)の組み合わせ回路3と、組み合わせ回路3の出力に応じて第1ルックアップテーブル1と第2ルックアップテーブル2のいずれか一方を選択するセレクタ4と、を有する。
<Reconfigurable logic block>
FIG. 3 is a diagram showing a conceptual configuration of a reconfigurable logic block according to the present invention. The reconfigurable logic block (K-A 2 LUT) with the maximum K inputs (x [0] to x [K-1]) according to the present invention includes m inputs (y [0] to y [m-1], Where m is smaller than K and y belongs to x) and n inputs (z [0] to z [n-1], where n is smaller than K and z becomes x Of the second lookup table 2 of p. (P [1] to c [p−1], where p is smaller than K and c belongs to x), And a selector 4 for selecting one of the first lookup table 1 and the second lookup table 2 in accordance with the output.

また、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)は、アプリケーションの実装に必要な複数の論理回路を各々表現した真理値表を比較したとき、同一パターンが連続している部分(例えば、図4の破線で囲まれた部分を参照)については第2ルックアップテーブル2で実装し、残りの部分(例えば、図4の実線で囲まれた部分を参照)については第1ルックアップテーブル1で実装している。 In addition, the reconfigurable logic block (KA 2 LUT) according to the present invention is a portion in which the same pattern is continuous when comparing truth tables each representing a plurality of logic circuits necessary for mounting an application. (For example, refer to the portion surrounded by a broken line in FIG. 4) is implemented by the second look-up table 2, and for the remaining portion (for example, refer to the portion surrounded by a solid line in FIG. 4), the first look It is implemented by the uptable 1.

また、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)において、前記複数の論理回路としては、K−LUTでマッピングされた論理回路のうち、出現確率の高いものが含まれている。なお、上記マッピングに際しては、同一パターンが多く出現するように(できるだけ同じ値の出力値が並ぶように)、入力変数の入れ替えを行うことが望ましい。 Further, in the reconfigurable logic block (KA 2 LUT) according to the present invention, the plurality of logic circuits include a logic circuit mapped with the K-LUT having a high appearance probability. . In the above mapping, it is desirable to replace the input variables so that many identical patterns appear (so that the same output values are arranged as much as possible).

上記の構成を採用することにより、アプリケーションの実装に必要な論理回路を従来のK−LUTよりも少ないコンフィギュレーションメモリ数で実現することが可能となる。より具体的に述べると、K入力の論理回路を実装する場合、従来のK−LUTでは2個のメモリ数が必要であるのに対して、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)であれば(2+2)個のメモリ数で足りる。 By adopting the above configuration, it is possible to realize a logic circuit necessary for mounting an application with a smaller number of configuration memories than a conventional K-LUT. More specifically, when implementing the logic of K input, whereas it is necessary to conventional K-LUT in 2 K number of memory number, reconfigurable logic block according to the present invention (K- If (A 2 LUT), the number of (2 m +2 n ) memories is sufficient.

このように、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)であれば、より少ないメモリ数で従来のK−LUTと同程度の機能を維持することができるので、プログラマブル論理回路装置の小面積化と低消費電力化を実現することが可能となる。また、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)であれば、従来のK−LUTと入出力線の本数が変わらないので、配線領域の増加を防ぐことも可能となる。 As described above, the reconfigurable logic block (KA 2 LUT) according to the present invention can maintain the same function as that of the conventional K-LUT with a smaller number of memories. It is possible to reduce the area of the device and reduce power consumption. Further, in the case of the reconfigurable logic block (KA 2 LUT) according to the present invention, since the number of input / output lines is not different from that of the conventional K-LUT, it is possible to prevent an increase in wiring area.

なお、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)は、複数の出力値を少ないメモリに集約し、様々な入力数(最大K入力)の論理回路に対応可能であることから、本明細書中では、K−ALUT[Abridged Adaptive LUT]と名付けられている。 The reconfigurable logic block (KA 2 LUT) according to the present invention collects a plurality of output values in a small memory, and can deal with logic circuits having various numbers of inputs (maximum K inputs). In this specification, it is named KA 2 LUT [Abridged Adaptive LUT].

<本発明のポイント>
本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)のポイントをまとめて述べる。まず、第1のポイントは、入力数がmよりも大きい論理回路(最大K入力)の一部を実装することが可能であり、入力数がm以下である論理回路の全てを実装することが可能な構造とされている点である。第2のポイントは、入力数がmよりも大きい論理回路のうち、実装可能な一部の論理回路としては、出現確率の高いものが優先的に含まれている点、言い換えれば、実装可能な一部の論理回路の数を効率良く制限することで構成メモリ数が削減されている点である。第3のポイントは、入力の入れ替えによって互いに置換可能な論理回路が同一(P同値類)とみなされている点である。
<Points of the present invention>
The points of the reconfigurable logic block (KA 2 LUT) according to the present invention will be described together. First, the first point is that a part of a logic circuit (maximum K inputs) whose number of inputs is larger than m can be mounted, and all of the logic circuits whose number of inputs is m or less can be mounted. This is a possible structure. The second point is that, among the logic circuits whose number of inputs is larger than m, some of the logic circuits that can be implemented preferentially include those that have a high appearance probability, in other words, can be implemented. The number of configuration memories is reduced by efficiently limiting the number of some logic circuits. The third point is that logic circuits that can be replaced with each other by replacing inputs are regarded as the same (P equivalence class).

<第1構成例>
図5は、本発明に係るリコンフィギュラブルロジックブロックの第1構成例を示す図であり、最大入力数K=6とした場合の回路構成を示している。
<First configuration example>
FIG. 5 is a diagram showing a first configuration example of the reconfigurable logic block according to the present invention, and shows a circuit configuration when the maximum number of inputs K = 6.

第1構成例のリコンフィギュラブルロジックブロック(6−ALUT)は、第1ブロックA(メモリ[0]〜[7]を用いた3−LUT(A))と、第2ブロックB(メモリ[10]〜[17]を用いた3−LUT(B))と、2ビットのメモリ[8]及び[9]と、セレクタSEL0〜SEL2と、組み合わせ回路CMBと、を有する。 The reconfigurable logic block (6-A 2 LUT) of the first configuration example includes a first block A (3-LUT (A) using memories [0] to [7]) and a second block B (memory 3-LUT (B) using [10] to [17]), 2-bit memories [8] and [9], selectors SEL0 to SEL2, and a combinational circuit CMB.

第1ブロックAは、入力信号in1〜in3に応じてメモリ[0]〜[7]の格納データのいずれか一つを出力する。第2ブロックBは、入力信号in1〜in3に応じてメモリ[10]〜[17]の格納データのいずれか一つを出力する。セレクタSEL0は入力信号in0に応じてセレクタSEL1の出力データとセレクタSEL2の出力データの一方を出力信号outとして選択する。セレクタSEL1は、組み合わせ回路CMBの出力に応じて第1ブロックAの出力データとメモリ[8]の格納データの一方を選択する。セレクタSEL2は、組み合わせ回路CMBの出力に応じて第2ブロックBの出力データとメモリ[9]の格納データの一方を選択する。   The first block A outputs any one of data stored in the memories [0] to [7] according to the input signals in1 to in3. The second block B outputs any one of the data stored in the memories [10] to [17] according to the input signals in1 to in3. The selector SEL0 selects one of the output data of the selector SEL1 and the output data of the selector SEL2 as the output signal out according to the input signal in0. The selector SEL1 selects one of the output data of the first block A and the storage data of the memory [8] according to the output of the combinational circuit CMB. The selector SEL2 selects one of the output data of the second block B and the stored data of the memory [9] according to the output of the combinational circuit CMB.

組み合わせ回路CMBは、入力信号in3〜in5に応じてセレクタSEL1及びSEL2の切替信号を生成する。第1構成例において、組み合わせ回路CMBは、入力信号in3〜in5の否定論理和演算を行うNORゲートG1と、入力信号in3〜in5の論理積演算を行うANDゲートG2と、NORゲートG1の出力とANDゲートG2の出力との論理和演算を行うORゲートG3と、を有する。   The combinational circuit CMB generates switching signals for the selectors SEL1 and SEL2 according to the input signals in3 to in5. In the first configuration example, the combinational circuit CMB includes a NOR gate G1 that performs a NOR operation of the input signals in3 to in5, an AND gate G2 that performs an AND operation of the input signals in3 to in5, and an output of the NOR gate G1. An OR gate G3 that performs an OR operation with the output of the AND gate G2.

なお、第1ブロックA、第2ブロックB、及び、セレクタSEL0によって4入力(in0〜in3)のルックアップテーブルが形成されており、これは図3の第1ルックアップテーブル1(m=4)に相当する。また、2ビットのメモリ[8]及び[9]とセレクタSEL0によって1入力(in0)のルックアップテーブルが形成されており、これは図3の第2ルックアップテーブル2(n=1)に相当する。また、組み合わせ回路CMBは、図3の組み合わせ回路3に相当する。また、セレクタSEL1及びSEL2は、図3のセレクタ4に相当する。   The first block A, the second block B, and the selector SEL0 form a four-input (in0 to in3) lookup table, which is the first lookup table 1 (m = 4) in FIG. It corresponds to. The 2-bit memories [8] and [9] and the selector SEL0 form a one-input (in0) lookup table, which corresponds to the second lookup table 2 (n = 1) in FIG. To do. The combinational circuit CMB corresponds to the combinational circuit 3 in FIG. The selectors SEL1 and SEL2 correspond to the selector 4 in FIG.

従来の6−LUTでは、2=64ビットのメモリが必要であるのに対して、第1構成例のリコンフィギュラブルロジックブロック(6−ALUT)は、2+2=18ビットのメモリで構成されている。 The conventional 6-LUT requires 2 6 = 64 bits of memory, whereas the reconfigurable logic block (6-A 2 LUT) of the first configuration example has 2 4 +2 1 = 18 bits. Consists of memory.

図6は、第1構成例における入力条件とメモリとの関係を示す図であり、図7は、6−LUTでマッピングした論理回路のメモリパターン(P同値類)を出現確率の高い順に第1位〜第7位まで示した図である。なお、図7のメモリパターンは、6−LUTの出力データO0〜O63を64ビットの2進数値として表記したものである。   FIG. 6 is a diagram showing the relationship between the input condition and the memory in the first configuration example, and FIG. 7 shows the first memory pattern (P equivalence class) mapped in 6-LUT in descending order of appearance probability. It is the figure shown to the 7th place. The memory pattern in FIG. 7 represents 6-LUT output data O0 to O63 as 64-bit binary values.

図7から分かるように、第1位〜第7位のメモリパターン全てにおいて、第5ビット目〜第28ビット目(O4〜O27)と、第37ビット目〜第60ビット目(O36〜O59)は全て0か1の連続である。そこで、第1構成例では、同一値が連続している上記部分のうち、前者が1ビットのメモリ[8]に集約され、後者が1ビットのメモリ[9]に集約されている。また、残りの部分のうち、第1ビット目〜第4ビット目(O0〜O3)と第29ビット目〜第32ビット目(O28〜O31)が第1ブロックAで実現されており、第33ビット目〜第36ビット目(O32〜O35)と第61ビット目〜第64ビット目(O60〜O63)が第2ブロックBで実現されている。   As can be seen from FIG. 7, in all the first to seventh memory patterns, the 5th to 28th bits (O4 to O27) and the 37th to 60th bits (O36 to O59). Are all 0 or 1 sequences. Therefore, in the first configuration example, among the above-described portions where the same value is continuous, the former is concentrated in the 1-bit memory [8], and the latter is concentrated in the 1-bit memory [9]. Among the remaining portions, the first bit to the fourth bit (O0 to O3) and the 29th bit to the 32nd bit (O28 to O31) are realized in the first block A, and the 33rd bit. Bit 2 to bit 36 (O32 to O35) and bit 61 to bit 64 (O60 to O63) are realized in the second block B.

具体的に述べると、第1構成例では、{in0,in1,in2,in3,in4,in5}={0,−,−,0,0,0}及び{0,−,−,1,1,1}(ただし「−」は0または1)に対応する出力データO0〜O3及びO28〜O31が第1ブロックAのメモリ[0]〜[7]に保持されており、{in0,in1,in2,in3,in4,in5}={1,−,−,0,0,0}及び{1,−,−,1,1,1}に対応する出力データO32〜O35及びO60〜O63が第2ブロックBのメモリ[10]〜[17]に保持されている。また、上記以外の出力データO4〜O27及びO36〜O59がメモリ[8]及び[9]に集約されている。   Specifically, in the first configuration example, {in0, in1, in2, in3, in4, in5} = {0,-,-, 0, 0, 0} and {0,-,-, 1, 1 , 1} (where “−” is 0 or 1), the output data O0 to O3 and O28 to O31 are held in the memories [0] to [7] of the first block A, and {in0, in1, in2, in3, in4, in5} = {1, −, −, 0,0,0} and output data O32 to O35 and O60 to O63 corresponding to {1, −, −, 1,1,1} It is held in memories [10] to [17] of two blocks B. Further, output data O4 to O27 and O36 to O59 other than the above are collected in the memories [8] and [9].

そして、図6に示した通り、{in0,in1,in2,in3,in4,in5}={0,−,−,0,0,0}及び{0,−,−,1,1,1}のときには第1ブロックAの出力データが出力信号outとして用いられ、{in0,in1,in2,in3,in4,in5}={1,−,−,0,0,0}及び{1,−,−,1,1,1}のときには第2ブロックBの出力データが出力信号outとして用いられる。また、入力信号の組み合わせが上記以外であるときには、メモリ[8]または[9]の格納データが出力信号outとして用いられる。   Then, as shown in FIG. 6, {in0, in1, in2, in3, in4, in5} = {0,-,-, 0, 0, 0} and {0,-,-, 1, 1, 1} In this case, the output data of the first block A is used as the output signal out, {in0, in1, in2, in3, in4, in5} = {1,-,-, 0, 0, 0} and {1,-, When-, 1, 1, 1}, the output data of the second block B is used as the output signal out. When the combination of input signals is other than the above, the data stored in the memory [8] or [9] is used as the output signal out.

ネットリストを6−ALUT(18ビット)で実装すれば、従来の6−LUT(64ビット)で実装する場合と比べて、1セル当たりのメモリ数を46ビット削減することが可能となる。また、第1構成例の6−ALUTであれば、6−LUTで利用されるメモリパターンの約52%、5−LUTで利用されるメモリパターンの約47%を実現することができるので、従来よりも少ないメモリ数で論理回路を実装することが可能となる。また、従来の4−LUTで実装する場合と比べて、より少ないセル数で論理回路を実装することが可能となる。 If the netlist is implemented with a 6-A 2 LUT (18 bits), the number of memories per cell can be reduced by 46 bits compared to the conventional 6-LUT (64 bits) implementation. . Further, the 6-A 2 LUT of the first configuration example can realize about 52% of the memory pattern used in the 6-LUT and about 47% of the memory pattern used in the 5-LUT. Therefore, it is possible to mount a logic circuit with a smaller number of memories than in the past. In addition, it is possible to mount a logic circuit with a smaller number of cells than in the case of mounting with a conventional 4-LUT.

<テクノロジマッピング方法>
図8は、6入力のテクノロジマッピング方法を示すフローチャートである。
<Technology mapping method>
FIG. 8 is a flowchart showing a 6-input technology mapping method.

ステップS101では、入力となるネットリストに対してカバリングされていないノードの探索が行われて、フローがステップS102に進められる。   In step S101, a search is made for a node that is not covered in the input netlist, and the flow proceeds to step S102.

ステップS102では、6入力のカットがあるか否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップS102に進められ、ノー判定が下された場合にはフローがステップS108に進められる。   In step S102, it is determined whether there is a 6-input cut. Here, if a yes determination is made, the flow proceeds to step S102, and if a no determination is made, the flow proceeds to step S108.

ステップS103では、6入力のカットが部分回路として切り出されて、フローがステップS104に進められる。   In step S103, the 6-input cut is cut out as a partial circuit, and the flow proceeds to step S104.

ステップS104では、ステップS103でカットされた部分回路のP代表元が算出されて、フローがステップS105に進められる。なお、P代表元とは、P同値類中の関数を2進数値とみなした場合に最小のものを言う。   In step S104, the P representative element of the partial circuit cut in step S103 is calculated, and the flow proceeds to step S105. Note that the P representative element is the smallest when the function in the P equivalence class is regarded as a binary value.

ステップS105では、ステップS104で算出されたP代表元に基づいて、ステップS103でカットされた部分回路が6−ALUTで実装可能か否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップS106に進められ、ノー判定が下された場合にはフローがステップS102が戻されて、別のカットが探索される。 In step S105, based on the P representative element calculated in step S104, it is determined whether or not the partial circuit cut in step S103 can be mounted with the 6-A 2 LUT. If the determination is yes, the flow proceeds to step S106. If the determination is no, the flow returns to step S102 to search for another cut.

ステップS106では、6−ALUTでノードのカバリングが行われて、フローがステップS107に進められる。 In step S106, the node is covered by the 6-A 2 LUT, and the flow proceeds to step S107.

ステップS107では、全てのノードがカバリング済みが否かの判定が行われる。ここで、イエス判定が下された場合には上記一連のフローが終了され、ノー判定が下された場合にはフローがステップS101に戻される。   In step S107, it is determined whether or not all nodes have been covered. Here, when a yes determination is made, the above-described series of flows is terminated, and when a no determination is made, the flow returns to step S101.

ステップS108では、6−ALUTで実装可能な6入力の部分回路を全てカバリングしても、未だ全てのノードがカバリングされていないことから、入力数が1つ下げられて、5入力のテクノロジマッピングが行われる。5入力のテクノロジマッピングについては、上記で説明した入力数をいずれも「6」から「5」に読み替えれば足りる。 In step S108, even if all the 6-input partial circuits that can be implemented by the 6-A 2 LUT are covered, all the nodes are not yet covered. Mapping is done. For 5-input technology mapping, it is sufficient to replace the number of inputs described above from “6” to “5”.

その後、6−ALUTで実装可能な5入力の部分回路を全てカバリングしても、未だ全てのノードがカバリングされていない場合、残りのノードについては、いずれも4入力以下の部分回路にカットされてノードのカバリングが行われる。なお、6−ALUTは4入力以下の論理回路を全て実装することができるので、P代表元の算出を行うためのステップS104や6−ALUTによる実装可能性を検証するためのステップS105はもはや必要なくなる。 After that, even if all the 5-input partial circuits that can be implemented with the 6-A 2 LUT are covered, but not all the nodes are still covered, all the remaining nodes are cut into partial circuits with 4 inputs or less. Then, the node is covered. Since the 6-A 2 LUT can mount all the logic circuits having four inputs or less, the step S104 for calculating the P representative element and the step for verifying the mounting possibility by the 6-A 2 LUT S105 is no longer necessary.

図9は、本発明に係るテクノロジマッピング方法の全体像を示すフローチャートであって、先出の図8で説明したフローチャートをより一般化したものである。なお、本フローチャートは、K−ALUTでm入力以下の論理回路を全て実装することが可能であること、及び、K入力以下に分解されたゲートレベルのブーリアンネットワークを入力とすることを前提とする。 FIG. 9 is a flowchart showing an overview of the technology mapping method according to the present invention, which is a more generalized version of the flowchart described in FIG. This flowchart is based on the premise that all logic circuits with m inputs or less can be implemented in the KA 2 LUT, and that a gate-level Boolean network decomposed to K inputs or less is input. And

ステップS201では、入力数jとしてK−ALUTの最大入力数Kが設定されて、フローがステップS202に進められる。 In step S201, the maximum input number K of the KA 2 LUT is set as the input number j, and the flow proceeds to step S202.

ステップS202では、入力となるネットリストに対してカバリングされていないノードの探索が行われて、フローがステップS203に進められる。   In step S202, a search is made for a node that is not covered with respect to the input netlist, and the flow proceeds to step S203.

ステップS203では、j入力のカットがあるか否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップS204に進められ、ノー判定が下された場合にはフローがステップS210に進められる。   In step S203, it is determined whether or not there is a j-input cut. Here, if a yes determination is made, the flow proceeds to step S204, and if a no determination is made, the flow proceeds to step S210.

ステップS204では、j入力のカットが部分回路として切り出されて、フローがステップS205に進められる。   In step S204, the cut of j input is cut out as a partial circuit, and the flow proceeds to step S205.

ステップS205では、jがmよりも大きいか否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップS206に進められ、ノー判定が下された場合にはフローがステップS208に進められる。   In step S205, it is determined whether j is larger than m. Here, if a yes determination is made, the flow proceeds to step S206, and if a no determination is made, the flow proceeds to step S208.

ステップS206では、ステップS204でカットされた部分回路のP代表元が算出されて、フローがステップS207に進められる。   In step S206, the P representative element of the partial circuit cut in step S204 is calculated, and the flow proceeds to step S207.

ステップS207では、ステップS206で算出されたP代表元に基づいて、ステップS204でカットされた部分回路が6−ALUTで実装可能か否かの判定が行われる。ここで、イエス判定が下された場合にはフローがステップS208に進められ、ノー判定が下された場合にはフローがステップS203が戻されて、別のカットが探索される。 In step S207, based on the P representative element calculated in step S206, it is determined whether or not the partial circuit cut in step S204 can be mounted with the 6-A 2 LUT. If the determination is yes, the flow proceeds to step S208. If the determination is no, the flow returns to step S203 to search for another cut.

ステップS208では、6−ALUTでノードのカバリングが行われて、フローがステップS209に進められる。 In step S208, the 6-A 2 LUT covers the node, and the flow proceeds to step S209.

ステップS209では、全てのノードがカバリング済みが否かの判定が行われる。ここで、イエス判定が下された場合には上記一連のフローが終了され、ノー判定が下された場合にはフローがステップS202に戻される。   In step S209, it is determined whether or not all nodes have been covered. Here, when a yes determination is made, the above-described series of flows is terminated, and when a no determination is made, the flow returns to step S202.

ステップS108では、6−ALUTで実装可能なj入力の部分回路を全てカバリングしても、未だ全てのノードがカバリングされていないことから、入力数jを一つデクリメントさせて、フローがステップS202に戻される。 In step S108, even if all the j-input partial circuits that can be implemented by the 6-A 2 LUT are covered, not all the nodes have been covered yet, so the input number j is decremented by one, and the flow proceeds to step S108. It returns to S202.

上記のように入力数jを一つずつデクリメントさせながらノードのカバリングを繰り返し、6−ALUTで実装可能な(m+1)入力の部分回路を全てカバリングしても、未だ全てのノードがカバリングされていない場合、残りのノードについては、いずれもm入力以下の部分回路にカットされてノードのカバリングが行われる。なお、6−ALUTはm入力以下の論理回路を全て実装することができるので、P代表元の算出を行うためのステップS206や6−ALUTによる実装可能性を検証するためのステップS207はもはや必要なくなる。そこで、j=mとなりステップS205でノー判定が下された場合には、フローがステップS208にジャンプされる。 As described above, node covering is repeated while decrementing the number of inputs j one by one, and even if all of the (m + 1) input subcircuits that can be implemented with the 6-A 2 LUT are covered, all the nodes are still covered. If not, the remaining nodes are all cut into partial circuits of m inputs or less, and the nodes are covered. Since the 6-A 2 LUT can mount all the logic circuits of m inputs or less, the step S206 for calculating the P representative element and the step for verifying the mounting possibility by the 6-A 2 LUT S207 is no longer necessary. Therefore, if j = m and no determination is made in step S205, the flow jumps to step S208.

先出の図3で示したように、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)は、m入力の第1ルックアップテーブル1とn入力の第2ルックアップテーブル2によって構成されており、m>nとしたときには、m入力以下の論理回路を全て実装することが可能である。従って、本発明に係るリコンフィギュラブルロジックブロック(K−ALUT)であれば、与えられたブーリアンネットワークをK−LUTよりも少ないメモリ数でテクノロジマッピングすることが可能である。 As shown in FIG. 3, the reconfigurable logic block (KA 2 LUT) according to the present invention includes a first lookup table 1 having m inputs and a second lookup table 2 having n inputs. When m> n, all logic circuits with m inputs or less can be mounted. Therefore, if the reconfigurable logic block (KA 2 LUT) according to the present invention is used, it is possible to technology map a given Boolean network with a smaller number of memories than the K-LUT.

<第2構成例〜第16構成例>
出現確率の高いP代表元について、先出の第1構成例(図5を参照)とは異なる入力の入れ替えを行い、それぞれP同値類に変換した結果、0または1が連続している部分を2ビットのメモリ[8]及び[9]に集約し、残りの部分を第1ブロックA及び第2ブロックBで実現した下記の第2構成例〜第16構成例では、組み合わせ回路CMBが第1構成例と異なる回路構造となる。
<Second Configuration Example to Sixteenth Configuration Example>
For a P representative with a high probability of appearance, the input is different from that in the first configuration example (see FIG. 5) and converted to P equivalence classes. In the following second configuration example to sixteenth configuration example in which the two-bit memories [8] and [9] are aggregated and the remaining part is realized by the first block A and the second block B, the combinational circuit CMB has the first combination circuit CMB. The circuit structure is different from the configuration example.

図10は、リコンフィギュラブルロジックブロックの第2構成例を示す図である。第2構成例では、O4〜O15とO20〜O31がメモリ[8]に集約され、O36〜O47とO52〜O63がメモリ[9]に集約されている。また、O0〜O3とO16〜O19が第1ブロックAで実現されており、O32〜O35とO48〜O51が第2ブロックBで実現されている。なお、第2構成例において、組み合わせ回路CMBは、入力信号in4及びin5の否定論理和演算を行うNORゲートG4のみを有する。   FIG. 10 is a diagram illustrating a second configuration example of the reconfigurable logic block. In the second configuration example, O4 to O15 and O20 to O31 are aggregated in the memory [8], and O36 to O47 and O52 to O63 are aggregated in the memory [9]. Further, O0 to O3 and O16 to O19 are realized by the first block A, and O32 to O35 and O48 to O51 are realized by the second block B. In the second configuration example, the combinational circuit CMB has only a NOR gate G4 that performs a NOR operation on the input signals in4 and in5.

図11は、リコンフィギュラブルロジックブロックの第3構成例を示す図である。第3構成例では、O4〜O23とO28〜O31がメモリ[8]に集約され、O36〜O55とO60〜O63がメモリ[9]に集約されている。また、O0〜O3とO24〜O27が第1ブロックAで実現されており、O32〜O35とO56〜O59が第2ブロックBで実現されている。なお、第3構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in3及びin4については反転入力)の否定論理和演算を行うNORゲートG5と、入力信号in3〜in5の否定論理和演算を行うNORゲートG6と、NORゲートG5の出力とNORゲートG6の出力との論理和演算を行うORゲートG7と、を有する。   FIG. 11 is a diagram illustrating a third configuration example of the reconfigurable logic block. In the third configuration example, O4 to O23 and O28 to O31 are aggregated in the memory [8], and O36 to O55 and O60 to O63 are aggregated in the memory [9]. Further, O0 to O3 and O24 to O27 are realized by the first block A, and O32 to O35 and O56 to O59 are realized by the second block B. In the third configuration example, the combinational circuit CMB includes a NOR gate G5 that performs a negative OR operation of the input signals in3 to in5 (however, the input signals in3 and in4 are inverted inputs), and the negative of the input signals in3 to in5. There is a NOR gate G6 that performs a logical sum operation, and an OR gate G7 that performs a logical sum operation on the output of the NOR gate G5 and the output of the NOR gate G6.

図12は、リコンフィギュラブルロジックブロックの第4構成例を示す図である。第4構成例では、O4〜O19とO24〜O31がメモリ[8]に集約され、O36〜O51とO56〜O63がメモリ[9]に集約されている。また、O0〜O3とO20〜O23が第1ブロックAで実現されており、O32〜O35とO52〜O55が第2ブロックBで実現されている。なお、第4構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in3については反転入力)の論理積演算を行うANDゲートG8と、入力信号in3〜in5の否定論理和演算を行うNORゲートG9と、ANDゲートG8の出力とNORゲートG9の出力との論理和演算を行うORゲートG10とを有する。   FIG. 12 is a diagram illustrating a fourth configuration example of the reconfigurable logic block. In the fourth configuration example, O4 to O19 and O24 to O31 are collected in the memory [8], and O36 to O51 and O56 to O63 are collected in the memory [9]. Further, O0 to O3 and O20 to O23 are realized by the first block A, and O32 to O35 and O52 to O55 are realized by the second block B. In the fourth configuration example, the combinational circuit CMB includes an AND gate G8 that performs an AND operation of input signals in3 to in5 (inverted input for the input signal in3), and a negative OR operation of the input signals in3 to in5. And an OR gate G10 that performs an OR operation on the output of the AND gate G8 and the output of the NOR gate G9.

図13は、リコンフィギュラブルロジックブロックの第5構成例を示す図である。第5構成例では、O0〜O7、O12〜O15、及び、O20〜O31がメモリ[8]に集約され、O32〜O39、O44〜O47、及び、O52〜O63がメモリ[9]に集約されている。また、O8〜O11とO16〜O19が第1ブロックAで実現されており、O40〜O43とO48〜O51が第2ブロックBで実現されている。なお、第5構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in4については反転入力)の否定論理和演算を行うNORゲートG11と、入力信号in3〜in5(ただし、入力信号in3については反転入力)の否定論理和演算を行うNORゲートG12と、NORゲートG11の出力とNORゲートG12の出力との論理和演算を行うORゲートG13と、を有する。   FIG. 13 is a diagram illustrating a fifth configuration example of the reconfigurable logic block. In the fifth configuration example, O0 to O7, O12 to O15, and O20 to O31 are aggregated in the memory [8], and O32 to O39, O44 to O47, and O52 to O63 are aggregated in the memory [9]. Yes. Further, O8 to O11 and O16 to O19 are realized in the first block A, and O40 to O43 and O48 to O51 are realized in the second block B. In the fifth configuration example, the combinational circuit CMB includes a NOR gate G11 that performs a NOR operation of input signals in3 to in5 (inverted input for the input signal in4), and input signals in3 to in5 (however, input A NOR gate G12 that performs a negative OR operation on the signal in3) and an OR gate G13 that performs an OR operation on the output of the NOR gate G11 and the output of the NOR gate G12.

図14は、リコンフィギュラブルロジックブロックの第6構成例を示す図である。第6構成例では、O0〜O3、O8〜O15、及び、O20〜O31がメモリ[8]に集約され、O32〜O35、O40〜O47、及び、O52〜O63がメモリ[9]に集約されている。また、O4〜O7とO16〜O19が第1ブロックAで実現されており、O36〜O39とO48〜O51が第2ブロックBで実現されている。なお、第6構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in5については反転入力)の否定論理和演算を行うNORゲートG14と、入力信号in3〜in5(ただし、入力信号in3については反転入力)の否定論理和演算を行うNORゲートG15と、NORゲートG14の出力とNORゲートG15の出力との論理和演算を行うORゲートG16と、を有する。   FIG. 14 is a diagram illustrating a sixth configuration example of the reconfigurable logic block. In the sixth configuration example, O0 to O3, O8 to O15, and O20 to O31 are aggregated in the memory [8], and O32 to O35, O40 to O47, and O52 to O63 are aggregated in the memory [9]. Yes. Further, O4 to O7 and O16 to O19 are realized by the first block A, and O36 to O39 and O48 to O51 are realized by the second block B. In the sixth configuration example, the combinational circuit CMB includes a NOR gate G14 that performs a NOR operation of the input signals in3 to in5 (inverted input for the input signal in5), and the input signals in3 to in5 (however, the input signal in5). A NOR gate G15 that performs a negative OR operation on the signal in3) and an OR gate G16 that performs a logical OR operation between the output of the NOR gate G14 and the output of the NOR gate G15.

図15は、リコンフィギュラブルロジックブロックの第7構成例を示す図である。第7構成例では、O0〜O11とO20〜O31がメモリ[8]に集約され、O32〜O43とO52〜O63がメモリ[9]に集約されている。また、O12〜O19が第1ブロックAで実現されており、O44〜O51が第2ブロックBで実現されている。なお、第7構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in4及びin5については反転入力)の否定論理和演算を行うNORゲートG17と、入力信号in3〜in5(ただし、入力信号in3については反転入力)の否定論理和演算を行うNORゲートG18と、NORゲートG17の出力とNORゲートG18の出力との論理和演算を行うORゲートG19と、を有する。   FIG. 15 is a diagram illustrating a seventh configuration example of the reconfigurable logic block. In the seventh configuration example, O0 to O11 and O20 to O31 are aggregated in the memory [8], and O32 to O43 and O52 to O63 are aggregated in the memory [9]. O12 to O19 are realized by the first block A, and O44 to O51 are realized by the second block B. In the seventh configuration example, the combinational circuit CMB includes a NOR gate G17 that performs a negative OR operation on the input signals in3 to in5 (however, the input signals in4 and in5 are inverted inputs), and the input signals in3 to in5 (however, NOR gate G18 that performs a negative OR operation on the input signal in3), and an OR gate G19 that performs a logical OR operation between the output of the NOR gate G17 and the output of the NOR gate G18.

図16は、リコンフィギュラブルロジックブロックの第8構成例を示す図である。第8構成例では、O0〜O7、O12〜O23、及び、O28〜O31がメモリ[8]に集約され、O32〜O39、O44〜O55、及び、O60〜O63がメモリ[9]に集約されている。また、O8〜O11とO24〜O27が第1ブロックAで実現されており、O40〜O43とO56〜O59が第2ブロックBで実現されている。なお、第8構成例において、組み合わせ回路CMBは、入力信号in4及びin5(ただし、入力信号in5については反転入力)の論理積演算を行うANDゲートG20のみを有する。   FIG. 16 is a diagram illustrating an eighth configuration example of the reconfigurable logic block. In the eighth configuration example, O0 to O7, O12 to O23, and O28 to O31 are aggregated in the memory [8], and O32 to O39, O44 to O55, and O60 to O63 are aggregated in the memory [9]. Yes. Further, O8 to O11 and O24 to O27 are realized in the first block A, and O40 to O43 and O56 to O59 are realized in the second block B. In the eighth configuration example, the combinational circuit CMB has only an AND gate G20 that performs a logical product operation of the input signals in4 and in5 (however, the input signal in5 is an inverting input).

図17は、リコンフィギュラブルロジックブロックの第9構成例を示す図である。第9構成例では、O0〜O7、O12〜O19、及び、O24〜O31がメモリ[8]に集約され、O32〜O39、O44〜O51、及び、O56〜O63がメモリ[9]に集約されている。また、O8〜O11とO20〜O23が第1ブロックAで実現されており、O40〜O43とO52〜O55が第2ブロックBで実現されている。なお、第9構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in3及びin5については反転入力)の否定論理和演算を行うNORゲートG21と、入力信号in3〜in5(ただし、入力信号in4については反転入力)の否定論理和演算を行うNORゲートG22と、NORゲートG21の出力とNORゲートG22の出力との論理和演算を行うORゲートG23と、を有する。   FIG. 17 is a diagram illustrating a ninth configuration example of the reconfigurable logic block. In the ninth configuration example, O0 to O7, O12 to O19, and O24 to O31 are aggregated in the memory [8], and O32 to O39, O44 to O51, and O56 to O63 are aggregated in the memory [9]. Yes. Further, O8 to O11 and O20 to O23 are realized by the first block A, and O40 to O43 and O52 to O55 are realized by the second block B. In the ninth configuration example, the combinational circuit CMB includes a NOR gate G21 that performs a NOR operation of input signals in3 to in5 (inverted inputs for the input signals in3 and in5), and input signals in3 to in5 (however, NOR gate G22 that performs a negative OR operation on the input signal in4), and an OR gate G23 that performs a logical OR operation between the output of the NOR gate G21 and the output of the NOR gate G22.

図18は、リコンフィギュラブルロジックブロックの第10構成例を示す図である。第10構成例では、O0〜O7とO12〜O27がメモリ[8]に集約され、O32〜O39とO44〜O59がメモリ[9]に集約されている。また、O8〜O11とO28〜O31が第1ブロックAで実現されており、O40〜O43とO60〜O63が第2ブロックBで実現されている。なお、第10構成例において、組み合わせ回路CMBは、入力信号in3〜in5の論理積演算を行うANDゲートG24と、入力信号in3〜in5(ただし、入力信号in4については反転入力)の否定論理和演算を行うNORゲートG25と、ANDゲートG24の出力とNORゲートG25の出力との論理和演算を行うORゲートG26と、を有する。   FIG. 18 is a diagram illustrating a tenth configuration example of the reconfigurable logic block. In the tenth configuration example, O0 to O7 and O12 to O27 are aggregated in the memory [8], and O32 to O39 and O44 to O59 are aggregated in the memory [9]. Further, O8 to O11 and O28 to O31 are realized in the first block A, and O40 to O43 and O60 to O63 are realized in the second block B. In the tenth configuration example, the combinational circuit CMB includes a negative OR operation of the AND gate G24 that performs a logical product operation of the input signals in3 to in5, and the input signals in3 to in5 (inverted input for the input signal in4). And an OR gate G26 that performs a logical OR operation between the output of the AND gate G24 and the output of the NOR gate G25.

図19は、リコンフィギュラブルロジックブロックの第11構成例を示す図である。第11構成例では、O0〜O3、O8〜O23、及び、O28〜O31がメモリ[8]に集約され、O32〜O35、O40〜O55、及び、O60〜O63がメモリ[9]に集約されている。また、O4〜O7とO24〜O27が第1ブロックAで実現されており、O36〜O39とO56〜O59が第2ブロックBで実現されている。なお、第11構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in5については反転入力)の否定論理和演算を行うNORゲートG27と、入力信号in3〜in5(ただし、入力信号in5については反転入力)の論理積演算を行うANDゲートG28と、NORゲートG27の出力とANDゲートG28の出力との論理和演算を行うORゲートG29と、を有する。   FIG. 19 is a diagram illustrating an eleventh configuration example of the reconfigurable logic block. In the eleventh configuration example, O0 to O3, O8 to O23, and O28 to O31 are aggregated in the memory [8], and O32 to O35, O40 to O55, and O60 to O63 are aggregated in the memory [9]. Yes. In addition, O4 to O7 and O24 to O27 are realized in the first block A, and O36 to O39 and O56 to O59 are realized in the second block B. In the eleventh configuration example, the combinational circuit CMB includes a NOR gate G27 that performs a NOR operation of the input signals in3 to in5 (inverted input for the input signal in5), and the input signals in3 to in5 (however, the input signal in5). An AND gate G28 that performs an AND operation on the signal in5), and an OR gate G29 that performs an OR operation on the output of the NOR gate G27 and the output of the AND gate G28.

図20は、リコンフィギュラブルロジックブロックの第12構成例を示す図である。第12構成例では、O0〜O11、O16〜O23、及び、O28〜O31がメモリ[8]に集約され、O32〜O43、O48〜O55、及び、O60〜O63がメモリ[9]に集約されている。また、O12〜O15とO24〜O27が第1ブロックAで実現されており、O44〜O47とO56〜O59が第2ブロックBで実現されている。なお、第12構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in4及びin5については反転入力)の否定論理和演算を行うNORゲートG30と、入力信号in3〜in5(ただし、入力信号in3及びin4については反転入力)の否定論理和演算を行うNORゲートG31と、NORゲートG30の出力とNORゲートG31の出力との論理和演算を行うORゲートG32と、を有する。   FIG. 20 is a diagram illustrating a twelfth configuration example of the reconfigurable logic block. In the twelfth configuration example, O0 to O11, O16 to O23, and O28 to O31 are aggregated in the memory [8], and O32 to O43, O48 to O55, and O60 to O63 are aggregated in the memory [9]. Yes. In addition, O12 to O15 and O24 to O27 are realized by the first block A, and O44 to O47 and O56 to O59 are realized by the second block B. In the twelfth configuration example, the combinational circuit CMB includes a NOR gate G30 that performs a NOR operation of the input signals in3 to in5 (however, the inverting input for the input signals in4 and in5), and the input signals in3 to in5 (however, The NOR gate G31 performs a negative OR operation on the input signals in3 and in4), and the OR gate G32 performs a logical OR operation between the output of the NOR gate G30 and the output of the NOR gate G31.

図21は、リコンフィギュラブルロジックブロックの第13構成例を示す図である。第13構成例では、O0〜O3、O8〜O19、及び、O24〜O31がメモリ[8]に集約され、O32〜O35、O40〜O51、及び、O56〜O63がメモリ[9]に集約されている。また、O4〜O7とO20〜O23が第1ブロックAで実現されており、O36〜O39とO52〜O55が第2ブロックBで実現されている。なお、第13構成例において、組み合わせ回路CMBは、入力信号in4及びin5(ただし、入力信号in4については反転入力)の論理積演算を行うANDゲートG33のみを有する。   FIG. 21 is a diagram illustrating a thirteenth configuration example of the reconfigurable logic block. In the thirteenth configuration example, O0 to O3, O8 to O19, and O24 to O31 are aggregated in the memory [8], and O32 to O35, O40 to O51, and O56 to O63 are aggregated in the memory [9]. Yes. Further, O4 to O7 and O20 to O23 are realized by the first block A, and O36 to O39 and O52 to O55 are realized by the second block B. In the thirteenth configuration example, the combinational circuit CMB has only an AND gate G33 that performs a logical product operation of the input signals in4 and in5 (however, the input signal in4 is an inverting input).

図22は、リコンフィギュラブルロジックブロックの第14構成例を示す図である。第14構成例では、O0〜O3とO8〜O27がメモリ[8]に集約され、O32〜O35とO40〜O59がメモリ[9]に集約されている。また、O4〜O7とO28〜O31が第1ブロックAで実現されており、O36〜O39とO60〜O63が第2ブロックBで実現されている。なお、第14構成例において、組み合わせ回路CMBは、入力信号in3〜in5の論理積演算を行うANDゲートG34と、入力信号in3〜in5(ただし、入力信号in5については反転入力)の否定論理和演算を行うNORゲートG35と、ANDゲートG34の出力とNORゲートG35の出力との論理和演算を行うORゲートG36と、を有する。   FIG. 22 is a diagram illustrating a fourteenth configuration example of the reconfigurable logic block. In the fourteenth configuration example, O0 to O3 and O8 to O27 are aggregated in the memory [8], and O32 to O35 and O40 to O59 are aggregated in the memory [9]. Further, O4 to O7 and O28 to O31 are realized by the first block A, and O36 to O39 and O60 to O63 are realized by the second block B. In the fourteenth configuration example, the combinational circuit CMB includes an AND gate G34 that performs a logical product operation of the input signals in3 to in5 and a negative logical sum operation of the input signals in3 to in5 (however, the input signal in5 is an inverted input). And an OR gate G36 that performs a logical OR operation on the output of the AND gate G34 and the output of the NOR gate G35.

図23は、リコンフィギュラブルロジックブロックの第15構成例を示す図である。第15構成例では、O0〜O11、O16〜O19、及び、O24〜O31がメモリ[8]に集約され、O32〜O43、O48〜O51、及び、O56〜O63がメモリ[9]に集約されている。また、O12〜O15とO20〜O23が第1ブロックAで実現されており、O44〜O47とO52〜O55が第2ブロックBで実現されている。なお、第15構成例において、組み合わせ回路CMBは、入力信号in3〜in5(ただし、入力信号in4及びin5については反転入力)の否定論理和演算を行うNORゲートG37と、入力信号in3〜in5(ただし、入力信号in3及びin5については反転入力)の否定論理和演算を行うNORゲートG38と、NORゲートG37の出力とNORゲートG38の出力との論理和演算を行うORゲートG39と、を有する。   FIG. 23 is a diagram illustrating a fifteenth configuration example of the reconfigurable logic block. In the fifteenth configuration example, O0 to O11, O16 to O19, and O24 to O31 are aggregated in the memory [8], and O32 to O43, O48 to O51, and O56 to O63 are aggregated in the memory [9]. Yes. In addition, O12 to O15 and O20 to O23 are realized in the first block A, and O44 to O47 and O52 to O55 are realized in the second block B. In the fifteenth configuration example, the combinational circuit CMB includes a NOR gate G37 that performs a NOR operation of input signals in3 to in5 (inverted inputs for the input signals in4 and in5), and input signals in3 to in5 (however, NOR gate G38 that performs a negative OR operation on the input signals in3 and in5), and an OR gate G39 that performs a logical OR operation between the output of the NOR gate G37 and the output of the NOR gate G38.

図24は、リコンフィギュラブルロジックブロックの第16構成例を示す図である。第16構成例では、O0〜O11とO16〜O27がメモリ[8]に集約され、O32〜O43とO48〜O59がメモリ[9]に集約されている。また、O12〜O15とO28〜O31が第1ブロックAで実現されており、O44〜O47とO60〜O63が第2ブロックBで実現されている。なお、第16構成例において、組み合わせ回路CMBは、入力信号in4及びin5の論理積演算を行うANDゲートG40のみを有する。   FIG. 24 is a diagram illustrating a sixteenth configuration example of the reconfigurable logic block. In the sixteenth configuration example, O0 to O11 and O16 to O27 are aggregated in the memory [8], and O32 to O43 and O48 to O59 are aggregated in the memory [9]. In addition, O12 to O15 and O28 to O31 are realized in the first block A, and O44 to O47 and O60 to O63 are realized in the second block B. In the sixteenth configuration example, the combinational circuit CMB has only an AND gate G40 that performs a logical product operation of the input signals in4 and in5.

図25は、第1〜第16構成例におけるLUTの形成方法とメモリの集約状態を示す図である。なお、符号「A」は出力データが第1ブロックA(メモリ[0]〜[7])に各々保持されていることを示しており、符号「B」は出力データが第2ブロックB(メモリ[10]〜[17])に各々保持されていることを示している。また、符号「8」は出力データがメモリ[8]に集約されていることを示しており、符号「9」は出力データがメモリ[9]に集約されていることを示している。   FIG. 25 is a diagram illustrating LUT formation methods and memory aggregation states in the first to sixteenth configuration examples. Symbol “A” indicates that output data is held in the first block A (memory [0] to [7]), and symbol “B” indicates that output data is in the second block B (memory). [10] to [17]) indicate that they are held. Reference numeral “8” indicates that output data is collected in the memory [8], and reference numeral “9” indicates that output data is concentrated in the memory [9].

例えば、第2構成例の場合、{in0,in1,in2,in3,in4,in5}={0,−,−,0,0,0}及び{0,−,−,1,0,0}のときには第1ブロックAの出力データが出力信号outとして用いられ、{in0,in1,in2,in3,in4,in5}={1,−,−,0,0,0}及び{1,−,−,1,0,0}のときには第2ブロックBの出力データが出力信号outとして用いられる。また、入力信号の組み合わせが上記以外であるときには、メモリ[8]または[9]の格納データが出力信号outとして用いられる。   For example, in the case of the second configuration example, {in0, in1, in2, in3, in4, in5} = {0,-,-, 0, 0, 0} and {0,-,-, 1, 0, 0} In this case, the output data of the first block A is used as the output signal out, {in0, in1, in2, in3, in4, in5} = {1,-,-, 0, 0, 0} and {1,-, When-, 1, 0, 0}, the output data of the second block B is used as the output signal out. When the combination of input signals is other than the above, the data stored in the memory [8] or [9] is used as the output signal out.

図26は、第1〜第16構成例における論理回路のカバー率(6入力論理回路のカバー率、5入力論理回路のカバー率、及び、4入力以下も含めた全ての論理回路のカバー率)を示す図である。この表は、MCNC[Microelectronics Center of North Carolina] ベンチマーク回路(117種類)をEMapによってテクノロジマッピングを行った場合において、使用された論理回路のうち、本発明に係るリコンフィギュラブルロジックブロック(6−ALUT)で実装可能であったものの割合を示している。なお、EMapとは、UBC[University of British Columbia]で開発された電力最適化を目的としたテクノロジマッピングツールである。 FIG. 26 shows the coverage ratio of the logic circuit in the first to sixteenth configuration examples (the coverage ratio of the 6-input logic circuit, the coverage ratio of the 5-input logic circuit, and the coverage ratio of all the logic circuits including 4 inputs or less). FIG. This table shows the reconfigurable logic block (6-A) according to the present invention among the logic circuits used when MCNC [Microelectronics Center of North Carolina] benchmark circuit (117 types) is subjected to technology mapping by EMAP. 2 LUT) indicates the ratio of those that can be mounted. EMap is a technology mapping tool for power optimization developed by UBC [University of British Columbia].

本発明に係るリコンフィギュラブルロジックブロック(6−ALUT)であれば、従来の6−LUTと比較して、約3分の1のメモリ数で図26に示したカバー率を実現することが可能である。 If the reconfigurable logic block (6-A 2 LUT) according to the present invention is used, the coverage shown in FIG. 26 can be realized with about one-third the number of memories compared to the conventional 6-LUT. Is possible.

<その他の変形例>
なお、本発明の構成は、上記実施形態のほか、発明の主旨を逸脱しない範囲で種々の変更を加えることが可能である。すなわち、上記実施形態は、全ての点で例示であって、制限的なものではないと考えられるべきであり、本発明の技術的範囲は、上記実施形態の説明ではなく、特許請求の範囲によって示されるものであり、特許請求の範囲と均等の意味及び範囲内に属する全ての変更が含まれると理解されるべきである。
<Other variations>
The configuration of the present invention can be variously modified in addition to the above-described embodiment without departing from the gist of the invention. That is, the above-described embodiment is an example in all respects and should not be considered as limiting, and the technical scope of the present invention is not the description of the above-described embodiment, but the claims. It should be understood that all modifications that come within the meaning and range of equivalents of the claims are included.

本発明は、例えば、FPGAの小面積化と低消費電力化を実現する上で有用に利用することが可能な技術である。   The present invention, for example, is a technique that can be used effectively for realizing a reduction in area and power consumption of an FPGA.

100 プログラマブル論理回路装置(FPGA)
101 I/Oブロック
102 リコンフィギュラブルロジックブロック(RLB)
103 コネクションブロック(CB)
104 スイッチブロック(SB)
105 配線
1 第1ルックアップテーブル(m−LUT)
2 第2ルックアップテーブル(n−LUT)
3 組み合わせ回路
4 セレクタ
A 第1ブロック(3−LUT)
B 第2ブロック(3−LUT)
SEL0、SEL1、SEL2 セレクタ
CMB 組み合わせ回路
G(1、4、5、6、9、11、12、14、15、17、18、21、22、25、27、30、31、35、37、38) NORゲート
G(2、8、20、24、28、33、34、40) ANDゲート
G(3、7、10、13、16、19、23、26、29、32、36、39) ORゲート
100 Programmable logic circuit (FPGA)
101 I / O block 102 Reconfigurable logic block (RLB)
103 Connection block (CB)
104 Switch block (SB)
105 Wiring 1 First Look-up Table (m-LUT)
2 Second lookup table (n-LUT)
3 Combinational circuit 4 Selector A 1st block (3-LUT)
B 2nd block (3-LUT)
SEL0, SEL1, SEL2 selector CMB combination circuit G (1, 4, 5, 6, 9, 11, 12, 14, 15, 17, 18, 21, 22, 25, 27, 30, 31, 35, 37, 38 ) NOR gate G (2, 8, 20, 24, 28, 33, 34, 40) AND gate G (3, 7, 10, 13, 16, 19, 23, 26, 29, 32, 36, 39) OR Gate

Claims (9)

最大K入力(x[0]〜x[K−1])のリコンフィギュラブルロジックブロックであって、
m入力(y[0]〜y[m−1]、ただしmはKよりも小さくyはxに属する)の第1ルックアップテーブルと、
n入力(z[0]〜z[n−1]、ただしnはKよりも小さくzはxに属する)の第2ルックアップテーブルと、
p入力(c[0]〜c[p−1]、ただしpはKよりも小さくかつ2以上でありcはxに属する)の組み合わせ回路と、
前記組み合わせ回路の出力に応じて前記第1ルックアップテーブルと前記第2ルックアップテーブルのいずれか一方を選択するセレクタと、
を有することを特徴とするリコンフィギュラブルロジックブロック。
A reconfigurable logic block with a maximum of K inputs (x [0] to x [K-1]),
a first lookup table with m inputs (y [0] to y [m-1], where m is smaller than K and y belongs to x);
a second lookup table with n inputs (z [0] to z [n−1], where n is smaller than K and z belongs to x);
a combinational circuit of p inputs (c [0] to c [p-1], where p is smaller than K and 2 or larger , and c belongs to x);
A selector that selects one of the first lookup table and the second lookup table according to the output of the combinational circuit;
A reconfigurable logic block comprising:
複数の論理回路を各々表現した真理値表を比較して、同一パターンが連続している部分を前記第2ルックアップテーブルで実装し、残りの部分を前記第1ルックアップテーブルで実装することを特徴とする請求項1に記載のリコンフィギュラブルロジックブロック。   Comparing truth tables each representing a plurality of logic circuits, mounting a portion where the same pattern is continuous in the second look-up table, and mounting the remaining portion in the first look-up table The reconfigurable logic block according to claim 1, wherein: 前記複数の論理回路は、K入力のルックアップテーブルでマッピングされた論理回路のうち出現確率の高いものを含むことを特徴とする請求項2に記載のリコンフィギュラブルロジックブロック。   3. The reconfigurable logic block according to claim 2, wherein the plurality of logic circuits include logic circuits mapped with a K-input look-up table having a high appearance probability. 4. 請求項3に記載のリコンフィギュラブルロジックブロックを有することを特徴とするプログラマブル論理回路装置。   A programmable logic circuit device comprising the reconfigurable logic block according to claim 3. 請求項4に記載のプログラマブル論理回路装置を対象としたテクノロジマッピング方法であって、
入力数jとして前記リコンフィギュラブルロジックブロックの最大入力数Kを設定してフローを第2ステップに進める第1ステップと;
カバリングされていないノードを探索してフローを第3ステップに進める第2ステップと;
j入力のカットがあるか否かを判定し、カットがあればフローを第4ステップに進め、カットがなければフローを第10ステップに進める第3ステップと;
j入力の部分回路にカットしてフローを第5ステップに進める第4ステップと;
jがmよりも大きいか否かを判定し、大きければフローを第6ステップに進め、大きくなければフローを第8ステップに進める第5ステップと;
前記部分回路のP代表元を算出してフローを第7ステップに進める第6ステップと;
前記P代表元に基づいて前記部分回路が前記リコンフィギュラブルロジックブロックで実装可能か否かを判定し、実装可能であればフローを第8ステップに進め、実装不可能であればフローを第3ステップに進める第7ステップと;
前記リコンフィギュラブルロジックブロックでノードのカバリングを行い、フローを第9ステップに進める第8ステップと;
全てのノードがカバリング済みであるか否かを判定し、カバリング済みであれば一連のフローを終了させ、カバリング済みでなければフローを第2ステップに進める第9ステップと;
入力数jを一つデクリメントさせてフローを第2ステップに進める第10ステップと;
を有することを特徴とするテクノロジマッピング方法。
A technology mapping method for the programmable logic circuit device according to claim 4,
A first step in which the maximum number of inputs K of the reconfigurable logic block is set as the number of inputs j and the flow proceeds to the second step;
A second step that searches for uncovered nodes and advances the flow to a third step;
It is determined whether or not there is a j-input cut, and if there is a cut, the flow proceeds to the fourth step, and if there is no cut, the flow proceeds to the tenth step;
a fourth step of cutting into j input partial circuits and advancing the flow to the fifth step;
a determination is made as to whether j is greater than m; if it is greater, the flow proceeds to the sixth step; otherwise, the flow proceeds to the eighth step;
A sixth step of calculating a P representative element of the partial circuit and advancing the flow to the seventh step;
Based on the P representative element, it is determined whether or not the partial circuit can be mounted by the reconfigurable logic block. If the partial circuit can be mounted, the flow proceeds to the eighth step. A seventh step to advance to the step;
An eighth step of covering the node with the reconfigurable logic block and advancing the flow to the ninth step;
Determining whether or not all nodes have been covered; if covering has been completed, end the series of flows; otherwise, proceed to the second step;
A tenth step in which the input number j is decremented by one and the flow proceeds to the second step;
A technology mapping method characterized by comprising:
最大K入力(x[0]〜x[K−1])のリコンフィギュラブルロジックブロックであって、  A reconfigurable logic block with a maximum of K inputs (x [0] to x [K-1]),
m入力(y[0]〜y[m−1]、ただしmはKよりも小さくyはxに属する)の第1ルックアップテーブルと、  a first lookup table with m inputs (y [0] to y [m-1], where m is smaller than K and y belongs to x);
n入力(z[0]〜z[n−1]、ただしnはKよりも小さくzはxに属する)の第2ルックアップテーブルと、  a second lookup table with n inputs (z [0] to z [n−1], where n is smaller than K and z belongs to x);
p入力(c[0]〜c[p−1]、ただしpはKよりも小さくcはxに属する)の組み合わせ回路と、  a combinational circuit of p inputs (c [0] to c [p−1], where p is smaller than K and c belongs to x);
前記組み合わせ回路の出力に応じて前記第1ルックアップテーブルと前記第2ルックアップテーブルのいずれか一方を選択するセレクタと、  A selector that selects one of the first lookup table and the second lookup table according to the output of the combinational circuit;
を有し、  Have
複数の論理回路を各々表現した真理値表を比較して、同一パターンが連続している部分を前記第2ルックアップテーブルで実装し、残りの部分を前記第1ルックアップテーブルで実装することを特徴とするリコンフィギュラブルロジックブロック。  Comparing truth tables each representing a plurality of logic circuits, mounting a portion where the same pattern is continuous in the second look-up table, and mounting the remaining portion in the first look-up table Features a reconfigurable logic block.
前記複数の論理回路は、K入力のルックアップテーブルでマッピングされた論理回路のうち出現確率の高いものを含むことを特徴とする請求項6に記載のリコンフィギュラブルロジックブロック。  The reconfigurable logic block according to claim 6, wherein the plurality of logic circuits include logic circuits mapped with a K-input look-up table having a high appearance probability. 請求項7に記載のリコンフィギュラブルロジックブロックを有することを特徴とするプログラマブル論理回路装置。  A programmable logic circuit device comprising the reconfigurable logic block according to claim 7. 請求項8に記載のプログラマブル論理回路装置を対象としたテクノロジマッピング方法であって、  A technology mapping method for the programmable logic circuit device according to claim 8,
入力数jとして前記リコンフィギュラブルロジックブロックの最大入力数Kを設定してフローを第2ステップに進める第1ステップと;  A first step in which the maximum number of inputs K of the reconfigurable logic block is set as the number of inputs j and the flow proceeds to the second step;
カバリングされていないノードを探索してフローを第3ステップに進める第2ステップと;  A second step that searches for uncovered nodes and advances the flow to a third step;
j入力のカットがあるか否かを判定し、カットがあればフローを第4ステップに進め、カットがなければフローを第10ステップに進める第3ステップと;  It is determined whether or not there is a j-input cut, and if there is a cut, the flow proceeds to the fourth step, and if there is no cut, the flow proceeds to the tenth step;
j入力の部分回路にカットしてフローを第5ステップに進める第4ステップと;  a fourth step of cutting into j input partial circuits and advancing the flow to the fifth step;
jがmよりも大きいか否かを判定し、大きければフローを第6ステップに進め、大きくなければフローを第8ステップに進める第5ステップと;  a determination is made as to whether j is greater than m; if it is greater, the flow proceeds to the sixth step; otherwise, the flow proceeds to the eighth step;
前記部分回路のP代表元を算出してフローを第7ステップに進める第6ステップと;  A sixth step of calculating a P representative element of the partial circuit and advancing the flow to the seventh step;
前記P代表元に基づいて前記部分回路が前記リコンフィギュラブルロジックブロックで実装可能か否かを判定し、実装可能であればフローを第8ステップに進め、実装不可能であればフローを第3ステップに進める第7ステップと;  Based on the P representative element, it is determined whether or not the partial circuit can be mounted by the reconfigurable logic block. If the partial circuit can be mounted, the flow proceeds to the eighth step. A seventh step to advance to the step;
前記リコンフィギュラブルロジックブロックでノードのカバリングを行い、フローを第9ステップに進める第8ステップと;  An eighth step of covering the node with the reconfigurable logic block and advancing the flow to the ninth step;
全てのノードがカバリング済みであるか否かを判定し、カバリング済みであれば一連のフローを終了させ、カバリング済みでなければフローを第2ステップに進める第9ステップと;  Determining whether or not all nodes have been covered; if covering has been completed, end the series of flows; otherwise, proceed to the second step;
入力数jを一つデクリメントさせてフローを第2ステップに進める第10ステップと;  A tenth step in which the input number j is decremented by one and the flow proceeds to the second step;
を有することを特徴とするテクノロジマッピング方法。  A technology mapping method characterized by comprising:
JP2010292024A 2010-12-28 2010-12-28 Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method Expired - Fee Related JP5701054B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010292024A JP5701054B2 (en) 2010-12-28 2010-12-28 Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010292024A JP5701054B2 (en) 2010-12-28 2010-12-28 Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method

Publications (2)

Publication Number Publication Date
JP2012142662A JP2012142662A (en) 2012-07-26
JP5701054B2 true JP5701054B2 (en) 2015-04-15

Family

ID=46678534

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010292024A Expired - Fee Related JP5701054B2 (en) 2010-12-28 2010-12-28 Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method

Country Status (1)

Country Link
JP (1) JP5701054B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014132670A1 (en) * 2013-03-01 2014-09-04 アトナープ株式会社 Device and method for generating reconfiguration information
JP5937550B2 (en) * 2013-09-05 2016-06-22 敏則 末吉 Programmable logic circuit and configuration method thereof
CN116719772B (en) * 2023-05-06 2024-10-01 深圳市紫光同创电子有限公司 Programmable logic circuit

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5963050A (en) * 1997-02-26 1999-10-05 Xilinx, Inc. Configurable logic element with fast feedback paths
JP2002076940A (en) * 2000-08-31 2002-03-15 Sony Corp Soft output decoder and soft output decoding method and decoder and decoding method
JP2003273727A (en) * 2002-03-14 2003-09-26 Shinji Kimura Semiconductor integrated circuit device
US6943580B2 (en) * 2003-02-10 2005-09-13 Altera Corporation Fracturable lookup table and logic element

Also Published As

Publication number Publication date
JP2012142662A (en) 2012-07-26

Similar Documents

Publication Publication Date Title
EP1770865B1 (en) Area efficient fracturable logic elements
JP3580785B2 (en) Look-up table, programmable logic circuit device having look-up table, and method of configuring look-up table
JP5701054B2 (en) Reconfigurable logic block, programmable logic circuit device using the same, and technology mapping method
CN101969306B (en) FPGA (Field Programmable Gate Array) configurable five-input lookup table structure
CN107112996B (en) An FPGA-based look-up table process mapping method and look-up table
US20200150925A1 (en) Fpga logic cell with improved support for counters
US8072238B1 (en) Programmable logic device architecture with the ability to combine adjacent logic elements for the purpose of performing high order logic functions
CN103762974A (en) Multifunctional and configurable six-input lookup table structure
JPH07273638A (en) Fpga architecture with program type special-purpose fpga function block for plural wide area input function
JPWO2010106738A1 (en) Reconfigurable logic circuit
Hailes et al. Hardware-efficient node processing unit architectures for flexible LDPC decoder implementations
CN109933301A (en) Scalable Programmable Logic Cell and Programmable Logic Block Structure
KR20180116117A (en) Logic block architecture for programmable gate array
CN103632726B (en) Data shift register circuit based on programmable basic logic unit
CN103886118B (en) Re-synthesis method for integrated circuit heterogeneous logic unit
US7268584B1 (en) Adder circuitry for a programmable logic device
JP2012044618A (en) Programmable logic circuit device and circuit deciding method of the same
US8549057B1 (en) Signal level control
US7406668B1 (en) Methods for producing mappings of logic suitable for FPGA and structured ASIC implementations
CN110463042B (en) Circuit and method for enabling circuit selection
Ohsawa et al. Program-counter-less bit-serial field-programmable VLSI processor with mesh-connected cellular array structure
JP3887622B2 (en) Data processing device
CN110007908B (en) Dual-output lookup table with dual carry chain structure and programmable logic unit
CN113746474B (en) Multi-granularity lookup table structure
Zilic et al. Using decision diagrams to design ULMs for FPGAs

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131224

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141028

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141222

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150120

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150217

R150 Certificate of patent or registration of utility model

Ref document number: 5701054

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees