Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP4011015B2 - Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 - Google Patents
[go: Go Back, main page]

JP4011015B2 - Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 - Google Patents

Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 Download PDF

Info

Publication number
JP4011015B2
JP4011015B2 JP2003401213A JP2003401213A JP4011015B2 JP 4011015 B2 JP4011015 B2 JP 4011015B2 JP 2003401213 A JP2003401213 A JP 2003401213A JP 2003401213 A JP2003401213 A JP 2003401213A JP 4011015 B2 JP4011015 B2 JP 4011015B2
Authority
JP
Japan
Prior art keywords
lut
output
value
input
circuit
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
JP2003401213A
Other languages
English (en)
Other versions
JP2005165502A (ja
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.)
Kitakyushu Foundation for Advancement of Industry Science and Technology
Original Assignee
Kitakyushu Foundation for 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 Advancement of Industry Science and Technology filed Critical Kitakyushu Foundation for Advancement of Industry Science and Technology
Priority to JP2003401213A priority Critical patent/JP4011015B2/ja
Publication of JP2005165502A publication Critical patent/JP2005165502A/ja
Application granted granted Critical
Publication of JP4011015B2 publication Critical patent/JP4011015B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は、LUT(Look-Up Table)カスケード論理回路において、目的論理関数の演算速度を高速化することを可能とするLUT符号化技術に関するものである。
従来、ソフトウェア的に自由に論理関数の組み換えが可能で、かつ、論理関数の演算処理をMPUに比べて高速に行うことが可能な技術として、ルックアップテーブル・カスケード論理回路(以下、「LUTカスケード論理回路」という。)が知られている(例えば、非特許文献1,2参照)。
図18は論理関数の二分決定グラフ(BDD : Binary decision diagrams)を表す図、図19はLUTカスケード論理回路の構成を表す図である。LUTカスケード論理回路では、演算を行う論理関数(以下、「目的論理関数」という。)をs個の部分グラフ(sub graph)に分割する。そして、各部分グラフのそれぞれを真理値表(truth table)で表しLUTを作成する。そして、図19のようにLUTをカスケード接続する。各LUTは、論理関数メモリに格納され、論理関数メモリのアクセスにより各部分グラフの演算は行われる。
図18,図19において、X1,…,Xsは入力変数組を表している。μ1,…,μs-1は、BDDの切断線を横切る有向枝(directed edge)の数を表す。但し、同一の節点(node)を終点(end node)とする有向枝は1本として数える。u1,…,us-1は、前段のLUTから後段のLUTに入力される中間変数の数を表す。一般に、中間変数の数u1,…,us-1は、(数1)により表される。
Figure 0004011015
従来のLUTカスケード論理回路では、最前段のLUTから順にメモリアクセスによる参照演算を行ってゆき、最終段のLUTによる演算の結果として得られる出力値fを、目的論理関数による演算値として得る。
このように、目的論理関数の演算を複数段のLUTのメモリアクセスによる参照演算で行うことによって、通常のMPU(Micro Processing Unit)に比べて高速に論理演算を行うことが可能となる。
笹尾勤,松浦宗寛,井口幸洋,"多出力関数のカスケード実現と再構成可能ハードウェアによる実現",電子情報通信学会FTS研究会, FTS2001-8, pp. 57-64, 三重大学(2001-04). T. Sasao, M. Matsuura, and Y. Iguchi, "A cascade realization of multiple-output function for reconfigurable hardware," International Workshop on Logic and Synthesis (IWLS01), Lake Tahoe, CA, June 12-15, 2001. pp.225-230.
上記従来のカスケード論理回路では、目的論理関数の演算結果を得るためには、必ずs回のメモリアクセスによる参照演算が必要とされる。従って、1回の参照演算を行うために要する時間をTとすると、s個のLUTにより表される目的論理関数の演算を実行するためには、必ず少なくともs・Tの時間を要する。ところで、Tは、半導体メモリのアクセス時間により決定される量であり、物理的に決定する。従って、回路的に演算速度の高速化を図るためにはsの値を小さくする必要がある。しかし、sを小さくすると、各LUTに入力される入力変数の個数と、各LUTから出力される中間変数の個数(レイル数 : number of rails)が増大する。入力変数の個数やレイル数が1増えると、必要なメモリ容量は2倍に増加する。故に、sを小さくすると、論理関数メモリに必要とされるメモリ容量が2の冪乗に比例して増大することとなるため、目的論理関数の変数の個数が大きい場合にはsを小さくすることにも限界がある。従って、従来のLUTカスケード論理回路では、回路の物理的制約とメモリ容量の制約とから高速化には限界があった。
ところで、LUTカスケード論理回路は、メモリのみを使用して安価に構成することができ、かつ、MPUに比べて高速な演算が可能であることを最大の利点とする。しかしながら、近年はMPUが広範な分野で用いられるようになったことから、MPUの単価自体が低廉化してきている。従って、LUTカスケード論理回路の優位性をより大きなものとする為には、LUTカスケード論理回路の更なる高速化を図っていくことが要求される。
そこで、本発明の目的は、上記従来のLUTカスケード論理回路を改良し、メモリ容量を大規模化することなくして従来よりも高速な論理演算を可能とするLUTカスケード論理回路及びそのLUT符号化技術を提供することにある。
本発明に係るLUT符号化方法の第1の構成は、演算を行う対象となる目的論理関数を表す二分決定グラフ(BDD)を適所で分割して得られる各部分グラフを真理値表で表したものであるLUT(Look-Up Table)が、直列に順序づけて接続されており、最前段のLUT以外のLUTの入力の一部は、当該LUTの前段のLUTの出力が入力される構成からなるLUTカスケードにおいて、各LUTの出力値に符号の割り当てを行うLUT符号化方法であって、前記二分決定グラフの終端節点(terminal node)に対応する前記LUTの出力値に対しては、その終端節点の値に対応して決められた特定の符号を割り当てることを特徴とする。
この方法により符号化されたLUTカスケードの各LUTによる演算を進めていったときに、二分決定グラフの終端節点に達すると、その節点値に対応して割り当てられた特定の符号が出力される。そのため、終端節点に達したことを検出することが可能となる。そして、終端節点に達したことが検出された場合、それ以降の段のLUTによる演算を打ち切ることによって、目的論理関数の演算速度を速めることが可能となる。
ここで、「終端節点」とは、BDDの節点のうち子節点を有しない節点をいう。「終端節点の値に対応して決められた特定の符号を割り当てる」方法としては、例えば、ある段のLUTのレイル数が4であった場合、BDDの終端節点の値が0の場合は「0000」、BDDの終端節点の値が1の場合は「1111」のように符号を割り当てる等、その符号から終端節点であることを識別することが可能な割り当て方法が採られる。
本発明に係るLUT符号化方法の第2の構成は、前記第1の構成において、前記LUTカスケードは、最終段のLUTが1ビットの出力変数を出力するLUTカスケードであって、前記二分決定グラフの終端節点に対応する前記LUTの出力値に対しては、その終端節点の値が0の場合には前記LUTの出力値として全ビットが0(又は全ビットが1)の符号を割り当て、その終端節点の値が1の場合には前記LUTの出力値として全ビットが1又は全ビットが0の符号を割り当てることを特徴とする。
この構成によれば、この方法で符号化されたLUTカスケードの各LUTによる演算を進めていったときに、LUTの出力値において全ビットが0又は全ビットが1であることを検出することにより、終端節点に達したことを検出することが可能となる。そして、この検出は、ANDゲート及びNORゲートを用いた簡単な回路構成で行うことが可能である。
本発明に係るLUT符号化方法の第3の構成は、前記第1の構成において、前記LUTカスケードは、最終段のLUTが2ビット以上の出力変数を出力するLUTカスケードであって、前記二分決定グラフの終端節点に対応する前記LUTカスケードのi段目のLUTの出力値に対しては、当該i段目のLUTに対して決められている所定の閾値以下又は以上となるように符号を割り当てることを特徴とする。
この構成によれば、この方法で符号化されたLUTカスケードの各LUTによる演算を進めていったときに、各段のLUTの出力値において所定の閾値以下又は以上であることを検出することにより、終端節点に達したことを検出することが可能となる。そして、この検出は、コンパレータを用いた簡単な回路構成で行うことが可能である。
本発明に係るLUT符号化装置の第1の構成は、演算を行う対象となる目的論理関数を表す二分決定グラフを適所で分割して得られる各部分グラフを真理値表で表したものであるLUTが、直列に順序づけて接続されており、最前段のLUT以外のLUTの入力の一部又は全部は、当該LUTの前段のLUTの出力が入力される構成からなるLUTカスケードにおいて、各LUTの出力値に符号の割り当てを行うLUT符号化装置であって、前記二分決定グラフの終端節点に対応する前記LUTの出力値に対しては、その節点の値に対応して決められた特定の符号を割り当てる符号化手段を備えていることを特徴とする。
これにより、LUT符号化装置により目的論理関数を符号化した場合、終端節点に対しては、符号化手段によりある決められた特定の符号が割り当てられるように符号化がなされる。従って、この符号化されたLUTを使用してLUTカスケードの演算を行う場合、最終段のLUTに到達する前に終端節点を表す特定の符号が検出されたときに、その段階でLUTカスケードの演算を打ち切り、その特定の符号が表す終端節点の値を出力すれば、演算速度を向上させることが可能となる。
本発明に係るLUT符号化装置の第2の構成は、前記第1の構成において、前記LUTカスケードは、最終段のLUTが1ビットの出力変数を出力するLUTカスケードであって、前記符号化手段は、前記二分決定グラフの終端節点に対応する前記LUTの出力値に対しては、その終端節点の値が0の場合には前記LUTの出力値として全ビットが0(又は全ビットが1)の符号を割り当て、その終端節点の値が1の場合には前記LUTの出力値として全ビットが1(又は全ビットが0)の符号を割り当てることを特徴とする。
本発明に係るLUT符号化装置の第3の構成は、前記第1の構成において、前記LUTカスケードは、最終段のLUTが2ビット以上の出力変数を出力するLUTカスケードであって、前記符号化手段は、前記二分決定グラフの終端節点に対応する前記LUTカスケードのi段目のLUTの出力値に対しては、当該i段目のLUTに対して決められている所定の閾値以下又は以上となるように符号を割り当てることを特徴とする。
本発明に係るLUTカスケード論理回路の第1の構成は、演算を行う対象となる目的論理関数を表す二分決定グラフを適所で分割して得られる各部分グラフを真理値表により表したものであるLUTが格納された論理関数メモリと、最前段のLUT以外のLUTの入力の一部又は全部を、当該LUTの前段のLUTの出力に接続する接続回路と、を備えたLUTカスケード論理回路であって、前記二分決定グラフの終端節点に対応する前記LUTの出力値は、その終端節点の値に対応して決められた特定の符号を割り当てられており最終段以外の前記LUTの出力値が前記特定の符号であった場合、当該特定の符号に対応する節点値を出力するとともに、当該LUTよりも後段のLUTによる論理演算を打ち切る演算制御手段を備えていることを特徴とする。
入力変数を各LUTに入力しながら、最前段のLUTから最後段のLUTにかけて、順次、前段LUTの出力及び外部入力変数を入力し後段のLUTに出力するというメモリアクセス動作を繰り返していくことにより、目的関数の演算が行われる。このとき、演算制御手段は、途中の段のLUTの出力値が、終端節点を表す特定の符号であることを検出すると、その符号に対応する節点値を出力する。それとともに、それ以降のLUTによる演算を打ち切って演算を終了する。これにより、目的関数による演算値が得られるまでの時間を短縮することができる。
本発明に係るLUTカスケード論理回路の第2の構成は、前記第1の構成において、前記論理関数メモリに格納された最終段のLUTは、1ビットの出力変数を出力するLUTであって、演算制御手段は、前記LUTの出力値の全ビットが0(又は全ビットが1)であることを検出する終端判定器と、前記終端判定器が、最終段以外の前記LUTの出力値において、全ビットが0(又は全ビットが1)であることを検出したときに、その出力値に応じて節点値を出力する出力回路と、を備えていることを特徴とする。
この構成により、演算制御手段は、終端判定器が最終段以外の前記LUTの出力値において、全ビットが0又は全ビットが1であることを検出したときに、出力回路がその出力値に応じて節点値を出力する。これにより、LUTカスケードの最終段に到達していない段階でも、終端節点に達すれば演算結果を得ることができる。従って、従来よりも高速な論理演算が可能となる。また、終端判定器は、ANDゲート及びNORゲートを用いた簡単な回路で構成することができる。
本発明に係るLUTカスケード論理回路の第3の構成は、前記第1の構成において、前記論理関数メモリに格納された最終段のLUTは、2ビット以上の出力変数を出力するLUTであって、演算制御手段は、最終段以外の各段の前記LUTに対して終端判定値が格納された終端判定値メモリと、各段の前記LUTの出力値が、その段に対する前記終端判定値以下又は以上であることを検出する終端判定器と、前記終端判定器が、最終段以外の前記LUTの出力値が、その段に対する前記終端判定値以下又は以上であることを検出したときに、その出力値に応じて節点値を出力する出力回路と、を備えていることを特徴とする。
この構成により、演算制御手段は、終端判定器が最終段以外の前記LUTの出力値において、その段に対する前記終端判定値以下又は以上であることを検出したときに、出力回路がその出力値に応じて節点値を出力する。これにより、LUTカスケードの最終段に到達していない段階でも、終端節点に達すれば演算結果を得ることができる。従って、従来よりも高速な論理演算が可能となる。また、終端判定器は、コンパレータを用いた簡単な回路で構成することができる。
上述のように、本発明に係るLUT符号化方法によれば、LUTカスケードの各LUTによる演算を進めていったときに、二分決定グラフの終端節点に達したことの検出が可能となる。そして、終端節点に達したことが検出された場合、それ以降の段のLUTによる演算を打ち切ることによって、目的論理関数の演算速度を速めることが可能となる。
また、本発明に係るLUTカスケード論理回路によれば、演算制御手段が、途中の段のLUTの出力値が、終端節点を表す特定の符号であることを検出すると、その符号に対応する節点値を出力するとともに、それ以降のLUTによる演算を打ち切って演算を終了することにより、目的関数による演算値が得られるまでの時間を短縮することができる。従って、LUTカスケード論理回路の演算速度の高速化を図ることが可能となる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
本実施例では、出力変数が1ビットである共有二分決定グラフ(Shared Binary Decision Diagram.以下、「SBDD」という。)に対して、LUTカスケード論理回路の演算速度を高速化するための符号化方法を示す。
図1は本発明の実施例1に係るLUT符号化装置の構成を表すブロック図である。本実施例に係るLUT符号化装置は、論理仕様記憶手段1、ROBDD生成手段2、ROBDD記憶手段3、BDD分割手段4、符号化手段5、及びLUT記憶手段6を備えている。
論理仕様記憶手段1は、目的論理関数を表す論理仕様を記憶する。ROBDD生成手段2は、論理仕様記憶手段1に記憶された目的論理関数を表す論理仕様から、BDDを生成するとともにそのBDDを既約化し、既約順序付二分決定グラフ(Reduced Ordered Binary Decision Diagram。以下、「ROBDD」という。)を生成してROBDD記憶手段3に格納する。BDD分割手段4は、ROBDD記憶手段3に格納されたROBDDを、所定の大きさの部分グラフに分割する。符号化手段5は、BDD分割手段4が生成する部分グラフを符号化してLUTを生成し、LUT記憶手段6に格納する。
以上のように構成された本実施例に係るLUT符号化装置について、以下その動作を説明する。
図2は本発明の実施例1に係るLUT符号化方法を表すフローチャートである。まず、ROBDD生成手段2は、論理仕様記憶手段1に格納された論理仕様を読み出して、BDDを生成しながらこれを既約化してROBDDを生成し、これをROBDD記憶手段3に格納する(S1)。ここで、BDDの「既約化」とは、展開する変数の順序を固定して、冗長な節点の削除と同型な部分グラフの共有を可能な限り行うことをいう。
〔例1.1〕
例えば、目的論理関数fが(数2)のような関数であったとする。
Figure 0004011015
(数2)を表す2分決定木(BDT : Binary Decision Tree)は図3のようになる。図3において「○」が非終端節点(non-terminal node)を表し、「□」が終端節点を表す。また、各非終端節点を始節点とする有向枝のうち、実線で表されたものは、非終端節点における入力が「1」に対応する有向枝、点線で表されたものは、非終端節点における入力が「0」に対応する有向枝を表している。
図3のBDTは、目的論理関数fを展開する変数の順序を固定し、冗長な節点の削除と同型な部分グラフの共有を可能な限り行うことにより、図4に示したROBDDに変形することができる。ROBDD生成手段2は、目的論理関数の論理仕様から、図3に示したBDTを生成しながら、同時に図3のBDTを既約化し、図4のようなROBDDを生成する。そして、このROBDDは、ROBDD記憶手段3に(表1)のようなROBDDテーブルとして格納される。
Figure 0004011015
(表1)において、「アドレス」は、ROBDDの節点のデータが格納されたメモリ内のアドレスを表す。「index」は、各節点の節点ラベル(vertex Label)に対応した符号を表す。(表1)では、節点ラベル「A」に対して「001」、節点ラベル「B」に対して「010」、節点ラベル「C」に対して「011」の符号が付されている。また、終端節点に対しては、符号「000」が付されている。「0枝」と「1枝」の欄には、各節点を始節点(initial vertex)とする入力「0」に対応する有向枝の終点のアドレス又は入力「0」に対応する有向枝の終点のアドレスが格納されている。但し、終端節点に対しては、それを始節点とする有向枝は存在しないので、当該終端節点の値に対応する適当な値((表1)では、節点値1の終端節点に対しては「1111」、節点値0の終端節点に対しては「0000」)が割り当てられる。
(例終わり)
次に、BDD分割手段4は、ROBDD記憶手段3に格納されたROBDDを、所定の大きさのs個の部分グラフに分割する(S2)。ここで、「所定の大きさの部分グラフ」とは、各部分グラフを符号化してLUTを作成した場合に、作成されるLUTが、LUTを格納するメモリの入力数以下の入力数となる程度の大きさの部分グラフをいう。
〔例1.2〕
図5(a)のようなROBDDを持つ論理関数を考える。LUTを格納するメモリのアドレスの入力数が3であるとした場合、BDD分割手段4は、図5(b)の一点鎖線で示した位置でROBDDを分割する。これにより、図5(a)のROBDDを4個の3入力LUTにより実現することができる。図5(b)において「○」が非終端節点を表し、「□」が終端節点を表す。また、各非終端節点を始節点とする有向枝のうち、実線で表されたものは非終端節点における入力が「1」に対応する有向枝、点線で表されたものは非終端節点における入力が「0」に対応する有向枝を表している。
(例終わり)
次に、符号化手段5は、BDD分割手段4が生成する部分グラフを符号化してLUTを生成し、LUT記憶手段6に格納する。この符号化処理は、以下のようにして行われる。
まず、符号化手段5は、作成するLUTの段数を表す内部変数iを0として(S3)、BDD分割手段4が生成したi番目の部分グラフの出力数u(i)を計算する(S4)。ここで、部分グラフの出力数u(i)は(数1)により計算することができる。例えば、図5(b)に示したROBDDを分割して得られる各部分グラフの出力数は2となる。
次に、符号化手段5は、i番目の部分グラフの出力のうち、終端節点に対しては、その終端節点の値に対応して決められた特定の符号を割り当てる。本実施例においては、符号化手段5は、節点値0の終端節点に対しては「0…0」、節点値1の終端節点に対しては「1…1」の符号を割り当てる(S5)。また、符号化手段5は、i番目の部分グラフの出力の非終端節点に対して、上記終端節点に割り当てた符号以外の符号を割り当てる(S6)。そして、符号化手段5は、以上の符号割り当てにより、i番目のLUTを生成し、これをLUT記憶手段6に格納する(S7)。
以上のステップS5〜S8までの動作を、iを1ずつ繰り上げながら、iがs−1となるまで繰り返す(S8)。iがs−1となるまでステップS4〜S7の動作を行ってs個のLUTを生成した時点で、LUT符号化装置は動作を終了する。
〔例1.3〕
図5(b)に示したようなROBDDの部分グラフを符号化手段5により符号化することによって、図6に示したようなLUTカスケードが生成され、LUT記憶手段6に格納される。図6において、各LUTの出力値(y2i+1,y2i)には、値が0の終端節点に対して「00」又は「0」が、値が1の終端節点に対して「11」又は「1」が割り当てられる。図5(b)のROBDDから符号化により作成されたLUTの例を(表2)に示す。尚、(表2)において、「x」はドント・ケアを表す。
Figure 0004011015
このような符号化により生成された各LUTにより、図6のようなLUTカスケードを構成した場合、各段のLUTの出力値が総て0又は総て1である場合には、終端節点であることを識別することが可能となる。従って、各段のLUTの出力値を監視し、総て0の出力を検出した時点でf=0を出力して計算を終了し、又は、総て1の出力を検出した時点でf=1を出力して計算を終了する。これにより、従来は4回のメモリアクセスを必要としたLUTカスケード論理回路による演算を、平均2.375回のメモリアクセスにより行うことが可能となる。
(例終わり)
本実施例においては、出力変数が複数ビットである多端子二分決定グラフ(Multi-Terminal BDD.以下、「MTBDD」という。)に対して、LUTカスケード論理回路の演算速度を高速化するための符号化方法について説明する。
図7は本発明の実施例2に係るLUT符号化装置の構成を表すブロック図である。図7において、論理仕様記憶手段1及びLUT記憶手段6は、図1と同様のものであるため、同符号を付して説明は省略する。本実施例に係るLUT符号化装置は、更に、MTBDD生成手段9、MTBDD記憶手段10、BDD分割手段11、及び符号化手段12を備えている。
MTBDD生成手段9は、論理仕様記憶手段1に記憶された目的論理関数を表す論理仕様からMTBDDを生成してMTBDD記憶手段10に格納する。BDD分割手段11は、MTBDD記憶手段10に格納されたMTBDDを、所定の大きさの部分グラフに分割する。符号化手段12は、BDD分割手段11が生成する部分グラフを符号化してLUTを生成し、LUT記憶手段6に格納する。
以上のように構成された本実施例に係るLUT符号化装置について、以下その動作を説明する。
図8は本発明の実施例2に係るLUT符号化方法を表すフローチャートである。まず、MTBDD生成手段9は、論理仕様記憶手段1に格納された論理仕様を読み出してMTBDDを生成し、これをMTBDD記憶手段10に格納する(S11)。続いて、BDD分割手段11は、MTBDD記憶手段10に格納されたMTBDDを、所定の大きさのs個の部分グラフに分割する(S12)。
〔例2.1〕
例えば、目的論理関数が、入力変数A=(a3 a2 a1 a0),B=(b3 b2 b1 b0)の大小を比較する4ビット比較器であるとする。4ビット比較器は、例えば、(数3)により表される。
Figure 0004011015
MTBDD生成手段9は、(数3)で表される論理仕様から図9に示すようなMTBDDを生成し、MTBDD記憶手段10に格納する。図9において、MTBDDは2ビットの出力変数Fを出力する。A>Bの場合にはF=(00)、A=Bの場合にはF=(11)、A<Bの場合にはF=(01)が出力される。入力変数A,Bの比較は、上位ビットから比較することにより行われる。すなわち、まず、a3,b3を比較してa3>b3ならばA>B、a3<b3ならばA<Bと決定する。a3=b3のときは、次の下位ビットa2,b2を比較する。a2>b2ならばA>B、a2<b2ならばA<Bと決定する。a2=b2のときは、次の下位ビットa1,b1を比較する。以下同様に比較演算を行い、入力変数AとBの比較が行われる。
そして、BDD分割手段11は、このMTBDDを、例えば、図9の一点鎖線の箇所において分割し、3個の部分グラフを生成する。図9では、4入力のLUTにより構成されるようにMTBDDの分割を行ったものである。一般に、LUTの入力変数の数が指定された数以下となるように、MTBDDの分割が行われる。
(例終わり)
次に、符号化手段12は、BDD分割手段11が生成する部分グラフを符号化してLUTを生成し、LUT記憶手段6に格納する。この符号化処理は、以下のようにして行われる。
まず、符号化手段12は、内部変数iを0として(S13)、BDD分割手段11が生成するi番目の部分グラフの出力数u(i)を計算する(S14)。ここで、部分グラフの出力数u(i)は(数1)により計算される。例えば、図9に示したMTBDDを分割して得られる各部分グラフの出力数は2となる。
次に、符号化手段12は、i番目の部分グラフの出力のうち、終端節点に対しては、その終端節点の値に対応して決められた特定の符号を割り当てる。本実施例においては、符号化手段12は、i番目の部分グラフの出力(yu(i),yu(i)-1,…,y0)のうち終端節点に対しては、2進数(yu(i),yu(i)-1,…,y02が所定の閾値ti以下となるように符号の割り当てを行う(S15)。これにより、i番目の部分グラフの出力から得られる2進数(yu(i),yu(i)-1,…,y02と閾値tiとを比較することにより、(yu(i),yu(i)-1,…,y02≦tiであれば終端節点であることを判別することが可能となる。
尚、終端節点に対する符号の割り当て方法はこの方法に限られるものではなく、終端節点であることが識別できる符号であれば、どのような符号の割り当て方を用いてもよい。
また、符号化手段12は、i番目の部分グラフの出力の非終端節点に対して、上記終端節点に割り当てた符号以外の符号を割り当てる(S16)。そして、符号化手段12は、以上の符号割り当てにより、i番目のLUTを生成し、これをLUT記憶手段6に格納する(S17)。
以上のステップS14〜S17までの動作を、iを1ずつ繰り上げながら、iがs−1となるまで繰り返す(S18)。iがs−1となるまでステップS14〜S17の動作を行ってs個のLUTを生成した時点で、LUT符号化装置は動作を終了する。
〔例2.2〕
図9に示したようなMTBDDの部分グラフを符号化手段12により符号化することによって、図10(a)に示したようなLUTカスケードが生成され、LUT記憶手段6に格納される。図10(a)において、LUT,LUTの出力値には、A>Bの終端節点に対して符号「00」が、A<Bの終端節点に対して符号「01」が割り当てられる。終端節点以外の節点に対しては、符号「11」又は符号「10」の何れかを割り当てることができる。また、最終段のLUTの出力値には、A>Bの終端節点に対して符号「00」が、A<Bの終端節点に対して符号「01」が、A=Bの終端節点に対して符号「11」又は符号「10」が割り当てられる。
図9のMTBDDから符号化により作成されたLUTの例を(表3)に示す。(表3)では、LUT,LUTの出力値のうち終端節点以外の節点に対しては符号「11」を割り当てて符号化を行っている。また、LUTの出力は総て終端節点なので、符号「00」、「01」、「11」を割り当てて符号化を行っている。尚、「x」は、ドント・ケアを表す。
Figure 0004011015
このような符号化を行うことによって、LUT又はLUTによる演算が終了した時点で、LUTの出力値(y2i,y2i+1)を2進数で表した値(y2i2i+12が(01)以下であれば、終端節点に達したものと判定することが可能である。従って、LUT又はLUTの出力値から終端節点に達したことが検出されると、出力値(y2i,y2i+1)を出力F=(F0,F1)として出力し、演算を終了することが可能となる。これにより、従来は3回のメモリアクセスを必要としたLUTカスケード論理回路による演算を、平均1.375回のメモリアクセスにより行うことが可能となる。
(例終わり)
本実施例においては、実施例1又は実施例2で説明したLUT符号化方法によって符号化されたLUTカスケードを用いて、目的論理関数の演算を行うLUTカスケード論理回路について説明する。
図11は本発明の実施例3に係るLUTカスケード論理回路の構成を表すブロック図である。本実施例に係るLUTカスケード論理回路は、論理関数メモリ21、入力変数レジスタ22、入力変数選択回路23、入力選択メモリ24、接続回路25、接続メモリ26、出力デコーダ27、出力レジスタ29、及び演算制御部30を備えている。
論理関数メモリ21は、目的論理関数に基づいて、上記実施例1,2において説明した符号化方法によって生成された複数のLUTが記憶されている。この論理関数メモリ21には、通常のSRAM(Static Random Access Memory)等が使用される。
論理関数メモリ21は、メモリのiページ目(i=0,1,…)にi段目のLUT(以下、「LUT」と表す。)が格納されている。従って、論理関数メモリ21のiページを読み出すことにより、LUTにアクセスすることが可能となる。
〔例3.1〕
例えば、目的論理関数が、図10(a)に示したような3つのLUT(LUT,LUT,LUT)からなるLUTカスケードにより表される場合、図10(b)に示したように、LUTは論理関数メモリ21の0ページ目に、LUTは論理関数メモリ21の1ページ目に、LUTは論理関数メモリ21の2ページ目に、それぞれ格納される。これにより、例えば、LUTを読み出す場合には、論理関数メモリ21の1ページにアクセスすればよいことになる。
(例終わり)
論理関数メモリ21は、u+mビットのアドレス入力端子A0〜Au+m-1、uビットのデータ出力端子D0〜Du-1、及び、アドレス・ストローブ(address strobe)端子(AS)nを備えている。尚、「( )n」の記号は負論理であることを表す。アドレス・ストローブ端子(AS)nには、外部から入力されるクロックCLKが入力される。論理関数メモリ21は、アドレス・ストローブ端子(AS)nから入力されるクロックの立ち下がりにおいて、アドレス入力端子A0〜Au+m-1に入力されているアドレス値を、内部のアドレス・レジスタにラッチする。そして、アドレス・レジスタにラッチされたアドレス値が示すアドレスに格納されたデータの値を、データ出力端子D0〜Du-1から出力する。
入力変数レジスタ22は、LUTカスケードの各段のLUTに対して入力する入力変数を一時的に記憶するレジスタである。入力変数レジスタ22には、外部からのデータ入力(Data input)の他に、制御信号として、データ・ストローブ信号(DS)nが入力される。入力変数レジスタ22は、データ・ストローブ信号(DS)nの立ち下がりにおいて、外部からのデータ入力(Data input)をラッチする。
入力変数選択回路23は、入力変数レジスタ22が出力する入力変数から、LUTカスケードの各段で使用する入力変数を選択する回路である。入力変数選択回路23としては、クロスバ・スイッチ、マルチプレクサ、シフタ等が使用される。また、入力選択メモリ24には、LUTカスケードの各LUTに対応して、当該LUTにおいて使用する入力変数の選択に関する情報が格納されている。入力変数選択回路23のデータ入力端子は、入力変数レジスタ22の出力端子に接続されている。入力変数選択回路23の選択制御入力端子は、miビットの入力選択メモリ24の出力端子に接続されている。
接続回路25は、LUTカスケードの各LUTで使用する変数を選択して論理関数メモリ21のアドレス入力端子に接続するための切換回路である。また、接続メモリ26には、LUTカスケードの各LUTに対応して、当該LUTで使用する変数(入力変数及び中間変数)を論理関数メモリ21に接続するための接続切換信号が格納されている。
接続回路25は、入力端子X0〜Xu-1,Y0〜Yu-1、出力端子W0〜Wu-1、及び切換制御入力端子C0〜Cu-1を備えている。入力端子Y0〜Yu-1は、入力変数選択回路23の各出力端子に接続されている。入力端子X0〜Xu-1は、論理関数メモリ21の各出力端子D0〜Du-1に接続されている。出力端子W0〜Wu-1は、論理関数メモリ21のアドレス入力端子A0〜Au-1に接続されている。また、切換制御入力端子C0〜Cu-1は、接続メモリ26の各出力端子に接続されている。接続回路25は、入力端子X0〜Xu-1,Y0〜Yu-1と出力端子W0〜Wu-1との接続を、切換制御入力端子C0〜Cu-1から入力される接続切換信号INSELに従って切り換える。
尚、論理関数メモリ21のアドレス入力端子Au〜Au+m-1には、演算制御部30から出力されるmビットのページ・カウント信号CNTの出力線が接続されている。
出力デコーダ27は、符号化された論理関数メモリ21の出力値を復号して、LUTカスケードの出力変数f0〜fn-1を出力するための回路である。出力デコーダ27は、LUTカスケードの各段のLUTの出力に対する復号テーブルが格納されたメモリにより構成されている。出力デコーダ27は、u+mビットの入力端子A0〜Au+m-1と、nビットの出力端子D0〜Dn-1とを備えている。出力デコーダ27のデータ入力端子A0〜Au-1は、それぞれ論理関数メモリ21の出力端子D0〜Du-1に接続されている。また、出力デコーダ27のデータ入力端子Au〜Au+m-1には、後述のページ・カウンタ35が出力するページ・カウント信号CNTが入力される。このページ・カウント信号CNTによって、復号テーブルが選択される。そして、データ入力端子A0〜Au-1から入力されるLUT出力値d0〜du-1に対応する復号テーブルの値が、出力デコーダ27の出力端子D0〜Dn-1から、出力変数f0〜fn-1として出力される。
出力レジスタ29は、出力デコーダ27から出力されるLUTカスケードの出力変数f0〜fn-1をラッチして記憶するレジスタである。出力レジスタ29は、後段の回路との同期をとるためのバッファとしての役割を有する。出力レジスタ29は、nビットのデータ入力端子Di0〜Din-1、nビットのデータ出力端子Do0〜Don-1、クロック入力端子CLK、チップ・セレクト端子CE、及びリセット端子(R)nを備えている。リセット端子(R)nには、外部からのリセット信号(RST)nが入力される。このリセット端子(R)nに0が入力されると、出力レジスタ29は、ラッチした値をすべて0として、データ出力端子Do0〜Don-1の出力値を0とする。チップ・セレクト端子CEには、後述の演算制御部30が出力するアウトプット・イネーブル信号(OE)nが入力される。クロック入力端子CLKには、外部からのクロックCLKが入力される。リセット端子(R)nに0が入力された状態であっても、チップ・セレクト端子CEの入力値が1のときには、出力レジスタ29は、データ入力端子Di0〜Din-1からの入力を受け付けない。一方、チップ・セレクト端子CEの入力値が0のときには、出力レジスタ29は、クロックCLKの立ち上がりにおいて、データ入力端子Di0〜Din-1からの入力をラッチする。そして、ラッチしたデータを、データ出力端子Do0〜Don-1から出力する。
演算制御部30は、LUTカスケード論理回路全体の演算動作の制御を行う。演算制御部30の詳細については後で詳述する。
図12は図11の入力変数選択回路の構成の一例を示す図である。図12においては、入力変数選択回路23は循環的なバレルシフタにより構成している。ここでは、一例として、入力変数選択回路23は17入力8出力としているが、入出力数はこれに限られるものではない。
入力変数選択回路23は、入力側から、8ビットの循環的なバレルシフタ23−3、4ビットの循環的なバレルシフタ23−2、2ビットの循環的なバレルシフタ23−1、1ビットの循環的なバレルシフタ23−0が直列に接続された構成からなる。バレルシフタ23−3の各入力パッドIn0〜In16には、入力変数レジスタ22の各出力端子が接続される。また、バレルシフタ23−0の各入力パッドOut0〜Out7には、接続回路25の入力端子の一部が接続される。各バレルシフタ23−0〜23−3は、入力選択メモリ24から入力される4ビットの選択信号INSEL(INSEL0〜INSEL3)により任意ビット数の循環的なシフトを行う。これにより、入力変数レジスタ22の各出力端子の一部と接続回路25の入力端子の一部との接続位置を自由に変更することが可能である。
図13は図11の接続回路の構成の一例を示す図である。図13(a)は接続回路25の全体構成を表している。図13(a)において、接続回路25の変数入力端子X0〜Xu-1は、それぞれ、論理関数メモリ21のu本の出力端子D0〜Du-1に接続される。また、接続回路25の変数入力端子Y0〜Yu-1は、入力変数選択回路23のu本の出力端子x0〜xu-1に接続される。また、接続回路25の選択入力端子C0〜Cu-1は、接続メモリ26のu本の出力端子CNSET0〜CNSETu-1に接続される。一方、接続回路25の変数出力端子W0〜Wu-1は、それぞれ、論理関数メモリ21のu本のアドレス入力端子A0〜Au-1に接続される。
接続回路25の変数入力端子Xi,Yi及び変数出力端子Wi(i∈{0,1,…,u-1})の交点には、切換回路25aが設けられている。選択入力端子Ciには、これらの各切換回路25aを制御するための信号が入力される。
切換回路25aは、具体的には、図13(b)に示したような論理回路により構成されている。図13(b)の切換回路25aは、入力Xi,Yi,Ciに対して、出力Wiは(数4)のようになる。
Figure 0004011015
すなわち、接続メモリ26から選択入力端子Ciに入力される接続切換信号CNSETiが論理0の場合には、Wi=Yiとなり、入力変数選択回路23の出力端子xiが論理関数メモリ21の入力端子Aiに接続される。これにより、LUTカスケードの次段のLUTに入力変数xiを直接入力することができる。
一方、接続メモリ26から選択入力端子Ciに入力される接続切換信号CNSETiが論理1の場合には、Wi=Xiとなり、入力変数選択回路23の出力端子xiが論理関数メモリ21の入力端子Aiに接続される。これにより、LUTカスケードの前段のLUTの出力である中間変数を後段のLUTの入力変数として転送することができる。
図14は図11の演算制御部の構成を表すブロック図である。本実施例に係る演算制御部30は、ページ・カウンタ35、終端判定値メモリ36、終端節点判定器37、AND回路38、及びビジー生成回路39を備えている。
ページ・カウンタ35は、外部から入力されるクロックCLKを計数し、その計数値をmビットのページ・カウント信号CNTとして出力するカウンタである。このページ・カウント信号CNTは、LUTカスケードのうち、次に演算を行うLUTの段数に対応している。ページ・カウンタ35は、クロック入力端子CLK、リセット入力端子(R)n、及びmビットのデータ出力端子Q0〜Qm-1を備えている。クロック入力端子CLKには、外部からのクロックCLKが入力される。ページ・カウンタ35は、クロックCLKの立ち上がりをカウントして、データ出力端子Q0〜Qm-1から、ページ・カウント信号CNTとして出力する。リセット入力端子(R)nは、AND回路38の出力端子に接続されている。リセット入力端子(R)nが0のとき、ページ・カウンタ35は、ページ・カウント信号CNTを強制的に0クリアする。
終端判定値メモリ36には、各ページ・カウント信号CNTに対して、そのページ・カウント信号CNTに対応する段のLUTの出力が終端節点であるか否かを判定するための判定値が記憶されている。この終端判定値メモリ36は、mビットのアドレス入力端子Di0〜Dim-1、uビットのデータ出力端子Do0〜Dou-1、及びアドレス・ストローブ端子(AS)nを備えている。アドレス入力端子 Di0〜Dim-1には、ページ・カウンタ35が出力するページ・カウント信号CNTが入力される。アドレス・ストローブ端子(AS)nには、クロックCLKが入力される。終端判定値メモリ36は、クロックCLKの立ち下がりで、ページ・カウント信号CNTをラッチする。そして、ラッチされたページ・カウント信号CNTの値で指定されるアドレスに格納されている判定値を、終端判定閾値th0〜thu-1として、データ出力端子Do0〜Dou-1から出力する。
終端節点判定器37は、デジタル・コンパレータ40、Tフリップ・フロップ41、Dフリップ・フロップ42、及びOR回路43により構成されている。この終端節点判定器37は、終端判定値メモリ36から出力される判定値と、論理関数メモリ21の出力値とを比較する。そして、終端節点に達したか否かを判定し、その判定値をアウトプット・イネーブル信号(OE)nとして出力する。終端節点に達した場合には、アウトプット・イネーブル信号(OE)nとして0を出力し、達していない場合には1を出力する。
デジタル・コンパレータ40は、uビットの入力端子A、uビットの入力端子B、及び1ビットの出力端子(A<B)を備えている。入力端子Aには、終端判定閾値th0〜thu-1が入力される。入力端子Bには、論理関数メモリ21から、LUT出力値d0〜du-1が入力される。デジタル・コンパレータ40は、入力端子A,Bから入力されるデータを比較して、A<Bの場合には1を出力し、A≧Bの場合には0を出力する。デジタル・コンパレータ40の出力値は、OR回路43において、Dフリップ・フロップ42の出力値(Q)nとOR演算がされた後、アウトプット・イネーブル信号(OE)nとして出力される。
尚、終端節点判定器37内部の、Tフリップ・フロップ41、Dフリップ・フロップ42、及びOR回路43により構成される回路は、回路がリセット信号(RST)nによりリセットされた直後に生じる、論理関数メモリ21の出力データの不定期間において、アウトプット・イネーブル信号(OE)nが不定とならないように補償するための回路である。詳細な動作については、後述する。
AND回路38は、ページ・カウンタ35のリセット信号を生成するための回路である。AND回路38は、終端節点判定器37の出力するアウトプット・イネーブル信号(OE)nと、リセット信号(RST)nと、Dフリップ・フロップ42の出力QとのAND演算を行い、その論理値をページ・カウンタ35のリセット端子(R)nに入力する。
ビジー生成回路39は、入力回路44、Dフリップ・フロップ45、AND回路46、及びOR回路47により構成されている。ビジー生成回路39は、各時刻で演算処理中であることを表すビジー信号BUSYを生成する回路である。ビジー信号BUSYはクロックCLKに同期して出力される。ビジー信号BUSYは、リセット信号(RST)nが0(有効)となった直後から演算処理が終了するまでの期間、及びデータ・ストローブ信号(DS)nが0(有効)となった直後から演算処理が終了するまでの期間に1(有効)となり、それ以外の期間は0(無効)となる。ビジー生成回路39の動作については、後で詳述する。
図14は、実施例2で説明したLUT符号化方法により符号化されたLUTカスケードを演算するための回路構成を示したものである。従って、終端判定値メモリ36には、実施例2で説明した終端節点を判定するための閾値が記憶されている。
尚、実施例1で説明したLUT符号化方法により符号化されたLUTカスケードを演算する場合、この構成は簡略化することができる。すなわち、終端判定値メモリ36は不要となり、終端節点判定器37のデジタル・コンパレータ40の代わりに、論理関数メモリ21の出力値が総て0か、総て1かを判定するためのNORゲート及びANDゲートを用いた回路を使用すればよい。
以上のように構成された本実施例に係るLUTカスケード論理回路について、以下その動作を説明する。
図15は図11及び図14の各端子の出力値を表すタイムチャート、図16は図14の各出力値を表すタイムチャートである。初期値として、データ・ストローブ信号(DS)nは1(無効)に設定されており、外部データ入力信号(Data input)には、最初の論理演算において使用する各入力変数の値が設定されている。また、リセット信号(RST)nには1(無効)が設定されている。以下、時間を追って、LUTカスケード論理回路の動作を説明する。
尚、図15の例においては、論理関数メモリ21の入力数は6ビット(入力変数4ビット+ページ番号2ビット)、出力数は4ビットとした。また、論理関数メモリ21には図17に示したような、4つのLUTを格納して演算を実行している。尚、図17において、「x」はドント・ケアを表す。
〔1〕リセットからリセット直後の演算処理動作
(1)時刻t0
まず、時刻t0においてリセット信号(RST)nが0(有効)とされる。リセット信号(RST)nが0となると、出力レジスタ29がリセットされ、出力レジスタ29のnビットの出力値(Data OUT)はすべて0となる。また、演算制御部30のAND回路38には、リセット信号(RST)n、アウトプット・イネーブル信号(OE)n、及びDフリップ・フロップ42の出力Qが入力されている。従って、リセット信号(RST)nが0となると、AND回路38は0を出力する。これにより、ページ・カウンタ35が出力するページ・カウント信号CNTの値が0クリアされる。そして、入力選択メモリ24、接続メモリ26、出力デコーダ27、及び終端判定値メモリ36の出力ページ数が0ページに設定される。
入力選択メモリ24は、0ページに格納されたmiビットの選択信号INSELを出力する。ここで、選択信号INSELは、入力変数選択回路23において、入力変数レジスタ22の出力のうちの一部を選択して接続回路25に出力するための選択情報を有するバイナリ信号である。また、接続メモリ26は、0ページに格納された接続回路25の接続切換信号CNSETを出力する。ここで、接続切換信号CNSETは、接続回路25の2u個の入力端子X0〜Xu-1, Y0〜Yu-1から入力される入力信号のうち、u個の出力端子W0〜Wu-1から出力する信号を選択するための選択情報を有するuビットのバイナリ信号である。また、終端判定値メモリ36は、0ページに格納されたuビットの終端判定閾値th0〜thu-1を出力する。
選択信号INSELが制定されると、その選択信号INSELに従って、入力変数選択回路23が切り換わる。しかしながら、この時点では、入力変数レジスタ22の出力は不定である。従って、入力変数選択回路23の出力値であるuビットの入力変数信号x0〜xu-1の値も不定である。また、接続切換信号CNSETが制定されると、接続回路25の接続状態が切り換わる。しかしながら、この時点では、入力変数信号x0〜xu-1の値も論理関数メモリ21の出力値(「LUT出力値」という。)d0〜du-1も不定である。従って、接続回路25のuビットの出力値(「LUT変数値」という。)a0〜au-1も不定である。更に、終端判定閾値th0〜thu-1が制定されると、デジタル・コンパレータ40の出力値(A<B)も切り換わる。しかしながら、この時点では、LUT出力値d0〜du-1は不定である。従って、デジタル・コンパレータ40の出力値(A<B)も不定である。
一方、時刻t0において、リセット信号(RST)nが0(有効)とされると、終端節点判定器37内のDフリップ・フロップ42のリセット端子(R)nの入力値が0(有効)となる。これに伴って、Dフリップ・フロップ42の出力Qは0となり、出力(Q)nは1となる。また、リセット信号(RST)nが0(有効)とされると、Tフリップ・フロップ41のセット端子(S)nの入力値が0(有効)となる。また、Tフリップ・フロップ41のリセット端子Rには、Dフリップ・フロップ42の出力Qが入力されているので、このリセット端子Rの入力値は0(無効)となる。従って、Tフリップ・フロップ41の出力(Q)nは0に設定される。
Dフリップ・フロップ42の出力(Q)nが1となると、OR回路43は、デジタル・コンパレータ40の出力値(A<B)とDフリップ・フロップ42の出力(Q)nとのOR演算を行う。従って、デジタル・コンパレータ40の出力値(A<B)が不定であるが、Dフリップ・フロップ42の出力(Q)nが1なので、OR回路43の出力値は1となる。すなわち、アウトプット・イネーブル信号(OE)nは1(無効)に設定される。これにより、出力信号(Data OUT)として不定な値が出力されることが防止される。
一方、時刻t0において、リセット信号(RST)nが0(有効)とされると、ビジー生成回路39内のDフリップ・フロップ45のリセット端子(R)nの入力値が0となる。従って、Dフリップ・フロップ45はリセットされて、出力Qは0となる。
また、ビジー生成回路39内のOR回路47には、ビジー生成回路39内のDフリップ・フロップ45の出力Qと、終端節点判定器37内のDフリップ・フロップ42の出力(Q)nとが入力される。そして、両者のOR論理を、ビジー信号BUSYとして出力する。上述のように、時刻t0で、Dフリップ・フロップ42の出力(Q)nは1に設定される。従って、OR回路47は、ビジー信号(BUSY)として1(有効)を出力する。このように、リセット直後の不定な状態において、Dフリップ・フロップ42の出力(Q)nを使ってビジー信号BUSYを1(有効)としておくことで、誤った出力値(Data OUT)が出力されることが防止される。
(2)時刻t1
時刻t1において、リセット信号(RST)nは1(無効)となる。このとき、終端節点判定器37のTフリップ・フロップ41の出力(Q)nは0に、Dフリップ・フロップ42の出力(Q)nは1に、ビジー生成回路39のDフリップ・フロップ45の出力Qは0に、それぞれラッチされた状態で保持される。従って、アウトプット・イネーブル信号(OE)nは1(無効)に、ビジー信号BUSYは1に保持される。
また、終端節点判定器37のTフリップ・フロップ41のセット端子(S)nの入力値は1(無効)となり、Tフリップ・フロップ41はトリガ入力の受け付けが可能となる。また、終端節点判定器37のDフリップ・フロップ42のリセット端子(R)nの入力値は1(無効)となり、Dフリップ・フロップ42は、クロックCLKの立ち下がりにおいてデータ入力の受け付けが可能となる。
一方、AND回路38の入力のうち、Dフリップ・フロップ42の出力Qの値は0である。従って、AND回路38の出力は0に保持される。そして、ページ・カウンタ35は、リセット状態に保持される。
(3)時刻t2
時刻t2において、データ・ストローブ信号(DS)nが0となる。このデータ・ストローブ信号(DS)nは、ビジー生成回路29内の入力回路44に入力されている。入力回路44は、データ・ストローブ信号(DS)nの反転論理と、AND回路46の出力値とのOR論理を出力する。従って、入力回路44は、Dフリップ・フロップ45の入力端子Dに対して1を出力する。
また、このデータ・ストローブ信号(DS)nの立ち下がりにおいて、入力変数レジスタ22は、外部データ入力信号(Data input)の値をラッチし、入力変数選択回路23に出力する。入力変数選択回路23は、入力変数レジスタ22から入力される入力データを、選択信号INSELの値に従って選択し、入力変数信号x0〜xu-1として接続回路25に出力する。この時点で、入力変数信号x0〜xu-1の値が確定する。接続回路25は、接続切換信号CNSETの値に従って、入力端子Y0〜Yu-1より入力される入力変数信号x0〜xu-1の値を、出力端子W0〜Wu-1からLUT変数値a0〜au-1として出力する。この時点で、LUT変数値a0〜au-1の値も確定する。
(4)時刻t3
時刻t3において、クロックCLKが0から1に変化する。この立ち上がりにおいて、ビジー生成回路39内のDフリップ・フロップ45は、入力端子Dから入力されている論理値1をラッチして、出力端子Qに出力する。このDフリップ・フロップ45の出力は、OR回路47に入力される。OR回路47のもう一方の入力には、その前から、Dフリップ・フロップ42の反転出力(Q)nとして論理値1が入力されているので、ここではOR回路47の出力は1に保持されたままで変化はしない。従って、ビジー信号BUSYは1に保持される。
(5)時刻t4
時刻t4において、データ・ストローブ信号(DS)nが0から1に変化する。終端節点判定器37内のTフリップ・フロップ41のトリガ入力端子Tには、データ・ストローブ信号(DS)nが入力されている。従って、データ・ストローブ信号(DS)nの立ち上がりにおいて、Tフリップ・フロップ41の出力(Q)nは0から1に反転する。
(6)時刻t5
時刻t5において、クロックCLKが1から0に変化する。このとき、論理関数メモリ21は、この立ち下がりにおいて、アドレス端子A0〜Au+m-1より入力されているLUT変数値a0〜au-1及びページ・カウント信号CNTの値(0)を、内部のアドレス・レジスタにラッチする。これに伴って、論理関数メモリ21は、0ページに格納された1段目のLUTを使用して、LUT変数値a0〜au-1を入力とする選択演算を行い、その結果を出力端子D0〜Du-1からLUT出力値d0〜du-1として出力する。この時点で、LUT出力値d0〜du-1の値が確定する。
また、デジタル・コンパレータ40の入力端子Aには終端判定閾値th0〜thu-1が入力されており、入力端子BにはLUT出力値d0〜du-1が入力されている。従って、LUT出力値d0〜du-1が確定すると、デジタル・コンパレータ40は、終端判定閾値th0〜thu-1とLUT出力値d0〜du-1とを比較して、LUT出力値d0〜du-1が終端判定閾値th0〜thu-1より大きい場合には1(未終了)を、それ以外の場合には0(終了)を出力する。この時点で、デジタル・コンパレータ40の出力値(A<B)が確定する。図15の例では、最初の演算の結果、まだ終端節点に達していないとして、デジタル・コンパレータ40は、1を出力している。デジタル・コンパレータ40の出力値(A<B)は、OR回路43の入力端子の一方に入力される。
一方、終端節点判定器37内のDフリップ・フロップ42は、このクロックCLKの立ち下がりにおいて、Tフリップ・フロップ41の出力(Q)nから入力されている論理値1をラッチする。そして、Dフリップ・フロップ42は、出力端子Qに論理値1を、出力端子(Q)nに論理値0を出力する。Dフリップ・フロップ42の出力(Q)nが0となると、OR回路43の入力の一方が0となる。しかしながら、OR回路43のもう一方の入力端子へ入力されているデジタル・コンパレータ40の出力値(A<B)は1なので、OR回路43の出力は1に保持される。従って、アウトプット・イネーブル信号(OE)nは1(無効)に保持される。
また、Dフリップ・フロップ42の出力端子Qは、Tフリップ・フロップ41のリセット端子Rに接続されている。従って、Tフリップ・フロップ41はリセット状態となり、以降はその出力(Q)nは1に固定される。Tフリップ・フロップ41の出力(Q)nが1に固定されると、Dフリップ・フロップ42の出力端子Qも1に固定される。その結果、時刻t5以降は、次にリセット信号(RST)nが0となるまでは、Tフリップ・フロップ41及びDフリップ・フロップ42の出力値は固定され、これらの回路は他の外部入力を受け付けなくなる。
さらに、Dフリップ・フロップ42の出力Qが1となると、アウトプット・イネーブル信号(OE)nは1、リセット信号(RST)nは1なので、AND回路38の出力が1となる。これにより、ページ・カウンタ35は、リセット状態が解除され、クロックCLKのカウントが可能な状態となる。
(7)時刻t6
時刻t6において、クロックCLKは0から1に変化する。このクロックCLKの立ち上がりにおいて、ページ・カウンタ35は、ページ・カウント信号CNTの値を1だけ増加させる。ページ・カウント信号CNTが1となると、入力選択メモリ24、接続メモリ26、出力デコーダ27、及び終端判定値メモリ36の出力ページ数が1ページに設定される。
入力選択メモリ24の出力ページ数が1ページに切り換わると、選択信号INSELの値が、2段目のLUTの入力変数を選択する信号に切り換わる。これにより、入力変数選択回路23の接続の切り換えが行われ、入力変数信号x0〜xu-1の値が変更される。
接続メモリ26の出力ページ数が1ページに切り換わると、接続切換信号CNSETの値が、2段目のLUTの入力変数及び中間変数を出力するための接続信号に切り換わる。これにより、接続回路25の接続の切り換えが行われ、LUT変数値a0〜au-1の値が変更される。
(8)時刻t7
時刻t7において、クロックCLKは1から0に変化する。このクロックCLKの立ち下がりにおいて、論理関数メモリ21は、アドレス端子A0〜Au+m-1より入力されているLUT変数値a0〜au-1及びページ・カウント信号CNTの値(1)を、内部のアドレス・レジスタにラッチする。これに伴って、論理関数メモリ21は、1ページに格納された2段目のLUTを使用して、LUT変数値a0〜au-1を入力とする選択演算を行い、その結果を出力端子D0〜Du-1からLUT出力値d0〜du-1として出力する。
また、このクロックCLKの立ち下がりにおいて、終端判定値メモリ36は、ページ・カウント信号CNTを内部のアドレス・レジスタにラッチする。これにより、終端判定値メモリ36が出力する終端判定閾値th0〜thu-1は、2段目のLUTの出力に対して終端節点に達したか否かを判定するための閾値に変更される。
以上の、時刻t6〜t7の動作は、LUTカスケード論理回路による演算が終了するまで繰り返される。尚、図15の例では、2段目のLUTによる演算が終了した時点で、終端節点に達している。そこで、次のようなアウトプット・イネーブル信号(OE)nを有効とする動作を行い演算終了処理動作に移行する。
時刻t7において、2段目のLUTに対してLUT出力値d0〜du-1が出力されると、この出力値は、終端節点判定器37のデジタル・コンパレータ40に入力される。デジタル・コンパレータ40は、2段目のLUTのLUT出力値d0〜du-1と、2段目のLUTの出力に対する終端判定閾値th0〜thu-1とを比較する。この場合、前者の値は後者の値以下であり、デジタル・コンパレータ40の出力は0に切り換わる。このデジタル・コンパレータ40の出力はOR回路43の一方の入力端子に入力される。OR回路43のもう一方の入力端子には、Dフリップ・フロップ42の出力(Q)nが入力されているが、この値は既に0にラッチされている。従って、OR回路43の出力であるアウトプット・イネーブル信号(OE)nは0(有効)に切り換わる。アウトプット・イネーブル信号(OE)nは出力レジスタ29のチップ・イネーブル端子(CE)nに入力されている。従って、アウトプット・イネーブル信号(OE)nが0(有効)となると、出力レジスタ29は、それ以降はクロックCLKの立ち上がりにおいてデータの取り込みが可能な状態となる。
尚、このとき、LUT出力値d0〜du-1は、出力デコーダ27に入力されている。出力デコーダ27は、LUT出力値d0〜du-1を、2段目のLUT出力に対応する復号テーブルによって復号して、nビットの出力変数f0〜fn-1を出力する。そして、この出力変数f0〜fn-1が、出力レジスタ29の入力端子Di0〜Din-1に入力されている。
また、アウトプット・イネーブル信号(OE)nが0となると、ビジー生成回路39のAND回路46の一方の入力値が0となる。従って、AND回路46の出力値は0となる。一方、入力回路44は、AND回路46の出力値と、データ・ストローブ信号(DS)nの否定とのOR演算を行う。この時点で、データ・ストローブ信号(DS)nは1である。従って、入力回路44は、Dフリップ・フロップ45のデータ入力端子Dに対して0を出力する。
(9)時刻t8
時刻8において、クロックCLKは0から1に変化する。このクロックCLKの立ち上がりにおいて、出力レジスタ29は、出力変数f0〜fn-1をラッチする。これにより、出力レジスタ29の出力端子Do0〜Don-1から、出力値(Data OUT)として出力変数f0〜fn-1が出力され、演算が終了する。
また、ビジー生成回路39のDフリップ・フロップ45は、クロックCLKの立ち上がりにおいて、データ入力端子Dの入力値0をラッチし、OR回路47の一方の入力端子に0を出力する。ここで、OR回路47のもう一方の入力端子には、終端節点判定器37のDフリップ・フロップ42の出力(Q)nが入力されている。この時点で、Dフリップ・フロップ42の出力(Q)nは0である。従って、OR回路47が出力するビジー信号BUSYは0に切り換わる。ビジー信号BUSYが0であることが、外部データ入力信号(Data input)に対する演算が終了することを表す。従って、ビジー信号BUSYが0のときの出力レジスタ29の出力値(Data out)が、外部データ入力信号(Data input)に対する目的関数の演算結果であることが分かる。
以上のようにして、LUTカスケードの一連の演算処理動作が行われる。
〔2〕リセット直後以外の演算処理動作
次に、リセット直後以外の演算処理動作について説明する。この場合、終端節点判定器37のTフリップ・フロップ41の出力(Q)nは1にラッチされたまま変化せず、Dフリップ・フロップ42の出力Q,(Q)nは、それぞれ、1,0にラッチされたまま変化しない。従って、動作は単純となる。
(1)時刻t9,t10
まず、時刻t9において、外部データ入力信号(Data input)が切り換わり、演算に使用する入力変数が設定される。そして、時刻t10において、データ・ストローブ信号DSが0(有効)とされる。
このデータ・ストローブ信号(DS)nの立ち下がりにおいて、入力変数レジスタ22は、新たな外部データ入力信号(Data input)の値をラッチし、入力変数選択回路23に出力する。
一方、データ・ストローブ信号(DS)nが0となると、AND回路38の出力値も0となり、ページ・カウンタ35はリセットされる。ページ・カウンタ35がリセットされると、ページ・カウント信号CNTは0となる。これにより、入力選択メモリ24、接続メモリ26、出力デコーダ27、及び終端判定値メモリ36の出力ページ数が0ページに設定される。
入力選択メモリ24は、0ページに格納されたmiビットの選択信号INSELを出力する。これにより、入力変数選択回路23が切り換えられる。入力変数選択回路23は、入力変数レジスタ22から入力される入力データを、選択信号INSELの値に従って選択し、入力変数信号x0〜xu-1として接続回路25に出力する。この時点で、入力変数信号x0〜xu-1の値が確定する。
また、接続メモリ26は、0ページに格納された接続回路25の接続切換信号CNSETを出力する。これにより、接続回路25が切り換えられる。接続回路25は、接続切換信号CNSETの値に従って、入力端子Y0〜Yu-1より入力される入力変数信号x0〜xu-1の値(1段目のLUTに入力するための入力変数値)を、出力端子W0〜Wu-1からLUT変数値a0〜au-1として出力する。この時点で、LUT変数値a0〜au-1の値も確定する。
また、終端判定値メモリ36は、0ページに格納されたuビットの終端判定閾値th0〜thu-1を出力する。
一方、ビジー生成回路39の入力回路44は、データ・ストローブ信号(DS)nの否定とAND回路46の出力とのOR論理を演算する。この時点では、データ・ストローブ信号(DS)nが0なので、Dフリップ・フロップ45の入力端子Dに対して1を出力する。
(2)時刻t11
時刻t11において、クロックCLKは0から1に変化する。このクロックCLKの立ち上がりにおいて、ビジー生成回路39のDフリップ・フロップ45は、入力端子Dの入力値1をラッチして、出力端子Qから出力する。このDフリップ・フロップ45の出力は、OR回路47に入力される。そして、OR回路47の出力であるビジー信号BUSYは1に反転する。
(3)時刻t12
時刻t12において、クロックCLKは1から0に変化する。このクロックCLKの立ち下がりにおいて、論理関数メモリ21は、アドレス端子A0〜Au+m-1より入力されているLUT変数値a0〜au-1及びページ・カウント信号CNTの値(1)を、内部のアドレス・レジスタにラッチする。これに伴って、論理関数メモリ21は、1ページに格納された1段目のLUTを使用して、LUT変数値a0〜au-1を入力とする選択演算を行い、その結果を出力端子D0〜Du-1からLUT出力値d0〜du-1として出力する。
また、このクロックCLKの立ち下がりにおいて、終端判定値メモリ36は、ページ・カウント信号CNTを内部のアドレス・レジスタにラッチする。これにより、終端判定値メモリ36が出力する終端判定閾値th0〜thu-1は、1段目のLUTの出力に対して終端節点に達したか否かを判定するための閾値に変更される。
LUT出力値d0〜du-1と終端判定閾値th0〜thu-1は、終端節点判定器37のデジタル・コンパレータ40に入力され、終端節点に達したか否かが判定される。そして、LUT出力値d0〜du-1が終端判定閾値th0〜thu-1よりも大きい場合には1が、それ以外の場合には0が、アウトプット・イネーブル信号(OE)nとして出力される。
以下、2段目以降のLUTの演算処理動作は、リセット直後の演算処理動作の場合と同様である。尚、図15においては、1段目のLUTの演算が終了した時点で、既に終端節点に達し、アウトプット・イネーブル信号(OE)nとして0が出力されている。従って、ページ・カウンタ35はリセット状態が維持され、ページ・カウント信号CNTは0に維持される。そして、時刻t13において、データ・ストローブ信号(DS)nが1に反転した後に、最初にクロックCLKが立ち上がった時点(時刻t14)で、出力レジスタ29が出力変数f0〜fn-1をラッチするとともに、ビジー生成回路39のDフリップ・フロップ45が0をラッチしてビジー信号BUSYが0となる。これにより、演算処理が終了する。
以上のように、終端節点判定器37において、LUTカスケードの中間変数から終端節点に達しているか否かを判定して、終端節点に達した場合には、後段のLUTによる演算を打ち切って、出力レジスタ29から出力変数を出力させることで、LUTカスケードによる演算速度を向上させることが可能となる。
本発明の実施例1に係るLUT符号化装置の構成を表すブロック図である。 本発明の実施例1に係るLUT符号化方法を表すフローチャートである。 BDDの例を表す図である。 図3のBDDを既約化したROBDDを表す図である。 ROBDDの分割を説明する図である。 図5のROBDDから生成されるLUTカスケードを表す図である。 本発明の実施例2に係るLUT符号化装置の構成を表すブロック図である。 本発明の実施例2に係るLUT符号化方法を表すフローチャートである。 4ビット比較器のMTBDDを表す図である。 図9のMTBDDから生成されるLUTカスケードを表す図である。 本発明の実施例3に係るLUTカスケード論理回路の構成を表すブロック図である。 図11の入力変数選択回路の構成の一例を示す図である。 図11の接続回路の構成の一例を示す図である。 図11の演算制御部の構成を表すブロック図である。 図11及び図14の各端子の出力値を表すタイムチャートである。 図14の各出力値を表すタイムチャートである。 図15の演算において使用したLUTである。 論理関数の二分決定グラフ(BDD)を表す図である。 LUTカスケード論理回路の構成を表す図である。
符号の説明
1 論理仕様記憶手段
2 ROBDD生成手段
3 ROBDD記憶手段
4,11 BDD分割手段
5,12 符号化手段
6 LUT記憶手段
9 MTBDD生成手段
10 MTBDD記憶手段
21 論理関数メモリ
22 入力変数レジスタ
23 入力変数選択回路
23−0〜23−3 バレルシフタ
24 入力選択メモリ
25 接続回路
25a 切換回路
26 接続メモリ
27 出力デコーダ
29 出力レジスタ
30 演算制御部
35 ページ・カウンタ
36 終端判定値メモリ
37 終端節点判定器
38 AND回路
39 ビジー生成回路
40 デジタル・コンパレータ
41 Tフリップ・フロップ
42 Dフリップ・フロップ
43 OR回路
44 入力回路
45 Dフリップ・フロップ
46 AND回路
47 OR回路

Claims (6)

  1. 演算を行う対象となる目的論理関数を表す二分決定グラフを、適所に設定される切断線で分割し、その分割で得られる各部分グラフを真理値表で表したものであるLUTが、直列に順序づけて接続されており、最前段のLUT以外のLUTの入力の一部又は全部は、当該LUTの前段のLUTの出力が入力される構成からなるLUTカスケードにおいて、コンピュータにより前記各LUTの出力値に符号の割り当てを行うLUT符号化方法であって、
    前記目的論理関数の論理仕様が記憶された論理仕様記憶手段から、論理仕様を読み出し、該論理仕様に基づいて二分決定グラフ(以下「BDD」という。)を生成し、該BDDをBDD記憶手段に格納する第1ステップと、
    前記BDD記憶手段に記憶された前記BDDを分割する切断線をs−1本(s≧2)設定し、該BDDをs個の部分グラフに分割する第2ステップと、
    s個の前記各部分グラフのそれぞれについて、該部分グラフの各入力値に対する出力に符号を割り当てることで各入力値とそれに対する出力値の関係を定めてLUTを生成し、該LUTをLUT記憶手段に格納する第3ステップと、
    を備え、
    前記第3ステップにおいては、0番目からs−1番目の前記各部分グラフについて、
    a.i番目(i=0,…,s−1)の前記部分グラフの出力のうち、終端節点に向かう枝に対応する出力に対しては、その終端節点の値に対応して決められた特定の符号をi番目の前記LUTの出力値として割り当て、
    b.非終端節点に向かう枝に対応する出力に対しては、前記特定の符号以外の符号をi番目の前記LUTの出力値として割り当てる
    という処理を順次実行することで、該部分グラフの各入力値に対する出力に符号の割り当てを行うことを特徴とするLUT符号化方法。
  2. 前記LUTカスケードは、最終段のLUTが1ビットの出力変数を出力するLUTカスケードであって、
    前記第3ステップにおいては、0番目からs−1番目の前記各部分グラフについて、
    a’.i番目(i=0,…,s−2)の前記部分グラフの出力のうち、終端節点に向かう枝に対応する出力に対しては、
    その終端節点の値が0の場合には前記LUTの出力値として全ビットが0又は全ビットが1の符号を前記LUTの出力値として割り当て、
    その終端節点の値が1の場合には前記LUTの出力値として全ビットが1又は全ビットが0の符号をi番目の前記LUTの出力値として割り当て、
    b’.非終端節点に向かう枝に対応する出力に対しては、前記全ビットが0及び全ビットが1以外の符号をi番目の前記LUTの出力値として割り当てる
    という処理を順次実行することで、該部分グラフの各入力値に対する出力に符号の割り当てを行うこと
    を特徴とする請求項1記載のLUT符号化方法。
  3. 前記LUTカスケードは、最終段のLUTが2ビット以上の出力変数を出力するLUTカスケードであって、
    前記第3ステップにおいては、0番目からs−1番目の前記各部分グラフについて、
    a”.i番目(i=0,…,s−2)の前記部分グラフの出力のうち、終端節点に向かう枝に対応する出力に対しては、i番目のLUTに対して決められている所定の閾値以下となるような前記特定の符号を、該i番目のLUTの出力値として割り当て、
    b”.非終端節点に向かう枝に対応する出力に対しては、前記所定の閾値より大きい符号をi番目の前記LUTの出力値として割り当てる
    という処理、または、
    a”.i番目(i=0,…,s−2)の前記部分グラフの出力のうち、終端節点に向かう枝に対応する出力に対しては、i番目のLUTに対して決められている所定の閾値以上となるような前記特定の符号を、該i番目のLUTの出力値として割り当て、
    b”.非終端節点に向かう枝に対応する出力に対しては、前記所定の閾値より小さい符号をi番目の前記LUTの出力値として割り当てる
    という処理の何れか一方を順次実行することで、該部分グラフの各入力値に対する出力に符号の割り当てを行うことを特徴とする請求項1記載のLUT符号化方法。
  4. 演算を行う対象となる目的論理関数を表す二分決定グラフを適所に設定されるs−1本(s≧2)の切断線で分割し、その分割で得られるs個の各部分グラフを真理値表により表したものであるs個のLUTが格納された論理関数メモリと、
    最前段のLUT以外のLUTの入力の一部又は全部を、当該LUTの前段のLUTの出力に接続する接続回路と、
    を備えたLUTカスケード論理回路であって、
    前記論理関数メモリに格納されたs個の前記LUTのうち、最終段以外の少なくとも一つの前記LUTは、前記二分決定グラフの終端節点に対応する出力値を有しており、かつ終端節点に対応する前記LUTの出力値は、その終端節点の値に対応して決められた特定の符号割り当てられており
    最終段以外の前記LUTの出力値が前記特定の符号であった場合、当該特定の符号に対応する節点値を出力する演算制御手段を備えていることを特徴とするLUTカスケード論理回路。
  5. 前記論理関数メモリに格納された最終段のLUTは、1ビットの出力変数を出力するLUTであって、
    前記演算制御手段は、
    前記LUTの出力値の全ビットが0であることを検出する終端判定器と、
    前記終端判定器が、最終段以外の前記LUTの出力値において、全ビットが0であることを検出したときに、その出力値に応じて節点値を出力する出力回路と、を備え、
    又は、
    前記LUTの出力値の全ビットが1であることを検出する終端判定器と、
    前記終端判定器が、最終段以外の前記LUTの出力値において、全ビットが1であることを検出したときに、その出力値に応じて節点値を出力する出力回路と、
    を備えていることを特徴とする請求項記載のLUTカスケード論理回路。
  6. 前記論理関数メモリに格納された最終段のLUTは、2ビット以上の出力変数を出力するLUTであって、
    前記演算制御手段は、
    最終段以外の各段の前記LUTに対する終端判定値が格納された終端判定値メモリと、
    最終段以外の各段の前記LUTの出力値が、その段に対する前記終端判定値以下又は以上であることを検出する終端判定器と、
    前記終端判定器が、最終段以外の前記LUTの出力値が、その段に対する前記終端判定値以下であることを検出したときに、その出力値は前記特定の符号であると判定し、その出力値に応じて節点値を出力する、
    又は、前記終端判定器が、最終段以外の前記LUTの出力値が、その段に対する前記終端判定値以上であることを検出したときに、その出力値は前記特定の符号であると判定し、その出力値に応じて節点値を出力する
    出力回路と、
    を備えていることを特徴とする請求項記載のLUTカスケード論理回路。
JP2003401213A 2003-12-01 2003-12-01 Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路 Expired - Fee Related JP4011015B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003401213A JP4011015B2 (ja) 2003-12-01 2003-12-01 Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003401213A JP4011015B2 (ja) 2003-12-01 2003-12-01 Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路

Publications (2)

Publication Number Publication Date
JP2005165502A JP2005165502A (ja) 2005-06-23
JP4011015B2 true JP4011015B2 (ja) 2007-11-21

Family

ID=34725215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003401213A Expired - Fee Related JP4011015B2 (ja) 2003-12-01 2003-12-01 Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路

Country Status (1)

Country Link
JP (1) JP4011015B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101445663B1 (ko) 2007-11-16 2014-09-30 삼성전자주식회사 룩-업 테이블 값들을 압축 및 복원하는 방법
JP5382503B2 (ja) * 2009-03-03 2014-01-08 国立大学法人九州工業大学 ブランチング・プログラム・マシン及び並列プロセッサ
JP6250548B2 (ja) * 2012-11-20 2017-12-20 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法
EP4235400B1 (en) * 2020-01-28 2024-07-24 Quside Technologies S.L. Computer-implemented method for deciding whether a random number is larger or smaller than a given threshold

Also Published As

Publication number Publication date
JP2005165502A (ja) 2005-06-23

Similar Documents

Publication Publication Date Title
JP3524057B2 (ja) ナンバの集合内で最小/最大値を探索するための方法及び回路
US9111615B1 (en) RAM-based ternary content addressable memory
US9240237B2 (en) Semiconductor device and method of writing/reading entry address into/from semiconductor device
JP2018142188A (ja) 解析プログラム、解析方法および解析装置
US5299145A (en) Adder for reducing carry processing
US7185041B1 (en) Circuit and method for high-speed execution of modulo division
JP4011015B2 (ja) Lut符号化方法及びlut符号化装置並びにlutカスケード論理回路
WO2022247193A1 (zh) 用于数据处理的装置、方法、芯片、计算机设备及介质
JP3275224B2 (ja) ディジタル信号処理システム
JP2022510442A (ja) ソート方法、装置、電子デバイス及びコンピュータプログラム
US20210082082A1 (en) Data processing method and processing circuit
JPH0666050B2 (ja) ソート処理方法
JPH1055352A (ja) 浮動小数点数累積加算装置
US5945657A (en) Constant divider
WO2024066561A1 (zh) 查找空闲存储的装置、方法及芯片
WO2015011907A1 (ja) k近傍法連想メモリ
CN105432018A (zh) 逻辑运算装置
JPH07111459A (ja) データ圧縮方法
US11700004B2 (en) Direct bi-directional gray code counter
JP5072558B2 (ja) データ処理装置
JP3346204B2 (ja) 可変長符号復号装置
KR100846485B1 (ko) 하다마드 트랜스폼 방법 및 장치
JP6687837B2 (ja) データ記録装置及びデータ記録方法
CN117713800A (zh) 多位宽二进制多路选择器及降低其扇出的方法和系统
JP2002236609A (ja) アドレス生成回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060904

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070608

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070806

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: 20070830

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070904

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100914

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110914

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120914

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130914

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees