JP2004220377A - Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it - Google Patents
Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it Download PDFInfo
- Publication number
- JP2004220377A JP2004220377A JP2003007652A JP2003007652A JP2004220377A JP 2004220377 A JP2004220377 A JP 2004220377A JP 2003007652 A JP2003007652 A JP 2003007652A JP 2003007652 A JP2003007652 A JP 2003007652A JP 2004220377 A JP2004220377 A JP 2004220377A
- Authority
- JP
- Japan
- Prior art keywords
- reconfigurable circuit
- circuit
- multiplication
- logic circuits
- data
- 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.)
- Pending
Links
Images
Landscapes
- Logic Circuits (AREA)
- Advance Control (AREA)
- Microcomputers (AREA)
- Semiconductor Integrated Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
Description
【0001】
【発明の属する技術分野】
この発明は、集積回路技術に関し、特にリコンフィギュラブル回路、およびそれを利用可能な集積回路装置とデータ変換装置に関する。
【0002】
【従来の技術】
最近、携帯電話、GPS、VICSなど、無線通信が広く普及し、無線機の種類も増えている。これらの無線機またはその機能をすべてハードウエアで実装すると、コストや実装面積が嵩む。そこで、ハードウエアとしては汎用的な能力を有する回路を搭載しておき、それにロードするソフトウエアを切り替えることで多様な機能を実現する「ソフトウエア無線機」という考え方がある。
【0003】
ソフトウエア無線機を実現する回路として、FPGA(Field Programmable Gate Array)やDSP(Digital Signal Processor)がある。特許文献1には、FPGAを動的に再構成することで、回路構成の再利用を図る方法が提案されている。動的変更が可能なタイプの回路を以下リコンフィギュラブル回路ともいう。
【0004】
【特許文献1】
特開平10−256383号公報 (全文、第1−4図)
【0005】
【発明が解決しようとする課題】
FPGAをベースとすれば、論理回路の真理値表を格納するためのルックアップテーブル(LUT)を使っていろいろな論理を実現できるが、一般には論理素子の単位が小さく、所期の機能の実現に多くのLUTと配線リソースが必要となる。その結果、通常のLSIと比べると、一般に実装面積が大きく、コスト高になる。また、回路を書き換えるためのプログラム時間がある程度長く、リアルタイムの機能切替に適さないことが多い。
【0006】
本発明はこうした現状に鑑みてなされたものであり、その目的は、コスト面、書換速度面などにおいて有利なリコンフィギュラブル回路とそれを用いた集積回路装置を提供することにある。
【0007】
【課題を解決するための手段】
本発明のある態様は、リコンフィギュラブル回路に関する。この回路は、それぞれが複数の算術論理機能を選択的に実行可能なALUその他の論理回路のアレイと、それら論理回路の間の接続関係を保持する接続部とを備え、論理回路のいずれかに、乗算器に替えてビットシフタを実装したものである。このため、乗算器に必要な回路部分を削減でき、また処理時間を削減できる。乗算自体はビットシフト演算で代替する。接続部は、論理回路の出力を他の論理回路の入力に接続するためのスイッチおよび接続用結線を有してもよく、その場合、設定により特定の接続関係にある結線を有効にすることができる。
【0008】
この構成において、ビットシフタによるシフト数を固定としてもよい。バレルシフタのように、シフト数を可変にすると、回路規模が大きくなるので、その事態を回避する趣旨である。
【0009】
さらに、論理回路のいずれかに、減算器を実装してもよい。その場合、乗算をビットシフトだけでなく、減算器も利用して実現でき、所望の機能の実現に要する回路規模を低減しうる。
【0010】
また、所望の乗算をミニマル表現したうえでこの乗算に相当する演算を、前述のビットシフタを用いることによりアレイ内に構成してもよい。ミニマル表現であるから、当然それを実現する回路規模、具体的には、必要な論理回路の数を減らすことができる。
【0011】
本発明の別の態様は、集積回路装置に関する。この装置は、それぞれが複数の算術論理機能を選択的に実行可能な論理回路のアレイと、それら論理回路の間の接続関係を保持する接続部とを備えたリコンフィギュラブル回路と、このリコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、この記憶部から設定データを読み込み、リコンフィギュラブル回路にロードする設定部とを含み、リコンフィギュラブル回路において、論理回路のいずれかに、乗算器に替えてビットシフタを実装したものである。この構成により、前述のリコンフィギュラブル回路に関するメリットを集積回路装置全体で享有でき、当該装置のコストダウンや回路規模の削減が実現する。
【0012】
なお、前述の設定データは、実行すべき乗算のデータフローを表すグラフを乗算に替えてビットシフトを用いる表現に対応するデータであってもよい。この場合、乗算をビットシフトで実現できる。
【0013】
本発明のさらに別の態様は、リコンフィギュラブル回路に所期の処理を実行せしめる設定データを生成する装置であって、リコンフィギュラブル回路において実行すべき乗算を、乗算を含まず、かつビットシフトを含む形式に変換するコンパイル部を備える。このデータ変換装置は、リコンフィギュラブル回路が搭載される装置にオンボードで搭載されてもよいし、逆に、リコンフィギュラブル回路にロードすべき設定データをオフボードで生成するものであってもよい。なお、コンパイル部は、ミニマル表現となるよう設定データを生成してもよい。このデータ変換装置は、生成した設定データをリコンフィギュラブル回路へロードする設定部またはその制御部を備えてもよい。
【0014】
以上いずれの場合も、論理回路のアレイは、横方向に並べられた論理回路の列が縦方向に複数段組み合わされた配列であり、横方向の論理回路間の接続用結線はなく、各段の論理回路列の出力と直後の段の論理回路列の入力との間に接続用結線が設けられた構造であってもよい。
【0015】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラムとして表現したものもまた、本発明の態様として有効である。
【0016】
【発明の実施の形態】
実施の形態は、ALU(Arithmetic Logic Unit)アレイを基本素子とするリコンフィギュラブル回路に関する。このタイプの回路は、ひとつのALUがひとつの論理単位を構成し、この論理単位が複数の算術演算を選択的に実行できるため、回路構成が簡単であり、後述のデータフローグラフを直接的にマッピング可能なため、コンフィグレーションにかかる時間も節約できる。マッピングとは、リコンフィギュラブル回路で実行すべきプログラムの命令セットと、それを実現するためにリコンフィギュラブル回路内で必要な接続データセットをALUアレイにロードして設定することをいう。
【0017】
実施の形態に特徴的なのは、ALUに内蔵すべき算術演算回路の中から、あえて乗算器を外し、乗算をシフト演算で代用せしめたことにある。一般に、ALUにおいて乗算器の占める面積は非常に大きく、すべてのALUに乗算器を内蔵するとすれば、リコンフィギュラブル回路全体の面積が非常に大きくなり、コスト面と機能面で有利ではない。また、プログラムをロードしたとき、利用されない乗算器が多数存在するであろうから、回路利用効率面でも改善の余地がある。さらに、乗算は処理時間が長く、乗算器を経由するパスによって処理が律速され、回路の全体設計が難しくなる。処理負荷を平滑化する意味でも、シフト演算は有利である。ただし、シフト演算でも、バレルシフタのように可変長のビット対応であれば、やはり回路規模が大きくなりがちである。したがって、実施の形態では、シフト数を1または2に限る。
【0018】
乗算をシフトで代用できるためには、乗数または被乗数の少なくとも一方が定数でなければならない。そこで実施の形態では、そのような乗算を後述のコンパイル部で検出し、これを乗算器のないALUへ割り当てるものとする。変数どおしの乗算は乗算器のあるALUへ割り当てればよく、適宜、2種類のALUを組み合わせればよい。以下、乗算器のないALUとそれに対するプログラムのロードを中心に述べる。
【0019】
図1は、実施の形態に係る集積回路装置10および外部制御装置24の構成図である。外部制御装置24は、集積回路装置10の回路構成を設定するためのデータを作成して、集積回路装置10に供給するものであり、とくにコンパイル部20、またはそれを含む外部制御装置24全体は、設定データを作成するデータ変換装置として把握することができる。
【0020】
集積回路装置10は、リコンフィギュラブル回路12と、リコンフィギュラブル回路12を再構成するための設定データ17を格納する設定データ記憶部16と、リコンフィギュラブル回路12に設定データ17をロードする設定部14とを含む。外部制御装置24は、制御部18と、コンパイル部20と、プログラム記憶部22とを含む。
【0021】
外部制御装置24のプログラム記憶部22は、集積回路装置10が実行すべき各種のプログラム19を保持する。コンパイル部20はプログラム記憶部22に格納されたプログラム19をコンパイルして、データフローグラフ21に変換してプログラム記憶部22に格納する。データフローグラフ21は、後述のように、入力変数および定数の演算の流れをグラフ構造で示したものである。
【0022】
データフローグラフ21は、リコンフィギュラブル回路12の回路構成にマッピングするための設定データ17に変換され、制御部18を介して、集積回路装置10の設定部14に供給され、設定データ記憶部16に格納される。設定データ記憶部16には、処理すべき演算のデータフローグラフ21に対応して複数の設定データ17があらかじめ格納される。設定部14は、設定データ記憶部16から適宜設定データ17を読み出し、リコンフィギュラブル回路12にロードすることで、リコンフィギュラブル回路12を再構成する。再構成されたリコンフィギュラブル回路12は、ロードされた設定データ17にもとづいた演算を行う。
【0023】
図2は、リコンフィギュラブル回路12の構成図である。リコンフィギュラブル回路12は、設定データをロードするためのデータ入力部40と、複数のALUの列が複数段にわたって配列されたALUアレイ42を含み、アレイの各段に設けられた接続スイッチ44と接続結線30によって、前段のALU列の出力と後段のALU列の入力が設定により任意に接続可能となっている。接続スイッチ44によって接続結線30が選択されるが、以降、「接続結線30による設定」とも略記する。各ALUは、上述のごとく、少なくとも加算器、減算器、シフタを内蔵しているが、乗算器は有さない。シフタは1ビットまたは2ビットシフトに限定した構成とし、回路規模を縮小している。
【0024】
同図のように、横方向にはY個、縦方向にはX個のALUが配置されており、第1段のALU11、ALU12、・・・、ALU1Yには、入力変数や定数が入力され、設定により所定の演算がなされる。演算結果の出力は、第1段の接続結線30に設定された接続にしたがって、第2段のALU21、ALU22、・・・、ALU2Yに入力される。第1段の接続結線30は、第1段のALU配列の出力と第2段のALU配列の入力の間の任意の接続関係を実現できるように結線が構成されており、設定により特定の結線が有効となる。以下、第(X−1)段の接続結線30まで、同様の構成であり、最終段である第X段のALU列は演算の最終結果を出力する。なお、各ALUは、後述のmov演算を実行するために、入力をそのまま出力するパス(図示せず)を有する。
【0025】
データフローグラフ21をリコンフィギュラブル回路12にマッピングするための設定データ17には、各ALUの演算を選択する情報、ALU列間の接続結線を選択する情報、第1段のALU列に入力される変数と定数の値が含まれる。
【0026】
いま、以下の実行対象プログラムを考える。
図3は上記プログラムに対応するデータフローグラフを示す。図中、定数、変数および演算子は丸で囲まれ、mulは乗算、addは加算を示す。これをそのままリコンフィギュラブル回路12へマッピングすると、図4の状態になる。しかし、本実施の形態では乗算器がないため、乗算をシフタで実現する。
【0027】
x=2×a、y=5×bは、それぞれビットシフトを用いると、
x=a<<1、y=b+(b<<2)
と表記できる。ここで、「<<」は左ビットシフトである。図5はこの表記に対応するデータフローグラフ、図6は図5をもとにマッピングされたリコンフィギュラブル回路12を示す。同図において、movは前述のNOP演算である。データフローグラフから実際に回路をマッピングする方法は以下のとおりである。
【0028】
1.データフローグラフの入力端に存在する変数および定数はデータ入力部40へアサインする。
2.データフローグラフで入力端から数えてi番目の→の先にある演算は、第i+1段目のALUにアサインする。
3.2.の例外として、ある演算に到達する複数のパスにおける→の数がi、jのごとく違う場合、多いほうに合わせる。いま、i<jのとき、当該演算を第j+1段目にアサインする。
4.3.のとき、段数を合わせるために、iの側のパスに、NOPに相当するmov演算を(j−i)個挿入する。
【0029】
このように、本実施の形態では、まず定数×変数の形の乗算をビットシフトと加算へ変換し、これをデータフローグラフへ変換してリコンフィギュラブル回路12へマッピングする。これにより、乗算器が存在しなくても処理時間の短いシフタで乗算が実行できる。以下、データフローグラフから回路をマッピングする方法は同様なので、以降、データフローグラフだけで説明をする。
【0030】
つぎに、以下のプログラムの実行を考える。
8×a=a<<3であるから、これをデータフローグラフに表すと図7となる。しかし、3ビットシフトは本実施の形態ではひとつのALUでは実行できないため、図7のデータフローグラフを図8のごとく変換し、2ビット以下のシフト演算へ分解する。この配慮により、ALUに実装すべき命令数が減る意味でも回路規模の縮小効果がある。
【0031】
つづいて、以下のプログラムの実行を考える。
10×a=(a<<1)+(a<<1<<2)であり、そのデータフローグラフは図9となる。ここで、太線で囲んだふたつの演算50は、入力aに対して同じ回数だけ左シフトを行うことを示しているので、図10のようにマージし、処理を簡素化する。
【0032】
つづいて、以下のプログラムの実行を考える。
15×a=(a<<3)+(a<<2)+(a<<1)+aであり、そのデータフローグラフは図11となる。しかしここで、二進数表現をしたときに最もゼロが多くなる、いわゆるミニマル表現をすると、15は以下のようになる。
15=(1111)2=(1000N1)2
ただし、「N1」は−1を表す。したがって、上記プログラムをビットシフトで示すと、以下のとおりである。
15×a=(a<<4)−a
図12はこの式に対応するデータフローグラフであり、subは減算を示す。このように、ミニマル表現と必要に応じて減算器を利用することにより、処理をさらに簡素化することができ、利用すべきALUを減らすことができる。
【0033】
図13は、以上の処理を一般化し、定数×変数の乗算をシフタによるミニマル表現の処理へ変換する手順を示す。処理は4つの段階に大別され、図13は主に第1段階の処理を示す。
【0034】
[第1段階] 乗算→1ビットシフタ変換
乗算ノードを1ビットシフタ、加算および符号逆転ノードへ変換する。符号逆転ノードは一時的に使用するが、第4段階で減算ノードへ変換される。一般に整数はA=s・ΣN k−1ak・2kと表される。ただし、s=1または−1、ak=0のたは1である。ここでは、初期値としてA≠0とする。以下の手順において、とくに指示がなければ直下のステップへ進む。図13では、StepをSと略記している。
【0035】
Step1 以下の変数に初期値を設定する。
c←0、cnt←0、n←0、flag←0、ノード配列:NL←空
cは処理中利用するキャリービット、cntはカウンタ、NLはノードに演算を割り当てるための配列、nはNLへのポインタ、flagは状態フラグである。
【0036】
Step2 A=0かつc=0ならば、処理を終了する。
Step3 a0=cならば、Step11へ進む。
Step4 cnt≠0ならばStep6へ進む。
Step5 NL[n]に入力が変数のmovノードを作成する。また、n←n+1としてStep7へ進む。
【0037】
Step6 NL[n]〜NL[n+cnt−1]にcnt個の連続した1ビットシフタノードを作成する。NL[n]の入力は変数、それ以外のノードの入力は、前のシフタノードの出力とする。また、n←n+cntとする。
Step7 a1=0かつS=−1、または、a1≠0かつS=1ならば、NL[n]に符号逆転ノードを作成し、n←n+1とする。
Step8 flag=0ならばflag←1とし、Step10へ進む。
Step9 NL[n]に、NL[nold−1]の出力とNL[n−1]の出力を入力とする加算ノードを作成する。また、n←n+1とする。
【0038】
Step10 nold←nとする。
Step11 a0+a1+c≧2ならばc←1とし、そうでなければ、c←0とする。
Step12 a0←a1、a1←a2、・・・、aN−1←aN、aN←0とし、cnt←cnt+1とする。
Step13 Step2へ戻る。
【0039】
[第2段階] 同入力、同命令ノードのマージ
n個のノード配列NLに対して、入力が同じ値でかつ、命令が同じノードが2つ以上あれば、1つにまとめる。
【0040】
[第3段階] ビットシフタのマージ
連続する1ビットシフタを固定長nビットシフタ(n≧2)へまとめる。
【0041】
[第4段階] 減算ノードへのマージ
符号逆転ノードから加算ノードへ接続する処理を減算ノードへまとめる。加算式を式(1)のように表す。
【0042】
output = input1 + input2 (1)
i)加算ノードへの入力のうちの1つが符号逆転ノードの場合
input1 = −input1’
ここで、式(1)は
式(2)より、減算ノードへ変換を行う。
ii)加算ノードへの入力が共に符号逆転ノードの場合
input1 = −input1’
input2 = −input2’
ここで、式(1)は
式(3)より、加算ノードと符号逆転ノードへ変換を行う。
【0043】
以下に、上記の手順による乗算からシフタへの変換の実例を示す。ここでは、a×23を想定する。23は2進数表現で(10111)2である。以下、煩瑣を避け、nの値に応じた配列NLの状態を示すに留める。
【0044】
[第1段階] 乗算→1ビットシフタ変換
n=0でスタートし、movノードが作成される(S5)。図14はNL[0]を示す。この後、nがインクリメントされる。
n←1の後、符号逆転(neg)ノードが作成される(S7)。図15はNL[1]が追加された状態を示す。この後、
n←2、flag←1、Nold←2、c←1、A←(1011)2、cnt←1
となり、シフタノードが作成される(S6)。つぎのループで、
n←3、c←1、A←(101)2、cnt←2
となり、同様にシフタノードが作成される(S6)。さらにつぎのループで、
n←4、c←1、A←(10)2、cnt←3
となり、同様にシフタノードが作成される(S6)。シフタは1ビットシフタである。この時点で配列は図16の状態になる。
【0045】
n←5とされた後、符号逆転(neg)ノードが作成される(S7)。この時点で、配列は図17の状態になる。
n←6の後、addノードが作成される(S9)。配列は図18になる。
n←7の後、Nold←7、c←1、A←(1)2、cnt←4となり、シフタノードが作成される(S6)。
n←8の後、c←1、A←(0)2、cnt←5となり、シフタノードが作成される(S6)。以下、n=9,10,11でも同様にシフタノードが作成される(S6)。これで配列は図19の状態になる。
【0046】
n←12の後、addノードが作成される(S9)。これで配列は図20の状態になる。この後、n←13、Nold←13、c←0、A←(0)2、cnt←6となり、処理を終える。
【0047】
[第2段階] 同入力、同命令ノードのマージ
図20において、NL[2]とNL[7]、すなわち、n=2と7の行が同入力で同命令である。この状態を検出し、マージすると、図21となる。さらに図21においてNL[3]とNL[8]が同入力で同命令であるのでマージすると図22が得られる。同様に繰り返しマージすると図23の状態が得られる。以上のマージ処理もコンパイル部20でなされる。
【0048】
[第3段階] ビットシフタのマージ
図23より、連続する1ビットシフタを検出し、2ビットシフタへ置き換える。但し、シフタ2は2ビットシフタを表す。この結果、図24の状態になる。
【0049】
[第4段階] 減算ノードへのマージ
図24において、NL[6]=NL[1]+NL[5] =−NL[0]−NL[4]=−(NL[0]+NL[4])であるから、add命令→neg命令へ変換すると図25の状態となる。ここでは、neg命令のあるn=1と5の行、すなわちNL[1]とNL[5]を消去するために、これらを入力とする行、すなわちNL[6]を検出し、つづいてNL[1]とNL[5]をそれぞれそれらの入力へさかのぼり、neg命令を消す。
【0050】
この後、まだneg命令がNL[7]にあるため、それを入力とするNL[12]を検出し、NL[7]を同様に入力へたどってNL[6]で表す。すなわち、NL[12]=NL[7]+NL[10]=−NL[6]+NL[10]=NL[10]−NL[6]であるから、neg命令は結果として減算(sub)命令に変換でき、図26の状態になる。以上で処理を完了し、結果として、a×23は図27に示すデータフローグラフとなる。あとは、このデータフローグラフを回路へマッピングすればよい。
【0051】
以上述べたリコンフィギュラブル回路12では、基本セルとして高性能の演算能力のあるALUを用いることができ、その際コンフィグレーションは1クロックの設定動作で可能であり、設定データ17のロードにより、瞬時に回路を再構成することができる。
【0052】
本実施の形態では、ALUは乗算器を持たないとしたが、当然、乗算器を備えたALUと混在させてリコンフィギュラブル回路12を構成してもよい。その場合、変数×変数タイプの乗算は乗算器で実行し、定数×変数タイプの乗算をシフト演算で実行すればよい。
【0053】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素や各処理プロセスの組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【0054】
【発明の効果】
本発明によれば、性能面で改善されたリコンフィギュラブル回路とそれを搭載する集積回路装置、およびリコンフィギュラブル回路にデータを設定するためのデータ変換装置を提供できる。
【図面の簡単な説明】
【図1】実施の形態に係る集積回路装置および外部制御装置の構成図である。
【図2】図1のリコンフィギュラブル回路の構成図である。
【図3】あるプログラムの処理を表したデータフローグラフを示す図である。
【図4】図3のデータフローグラフに対応してマッピングされたリコンフィギュラブル回路の構成図である。
【図5】別のプログラムの処理を表したデータフローグラフを示す図である。
【図6】図5のデータフローグラフに対応してマッピングされたリコンフィギュラブル回路の構成図である。
【図7】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図8】図7のデータフローグラフを一部書き換えたデータフローグラフを示す図である。
【図9】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図10】図9のデータフローグラフの重複処理を統合して得られるデータフローグラフを示す図である。
【図11】さらに別のプログラムの処理を表したデータフローグラフを示す図である。
【図12】図11のデータフローグラフをミニマル表現に変更して得られるデータフローグラフを示す図である。
【図13】データフローグラフをミニマル表現に変換するための処理を示すフローチャートである。
【図14】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図15】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図16】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図17】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図18】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図19】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図20】図13のフローチャートによって、ALUに割り当てるべき演算を示す配列が形成される途中状態を示す図である。
【図21】図20において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図22】図21において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図23】図22において、同入力、同命令ノードをマージして得られる配列を示す図である。
【図24】図23において、ビットシフタのマージをマージして得られる配列を示す図である。
【図25】図24において、negノードを消去する途上の配列を示す図である。
【図26】図25において、negノードを消去した結果得られた配列を示す図である。
【図27】a×23をミニマル表現するデータフローグラフを示す図である。
【符号の説明】
10 集積回路装置、 12 リコンフィギュラブル回路、 14 設定部、16 設定データ記憶部、 17 設定データ、 18 制御部、 19 プログラム、 20 コンパイル部、 21 データフローグラフ、 22 プログラム記憶部、24 外部制御装置、30 接続結線、 40 データ入力部、42 ALUアレイ、 44 接続スイッチ。[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to an integrated circuit technology, and particularly to a reconfigurable circuit, and an integrated circuit device and a data conversion device that can use the same.
[0002]
[Prior art]
Recently, wireless communications such as mobile phones, GPS, and VICS have become widespread, and the types of wireless devices have been increasing. If all of these radios or their functions are implemented by hardware, the cost and the mounting area increase. Therefore, there is a concept of a "software radio" in which a circuit having general-purpose capability is mounted as hardware, and various functions are realized by switching software to be loaded on the circuit.
[0003]
As a circuit for realizing the software defined radio, there are an FPGA (Field Programmable Gate Array) and a DSP (Digital Signal Processor).
[0004]
[Patent Document 1]
Japanese Patent Application Laid-Open No. H10-256383 (Full text, Fig. 1-4)
[0005]
[Problems to be solved by the invention]
Various logic can be realized by using a look-up table (LUT) for storing a truth table of a logic circuit based on an FPGA. However, in general, a unit of a logic element is small, and a desired function is realized. Requires many LUTs and wiring resources. As a result, as compared with a normal LSI, the mounting area is generally large and the cost is high. Also, the program time for rewriting the circuit is long to some extent, and is often not suitable for real-time function switching.
[0006]
The present invention has been made in view of the above circumstances, and an object of the present invention is to provide a reconfigurable circuit which is advantageous in terms of cost, rewriting speed, and the like, and an integrated circuit device using the same.
[0007]
[Means for Solving the Problems]
One embodiment of the present invention relates to a reconfigurable circuit. This circuit comprises an array of ALUs and other logic circuits, each of which can selectively execute a plurality of arithmetic logic functions, and a connection unit that holds a connection relationship between the logic circuits, and includes one of the logic circuits. , A bit shifter is mounted in place of the multiplier. For this reason, the circuit part required for the multiplier can be reduced, and the processing time can be reduced. The multiplication itself is replaced by a bit shift operation. The connection unit may have a switch and a connection for connecting an output of the logic circuit to an input of another logic circuit, and in that case, it is possible to enable a connection having a specific connection relationship by setting. it can.
[0008]
In this configuration, the number of shifts by the bit shifter may be fixed. If the number of shifts is made variable like a barrel shifter, the circuit scale becomes large.
[0009]
Further, a subtractor may be implemented in any of the logic circuits. In this case, the multiplication can be realized by using not only the bit shift but also the subtractor, and the circuit scale required for realizing the desired function can be reduced.
[0010]
Further, a desired multiplication may be expressed in a minimal manner, and an operation corresponding to the multiplication may be configured in the array by using the above-described bit shifter. Since it is a minimal expression, it is of course possible to reduce the circuit scale for realizing it, specifically, the number of necessary logic circuits.
[0011]
Another embodiment of the present invention relates to an integrated circuit device. The apparatus includes a reconfigurable circuit including an array of logic circuits each capable of selectively executing a plurality of arithmetic logic functions, and a connection unit for maintaining a connection relationship between the logic circuits, and a reconfigurable circuit. Storage unit for storing setting data for setting the function of each logic circuit in the reconfigurable circuit and the input / output connection relationship between the logic circuits, and a setting unit for reading the configuration data from the storage unit and loading the reconfigurable circuit In the reconfigurable circuit, a bit shifter is mounted instead of the multiplier in any of the logic circuits. With this configuration, the advantage of the above-described reconfigurable circuit can be enjoyed in the entire integrated circuit device, and the cost and circuit size of the device can be reduced.
[0012]
Note that the setting data described above may be data corresponding to an expression using a bit shift instead of a graph representing a data flow of a multiplication to be performed. In this case, the multiplication can be realized by a bit shift.
[0013]
Still another aspect of the present invention is an apparatus for generating setting data for causing a reconfigurable circuit to execute a desired process, wherein the multiplication to be performed in the reconfigurable circuit does not include the multiplication, and performs bit shifting. And a compiling unit for converting to a format including. This data conversion device may be mounted on-board in a device in which a reconfigurable circuit is mounted, or conversely, may generate off-board setting data to be loaded into the reconfigurable circuit. Good. Note that the compiling unit may generate the setting data so as to have a minimal expression. This data converter may include a setting unit or a control unit for loading the generated setting data into the reconfigurable circuit.
[0014]
In any of the above cases, the array of logic circuits is an array in which a plurality of rows of logic circuits arranged in the horizontal direction are combined in the vertical direction, and there is no connection for connection between the logic circuits in the horizontal direction. May be provided with a connection for connection between the output of the logic circuit row of (1) and the input of the logic circuit row of the next stage.
[0015]
In addition, any combination of the above-described components, and the expression of the present invention expressed as a method, an apparatus, a system, or a computer program are also effective as embodiments of the present invention.
[0016]
BEST MODE FOR CARRYING OUT THE INVENTION
The embodiment relates to a reconfigurable circuit having an ALU (Arithmetic Logic Unit) array as a basic element. In this type of circuit, one ALU constitutes one logical unit, and the logical unit can selectively execute a plurality of arithmetic operations. Configuration time is saved because mapping is possible. Mapping refers to loading and setting an instruction set of a program to be executed by the reconfigurable circuit and a connection data set required in the reconfigurable circuit to implement the instruction set in the ALU array.
[0017]
A characteristic of the embodiment is that the multiplier is intentionally removed from the arithmetic operation circuit to be built in the ALU, and the multiplication is replaced by a shift operation. Generally, the area occupied by the multiplier in the ALU is very large, and if the multiplier is built in every ALU, the area of the entire reconfigurable circuit becomes very large, which is not advantageous in terms of cost and function. Also, when a program is loaded, there will be many multipliers that are not used, so there is room for improvement in terms of circuit utilization efficiency. Further, the multiplication takes a long processing time, the processing is rate-limited by a path passing through the multiplier, and the overall circuit design becomes difficult. The shift operation is also advantageous in terms of smoothing the processing load. However, even in the shift operation, if a variable length bit is used as in a barrel shifter, the circuit scale tends to be large. Therefore, in the embodiment, the number of shifts is limited to one or two.
[0018]
To be able to substitute multiplication with shift, at least one of the multiplier or the multiplicand must be a constant. Therefore, in the embodiment, it is assumed that such a multiplication is detected by a compiling unit described later and is assigned to an ALU without a multiplier. Multiplication by variables may be assigned to an ALU having a multiplier, and two types of ALUs may be appropriately combined. Hereinafter, an ALU without a multiplier and a program load for the ALU will be mainly described.
[0019]
FIG. 1 is a configuration diagram of an
[0020]
The
[0021]
The
[0022]
The
[0023]
FIG. 2 is a configuration diagram of the
[0024]
As shown in the figure, Y ALUs are arranged in the horizontal direction and X ALUs are arranged in the vertical direction, and input variables and constants are input to the first stage ALU11, ALU12, ..., ALU1Y. , A predetermined calculation is performed by the setting. The output of the calculation result is input to the second-
[0025]
The setting
[0026]
Now, consider the following program to be executed.
FIG. 3 shows a data flow graph corresponding to the above program. In the figure, constants, variables and operators are circled, mul indicates multiplication, and add indicates addition. If this is directly mapped to the
[0027]
x = 2 × a and y = 5 × b are obtained by using a bit shift.
x = a << 1, y = b + (b << 2)
Can be written as Here, “<<” is a left bit shift. FIG. 5 shows a data flow graph corresponding to this notation, and FIG. 6 shows a
[0028]
1. Variables and constants existing at the input end of the data flow graph are assigned to the
2. In the data flow graph, the operation preceding the i-th → from the input end is assigned to the (i + 1) -th stage ALU.
3.2. As an exception to the above, when the numbers of → in a plurality of paths reaching a certain operation are different, such as i and j, the number is set to the larger one. Now, when i <j, the operation is assigned to the (j + 1) th stage.
4.3. In order to match the number of stages, (ji) mov operations equivalent to NOP are inserted into the path on the side of i.
[0029]
As described above, in the present embodiment, multiplication in the form of a constant × variable is first converted into a bit shift and an addition, which is converted into a data flow graph and mapped to the
[0030]
Next, consider the execution of the following program.
Since 8 × a = a << 3, FIG. 7 shows this in a data flow graph. However, since the 3-bit shift cannot be executed by one ALU in the present embodiment, the data flow graph of FIG. 7 is converted as shown in FIG. 8 and decomposed into a shift operation of 2 bits or less. This consideration has the effect of reducing the circuit scale in the sense that the number of instructions to be implemented in the ALU is reduced.
[0031]
Next, consider the execution of the following program.
10 × a = (a << 1) + (a << 1 << 2), and the data flow graph is as shown in FIG. Here, the two
[0032]
Next, consider the execution of the following program.
15 × a = (a << 3) + (a << 2) + (a << 1) + a, and the data flow graph is shown in FIG. However, here, when a so-called minimal expression in which the number of zeros is the largest when expressed in a binary number, 15 is as follows.
15 = (1111)2= (1000N1)2
However, "N1" represents -1. Therefore, the above program is represented by the following bit shift.
15 × a = (a << 4) −a
FIG. 12 is a data flow graph corresponding to this equation, where sub indicates subtraction. As described above, by using the minimal expression and the subtractor as necessary, the processing can be further simplified, and the ALU to be used can be reduced.
[0033]
FIG. 13 shows a procedure for generalizing the above processing and converting multiplication of a constant × variable into processing of a minimal expression by a shifter. The processing is roughly divided into four stages, and FIG. 13 mainly shows the first stage processing.
[0034]
[First stage] Multiplication → 1-bit shifter conversion
Convert the multiplication node to a 1-bit shifter, addition and sign reversal node. The sign inversion node is used temporarily, but is converted to a subtraction node in the fourth stage. In general, the integer is A = sΣN k-1ak・ 2kIt is expressed as Where s = 1 or -1, akThe value of = 0 is 1. Here, it is assumed that A ≠ 0 as an initial value. In the following procedure, the process proceeds to the step immediately below unless otherwise specified. In FIG. 13, Step is abbreviated as S.
[0035]
Set initial values to the variables below Step1.
c ← 0, cnt ← 0, n ← 0, flag ← 0, node array: NL ← empty
c is a carry bit used during processing, cnt is a counter, NL is an array for assigning operations to nodes, n is a pointer to NL, and flag is a status flag.
[0036]
Step3 a0If = c, the process proceeds to Step 11.
Step4 If cnt ≠ 0, proceed to Step6.
[0037]
Step7 a1= 0 and S = -1 or a1If ≠ 0 and S = 1, a sign inversion node is created in NL [n], and n ← n + 1.
In
[0038]
Step10 nold← n.
Step11 a0+ A1If + c ≧ 2, c ← 1; otherwise, c ← 0.
Step12 a0← a1, A1← a2, ..., aN-1← aN, AN← 0 and cnt ← cnt + 1.
Return to Step13 Step2.
[0039]
[2nd stage] Merge of same input and same instruction node
If two or more nodes have the same input value and the same instruction for n node arrays NL, they are combined into one.
[0040]
[Third stage] Merging bit shifters
Continuous 1-bit shifters are combined into fixed-length n-bit shifters (n ≧ 2).
[0041]
[Phase 4] Merge into subtraction node
The process of connecting the sign inversion node to the addition node is summarized in the subtraction node. The addition equation is represented as in equation (1).
[0042]
output = input1 + input2 (1)
i) When one of the inputs to the addition node is a sign reversal node
input1 = -input1 '
Here, equation (1) is
According to equation (2), conversion to a subtraction node is performed.
ii) When both inputs to the addition node are sign inversion nodes
input1 = -input1 '
input2 = -input2 '
Here, equation (1) is
From Expression (3), conversion is performed to an addition node and a sign inversion node.
[0043]
The following is an example of the conversion from multiplication to shifter by the above procedure. Here, a × 23 is assumed. 23 is a binary number (10111)2It is. Hereinafter, the state of the array NL according to the value of n will be described only for simplicity.
[0044]
[First stage] Multiplication → 1-bit shifter conversion
Starting with n = 0, a mov node is created (S5). FIG. 14 shows NL [0]. Thereafter, n is incremented.
After n ← 1, a sign reversal (neg) node is created (S7). FIG. 15 shows a state in which NL [1] has been added. After this,
n ← 2, flag ← 1, Nold← 2, c ← 1, A ← (1011)2, Cnt ← 1
And a shifter node is created (S6). In the next loop,
n ← 3, c ← 1, A ← (101)2, Cnt ← 2
And a shifter node is similarly created (S6). In the next loop,
n ← 4, c ← 1, A ← (10)2, Cnt ← 3
And a shifter node is similarly created (S6). The shifter is a one-bit shifter. At this point, the array is in the state of FIG.
[0045]
After n ← 5, a sign reversal (neg) node is created (S7). At this point, the array is in the state of FIG.
After n ← 6, an add node is created (S9). The arrangement is shown in FIG.
After n ← 7, Nold← 7, c ← 1, A ← (1)2, Cnt ← 4, and a shifter node is created (S6).
After n ← 8, c ← 1, A ← (0)2, Cnt ← 5, and a shifter node is created (S6). Hereinafter, a shifter node is similarly created for n = 9, 10, and 11 (S6). The arrangement is now in the state of FIG.
[0046]
After n ← 12, an add node is created (S9). The arrangement is now in the state of FIG. After this, n ← 13, Nold← 13, c ← 0, A ← (0)2, Cnt ← 6, and the process ends.
[0047]
[2nd stage] Merge of same input and same instruction node
In FIG. 20, NL [2] and NL [7], that is, the rows of n = 2 and 7 have the same input and the same instruction. FIG. 21 is obtained by detecting and merging this state. Further, in FIG. 21, since NL [3] and NL [8] are the same input and the same instruction, merging results in FIG. Similarly, by repeatedly merging, the state shown in FIG. 23 is obtained. The above merging process is also performed by the compiling
[0048]
[Third stage] Merging bit shifters
From FIG. 23, continuous 1-bit shifters are detected and replaced with 2-bit shifters. Here, the
[0049]
[Phase 4] Merge into subtraction node
In FIG. 24, since NL [6] = NL [1] + NL [5] =-NL [0] -NL [4] =-(NL [0] + NL [4]), the order is changed from the add instruction to the neg instruction. After conversion, the state shown in FIG. 25 is obtained. Here, in order to erase the rows of n = 1 and 5 where the neg instruction is present, ie, NL [1] and NL [5], the rows that receive them, ie, NL [6] are detected, and then NL is detected. [1] and NL [5] are traced back to their inputs, and the neg instruction is erased.
[0050]
Thereafter, since the neg instruction is still in NL [7], NL [12] that receives the neg instruction is detected, and NL [7] is similarly traced to the input and represented by NL [6]. That is, since NL [12] = NL [7] + NL [10] =-NL [6] + NL [10] = NL [10] -NL [6], the neg instruction becomes a subtraction (sub) instruction as a result. Conversion is possible, and the state shown in FIG. 26 is obtained. The processing is completed as described above. As a result, a × 23 becomes a data flow graph shown in FIG. Then, the data flow graph may be mapped to the circuit.
[0051]
In the
[0052]
In the present embodiment, the ALU does not have a multiplier, but the
[0053]
The present invention has been described based on the embodiments. It should be understood by those skilled in the art that the embodiments are exemplifications, and that various modifications can be made to the combination of each component and each processing process, and that such modifications are also within the scope of the present invention. .
[0054]
【The invention's effect】
According to the present invention, it is possible to provide a reconfigurable circuit with improved performance, an integrated circuit device equipped with the reconfigurable circuit, and a data conversion device for setting data in the reconfigurable circuit.
[Brief description of the drawings]
FIG. 1 is a configuration diagram of an integrated circuit device and an external control device according to an embodiment.
FIG. 2 is a configuration diagram of the reconfigurable circuit of FIG. 1;
FIG. 3 is a diagram showing a data flow graph representing a process of a certain program.
FIG. 4 is a configuration diagram of a reconfigurable circuit mapped according to the data flow graph of FIG. 3;
FIG. 5 is a diagram showing a data flow graph representing the processing of another program.
6 is a configuration diagram of a reconfigurable circuit mapped according to the data flow graph of FIG. 5;
FIG. 7 is a diagram showing a data flow graph representing the processing of yet another program.
FIG. 8 is a diagram showing a data flow graph obtained by partially rewriting the data flow graph of FIG. 7;
FIG. 9 is a diagram showing a data flow graph representing the processing of yet another program.
FIG. 10 is a diagram showing a data flow graph obtained by integrating overlapping processes of the data flow graph of FIG. 9;
FIG. 11 is a diagram showing a data flow graph representing the processing of yet another program.
12 is a diagram showing a data flow graph obtained by changing the data flow graph of FIG. 11 to a minimal expression.
FIG. 13 is a flowchart showing a process for converting a data flow graph into a minimal expression.
FIG. 14 is a diagram showing a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 15 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 16 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
17 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 18 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
19 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 20 is a diagram illustrating a state in which an array indicating an operation to be assigned to an ALU is being formed according to the flowchart of FIG. 13;
FIG. 21 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 20;
FIG. 22 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 21;
FIG. 23 is a diagram showing an array obtained by merging the same input and the same instruction node in FIG. 22;
FIG. 24 is a diagram showing an array obtained by merging bit shifters in FIG. 23;
FIG. 25 is a diagram showing an array in the process of erasing a neg node in FIG. 24;
FIG. 26 is a diagram showing an array obtained as a result of deleting a neg node in FIG.
FIG. 27 is a diagram showing a data flow graph that minimally expresses a × 23.
[Explanation of symbols]
Claims (7)
前記論理回路の間の接続関係を保持する接続部と、
を備え、前記論理回路のいずれかに、乗算器に替えてビットシフタを実装したことを特徴とするリコンフィギュラブル回路。An array of logic circuits, each of which can selectively perform a plurality of arithmetic logic functions;
A connection unit that holds a connection relationship between the logic circuits,
Wherein a bit shifter is mounted in place of the multiplier in any of the logic circuits.
前記リコンフィギュラブル回路における各論理回路の機能と論理回路間の入出力の接続関係を設定するための設定データを記憶する記憶部と、
前記記憶部から前記設定データを読み込み、前記リコンフィギュラブル回路にロードする設定部とを含み、
前記リコンフィギュラブル回路において、前記論理回路のいずれかに、乗算器に替えてビットシフタを実装したことを特徴とする集積回路装置。An array of logic circuits each capable of selectively executing a plurality of arithmetic logic functions, and a reconfigurable circuit including a connection unit that holds a connection relationship between the logic circuits,
A storage unit that stores setting data for setting a function of each logic circuit in the reconfigurable circuit and an input / output connection relationship between the logic circuits,
A setting unit that reads the setting data from the storage unit and loads the setting data into the reconfigurable circuit,
In the reconfigurable circuit, a bit shifter is mounted instead of a multiplier in any one of the logic circuits.
前記リコンフィギュラブル回路において実行すべき乗算を、乗算を含まず、かつビットシフトを含む形式に変換するコンパイル部を備えることを特徴とするデータ変換装置。An apparatus for generating setting data for causing a reconfigurable circuit to execute a desired process,
A data conversion device, comprising: a compiling unit that converts multiplication to be performed in the reconfigurable circuit into a format that does not include multiplication and includes bit shift.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003007652A JP2004220377A (en) | 2003-01-15 | 2003-01-15 | Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003007652A JP2004220377A (en) | 2003-01-15 | 2003-01-15 | Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004220377A true JP2004220377A (en) | 2004-08-05 |
Family
ID=32897683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003007652A Pending JP2004220377A (en) | 2003-01-15 | 2003-01-15 | Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004220377A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099720A (en) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | Data flow graph processing method |
JP2007241694A (en) * | 2006-03-09 | 2007-09-20 | Sanyo Electric Co Ltd | Arithmetic mapping method to reconfigurable circuit, reconfigurable circuit and data flow graph |
JP2007316824A (en) * | 2006-05-24 | 2007-12-06 | Sanyo Electric Co Ltd | Variable function achievement device and method |
JP2010044731A (en) * | 2007-10-30 | 2010-02-25 | Coreworks Sa | Reconfigurable coprocessor architecture template for nested loop and programming tool |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
-
2003
- 2003-01-15 JP JP2003007652A patent/JP2004220377A/en active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006099720A (en) * | 2004-08-30 | 2006-04-13 | Sanyo Electric Co Ltd | Data flow graph processing method |
JP4535912B2 (en) * | 2004-08-30 | 2010-09-01 | 三洋電機株式会社 | Data flow graph generator |
US7941794B2 (en) | 2004-08-30 | 2011-05-10 | Sanyo Electric Co., Ltd. | Data flow graph processing method and processing apparatus provided with reconfigurable circuit |
JP2007241694A (en) * | 2006-03-09 | 2007-09-20 | Sanyo Electric Co Ltd | Arithmetic mapping method to reconfigurable circuit, reconfigurable circuit and data flow graph |
JP4597075B2 (en) * | 2006-03-09 | 2010-12-15 | 三洋電機株式会社 | Operation mapping method to reconfigurable circuit, reconfigurable circuit, and data flow graph |
JP2007316824A (en) * | 2006-05-24 | 2007-12-06 | Sanyo Electric Co Ltd | Variable function achievement device and method |
JP2010044731A (en) * | 2007-10-30 | 2010-02-25 | Coreworks Sa | Reconfigurable coprocessor architecture template for nested loop and programming tool |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210028921A1 (en) | Method of Operation for a Configurable Number Theoretic Transform (NTT) Butterfly Circuit For Homomorphic Encryption | |
Thomsen et al. | Reversible arithmetic logic unit for quantum arithmetic | |
JP3719509B2 (en) | Serial arithmetic pipeline, arithmetic unit, arithmetic logic arithmetic circuit, and arithmetic method using serial arithmetic pipeline | |
JP2004220377A (en) | Reconfigurable circuit, and integrated circuit device and data conversion device capable of using it | |
JP3003467B2 (en) | Arithmetic unit | |
JP4255475B2 (en) | Data-driven information processing device | |
JP4011007B2 (en) | Integrated circuit device and processing device having reconfigurable circuit | |
JP3660075B2 (en) | Dividing device | |
US7047271B2 (en) | DSP execution unit for efficient alternate modes for processing multiple data sizes | |
JP4413052B2 (en) | Data flow graph processing apparatus and processing apparatus | |
Valls et al. | Fast FPGA-based pipelined digit-serial/parallel multipliers | |
JP5606516B2 (en) | NAF converter | |
US10572223B2 (en) | Parallel decimal multiplication hardware with a 3x generator | |
KR100900790B1 (en) | Method and Apparatus for arithmetic of configurable processor | |
JPH1063500A (en) | Signal processor | |
JP4562678B2 (en) | Data flow graph reconstruction device, setting data generation device for reconfigurable circuit, and processing device | |
JP4954019B2 (en) | Arithmetic unit | |
JP2008204356A (en) | Re-configurable circuit | |
US6470369B1 (en) | Euclid mutual division arithmetic circuit and processing circuit | |
JP2010134713A (en) | Arithmetic processing apparatus and conversion device | |
WO2019019196A1 (en) | Digital signal processing method and device and programmable logic device | |
Wanhammar et al. | Implementation of Digital Filters | |
Cardarilli et al. | A reconfigurable functional unit for modular operations | |
JP3702475B2 (en) | Automatic circuit generator | |
JP2000347834A (en) | Arithmetic circuit by sw number system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050609 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071012 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071016 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071217 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080331 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20080513 |
|
A912 | Removal of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20080711 |