以下に、本発明に係るSRAM、半導体集積回路及びLCDドライバの一実施形態について、図面を参照して説明する。
なお、本実施形態におけるSRAMは、半導体集積器回路に備えられ、例えばLCDドライバ等の機器に搭載される。SRAMが搭載される機器については、SRAMに要求される高速性能が低い装置であればLCDドライバに限定されず適用することが可能である。また、本実施形態におけるSRAMは、eSRAM(内蔵SRAM)としてもよい。
図1は、本発明の一実施形態に係るSRAMの構成を示す図である。図1に示すように、SRAMには、複数のSRAMインスタンスSIが複数設けられている。SRAMインスタンスSIは、SRAMを構成する単位要素であり、SRAMインスタンスSIを複数設けることによってシステム(半導体集積回路)の必要とする容量を持つSRAMが構成されている。SRAMインスタンスSIは、図2に示すように様々な形状とすることが可能である。図2に示すように、SRAMインスタンスSIは、L字型や2MAT型、4MAT型等がある。図1では、SRAMインスタンスSIが2MAT型である場合を例として示している。
図1に示すようにSRAMインスタンスSIには、セルアレイCAと、ワード線ドライバWDと、入出力回路IOとを備えている。なお、他の型のSRAMインスタンスSIにおいても、同様に、セルアレイCAと、ワード線ドライバWDと、入出力回路IOとを備えている。なお、各SRAMインスタンスSIには、SRAMインスタンスSIを制御する制御部CLが設けられており、SRAM全体を制御する制御ブロックCBが設けられている。以降に説明する各種処理は、制御部CLや制御ブロックCBで制御されてもよいし、各端子へ外部から直接信号が入力されて制御されることとしてもよい。SRAMインスタンスSIの構成については、セルアレイCAと入出力回路IOを備えていれば他の構成とすることも可能である。
セルアレイCAは、行列状に配置された複数のメモリセルMCを有している。メモリセルMCは、フリップフロップとなっており、データの保持を行うことができる。メモリセルMCは、例えばCMOS型や、高抵抗負荷型、TFT負荷型などとすることができる。メモリセルMCは、行方向に第0行目から第m行目まで、列方向に第0列目から第n列目まで配置されるものとすると、(m+1)×(n+1)個のメモリセルMCがセルアレイCAに配置されることとなる。セルアレイCAでは、行に対応してワード線が設けられており、列に対応してビット線が設けられている。各ワード線は、対応する行に設けられている各メモリセルMCに接続され、各ビット線は、対応する列に設けられている各メモリセルMCに接続されている。各ワード線は、ワード線ドライバWDに接続されており、各ビット線は、入出力回路IOに接続されている。すなわち、ワード線は、メモリセルMCの行数に対応して(m+1)本設けられており、ビット線(bit線(BT)及び/bit線(BB)の対(ビット線対)であり、True/Barの差動ビット線)は、メモリセルMCの列数に対応して(n+1)本設けられている。なお、セルアレイCAの構成については、各メモリセルMCに対してデータの読み書きを行うことができれば、上記構成に限定されない。
ワード線がHighとなることによって対応する行のメモリセルMCに対して読み出し/書き込みが可能となる。ワード線がHighとなると、対応する行のメモリセルMCが活性化され、格納されていたデータはビット線に出力され(読み出し)、入出力回路IOにおいてデータをビット線に出力することでメモリセルMCにデータを格納できる(書き込み)。
ビット線は、bit線及び/bit線の対となっている。例えば、データがHigh(1)の場合には、bit線はHigh、/bit線はLowとなり、データがLow(0)の場合には、bit線はLow、/bit線はHighなる。データの読み出しを行う場合には、bit線及び/bit線は差動型センスアンプに入力され、bit線及び/bit線のどちらが高いかを判別して、HighまたはLowが入出力回路IOへ出力される。なお、センスアンプは、シングルエンド型としてもよいし、ラッチ型やカレントミラー型の差動型としてもよい。またはセンスアンプ(差動型センスアンプ)を使わない構成としてもよい。
データの書き込みを行う場合には、入出力回路IOから出力されたデータはライトアンプに入力され、ライトアンプは入力されたデータに基づいてbit線及び/bit線へ出力を行う(HighまたはLow)。
このように、ワード線に対応して所定の行のメモリセルMCが活性化され、対応する列に対してビット線によりデータの読み書きが行われるため、行列配置された所定のメモリセルMCに対してデータの読み書きを行うことが可能となる。例えば、第1行目のワード線によって第1行目の各メモリセルMCが活性化され、第10列目のビット線よりデータを読み出す場合には、第1行目第10列目に配置されたメモリセルMCよりデータを読み出すこととなる。
ワード線ドライバWDは、与えられたアドレス信号に従って、対応する行のワード線を活性化する。例えば、ワード線ドライバWDは、対応する行のワード線をHigh状態とすることによってワード線を活性化する。これにより、対応する行の各メモリセルMCが活性化されるため、活性化された各メモリセルMCに対してデータの読み書きを行うことが可能な状態となる。
入出力回路IOは、セルアレイCAの各メモリセルMCに対してデータの読み書きを行う。入出力回路IOは、各ビット線が対応して接続されている。入出力回路IOは、図3に示すように、複数の入出力ユニットIOUを有している。なお、図3に示す入出力回路IOでは、一例として、入出力ユニットIOUを8つ(8ビット分)備える構成としている。図3では、各入出力ユニットIOUから入力されるパラレル入力端子をDI[0]〜DI[7]と示し、各入出力ユニットIOUから出力されるパラレル出力端子をQ[0]〜Q[7]と示し、シリアル接続された入力部Iへ入力されるシリアル入力端子をSI[0]、SI[1]と示し、シリアル接続された出力部Oから出力されるシリアル出力端子をSO[0]、SO[1]と示している。なお、SRAM1のビット番号の付け方については上記に限定されず設定することも可能である。例えば、図3の示す回路において、偶数ビット(例えば、DI[0]、DI[2]、DI[4]・・・)と奇数ビット(例えば、DI[1]、DI[3]、DI[5]・・・)を分けて配置してもよい。このように、図3において、入力部I及び出力部Oは8ビット分の情報を保持及び入出力可能となっている。なお、入出力回路IOの構成(入出力ユニットIOUの設置数等)については図3の構成に限定されない。また、図3に示す入出力回路IOでは、一例として、入出力ユニットIOUを4つごと分け、セレクタ(IDS、ODS)でシリアル接続状態を変更可能としているが、分割する箇所及び分割数については図3の構成に限定されない。
入出力ユニットIOUは、例えば複数のビット線に対して1つ設けられている。例えば、ビット線4本毎(4列毎)に1つの入出力ユニットIOUが設けられている。入出力ユニットIOUは、例えばビット線セレクタを介して複数のビット線と接続可能とされており、1つの入出力ユニットIOUに対して複数のビット線のいずれか1つを選択して接続させることができる。すなわち、各ビット線は、センスアンプ/ライトアンプを介してビット線セレクタへ接続されており、ビット線セレクタにより選択されたビット線(列)が入出力ユニットIOUと接続される。
図3に示されるように、入出力ユニットIOUは、メモリセルMCへデータの書込みを行う入力部IとメモリセルMCからデータの読出しを行う出力部Oと、セレクタIOSとを有している。なお、各入出力ユニットIOUは同様の構成となっており、入出力ユニットIOUを並べ、端子(入出力ユニットIOUの入力及び出力に係る端子であり、例えば端子a〜fとする。)を適切に接続することによって構成される。
入力部Iは、入力された入力データを保持し、入力データをメモリセルMCへ出力することで、メモリセルMCへ入力データの書込みを行う。各入力部Iがシリアル接続されることによって各入力部Iへ入力データがシリアル入力される。入力部Iは、フリップフロップ(FF)構造となっており、2入力−2出力構成となっている。すなわち、入力部Iは、入力側の接続先を選択する入力側セレクタ(第1入力側セレクタ)IS1及び出力側の接続先を選択する出力側セレクタ(第1出力側セレクタ)OS1を有し、2入力−2出力が構成されている。
入力部Iは、具体的には図4に示す構成である。なお、図4の構成は一例であり該構成に限定されない。図4に示すように、入力部Iは、第1入力端子Aと、第2入力端子Bとのいずれか1方を選択する入力側セレクタIS1がラッチPL1と接続されており、ラッチPL1が出力側セレクタOS1に接続されている。そして、出力側セレクタOS1は、インバータIN5を介した第1出力端子C及びラッチSL1を介した第2出力端子Dと接続されている。第1入力端子Aには、パラレル入力端子が接続され、第2入力端子Bには、シリアル接続された他の(前段の)入力部Iが接続され(なお、入力部Iが最前段の場合にはシリアル入力端子が接続される)、第1出力端子Cは、メモリセルMC(ライトアンプ)に対して接続されており、第2出力端子Dには、シリアル接続された他の(後段の)入力部Iが接続される(なお、入力部Iが最高段の場合にはオープンとされる)。なお、入力側セレクタIS1は、後述するように、入力側の接続先として、シリアル接続された他の入力部I及びパラレル入力端子(外部入力端子)のいずれか1方を選択するものである。なお、出力側セレクタOS1は、後述するように、出力側の接続先として、メモリセルMC及びシリアル接続された他の入力部Iのいずれか1方を選択するものである。ラッチPL1では、入力側セレクタIS1からトランスファーゲートTG1を介してインバータIN1へ接続され、インバータIN1の出力は出力側セレクタOS1へ接続されるとともに、インバータIN2及びトランスファーゲートTG2を介してインバータIN1の入力側へ帰還接続されている。ラッチSL1では、出力側セレクタOS1からトランスファーゲートTG3を介してインバータIN3へ接続され、インバータIN3の出力は第2出力端子Dへ接続されるとともに、インバータIN4及びトランスファーゲートTG4を介してインバータIN3の入力側へ帰還接続されている。なお、ラッチPL1及びラッチSL1は同様の構成である。
また、ラッチPL1のトランスファーゲートTG1、TG4には後述するクロック信号IOCKが入力され、ラッチSL1のトランスファーゲートTG2、TG3にはクロック信号IOCKの反転信号が入力される。すなわち、クロック信号IOCKがHighのとき(ラッチPL1がデータを取り込み、ラッチSL1がデータを保持する場合)にトランスファーゲートTG1及びトランスファーゲートTG4が導通状態となり、トランスファーゲートTG2とトランスファーゲートTG3が非導通状態となる。また、クロック信号IOCKがLowのとき(ラッチPL1がデータを保持し、ラッチSL1がデータを取り込む場合)にトランスファーゲートTG1及びトランスファーゲートTG4が非導通状態となり、トランスファーゲートTG2とトランスファーゲートTG3が導通状態となる。すなわち、クロック信号IOCKがHighのときには、入力側セレクタIS1から入力された値(HighまたはLow)によりラッチPL1の出力が決定され、出力側セレクタOS1へ出力される。出力側セレクタOS1により第1出力端子Cが選択されている場合には、ラッチPL1の出力がインバータIN5を介して第1出力端子Cへ出力される。出力側セレクタOS1により第2出力端子D側(すなわちラッチSL1側)が選択されている場合には、クロック信号IOCKがLowのときにラッチPL1の出力が入力され、該入力に応じてラッチSL1の出力が決定され、第2出力端子Dへ出力される。このように、入力部Iでは、第1出力端子C(メモリセルMCへ出力される端子)はラッチSL1の出力となり、第2出力端子D(他の入力部Iへ入力される端子)はフリップフロップの出力となる。
なお、図4に示す入力部Iの構成では、入力の信号が反転せず出力される場合を例としているが、入力部Iが接続される他の構成に従って反転出力されることとしてもよい。
入力部Iにおける第1入力端子Aは、入出力ユニットIOUの端子cと接続され、第2入力端子Bは、入出力ユニットIOUの端子aと接続され、第2出力端子Dは、入出力ユニットIOUの端子fと接続されている。なお、第1出力端子Cは、セレクタIOSへ接続されている。
出力部Oは、メモリセルMCから出力された出力データを保持し、出力データを出力することで、出力データの読出しを行う。各出力部Oがシリアル接続されることによって各出力部Oが保持する出力データがシリアル出力される。出力部Oは、フリップフロップ(FF)構造となっており、2入力−2出力構成となっている。すなわち、出力部Oは、入力側の接続先を選択する入力側セレクタ(第2入力側セレクタ)IS2及び出力側の接続先を選択する出力側セレクタ(第2出力側セレクタ)OS2を有し、2入力−2出力が構成されている。
出力部Oは、具体的には図5に示す構成である。なお、図5の構成は一例であり該構成に限定されない。図5に示すように、出力部Oは、第1入力端子Eと、第2入力端子Fとのいずれか1方を選択する入力側セレクタIS2がラッチPL2と接続されており、ラッチPL2が出力側セレクタOS2に接続されている。そして、出力側セレクタOS2は、インバータIN10を介した第1出力端子G及びラッチSL2を介した第2出力端子Hと接続されている。第1入力端子Eは、メモリセルMC(センスアンプ)に対して接続されており、第2入力端子Fには、シリアル接続された他の(前段の)出力部Oが接続され(なお、出力部Oが最前段の場合にはオープンとされる)、第1出力端子Gには、パラレル出力端子が接続され、第2出力端子Hには、シリアル接続された他の(後段の)出力部Oが接続される(なお、出力部Oが最高段の場合にはシリアル出力端子が接続される)。なお、入力側セレクタIS2は、後述するように、入力側の接続先として、メモリセルMC及びシリアル接続された他の出力部Oのいずれか1方を選択するものである。なお、出力側セレクタOS2は、後述するように、出力側の接続先として、シリアル接続された他の出力部O及び外部出力端子(パラレル出力端子)のいずれか1方を選択するものである。ラッチPL2では、入力側セレクタIS2からトランスファーゲートTG6を介してインバータIN6へ接続され、インバータIN6の出力は出力側セレクタOS2へ接続されるとともに、インバータIN7及びトランスファーゲートTG7を介してインバータIN6の入力側へ帰還接続されている。ラッチSL2では、出力側セレクタOS2からトランスファーゲートTG8を介してインバータIN8へ接続され、インバータIN8の出力は第2出力端子Hへ接続されるとともに、インバータIN9及びトランスファーゲートTG9を介してインバータIN8の入力側へ帰還接続されている。なお、ラッチPL2及びラッチSL2は同様の構成である。
また、ラッチPL2のトランスファーゲートTG6、TG9には後述するクロック信号IOCKが入力され、ラッチSL2のトランスファーゲートTG7、TG8にはクロック信号IOCKの反転信号が入力される。すなわち、クロック信号IOCKがHighのとき(ラッチPL2がデータを取り込み、ラッチSL2がデータを保持する場合)にトランスファーゲートTG6及びトランスファーゲートTG9が導通状態となり、トランスファーゲートTG7とトランスファーゲートTG8が非導通状態となる。また、クロック信号IOCKがLowのとき(ラッチPL2がデータを保持し、ラッチSL2がデータを取り込む場合)にトランスファーゲートTG6及びトランスファーゲートTG9が非導通状態となり、トランスファーゲートTG7とトランスファーゲートTG8が導通状態となる。すなわち、クロック信号IOCKがHighのときには、入力側セレクタIS2から入力された値(HighまたはLow)によりラッチPL2の出力が決定され、出力側セレクタOS2へ出力される。出力側セレクタOS2により第1出力端子Gが選択されている場合には、ラッチPL2の出力がインバータIN10を介して第1出力端子Gへ出力される。出力側セレクタOS2により第2出力端子H側(すなわちラッチSL2側)が選択されている場合には、クロック信号IOCKがLowのときにラッチPL2の出力が入力され、該入力に応じてラッチSL2の出力が決定され、第2出力端子Hへ出力される。このように、入力部Iでは、第1出力端子G(メモリセルMCへ出力される端子)はラッチSL2の出力となり、第2出力端子H(他の入力部Iへ入力される端子)はフリップフロップの出力となる。
なお、図5に示す出力部Oの構成では、入力の信号が反転せず出力される場合を例としているが、出力部Oが接続される他の構成に従って反転出力されることとしてもよい。
出力部Oにおける第2入力端子Fは、入出力ユニットIOUの端子bと接続され、第1出力端子Gは、入出力ユニットIOUの端子dと接続され、第2出力端子Hは、入出力ユニットIOUの端子eと接続されている。なお、第1入力端子Eは、セレクタIOSへ接続されている。
セレクタIOSは、メモリセルMC側の接続先として、入力部I及び出力部Oのいずれか1方を選択する。すなわち、セレクタIOSには、入力部Iの第1出力端子Cと、出力部Oの第1入力端子Eとが選択可能に接続されている。そして、選択された端子は、メモリセルMC側、すなわち、ビット線セレクタにより選択されたビット線(列)と接続される。具体的には、セレクタIOSにおいて入力部Iの第1出力端子Cが選択されている場合には、ビット線セレクタにより選択されたビット線へ、対応するライトアンプを介して接続される。また、セレクタIOSにおいて出力部Oの第1入力端子Eが選択されている場合には、ビット線セレクタにより選択されたビット線へ、対応するセンスアンプを介して接続される。
このように、入出力回路IOにおいては複数の入出力ユニットIOUが設けられている。そして、それぞれの入出力ユニットIOUは互いに接続されている。具体的には、予め設定された複数の入出力ユニットIOUの入力部Iはシリアル接続(カスケード接続)されており、予め設定された複数の入出力ユニットIOUの出力部Oはシリアル接続(カスケード接続)されている。すなわち、入出力回路IOに含まれる入出力ユニットIOUは、少なくとも2以上の入出力ユニットIOUがシリアル接続(カスケード接続)されている。シリアル接続する入出力ユニットIOUの数が増えるほど、シリアル入力及びシリアル出力によって外部端子の数(外部端子に接続されるデータ線の数)を抑制することが可能となる。本実施形態では、図3に示すように、入出力回路IOに含まれる8つの入出力ユニットIOUがシリアル接続されているものとする。すなわち、各入出力ユニットIOUの入力部Iがシリアル接続されており、また、各入出力ユニットIOUの出力部Oがシリアル接続されている。
入力部Iの接続については、入力部Iの出力(第2出力端子D)と、他の入力部Iの入力(第2入力端子B)と(端子fと端子aと)が接続されることによって、各入力部Iがシリアル接続される。具体的には、シリアル接続された入力部Iのうち、最前段の入出力ユニットIOUの入力部Iの出力(第2出力端子D)と、次段の入出力ユニットIOUの入力部Iの入力(第2入力端子B)とが接続され、次段以降も同様に接続され、シリアル接続がされる。最前段の入出力ユニットIOUの入力部Iの入力(第2入力端子B)には、外部入力端子であるシリアル入力端子が接続される。最後段の入出力ユニットIOUの出力部Oの出力(第2出力端子D)は、例えばオープン(開放)とする。このように、入力部Iがシリアル接続されることによって、Dフリップフロップをシリアル接続(カスケード接続)した構成とすることができるため、最前段の入力部Iのシリアル入力端子から入力されたシリアル形式の入力データを、所定のクロック信号IOCKに基づいて次段の入力部I(フリップフロップ)へシフトさせることができ、シリアル入力端子に接続したデータ線のみで各入力部Iへデータを入力することが可能となる。
また、図3の例では、各入力部Iの第1入力端子A(端子c)は、外部入力端子であるパラレル入力端子に接続されている。後述するように、OPT端子によってシリアル入力及びパラレル入力のいずれか1方が選択可能となるが、パラレル入力が不要の場合には、パラレル入力端子を設けなくてもよいし、パラレル入力端子を設けても外部と接続するためのデータ線を接続しないこととしてもよい。また、パラレル入力端子を設ける場合には、パラレル入力端子をクランプ(HighまたはLowで固定)しておくこととしてもよい。
出力部Oの接続については、出力部Oの出力(第2出力端子H)と、他の出力部Oの入力(第2入力端子F)と(端子eと端子bと)が接続されることによって、各出力部Oがシリアル接続される。具体的には、シリアル接続された出力部Oのうち、最前段の入出力ユニットIOUの出力部Oの出力(第2出力端子H)と、次段の入出力ユニットIOUの出力部Oの入力(第2入力端子F)とが接続され、次段以降も同様に接続され、シリアル接続がされる。最前段の入出力ユニットIOUの出力部Oの入力(第2入力端子F)は、例えばオープン(開放)とする。最後段の入出力ユニットIOUの出力部Oの出力(第2出力端子H)には、外部出力端子であるシリアル出力端子が接続される。このように、出力部Oがシリアル接続されることによって、Dフリップフロップをシリアル接続(カスケード接続)した構成とすることができるため、所定のクロック信号IOCKに基づいてシリアル接続された各出力部Oが保持する出力データをシフトさせ、シリアル接続された出力部Oのうち最後段の出力部Oからシリアル形式の出力データを出力させることができ、最後段の出力部Oに接続されたシリアル出力端子に接続したデータ線のみで各出力部Oへデータを入力することが可能となる。
また、図3の例では、各出力部Oの第1入力端子E(端子d)は、外部入力端子であるパラレル出力端子に接続されている。後述するように、OPT端子によってシリアル出力及びパラレル出力のいずれか1方が選択可能となるが、パラレル出力が不要の場合には、パラレル出力端子を設けなくてもよいし、パラレル出力端子を設けても外部と接続するためのデータ線を接続しないこととしてもよい。
また、図3に示すように、分割セレクタ(入力側分割セレクタIDS及び出力側分割セレクタODS)を用いることによって、シリアル接続状態を分割することが可能となる。具体的には、入出力回路IOには、シリアル接続された入力部Iにおいて、所定の入力部Iの間に、後段の入力部Iの入力側の接続先として、前段の入力部I及びシリアル入力端子(図3のSI[1])のいずれか1方を選択する入力側分割セレクタIDSが設けられている。また、入出力回路IOには、シリアル接続された出力部Oにおいて、所定の出力部Oの間に、前段の出力部Oの出力側の接続先として、後段の出力部O及びシリアル出力端子(図3のSO[0])のいずれか1方を選択する出力側分割セレクタODSが設けられている。なお、図3には分割セレクタを用いた構成の一例が示されているが、分割セレクタを用いない構成とすることも可能である。また、分割セレクタを設ける位置については図3の位置に限定されない。
入力側分割セレクタIDSは、シリアル接続された入力部Iにおいて、予め設定された2つの入力部I間の接続状態を変更可能とするためのものであり、シリアル接続された入力部Iのシリアル接続状態を、該2つの入力部I間で分け、分割するものである。すなわち、入力側分割セレクタIDSは、入力部Iの出力(第2出力端子D)と、他の入力部Iの入力(第2入力端子B)と(端子fと端子aと)の間に設けられる。具体的には、入力側分割セレクタIDSは、選択可能なように前段の入力部Iの出力(第2出力端子D)と外部入力端子(シリアル入力端子)が接続されており、これらのうち選択された方と、後段の入力部Iの入力(第2入力端子B)とを接続する。入力側分割セレクタIDSの選択状態は、後述するOPT端子によって制御される。
図3の例では、入力側分割セレクタIDSにおいて前段の入力部Iの出力(第2出力端子D)と後段の入力部Iの入力(第2入力端子B)とが接続されることによって、8つのすべての入力部Iがシリアル接続され、シリアル入力端子(図3のSI[0])から8つ設けられた各入力部Iへデータを入力することが可能となる。そして、入力側分割セレクタIDSにおいて外部入力端子(シリアル入力端子)と後段の入力部Iの入力(第2入力端子B)とが接続されることによって、4つごとに入力部Iがシリアル接続され、シリアル入力端子(図3のSI[0]またはSI[1])から4つ設けられた各入力部Iへデータを入力することが可能となる。すなわち、図3の例では、入力側分割セレクタIDSの選択状態を制御することによって、8つの入力部Iをシリアル接続する状態と、4つごとに入力部Iをシリアル接続する状態とを変更することが可能となる。
出力側分割セレクタODSは、シリアル接続された出力部Oにおいて、予め設定された2つの出力部O間の接続状態を変更可能とするためのものであり、シリアル接続された出力部Oのシリアル接続状態を、該2つの出力部O間で分け、分割するものである。すなわち、出力側分割セレクタODSは、出力部Oの出力(第2出力端子H)と、他の出力部Oの入力(第2入力端子F)と(端子eと端子bと)の間に設けられる。具体的には、出力側分割セレクタODSは、選択可能なように後段の出力部Oの入力(第2入力端子F)と外部出力端子(シリアル出力端子)が接続されており、これらのうち選択された方と、前段の出力部Oの出力(第2出力端子H)とを接続する。出力側分割セレクタODSの選択状態は、後述するOPT端子によって制御される。
図3の例では、出力側分割セレクタODSにおいて前段の出力部Oの出力(第2出力端子H)と後段の出力部Oの入力(第2入力端子F)とが接続されることによって、8つのすべての出力部Oがシリアル接続され、シリアル入力端子(図3のSO[1])から8つ設けられた各出力部Oからデータを出力することが可能となる。そして、出力側分割セレクタODSにおいて外部出力端子(シリアル出力端子)と後段の出力部Oの入力(第2入力端子F)とが接続されることによって、4つごとに出力部Oがシリアル接続され、シリアル出力端子(図3のSO[0]またはSO[1])から4つ設けられた各出力部Oからデータを出力することが可能となる。すなわち、図3の例では、出力側分割セレクタODSの選択状態を制御することによって、8つの出力部Oをシリアル接続する状態と、4つごとに出力部Oをシリアル接続する状態とを変更することが可能となる。
入出力回路IOには、オプション端子(以下、「OPT端子」という。)が設けられている。OPT端子は、入力部I及び出力部Oのセレクタ(IS1、OS1、IS2、OS2)及び分割セレクタ(IDS、ODS)の選択状態を設定する。図3の例では、入力部Iの入力側セレクタIS1及び出力側セレクタOS1、出力部Oの入力側セレクタIS2及び出力側セレクタOS2、入力側分割セレクタIDS、出力側分割セレクタODSがOPT端子によって制御される。OPT端子のビット数は、入出力回路IOの動作モードの数に応じて設定される。本実施形態では、OPT端子は2ビット分のデータ(00、01、01、11)を設定可能とする。入出力回路IOは、OPT端子より00が入力された場合には、後述するパラレル入出力モードとなり、OPT端子より01が入力された場合には、後述するシリアル入出力モード(分割あり)となり、OPT端子より11が入力された場合には、後述するシリアル入出力モード(分割なし)となる。なお、本実施形態では、図3に示すように、入力側分割セレクタIDSと出力側分割セレクタODSを各1つ設けることとしているため、シリアル接続状態を分割セレクタ(IDS、ODS)を境界として2つに分割することができる。このため、動作モードは、パラレル入出力モード、シリアル入出力モード(分割あり)、シリアル入出力モード(分割なし)の3パターンとなる。しかしながら、入力側分割セレクタIDSと出力側分割セレクタODSを各2以上設ける場合には、例えばシリアル接続状態を2分割したり4分割することも可能である。このため、分割セレクタ(IDS、ODS)の設置数によって動作モードは変化するため(例えば、パラレル入出力モード、シリアル入出力モード(2分割)、シリアル入出力モード(4分割)、シリアル入出力モード(分割なし)など)、各動作モードを切り替え可能なように、OPT端子のビット数は設定される。
次に、入出力回路IOにおける各動作モードにおける接続状態について説明する。なお、動作状態とは、パラレル入出力モード、シリアル入出力モード(分割あり)、シリアル入出力モード(分割なし)である。
図6は、パラレル入出力モードにおける入出力回路IOの接続状態を示した図である。なお、図6の接続状態は、OPT端子が00を示す場合に対応する。図6では、入力部I及び出力部Oの各セレクタ(IS1、OS1、IS2、OS2、IDS、ODS)で選択されている線を実線で表示し、選択されていない線を破線で示している。入力及び出力のいずれを行うかは、セレクタIOSによって設定される。パラレル入力を行う場合には、各入力部Iへパラレル入力端子を用いて直接データを入力する。図6に示すように、入力部Iでは、入力側セレクタIS1において、パラレル入力端子(DI[0]−DI[7])が選択されており、出力側セレクタOS1において、メモリセルMCが選択されている。このため、各パラレル入力端子から直接入力部Iへデータの入力を行うことができる。
このように、パラレル入力する場合には、設けた入力部Iの数分、すなわち図6では8つのパラレル入力端子(DI[0]−DI[7])を用いる。
パラレル出力を行う場合には、各出力部Oからパラレル出力端子を用いて直接データを出力する。図6では、入力部I及び出力部Oの各セレクタ(IS1、OS1、IS2、OS2、IDS、ODS)で選択されている線を実線で表示し、選択されていない線を破線で示している。図6に示すように、出力部Oでは、入力側セレクタIS2において、メモリセルMCが選択されており、出力側セレクタOS2において、パラレル出力端子(Q[0]−Q[7])が選択されている。このため、各パラレル出力端子から直接データの出力を行うことができる。
このように、パラレル出力する場合には、設けた出力部Oの数分、すなわち図6では8つのパラレル出力端子(Q[0]−Q[7])を用いる。
図7は、シリアル入出力モード(分割あり)における入出力回路IOの接続状態を示した図である。なお、図7では、入力部Iへデータを入力する場合及び出力部Oからデータを出力する場合の接続状態を示している。図7の接続状態は、OPT端子が01を示す場合に対応する。図7では、入力部I及び出力部Oの各セレクタ(IS1、OS1、IS2、OS2、IDS、ODS)で選択されている線を実線で表示し、選択されていない線を破線で示している。なお、図7の例では、入力側分割セレクタIDSにおいてシリアル入力端子(SI[1])と後段の入力部Iとが接続されており、出力側分割セレクタODSにおいて前段の出力部Oとシリアル出力端子(SO[0])とが接続されている場合を示している。入力及び出力のいずれを行うかは、セレクタIOSによって設定される。シリアル入力を行う場合には、各入力部Iをシリアル接続し、シリアル入力によりデータを入力する。図7に示すように、入力部Iでは、入力側セレクタIS1において、シリアル接続された他の入力部Iが選択されており、出力側セレクタOS1において、シリアル接続された他の入力部Iが選択されている。そして、入力側分割セレクタIDS及び出力側分割セレクタODSにより、8つの入出力ユニットIOUが2分割されている(4つの入出力ユニットIOU毎に分かれている)。このため、分割して各入力部Iをシリアル接続することができ、分割された単位毎に、最前段の入力部Iへ入力されたシリアル形式の入力データをシリアル入力端子(SI[0]−SI[1])へ入力し、所定のクロック信号IOCKに基づいて次段の入力部Iへシフトさせ、シリアル接続された各入力部Iへ入力データを入力することができる。
このように、シリアル入力(分割あり)する場合には、分割した数分、すなわち図7では2つシリアル入力端子(SI[0]−SI[1])を用いる。
シリアル出力を行う場合には、各出力部Oをシリアル接続し、シリアル出力によりデータを出力するモードである。図7に示すように、出力部Oでは、入力側セレクタIS2において、シリアル接続された他の出力部Oが選択されており、出力側セレクタOS2において、シリアル接続された他の出力部Oが選択されている。そして、入力側分割セレクタIDS及び出力側分割セレクタODSにより、8つの入出力ユニットIOUが2分割されている(4つの入出力ユニットIOU毎に分かれている)。このため、分割して各出力部Oをシリアル接続することができ、分割された単位毎に、所定のクロック信号IOCKに基づいてシリアル接続された各出力部Oが保持する出力データをシフトさせ、シリアル接続された出力部Oのうち最後段の出力部Oへ接続されたシリアル出力端子(SO[0]−SO[1])からシリアル形式の前記出力データを出力させることができる。
このように、シリアル出力(分割あり)する場合には、分割した数分、すなわち図7では2つシリアル出力端子(SO[0]−SO[1])を用いる。
図8は、シリアル入出力モード(分割なし)における入出力回路IOの接続状態を示した図である。なお、図8では、入力部Iへデータを入力する場合及び出力部Oからデータを出力する場合の接続状態を示している。図8の接続状態は、OPT端子が11を示す場合に対応する。図8では、入力部I及び出力部Oの各セレクタ(IS1、OS1、IS2、OS2、IDS、ODS)で選択されている線を実線で表示し、選択されていない線を破線で示している。なお、図8の例では、入力側分割セレクタIDSにおいて前段の入力部Iと後段の入力部Iとが接続されており、出力側分割セレクタODSにおいて前段の出力部Oと後段の出力部Oとが接続されている場合を示している。入力及び出力のいずれを行うかは、セレクタIOSによって設定される。シリアル入力を行う場合には、各入力部Iをシリアル接続し、シリアル入力によりデータを入力する。図8に示すように、入力部Iでは、入力側セレクタIS1において、シリアル接続された他の入力部Iが選択されており、出力側セレクタOS1において、シリアル接続された他の入力部Iが選択されている。このため、各入力部Iをシリアル接続することができ、最前段の入力部Iへ入力されたシリアル形式の入力データをシリアル入力端子(SI[0])へ入力し、所定のクロック信号IOCKに基づいて次段の入力部Iへシフトさせ、シリアル接続された各入力部Iへ入力データを入力することができる。
このように、シリアル入力(分割なし)する場合には、1つシリアル入力端子(SI[0])を用いる。
シリアル出力を行う場合には、各出力部Oをシリアル接続し、シリアル出力によりデータを出力するモードである。図8に示すように、出力部Oでは、入力側セレクタIS2において、シリアル接続された他の出力部Oが選択されており、出力側セレクタOS2において、シリアル接続された他の出力部Oが選択されている。このため、各出力部Oをシリアル接続することができ、所定のクロック信号IOCKに基づいてシリアル接続された各出力部Oが保持する出力データをシフトさせ、シリアル接続された出力部Oのうち最後段の出力部Oへ接続されたシリアル出力端子(SO[1])からシリアル形式の前記出力データを出力させることができる。
このように、シリアル出力(分割なし)する場合には、1つシリアル出力端子(SO[1])を用いる。
このように、各動作モードによって使用する外部端子の数が異なる。外部端子は、外部とのデータの伝達のためにデータ線が接続される。このデータ線はSRAMを含む半導体集積回路においてSRAMが占める空間以外の空間に配置されるが、データ線の数が多くなるほど必要な配線面積が増加する。このため、パラレル入出力モードと比較して、シリアル入出力モード(分割あり)またはシリアル入出力モード(分割なし)では必要な外部端子の数を抑制することができるため、データ線の数を抑制することができる。例えば、図9は配線に要する面積を示す図である。図9では、パラレル入出力モードの場合に要するデータ線が占める面積と、シリアル入出力モード(分割なし)の場合に要するデータ線が占める面積が比較されている。パラレル入出力モードでは、図6の例では、パラレル入力端子が8つ、パラレル出力端子が8つ必要であるため、計16本のデータ線が必要となる。一方で、シリアル入出力モード(分割なし)では、図8の例では、シリアル入力端子が1つ、シリアル出力端子が1つ必要であるため、計2本のデータ線が必要となる。すなわち、シリアル入出力モード(分割なし)におけるデータ線の占有面積は、パラレル入出力モードにおけるデータ線の占有面積に対して1/8とすることができる。本実施形態では、入出力ユニットIOUが8つの場合を例として説明しているが、ビット数の増大に対して、面積低減の効果は顕著となる。
次に、シリアル入出力モード(分割なし)における入出力回路IOの動作を説明する。図10は、シリアル出力(Read)を示す図であり、図11は、シリアル入力(Write)を示す図である。なお、図10及び図11は、図3等に示すように、入出ユニットが8ビット分設けられる場合に対応している。
まず、図10を用いて、シリアル出力(Read)を行う場合について説明する。すなわち、各出力部Oへ格納された出力データは、シリアル出力端子(SO[1])より出力される。図10におけるIOCKは、クロック信号として、各出力部OのラッチPL2、SL2における各トランスファーゲートTG6−TG9へ入力される。OPT端子に11が入力され、シリアル出力を行う場合には、まず、メモリセルMCから出力された出力データを各出力部Oへ格納するため、出力部Oの入力側セレクタIS2において第1入力端子Eが選択され、出力部Oの第1入力端子EにはメモリセルMCから出力された出力データが入力される(セレクタIOSは出力部O側を選択)。メモリセルMCから出力された出力データを各出力部Oへ格納するための動作(出力部Oの入力側セレクタIS2において第1入力端子Eを選択し、セレクタIOSにおいて出力部O側を選択する動作)は、シリアル出力を行う場合に、各出力部Oをシリアル接続する前段階として、制御部CLや制御ブロックCBにおいて制御される。この状態において、図10に示すように、IOCKの#Sが立ち上がると、出力部OのトランスファーゲートTG6、TG9が導通状態となり(トランスファーゲートTG7、TG8は非導通状態)、出力データに基づいてラッチPL2の出力が設定される。そして、IOCKが立ち下がると、トランスファーゲートTG6、TG9が非導通状態となり、トランスファーゲートTG7、TG8が導通状態となるため、ラッチPL2の出力がラッチSL2へ伝達され、入力された出力データが出力部Oから出力可能な状態となる。このように、各出力部Oでは、IOCKの立ち上がりで前段のラッチPL2にデータが導通し、IOCKの立ち下がりで後段のラッチSL2へデータがセットされる。なお、各出力部Oにデータがセットされると、最前段の出力部Oに1ビット目の出力データが格納され、次段の出力部Oに2ビット目の出力データが格納され、次段の出力部Oに3ビット目の出力データが格納され、次段の出力部Oに4ビット目の出力データが格納され、次段の出力部Oに5ビット目の出力データが格納され、次段の出力部Oに6ビット目の出力データが格納され、次段の出力部Oに7ビット目の出力データが格納され、最後段の出力部O(SO[1]が接続された出力部O)に8ビット目の出力データが格納さるものとする。
各出力部Oへ出力データがセットされると、図8のように8つの各出力部Oはシリアル接続される(図10の「動作切り替え」)。シリアル接続されると、最後段の出力部Oの出力がシリアル出力端子(SO[1])から出力される(8ビット目のデータ出力)。なお、シリアル出力端子(SO[1])からは最後段の出力部Oの出力が出力されるため、ビット番号の設定の仕方によっては、8ビット目が出力される場合に限定されない。各出力部Oをシリアル接続するための動作(入力側セレクタIS2において第2入力端子Fを選択し、出力側セレクタOS2において第2出力端子Hを選択する動作)は、シリアル出力を行う場合に、各出力部Oに出力データがセットされた後段階として、制御部CLや制御ブロックCBにおいて制御される。そして、各出力部Oがシリアル接続された状態で、IOCKの#0が立ち上がると、前段の出力部Oの出力データによって出力部Oの前段のラッチPL2の値が設定され、IOCKの#0が立ち下がると、前段のラッチPL2の出力によって、後段のラッチSL2出力が設定される。すると、最後段の出力部Oは、前段の出力部Oが最初に保持していた出力データ(7ビット目のデータ)を出力し、シリアル出力端子(SO[1])から出力される(7ビット目のデータ出力)。このようにして、出力部Oに最初に保持された出力データ(1ビット目のデータから8ビット目のデータ)はクロック信号IOCKに従って次段の出力部Oへシフトされ、シリアル出力端子(SO[1])から出力される。このようにして、各出力部Oへ出力データがセットされた後に各出力部Oがシリアル接続され、保持している出力データがシリアル出力される。
このように、シリアル出力を行う場合には、まず、出力部Oの入力側セレクタIS2において第1入力端子Eを選択し、セレクタIOSにおいて出力部O側を選択して、メモリセルMCから出力された出力データを各出力部Oへ格納するための動作を行い、その後、各出力部Oをシリアル接続するための動作(入力側セレクタIS2において第2入力端子Fを選択し、出力側セレクタOS2において第2出力端子Hを選択する動作)への動作の切り替えを行い、出力データをシリアル出力する。
図11を用いて、シリアル入力(Write)を行う場合について説明する。すなわち、シリアル入力端子より入力された入力データはシリアル入力端子(SI[0])より、シリアル接続された各入力部Iへ入力される。図11におけるIOCKは、クロック信号として、各入力部IのラッチPL1、SL1における各トランスファーゲートTG1−TG4へ入力される。OPT端子に11が入力され、シリアル入力を行う場合、シリアル入力端子(SI[0])には、シリアル形式の入力データが入力される。シリアル形式とは、各入力部Iへ保持したい入力データがシリアルに配列されたデータである。すなわち、書き込みたい8ビット目の入力データから1ビット目の入力データまでがシリアルに配置され、シリアル入力端子(SI[0])から入力される。OPT端子には11が設定され、図8のように8つの各入力部Iはシリアル接続されているものとする。すなわち、各入力部Iをシリアル接続するための動作(入力側セレクタIS1において第2入力端子Bを選択し、出力側セレクタOS1において第2出力端子Dを選択する動作)は、シリアル入力を行う場合に、各入力部IからメモリセルMCへ入力データを出力する前段階として、制御部CLや制御ブロックCBにおいて制御される。なお、OPT端子を用いて外部より11を入力することにより、入力側セレクタIS1において第2入力端子Bを選択し、出力側セレクタOS1において第2出力端子Dを選択し、各入力部Iをシリアル接続する動作を行うこととしてもよい。
シリアル入力端子から8ビット目の入力データが入力されている状態でIOCKの#0が立ち上がると、入力部IのトランスファーゲートTG1、TG4が導通状態となり(トランスファーゲートTG2、TG3は非導通状態)、8ビット目のデータは最前段の入力部Iの前段のラッチPL1に出力される。そして、IOCKの#0が立ち下がると、トランスファーゲートTG1、TG4が非導通状態となり、トランスファーゲートTG2、TG3が導通状態となるため、8ビット目の入力データは、最前段の入力部Iの後段のラッチSL1から出力される。そして、シリアル入力端子(SI[0])から7ビット目の入力データが入力されている状態でIOCKの#1が立ち上がると、8ビット目の入力データは次段の入力部Iの前段のラッチPL1に出力されるとともに(シフト)、7ビット目の入力データは、最前段の入力部Iの前段のラッチPL1に出力される。そして、IOCKの#1が立ち下がると、8ビット目の入力データは次段の入力部Iの後段のラッチSL1に出力されるとともに、7ビット目の入力データは、最前段の入力部Iの後段のラッチSL1に出力される。このようにして、各入力部Iへ入力データがシフトされ格納される。
各入力部Iへ入力データが格納されると、各入力部Iに保持された入力データはライトアンプへ出力され(図11の「動作切り替え」)、メモリセルMCへ出力される(セレクタIOSは入力部I側を選択)。具体的には、各入力部Iへ格納された入力データをメモリセルMCへ出力するための動作(入力部Iの出力側セレクタOS1において第1出力端子Cを選択し、セレクタIOSにおいて入力部I側を選択する動作)は、シリアル入力を行う場合に、各入力部Iに入力データがセットされた後段階として、制御部CLや制御ブロックCBにおいて制御される。
このように、シリアル入力を行う場合には、まず、入力側セレクタIS1において第2入力端子Bを選択し、出力側セレクタOS1において第2出力端子Dを選択して、各入力部Iをシリアル接続するための動作を行い、その後、各入力部Iへ格納された入力データをメモリセルMCへ出力するための動作(入力部Iの出力側セレクタOS1において第1出力端子Cを選択し、セレクタIOSにおいて入力部I側を選択する動作)への動作の切り替えを行い、シリアル入力を行う。
このようにして、メモリセルMCへの入力データの書き込み及びメモリセルMCが保持している出力データの書き出しがシリアル入出力により行われる。
本実施形態におけるSRAMは、他の回路とともに半導体集積回路に含まれ、機器に搭載される。SRAMは一般的には高速性能が要求されるため、入出力回路IOからは各データがパラレル出力される。しかしながら、高速性能の要求度が低い機器においては、SRAMから各データをパラレル出力する必要がない場合がある。高速性能の要求度が低い機器とは例えばLCDドライバである。パラレル出力すると、SRAMへの接続のためのデータ線の数が増大し、データ線の敷設に大きな面積を要してしまう場合がある。このため、LCDドライバのような高速性能の要求度が低い機器においては、上述のようにシリアルにデータを入出力することによってSRAMへの接続のためのデータ線の数を抑制することができるため、データ線の占有面積を抑制することができる。これは、入出力ビットが多く、データ線の総距離が長いほど、効果的に占有面積を抑制することが可能となる。LCDドライバにおいて、RGBがnバイト必要な場合には、3×8×nビット分のデータを入出力する必要があるため、パラレルで入出力を行うこととすると、データ線数が膨大となる、このため、シリアルで入出力を行うこととすることで、データ線数を抑制し、集積回路内の配線空間を有効活用することが可能となる。また、LCDドライバでは、SRAMが図1のように横長で構成される場合があるため、このように1本のデータ線の長さが長くなる場合にも、パラレルではなくシリアルで入出力を行うことで、データ線の占有面積を効果的に低減することが可能となる。
また、本実施形態では、OPT端子によって、パラレル及びシリアルを選択することが可能となっている。このため、搭載される機器の仕様に合わせてパラレル及びシリアルを選択することができる。すなわち、本実施形態のSRAMは汎用性が高く、速度要求及び配線面積要求等に応じて適切な動作モードを選択し、搭載することができる。
以上説明したように、本実施形態に係るSRAM、半導体集積回路及びLCDドライバによれば、行列状に配置された複数のメモリセルMCを有するセルアレイCAに対して設けたデータの読み書きを行う入出力ユニットIOUにおいて、入力された入力データを保持し、入力データをメモリセルMCへ出力することで、メモリセルMCへ入力データの書込みを行う入力部Iと、メモリセルMCから出力された出力データを保持し、出力データを出力することで、出力データの読出しを行う出力部Oとを有することとしている。そして、各入力部Iがシリアル接続されることによって各入力部Iへ入力データがシリアル入力され、各出力部Oがシリアル接続されることによって各出力部Oが保持する出力データがシリアル出力される。このため、メモリセルMCへデータの書き込みを行うために各入出力ユニットIOUの入力部Iへ入力データを入力する場合に、シリアル接続された各入力部Iへ入力データをシリアル入力することが可能となる。シリアル接続された各入力部Iへデータ入力は例えばシリアル接続の端の入力部Iから行うことができるため、各入出力ユニットIOUの入力部Iへデータをパラレル入力する場合と比較して、入力に要するデータ線の数を抑制することが可能となる。
また、メモリセルMCからの出力データの読出しを行うために各入出力ユニットIOUの出力部Oから出力データを出力する場合に、シリアル接続された各出力部Oから出力データをシリアル出力することが可能となる。シリアル接続された各出力部Oからのデータ出力は例えばシリアル接続の端の出力部Oから行うことができるため、各入出力ユニットIOUの出力部Oからデータをパラレル出力する場合と比較して、出力に要するデータ線の数を抑制することが可能となる。
例えば、入出力ユニットIOUが32ビット分ある場合には、パラレル出力に要するデータ線は、32本となる。しかしながら、入出力ユニットIOUを4分割(32ビットを8ビット単位で分割)した場合には、8ビット単位でシリアル出力することが可能となるため、データの出力に要するデータ線は4本となる。このため、データ線に要する面積を効果的に低減することが可能となる。
また、入力部Iは、出力側の接続先としてメモリセルMC及びシリアル接続された他の入力部Iのいずれか1方を選択する出力側セレクタOS1を備えるため、入力部Iの出力側の接続先としてメモリセルMCを選択することでメモリセルMCへの入力データの書込みを行うことができ、入力部Iの出力側の接続先としてシリアル接続された他の入力部Iを選択することで入力部Iをシリアル接続することが可能となる。また、出力部Oは、入力側の接続先として、メモリセルMC及びシリアル接続された他の出力部Oのいずれか1方を選択する入力側セレクタIS2を備えるため、出力部Oの入力側の接続先としてメモリセルMCを選択することでメモリセルMCからの出力データの読出しを行うことができ、出力部Oの入力側の接続先としてシリアル接続された他の出力部Oを選択することで出力部Oをシリアル接続することが可能となる。
また、シリアル接続された入力部Iにおいて、所定の入力部Iの間に、後段の入力部Iの入力側の接続先として、前段の入力部I及びシリアル入力端子のいずれか1方を選択する入力側分割セレクタIDSを有するため、入力部Iのシリアル接続状態を変更することが可能となる。すなわち、後段の入力部Iの入力側の接続先として前段の入力部Iを選択することで、所定の入力部Iの間をシリアル接続することが可能となる。また、後段の入力部Iの入力側の接続先としてシリアル入力端子を選択することで、シリアル接続された入力部Iを所定の入力部Iの間で分割することが可能となる。このため、シリアル接続された入力部Iのシリアル接続状態を分割することが可能となる。
また、シリアル接続された出力部Oにおいて、所定の出力部Oの間に、前段の出力部Oの出力側の接続先として、後段の出力部O及びシリアル出力端子のいずれか1方を選択する出力側分割セレクタODSを有するため、出力部Oのシリアル接続状態を変更することが可能となる。すなわち、前段の出力部Oの出力側の接続先として後段の出力部Oを選択することで、所定の出力部Oの間をシリアル接続することが可能となる。また、前段の出力部Oの出力側の接続先としてシリアル出力端子を選択することで、シリアル接続された出力部Oを所定の出力部Oの間で分割することが可能となる。このため、シリアル接続された出力部Oのシリアル接続状態を分割することが可能となる。
また、シリアル接続された入力部Iのうち最前段の入力部Iへ入力されたシリアル形式の入力データを、所定のクロック信号IOCKに基づいて次段の入力部Iへシフトさせ、シリアル接続された各入力部Iへ入力データを格納することによって、最前段の入力部Iへ接続されたデータ線のみで、シリアル接続された各入力部Iへ入力データの格納が可能となる。このため、データ線の数を抑制しデータ線に要する面積を効果的に低減することが可能となる。
また、所定のクロック信号IOCKに基づいてシリアル接続された各出力部Oが保持する出力データをシフトさせ、シリアル接続された出力部Oのうち最後段の出力部Oからシリアル形式の出力データを出力させることによって、最後段の出力部Oへ接続されたデータ線のみで、シリアル接続された各出力部Oから出力データを出力させることが可能となる。このため、データ線の数を抑制しデータ線に要する面積を効果的に低減することが可能となる。
また、入力部Iは、入力側の接続先として、シリアル接続された他の入力部I及びシリアル入力端子のいずれか1方を選択する入力側セレクタIS1を有する。このため、入力側の接続先としてシリアル接続された他の入力部Iを選択すれば入力部I間をシリアル接続することができ、接続先としてパラレル入力端子を選択すれば各入力部Iへ直接入力データを入力すること(パラレル入力)が可能となる。また、出力部Oは、出力側の接続先として、シリアル接続された他の出力部O及びシリアル出力端子のいずれか1方を選択する出力側セレクタOS2を有する。このため、出力側の接続先としてシリアル接続された他の出力部Oを選択すれば出力部O間をシリアル接続することができ、接続先としてパラレル出力端子を選択すれば各出力部Oから直接出力データを出力すること(パラレル出力)が可能となる。
また、入力部Iへ入力データを入力する場合に、入力側セレクタ(第1入力側セレクタ)IS1においてパラレル入力端子を選択することでパラレル入力を行うことが可能となる。また、入力部Iへ入力データを入力する場合に、入力側セレクタ(第1入力側セレクタ)IS1においてシリアル接続された他の入力部Iを選択し、出力側セレクタ(第1出力側セレクタ)OS1においてシリアル接続された他の入力部Iを選択することによって、各入力部Iをシリアル接続して、各入力部Iへ入力データをシリアル入力することが可能となる。また、出力側セレクタ(第1出力側セレクタ)OS1において、メモリセルMCを選択することにより、入力された入力データをメモリセルMCへ出力して、書き込みを行うことが可能となる。
また、入力側セレクタ(第2入力側セレクタ)IS2において、メモリセルMCを選択することで、メモリセルMCから出力部Oへ出力データを出力することができる。また、入力側セレクタ(第2入力側セレクタ)IS2においてシリアル接続された他の出力部Oを選択し、出力側セレクタ(第2出力側セレクタ)OS2においてシリアル接続された他の出力部Oを選択することによって、各出力部Oをシリアル接続して、各出力部Oから出力データをシリアル出力することが可能となる。また、出力側セレクタ(第2出力側セレクタ)OS2において、パラレル出力端子を選択することによってパラレル出力を行うことが可能となる。
また、シリアル接続された入力部Iにおいて、所定の入力部Iの間に、後段の入力部Iの入力側の接続先として、前段の入力部I及びシリアル入力端子のいずれか1方を選択する入力側分割セレクタIDSを有するため、入力部Iのシリアル接続状態を変更することが可能となる。すなわち、後段の入力部Iの入力側の接続先として前段の入力部Iを選択することで、所定の入力部Iの間をシリアル接続することが可能となる。また、後段の入力部Iの入力側の接続先としてシリアル入力端子を選択することで、シリアル接続された入力部Iを所定の入力部Iの間で分割することが可能となる。また、シリアル接続された出力部Oにおいて、所定の出力部Oの間に、前段の出力部Oの出力側の接続先として、後段の出力部O及びシリアル出力端子のいずれか1方を選択する出力側分割セレクタODSを有するため、出力部Oのシリアル接続状態を変更することが可能となる。すなわち、前段の出力部Oの出力側の接続先として後段の出力部Oを選択することで、所定の出力部Oの間をシリアル接続することが可能となる。また、前段の出力部Oの出力側の接続先としてシリアル出力端子を選択することで、シリアル接続された出力部Oを所定の出力部Oの間で分割することが可能となる。
本発明は、上述の実施形態のみに限定されるものではなく、発明の要旨を逸脱しない範囲において、種々変形実施が可能である。