(57)【要約】  本発明に係る半導体装置１１０は、所定量のデータを記憶するメモリセルを複数備えたメモリセルブロックを複数有する。そして、それぞれのメモリセルブロックは、入力数および出力数が３つ以上であり、内部に前記メモリセルに対する２つの読出アドレスデコーダを備え、所定のアドレス入力に対して所望の論理値を出力するための真理値表データをメモリセルに記憶し、論理回路として動作するように構成されている。また、メモリセルは、２つの読出アドレスデコーダに対応して２本の読出ワード線を有しており、その２本の読出ワード線の両方の電圧が印加された場合に、そのとき保持しているデータが読出データ線から読み出される。さらに、メモリセルブロック同士は、１つのメモリセルブロックからの３つ以上の出力が３つ以上の他のメモリセルブロックへ入力されるように接続されている。
2007060763.tif 000002
【特許請求の範囲】
【請求項１】
所定量のデータを記憶するメモリセルを複数備えたメモリセルブロックを複数有する半導体装置であって、
それぞれの前記メモリセルブロックは、入力数および出力数が３つ以上であり、内部に前記メモリセルに対する２つの読出アドレスデコーダを備え、所定のアドレス入力に対して所望の論理値を出力するための真理値表データを前記メモリセルに記憶し、論理回路として動作するように構成され、
前記メモリセルは、前記２つの読出アドレスデコーダに対応して２本の読出ワード線を有しており、その２本の読出ワード線の両方の電圧が印加された場合に、そのとき保持しているデータが読出データ線から読み出され、
前記メモリセルブロック同士は、１つのメモリセルブロックからの３つ以上の出力が３つ以上の他のメモリセルブロックへ入力されるように接続されている
ことを特徴とする半導体装置。
【請求項２】
前記メモリセルブロックは、入力数および出力数が４つであり、
前記メモリセルブロック同士は、１つのメモリセルブロックからの４つの出力が４つの他のメモリセルブロックへ入力されるように接続されている
ことを特徴とする請求項１に記載の半導体装置。
【請求項３】
複数の前記メモリセルブロックは、それぞれ同様の大きさの長方形状をしており、アレイ状の配置から少なくとも一部をずらして配置することで、前記メモリセルブロック同士の接続を行っていることを特徴とする請求項１に記載の半導体装置。
【請求項４】
複数の前記メモリセルブロックは、アレイ状に配置され、配線によって前記メモリセルブロック同士の接続を行っていることを特徴とする請求項１に記載の半導体装置。
【請求項５】
請求項１に記載の半導体装置であって、さらに、
複数の前記メモリセルブロックと接続され、複数のメモリセルブロックおよびその内部の前記メモリセルに関するｘアドレスを指定する書込アドレスデコーダと、
複数の前記メモリセルブロックと接続され、複数のメモリセルブロックおよびその内部の前記メモリセルに関するｙアドレスを指定し、前記メモリセルに対してデータの書き込みを行う書込／読出回路と、を備え、
前記メモリセルは、前記書込アドレスデコーダと前記書込／読出回路によって指定された場合、前記書込／読出回路によってデータが書き込まれる
ことを特徴とする半導体装置。
【請求項６】
前記メモリセルブロックのメモリセルが前記真理値表データを記憶していないときは、通常の記憶装置として動作することを特徴とする請求項４に記載の半導体装置。
【請求項７】
前記メモリセルブロックは、
動作する前記メモリセルのエリアが２分されており、
前記読出アドレスデコーダにおける特定のアドレス選択線が切り替えられたときに、前記動作するメモリセルのエリアが切り替えられ、２種類の論理回路としての動作、あるいは、論理回路としての動作と通常の記憶装置としての動作、のいずれかが瞬時に切り替わる
ことを特徴とする請求項６に記載の半導体装置。
【請求項８】
複数の前記メモリセルブロックのうち、一部の前記メモリセルブロックのメモリセルが記憶する真理値表データが書き換えられた場合、
その書き換えられた真理値表データにしたがって動作を変更することを特徴とする請求項１に記載の半導体装置。
【請求項９】
システムＬＳＩを構成する請求項１の半導体装置であって、
自己テストし、かつ、前記システムＬＳＩにおける他の論理回路をテストすることを特徴とする半導体装置。
【請求項１０】
動作記述されたＣ言語プログラムによってコンパイルされることを特徴とする請求項１に記載の半導体装置。
【請求項１１】
アレイ状に配置された前記メモリセルブロックのうち、最右列、最左列、最上行および最下行のいずれかのそれぞれの前記メモリセルブロックからの出力を、他のいずれかのそれぞれの前記メモリセルブロックへ入力するための配線を設け、データの帰還を行うことを特徴とする請求項７に記載の半導体装置。
【請求項１２】
２分された前記メモリセルのエリアのうち、
一方のエリアが論理回路として動作しているときに、他方のエリアがその次の演算のための真理値表データを書き込まれ、
前記特定のアドレス選択線を切り替えることで、その他方のエリアによる演算を行い、この真理値表データの書き込みと前記特定のアドレス選択線を切り替えによって、連続して演算を行うことを特徴とする請求項１１に記載の半導体装置
【請求項１３】
基板として可撓性のあるフレキシブル基板を使用し、そのフレキシブル基板を湾曲することにより、データの帰還のための配線の距離を短くしたことを特徴とする請求項１１に記載の半導体装置。
【請求項１４】
基板の両面に前記半導体装置を１つずつ設け、ワイヤボンディングによってデータの帰還を行うことを特徴とする請求項１１に記載の半導体装置。
【請求項１５】
他の半導体装置の動作確認を行うテスタに用いられ、前記テスタに備えられた記憶装置が記憶している前記動作確認のためのテストプログラムに基づいてそのテストプログラムを実行することを特徴とする請求項１１に記載の半導体装置。
【請求項１６】
前記読出アドレスデコーダは、複数の論理回路を有し、
その複数の論理回路に使用されているトランジスタはＮ−ＭＯＳであることを特徴とする請求項１に記載の半導体装置。
【請求項１７】
請求項１１に記載の半導体装置を複数備え、
それぞれの前記半導体装置は、磁界を発生させる磁界発生部と、磁界を検知する磁界検知部と、を有し、
いずれかの前記半導体装置の前記メモリセルブロックからの出力に基づいて磁界発生部により磁界を発生させ、他のいずれかの前記半導体装置の前記磁界検知部によってその磁界を検知することによりデータの帰還を行うことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリを論理回路として動作させることができる半導体装置に関する。
【背景技術】
【０００２】
従来、ＬＳＩ（Large Scale Integration）などの半導体装置は、機能設計、論理回路設計、ウェハ製造、組立などの多くの工程を経て製造されていた。そして、その製造工程は、同一製品の多量生産には適していたが、多種類の製品の少量ずつの生産にはコストがかかるため適していなかった。【０００３】
そこで、単一の半導体装置を多量に生産しても顧客サイドで別々の製品として使い分けることができるように、ＦＰＧＡ（Field Programmable Gate Array）などの製造技術も開発された。ＦＰＧＡとは、製造した後に論理回路をプログラムできるＬＳＩなどの半導体装置のことである。
しかし、ＦＰＧＡは、論理回路、配線、スイッチなど多種の部品から構成されるため、半導体プロセス上の配線層数の多層配線構造や高度な製造技術を必要とするという問題があった。【０００４】
そして、その１つの解決手法として、メモリを論理回路として動作させる技術が開発された。
たとえば、特許文献１では、複数のメモリを配線接続し、所定のアドレス入力に対して所定のデータを出力するように、メモリに所定の真理値を書き込むことで論理回路として動作する半導体装置に関する技術が開示されている。【０００５】
また、特許文献２では、ＳＲＡＭ（Static Random Access Memory）などのメモリに真理値表データを書き込み、アドレスを入力とし、出力を出力とすることで論理回路として動作する半導体装置に関する技術が開示されている。
【特許文献１】特開２００３−１４９３００号公報
【特許文献２】特開２００３−２２４４６８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１の半導体装置では、メモリの真理値を書き換える場合には、配線を接続しなおさなければならないという問題があった。
また、特許文献２の半導体装置では、所定量のデータを記憶するメモリセルを複数集めたメモリセルブロックがアレイ状に並べられ、１つのメモリセルブロックからのデータは、隣接する４つのメモリセルブロックのうち２つ（たとえば上下左右のうち右と下）にしか出力されないため、データを帰還させる（元のメモリセルブロックに戻す）論理回路として動作させることが困難であった。また、メモリセルブロックの規模（入力数や出力数）の適正化も考慮されていなかった。【０００７】
そこで、本発明は、前記問題点に鑑みてなされたものであり、論理回路として動作するメモリであり、メモリの真理値を書き換えても配線を接続しなおす必要がなく、また、データを帰還させることができ、さらに、メモリセルブロックの規模を適正化した半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
前記課題を解決するために、本発明に係る半導体装置は、所定量のデータを記憶するメモリセルを複数備えたメモリセルブロックを複数有する。そして、それぞれのメモリセルブロックは、入力数および出力数が３つ以上であり、内部に前記メモリセルに対する２つの読出アドレスデコーダを備え、所定のアドレス入力に対して所望の論理値を出力するための真理値表データをメモリセルに記憶し、論理回路として動作するように構成されている。また、メモリセルは、２つの読出アドレスデコーダに対応して２本の読出ワード線を有しており、その２本の読出ワード線の両方の電圧が印加された場合に、そのとき保持しているデータが読出データ線から読み出される。さらに、メモリセルブロック同士は、１つのメモリセルブロックからの３つ以上の出力が３つ以上の他のメモリセルブロックへ入力されるように接続されている。
【発明の効果】
【０００９】
本発明によれば、論理回路として動作するメモリであり、メモリの真理値を書き換えても配線を接続しなおす必要がなく、また、データを帰還させることができ、さらに、メモリセルブロックの規模を適正化した半導体装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】半導体装置と情報処理装置の構成図である。
【図２】図１の半導体装置１１０を構成する記憶素子であるメモリセルの構成図である。
【図３】メモリセルブロックの構成図である。
【図４】半導体装置１１０における読出ポートの接続状況を示した図である。
【図５】半導体装置１１０の内部構造図である。
【図６】３ビット加算器の構成例である。
【図７】（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｄ、３００ｅおよび３００ｆに格納する真理値表である。
【図８】（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｇ、３００ｊ、３００ｋおよび３００ｌに格納する真理値表である。
【図９】（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｈおよび３００ｉに格納する真理値表である。
【図１０】半導体装置１１０ａにおける読出ポートの接続状況を示した図である。
【図１１】半導体装置１１０ａの内部構成図である。
【図１２】半導体装置に、論理回路として動作させるためのビットデータを搭載するときの処理の流れを示すフローチャートである。
【図１３】連続的に動作させることができる構成の半導体装置の概要図である。
【図１４】大規模メモリと半導体装置１１０ｂの構成を示した概要図である。
【図１５】半導体装置１１０ｂにおける動作の流れを示すフローチャートである。
【図１６】変形例の半導体装置の概略図である。
【図１７】フレキシブル基板を用いた半導体装置の構成図である。
【図１８】ワイヤボンディングにより出力の帰還を行う半導体装置などの全体構成図である。
【図１９】テスタなどの構成図である。
【図２０】（ａ）は通常のＣＭＯＳの構成図、（ｂ）はＣＭＯＳを分離した場合の構成図、（ｃ）は通常のＣＭＯＳを使用したナンド回路の構成図、（ｄ）は本願のナンド回路の構成図である。
【図２１】磁界接続を行う場合の半導体装置などの構成図である。
【符号の説明】
【００１１】
１００  情報処理装置
１１０  半導体装置
２００  メモリセル
２０１，２０２  読出ワード線
２１１  書込ワード線
２２１，２２２  読出データ線
２３１，２３２  書込データ線
３００  メモリセルブロック
３０１  セレクト線
３１１，３１２  読出アドレスデコーダ
４０１  書込／読出回路
６００，７００，８００  真理値表
１４００  大規模メモリ
１９００  テスタ
２１０１，２１１１  磁界検知部
２１０２，２１１２  磁界発生部
ＦＬ    フレキシブル基板
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態に係る半導体装置について、図面を参照しながら説明する。
図１は、半導体装置と情報処理装置の構成図である。情報処理装置１００は、コンピュータ装置であり、キーボードなどの入力部１０１、ハードディスクなどの記憶部１０２、ＲＡＭ（Random Access Memory）などのメモリ１０３、ＣＲＴ（Cathode Ray Tube）などの出力部１０４、通信装置である通信部１０５、および、ＣＰＵ（Central Processing Unit）などの処理部１０６を備えている。
なお、情報処理装置１００で作成するビットデータ（図１２のステップＳ１２０４で後記）を、図示しないＲＯＭ（Read Only Memory）で保持するようにしてもよい。【００１３】
半導体装置１１０は、情報処理装置１００の通信部１０５と接続されている。半導体装置１１０は、ハードウェア的には、たとえば、通常のＳＲＡＭ（Static Random Access Memory）と同様の記憶装置であり、詳細は図２以降で説明する。【００１４】
図２は、図１の半導体装置１１０を構成する記憶素子であるメモリセルの構成図である。メモリセル２００は、読出ワード線２０１，２０２、書込ワード線２１１、読出データ線２２１，２２２、書込データ線２３１，２３２、ゲート２４１，２４２，２５１，２５２，２６１，２６２およびフリップフロップ２７１を備えて構成される。【００１５】
なお、ゲート２４１，２４２，２５１，２５２，２６１および２６２は、Ｎ−ＭＯＳ（Negative-Metal Oxide Semiconductor）で構成するものとしているが、その代わりにＰ−ＭＯＳ（Positive-Metal Oxide Semiconductor）を用いて構成してもよく、さらに、Ｎ−ＭＯＳとＰ−ＭＯＳの複合ゲートとしてもよい。その場合、周辺の回路を必要に応じて適宜変更することで対応すればよい。また、ゲート２４１，２５１などは、いわゆるダブルゲートとしているが、単一ゲートで同様の機能を持たせるようにしてもよい。【００１６】
読出ワード線２０１，２０２は、メモリセル２００のデータを外部から読み出すときに電圧が印加される配線である。読出ワード線２０１の電圧が印加されるとゲート２４１とゲート２４２が開き、読出ワード線２０２の電圧が印加されるとゲート２５１とゲート２５２が開く。【００１７】
書込ワード線２１１は、メモリセル２００に外部からデータを書き込むときに電圧が印加される配線である。書込ワード線２１１の電圧が印加されると、ゲート２６１とゲート２６２が開く。【００１８】
読出データ線２２１，２２２は、読出ワード線２０１と読出ワード線２０２に所定の電圧が印加され、ゲート２４１，２４２，２５１および２５２が開いたときに、フリップフロップ２７１に保持されているデータを読み出すための配線である。なお、読出データ線２２１からデータ「０」が読み出されたときは読出データ線２２２からはデータ「１」が読み出され、読出データ線２２１からデータ「１」が読み出されたときは読出データ線２２２からはデータ「０」が読み出される、いわゆる差動信号の動作をするようになっている。【００１９】
書込データ線２３１，２３２は、書込ワード線２１１の電圧が印加され、ゲート２６１とゲート２６２が開いたときに、フリップフロップ２７１にデータを書き込むための配線である。書込データ線２３１からデータ「０」を書き込むときは書込データ線２３２からはデータ「１」を書き込み、書込データ線２３１からデータ「１」を書き込むときは書込データ線２３２からはデータ「０」を書き込むようになっている。
フリップフロップ２７１は、上記の意味でのメモリセル２００に記憶される「０」か「１」のデータを保持する記憶回路である。【００２０】
図３は、図１の半導体装置１１０における内部構造の一部のメモリセルブロックの構成図である（適宜図２参照）。
メモリセルブロック３００は、アレイ状に並べて接続された複数のメモリセル２００と、読出アドレスデコーダ３１１，３１２を含んで構成される。また、前記したように、２重の読出ワード線２０１，２０２の読出アドレスデコーダ３１１，３１２を左右に備えることで、以下に述べる配線機能を持たせることができる。【００２１】
メモリセルブロック３００では、最上段の外側のメモリセル２００、すなわち、メモリセル２００（Cell31,0）とメモリセル２００（Cell31,3）の上側と、最下段の内側のメモリセル２００、すなわち、メモリセル２００（Cell0,1）とメモリセル２００（Cell0,2）の下側において、読出データ線２２１，２２２が、他のメモリセルブロック３００（不図示）に接続されるように構成されている。【００２２】
また、メモリセルブロック３００では、最上段の内側のメモリセル２００、すなわち、メモリセル２００（Cell31,1）とメモリセル２００（Cell31,2）の上側と、最下段の外側のメモリセル２００、すなわち、メモリセル２００（Cell0,0）とメモリセル２００（Cell0,3）の下側において、読出データ線２２１，２２２が切断されている。【００２３】
すなわち、メモリセルブロック３００において、読出データ線は、外側の複数対が上方に、また、内側の複数対が下方に接続されるように構成されている。このようにすることで、メモリセルブロック３００の出力（読出し）の規模を必要最小限に抑え、各種データ処理の負担を軽くすることができ、また、複数の方向に複数の出力を行うことができる。【００２４】
メモリセルブロック３００内において、左側には読出アドレスデコーダ３１１が配置され、アドレス入力線３２２から複数のアドレス差動信号を受ける。また、メモリセルブロック３００内において、右側には読出アドレスデコーダ３１２が配置され、アドレス入力線３２３から複数のアドレス差動信号を受ける。
なお、特許請求の範囲における、入力数および出力数の「３つ」あるいは「４つ」というのは、差動信号の場合の「３対」あるいは「４対」という意味に相当する。【００２５】
メモリセルブロック３００では、これらのアドレス入力線３２２、アドレス入力線３２３およびセレクト線（特定のアドレス選択線）３０１からの入力により、符号３３１から符号３６２までの複数本の読出ワード線（図２の読出ワード線２０２に対応）から任意の１本を選択し、その読出ワード線の電圧を印加することができる。【００２６】
また、セレクト線３０１にはインバータ３０２が備えられている。さらに、読出アドレスデコーダ３１１には複数個の論理回路（アンド（ＡＮＤ）回路やナンド（ＮＡＮＤ）回路など）３７０が備えられている。また、書込ワード線３７１（図２の書込ワード線２１１に対応）は、書込アドレスデコーダ４１１（図５参照）に接続されている。
なお、読出アドレスデコーダ３１２の論理回路などについても、読出アドレスデコーダ３１１の場合と同様なので、説明を省略する（たとえば、論理回路３８０が読出ワード線３８１に接続されている）。【００２７】
図３に示すように、たとえば、セレクト線３０１から「１」が入力されたときは、メモリセルブロック３００におけるメモリセル２００の上半分が動作し、セレクト線３０１から「０」が入力されたときは、メモリセルブロック３００におけるメモリセル２００の下半分が動作するようになっている。【００２８】
したがって、たとえば、メモリセルブロック３００におけるメモリセル２００の上半分を加算器、メモリセル２００の下半分を減算器として動作するように設定しておけば、セレクト線３０１からの信号を切り替えるだけで、瞬時に、加算器と減算器の切り替えを行うことができる。また、同様にして、それ以外に、加算器と通常の記憶装置との切り替えなども行うことができる。【００２９】
以上、メモリセルブロック３００の全体および詳細を説明したが、このように、メモリセル２００を縦３２×横４の構成とすれば、読出データ線２２１，２２２（図２参照）を短くすることでセンスアンプを省略することができ、回路を簡素化することができる。【００３０】
図４は、半導体装置１１０（図１参照）における読出ポート（図３の読出データ線の上下２出力ずつとアドレス入力線３２２，３２３からの２入力ずつ）の接続状況を示した図である。また、図４は、半導体装置１１０を平面視した場合の左上の一部を表わしている。【００３１】
メモリセルブロック３００ｄ〜３００ｌにおいて、入力Ａ０（以下「Ａ０」という：Ａ１〜Ａ３も同様）は表記の簡略のために図３のＡ０と／Ａ０を合わせたものを示すものとし、Ａ１〜Ａ３についても同様である。【００３２】
また、メモリセルブロック３００ｄ〜３００ｌにおいて、出力Ｄ０（以下「Ｄ０」という：Ｄ１〜Ｄ３も同様）は表記の簡略のために図３のメモリセル２００（Cell31,0）の読出データ線２つを合わせたものを示すものとし、Ｄ１〜Ｄ３についても同様である。
メモリセルブロック３００ｄ〜３００ｌのＡ０〜Ａ３およびＤ０〜Ｄ３は、図４に示すように接続される。【００３３】
なお、ドライバ回路４２０は、外部装置から本デバイス（半導体装置１１０）に入力される信号を差動信号に変換するものである。また、アンプ４３０は、入力した差動信号を通常の信号に増幅および変換して外部装置に出力するものである。【００３４】
このような配線にすることで、半導体装置１１０において、データの帰還を容易に行うことができる。具体的には、たとえば、メモリセルブロック３００ｄのＤ３からメモリセルブロック３００ｇのＡ１にデータを送る場合、メモリセルブロック３００ｇにおいてＡ１から入ったデータをＤ１から出力するようにメモリセルブロック３００ｇに真理値表を書き込んでおけば、そのデータをメモリセルブロック３００ｄのＡ３に帰還させることができる。【００３５】
また、メモリセルブロック３００ｄ〜３００ｌに書き込む真理値表を変更するだけで、配線を変更することなく、半導体装置１１０を様々な論理回路として動作させることができる。
なお、このような配線の折れ曲がりの回数や具合は、特にこの図４に限定されることなく、適宜変更が可能である。【００３６】
図５は、半導体装置１１０（図１参照）の内部構造図である。それぞれのメモリセルブロック３００はアレイ状に並べられ、左側に書込アドレスデコーダ４１１、下側に書込／読出回路４０１が配置され、そららが図のように接続される。つまり、図５は、図４と同様の半導体装置１１０において、読出ポートの接続状況以外の様子を示した図である。【００３７】
書込アドレスデコーダ４１１は、メモリセルブロック３００にデータを書き込む際に、メモリセルブロック３００のｘアドレス（図５の半導体装置１１０の縦方向のアドレス）を特定するための装置である。
書込アドレスデコーダ４１１には、複数のメモリセルブロック３００のうちのいずれのメモリセルブロック３００かを特定するためのｘアドレスが上位アドレス（この場合はＡ４ｗ以降のＡ５ｗ，Ａ６ｗ，・・・）に入力され、その特定されたメモリセルブロック３００の内部（メモリセル２００）を特定するためのｘアドレスが下位アドレス（この場合はＡ０ｗ〜Ａ３ｗ）から入力される。【００３８】
また、書込／読出回路４０１は、データの読み書きを行うメモリセルブロック３００のｙアドレスを特定し、さらに、特定されたメモリセルブロック３００に対してデータの読み書きを行う装置である。
具体的には、書込／読出回路４０１には、複数のメモリセルブロック３００のうちのいずれかのメモリセルブロック３００かを特定するためのｙアドレス（図５の半導体装置１１０の横方向のアドレス）が（この場合はＡｙｗ２に）入力され、その特定されたメモリセルブロック３００の内部（メモリセル２００）を特定するためのｙアドレスが（この場合はＡｙｗ０，Ａｙｗ１に）入力される。また、書込／読出回路４０１には、入力４０２から複数のビット数（この場合は４ビット）のデータが入力される。【００３９】
このようにして、特定のメモリセルブロック３００における特定のメモリセル２００を適宜選択し、真理値表データの書き換えなどを行うことができる。
すなわち、半導体装置１１０は、複数のメモリセルブロック３００のうち、一部のメモリセルブロック３００のメモリセル２００が記憶する真理値表データを書き換えられた場合、その書き換えられた真理値表データにしたがって動作を変更できる。【００４０】
続いて、図６〜図９を参照しながら、半導体装置１１０（図４参照）を３ビット加算器として使用する場合の例について説明する。
図６は、３ビット加算器の構成例である。この図６におけるメモリセルブロック同士の接続は、図４の場合と同じである。【００４１】
ここでは、３ビットの２数Ｅ，Ｆを加算し、その結果をＹとする場合について説明する。なお、Ｅの最下位ビットをＥ０、次のビットをＥ１、最上位ビットをＥ２とする。また、Ｆの最下位ビットをＦ０、次のビットをＦ１、最上位ビットをＦ２とする。さらに、Ｙの最下位ビットをＹ０、次のビットをＹ１、最上位ビットをＹ２とする。また、最下位ビットの加算による桁上がりをＣ０、次のビットの加算による桁上がりをＣ１、最上位のビットの加算による桁上がりをＣ２とする。また、各々の信号は差動であるが、記載上簡略して記述した。【００４２】
メモリセルブロック３００ｄでは、Ａ０からＥ０が、Ａ１からＦ０が入力され、加算を行い、Ｄ３からＹ０を出力し、Ｄ２からＣ０を出力する。
メモリセルブロック３００ｅでは、Ａ０からＥ１が、Ａ１からＦ１が入力され、また、Ａ３からＣ０が入力され、加算を行い、Ｄ３からＹ１を出力し、Ｄ２からＣ１を出力する。
メモリセルブロック３００ｆでは、Ａ０からＥ２が、Ａ１からＦ２が入力され、また、Ａ３からＣ１が入力され、加算を行い、Ｄ３からＹ２を出力し、Ｄ２からＣ２を出力する。【００４３】
メモリセルブロック３００ｄのＤ３から出力されたＹ０は、図のような経路を経て、メモリセルブロック３００ｊのＤ３から出力される。
メモリセルブロック３００ｅのＤ３から出力されたＹ１は、図のような経路を経て、メモリセルブロック３００ｋのＤ３から出力される。
メモリセルブロック３００ｆのＤ３から出力されたＹ２は、図のような経路を経て、メモリセルブロック３００ｌのＤ３から出力される。
このようにして、加算結果であるＹ０、Ｙ１およびＹ２を得ることができる。【００４４】
図７において、（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｄ、３００ｅおよび３００ｆに格納する真理値表である（適宜図６参照）。
図７（ａ）に示すように、メモリセルブロック３００において、Ａ０〜Ａ３に入力があると、その入力に応じてＤ０〜Ｄ３から真理値表に定義されたデータが出力される。【００４５】
図７（ｂ）に示すように、Ａ０，Ａ１，Ａ３にＥ（Ｅ０〜Ｅ２），Ｆ（Ｆ０〜Ｆ２），Ｃin（Ｃ０〜Ｃ２）の入力があると、それら３つの加算結果として、そのビットの値をＤ３にＹ（Ｙ０〜Ｙ２）として出力し、桁上がりをＤ２にＣout（Ｃ０〜Ｃ２）として出力する。【００４６】
なお、Ｄ０とＤ１は、ここでは使用しないため、すべての場合で「０」を出力するようにしている。
また、上から１段目〜４段目と５段目〜８段目、および、９段目〜１２段目と１３段目〜１６段目は、Ａ２以外の真理値が同じになっているが、これは、Ａ２に「０」と「１」のいずれのデータが入力されても正確な出力結果が得られるようにするためである。【００４７】
図８において、（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｇ、３００ｊ、３００ｋおよび３００ｌに格納する真理値表である（適宜図６参照）。
図８（ａ）に示すように、メモリセルブロック３００において、Ａ０〜Ａ３に入力があると、その入力に応じてＤ０〜Ｄ３から真理値表に定義されたデータが出力される。【００４８】
図８（ｂ）に示すように、Ａ１にＹ（Ｙ０〜Ｙ２）の入力があると、その値をＤ３にそのまま出力する。
なお、Ｄ０〜Ｄ２は、ここでは使用しないため、すべての場合で「０」を出力するようにしている。【００４９】
また、実際にはＡ１からＤ３へ「０」→「０」、「１」→「１」という２種類（２段分）の真理値表があればよいのであるが、Ａ０、Ａ２、Ａ３に「０」と「１」のいずれのデータが入力されても正確な出力結果が得られるように、１６段の真理値表となっている。【００５０】
図９において、（ａ）はメモリセルブロック３００の簡略図、（ｂ）はメモリセルブロック３００ｈおよび３００ｉに格納する真理値表である（適宜図６参照）。
図９（ａ）に示すように、メモリセルブロック３００において、Ａ０〜Ａ３に入力があると、その入力に応じてＤ０〜Ｄ３から真理値表に定義されたデータが出力される。【００５１】
図９（ｂ）に示すように、Ａ０にＣ（Ｃ０〜Ｃ２）の入力があると、その値をＤ１にそのまま出力する。また、Ａ１にＹ（Ｙ０〜Ｙ２）の入力があると、その値をＤ３にそのまま出力する。
なお、Ｄ０とＤ２は、ここでは使用しないため、すべての場合で「０」を出力するようにしている。
また、図８（ｂ）の場合と同様、Ａ２とＡ３に「０」と「１」のいずれのデータが入力されても正確な出力結果が得られるようになっている。【００５２】
図１０は、図４の半導体装置１１０の変形例である半導体装置１１０ａにおける読出ポートの接続状況を示した図である。半導体装置１１０ａにおいて、一番左の列のメモリセルブロック３００ｍ〜３００ｏと左から３番目の列のメモリセルブロック３００ｓ〜３００ｕに比べて、その間の列のメモリセルブロック３００ｐ〜３００ｒは、縦方向にメモリセルブロック半個分ずらして配置される。また、それぞれのメモリセルブロックのＡ０〜Ａ３およびＤ０〜Ｄ３は、図のように接続される。【００５３】
このように、メモリセルブロックをずらして配置することで、図４の半導体装置１１０の場合に比べて、それぞれのメモリセルブロックのＤ０〜Ｄ３から他のメモリセルブロックのＡ０〜Ａ３に入力する配線の長さを短くすることができる。
なお、このような配線の折れ曲がりの回数や具合は、特にこの図１０に限定されることなく、適宜変更が可能である。
また、半導体装置１１０ａの内部構成図（図５に対応）は、図１１に示す通りである。【００５４】
以上説明したように、本実施形態の半導体装置によれば、論理回路として動作することができるメモリにおいて、１つのメモリセルブロックから４つのメモリセルブロックに出力を与えることで、データの帰還を容易に行うことができる。【００５５】
また、従来のＦＰＧＡの製造では、たとえば、Ｃ言語プログラムを作成して、それからＨＤＬ（Hardware Description Language）を作成する。そのＨＤＬから論理合成を行い、論理回路を作成する。その論理回路から、該当するＦＰＧＡに論理の配置と配置配線を行う。つまり、複雑で高度な作業工程が必要であった。
一方、本実施形態の半導体装置は、メモリであり記憶装置であるので、Ｃ言語プログラムをコンパイルしてそのデータを真理値として搭載できるため、作業工程が単純で容易となる。また、本実施形態の半導体装置は、記憶装置であるため、異なった論理回路を実現する場合でも、配線はそのままで、メモリセル２００に書き込む真理値表データを書き換えるだけで済む。【００５６】
これを、図１２を参照しながら、より具体的に説明する（適宜図１参照）。図１２は、半導体装置に、論理回路として動作させるためのビットデータを搭載するときの処理の流れを示すフローチャートである。【００５７】
まず、情報処理装置１００は、実現したい機能を記述したＣ言語プログラムを入力部１０１から入力し（ステップＳ１２０１）、記憶部１０２に記憶する。
また、記憶部１０２には、あらかじめ、各種機能（加算、減算など）のプログラムが記憶されているものとする。【００５８】
情報処理装置１００の操作者は、記憶部１０２に記憶されているプログラムのうち必要なものを引用するため、入力部１０１を用いて宣言文（Include文）を追加する（ステップＳ１２０２）。
処理部１０６は、Include文が追加されたＣ言語プログラムに基づいて真理値表（図７の真理値表６００など）を作成し（ステップＳ１２０３）、その真理値表に基づいてビットデータを作成し（ステップＳ１２０４）、さらに、通信部１０５を介して半導体装置１１０にそのビットデータを搭載する（ステップＳ１２０５）。
このように、本実施形態の半導体装置１１０によれば、半導体装置１１０を論理回路として動作させるための作業が簡単に済む。【００５９】
さらに、本実施形態の半導体装置によれば、実際の論理回路を使用していないので、メモリの一部に故障が発生しても、その箇所の使用を避けるなどしてその対応（救済）を容易に行うことができる。【００６０】
また、１つのメモリセルブロックに対するワード線を本実施形態のように３２本とすれば、データ（信号）の減衰を抑え、センスアンプの使用を不要とすることができる。しかし、半導体装置の機能を重視するのであれば、読み出しセンスアンプか読み出しデータ線に中間バッファを使用し、ワード線の本数を３３本以上としてもよい。【００６１】
さらに、本実施形態の半導体装置によれば、複数のメモリを使用し、そのうちのいくつかのメモリにテストプログラムを入れることで、他の１つのメモリをテストすることができる。そして、テスト終了後は、テストプログラムを入れたメモリからテストプログラムを消去することで、それらのメモリを通常のメモリとして使用することができる。【００６２】
また、メモリを内蔵するシステムＬＳＩで、そのメモリを本実施形態の半導体装置の構造にして自己テストし、かつ、その部分にＣ言語で記述されるテストプログラムを記述してテスト論理回路を構成することで、システムＬＳＩにおける他の論理回路をテストすることができる。【００６３】
さらに、メモリセルブロック同士の接続は、１つのメモリセルブロックが他の４つのメモリセルブロックと接続される場合に限らず、データの帰還を行えるような、他の３つ以上のメモリセルブロックと接続される他の構成であってもよい。
さらに、読出データ線を差動にしているが、半導体レイアウトや読出アドレスデコーダの論理回路を考慮し、片側の読出データ線だけで配線するようにしてもよい。【００６４】
次に、図１３〜図１５を参照しながら、連続的に動作させることができる構成の半導体装置について説明する。図１３は、そのような構成の半導体装置の概要図である。
図１３に示した半導体装置１１０ｂは、図４〜図６の半導体装置１１０と同様、メモリセルブロック３００をアレイ状に配置した構成をしており、図４等よりも簡略化して記載したものである。図４等の半導体装置１１０との違いは、最右列のメモリセルブロック３００からの出力Ｇ１〜Ｇ８を一時的に保持するためのラッチ回路Ｌと、それらのラッチ回路Ｌで保持した出力を最左列のメモリセルブロック３００に帰還させるための配線１３０１〜１３０８を備えている点である。【００６５】
図１４は、大規模メモリと図１３に示した半導体装置１１０ｂの構成を示した概要図である。
大規模メモリ１４００は、Ｃ言語プログラムなどを記録した記録装置であり、たとえば、ＲＯＭによって実現することができる。
半導体装置１１０ｂは、大規模メモリ１４００からのＣ言語プログラムの真理値表データ（図７の真理値表６００等参照）の書き込みと、その真理値表データによる演算とその出力（演算結果）の帰還とを、繰り返し行うが、その詳細については図１５を参照しながら以下で説明する（適宜図１３，１４参照）。【００６６】
図１５は、半導体装置１１０ｂにおける動作の流れを示すフローチャートである。
まず、大規模メモリ１４００の真理値表データが半導体装置１１０ｂに書き込まれる（ステップＳ１５０１）。ここで、大規模メモリ１４００の真理値表データは、図３で説明したように、半導体装置１１０ｂのそれぞれのメモリセルブロック３００における上半分または下半分に書き込まれる。【００６７】
そして、次に行う演算（各メモリセルブロック３００による真理値表データに基づいた演算）が最後でない場合（ステップＳ１５０３でＮｏ）、つまり、半導体装置１１０ｂが、大規模メモリ１４００におけるＣ言語プログラムによって次の演算以降にもまだ演算する必要があるとき、ステップＳ１５０５以降の処理に進む。【００６８】
ステップＳ１５０５において、半導体装置１１０ｂの各メモリセルブロック３００におけるこれから演算を行う半分とは逆（残り）の半分（上半分または下半分）に、大規模メモリ１４００から真理値表データが書き込まれる。
また、ステップＳ１５０５の処理と並行して、ステップＳ１５０７〜Ｓ１５１１の処理が行われる。【００６９】
つまり、半導体装置１１０ｂでは、図１３の最左列の各メモリセルブロック３００に値（１回目の演算では大規模メモリ１４００から与えられた値。２回目以降の演算ではラッチ回路Ｌから帰還された値）が入力され（ステップＳ１５０７）、ステップＳ１５０１で真理値表データを書き込まれた各メモリセルブロック３００の上半分または下半分を使って演算を行い（ステップＳ１５０９）、図１３の最右列の各メモリセルブロック３００から演算した値を出力し（ステップＳ１５１１）、ステップＳ１５０３に戻る。【００７０】
ステップＳ１５０３で、次に行う演算が最後である場合（Ｙｅｓ）、つまり、半導体装置１１０ｂが、大規模メモリ１４００におけるＣ言語プログラムによって次の演算以降に演算する必要がないとき、ステップＳ１５１３〜Ｓ１５１７において、ステップＳ１５０７〜Ｓ１５１１と同様の処理を行い、その出力を演算結果として所定の装置（不図示）に送り、処理を終了する。【００７１】
このように、図１３の半導体装置１１０ｂによれば、各メモリセルブロック３００における上半分または下半分（その切り替えは図３のセレクト線３０１による）のメモリセル２００での演算、それと並行して行う演算を行っていない半分（各メモリセルブロック３００における上半分または下半分）の真理値表データの書き換え、および、出力（演算結果）の帰還を行うことにより、連続的に演算を行うことができ、大規模メモリ１４００に記録されているＣ言語プログラム全体を連続的に動作することができる。【００７２】
次に、図１６を参照しながら、出力（演算結果）の帰還を行うことにより連続的に動作することができる半導体装置の変形例について説明する。図１６は、その変形例の半導体装置の概略図である。
図１６の半導体装置１１０ｃは、図１３の半導体装置１１０ｂとほぼ同様の構成であるが、図１３の半導体装置１１０ｂが最右列のメモリセルブロック３００からの出力を最左列のメモリセルブロック３００に入力して帰還をかけていたのに比べ、最右列のメモリセルブロック３００からの出力を最上行のメモリセルブロック３００に入力して帰還をかけ、最下行のメモリセルブロック３００からの出力を最左列のメモリセルブロック３００に入力して帰還をかけている点で異なっている。これにより、図１３の場合と比較して、論理回路段数の自由度を上げることができる。【００７３】
このようにして、演算の種類（加算、乗算など）などに応じ、出力に関して好適な帰還経路を選択し、採用することができる。
また、特に図示していないが、図１３の半導体装置１１０ｂや図１６と半導体装置１１０ｃと同様に、半導体装置１１０において、最下行のメモリセルブロック３００からの出力を最上行のメモリセルブロック３００に入力して帰還をかけるようにしてもよい。【００７４】
次に、図１７を参照しながら、フレキシブル基板を用いた半導体装置について説明する。図１７は、フレキシブル基板を用いた半導体装置の構成図である。
半導体装置１１０ｄの基板を構成するフレキシブル基板ＦＬは、ペンタセン(ベンゼン５個がオルト縮合した有機分子)などを材料とする可撓性のある有機半導体を材料とするものである。
半導体装置１１０ｄは、図１３の半導体装置１１０ｂにおける最右列の各メモリセルブロック３００と最左列の各メモリセルブロック３００との距離を短縮するべく円柱形にしたものであり、接続部１７００をまたいで、半導体装置１１０ｂの場合と同様に、出力の帰還を行うことができる。【００７５】
続いて、図１８を参照しながら、ワイヤボンディングにより出力の帰還を行う半導体装置について説明する。図１８は、その場合の半導体装置などの全体構成図である。
図１８に示すように、基板Ｂの両側に、半導体装置１１０ｅ，１１０ｆ、大規模メモリ１４００ｅ，１４００ｆが取り付けられている。また、信号伝送用のワイヤＷ１〜Ｗ４が、図のように接続されている。【００７６】
このような構成により、大規模メモリ１４００ｅから半導体装置１１０ｅへワイヤＷ４によって真理値表データを書き込んだり、大規模メモリ１４００ｆから半導体装置１１０ｆへワイヤＷ３によって真理値表データを書き込んだり、さらに、半導体装置１１０ｅと半導体装置１１０ｆの間でワイヤＷ１とワイヤＷ２によって出力の帰還を行ったりすることができる。【００７７】
次に、図１９を参照しながら、半導体装置をテスタに使用した場合について説明する。図１９は、テスタなどの構成図である。なお、テスタ１９００は、テスト対象ＬＳＩ１９１０（他の半導体装置）の動作確認を行う装置である。
テスタ１９００は、大規模メモリ１４００（記憶装置）、半導体装置１１０、ドライバ１９０１、コンパレータ１９０２および処理部１９０３を備えて構成される。【００７８】
ドライバ１９０１は、半導体装置１１０から予定入力値を受信するとテスト対象ＬＳＩ１９１０に対してそれに基づいた信号を送信する駆動回路である。
コンパレータ１９０２は、半導体装置１１０からの予定入力値と、テスト対象ＬＳＩ１９１０からの出力値とを比較するものである。
処理部１９０３は、コンパレータ１９０２からの出力を受け、処理を行う装置であり、たとえば、ＣＰＵ（Central Processing Unit）によって実現される。【００７９】
また、特に図示しないが、テスタ１９００は、直流電源、タイミングジェネレータなどを、必要に応じて備えるものとする。
このようにして、テスタ１９００に半導体装置１１０を適用することができる。【００８０】
続いて、図２０を参照しながら、図３の論理回路３７０の具体的構成について説明する。図２０において、（ａ）は通常のＣＭＯＳの構成図、（ｂ）はＣＭＯＳを分離した場合の構成図、（ｃ）は通常のＣＭＯＳを使用したナンド回路の構成図、（ｄ）は本願のナンド回路の構成図である。【００８１】
図２０（ａ）に示すように、通常のＣＭＯＳ２０００は、Ｐ−ＭＯＳ２００１とＮ−ＭＯＳ２００２を１つずつ備えて構成されている。
一方、図２０（ｂ）の分離ＣＭＯＳ２０１０は、通常のＣＭＯＳ２０００と比べ、Ｐ−ＭＯＳ２０１１とＮ−ＭＯＳ２０１２の右側（出力部分）が分離されている点で相違している。【００８２】
また、図３の論理回路３７０（ナンド回路など）は、たとえば、通常のＣＭＯＳ２０００のＮ−ＭＯＳ部分を用いて、図２０（ｃ）のように構成することができる。Ａ，ＢおよびＣは、入力接点であり、また、Ｐ−ＭＯＳ２０２１，２０３１および２０４１とＮ−ＭＯＳ２０２２，２０３２および２０４２が、図のように接続される。【００８３】
一方、図３の論理回路３７０（ナンド回路）は、本願では、たとえば、分離ＣＭＯＳ２０１０を用いて、図２０（ｄ）のように構成することができる。Ａ，ＢおよびＣは、入力接点であり、また、Ｎ−ＭＯＳ２０５２，２０６２および２０７２が、図のように接続される。【００８４】
このようにして、図３の論理回路３７０（ナンド回路）を図２０（ｄ）のように構成することで、トランジスタ（Ｐ−ＭＯＳ，Ｎ−ＭＯＳ）の個数を、図２０（ｃ）の場合に比べて、半分にすることができ、それにより、１つのメモリセルブロック３００あたりの面積や体積などを小さくすることができる。【００８５】
次に、図２１を参照しながら、磁界接続によって半導体装置の出力の帰還を行う場合について説明する。図２１は、磁界接続を行う場合の半導体装置などの構成図である。
図２１に示すように、ケース２１００の内部に、半導体装置１１０ｈ，１１０ｉ，・・・がそれぞれ基板Ｂを挟んで配置されている。【００８６】
また、半導体装置１１０ｈ，１１０ｉの左右には、コイルやトランジスタなどで構成された磁界検知部２１０１，２１１１と磁界発生部２１０２，２１１２が設けられている。そして、磁界発生部２１０２で発生した磁界を磁界検知部２１１１が受け、磁界発生部２１１２で発生した磁界を磁界検知部２１０１が受けることで、半導体装置１１０ｈ，１１０ｉの間で出力の帰還を行うことができる。【００８７】
このように、磁界発生部と磁界検知部とによる磁界接続を用いることで、配線による手間やスペースの問題に煩わされることなく、半導体装置１１０における出力の帰還を行うことができる。【００８８】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。
たとえば、本発明の半導体装置は、ＳＲＡＭに代えて、ＤＲＡＭ（Dynamic Random Access Memory）やフラッシュメモリを用いて実現してもよい。
また、メモリでの性能向上のためのプリチャージ機能等の機能搭載を制限するものではない。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【図１】
2007060763.tif 000003
【図２】
2007060763.tif 000004
【図３】
2007060763.tif 000005
【図４】
2007060763.tif 000006
【図５】
2007060763.tif 000007
【図６】
2007060763.tif 000008
【図７】
2007060763.tif 000009
【図８】
2007060763.tif 000010
【図９】
2007060763.tif 000011
【図１０】
2007060763.tif 000012
【図１１】
2007060763.tif 000013
【図１２】
2007060763.tif 000014
【図１３】
2007060763.tif 000015
【図１４】
2007060763.tif 000016
【図１５】
2007060763.tif 000017
【図１６】
2007060763.tif 000018
【図１７】
2007060763.tif 000019
【図１８】
2007060763.tif 000020
【図１９】
2007060763.tif 000021
【図２０】
2007060763.tif 000022
【図２１】
2007060763.tif 000023
【国際調査報告】
2007060763.tif 000024
2007060763.tif 000025
2007060763.tif 000026
2007060763.tif 000027