JP4851947B2 - 論理回路 - Google Patents

論理回路 Download PDF

Info

Publication number
JP4851947B2
JP4851947B2 JP2007018386A JP2007018386A JP4851947B2 JP 4851947 B2 JP4851947 B2 JP 4851947B2 JP 2007018386 A JP2007018386 A JP 2007018386A JP 2007018386 A JP2007018386 A JP 2007018386A JP 4851947 B2 JP4851947 B2 JP 4851947B2
Authority
JP
Japan
Prior art keywords
input
data
output
bit
bit 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.)
Expired - Fee Related
Application number
JP2007018386A
Other languages
English (en)
Other versions
JP2008187384A (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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007018386A priority Critical patent/JP4851947B2/ja
Priority to US12/019,250 priority patent/US20080183793A1/en
Publication of JP2008187384A publication Critical patent/JP2008187384A/ja
Application granted granted Critical
Publication of JP4851947B2 publication Critical patent/JP4851947B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices

Description

本発明は、論理回路に関し、特に、消費電力の変動を抑えつつ、論理演算の機能の変更をすることができる論理回路に関する。
近年のLSI技術の進歩より、半導体装置は、情報機器だけでなく、産業機器から家電製品まで多くのかつ種々の製品に広く応用されている。
また、半導体装置は、その高性能化が進み、その消費電力も大きくなってきている。消費電力の増加は、半導体装置の熱の発生の問題だけでなく、その半導体装置が搭載される応用製品がバッテリー駆動の場合に、その応用製品の長時間に亘る使用ができなくなるという、連続駆動時間の減少の問題にも繋がる。
半導体装置には、種々の機能を実行するための多くの論理回路が含まれている。論理回路は、一般的なAND回路、排他的論理和回路、加算器等がある。
しかし、近年は、データ処理の基本単位が32ビット、64ビットとビット数が多くなってきているため、同時に処理されるデータの変化に応じて消費電力が大きく変化する場合がある。一方、半導体回路における低消費電力化の技術に関する提案もなされている(例えば、特許文献1参照)。
そのため、半導体回路の設計において、そのようなデータの変化に応じた消費電力の変化における最大値と最小値とを考慮して電源回路の設計を行わなければならないという問題があった。
また、それぞれが互いに異なる論理演算の機能に対応する複数の論理演算に対しては、それぞれの論理演算の機能ための論理回路を複数設けなければならなかった。
特開2000−216264号公報
そこで、本発明は、以上のような課題に鑑みてなされたものであり、消費電力の変動を抑えつつ、論理演算の機能の変更をすることができる論理回路を提供することを目的とする。
本発明の一態様によれば、論理演算の機能が互いに異なる第1及び第2の論理演算を実行可能な論理回路であって、1又は2以上の2進数の第1の入力データに対して、該第1の入力データのハミング重みと関係なく、ハミング重みが一定となる第1の複数のビットデータに変換するデコーダと、該デコーダに接続され、前記デコーダにより変換された前記第1の複数のビットデータを受信し、前記第1及び第2の論理演算のいずれを実行するかを指定する制御入力と第2の入力データとに応じて、受信した前記第1の複数のビットデータのビット位置を入れ替えることによって、前記第1の複数のビットデータのビットパターンを変更して、第2の複数のビットデータを生成する配線ネットワークと、該配線ネットワークに接続され、前記配線ネットワークにおいて生成された前記第2の複数のビットデータを、1又は2以上の2進数の出力データに変換するエンコーダと、を有する論理回路を提供することができる。
本発明によれば、消費電力の変動を抑えつつ、論理演算の機能の変更をすることができる論理回路を実現することができる。
以下、図面を参照して本発明の実施の形態を説明する。
まず図1に基づき、本実施の形態に係わる論理回路の全体の機能を説明する。図1は、本実施の形態に係わる論理回路の機能を説明するための図である。
本実施の形態の論理回路1は、複数の入力、ここでは2つの入力A,Bに対して、所定の論理演算を行い、その論理演算の結果の出力Zを出力する回路である。論理回路1は、後述するように、消費電力の変動を抑えつつ、論理演算の機能を変更することができる。機能の変更をするために、論理回路1には、モード入力(mode)を有する。モード入力に入力される信号に基づいて、論理回路1において実行される論理演算の機能が選択されて変更される。すなわち、論理回路1は、論理演算の機能が互いに異なる第1及び第2の論理演算を実行可能な論理回路である。以下の実施の形態では、例として、互いに異なる第1及び第2の論理演算の2つの機能である、論理積(AND)機能と排他的論理和(XOR)機能のいずれかの機能が選択される場合について説明する。
図2は、論理回路1の基本構成を示すブロック図である。図2は、配線ネットワーク部(以下、配線ネットワークという)2と、エンコード部(以下、エンコーダという)3と、デコード部(以下、デコーダという)4を含んで構成される論理回路1を示す。デコーダ4は、nビットの2進数データである入力データBをmビット(m>n)のビット列に変換するデコーダである。
配線ネットワーク2は、デコーダ4においてデコードされたデータと、もう一つの入力Aとを入力して、その2つの入力に対して所定の論理演算を行う配線ネットワーク回路である。配線ネットワーク2には、2つの論理演算のうちのいずれの論理演算を行いかを指定あるいは選択するための、モード入力(mode)が入力される。入力Aも、ここでは、nビットの2進数データである。エンコーダ3は、配線ネットワーク2から出力されたsビットのデータをtビットのデータ(s>t)に変換するエンコーダである。
ここで、入力データBはnビットであるが、デコードされるとnより大きいmビットとなり、冗長性が増加している。さらに、デコード後のデータは、入力されたnビットの2進数データのハミング重みとは無関係なハミング重みのデータであり、その後処理されている。例えば、mを2のn乗として、mビットのデータのただ1つの信号のみがHIGH(以下、Hともいう)となるようなデータに、入力データは変換される。そのように変換すると、デコード後、常にHとなる信号の配線は1本のみなので、デコードされたデータのハミング重みが常に一定となる。すなわち、デコーダ4は、1又は2以上の2進数の第1の入力データに対して、該第1の入力データのハミング重みと関係なく、ハミング重みが一定となる第1の複数のビットデータに変換するデコーダである。従って、論理回路1の消費電力は入力されたデータに依存しないので、消費電力の変動を抑える論理回路を実現することができる。
配線ネットワーク2は、デコーダ4に接続され、デコーダ4により変換して得られたデコードデータである第1の複数のビットデータを複数の入力端を介して受信する。配線ネットワーク2は、モード入力と入力データAに基づいて、受信したデコードデータの各ビットデータのそれぞれに対応する複数の配線の接続あるいは信号の経路を変更することによって、所定の演算処理のために前記第1の複数のビットデータのビット位置を入れ替えて、第2の複数のビットデータを生成する。その第2の複数のビットデータは、配線ネットワーク2の複数の出力端からエンコーダ3に出力される。言い換えると、配線ネットワーク2は、デコーダ4から出力されたハミング重みが一定のデコードデータのビットパターン(複数のビットデータの並びの順序)を、変更して出力データとして出力する。
以下に、本実施の形態の具体例を図面を用いて説明する。
図3は、本実施の形態に係わる論理回路の回路構成を示す回路図である。図3の論理回路1は、論理積(AND)機能と、排他的論理和(XOR)機能の両方の機能を有する論理回路の例である。
論理回路1は、3ビットの入力データAを入力するための3つの入力端子(A2〜0)を有する入力部101Aと、3ビットの入力データBを入力するための3つの入力端子(B2〜0)を有する入力部101Bと、機能切替を指定するためのモード入力が入力されるモード入力部102と、3ビットのデータを8ビットのデータに変換するデコーダ400と、8ビットのデータ(あるいは配線)を入れ替える変換を行う配線ネットワーク200と、8ビットのデータを3ビットのデータに変換するエンコーダ300と、エンコーダ300の3ビットのデータを出力するための3つの出力端子(Z2〜0)を有する出力部103とを含んで構成される。
論理回路1には、それぞれが3ビットの2進数データである、2つの入力データA,Bと、機能を指定するモード入力M(mode)とが入力され、論理回路1は、モード入力Mにより指定された機能の論理演算を行い、3ビットの2進数データである出力データZを出力する。配線ネットワーク200、エンコーダ300及びデコーダ400が、それぞれ図2の配線ネットワーク2、エンコーダ3及びデコーダ4に対応する。
デコーダ400は、ここでは、8個のAND(論理積)回路を含み、8個のAND回路の入力端には、3ビットで表される8個(0から7)のそれぞれの値に対して、1つのAND回路からのみ出力が出るように、インバータ回路が設けられている。デコーダ400は、3ビットの入力から8ビットのデコードデータである出力を生成する。デコーダ400の各AND回路の出力は、対応する配線ネットワーク200の各入力端に接続されている。配線ネットワーク200の各出力は、エンコーダ300の各入力端に接続されている。
図3では、例えば、3ビットの入力データが(0,0,0)のときは、デコーダ400の出力端子D0のみに出力が出るように、3つのインバータ回路がそれぞれ3つの入力端に設けられた、一番目のAND回路が設けられている。また、3ビットのデータが(0,0,1)のときは、デコーダ400の出力端子D1のみに出力が出るように、2つのインバータ回路がそれぞれ2つの入力端に設けられた、2番目のAND回路が設けられている。同様に、3ビットのデータが(1,1,1)のときは、デコーダ400の出力端子D7のみに出力が出るように、インバータ回路を入力端に有しないAND回路が設けられている。すなわち、デコーダ400の出力は、いずれか1つの配線(すなわち出力)のみがアクティブ(この例では論理1であるH)となる。
エンコーダ300は、ここでは、3つの論理和(OR)回路を含み、8ビットで表される8個の値に対応して3ビットデータが出力されるように、3つのOR回路の複数の入力端と配線ネットワーク200の複数の出力端との接続は、互いに異なっている。エンコーダ300は、8ビットの入力から3ビットの出力を生成する。
具体的には、図3に示すように、第1のOR回路は、8ビットのデータのうち、配線ネットワーク200の出力N7からN4のデータを入力して、出力端子Z2に出力を出す。第2のOR回路は、8ビットのデータのうち、配線ネットワーク200の出力N7,N6,N3,N2のデータを入力して、出力端子Z1に出力を出す。第3のOR回路は、8ビットのデータのうち、配線ネットワーク200の出力N7,N5,N3,N1のデータを入力して、出力端子Z0に出力を出す。
論理積(AND)機能と排他的論理和(XOR)機能の両方の機能を有する配線ネットワーク200は、モード入力Mに応じて、2つの入力データA,Bの論理積(AND)あるいは排他的論理和(XOR)のデータを出力するための演算を行うように構成されている。すなわち、モード入力Mによって、論理積(AND)機能と排他的論理和(XOR)機能のいずれの機能を実行するかが指定され得る。
配線ネットワーク200は、8つの入力端子(D0〜D7)を有する入力部と、8ビットのデータを出力するための8つの出力端子(N0〜N7)を有する出力部と、8ビットのデータに対して所定の変換処理を行い、8ビットのデータを出力する変換部と、を含んで構成される。
配線ネットワーク200は、複数のグループ、すなわち複数の(ここでは3つの)段のステージST1,ST2,ST3を含んで構成され、各ステージは、複数の制御機能付きのスイッチ素子(以下、単にスイッチ素子ともいう)640を含む。スイッチ素子640−1−1, 640−1−2, 640−1−3, 640−1−4が、第1段目のステージST1を構成し、スイッチ素子640−2−1, 640−2−2, 640−2−3, 640−2−4が、第2段目のステージST2を構成し、スイッチ素子640−3−1, 640−3−2, 640−3−3, 640−3−4が、第3段目のステージST3を構成する。言い換えると、配線ネットワーク200は、複数のスイッチ素子を有し、その複数のスイッチ素子は、複数のグループに分割して設けられている。第1段目のステージST1の複数のスイッチ素子640は、デコーダ400からの複数のビットデータを受信する。第2段目以降のステージの複数のスイッチ素子640は、その前の段のステージの複数のスイッチ素子640の出力を受信する。
各スイッチ素子は、2つの入力データ(入力IN1と入力IN2)と、2つの制御入力と、2つの出力データ(出力OUT1と出力OUT2)を有する。各スイッチ素子は、制御信号である2つの制御入力に応じて、入力IN1と入力IN2をそれぞれ出力OUT1と出力OUT2のいずれかに転送して出力する。
第1段目のステージの各スイッチ素子640−1−1, 640−1−2, 640−1−3, 640−1−4の一方の制御入力C1には、入力部101Aから入力データAの1つのビットデータ(A0)が入力される。第2段目のステージの各スイッチ素子640−2−1, 640−2−2, 640−2−3, 640−2−4の一方の制御入力C1には、入力部101Aから入力データAの1つのビットデータ(A1)が入力される。第3段目のステージの各スイッチ素子640−3−1, 640−3−2, 640−3−3, 640−3−4の一方の制御入力C1には、入力部101Aから入力データAの1つのビットデータ(A2)が入力される。
また、各ステージの各スイッチ素子の他方の制御入力C2には、モード入力Mのビットデータが入力される。本実施の形態では、論理回路1が排他的論理和(XOR)として機能するとき、モード入力Mは1であり、論理回路1が論理積(AND)として機能するとき、モード入力Mは0である。
全体の動作については、後述するが、論理回路1が排他的論理和(XOR)の回路として機能するとき、各スイッチ素子は、入力部101Aからの入力データAの1つのビットデータに応じて、2つの入力データを出力データとして、2つの出力端に、そのまま出力する(すなわち図3において、各スイッチ素子の上側と下側の入力端に入力された2つのデータは、それぞれ上側と下側の出力端に出力する)か、あるいは入れ替えて出力する(すなわち図3において、各スイッチ素子の上側と下側の入力端に入力された2つのデータは、それぞれ下側と上側の出力端に出力する)。
また、論理回路1が論理積(AND)の回路として機能するときは、各スイッチ素子は、制御信号である入力部101Aからの入力データの1つのビットデータが1の場合、入力されたデータを入れ替えずに、上側の入力端に入力されたデータは上側の出力端に、そして下側の入力端に入力されたデータは下側の出力端に、というように、そのまま出力する。また、制御入力である入力部101Aからの入力データの1つのビットデータが0の場合、各スイッチ素子は、入力されたデータに依存してデータが入れ替えられる。すなわち、2つの入力データの中に1がある場合、必ず上側の出力端に出力され、下側の出力端は0となるように入れ替えられる。
従って、言い換えると、各スイッチ素子640は、制御入力端に入力される2つの制御入力C1,C2に応じて2つの入力端に入力される2つの信号IN1,IN2が2つの出力端OUT1,OUT2に現れる状態を変更する回路である。
配線ネットワーク200の入力部の8つの入力端子(D0〜D7)の信号が、第1ステージST1の4つのスイッチ素子640の8つの入力端に入力される。第1ステージST1の4つのスイッチ素子640の8つの出力は、配線部を介して、第2ステージST2の4つのスイッチ素子640の8つの入力端に入力される。さらに、第2ステージST2の4つのスイッチ素子640の8つの出力は、配線部を介して、第3ステージST3の4つのスイッチ素子640の8つの入力端に入力される。配線ネットワーク200において、第1から第8の入力端は、それぞれ第1から第8の出力端に接続されるが、次に述べるように一部配線の入れ替えが行われる。
第1と第2のステージST1,ST2間の配線部の配線は、第1の配線の入れ替え部を有する。具体的には、図3に示すように、第1ステージST1の第1のスイッチ素子640−1−1の下側の出力端が、第2ステージST2の第2のスイッチ素子640−2−2の上側の入力端と接続され、第1ステージST1の第2のスイッチ素子640−1−2の上側の出力端が、第2ステージST2の第1のスイッチ素子640−2−1の下側の入力端と接続され、第1ステージST1の第3のスイッチ素子640−1−3の下側の出力端が、第2ステージST2の第4のスイッチ素子640−2−4の上側の入力端と接続され、第1ステージST1の第4のスイッチ素子640−1−4の上側の出力端が、第2ステージST2の第3のスイッチ素子640−2−3の下側の入力端と接続されるように、配線は入れ替えられる。
第2と第3のステージST2,ST3間の配線部の配線も、第2の配線の入れ替え部を有する。具体的には、図3に示すように、第2ステージST2の第1のスイッチ素子640−2−1の下側の出力端が、第3ステージST3の第2のスイッチ素子640−3−2の上側の入力端と接続され、第2ステージST2の第2のスイッチ素子640−2−2の上側の出力端が、第3ステージST3の第3のスイッチ素子640−3−3の上側の入力端と接続され、第2ステージST2の第2のスイッチ素子640−2−2の下側の出力端が、第3ステージST3の第4のスイッチ素子640−3−4の上側の入力端と接続され、第2ステージST2の第3のスイッチ素子640−2−3の上側の出力端が、第3ステージST3の第1のスイッチ素子640−3−1の下側の入力端と接続され、第2ステージST2の第3のスイッチ素子640−2−3の下側の入力端が、第3ステージST3の第2のスイッチ素子640−3−2の下側の入力端と接続され、第2ステージST2の第4のスイッチ素子640−2−4の上側の入力端が、第3ステージST3の第3のスイッチ素子640−3−3の下側の入力端と接続されるように、配線は入れ替えられる。
さらに、第3ステージST3の4つのスイッチ素子640の8つの出力は、第1から第8の出力端に接続される。このとき、図3に示すように、第3ステージST3の4つのスイッチ素子640の第1から第8の出力端は、それぞれ、第1、第5、第3、第7、第2、第6,第4、及び第8の出力端子に接続されるように、第3ステージST3と複数の出力端子間の配線は、第3の配線の入れ替え部を有する。
以上のように、配線ネットワーク200は、デコーダ400からの複数のビットデータを受信し、受信した複数のビットデータのビット位置を入れ替えることによって、指定された論理演算された複数のビットデータを生成するマスク処理用の配線ネットワークである。
図4は、スイッチ素子640の内部の回路構成を示す回路図である。
スイッチ素子640は、上述したように、2つの入力IN1,IN2及び2つの制御入力C1,C2とを入力するための複数(4つ)の入力端と、2つの出力OUT1,OUT2を出力するための複数(2つ)の出力端を有する。各スイッチ素子640は、制御信号である2つの制御入力C1,C2に応じて、入力IN1と入力IN2をそれぞれ出力OUT1と出力OUT2のいずれかに転送して出力する。制御入力C1は、入力データAの1つのビットデータ入力であり、制御入力C2は、モード入力(M)である。
後述するように、スイッチ素子640は、複数の入力信号を出力するときに、入力端に入力されたビットを、入力パターンと同じパターンで出力パターンとして出力端から出力したり、あるいは入力端に入力された2つのビットの入力パターンとは異なるパターンで、入力された2つのビットを変更して、出力パターンとして出力端から出力するように変更可能な回路である。
スイッチ素子640は、セレクタ641,642と、論理和(OR)回路643と、論理積(AND)回路644,645と、排他的論理和(XOR)回路646とを含む。
2つのセレクタ641,642は、それぞれ、2つの入力端と、1つの出力端と、1つの制御入力端を有する。セレクタ641の出力端は、出力OUT1に接続され、セレクタ642の出力端は、出力OUT2に接続される。セレクタ641の制御入力は、XOR回路646の出力端に接続される。セレクタ641の一方の入力端は、入力IN1に接続され、他方の入力端は、OR回路643の出力端に接続されている。
OR回路643の一方の入力端は、AND回路644の出力端に接続され、他方の入力端は、入力IN2に接続されている。
AND回路644の一方の入力端は、入力IN1に接続され、他方の入力端は、インバータを介して、モード入力(M)に対応する制御入力C2に接続される。AND回路645の一方の入力端は、入力IN1に接続され、他方の入力端は、モード入力(M)に対応する制御入力C2に接続される。
XOR回路646の一方の入力端は、モード入力(M)に対応する制御入力C2に接続され、他方の入力端は、入力データAの1つのビットデータ入力に対応する制御入力C1に接続される。
図4のスイッチ素子640が、図3のように複数接続されて、配線ネットワーク200が構成される。
図4の回路の動作を、説明する。
制御入力C2は、モード入力Mに接続され、論理回路1を論理積(AND)回路として動作させるときには、モード入力Mは0であり、論理回路1を排他的論理和(XOR)回路として動作させるときには、モード入力Mは1である。
まず、論理回路1を排他的論理和(XOR)回路として動作させるときのスイッチ素子640の動作について、説明する。
排他的論理和(XOR)回路の場合、モード入力Mは1、すなわち制御入力C2は1であり、AND回路644の一つの入力は、インバータを介しているので、0となる。同様に、AND回路645の一つの入力は、1となり、XOR回路646の一つの入力も1となる。
この場合、制御入力C1が0のとき、XOR回路646の出力は1となり、制御入力C1が1のとき、XOR回路646の出力は0となる。
XOR回路646の出力が1のとき、セレクタ641は、入力IN1に接続された入力端(1)の方を選択して、出力端に出力する。同様に、その場合、セレクタ642も、入力IN2に接続された入力端(1)の方を選択して、出力端に出力する。
従って、モード入力Mが1のとき、制御入力C1が0ならば、上側の入力端の入力IN1の信号が上側の出力端の出力OUT1に出力され、下側の入力端の入力IN2の信号が下側の出力端の出力OUT2に出力される。
また、XOR回路646の出力が0のとき、セレクタ641は、OR回路643の出力端に接続された入力端(0)の方を選択して、出力端に出力する。同様に、その場合、セレクタ642も、AND回路645の出力端に接続された入力端(0)の方を選択して、出力端に出力する。
OR回路643の一方の入力端は、AND回路644の出力端に接続され、他方の入力端は、入力IN2に接続されている。AND回路644の一方の入力端には、インバータを介して0が入力されているので、AND回路644の出力は、常に0となる。よって、OR回路643の出力は、セレクタ641を介して、出力OUT1に入力IN2の入力データを出力する。
また、セレクタ642は、AND回路645の出力端に接続された入力端(0)の方を選択して、出力端に出力する。AND回路645の一方の入力端は、モード入力Mに接続されているので、1が入力され、他方の入力端は、入力IN1に接続されているので、AND回路645の出力は、セレクタ642を介して、出力OUT2に入力IN1の入力データを出力する。
従って、モード入力Mが1のとき、制御入力C1が1ならば、上側の入力端の入力IN1の信号が下側の出力端の出力OUT2に出力され、下側の入力端の入力IN2の信号が上側の出力端の出力OUT1に出力される。
すなわち、論理回路1を排他的論理和(XOR)回路として動作させるとき、制御入力C2は1であり、スイッチ素子640において、制御入力C1に応じて、入力IN1,IN2が、それぞれ出力OUT1,OUT2に出力され、あるいは出力OUT2,OUT1に出力される。
次に、論理回路1を論理積(AND)回路として動作させるときのスイッチ素子640の動作について、説明する。
論理積(AND)回路の場合、モード入力Mは0、すなわち制御入力C2は0であり、AND回路644の一つの入力は、インバータを介しているので、1となる。同様に、AND回路645の一つの入力は、0となり、XOR回路646の一つの入力も0となる。
この場合、制御入力C1が1のとき、XOR回路646の出力は1となり、制御入力C1が0のとき、XOR回路646の出力は0となる。
上述したように、XOR回路646の出力が1のとき、セレクタ641は、入力IN1に接続された入力端(1)の方を選択して、出力端に出力する。同様に、その場合、セレクタ642も、入力IN2に接続された入力端(1)の方を選択して、出力端に出力する。
従って、モード入力Mが0のとき、制御入力C1が1ならば、上側の入力端の入力IN1の信号が上側の出力端の出力OUT1に出力され、下側の入力端の入力IN2の信号が下側の出力端の出力OUT2に出力される。
また、XOR回路646の出力が0のとき、セレクタ641は、OR回路643の出力端に接続された入力端(0)の方を選択して、出力端に出力する。同様に、その場合、セレクタ642も、AND回路645の出力端に接続された入力端(0)の方を選択して、出力端に出力する。
OR回路643の一方の入力端は、AND回路644の出力端に接続され、他方の入力端は、入力IN2に接続されている。AND回路644の一方の入力端には、インバータを介して1が入力されているので、AND回路644の出力は、入力IN1の入力データをOR回路643の一方の入力端に出力する。また、OR回路643の他方の入力端には、入力IN2が入力されている。しかし、デコーダ400からの8つの出力のうち、1つの出力のみが1であるので、入力IN1とIN2は、共に0か、あるいは一方が1で他方が0である。従って、OR回路643の出力は、入力IN1とIN2のいずれかが1であれば、1となる。また、OR回路643の出力は、入力IN1とIN2が共に0であれば、0となる。
また、セレクタ642は、AND回路645の出力端に接続された入力端(0)の方を選択して、出力端に出力する。AND回路645の一方の入力端は、モード入力Mに接続されて0が入力されているので、AND回路645の出力は、常に0となる。よって、AND回路645の出力である0が、セレクタ642を介して、出力OUT2に出力される。
従って、モード入力Mが0のとき、制御入力C1が0ならば、2つの入力IN1,IN2のうちいずれかが1であれば、上側の出力端の出力OUT1に1が出力され、下側の出力端の出力OUT2に0が出力される。
すなわち、論理回路1を論理積(AND)回路として動作させるとき、制御入力C2は0であり、スイッチ素子640において、制御入力C1が1であれば、入力IN1,IN2が、それぞれ出力OUT1,OUT2に出力され、制御入力C1が0であれば、入力IN1,IN2のいずれか一方が1であれば、出力OUT1に1が出力される。
次に、以上のような構成に係る論理回路1の動作について説明する。
まず、論理回路1が、排他的論理和(XOR)の回路として機能するときの動作について説明する。
例えば、入力データBを110、入力データAを010とすると、論理回路1の出力は、100が出力される。
その場合、入力データBとして110が入力されると、デコーダ400の出力端子D6のみに出力が出るので、デコーダ400の出力は、01000000となる。第1ステージST1には制御信号として入力データAの最下位ビットである0が入力される。第1ステージST1では、制御入力C1が0であるのでそのまま出力される。従って、第1ステージST1の4つのスイッチ素子640の出力は、01000000となる。
その出力が第2ステージST2に入力されるときは、第1ステージST1と第2ステージST2間の配線接続によって、2番目のビットと3番目のビット、6番目のビットと7番目のビットが入れ替えられる。よって、第2ステージST2には0010000が入力される。第2ステージST2の制御信号C1は、1であるので、入力されたデータの隣り合うビットが入れ替えられ、第2ステージST2の4つのスイッチ素子640の出力は、00010000となる。
その出力が第3ステージST3に入力されるときは、第2ステージST2と第3ステージST3間の配線接続によって、第3ステージST3には00000010が入力される。第3ステージST3には、制御信号C1として0が入力されるので、入力されたデータがそのまま出力され、00000010となる。配線ネットワーク200の最終段では、さらにビットの入れ替えがなされ、最終的に00010000が出力される。図3において、配線ネットワーク200における入力データの経路が点線で示されている。よって、エンコーダ300において、00010000が、エンコードされて、100となる。この100は、2つの入力110と010の排他的論理和を取ったデータである。
以上のように、モード入力Mが1の場合、2つの入力データの排他的論理和が出力される。
次に、論理回路1が、論理積(AND)の回路として機能するときの動作について説明する。
例えば、入力データBを110、入力データAを010とすると、論理回路1の出力は、010が出力される。
その場合、入力データBとして110が入力されると、デコーダ400の出力端子D6のみに出力が出るので、デコーダ400の出力は、01000000となる。第1ステージST1には制御信号として入力データAの最下位ビットである0が入力される。第1ステージST1では、制御入力C1が0であるので、各スイッチ素子640においては、いずれか一方の入力に1があれば、上側の出力端に1が出力される。従って、スイッチ素子640−1−4の一方に1が入力されているので、第1ステージST1の4つのスイッチ素子640の出力は、01000000となる。
その出力が第2ステージST2に入力されるときは、第1ステージST1と第2ステージST2間の配線接続によって、2番目のビットと3番目のビット、6番目のビットと7番目のビットが入れ替えられる。よって、第2ステージST2には0010000が入力される。第2ステージST2の制御信号C1は、1であるので、各スイッチ素子640においては、上側の入力端IN1に入力された信号は、上側の出力端OUT1に出力され、下側の入力端IN2に入力された信号は、下側の出力端OUT2に出力される。よって、第2ステージST2の4つのスイッチ素子640の出力は、00100000となる。
その出力が第3ステージST3に入力されるときは、第2ステージST2と第3ステージST3間の配線接続によって、第3ステージST3には00001000が入力される。第3ステージST3には、制御信号C1として0が入力されるので、各スイッチ素子640においては、いずれか一方の入力に1があれば、上側の出力端に1が出力される。従って、スイッチ素子640−3−2の一方に1が入力されているので、第3ステージST3の4つのスイッチ素子640の出力は、00000100となる。配線ネットワーク200の最終段では、さらにビットの入れ替えがなされているが、最終的に00000100が出力される。図3において、配線ネットワーク200における入力データの経路が点線T2で示されている。よって、エンコーダ300において、00000100が、エンコードされて、010となる。この010は、2つの入力110と010の論理積(AND)を取ったデータである。
よって、モード入力Mが0の場合、2つの入力データの論理積が出力される。
以上のように、論理回路1において、デコーダ400は、2つの入力データのうち一つの入力データBを、複数の出力端子の中の1つの端子だけがHとなるようなデコードデータにデコードして、配線ネットワーク200へ出力する。そして、配線ネットワーク200は、入力された複数のビットデータの並びの順序、あるいは各データに対応する配線の順番が複数の出力端子において変わるように、制御入力C1,C2に基づいて、デコードデータのビットパターンを変更してエンコーダ300に出力する。そのとき、出力される複数のデータの中で、1つだけがHで、他はLである。そして、配線ネットワーク200の出力をエンコーダ300で所定のデータにエンコードすることによって、所定の論理演算が実行される。
また、そのとき、配線ネットワーク200は、2つの論理演算の機能を実行することができるように、構成されている。具体的には、配線ネットワーク200の各スイッチ素子640の動作が、モード入力Mの信号に基づいて変更されるように、配線ネットワーク200が構成されている。
従来であれば、上述したような、排他的論理和(XOR)と論理積(AND)の2つの機能を実行する場合は、排他的論理和の回路と論理積の回路の2つの回路を設けていた。そして、それぞれの回路が、各機能に応じて動作するように制御されていたので、半導体装置の回路面積も大きくなっていた。
しかし、上述した本実施の形態によれば、1つの配線ネットワークにおいて2つの機能を実行するために、各スイッチ素子は、モード入力に応じて、その動作が変更されるように構成したので、一つの論理回路で2つの論理演算の機能を実行できる。よって、論理回路が搭載される半導体装置の回路面積も小さくすることができる。
以上の構成によれば、論理回路1において、配線ネットワーク200では、必ず1つのHの信号だけが処理されるので、消費電力は入力されたデータに依存せず、かつ、2つの論理演算を実行することができる。
なお、以上の説明では、デコーダにより1すなわちHとなる信号は、1つだけであったが、消費電力が一定となれば、一定の複数の信号がHとなるように、すなわちハミング重みが所定の2以上になるように、論理回路を構成してもよい。
次に、本実施の形態の応用例について説明する。
図5は、本実施の形態の応用例に係る論理回路の構成を示すブロック図である。本応用例の論理回路は、より複雑な論理演算、すなわち論理演算の組合せを実行可能な論理回路である。図5の論理回路1Aは、3つの入力について、排他的論理和(XOR)と、論理積(AND)の種々の組合せを実行することができる。論理回路1Aは、3つのデコーダ400-1、400-2,400-3と、2つの配線ネットワーク200-1,200-2と、エンコーダ300を含む。2つの配線ネットワーク200-1,200-2の構成は、上述した配線ネットワーク200と同様の構成であり、それぞれの配線ネットワークに、個別にモード入力が入力されている。
図5において、3つの入力AA,BA,CAは、それぞれデコーダ400-1、400-2,400-3によってデコードされる。デコーダ400-1と400-2の出力が、配線ネットワーク200-1に入力される。配線ネットワーク200-1の出力と、デコーダ400-3の出力が、配線ネットワーク200-2に入力される。配線ネットワーク200-2の出力が、エンコーダ300に入力される。デコーダ400-2,400-3の出力は、上述した図3の入力データAのようなデータを出力するものである。なお、入力データBA,CAが、図3の入力データAのようなデータある場合は、デコーダ400-2、400-3は、無くてもよい。
このような構成によれば、論理回路1Aは、次のような論理演算の組合せの論理演算を行って、その論理演算の結果としての出力データZAを出力することができる。
(1)(AA*BA)+CA
(2)(AA*BA)*CA
(3)(AA+BA)+CA
(4)(AA+BA)*CA
なお、ここで、「*」は、論理積を示し、「+」は排他的論理和を示す。
すなわち、配線ネットワーク200-1,200-2においては、それぞれ排他的論理和(XOR)と論理積(AND)のいずれか1つを実行できる。よって、配線ネットワーク200-1において、論理積(AND)を実行し、配線ネットワーク200-2において、排他的論理和(XOR)を実行するように、2つの配線ネットワーク200-1,200-2のそれぞれにモード入力Mを与えれば、論理回路1Aは、式(1)の論理演算を実行可能となる。
配線ネットワーク200-1と200-2において、論理積(AND)を実行するように、2つの配線ネットワーク200-1,200-2のそれぞれにモード入力Mを与えれば、論理回路1Aは、式(2)の論理演算を実行可能となる。
また、配線ネットワーク200-1と200-2において、排他的論理和(XOR)を実行するように、2つの配線ネットワーク200-1,200-2のそれぞれにモード入力Mを与えれば、論理回路1Aは、式(3)の論理演算を実行可能となる。
さらに、配線ネットワーク200-1において、排他的論理和(XOR)を実行するようにして、配線ネットワーク200-2において、論理積(AND)を実行するように、2つの配線ネットワーク200-1,200-2のそれぞれにモード入力Mを与えれば、論理回路1Aは、式(4)の論理演算を実行可能となる。
よって、本応用例によれば、2つの配線ネットワークがそれぞれ2つの論理演算の機能を実行可能なため、一つの論理回路で、論理演算の組合せの機能を実行できる。よって、その論理回路が搭載される半導体装置の回路面積も小さくすることができる。さらに、論理回路1Aにおいて、各配線ネットワークでは、必ず1つのHの信号だけが処理されるので、消費電力は入力されたデータに依存しない。
なお、上記応用例は、入力データが3つの場合であるが、入力データは、4つ以上でも同様に、複数の配線ネットワークを組み合わせることによって、一つの論理回路で複雑な論理演算の機能を実行できる論理回路を実現することができる。
以上のように、本実施の形態及び応用例によれば、消費電力の変動を抑えつつ、論理演算の機能の変更をすることができる論理回路を実現することができる。
なお、上述した実施の形態では、2つの論理演算の機能を実行できる論理回路が説明された。また、その応用例では、その2つの論理演算の機能を実行できる論理回路の配線ネットワークを組み合わせた論理回路が説明された。
そして、2つの論理演算として、排他的論理和(XOR)と論理積(AND)の機能を挙げている。
しかし、他の論理演算、例えば、論理和(OR)等も含めて、2つの論理演算の機能を、論理回路が実行できるようにしてもよい。さらに、そのような2つの論理演算の機能を実行可能な論理回路の配線ネットワークを組み合わせて、論理回路を構成してもよい。
さらに、論理和(OR)等も含めて、3つ以上の論理演算の機能を、論理回路が実行できるようにしてもよい。さらに、そのような3つ以上の論理演算の機能を実行可能な論理回路の配線ネットワークを組み合わせて、論理回路を構成してもよい。その場合、各配線ネットワーク内の各スイッチ素子は、3つ以上の論理演算に対応して、動作が変更される。
従って、そのような場合には、1つの例である図5のような複数の配線ネットワークの組合せによる複雑な論理演算も、より論理演算の組合せの自由度もより大きくなる。
本発明は、上述した実施の形態に限定されるものではなく、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。
本発明の実施の形態に係わる論理回路の機能を説明するための図である。 本発明の実施の形態に係わる論理回路の基本構成を示すブロック図である。 本実施の形態に係わる論理回路の回路構成を示す回路図である。 本実施の形態に係わるスイッチ素子の内部の回路構成を示す回路図である。 本実施の形態の応用例に係る論理回路の構成を示すブロック図である。
符号の説明
1,1A 論理回路、2,200 配線ネットワーク、3,300 エンコーダ、4,400 デコーダ、640 スイッチ素子

Claims (5)

  1. 論理演算の機能が互いに異なる第1及び第2の論理演算を実行可能な論理回路であって、
    1又は2以上の2進数の第1の入力データに対して、該第1の入力データのハミング重みと関係なく、ハミング重みが一定となる第1の複数のビットデータに変換するデコーダと、
    該デコーダに接続され、前記デコーダにより変換された前記第1の複数のビットデータを受信し、前記第1及び第2の論理演算のいずれを実行するかを指定する制御入力と第2の入力データとに応じて、受信した前記第1の複数のビットデータのビット位置を入れ替えることによって、前記第1の複数のビットデータのビットパターンを変更して、第2の複数のビットデータを生成する配線ネットワークと、
    該配線ネットワークに接続され、前記配線ネットワークにおいて生成された前記第2の複数のビットデータを、1又は2以上の2進数の出力データに変換するエンコーダと、
    を有することを特徴とする論理回路。
  2. 前記第1の複数のビットデータは、前記ハミング重みが1又は2以上のビットデータであることを特徴とする請求項1に記載の論理回路。
  3. 前記配線ネットワークは、複数のスイッチ素子を有し、
    前記複数のスイッチ素子は、複数のグループに分割して設けられ、
    前記配線ネットワークは、前記第1の複数のビットデータを受信する第1のグループと、該第1のグループの複数のスイッチ素子の出力を受信する第2のグループとを含むことを特徴とする請求項2に記載の論理回路。
  4. 前記複数のスイッチ素子のそれぞれは、2つの入力端と、2つの出力端と、前記制御入力及び前記第2の入力データを入力する2つの制御入力端とを有し、
    各スイッチ素子は、前記制御入力及び前記第2の入力データに応じて、前記2つの入力端に入力された前記第1の複数のビットデータ中の2つのビットデータを変更して、前記2つの出力端から出力可能であることを特徴とする請求項3に記載の論理回路。
  5. 少なくとも3つの入力データに対して、複数の論理演算の組合せを実行可能な論理回路であって、
    1又は2以上の2進数の第1の入力データに対して、該第1の入力データのハミング重みと関係なく、ハミング重みが一定となる第1の複数のビットデータに変換するデコーダと、
    該デコーダに接続され、前記デコーダにより変換された前記第1の複数のビットデータを受信し、論理演算の機能が互いに異なる2つの論理演算のいずれを実行するかを指定する第1の制御入力と第2の入力データとに応じて、受信した前記第1の複数のビットデータのビット位置を入れ替えることによって、前記第1の複数のビットデータのビットパターンを変更して、第2の複数のビットデータを生成する第1の配線ネットワークと、
    該第1の配線ネットワークに接続され、前記第1の配線ネットワークにより生成された前記第2の複数のビットデータを受信し、論理演算の機能が互いに異なる2つの論理演算のいずれを実行するかを指定する第2の制御入力と第3の入力データとに応じて、受信した前記第2の複数のビットデータのビット位置を入れ替えることによって、前記第2の複数のビットデータのビットパターンを変更して、第3の複数のビットデータを生成する第2の配線ネットワークと、
    該第2の配線ネットワークに接続され、前記第2の配線ネットワークにおいて生成された前記第3の複数のビットデータを、1又は2以上の2進数の出力データに変換するエンコーダと、
    を有することを特徴とする論理回路。
JP2007018386A 2007-01-29 2007-01-29 論理回路 Expired - Fee Related JP4851947B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007018386A JP4851947B2 (ja) 2007-01-29 2007-01-29 論理回路
US12/019,250 US20080183793A1 (en) 2007-01-29 2008-01-24 Logic circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007018386A JP4851947B2 (ja) 2007-01-29 2007-01-29 論理回路

Publications (2)

Publication Number Publication Date
JP2008187384A JP2008187384A (ja) 2008-08-14
JP4851947B2 true JP4851947B2 (ja) 2012-01-11

Family

ID=39669163

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007018386A Expired - Fee Related JP4851947B2 (ja) 2007-01-29 2007-01-29 論理回路

Country Status (2)

Country Link
US (1) US20080183793A1 (ja)
JP (1) JP4851947B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5203594B2 (ja) * 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法
JP5458611B2 (ja) * 2009-03-13 2014-04-02 ソニー株式会社 暗号処理装置
KR101689159B1 (ko) 2015-07-10 2016-12-23 울산과학기술원 3진수 논리회로
DE102015213300A1 (de) * 2015-07-15 2017-01-19 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur Erzeugung einer Geräte-spezifischen Kennung und Geräte umfassend einen personalisierten programmierbaren Schaltungsbaustein

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3564514A (en) * 1969-05-23 1971-02-16 Honeywell Inc Programmable logic apparatus
US3593317A (en) * 1969-12-30 1971-07-13 Ibm Partitioning logic operations in a generalized matrix system
US3812467A (en) * 1972-09-25 1974-05-21 Goodyear Aerospace Corp Permutation network
JPS558135A (en) * 1978-07-04 1980-01-21 Mamoru Tanaka Rewritable programable logic array
US4233667A (en) * 1978-10-23 1980-11-11 International Business Machines Corporation Demand powered programmable logic array
NZ198054A (en) * 1981-08-17 1986-05-09 New Zealand Dev Finance Polernary logic:multilevel circuits
US4663500A (en) * 1982-02-22 1987-05-05 Nec Corporation Cryptographic system
US4569052A (en) * 1983-07-14 1986-02-04 Sperry Corporation Coset code generator for computer memory protection
JPH073838B2 (ja) * 1985-02-28 1995-01-18 株式会社東芝 半導体集積回路
US4802217A (en) * 1985-06-07 1989-01-31 Siemens Corporate Research & Support, Inc. Method and apparatus for securing access to a computer facility
JP2564044B2 (ja) * 1991-02-27 1996-12-18 株式会社東芝 プログラマブル論理回路
JP3029381B2 (ja) * 1994-01-10 2000-04-04 富士通株式会社 データ変換装置
US5425103A (en) * 1994-03-14 1995-06-13 Shaw; William Y. Variable-key cryptography system
US5768390A (en) * 1995-10-25 1998-06-16 International Business Machines Corporation Cryptographic system with masking
US6510518B1 (en) * 1998-06-03 2003-01-21 Cryptography Research, Inc. Balanced cryptographic computational method and apparatus for leak minimizational in smartcards and other cryptosystems
TW465190B (en) * 1998-11-26 2001-11-21 Ibm Circuit and method for implementing combinatorial logic functions
GB2365153A (en) * 2000-01-28 2002-02-13 Simon William Moore Microprocessor resistant to power analysis with an alarm state
JP2008099204A (ja) * 2006-10-16 2008-04-24 Toshiba Corp 論理回路
JP5203594B2 (ja) * 2006-11-07 2013-06-05 株式会社東芝 暗号処理回路及び暗号処理方法

Also Published As

Publication number Publication date
JP2008187384A (ja) 2008-08-14
US20080183793A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
US8155317B2 (en) Encryption processing circuit and encryption processing method
Gladshtein Quantum-dot cellular automata serial decimal adder
JP4851947B2 (ja) 論理回路
JP3274668B2 (ja) 演算処理装置及び演算処理方法
US7583207B2 (en) Logic circuit
EP1146652B1 (en) High speed coding apparatus for convolutional codes
KR100864363B1 (ko) 부호화 회로 및 디지털 신호 처리 회로
SK12472000A3 (sk) Spôsob blokového kódovania diskrétnych dát
JP5724601B2 (ja) Crc演算回路及びプロセッサ
JP4595055B2 (ja) ガロア体のα乗算回路および演算回路
JP6162429B2 (ja) 階層構造の演算回路
JP2011244212A (ja) ビット変換回路、転送ユニット、通信システム、ビット変換方法及びプログラム
JP3622905B2 (ja) 符号化演算回路
US20070075735A1 (en) xB/yB coder programmed within an embedded array of a programmable logic device
JP2007088677A (ja) D/a変換器及びそれを用いたシステム、並びに、d/a変換方法
JP4322063B2 (ja) 送信装置
JP2011155330A (ja) 伝送システム
JP4280172B2 (ja) バーグラフコード変換方法
US8095848B1 (en) Multi-byte cyclic redundancy check calculation circuit and method of operating the same
JP3348086B2 (ja) ビタビ復号装置およびビタビ復号方法
JP4803829B2 (ja) ビットカウント方法およびビットカウント回路
JP2000114986A (ja) 符号化方法及び装置
WO2002056480A1 (fr) Decodeur de viterbi
KR20040009425A (ko) 고속 엔코더
JPH11213268A (ja) 警報転送装置および警報転送方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090312

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110916

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111021

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees