JP3272724B2 - バレルシフタ - Google Patents

バレルシフタ

Info

Publication number
JP3272724B2
JP3272724B2 JP51233393A JP51233393A JP3272724B2 JP 3272724 B2 JP3272724 B2 JP 3272724B2 JP 51233393 A JP51233393 A JP 51233393A JP 51233393 A JP51233393 A JP 51233393A JP 3272724 B2 JP3272724 B2 JP 3272724B2
Authority
JP
Japan
Prior art keywords
input
barrel shifter
output
circuit
shifter unit
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
JP51233393A
Other languages
English (en)
Inventor
栄一 西村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Application granted granted Critical
Publication of JP3272724B2 publication Critical patent/JP3272724B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • G06F5/015Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising having at least two separately controlled shifting levels, e.g. using shifting matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Shift Register Type Memory (AREA)
  • Logic Circuits (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は、数値演算プロセッサ等に用いられ、任意の
ビットが左右いずれの方向にもシフト可能なバレルシフ
タに関するものである。
背景技術 従来、この種のバレルシフタとしては、例えば特開昭
60−236197号公報に記載されるものがあった。
前記文献に記載されているように、バレルシフタは、
入力データに対して必要に応じて所望桁だけ1度にビッ
トシフトを行う回路であり、その構成例を図13〜図16に
示す。
図13は、前記文献に記載された従来の右シフト用4ビ
ットバレルシフタの構成例を示すブロック図である。
この右シフト用4ビットバレルシフタは、データ長4
ビットからなる4段のバレルシフタ単位回路(ビットス
ライス)10〜13を有し、それらの各入出力端子がデータ
ライン15によって相互に接続されている。各段のバレル
シフタ単位回路10〜13は、デコーダ20から出力されるア
ドレス信号によってシフト量が設定されるようになって
いる。
図14は、図13におけるデータ長4ビットの各バレルシ
フタ単位回路10〜13の一構成例を示す回路図である。
このデータ長4ビットのバレルシフタ単位回路は、N
チャネル型のMOSトランジスタを使用して1ビットを構
成している。すなわち、バレルシフタ単位回路は、入力
端子I、デコーダ20の出力側に接続されているアドレス
端子A0〜A3、バレルシフタ単位回路間をデータライン15
で接続される入出力端子I0〜I3、出力端子O、入力側イ
ンバータ29、Nチャネル型MOSトランジスタからなるト
ランスファゲート30〜33、電源電位Vccに接続されたプ
ルアップ用のPチャネル型MOSトランジスタ34、及び出
力側インバータ35を備えている。
入力端子Iはインバータ29を介して入出力端子I0に接
続されている。各アドレス端子A0〜A3は、トランスファ
ーゲート30〜33のゲート電極にそれぞれ接続されてい
る。また、これらの各トランスファーゲート30〜33の一
方の端子は入出力端子I0〜I3に接続され、他方の端子は
インバータ35の入力部に共通接続されている。このイン
バータ35の出力部は出力端子Oに接続されている。
次に、以上のように構成される右シフト用4ビットバ
レルシフタの動作を説明する。
図13において、各バレルシフタ単位回路10〜13の入力
端子Iに4ビットの入力データDI0〜DI3は、デコーダ20
から出力されるアドレス信号に基づき、右方向に所望の
桁だけそれぞれシフトし、各バレルシフタ単位回路10〜
13の出力端子Oから出力データDO0〜DO3として出力され
る。
図15は、前記文献に記載された従来の左シフト用4ビ
ットバレルシフタの構成ブロック図である。この左シフ
ト用4ビットバレルシフタは、図13のバレルシフタに対
し、データライン15の接続方向をかえることで、入力デ
ータの左シフトを行うようになっている。
しかしながら、上記構成のバレルシフタでは、バレル
シフタ単位回路間のデータライン15の接続方向で、右シ
フトか、あるいは左シフトかが決まり、左右いずれか一
方のみのシフトしかできなかった。そのため、左右両方
のシフトを実現するためには、次のような手段を講じな
ければならなかった。
すなわち、第1の手段は、図13の右シフト用バレルシ
フタと図15の左シフト用バレルシフタとをそれぞれ用意
することで、また、第2の手段は、図16のような回路構
成にすることである。
図16は、従来の両方向シフト用4ビットバレルシフタ
の構成例を示すブロック図である。このバレルシフタで
は、図14に示すバレルシフタの入力側にセレクタ40〜43
を設けると共に、出力側にもセレクタ50〜53を設け、そ
れらのセレクタ40〜43、50〜53を切り替えることによっ
て左右両方向のシフトを実現している。
ところが、このように右シフト用バレルシフタと左シ
フト用バレルシフタを組み合わせたり、あるいは図16の
ような回路構成にすると、素子数が多くなって回路規模
が大型化するという問題があった。
発明の開示 第1の発明は、前記従来技術が持っていた課題であ
る、左右両方向シフトを実現しようとすると回路規模が
増大するという点について解決した左右両方向シフト可
能なバレルシフタを提供するものである。
第2の発明は、演算回路において通常行われる上位ビ
ットの符号拡張を行う符号拡張回路および下位ビットの
0埋めを行う0埋め回路を有する左右両方向シフト可能
なバレルシフタを提供するものである。
第3の発明は、この符号拡張および0埋めを省面積で
行う左右両方向シフト可能なバレルシフタを提供するも
のである。
第1の発明のバレルシフタは、第1から第N(N;N>
=2、自然数)の入出力ノードと、出力端子と、入力端
子と、前記出力端子と前記第1から第Nの入力端子との
間にそれぞれ接続された第1から第Nのスイッチング素
子と、前記入力端子に入力部が接続され、前記第1番目
の入出力ノードおよび第N番目の入出力ノードに出力部
が接続された左右シフト選択回路であって、左右シフト
信号に対応して、前記第1番目の入出力ノードもしくは
前記第N番目の入出力ノードにデータを出力する左右シ
フト選択回路と、を有するバレルシフタ単位回路をM段
(M;M>=1、自然数)有するバレルシフタであって、
前記各段のバレルシフタ単位回路の前記第1から第Nの
スイッチング素子をそれぞれ共通に駆動するための信号
線であって、第1から第Nの信号をそれぞれ有する第1
から第Nの信号線と、前記M段のバレルシフタ単位回路
のうち、P(P;1=<P<M、自然数)段目のバレルシ
フタ単位回路と、(P+1)番目のバレルシフタ単位回
路とを接続する第1から第(N−1)の接続線であっ
て、前記第1から第(N−1)の接続線の内、Q(Q;1
<Q<=(N−1))番目の接続線は、前記P段目のバ
レルシフタ単位回路の第Q番目の入出力ノードと、前記
(P+1)段目のバレルシフタ単位回路の第(Q+1)
番目の入出力ノードとを接続する第1から第(N−1)
の接続線を有する。
第2の発明のバレルシフタは、前記第1の発明のバレ
ルシフタの前記M段のバレルシフタ単位回路のうち前記
第1段目のバレルシフタ単位回路の入力端子に入力部が
接続され、前記第1段目のバレルシフタ単位回路の第1
から第(N−1)番目の入出力ノードに出力部が接続さ
れた符号拡張用トライステートバッファと、前記M段の
バレルシフタ単位回路のうち前記第M段目のバレルシフ
タ単位回路の第2から第N番目の入出力ノードに出力部
が接続され、グランドに入力部が接続されたゼロ埋め用
トライステートバッファと、を有する。
第3の発明のバレルシフタは、第1から第N(N;N>
=2、自然数)の入出力ノードと、入力端子と、出力端
子と、前記出力端子と前記第1から第Nの入力端子との
間にそれぞれ接続された第1から第Nのスイッチング素
子と、を有するバレルシフタ単位回路をM段(M;M>=
I、自然数)有し、前記M段のバレルシフタ単位回路の
うち、P(P;1=<P<M、自然数)段目のバレルシフ
タ単位回路と、(P+1)番目のバレルシフタ単位回路
とを接続する第1から第(N−1)の接続線であって、
前記第1から第(N−1)の接続線の内、Q(Q;1<Q
<=(N−1))番目の接続線は、前記P段目のバレル
シフタ単位回路の第Q番目の入出力ノードと、前記(P
+1)段目のバレルシフタ単位回路の第(Q+1)番目
の入出力ノードとを接続する第1から第(N−1)の接
続線と、左右シフト信号を有する左右シフト信号線と、
を有するバレルシフタであって、前記第1段目のバレル
シフタ単位回路は、前記第1段目のバレルシフタ単位回
路の前記第1番目の入出力ノードが前記第M段目のバレ
ルシフタ単位回路の出力端子に接続され、前記第1番目
のバレルシフタ単位回路の前記入力端子に入力部が接続
され、前記第N番目の入出力ノードに出力部が接続され
た右シフト用バッファ回路を有するバレルシフタ単位回
路であって、前記第2〜第(M−1)段目のバレルシフ
タ単位回路のうち、R段目(2<=P<=M)のバレル
シフタ単位回路は、前記入力端子および前記第1段目の
バレルシフタ単位回路の入力端子に入力部が接続され、
前記第1番目の入出力ノードに出力部が接続された選択
回路と、前記入力端子および前記左右シフト信号線に入
力部が接続され、前記第N番目の入出力ノードに出力部
が接続された論理回路と、を有するバレルシフタ単位回
路であって、前記第M段目のバレルシフタ単位回路は、
前記第M段目のバレルシフタ単位回路の入力端子に入力
部が接続された左シフト用バッファ回路と、前記第M段
目のバレルシフタ単位回路の前記第1番目の入出力ノー
ドに出力部が接続され、前記第M段目のバレルシフタ単
位回路の入力端子および前記第1段目のバレルシフタ単
位回路の入力端子に入力部が接続された選択回路と、前
記第M段目のバレルシフタ単位回路の入力端子および前
記左右シフト信号線に入力部が接続され、前記第N番目
の入出力ノードに出力部が接続された論理回路と、を有
する。
図面の簡単な説明 図1は本発明の第1の実施例で用いられるバレルシフ
タ単位回路の回路図である。
図2は本発明の第1の実施例を示す左右両方向3ビッ
トバレルシフタの構成ブロック図である。
図3は図2中のデコーダの回路図である。
図4は本発明の第2の実施例を示す左右両方向3ビッ
トバレルシフタの構成ブロック図である。
第5は本発明の第3の実施例を示す左右両方向3ビッ
トバレルシフタの構成ブロック図である。
図6は図5中のバレルシフタ単位回路の回路図であ
る。
図7は図5中のセレクタの回路図である。
図8は本発明の第1の実施例に対応する左右両方向M
ビットバレルシフタの構成ブロック図である。
図9は図8中のバレルシフタ単位回路の回路図であ
る。
図10は本発明の第2の実施例に対応する左右両方向M
ビットバレルシフタの構成ブロック図である。
図11は本発明の第3の実施例に対応する左右両方向M
ビットバレルシフタの構成ブロック図である。
図12は図11中のバレルシフタ単位回路の回路図であ
る。
図13は従来の右シフト用4ビットバレルシフタを示す
構成ブロック図である。
図14は図13中のバレルシフタ単位回路の回路図であ
る。
図15は従来の左シフト用4ビットバレルシフタを示す
構成ブロック図である。
図16は従来の両方向シフト用4ビットバレルシフタを
示す構成ブロック図である。
発明を実施するための最良の形態 [第1の実施例] 図2は、本発明の第1の実施例を示す左右両方向3ビ
ットバレルシフタの構成ブロック図である。
この左右両方向の3ビットバレルシフタは、4段の左
右両方向バレルシフタ単位回路100〜103を備え、それら
の入出力端子がデータライン350によって相互に接続さ
れている。そして、各バレルシフタ単位回路100〜130が
デコーダ200から出力されるアドレス信号によって所望
の桁だけシフト動作する。このデコーダ200には、左右
シフト入力端子Sから左右シフト信号DSが入力され、シ
フト量データ入力端子D0,D1からシフト量データ信号DD
0,DD1が入力される。このように、各端子に入力される
信号、あるいは各端子から出力される信号の符号は、対
応する端子を示す符号の前にDを付けて示した。この左
右シフト信号DSによってシフト方向が設定され、シフト
量データ信号DD0,DD1によってシフト量が決まる。その
結果、入力データDI0〜DI3がシフト量だけシフトされ、
各バレルシフタ単位回路100〜103の出力端子O0〜O3から
出力データDO0〜DO3の形で出力される。
図1は、図2における各左右両方向バレルシフタ単位
回路100〜103の構成を示す回路図である。以下に説明す
るXの数値は、左右両方向バレルシフタ単位回路100の
場合;X=0、101の場合;X=1、102の場合X=2、103
の場合;X=3である。
図1に示す左右両方向バレルシフタ単位回路は、入力
データDIXが入力されるデータ入力端子IX、左右シフト
信号DSが入力される左右シフト信号入力端子S、アドレ
ス信号DA0〜DA3がそれぞれ入力されるアドレス端子A0〜
A3、データの入出力を行う入出力端子(入出力ノード)
I0X〜I3X、出力データDOXを出力する出力端子OX、左シ
フト用のトライステートバッファ11X、右シフト用トラ
イステートバッファ12X、左右シフト信号DSを反転する
インバータ13X、Nチャネル型MOSトランジスタからなる
トランスファーゲート16X〜19X、プルアップ用のMOSト
ランジスタ14X、及び出力用インバータ15Xを有してい
る。
入力端子IXは、左シフト用トライステートバッファ11
X及び右シフト用トライステートバッファ12Xをそれぞれ
介して入出力端子I0X,I3Xに接続されている。左右シフ
ト信号入力端子Sは、左シフト用トライステートバッフ
ァ11Xの制御端子に接続されると共に、インバータ13Xを
介して右シフト用トライステートバッファ12Xの制御端
子に接続されている。左右シフト信号DSが“0"のとき、
トライステートバッファ11Xが動作、トライステートバ
ッファ12Xが非動作状態となり、トライステートバッフ
ァ12Xの出力が不定“Z"になる。また、左右シフト信号D
Sが“1"のとき、トライステートバッファ12Xが動作、ト
ライステートバッファ11Xが非動作状態となり、トライ
ステートバッファ11Xの出力が不定“Z"になる。
アドレス端子A0〜A3は、図2に示すデコーダ200によ
って、1端子のみが活性化される。すなわち1端子のみ
に“1"が入力される端子であり、トランスファーゲート
16X〜19Xの各ゲート電極に接続されている。各トランス
ファーゲート16X〜19Xの一方の端子はそれぞれ入出力端
子I0X〜I3Xに接続され、他方の端子は、出力用インバー
タ15Xを介して出力端子OXに共通接続されている。出力
用インバータ15Xの入力部および出力部には、それぞれM
OSトランジスタ14Xのソース、ゲートが接続され、MOSト
ランジスタ14Xのドレインは電源電位Vccに接続されてい
る。
図3は、図2中のデコーダ200の構成例を示す回路図
である。このデコーダ200は、通常のデコーダの入力側
に、反転信号を生成するセレクタを設けたもので、図2
の3ビットバレルシフタのシフト量を生成する機能を有
している。すなわち、このセレクタは、左右シフト信号
入力端子S、およびシフト量データ入力端子D0,D1にそ
れぞれ接続されたインバータ201〜203および、Nチャネ
ル型MOSトランジスタとPチャネル型MOSトランジスタと
が並列接続されて構成されたPNトランスファーゲート20
4〜207を有している。このインバータ202、203の出力部
には、PNトランスファーゲート205、207の一方の端子が
それぞれ接続されている。また、PNトランスファーゲー
ト204、206の一方の端子は、シフト量データ入力端子D
0、D1にそれぞれ接続されている。PNトランスファーゲ
ート204〜207の一方のゲートはインバータ201の出力部
に接続され、他方のゲートは左右シフト信号入力端子S
に接続されている。さらに、PNトランスファーゲート20
4、205の他方の端子はインバータ208の入力部に接続さ
れると共に、2入力NORゲート210および212の入力部に
接続されている。また、PNトランスファーゲート206、2
07の他方の端子はインバータ209の入力部に接続される
と共に、2入力NORゲート210および211の入力部に接続
されている。これらインバータ208、209の出力部は、そ
れぞれ2入力NORゲート211および213の入力部、2入力N
ORゲート212および213の入力部に接続されている。これ
ら2入力NORゲート210〜213の出力部は、図1および図
2中にも示すアドレス端子A0〜A3がそれぞれ接続されて
いる。このデコーダ200の真理値表を表1に示す。
次に、図1〜図3に示す左右両方向3ビットバレルシ
フタの動作を、表1のデコーダ真理値表を参照して説明
する。
この表1(左)は、左右両方向3ビットバレルシフタ
の左シフト動作を、左右シフト信号入力端子S、および
シフト量データ入力端子D1、D0にそれぞれ入力される信
号DS、DD1、およびDD2に対応して、上からスルー、左1
ビットシフト、左2ビットシフト、及び左3ビットシフ
トの順に示している。このスルーは、シフト動作を行わ
ず入力データをそのまま出力させる動作である。
まず、左1ビットシフトを例にして説明する。左右シ
フト信号入力端子Sおよびシフト量データ入力端子D1,D
0に信号“0"、“0"、“1"を入力すると、デコーダ200内
のセレクタ204、206が動作、セレクタ205、207が非動作
状態となり、NORゲート210〜213を介してデコーダ200の
出力が{A0,A1,A2,A3}={0、1、0、0}となる。
従って、図1に示すバレルシフタ単位回路100〜103で
は、アドレス端子A1に接続されているトランスファゲー
ト17Xのみが動作状態になる。よって各バレルシフタ単
位回路100〜103の出力端子OXには、入出力端子I1Xの信
号がそれぞれインバータ15Xで反転されて出力される。
また、左右シフト信号DSが“0"なのでトライステート
バッファ11Xが動作し、入力端子IXに入力された入力デ
ータDIXは、左シフト用トライステートバッファ11Xで反
転され、入出力端子I0X上に出力される(図1)。ここ
で、図2に示すように、バレルシフタ単位回路101の入
出力端子I11はバレルシフタ単位回路100の入出力端子I0
0に接続しているので、入力データDI0がバレルシフタ単
位回路101の出力端子O1から出力データDO1として出力さ
れる。また、バレルシフタ単位回路102の入力端子I12
は、バレルシフタ単位回路101の入出力端子I01に接続し
ているので、入力データDI1がバレルシフタ単位回路102
の出力端子O2から出力データDO2として出力される。さ
らに、バレルシフタ単位回路103の入出力端子I13は、バ
レルシフタ単位回路102の入出力端子I02に接続している
ので、入力データDI2がバレルシフタ単位回路103の出力
端子O3から出力データDO3として出力される。このよう
に、入力データDI0,DI1およびDI2は、左1ビットシフト
してバレルシフト単位回路101、102、103の出力端子O
1、O2、O3からそれぞれ出力データDO1、DO2、DO3として
出力される。
ここで、一般に演算回路においては、バレルシフタ単
位回路100の出力端子O0からは“0"が出力データDO0とし
て出力される。このように、左シフト時の下位ビットは
0埋めがなされる。この0埋め回路およびその動作につ
いては、実施例2で詳述する。
次に、表1(右)は、左右両方向3ビットバレルシフ
タの右シフト動作を、左右シフト信号入力端子Sおよび
シフト量データ入力端子D1、D0にそれぞれ入力される信
号DS、DD1およびDD0に対応して、上からスルー、右1ビ
ットシフト、右2ビットシフト、及び右3ビットシフト
の順に示している。この右2ビットシフトを例にして説
明する。入力端子S,D1,D0に記号“0"、“0"、“1"を入
力すると、デコーダ200の出力が{A0、A1、A2、A3}=
{0、1、0、0}となる。従って、図1に示すバレル
シフタ単位回路100〜103では、アドレス端子A1に接続さ
れているトランスファゲート17Xのみが動作する。よっ
て出力端子OXには、入出力端子I1X上の信号がインバー
タ15Xで反転され出力される。
また、入力端子Sが“1"なので右シフト用トライステ
ートバッファ12Xが動作し、入力端子IXに入力される入
力データDIXは、バッファ12Xで反転され入出力端子I3X
上に出力される(図1)。ここで、バレルシフタ単位回
路101の入出力線I11は、バレルシフタ単位回路103の入
出力端子I33に接続しているので、入力データDI3が出力
端子O1から出力データDO1として出力される。また、バ
レルシフタ単位回路100の入出力線I10は、バレルシフタ
単位回路102の入出力線I32に接続しているので、入力デ
ータDI2が出力端子O0から出力データDO0として出力され
る。このように、入力データDI3およびDI2は、右に2ビ
ットシフトしてバレルシフタ単位回路101、100の出力端
子O1、O0から出力データDO1、DO0としてそれぞれ出力さ
れる。
ここで、一般に演算回路においては、バレルシフタ単
位回路103、102の出力端子O3、O2からはデータ入力端子
に入力される入力データDI3が出力データDO3、DO2とし
てそれぞれ出力される。このように、右シフト時の上位
ビットは最上段のバレルシフタ単位回路の入力端子に入
力される入力データと同一のデータが出力される(符号
拡張)。この符号拡張回路およびその動作については、
実施例2で詳述する。
ここでは、左1ビットシフトおよび右2ビットシフト
を例に詳細に説明したが、左右シフト信号DSおよびシフ
ト量データ信号DD1,DD0を表1に示すように適宜選択す
れば、スルー、左2および左3ビットシフト、および右
1および右3ビットシフトも同様に行うことができる。
表2および表3にそれぞれスルー、左1、2、3ビット
シフト、およびスルー、右1、2、3ビットシフト時の
各出力端子O0〜O3に出力されるデータを示す。
以上のように、本実施例では、各バレルシフタ単位回
路100〜103内に左右両方向にシフトを可能にするトライ
ステートバッファ11X、12Xを設けたので、デコーダ200
の左右シフト信号入力端子Sに入力する左右シフト信号
DSにより、左あるいは右方向のシフトを行うことができ
る。このように、各バレルシフタ単位回路100〜103内に
トライステートバッファ11X、12Xを設けるのみで、左右
両方向のシフトが可能になるので、従来に比べ付加する
回路素子数が少なくなり、回路規模の増大を抑制でき、
回路を形成するためのパターン面積を小さくすることが
できる。
[第2の実施例] 先述したように、通常、演算回路においては、左シフ
ト時の下位ビットおよび右シフト時の上位ビットは、そ
れぞれ0埋め、符号拡張がなされる。これら0埋め、符
号拡張は、図4に示すように0埋め回路300、符号拡張
回路310を、図2に示すバレルシフタに接続することに
よって行うことができる。
0埋め回路300は、0埋め用トライステートバッファ3
01で構成され、この0埋め用トライステートバッファ30
1の駆動は左右シフト信号DSにより行われる。すなは
ち、0埋め用トライステートバッファ301の制御端子は
左右シフト信号入力端子Sに接続され、左右シフト信号
DSが“0"のとき、0埋め用トライステートバッファ301
が動作状態となる。図4に示す左右両方向3ビットバレ
ルシフタ回路の場合、0埋め用トライステートバッファ
301の出力部はバレルシフタ単位回路100の入出力端子I1
0、I20、およびI30に接続され、0埋め用トライステー
トバッファ301の入力部はグランドに接続されている。
実施例1で説明した左1ビットシフトの場合、バレル
シフタ単位回路100では、トランスファゲート170〜190
のうち、170のみが動作状態であるので、出力端子O0に
は入出力端子I10上の信号がインバータ150で反転され出
力される。また、左右シフト信号DSは“0"であるので、
0埋め用トライステートバッファ301が動作し、バレル
シフタ単位回路100の入出力端子I10は0埋め用トライス
テートバッファ301を介してグランドに接続される。従
って、出力端子O0からは、“0"が出力データDO0として
出力される。この0埋め回路のインバータの出力部は、
最下段のバレルシフタ単位回路の左シフト用トライステ
ートバッファと接続されている入出力端子以外の入出力
端子に接続すればよい。
次に、符号拡張回路310は、符号拡張用トライステー
トバッファ311、および左右シフト信号反転用インバー
タ312で構成され、この符号拡張用トライステートバッ
ファ311は、左右シフト信号の反転信号によって駆動さ
れる。すなわち、符号拡張用トライステートバッファ31
1の制御端子はインバータ312の出力部に接続され、この
インバータ312の入力部は左右シフト信号入力端子Sに
接続されている。この左右シフト信号入力端子Sに入力
される左右シフト信号DSが“1"のとき、この信号がイン
バータ312で反転され、符号拡張用トライステートバッ
ファ311の制御端子に入力される。この時、符号拡張用
トライステートバッファ311は動作状態となる。図4に
示す左右両方向3ビットバレルシフタ回路の場合、符号
拡張用トライステートバッファ311の出力部はバレルシ
フタ単位回路103の入出力端子I03、I13、およびI23に接
続され、符号拡張用トライステートバッファ3110埋め用
トライステートバッファ301の入力部は、入力端子I3に
接続されている。
実施例1で説明した右2ビットシフトの場合、バレル
シフタ単位回路103、102のトランスファゲート173、172
が動作状態であるので、出力端子O3、O2には入出力端子
I13、I12上の信号がそれぞれインバータ153、152で反転
され出力される。また、符号拡張用トライステートバッ
ファ311は動作状態であるので、バレルシフタ単位回路1
03の入出力端子I13、およびI23は符号拡張用トライステ
ートバッファ311、を介して入力端子I3に接続される。
また、入出力端子I23は、バレルシフタ単位回路102の入
出力端子I12と接続している。従って、出力端子O3、お
よびO2からは、入力端子I3に入力された入力データDI3
が出力データDO3、DO2として出力される。この符号拡張
回路トライステートバッファ311の出力部は、最上段の
バレルシフタ単位回路の入出力端子のうち、右シフト用
トライステートバッファと接続されている入出力端子以
外の入出力端子に接続すればよい。
ここでは、左1ビットシフトおよび右2ビットシフト
を例に説明したが、左2、左3および右1、右3ビット
シフトの場合も、それぞれ同様に0埋めもしくは符号拡
張が行われる。表4および表5にそれぞれスルー、左
1、2、3ビットシフトおよび、スルー、右1、2、3
ビットシフト時の各出力端子O0〜O3に出力されるデータ
を示す。
以上のように、第2の実施例では、左右両方向バレル
シフタ回路内に、右シフト時に、最上段のバレルシフタ
単位回路の入力データを、同バレルシフタ単位回路の右
シフト用トライステートバッファに接続されていない入
出力端子上に出力する符号拡張回路を設けた。従って、
右シフト時の上位ビットには最上位の入力データと同一
のデータを出力する(符号拡張)ことができる。また、
左シフト時に、グランドレベル“0"を、最下段のバレル
シフタ単位回路の左シフト用トライステートバッファに
接続されていない入出力端子上に出力する0埋め回路を
設けた。従って、左シフト時の下位ビットに0埋めを行
うことができる。
また、左右両方向バレルシフタ回路の左シフト時の下
位ビットまたは右シフト時の上位ビットから出力される
出力データは、0埋め回路の0埋め用トライステートバ
ッファ301および符号拡張回路のインバータ310の入力部
を、それぞれ電源電位、グランドあるいは入力端子に接
続することによって適宜選択できる。
[第3の実施例] 図5は、本発明の第3の実施例を示す左右両方向3ビ
ットバレルシフタの構成ブロック図である。図2と同じ
部所には同符号を付してある。
この左右両方向3ビットバレルシフタは、4段のバレ
ルシフタ単位回路400〜403を備え、それらの入出力端子
がデータライン350によって相互に接続されている。そ
して、各バレルシフタ単位回路400〜403の入力端子I0〜
I3に入力される入力データDI0〜DI3が、デコーダ200か
ら出力されるアドレス信号DA0〜DA3によって所望の桁だ
けシフト動作し、各バレルシフタ単位回路400〜403の出
力端子O0〜O3から出力データDO0〜DO3として出力され
る。この場合、左右シフト信号入力端子Sに入力される
左右シフト信号DSにより、シフト方向が設定され、シフ
ト量データ入力端子D0、D1に入力されるシフト量データ
信号DD0、DD1によってシフト量が決まる。
デコーダ200の内部構成は実施例1中で図3を用いて
説明したデコーダと同様の回路を用いることができる。
次に、バレルシフタ単位回路400〜403の構成について
説明する。図6は、図5に示すバレルシフタのバレルシ
フタ単位回路400〜403の構成を示す回路図である。以下
に説明するXの数値は、左右両方向バレルシフタ単位回
路400の場合;X=0、401の場合;X=1、402の場合X=
2、403の場合;X=3である。
図6に示すバレルシフタ単位回路は、セレクト信号端
子LIXおよび論理信号端子RIX、セレクト信号制御端子LS
Xおよび論理信号制御端子RSX、アドレス信号を入力する
アドレス端子A0〜A3、データの入出力を行う入出力端子
I0X〜I3X、出力データを出力する出力端子OX、左シフト
用のトライステートバッファ51X、右シフト用のトライ
ステートバッファ52X、Nチャネル型MOSトランジスタか
らなるトランスファーゲート46X〜49X、プルアップ用の
MOSトタンジスタ44X、出力用のインバータ45Xおよび、
出力端子OXを有している。
セレクト信号端子LIXは、左シフト用トライステート
バッファ51Xを介して入出力端子10Xに接続されている。
また、論理信号端子RIXは、右シフト用トライステート
バッファ52Xを介して入出力端子I3Xに接続されている。
入力端子LSXおよびRSXは、それぞれ左シフト用トライス
テートバッファ51Xおよび右シフト用トライステートバ
ッファ52Xの制御端子に接続されている。セレクト信号
制御端子LSXに入力される信号が“0"のとき、トライス
テートバッファ51Xが動作状態となり、論理信号制御端
子RSXに入力される信号が“0"のとき、トライステート
バッファ52Xが動作状態となる。
アドレス端子A0〜A3には、図3に示すデコーダ200か
ら出力されるアドレス信号が入力され、1端子のみが活
性化される端子であり、トランスファーゲート46X〜49X
の各ゲート電極に接続されている。各トランスファーゲ
ート46X〜49Xの一方の端子はそれぞれ入出力端子I0X〜I
3Xに接続され、他方の端子は、インバータ45Xの入力部
に共通接続されている。このインバータ45Xの出力部は
出力端子OXに接続されている。また、インバータ45Xの
入力部および出力部には、それぞれMOSトランジスタ44X
のソース、ゲートが接続され、MOSトランジスタ44Xのド
レインは電源電位Vccに接続されている。
このバレルシフタ単位回路400〜403の内、バレルシフ
タ単位回路400〜402(X=0,1,2)は、それぞれ左シフ
ト時に下位ビットの0埋めを行い、右シフト時にはシフ
ト動作に関与する2入力AND回路530〜532および右シフ
ト時に上位ビットの符号拡張を行い、左シフト時にはシ
フト動作に関与するセレクタ540〜542に接続されてい
る。まず、2入力AND回路530〜532の一方の入力は、そ
れぞれ入力端子I0、I1、I2に接続され、他方の入力は左
右シフト信号入力端子Sに共通接続されている。また、
2入力AND回路530〜532の出力は、それぞれバレルシフ
タ単位回路400、401、402の論理信号端子RI0〜RI3に接
続されている。次に、セレクタ540〜542は2つの信号が
入力され、その2つの信号のうち、どちらか一方を選択
する2−1セレクタで、その一方の入力は、それぞれ入
力端子I0、I1、I2に接続され、他方の入力は入力端子I3
に共通接続されている。また、セレクタ540〜542の出力
は、それぞれバレルシフタ単位回路400、401、402のセ
レクト信号端子LI0〜LI2に接続されている。また、この
セレクタ540〜542は左右シフト信号DSによって駆動され
る。すなわち、このセレクタは図7に示すように、Nチ
ャネル型MOSトランジスタおよびPチャネル型MOSトラン
ジスタが並列に接続されたPNトランスファーゲート56X,
57Xを有し、このPNトランスファーゲート56Xおよび57X
の一方のゲートは、左右シフト信号入力端子Sに接続さ
れ、他方はインバータ55Xを介して、左右シフト信号入
力端子Sに接続されている。
また、バレルシフタ単位回路403のセレクト信号端子L
I3および論理信号端子RI3は、入力端子I3に共通接続さ
れている。
さらに、各バレルシフタ回路400〜403の論理制御端子
RS0〜RS3およびセレクト信号制御端子LS0〜LS3は、バレ
ルシフタ単位回路400のセレクト信号制御端子LS0および
バレルシフタ単位回路403の論理信号制御端子RS3を除い
て、グランドに接続されている(LS1〜LS3、RS0〜RS
2)。このバレルシフタ単位回路400のセレクト信号制御
端子LS0は、左右シフト信号入力端子Sに接続され、バ
レルシフタ単位回路403の論理信号制御端子RS3は、左右
シフト信号入力端子Sにその入力部が接続されているイ
ンバータ583の出力部に接続されている。
次に、図5〜図7に示す左右両方向3ビットバレルシ
フタの動作を説明する。デコーダ200の真理値表は表1
と同様であるので、実施例1と同様に表1を参照して説
明する。まず、表1(左)は、左右両方向3ビットバレ
ルシフタの左シフト動作を、左右シフト信号DSおよびシ
フト量データ信号DD1、DD0に対応して、上からスルー、
左1ビットシフト、左2ビットシフト、及び左3ビット
シフトの順に示している。
左1ビットシフトを例にして説明する。左右シフト信
号入力端子Sおよびシフト量データ入力端子D1,D0に信
号“0"、“0"、“1"が入力されると、デコーダ200の出
力が{A0,A1,A2,A3}={0、1、0、0}となる(図
2)。従って、各バレルシフタ単位回路400〜403では、
アドレス端子A1に接続されているトランスファゲート47
Xのみが動作状態になる。よって各バレルシフタ単位回
路400〜403の出力端子OXには、入出力端子I1Xの信号が
それぞれインバータ45Xで反転されて出力されることに
なる。
また、左右シフト信号DSが“0"なので、図7に示すセ
レクタ540〜542のPNトランスファーゲート57Xが動作
し、各バレルシフタ単位回路の入力データDIX(X=0,
1,2)がセレクトされる。従って、セレクト信号端子LIX
(X=0,1,2)には、各バレルシフタ単位回路の入力デ
ータDIX(X=0,1,2)が入力される。また、左右シフト
信号が“0"なのでAND回路530〜532からは、“0"が出力
される。従って、入力端子RI0〜RI2には、“0"が入力さ
れる。
まず、バレルシフタ単位回路400のセレクト信号制御
端子LS0には、左右シフト信号“DS=0"が入力される。
論理信号制御端子RS0には、グランドから“0"が入力さ
れるので、左トライステートバッファ510および右トラ
イステートバッファ520が動作する。従って、セレクト
信号端子LI0に入力された入力データDI0は、左トライス
テートバッファ510で反転され、入出力端子I00上に出力
され、論理信号端子RI0に入力された“0"は、トライス
テートバッファ520で反転され、入力端子I30上に出力さ
れる。
さらに、バレルシフタ単位回路401、402のセレクト信
号端子LI1、LI2にはDI1、DI2が入力され、論理信号端子
RI1、RI2には“0"が入力されている。また、セレクト信
号制御端子LS1,LS2、および論理信号制御端子RS1,RS2に
は、グランドから“0"が入力されるので、右トライステ
ートバッファ511、512および左トライステートバッファ
511、512は動作する。従って、セレクト信号端子LI1,LI
2に入力されたDI1、DI2は左トライステートバッファ52
1、522で反転され、それぞれ入出力端子I01、I02上に出
力される。また、論理信号端子RI1、RI2に入力された
“0"は、右トライステートバッファ521、522で反転さ
れ、それぞれ入出力端子I31、I32上に出力される。
また、バレルシフタ単位回路403のセレクト信号端子L
I3、および論理信号端子RI3には、DI3が入力される。ま
た、論理信号制御端子RS3には、左右シフト信号“DS=
0"がインバータ583で反転され入力されるので、左トラ
イステートバッファ523は動作しない。また、セレクト
信号制御端子LS3には、グランドから“0"が入力される
ので、左トライステートバッファ513は動作しない。従
って、セレクト信号端子LI3に入力された入力データDI3
は、左トライステートバッファ513で反転され、入出力
端子I03上に出力される。
ここで、バレルシフタ単位回路401の入出力端子I11は
バレルシフタ単位回路400の入出力端子I00に接続してい
るので、入力データDI0がバレルシフタ単位回路401の出
力端子O1から出力データDO1として出力される。また、
バレルシフタ単位回路402の入出力端子I12は、バレルシ
フタ単位回路401の入出力端子I01に接続しているので、
入力データDI1がバレルシフタ単位回路402の出力端子O2
から出力データDO2として出力される。さらに、バレル
シフタ単位回路403の入出力端子I13は、バレルシフタ単
位回路402の入出力端子I02に接続しているので、入力デ
ータDI2がバレルシフタ単位回路403の出力端子O3から出
力データDO3として出力される。
従って、入力データDI0、DI1、DI2は、左に1ビット
シフトしてバレルシフタ単位回路101、102、103の出力
端子O1、O2、O3からそれぞれ出力データDO1、DO2、DO3
として出力される。
また、バレルシフタ単位回路402の入出力端子I32は、
バレルシフタ単位回路400の入出力端子I10に接続してい
るので、バレルシフタ単位回路400の出力端子O0から
は、“0"が出力データとして出力される。このように、
下位ビットには“0"埋めがなされる。
次に、表1(右)は、左右両方向3ビットバレルシフ
タの右シフト動作を、左右シフト信号DSおよびシフト量
データ信号DD1、DD0に対応して、上からスルー、右1ビ
ットシフト、右2ビットシフト、及び右3ビットシフト
の順に示している。この右2ビットシフトを例にして説
明する。左右シフト信号入力端子S、およびシフト量デ
ータ信号入力端子D1,D0にそれぞれ信号“0"、“0"、
“1"を入力すると、デコーダ200の出力が{A0、A1、A
2、A3}={0、1、0、0}となる。従って、図6に
示す各バレルシフタ単位回路400〜403では、アドレス端
子A1に接続されているトランスファゲート47Xのみがオ
ンする。よって出力端子OXには、入出力端子I1X上の信
号がそれぞれインバータ450〜451で反転して出力され
る。
また、左右シフト信号“DS=1"なので、図7に示すセ
レクタ540〜542のPNトランスファーゲート56Xが動作
し、バレルシフタ単位回路403の入力データDI3がセレク
トされる。従って、セレクト信号端子LI0〜LI2には、DI
3が入力される。また、左右シフト信号“DS=1"なの
で、AND回路530〜532からは、それぞれ各バレルシフタ
単位回路の入力データDIX(X=0,1,2)が出力される。
従って、論理信号端子RI0〜RI2には、それぞれ各バレル
シフタ単位回路の入力データDIX(X=0,1,2)が入力さ
れる。
まず、バレルシフタ回路400のセレクト信号制御端子L
S0には、左右シフト信号“DS=1"が入力されるので、右
トライステートバッファ520は動作しない。また、論理
信号制御端子RS0には、グランドから“0"が入力される
ので、左トライステートバッファ510が動作し、セレク
ト信号端子LI0に入力された入力データDI3は、左トライ
ステートバッファ510で反転され、入出力端子100上に出
力される。
さらに、バレルシフタ単位回路401、402のセレクト信
号端子LI1、LI2には入力データDI3が入力され、論理信
号端子RI1、RI2にはそれぞれDI1、DI2が入力されてい
る。また、セレクト信号制御端子LS1,LS2、および論理
信号制御端子RS1,RS2には、グランドから“0"が入力さ
れるので、左トライステートバッファ511、512および右
トライステートバッファ521、522は動作する。従って、
セレクト信号端子LI1,LI2に入力された入力データDI3は
左トライステートバッファ511、512で反転され、それぞ
れ入出力端子I01、I02上に出力される。また、論理信号
端子RI1、RI2に入力された入力データDI1、DI2は、右ト
ライステートバッファ521、522で反転され、それぞれ入
出力端子I31、I32上に出力される。
また、バレルシフタ回路403のセレクト信号端子LI3、
および論理信号端子RI3には、DI3が入力されている。ま
た、論理信号制御端子RS3には、左右シフト信号“DS=
1"がインバータ583で反転され入力されるので、右トラ
イステートバッファ523は動作する。また、セレクト信
号制御LS3には、グランドから“0"が入力されるので、
左トライステートバッファ513は動作する。従って、セ
レクト信号端子LI3および論理信号端子RI3に入力された
入力データDI3は、それぞれ左トライステートバッファ5
13および右トライステートバッファ523で反転されそれ
ぞれ入出力端子I03、I33上に出力される。
ここで、バレルシフタ単位回路400の入出力端子I10は
バレルシフタ単位回路402の入出力端子I32に接続してい
るので、入力データDI2がバレルシフタ単位回路400の出
力端子O0から出力データDO0として出力される。また、
バレルシフタ単位回路401の入出力端子I11はバレルシフ
タ単位回路403の入出力端子I33に接続しているので、入
力データDI3がバレルシフタ単位回路401の出力端子O1か
ら出力データDO1として出力される。
従って、入力データDI2、DI3は、右に2ビットシフト
してバレルシフタ単位回路400、401の出力端子O0、O1か
らそれぞれ出力データDO0、DO1として出力される。
さらに、バレルシフタ単位回路402の入出力端子I12
は、バレルシフタ単位回路401の入出力端子I01に接続し
ているので、バレルシフタ単位回路402の出力端子O2か
らは入力データDI3が、出力データDO2として出力され
る。また、バレルシフタ単位回路403の入出力端子I13
は、バレルシフタ単位回路402の入出力端子I02に接続し
ているので、バレルシフタ単位回路403の出力端子O3か
らは入力データDI3が、出力データDO3として出力され
る。このように、上位ビットには最上位入力データDI3
が出力され符号拡張が行われる。
ここでは、左1ビットシフトおよび右2ビットシフト
を例に説明したが、左2、左3および右1、右3ビット
シフトの場合も、それぞれ同様な動作が行われる。図5
に示す3ビットバレルシフタの場合、それぞれのシフト
時、すなわち、スルー、左1、2、3ビットシフト、お
よびスルー、右1、2、3ビットシフト時に各出力端子
O0〜O3から出力されるデータは表4および表5に示した
通りである。
以上のように、第3の実施例では、バレルシフタを構
成する各バレルシフタ単位回路400および403内に左右両
方向にシフトを可能にするトライステートバッファ510
および523を設け、このトライステートバッファ520およ
び513をそれぞれ左右シフト信号DSおよび左右シフト信
号と相補的な信号により駆動させた。さらに、左シフト
時には、各バレルシフタ単位回路の400〜403の入力デー
タDIXを入出力端子IOX上に出力させ、また右シフト時に
バレルシフタ単位回路の入力データDIXを入出力端子I3X
上に出力されるセレクト回路540〜542、および左シフト
時に、グランドレベル“0"を入出力端子I3X上に出力さ
せるAND回路530〜532を設けた。従って、左シフト時の
0埋めおよび右シフト時の符号拡張を、従来より省面積
なバレルシフタで行うことができる。特に、第3の実施
例で示したバレルシフタは、各バレルシフタ単位回路内
のトランスファーゲートの個数が多くなった場合に有効
である。例えば、実施例2で説明したバレルシフタ回路
の場合、図4の0埋め用トライステートバッファ301、3
11の出力は、それぞれ(バレルシフタ単位回路内のトラ
ンスファーゲート数−1)の個数の入出力端子に接続さ
れている。従って、バレルシフタ単位回路内のトランス
ファーゲートの数が多くなるにつれて、これらトライス
テートバッファの駆動能力を大きくする必要がある。ト
ライステートバッファの駆動能力を大きくすると、トラ
イステートバッファの占有面積が増大してしまう。しか
しながら、第3の実施例においては、バレルシフタ単位
回路内に入力データもしくは符号拡張データ(最上段の
バレルシフタ単位回路に入力される入力データ)を出力
するセレクタ回路、および入力データもしくはグランド
レベル“0"を出力するAND回路を設けたので、図4に示
す、トライステートバッファ301、311が不必要になる。
このように、第3の実施例では回路規模の増大を抑制
できるので回路を形成するためのパターン面積をより小
さくできる。
[第4の実施例] 本発明は上記第1、第2および第3の実施例に限定さ
れず、図2、図4および図5に示すバレルシフタを任意
のビット数のバレルシフタ構成にしたり、これらバレル
シフタを構成する各バレルシフタ単位回路(図1、図
6)内のトランスファゲートを任意の個数で構成した
り、種々の変形が可能である。
図2に示すバレルシフタをNビットシフト(N;N>=
1、自然数)可能なバレルシフタに変形したNビットバ
レルシフタのブロック図を図8に示す。図8に示すNビ
ットバレルシフタのバレルシフタ単位回路200〜20M(M;
M=>1、自然数)を図9に示す。図9に示すバレルシ
フタにおいて、デコーダ200は、(N+1)本のアドレ
ス端子A0〜ANのうち1本を活性化するデコーダであり、
複数のシフト量データ信号DD0〜DDAと、シフト信号DSが
入力される。このデコーダ200の出力信号、すなわちア
ドレス端子A0〜ANに入力されるアドレス信号を表6、表
7に示す。表6は左シフトの場合で、左右シフト信号DS
は“0"である。表7は右シフトの場合で、左右シフト信
号DSは“1"である。このデコーダの出力信号(アドレス
信号)に対応して、左右のシフトが行われる。図8に示
す左右両方向Nビットバレルシフタにおいて、N=Mの
場合の各シフト時の出力端子O0〜OMからの出力データを
表8、表9に示す。表8は左シフトの場合、表9は右シ
フトの場合の出力データを示す。
[第5の実施例] 図4に示すバレルシフタをNビット(N;N>=1、自
然数)シフト可能なバレルシフタに変形したNビットバ
レルシフタのブロック図を図10に示す。このNビットバ
レルシフタのバレルシフタ単位回路200〜20M(M;M>=
1、自然数)は図9に示すバレルシフタ単位回路と同じ
である。また、デコーダ200の出力(アドレス信号)
は、表6、表7と同様である。このデコーダ200の出力
信号に対応して、左右のシフトが行われる。図10に示す
左右両方向Nビットバレルシフタにおいて、N=Mの場
合の各シフト時の出力端子O0〜OMからの出力データを表
10、表11に示す。表10は左シフトの場合、表11は右シフ
トの場合の出力データを示す。また、N<Mの場合の各
シフト時の出力端子O0〜OMからの出力データを表11、表
12に示す。表11は左シフトの場合、表12は右シフトの場
合の出力データを示す。
[第6の実施例] 図5に示すバレルシフタをNビット(N;N>=1、自
然数)シフト可能なバレルシフタに変形したNビットバ
レルシフタのブロック図を図11に示す。このNビットバ
レルシフタのバレルシフタ単位回路400〜40M(M;M>=
N、自然数)を図12に示す。図11のデコーダ200の出力
は、表6、表7と同様である。このデコーダの出力信号
に対応して、左右のシフトが行われる。図11に示す左右
両方向Nビットバレルシフタにおいて、N>=Mの場合
の各シフト時の出力端子O0〜OMからの出力データは、図
10に示す左右両方向Nビットバレルシフタの場合と同様
である。
また、上記実施例(第1〜第6)で示したセレクタ、
トランスファーゲート、トライステートバッファおよび
デコーダも上記以外の回路で構成する等、種々の変形が
可能である。
産業上の利用可能性 第1の発明によれば、バレルシフタを構成する各バレ
ルシフタ単位回路内に、右シフト用トライステートバッ
ファ及び左シフト用トライステートバッファを設け、左
右シフト信号によってその左シフト用トライステートバ
ッファまたは右シフト用トライステートバッファのいず
れか一方を動作状態に制御するようにしたので、従来よ
り省面積なバレルシフタで左右両方向のシフトが可能に
なる。
第2の発明によれば、右シフト用トライステートバッ
ファが動作している時に、最下段のバレルシフタ単位回
路の最入力側の入出力端子以外の入出力端子に、グラン
ドレベル“0"を入力する0埋め回路、および左シフト用
トライステートバッファが動作している時に、最上段の
バレルシフタ単位回路の最出力側の入出力端子以外の入
出力端子に、最上段バレルシフタ単位回路の入力データ
を入力する符号拡張回路を設けたので、左シフト時の下
位ビットの0埋めおよび右シフト時の上位ビットの符号
拡張が可能になる。
第3の発明によれば、バレルシフタを構成する最上段
のバレルシフタ単位回路内および最下段のバレルシフタ
単位回路内に、それぞれ右シフト用、左シフト用のトラ
イステートバッファを設け、左右シフト信号によって、
これら左シフト用トライステートバッファまたは右シフ
ト用トライステートバッファのいずれか一方を動作状態
に制御するようにしたので、左右両方向のシフトが可能
になる。加えて、最上段および最下段のバレルシフタ単
位回路以外のバレルシフタ単位回路において、左シフト
用トライステートバッファが動作している時に、各バレ
ルシフタ単位回路の入力データを最入力側の入出力端子
上に出力させ、右シフト用トライステートバッファが動
作している時に、最上段のバレルシフタ単位回路の入力
データを最入力側の入出力端子に出力させる選択回路、
および左シフト用トライステートバッファが動作してい
る時に、グランドレベル“0"を最出力側の入出力端子上
に出力させ、右シフト用トライステートバッファが動作
している時に、各バレルシフタ単位回路の入力データを
最出力側の入出力端子に出力させる論理回路、を設けた
ので、左シフト時の0埋めおよび右シフト時の符号拡張
を、省面積なバレルシフタで行うことができる。

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】第1から第N(N;N>=2,自然数)の入出
    力ノードと、 出力端子と、 入力端子と、 前記出力端子と前記第1から第Nの入出力ノードとの間
    にそれぞれ接続された第1から第Nのスイッチング素子
    と、 前記入力端子に入力部が接続され、前記第1番目の入出
    力ノードおよび第N番目の入出力ノードに出力部が接続
    された左右シフト選択回路であって、右シフト信号もし
    くは左シフト信号が入力され、前記左シフト信号に対応
    して前記第1番目の入出力ノードに前記入力端子に入力
    されたデータに応答したデータを出力し、前記右シフト
    信号に対応して前記第N番目の入出力ノードに前記入力
    端子に入力されたデータに応答したデータを出力する左
    右シフト選択回路と、 を有するバレルシフタ単位回路をM段(M;M>=1,自然
    数)有するバレルシフタであって、 前記各段のバレルシフタ単位回路の前記第1から第Nの
    スイッチング素子をそれぞれ共通に駆動するデコーダ回
    路であって、前記第1から第Nのスイッチング素子のう
    ち唯一の導通状態にするデコーダ回路と、 前記M段のバレルシフタ単位回路のうち、P(P;1=<
    P<M、自然数)段目のバレルシフタ単位回路と、(P
    +1)段目のバレルシフタ単位回路とを接続する第1か
    ら第(N−1)の接続線であって、前記第1から第(N
    −1)の接続線の内、Q(Q;1<Q<=(N−1),自
    然数)番目の接続線は、前記P段目のバレルシフタ単位
    回路の第Q番目の入出力ノードと、前記(P+1)段目
    のバレルシフタ単位回路の第(Q+1)番目の入出力ノ
    ードとを接続する第1から第第(N−1)の接続線と、 前記M段のバレルシフタ単位回路のうち前記第M段目の
    バレルシフタ単位回路の入力端子に入力部が接続され、
    前記第M段目のバレルシフタ単位回路の第1から第(N
    −1)番目の入出力ノードに出力部が接続された符号拡
    張回路であって、前記右シフト信号に対応して、前記第
    M段目のバレルシフタ単位回路の入力端子に入力される
    第Mの入力データに対応するデータを前記第M番目のバ
    レルシフタ単位回路の前記第1から第(N−1)番目の
    入出力ノードに出力する符号拡張回路と、 前記M段のバレルシフタ単位回路のうち前記第1段目の
    バレルシフタ単位回路の第2から第N番目の入出力ノー
    ドに出力部が接続され、ゼロに対応する電位レベルノー
    ドに入力部が接続されたゼロ出力用回路であって、前記
    左シフト信号に対応して、前記ゼロに対応するデータを
    前記第1段目のバレルシフタ単位回路の第2から第N番
    目の入出力ノードに出力するゼロ出力用回路とを有する
    ことを特徴とするバレルシフタ。
  2. 【請求項2】第1から第N(N;N>=2,自然数)の入出
    力ノードと、 出力端子と、 入力端子と、 前記出力端子と前記第1から第Nの入出力ノードとの間
    にそれぞれ接続された第1から第Nのスイッチング素子
    と、 前記入力端子に入力部が接続され、前記第1番目の入出
    力ノードおよび第N番目の入出力ノードに出力部が接続
    された左右シフト選択回路であって、右シフト信号もし
    くは左シフト信号が入力され、前記左シフト信号に対応
    して前記第1番目の入出力ノードに前記入力端子に入力
    されたデータに応答するデータを出力し、前記右シフト
    信号に対応して前記第N番目の入出力ノードに前記入力
    端子に入力されたデータに応答するデータを出力する左
    右シフト選択回路と、 を有するバレルシフタ単位回路をM段(M;M>=1,自然
    数)有するバレルシフタであって、 前記各段のバレルシフタ単位回路の前記第1から第Nの
    スイッチング素子をそれぞれ共通に駆動するデコーダ回
    路であって、前記第1から第Nのスイッチング素子のう
    ち唯一の導通状態にするデコーダ回路と、 前記M段のバレルシフタ単位回路のうち、P(P;1=<
    P<M、自然数)段目のバレルシフタ単位回路と、(P
    +1)段目のバレルシフタ単位回路とを接続する第1か
    ら第(N−1)の接続線であって、前記第1から第(N
    −1)の接続線の内、Q(Q;1<Q<=(N−1),自
    然数)番目の接続線は、前記P段目のバレルシフタ単位
    回路の第Q番目の入出力ノードと、前記(P+1)段目
    のバレルシフタ単位回路の第(Q+1)番目の入出力ノ
    ードとを接続する第1から第第(N−1)の接続線と、 前記M段のバレルシフタ単位回路のうち前記第M段目の
    バレルシフタ単位回路の入力端子に入力部が接続され、
    前記第M段目のバレルシフタ単位回路の第1から第(N
    −1)番目の入出力ノードに出力部が接続された符号拡
    張回路であって、前記右シフト信号に対応して、前記第
    M段目のバレルシフタ単位回路の入力端子に入力される
    第Mの入力データに対応するデータを前記第M番目のバ
    レルシフタ単位回路の前記第1から第(N−1)番目の
    入出力ノードに出力する符号拡張回路と、 前記M段のバレルシフタ単位回路のうち前記第1段目の
    バレルシフタ単位回路の第2から第N番目の入出力ノー
    ドに出力部が接続され、接地電位ノードに入力部が接続
    されたゼロ出力用回路であって、前記左シフト信号に対
    応して、前記接地電位に対応するデータを前記第1段目
    のバレルシフタ単位回路の第2から第N番目の入出力ノ
    ードに出力するゼロ出力用回路とを有することを特徴と
    するバレルシフタ。
  3. 【請求項3】前記左右シフト選択回路は、 前記入力端子と前記第1番目の入出力ノードとの間に接
    続され、前記左シフト信号によって駆動される第1のト
    ライステートバッファと、 前記入力端子と前記第N番目の入出力ノードとの間に接
    続され、前記右シフト信号によって駆動される第2のト
    ライステートバッファとで構成されることを特徴とする
    請求項2記載のバレルシフタ。
  4. 【請求項4】前記符号拡張回路および前記ゼロ出力用回
    路は、それぞれトライステートバッファであることを特
    徴とする請求項2記載のバレルシフタ。
  5. 【請求項5】前記右シフト信号および左シフト信号はそ
    れぞれ相補的な信号であることを特徴とする請求項2記
    載のバレルシフタ。
  6. 【請求項6】第1から第N(N;N>=2,自然数)の入出
    力ノードと、 入力端子と、 出力端子と、 前記出力端子と前記第1から第Nの入出力ノードとの間
    にそれぞれ接続された第1から第Nのスイッチング素子
    と、 前記入力端子に入力部が接続され、前記第1番目および
    前記第N番目の入出力ノードに出力部が接続された制御
    回路とを有するバレルシフタ単位回路をM段(M;N>=
    1,自然数)有し、 前記各段のバレルシフタ単位回路の前記第1から第Nの
    スイッチング素子をそれぞれ共通に駆動するデコーダ回
    路であって、前記第1から第Nのスイッチング素子のう
    ち唯一を導通状態にするデコーダ回路と、 前記M段のバレルシフタ単位回路のうち、P(P;1=<
    P<M、自然数)段目のバレルシフタ単位回路と、(P
    +1)段目のバレルシフタ単位回路とを接続する第1か
    ら第(N−1)の接続線であって、前記第1から第(N
    −1)の接続線の内、Q(Q;1<Q<=(N−1),自
    然数)番目の接続線は、前記P段目のバレルシフタ単位
    回路の第Q番目の入出力ノードと、前記(P+1)段目
    のバレルシフタ単位回路の第(Q+1)番目の入出力ノ
    ードとを接続する第1から第第(N−1)の接続線と、 前記各段のバレルシフタ単位回路の制御回路に接続さ
    れ、前記制御回路の駆動を制御する右シフト信号が入力
    される右シフト信号ノードと、 前記各段のバレルシフタ単位回路の制御回路に接続さ
    れ、前記制御回路の駆動を制御する左シフト信号が入力
    される左シフト信号ノードと、 を有するバレルシフタであって、 前記第M段目のバレルシフタ単位回路の前記制御回路
    は、 前記入力端子に入力されるデータに応答したデータを前
    記第1の入出力ノードに出力し、前記右シフト信号に対
    応して前記第Nの入出力ノードに出力し、 前記第1から第(M−1)段目の各段のバレルシフタ単
    位回路の制御回路は、 前記左シフト信号に対応して前記各段のバレルシフタ単
    位回路の入力端子に入力されるデータに応答したデータ
    を、第1番目の入出力ノードに出力し、ゼロに対応する
    データを、第N番目の入出力ノードに出力し、 前記右シフト信号に対応して前記各段のバレルシフタ単
    位回路の入力端子に入力されるデータに応答したデータ
    を第N番目の入出力ノードに出力し、前記第M段目のバ
    レルシフタ単位回路の入力端子に入力されるデータに応
    答したデータを第1番目の入出力ノードに出力すること
    を特徴とするバレルシフタ。
  7. 【請求項7】前記第M段目のバレルシフタ単位回路の前
    記制御回路は、 前記入力端子と前記第N番目の入出力ノードとの間に接
    続されたトライステートバッファであって、その制御端
    子が前記右シフト信号ノードに接続されたトライステー
    トバッファを有し、 前記第2から第(M−1)段目の各々のバレルシフタ単
    位回路の制御回路は、 その入力部が前記第M段目のバレルシフタ単位回路の入
    力端子および各段の入力端子に接続され、その出力部が
    前記第1の入出力ノードに接続された選択回路と、 その入力部が前記左シフト信号ノードおよび各段の入力
    端子に接続され、その出力部が前記第Nの入出力ノード
    に接続された論理和回路とを有し、 第1段目のバレルシフタ単位回路の制御回路は、 その入力部が前記第M段目のバレルシフタ単位回路の入
    力端子および入力端子に接続され、出力部が前記第1の
    入出力ノードに接続された選択回路と、 その入力部が前記選択回路の出力部に接続され、その出
    力部が前記第1の入出力ノードに接続され、その制御端
    子が前記左シフト信号ノードに接続されたトライステー
    トバッファと、 その入力部が前記左シフト信号ノードおよび入力端子に
    接続され、出力部が前記第Nの入出力ノードに接続され
    た論理和回路とを有する ことを特徴とする請求項6記載のバレルシフタ。
  8. 【請求項8】前記右シフト信号および左シフト信号はそ
    れぞれ相補的な信号であることを特徴とする請求項6記
    載のバレルシフタ。
JP51233393A 1992-01-09 1993-01-11 バレルシフタ Expired - Fee Related JP3272724B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-2045 1992-01-09
JP204592 1992-01-09
PCT/JP1993/000025 WO1993014456A1 (en) 1992-01-09 1993-01-11 Barrel shifter

Publications (1)

Publication Number Publication Date
JP3272724B2 true JP3272724B2 (ja) 2002-04-08

Family

ID=11518360

Family Applications (1)

Application Number Title Priority Date Filing Date
JP51233393A Expired - Fee Related JP3272724B2 (ja) 1992-01-09 1993-01-11 バレルシフタ

Country Status (6)

Country Link
US (1) US5465223A (ja)
EP (1) EP0621533B1 (ja)
JP (1) JP3272724B2 (ja)
KR (1) KR100298029B1 (ja)
DE (1) DE69328419T2 (ja)
WO (1) WO1993014456A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305429C (zh) * 2004-01-16 2007-03-21 Lg电子株式会社 用于确定真空吸尘器中电动刷的频率的方法

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0654168B1 (en) 1992-08-10 2001-10-31 Monolithic System Technology, Inc. Fault-tolerant hierarchical bus system
JPH07200252A (ja) * 1993-12-28 1995-08-04 Nec Corp バレルシフタ回路
EP0662657A1 (en) * 1994-01-06 1995-07-12 Texas Instruments Incorporated Barrel shifter with bi-directional multiplexer circuit
US5652718A (en) * 1995-05-26 1997-07-29 National Semiconductor Corporation Barrel shifter
US5941937A (en) * 1996-10-29 1999-08-24 Matsushita Electric Industrial Co., Ltd. Layout structure for barrel shifter with decode circuit
US6078937A (en) 1996-12-19 2000-06-20 Vlsi Technology, Inc. Barrel shifter, circuit and method of manipulating a bit pattern
US5995579A (en) * 1996-12-19 1999-11-30 Vlsi Technology, Inc. Barrel shifter, circuit and method of manipulating a bit pattern
US6314156B1 (en) * 2000-03-02 2001-11-06 Compaq Computer Corporation Space-efficient multi-cycle barrel shifter circuit
US8126022B2 (en) * 2007-04-02 2012-02-28 Stmicroelectronics Sa Electronic multimode data shift device, in particular for coding/decoding with an LDPC code
US9959247B1 (en) 2017-02-17 2018-05-01 Google Llc Permuting in a matrix-vector processor

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3747070A (en) * 1971-12-22 1973-07-17 Bell Telephone Labor Inc Data field transfer and modification apparatus
JPH0697431B2 (ja) * 1984-01-23 1994-11-30 株式会社日立製作所 バレルシフタ
JPH0616263B2 (ja) * 1984-05-09 1994-03-02 株式会社東芝 バレルシフタ
JPS6132139A (ja) * 1984-07-24 1986-02-14 Nec Corp 双方向バレルシフト回路
JPS6398729A (ja) * 1986-10-15 1988-04-30 Fujitsu Ltd バレルシフタ
US4843383A (en) * 1988-01-13 1989-06-27 National Semiconductor Corporation Transistor matrix shifter
JPH02130831A (ja) * 1988-11-10 1990-05-18 Toshiba Corp 半導体集積回路
JPH0421025A (ja) * 1990-05-15 1992-01-24 Toshiba Corp 左右シフタ
JP2556612B2 (ja) * 1990-08-29 1996-11-20 日本電気アイシーマイコンシステム株式会社 バレルシフタ回路
US5309382A (en) * 1992-10-01 1994-05-03 Silicon Graphics, Inc. Binary shifter

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1305429C (zh) * 2004-01-16 2007-03-21 Lg电子株式会社 用于确定真空吸尘器中电动刷的频率的方法

Also Published As

Publication number Publication date
US5465223A (en) 1995-11-07
DE69328419D1 (de) 2000-05-25
KR100298029B1 (ko) 2001-10-24
EP0621533B1 (en) 2000-04-19
WO1993014456A1 (en) 1993-07-22
EP0621533A4 (en) 1994-12-28
EP0621533A1 (en) 1994-10-26
DE69328419T2 (de) 2001-01-04

Similar Documents

Publication Publication Date Title
JP3613396B2 (ja) 機能ブロック
US5530814A (en) Bi-directional crossbar switch with control memory for selectively routing signals between pairs of signal ports
JP3471088B2 (ja) 改良されたプログラマブル論理セルアレイアーキテクチャ
JP2717111B2 (ja) 送信ゲート直列マルチプレクサ
JP3885119B2 (ja) フィールドプログラマブルプロセッサデバイス
EP0703663A1 (en) Programmable digital delay unit
JP3272724B2 (ja) バレルシフタ
US6317763B1 (en) Circuits, barrel shifters, and methods of manipulating a bit pattern
GB1573661A (en) Digital logic circuit
US5416731A (en) High-speed barrel shifter
EP0121763B1 (en) Associative array processor
US8122074B2 (en) Digital electronic binary rotator and reverser
US6384629B2 (en) High-speed programmable interconnect
JPH09244873A (ja) 高速バレルシフタ
JP2534652B2 (ja) 半導体集積回路
JPS62115529A (ja) 多機能双方向バレルシフタ
EP0590953B1 (en) Semiconductor memory device
JP2624342B2 (ja) バレルシフタ
JP2002305439A (ja) プログラマブル論理回路および半導体装置
JP2922963B2 (ja) シーケンスコントローラ
JP2591448B2 (ja) セレクタ回路およびマルチポートメモリセル
JP2563519B2 (ja) シフト回路
JP3578077B2 (ja) バレルシフト回路
JPH09171456A (ja) 加算器
US6204685B1 (en) Dual-function method and circuit for programmable device

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees