(57)【要約】【課題】従来のプログラマブルな半導体装置であるＦＰＧＡやＭＰＬＤはコストパフォーマンスが悪く、かつ長い信号線に対する配慮が不充分であった。【解決手段】メモリと、アドレス−データ対を有する複数のＭＬＵＴから構成されるＭＬＵＴブロックにフリップフロップを内蔵した。また隣接するＭＬＵＴ間の近距離配線には交互配置配線を導入し、隣接していないＭＬＵＴ間の配線には専用の離間配線、更にはトーラス配線網を設けた。【選択図】図１
2010239325.tif 000002
【特許請求の範囲】
【請求項１】
メモリと、アドレス線とデータ線を対にして配置配線した入出力信号線と、を有するＭＬＵＴがＮ（Ｎは１以上の整数）個からなるＭＬＵＴブロックを基本単位とし、該基本単位のＭＬＵＴブロックが複数個、配列されており、かつ前記ＭＬＵＴブロックにフリップフロップが配置されていることを特徴とする半導体装置。
【請求項２】
請求項１において、
前記フリップフロップがＤ型フリップフロップであることを特徴とする半導体装置。
【請求項３】
請求項１または請求項２において、
前記フリップフロップが複数個からなることを特徴とする半導体装置。
【請求項４】
請求項１において、
前記メモリがＳＲＡＭであることを特徴とする半導体装置。
【請求項５】
請求項１において、
前記メモリが不揮発性メモリであることを特徴とする半導体装置。
【請求項６】
請求項１または請求項２において、
前記ＭＬＵＴ間のアドレス線とデータ線を対にした入出力信号配線の引き出し方、及び配置が前記ＭＬＵＴ間で対称形に構成された交互配置配線であることを特徴とする半導体装置。
【請求項７】
請求項１、２、３のいずれか、もしくは請求項６のいずれかにおいて、
前記ＭＬＵＴ間、もしくはＭＬＵＴブロック間の信号接続に、同一平面上で互いに隣接していないＭＬＵＴ間、もしくはＭＬＵＴブロック間を接続するアドレス線とデータ線の対による離間配線を有していることを特徴とする半導体装置。  
【請求項８】
請求項７において、
前記離間配線にトーラス構造を含むことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリを含み、かつアドレス線とデータ線対を有する論理機能セルを備えたことからなるプログラマブルな半導体装置の構成に関わるものである。
【背景技術】
【０００２】
従来、集積回路であるＬＳＩ（Large Scale Integration）を搭載した半導体装置は、機能設計、論理設計等を行い、それらに基づき、同一機能を持つ製品を多量に製造したものが、一般的であった。これらは大量生産に向いている為、効率よく低コストで製品が得られる一方、機能が若干でも異なると使用できなかった。したがって、多品種少量生産の製品や、仕様もしくは機能変更を度々行なう必要のある製品には適していなかった。
【０００３】
そこで、単一の半導体装置でありながら、顧客側で機能を設定できるもの、あるいは使用の途中で機能変更をできるプログラマブルな半導体装置が登場してきた。
プログラマブルな半導体装置として代表的な一例は可変機能回路セル群と可変信号配線群とスイッチ素子群、及びメモリを持ち、該メモリの情報に基づきトランジスタによる前記のスイッチをオン／オフ（ＯＮ／ＯＦＦ）させて前記可変機能回路セル群と可変信号配線群を切り替え、所望の機能の回路をプログラマブルに実現するＦＰＧＡ（Field Programmable Gate Array）がある。
【０００４】
しかしながら、従来のＦＰＧＡは各回路や各信号配線の変更をトランジスタによるスイッチを用いて行うが、回路や配線の占有領域がそれぞれ固定されているため、自由度が少なく、所望の機能回路によっては非常に無駄な構成となることがある。したがって、レイアウト上の面積効率が一般的に悪く、相対的に大きなチップ面積のＬＳＩを必要とし、コストパフォーマンスが低くかった。また、製造工程も配線層の多さを含め長く複雑で製造コストが高いという問題があった。また、従来のＦＰＧＡでは各回路を接続する配線が遠くの位置に及ぶ場合には寄生静電容量と寄生抵抗による伝送遅延が問題となり、誤動作を引き起こす場合があった。もしくは、この伝送遅延に関わる問題を回避するために信号線の途中にバッファを何段も設ける必要が生じ、素子の使用効率やチップ面積の増大などが長距離の信号配線の増加とともに大きな問題となっていた。
なお、これらＦＰＧＡに関する特許文献としては特許文献１および特許文献２がある。
【０００５】
以上の背景から、次に記す初期のＭＰＬＤが登場してきた。ＭＰＬＤは以下のように構成されている。
すなわち、アドレス線の本数と、データ線の本数が同数であるメモリを搭載し、メモリに所望の機能を形成するためのデータを書き込み、論理動作時には入力信号に相当するアドレスデータに基づき、論理回路動作に相当する出力データを前記メモリから読み出す機能からなるＭＬＵＴを単位セルとし、複数の前記ＭＬＵＴの単位セルを並べて配置し、かつ相互に配線することによって様々な回路と等価の機能を果たす素子としたものが、ＭＰＬＤである。
なお、ここでＭＰＬＤとはMemory-based Programmable Logic Deviceの略であり、ＭＬＵＴはMPLD Look Up Tableの略である。また、これらの先行技術文献としては特許文献３および非特許文献１がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−３６７３８号広報
【特許文献２】特開２００２−１６４７８０号広報
【特許文献３】ＷＯ２００７／０６０７３８号明細書
【非特許文献】
【０００７】
【非特許文献１】ＩＴＣ−ＣＳＣＣ ２００８（The 23rd International Technical Conference on Circuits/Systems, Computers and Communications）P557-560  “Low Cost PLD with High Speed Partial Reconfiguration”Naoki Hirakawa, Masayuki Sato,  Kazuya Tanigawa, and Tetsuo Hironaka.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来のＭＰＬＤではフリップフロップを使用する場合、ＭＰＬＤの外に配置していたので、フリップフロップとＭＬＵＴ間の配線接続が非効率であった。また、接続の配線が長くなり、遅延時間が大きくなり、高速化が出来ない、等の課題があった。  また、ＭＰＬＤにおいて、フリップフロップやラッチ回路を必要とする場合には、ＭＬＵＴを回路要素資源として、フリップフロップやラッチ回路に転用して構成した後、該回路を用いてフリップフロップを必要とする論理回路を構成する手法をとっていたものもあるが、これらは面積効率、素子効率が悪いという課題があった。
また、基準信号に基づいてタイミングをとる同期回路を構成する場合、ＭＬＵＴ間の配線接続が非効率で、配線の長さが長くなり、その結果、遅延時間が大きくなり、高速化が困難、等の課題があった。 
以上から、従来のＭＰＬＤでは順序回路をはじめとする前の状態が論理機能に影響する回路を構成する場合や、また、基準信号に基づいてタイミングをとる同期回路を構成する場合には前記した課題が噴出することが多かった。
【０００９】
そこで本発明はこのような問題点を解決するもので、その目的とするところは高機能と安定した特性を備え、かつ設計上の自由度が高く、チップ面積効率のよい、したがってコストパフォーマンスの高いプログラマブルな半導体装置、殊に前記した課題についてより改良されたＭＰＬＤからなる半導体装置を提供することである。
【課題を解決するための手段】
【００１０】
前記の課題を解決して、本発明の目的を達成するために、各発明を以下のように構成した。
【００１１】
すなわち第１の発明は、メモリと、アドレス線とデータ線対と、を有するＭＬＵＴがＮ（Ｎは１以上の整数）個からなるＭＬＵＴブロックを基本単位とし、この基本単位であるＭＬＵＴブロックを複数個、配列するとともに、ＭＬＵＴブロックにフリップフロップを配置したものである。
【００１２】
第２の発明は第１の発明において、前記フリップフロップにＤ型フリップフロップ（Ｄelay型フリップフロップ）を用いたものである。
【００１３】
第３の発明は第１の発明または第２の発明において、前記フリップフロップをＭＬＵＴブロックに２個以上配置したものである。
【００１４】
第４の発明は第１の発明において、前記メモリをＳＲＡＭ（Static Random Access Memory）で構成したものである。
【００１５】
第５の発明は第１の発明において、前記メモリを不揮発性メモリで構成したものである。
【００１６】
第６の発明は第１の発明または第２の発明において、前記ＭＬＵＴ間のアドレス線とデータ線の対による近距離配線を交互配置配線としたものである。
【００１７】
第７の発明は第１の発明から第３の発明のいずれか、もしくは第６の発明において、前記ＭＬＵＴ間、もしくはＭＬＵＴブロック間の信号接続に専用の離間配線を有したものである。
【００１８】
第８の発明は第７の発明において、前記離間配線にトーラス構造を含ませたものである。
【発明の効果】
【００１９】
したがって、前記の構成によれば、従来のＭＰＬＤに比較して、本発明ではフリップフロップをＭＬＵＴブロック内に専用に設けてあるため、組み合わせ回路のみならず順序回路も構成できることや、更には制御の際における同期がとりやすいため、より高速で高機能の回路を容易に構成しやすいという効果がある。
また、面積効率、素子効率が改善されているので、より低コストで提供できるという効果がある。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施例に関わるＭＬＵＴブロックの各ＭＬＵＴの配置と、各ＭＬＵＴ間の近距離配線の関係を示す回路ブロック図である。
【図２】本発明の実施例に関わるＭＬＵＴブロックにおいて、交互配置配線を行うＭＬＵＴの２種類の近距離配線パターンを示す配線パターン図である。
【図３】本発明の他の実施例におけるアドレス線とデータ線の対の信号線の端子配置を示した回路ブロック図である。
【図４】本発明の実施例に関わるＭＬＵＴの回路構成を示す回路ブロック図である。
【図５】本発明の実施例に関わるＭＬＵＴの複数本のアドレス線とデータ線の対と、メモリ動作時の入力アドレス線と入出力データ線の構成を示した回路ブロック図である。
【図６】本発明の実施例に関わるＭＬＵＴブロックを平面上において規則的に配列し、ＭＬＵＴとフリップフロップと近距離配線の関係を示した回路ブロック図である。
【図７】従来回路の全加算回路の動作機能を表す機能図と、回路構成例を示す回路図である。
【図８】本発明の実施例に関わるＭＬＵＴを用いた４ビット加算回路の構成を示す回路ブロック図である。
【図９】本発明および従来例に用いられるＤ型フリップフロップの第１例を示す回路図である。
【図１０】本発明および従来例に用いられるＤ型フリップフロップの第２例を示す回路図である。
【図１１】本発明および従来例に用いられるＤ型フリップフロップの第３例を示す回路図である。
【図１２】本発明および従来例に用いられるＤ型フリップフロップの第４例を示す回路図である。
【図１３】本発明および従来例に用いられるＤ型フリップフロップの第５例を示す回路図である。
【図１４】本発明の実施例に関わるＭＬＵＴとＤ型フリップフロップの接続関係を表す回路ブロック図である。
【図１５】本発明の実施例に関わるＭＬＵＴとＤ型フリップフロップの配置関係を表すレイアウトブロック図である。
【図１６】本発明の実施例に関わるＭＬＵＴブロックの各ＭＬＵＴからの離間配線の結線を示す配線図である。
【図１７】本発明の実施例に関わるＭＬＵＴブロックの各ＭＬＵＴからの離間配線の結線の２種類のパターンを示す配線図である。
【図１８】本発明の実施例に関わるＭＬＵＴブロックとＭＬＵＴの離間配線の結線を示す配線図である。
【図１９】本発明の実施例に関わるＭＬＵＴブロックとＭＬＵＴを効率的に設計上の配置を行う際のＭＬＵＴブロックの構成を示すブロック配置図である。
【図２０】本発明の実施例に関わるＭＬＵＴブロックにおけるトーラス配線（網）による離間配線を示した配線図である。
【図２１】本発明および従来例に用いられるトーラス配線、及びトーラス配線網を示した配線図である。
【図２２】従来例に用いられる信号配線の第一例を示した配線図である。
【図２３】従来例に用いられる信号配線の第二例を示した配線図である。
【図２４】本発明および従来例に用いられるトーラス配線を示した配線図である。
【発明を実施するための形態】
【００２１】
以下、本発明の実施の形態について、図面を参照して説明する。
【００２２】
（本発明の半導体装置を構成するＭＬＵＴブロックの実施形態）
図１は本発明の半導体装置の主要要素であるＭＬＵＴが９個からなるＭＬＵＴブロックの構成の第１例を示す回路ブロック図である。
【００２３】
図１において、Ｍ０〜Ｍ８はＭＬＵＴである。ＭＬＵＴＭ０〜Ｍ８によってＭＬＵＴブロックを構成している。ＭＬＵＴＭ０〜Ｍ８は同一平面上で互いに隣接したＭＬＵＴ間でアドレス線とデータ線の対（以下、「アドレス−データ対」と略すこともある）からなる信号のやりとりをして回路を構成していく。この同一平面上で互いに隣接したＭＬＵＴ間で配線することを近距離配線と呼ぶことにする。また、この同一平面上で互いに隣接していないＭＬＵＴ間で配線することを離間配線と呼ぶことにする。
【００２４】
図１では本発明の特徴であるアドレス線とデータ線の対による近距離配線についてのみ番号を付けて図示しているが、混乱を避ける為、他の配線は不図示としている。図１で不図示としている信号配線は図４、及び図５を用いて後述する。また、ＭＬＵＴＭ４にはＤ型（Delay）のフリップフロップが付随して配置されている。なお、Ｄ型フリップフロップを図面の中においてはＤ−ＦＦと略記して用いることがある。さて、図１の機能を説明するにあたってＭＬＵＴＭ０〜Ｍ８を構成するＭＬＵＴそのものの構成が重要であるので、ＭＬＵＴについて先に説明する。
【００２５】
（ＭＬＵＴについて）
図４は本発明の半導体装置を構成する基本単位の回路であるＭＬＵＴの具体的な構成を示す回路ブロック図である。以下に構成と動作を説明する。
【００２６】
図４において、メモリブロック４０はＳＲＡＭ（Static Random Access Memory）からなるメモリセルをｎ個×（２のｎ乗）（ｎを正の整数とする）で行列状に並べて構成している。また、メモリブロック４０のアドレス線５１は（２のｎ乗）本であり、メモリ動作時データ入力４４はｎ本であり、データ出力５２もｎ本である。
【００２７】
さて、このメモリブロック４０に回路機能を果たす期待値のデータを次の手順で入力する。入力動作切り替え信号４９をメモリ動作の信号とする。するとアドレス切り替え回路４１からメモリ動作時入力アドレス（ｎ本）４５を取り込み、アドレスデコーダ４２で２のｎ乗のアドレスを指定しメモリブロック４０を前記アドレスに該当する一列のｎ個のＳＲＡＭセルのみを活性化させ、入力動作時データ入力４４からｎ本の信号線を通じてそのアドレスに必要な期待値のデータをｎ個、その列のＳＲＡＭセルに記憶させる。次にメモリ動作時入力アドレス４５から別のアドレスを取り込み、アドレスデコーダ４２で２のｎ乗のアドレスの中から別の指定する一列のｎ個のＳＲＡＭセルのみを活性化させ、入力動作時データ入力４４からｎ本の信号線を通じてそのアドレスに必要な別の期待値のデータをｎ個、その列のＳＲＡＭセルに記憶させる。このようにして、ｎ×（２のｎ乗）個のＳＲＡＭセルに順に機能回路としての期待値を書き込んでいく。以上で書き込み手順が終了する。なお、メモリブロック４０に書き込むデータ群はＭＬＵＴが設定された機能回路としての各入力値（アドレス）に対する出力値の期待値である。
【００２８】
次に該ＭＬＵＴに回路動作をさせる場合には動作切り替え信号４９で論理動作を選択する。するとアドレス切り替え回路４１から論理動作時入力アドレス（ｎ本）４７が取り込まれ、アドレスデコーダ４２を介して選択された所望のアドレスに相当するｎ個のＳＲＡＭセルのみが活性化され、メモリブロック４０のデータ線（ｎ本）５２にｎ個のデータが取り出され、出力データ切り替え回路４３を経て、論理動作時データ出力（ｎ本）４８に出力データとして取り出される。この出力データは所望の論理回路としての入力値に対する出力の期待値であるので等価的に論理回路としての機能を果たしたことになる。なお、入力値としてのアドレスが変われば、その入力値に対応する別の出力値が得られる。したがって所定の入力値に対して所望の論理回路と等価の動作をする。
【００２９】
以上は該ＭＬＵＴに論理回路動作をさせる場合であったが、単なるメモリ回路としても使用できる。この場合にはまず、動作切り替え信号４９をメモリ動作に選択し、メモリ動作時入力アドレス４５からアドレスを順に選択し、アドレスデコーダ４２を経てメモリブロック４０のｎ個のＳＲＡＭセルを活性化させ、メモリ動作時データ入力４４からｎ個のデータを書き込む。この操作を各アドレスに対して行い、書き込みの動作が完了する。
【００３０】
次にメモリブロック４０からメモリ回路としてのデータを読み出す場合には動作切り替え信号４９でメモリ動作を選択する。するとアドレス切り替え回路４１からメモリ動作時入力アドレス４５が取り込まれ、アドレスデコーダ４２を介して選択された所望のアドレス５１に相当するｎ個のＳＲＡＭセルのみが活性化され、メモリブロック４０のデータ線５２にｎ個のデータが取り出され、出力データ切り替え回路４３を経て、メモリ動作時データ出力（ｎ本）４６に出力データとして取り出される。この操作により各入力アドレスに対するメモリセルの出力が得られ、一般的なメモリ回路としての機能を果たしていることが解かる。
【００３１】
なお、メモリ動作時データ入力４４とメモリ動作時データ出力４６は同時に使用されることはないので、双方向の入出力線として兼用されることがある。
【００３２】
以上、ＭＬＵＴに論理回路としても、メモリ回路としてもどちらの機能を割りあてることもできる。
【００３３】
なお、メモリブロック４０がＳＲＡＭで構成している場合には電源を一度遮断するとメモリのデータは消滅してしまうので、再度電源投入した場合はメモリブロック４０にデータを再書き込みした後でなければ所望の回路動作はしない。
【００３４】
図５はＭＬＵＴの中の構成を示す図４とＭＬＵＴの近距離配線の接続関係を示す図１との関係を更に明らかにするための配線構成を示した回路ブロック図である。図５において、メモリブロック４０と、メモリ動作時入力アドレス４５はともに図４のメモリブロック４０とメモリ動作時入力アドレス４５に対応している。図５のメモリ動作時入出力データ４４４６は図４のメモリ動作時データ入力４４とメモリ動作時データ出力４６を双方向にして兼用したものに対応している。図５において２本の信号線を組み合わせたアドレス−データ対Ｐ０〜Ｐ６は図４において、論理動作時入力アドレス４７と論理動作時データ出力４８がそれぞれｎ＝７本の場合であって、それぞれ１本ずつ別に分けて、入力アドレス線とデータ出力線の対として７組を再構成したものに相当している。なお、図５では図４におけるアドレス切り替え回路４１、アドレスデコーダ４２、出力データ切り替え回路４３、及び動作切り替え信号４９は表現上と理解の混乱を避けるために不図示としている。
【００３５】
（ＭＬＵＴブロックについて）
図５における論理動作時入力アドレスと論理動作時データ出力を再構成したアドレス−データ対Ｐ０〜Ｐ６の内、Ｐ０〜Ｐ５までの対が図１におけるアドレス−データ対Ｐ０〜Ｐ５までに対応している。図１ではアドレス−データ対Ｐ０〜Ｐ５は１本の線で表しているが、図５に示すようにアドレス線とデータ線の対であって実際には２本で構成されている。図５における残されたアドレス−データ対Ｐ６は図１において図示していない離間配線用として使用される。図１において、ＭＬＵＴＭ０〜Ｍ８は前述したそれぞれ前述したＭＬＵＴからなり、ＭＬＵＴの中のメモリブロックに書きこまれたメモリデータにより様々な回路機能を持っている。これらのＭＬＵＴＭ０〜Ｍ８を近距離配線であるアドレス−データ対Ｐ０〜Ｐ５を用いて互いに接続し、アドレスが入力信号に相当し、データ線が出力信号に相当するので、各機能回路が組み合わされて更に複雑な回路が構成されていく。
【００３６】
なお、ＭＬＵＴＭ４にはＤ型フリップフロップ１１が特別に配置されている。このＭＬＵＴＭ４とＤ型フリップフロップ１１との信号配線の接続は近距離配線には用いられないアドレス−データ対Ｐ６が使用される。このようにＭＬＵＴＭ４においてはＤ型フリップフロップ１１との接続にアドレス−データ対Ｐ６を使用してしまうため、ＭＬＵＴＭ４のみについては離間配線が用いられない。図１において、ＭＬＵＴＭ０〜Ｍ３およびＭＬＵＴＭ５〜Ｍ８はＤ型フリップフロップが付随しない代わりに離間配線用端子を設け、図５の残されたアドレス−データ対Ｐ６を用いて離間配線を行い、相対的に遠くに配置された回路と信号のやりとりを行う。
【００３７】
図１においては、ＭＬＵＴＭ０とＭＬＵＴＭ３はアドレス−データ対Ｐ０〜Ｐ５の出方が上下、逆の関係の配置になっている。他のＭＬＵＴについても図２に示すように２種類の型がある。図２において、Ｍ０に代表される第１種のＭＬＵＴのアドレス−データ対Ｐ１とＰ２は左方向に配置され、アドレス−データ対Ｐ３とＰ４は右方向に配置されている。それぞれ、横方向に位置するＭＬＵＴとの近距離配線として用いられる。また、アドレス−データ対Ｐ０は左下方向に位置し、アドレス−データ対Ｐ５は右下方向に位置し、それぞれ、下段の左側と右側に位置するＭＬＵＴとの近距離配線として用いられる。第１種のＭＬＵＴのアドレス−データ対の配置の構成は以上の通りである。
【００３８】
また、Ｍ３に代表される第２種のＭＬＵＴのアドレス−データ対Ｐ１とＰ２は右方向に配置され、アドレス−データ対Ｐ３とＰ４は左方向に配置されている。それぞれ、横方向に位置するＭＬＵＴとの近距離配線として用いられる。また、アドレス−データ対Ｐ０は右上方向に位置し、アドレス−データ対Ｐ５は左上方向に位置し、それぞれ、上段の右側と左側に位置するＭＬＵＴとの近距離配線として用いられる。第２種のＭＬＵＴのアドレス−データ対の配置の構成は以上の通りである。
【００３９】
したがって、Ｍ０に代表される第１種のＭＬＵＴとＭ３に代表される第２種のＭＬＵＴとでは近距離配線として用いられるアドレス−データ対の配置に関しては上下、および左右に関して対称形の構成となっているため、図１に示すように各ＭＬＵＴが近接したＭＬＵＴとの間でアドレス−データ対を近距離配線として接続するには効率のよい構成となっている。このように図２に見られるアドレス−データ対の位置関係が左右および上下の関係で対称形をなす２種類のＭＬＵＴを一方向に交互に配置し、それに基づきアドレス−データ対による近距離配置配線を行ったものを交互配置配線と呼ぶことにする。
【００４０】
さて、図１では前記した２種類のＭＬＵＴからなる交互配置配線が効率よい配置と配線の例としてあげたが、図１ではＭＬＵＴのＭ０、Ｍ１、Ｍ２の縦方向にアドレス−データ対が配置されていない。したがって、縦方向にもアドレス−データ対を配置した様々な他のＭＬＵＴのレイアウトやアドレス−データ対の配置も考えられる。しかしながら、図１では不図示としているが、ＭＬＵＴの中の構成を示した図５のように近距離配線に用いるアドレス−データ対Ｐ０〜Ｐ５以外にも、離間配線用に用いるアドレス−データ対Ｐ６やメモリ動作時入力アドレス４５、そしてメモリ動作時入出力データ４４４６が実際には存在している。そして、これら図１では図示していない配線は図１において主として縦方向に配置されている。
【００４１】
したがって、近距離配線以外の縦方向に配置された前記離間配線用アドレス−データ対Ｐ６、メモリ動作時入力アドレス４５、及びメモリ動作時入出力データ４４４６の存在を考慮すると必ずしも縦方向の近距離配線を用いることが総合的には効率よい配置と配線とは言えない。したがって縦方向に配置された前記近距離配線以外の配線の存在を考慮すると図１に示した前記交互配置配線が近距離配置配線として優れた構成であると言える。
なお、以上の交互配置配線において、ＭＬＵＴの配置に関しては、トランジスタを含め各素子が構成されるレイアウトパターンから２種の左右上下対称のＭＬＵＴをレイアウトパターン上で配置する場合と、アドレス−データ対の近距離配線層を主とした配線層のみを２種の左右上下対称のＭＬＵＴ配線を用いる場合の２通りがある。
【００４２】
（複数個のＭＬＵＴブロックについて）
図６は図１の９個のＭＵＬＴからなるＭＬＵＴブロックを更に繰り返し配置した状態を表している。図６において、破線６０１で示した領域が図１におけるＭＬＵＴブロックをあらわしている。また、ＭＬＵＴ６１１、６１２やフリップフロップ６２１が破線６０１で示すＭＬＵＴの外側にも規則的に配置されている。
図６では簡明さのために、配線はアドレス−データ対による近距離配線のみを図示しており、離間配線やＭＬＵＴの制御線等は不図示としている。以上の複数個のＭＬＵＴブロックを組み合わせて所望の機能を有する回路を構成していく。該ＭＬＵＴブロックを複数個設けることによって半導体装置を形成している。
【００４３】
なお、図１ではＭＬＵＴＭ０〜Ｍ８を整然とした格子状に配置した状態を示し、図６ではＭＬＵＴＭ０〜Ｍ８は菱形の頂点にほぼ位置するクラスター状に配置された状態を示しているが、図１では近距離配線の位置関係を見やすくする為に、また、図６ではＤ型フリップフロップの存在を表示しやすくする為にそれぞれ図示したものであり、実際のレイアウトパターンでは正方形や長方形の格子状でも菱形のクラスター状でも共に可能である。
【００４４】
（回路機能構成例）
図８に４ビット加算器がＭＬＵＴブロック群を用いて実現する例を示す。
【００４５】
（１ビット全加算回路の構成）
まず、図７（ａ）に１ビットの全加算回路としての真理値を表現した図を示す。図７において、Ａは被演算数、Ｂは演算数、Ｃは前ビットからの桁上げ、Ｓは和の演算結果、Ｃａは次ビットへの桁上げである。ここでは和の入力値である被演算数Ａと演算数Ｂとの各組み合わせ、及び前ビットからの桁上げＣの有無の組み合わせによって、演算結果Ｓと、次ビットへの桁上げＣａがそれぞれどのようになるかを表している。
【００４６】
図７（ｂ）は以上の各真理値の関係を実現する標準的な回路の例である。図７（ｂ）は一般的によく知られた回路構成であるので詳細な説明は省略する。
【００４７】
さて、図４で示した構造の１個のＭＬＵＴにまず、メモリ動作時入力アドレス４５に図７（ａ）の入力Ａ、Ｂ、Ｃを割り当て、またメモリ動作時データ入力４４に出力Ｓ、Ｃａを割り当て、メモリ動作時入力アドレス４５に入力Ａ、Ｂ、Ｃの各組み合わせをそれぞれ入力し、そのときのアドレスに指定され活性化された２ビットのＳＲＡＭセルに、該組み合わせに対応する出力Ｓ、Ｃａの各値をメモリ動作時データ入力４４を通して前記活性化された２ビットのＳＲＡＭセルに書き込む。この書き込みによってＭＬＵＴは１ビットの全加算回路としての機能を持つことになる。
【００４８】
次に図４における論理時入力アドレス４７から図７（ａ）の入力Ａ、Ｂ、Ｃの任意の組み合わせを入力すれば、論理動作時データ出力４８から全加算回路としての出力Ｓ、Ｃａの各値が出力される。なお、論理時入力アドレス４７と論理動作時データ出力４８は図１、図５から解かるようにアドレス−データ対Ｐ０〜Ｐ５の６本のなかに含まれていて、近距離配線として隣接した複数のＭＬＵＴと入出力信号のやり取りが可能である。
【００４９】
（ＭＬＵＴを用いた４ビット加算回路）
図８は４ビットの加算回路をＭＬＵＴブロック群のなかに構成した回路ブロック図である。図８において、ＭＬＡ１、ＭＬＡ２、ＭＬＡ３、ＭＬＡ４は前記した方法によりそれぞれ１ビットの全加算回路の機能をＭＬＵＴに持たせたものである。また、ＭＬＳ１、ＭＬＳ２、ＭＬＳ３、ＭＬＳ４はＭＬＵＴに入力値と出力値が同一の値となる機能をそれぞれに持たせたものであり、スイッチのオン（ＯＮ）状態に対応する機能を持っている。
【００５０】
全加算回路機能を持ったＭＬＡ１には１ビット目の被演算値と演算値に相当する入力信号Ａ１、Ｂ１を入力アドレス−データ対の入力アドレスから入力する。また、１ビット目の演算結果は入力アドレス−データ対の出力データからＳ１として出力される。
全加算回路機能を持ったＭＬＡ２には２ビット目の被演算値と演算値に相当する入力信号Ａ２、Ｂ２を入力アドレス−データ対の入力アドレスから入力する。また、２ビット目の演算結果は入力アドレス−データ対の出力データからＳ２として出力される。
全加算回路機能を持ったＭＬＡ３には３ビット目の被演算値と演算値に相当する入力信号Ａ３、Ｂ３を入力アドレス−データ対の入力アドレスから入力する。また、３ビット目の演算結果は入力アドレス−データ対の出力データからＳ３として出力される。
全加算回路機能を持ったＭＬＡ４には４ビット目の被演算値と演算値に相当する入力信号Ａ４、Ｂ４を入力アドレス−データ対の入力アドレスから入力する。また、４ビット目の演算結果は入力アドレス−データ対の出力データからＳ４として出力される。
【００５１】
配線スイッチ機能を持つＭＬＳ１は前記全加算回路ＭＬＡ１から次ビットへの桁上げであるＣａを入力し、出力として前記全加算回路ＭＬＡ２の前ビットからの桁上げであるＣに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つＭＬＳ２は前記全加算回路ＭＬＡ２から次ビットへの桁上げであるＣａを入力し、出力として前記全加算回路ＭＬＡ３の前ビットからの桁上げであるＣに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つＭＬＳ３は前記全加算回路ＭＬＡ３から次ビットへの桁上げであるＣａを入力し、出力として前記全加算回路ＭＬＡ４の前ビットからの桁上げであるＣに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つＭＬＳ４は前記全加算回路ＭＬＡ４から次ビットへの桁上げであるＣａを入力し、４ビット加算器としての桁上げとして出力している。
【００５２】
以上により入力信号として４ビットからなる（Ａ１、Ａ２、Ａ３、Ａ４）の被演算値と４ビットからなる（Ｂ１、Ｂ２、Ｂ３、Ｂ４）の演算値を入力信号として、演算結果である（Ｓ１、Ｓ２、Ｓ３、Ｓ４）と桁上げ信号としての桁上げの出力信号Ｃａが得られる回路構成となっている。
【００５３】
（フリップフロップを用いる回路）
以上においては図７における１ビット全加算回路、図８においては４ビット加算回路への適用例を示したが、いずれもそのときの入力信号で一意的に決定されるいわゆる組み合わせ回路である。これに対し、同一の入力信号であっても事前の状態によって出力結果が異なる回路は順序回路と呼ばれている。順序回路には一般的に前状態を記憶したラッチ回路、もしくはフリップフロップ回路が必要となる。
【００５４】
また、組み合わせ回路であっても様々な入力があり、機能回路への入力に際して、各信号間で遅延や到達タイミングにバラツキがあると過渡的に誤動作や不適切な出力信号を出すことがある。このような場合にはフリップフロップ等を用いて信号の同期をとることが有力な手法である。
【００５５】
本発明では図１のＭ４に付随したＤ型フリップフロップを例に示している。また、図１４は図１におけるＭＵＬＴＭ４とＤ型フリップフロップの接続関係を更に詳しく示した回路ブロック図である。図１４において、ＭＬＵＴ１４０１とＤ型フリップフロップ１４０２の間は図５におけるアドレス−データ対Ｐ６を用いる。アドレス−データ対Ｐ６は近距離配線として用いられるアドレス−データ対Ｐ０〜Ｐ５とは異なり、Ｄ型フリップフロップとの信号とのやりとりのために残していたアドレス−データ対である。図１４ではＭＬＵＴ１４０１のアドレス−データ対Ｐ６はＤ型フリップフロップ１４０２のＤ端子１４１１とＱ端子１４１２に接続されている。また、Ｄ型フリップフロップ１４０２のＣＬ信号端子１４１３には同期をとるための基準となる信号が選択され、接続されることになる。
【００５６】
図１５（ａ）、（ｂ）は各ＭＬＵＴとＤ型フリップフロップの配置関係を示したレイアウトブロック図である。図１５（ａ）においては複数個のＭＬＵＴ１５６１〜１５６３等が配列された状態と、複数個のＤ型フリップフロップ群１５２１が配置されている。Ｄ型フリップフロップをＭＬＵＴ群の外側に一括して多数配置した状態を表している。また、図１５（ｂ）はＤ型フリップフロップ１５１２、１５１３を図１や図６に示した如く、ＭＬＵＴ群（１５５２〜１５５３等）のなかに広く均一的に配置した状態を示している。
【００５７】
図１５（ａ）はＤ型フリップフロップをＭＬＵＴがそれぞれ用いる場合に、離れた位置関係となるので配線の無駄や混雑が起きて適切な配置でない場合が多い。それに対し、図１５（ｂ）では各ＭＬＵＴから比較的に近くにＤ型フリップフロップが存在しているので効率的に利用できる。これからも図１によるＭＬＵＴブロックの構成が優れていることが解かる。
【００５８】
（フリップフロップの回路構成について）
図９は図１、図６の中に示したＤ型フリップフロップの具体的回路構成の第１例を示す回路図である。なお、図９に示す回路は１ビットのマスタ型のＤ型フリップフロップである。以下に構成と動作について記す。
図９において、Ｄ型フリップフロップはインバータ回路９０４、９０２、及びクロックドゲートインバータ回路９０１、９０３から構成されている。なお、クロックドゲートインバータ回路とはクロック信号が１か０かによって出力信号を出すか否かが決定されるインバータ回路（反転回路）である。
【００５９】
さて、インバータ回路９０４の入力端子には動作タイミングを制御するクロック信号（ＣＬ）が入力され、出力端子からはクロック信号の反転信号が出力される。クロックドゲートインバータ回路９０１の入力端子には制御すべきデータ信号（Ｄ）９０５が入力され、出力端子にはデータ信号の反転信号が出力させる。ただし、クロック信号（ＣＬ）（端子９０６）によって出力信号を出力するか否か制御されている。インバータ回路９０２の入力端子はクロックドゲートインバータ回路９０１の出力端子に接続され、インバータ回路９０２の出力端子はＤ型フリップフロップ端子としての出力端子（Ｑ）９０７に接続されている。また、インバータ回路９０２の出力端子はクロックドゲートインバータ回路９０３の入力端子に接続されている。クロックドゲートインバータ回路９０３の出力端子はインバータ回路９０２の入力端子に接続されている。ただし、クロックドゲートインバータ回路９０３の出力はインバータ回路９０４の出力信号で制御されるように接続されているので、クロック信号（ＣＬ）の反転信号に制御される。
【００６０】
さて、信号を２値として正信号と負信号をそれぞれ１、０で表現したとすると、端子９０６から入力されるクロック信号（ＣＬ）が１である場合にはＤ型フリップフロップの入力信号端子９０５のデータ信号（Ｄ）がクロックドゲートインバータ回路９０１で反転され、更にインバータ回路９０２で反転されＤ型フリップフロップの出力信号端子９０７に直ちにデータ信号（Ｄ）と同一の信号が出力される。なお、このときクロックドゲートインバータ回路９０３の入力端子には出力信号端子９０７のデータ信号（Ｄ）と同一の信号の信号が入力されているが、クロック信号（ＣＬ）の反転信号であるインバータ回路９０４の出力信号により制御されているので、クロックドゲートインバータ回路９０３の出力端子には出力信号が出力されない（１、０のいずれでもなく高インピーダンス状態）。
【００６１】
次に端子９０６から入力されるクロック信号（ＣＬ）が０に変わるとクロックドゲートインバータ回路９０１の出力端子には出力信号がでない。一方、クロックドゲートインバータ回路９０３の制御信号は１となるので、出力信号端子９０７のデータ信号（Ｄ）の反転信号がクロックドゲートインバータ回路９０３の出力端子に出力される。これを受けてインバータ回路９０２の出力端子はデータ信号（Ｄ）の反転信号の反転信号、つまりデータ信号（Ｄ）が出力され、かつクロックドゲートインバータ回路９０３の入力端子に接続されているので、インバータ回路９０２とクロックドゲートインバータ回路９０３はラッチ回路を構成していてクロック信号（ＣＬ）が０の間は前の状態のデータ信号（Ｄ）を記憶して保持している。このクロック信号（ＣＬ）が０の間はＤ型フリップフロップの入力信号端子９０５のデータが如何に変ろうと前の状態のデータ信号（Ｄ）を保持して出力している。このＤ型フリップフロップはクロック信号（ＣＬ）が１になった後に新たなデータ信号（Ｄ）に応じて新たな出力信号を出力する。それまでは前の状態のデータ信号（Ｄ）を記憶し、出力し続ける。以上が図９の１ビットのマスタ型のＤ型フリップフロップの基本的動作である。
【００６２】
図１１はＤ型フリップフロップの具体的回路構成の第２例を示す回路図である。なお、図１１に示す回路は２ビットのマスタ−スレイブ型のＤ型フリップフロップである。
図１１において、インバータ回路９０４、９０２、及びクロックドゲートインバータ回路９０１、９０３から構成されているマスタ部の１ビットのＤ型フリップフロップと、インバータ回路１１０４、１１０２、及びクロックドゲートインバータ回路１１０１、１１０３から構成されているスレイブ部の１ビットのＤ型フリップフロップと、からなっている。図１１のマスタ部のインバータ回路９０４、９０２、及びクロックドゲートインバータ回路９０１、９０３から構成は、図９のインバータ回路９０４、９０２、及びクロックドゲートインバータ回路９０１、９０３とまったく同じ構成であり、対応する素子の各番号も同一である。したがって、前記したマスタ部は１ビットのＤ型フリップフロップとしての機能を有している。
【００６３】
また、図１１のスレイブ部のインバータ回路１１０４、１１０２、及びクロックドゲートインバータ回路１１０１、１１０３の構成は、図１１のマスタ部のインバータ回路９０４、９０２、及びクロックドゲートインバータ回路９０１、９０３とまったく同じ構成であり、各番号の下一桁がそれぞれ順に対応している。したがって、図１１のインバータ回路１１０４、１１０２、及びクロックドゲートインバータ回路１１０１、１１０３からなるスレイブ部も１ビットのＤ型フリップフロップとしての機能を有している。
ただし、クロックドゲートインバータ回路１１０１、１１０３に供給されるクロック信号ＣＬとその反転信号は、クロックドゲートインバータ回路９０１、９０３に供給されるクロック信号ＣＬとその反転信号とはそれぞれ逆の位相関係となっている。また、マスタ部の出力部であるインバータ９０２の出力端子Ｍは、スレイブ部の入力端子であるクロックドゲートインバータ回路１１０１に入力端子に接続されている。なお、スレイブ部の入力端子に入力したマスタ部の出力端子Ｍはスレイブ部の１ビットのＤ型フリップフロップを経て、インバータ回路１１０２の出力信号にスレイブ部の出力信号Ｑとして出力されている。
したがって、図１１におけるマスタ部の１ビットのＤ型フリップフロップとスレイブ部の１ビットのＤ型フリップフロップとでは合体され、かつ動作の位相が反転しているので、２ビットのマスタ−スレイブ型のＤ型フリップフロップとして動作する。
【００６４】
図１２はＤ型フリップフロップの具体的回路構成の第３例を示す回路図である。なお、図１２に示す回路は２ビットのマスタ−スレイブ型のＤ型フリップフロップである。
図１２において、マスタ部のＤ型フリップフロップはインバータ回路１２２２、１２２３、及びトランスミッションゲート回路１２２４、１２２５から構成されている。なお、トランスミッションゲート回路とはＮ型ＭＯＳＦＥＴとＰ型ＭＯＳＦＥＴが並列に接続され、それぞれのゲート電極は反対の位相の信号をかけてオン／オフ（ＯＮ／ＯＦＦ）の制御をする開閉器の機能を持っている。なお、ＭＯＳＦＥＴとは電界効果型トランジスタであって、Metal-Oxide-Semiconductor Field-Effect Transistor の略である。マスタ部のＤ型フリップフロップにおいて、インバータ回路１２２２と１２２３はトランスミッションゲート回路１２２５を介してラッチ回路を構成している。また、トランスミッションゲート回路１２２４、１２２５を介して、データ転送（図１２においてＤからＭの反転）機能と、データ（Ｍの反転）のラッチ機能を有している。
【００６５】
また、スレイブ部のＤ型フリップフロップはインバータ回路１２３２、１２３３、及びトランスミッションゲート回路１２３４、１２３５から構成されている。
スレイブ部のＤ型フリップフロップにおいて、インバータ回路１２３２と１２３３はトランスミッションゲート回路１２３５を介してラッチ回路を構成している。また、トランスミッションゲート回路１２３４、１２３５を介して、データ転送（図１２においてＭの反転からＱ）機能と、データ（Ｍの反転）のラッチ機能を有している。
また、図１２において、インバータ回路１２０４と１２０５はそれぞれＣＬの反転信号と二重の反転信号（つまり正転信号）を作り出し、トランスミッションゲート回路１２２４、１２２５、１２３４、１２３５に供給している。
【００６６】
以上から、図１２において、前記したマスタ部のＤ型フリップフロップとスレイブ部のＤ型フリップフロップは互いに逆の位相の制御信号ＣＬで制御されているので、図１２の回路は２ビットのマスタ−スレイブ型のＤ型フリップフロップとして動作する。
【００６７】
図１０は図９とは異なる構成のＤ型フリップフロップの回路図である。なお、図１０の回路は１ビットのマスタ型のＤ型フリップフロップである。
図１０において、ＮＡＮＤ回路１００２、１００３の入出力線を互いに襷がけの構成にしたラッチ回路と、ＮＡＮＤ回路１００１、１００４とインバータ回路１００５を組み合わせ、Ｄ型フリップフロップとしては入力データ信号Ｄ、制御クロック信号ＣＬ、出力信号Ｑ、及びＱの反転出力信号を有するものである。図１０の回路構成はよく知られているので詳細な説明は省略する。
【００６８】
図１３は図１０の１ビットのマスタ型のＤ型フリップフロップを２個重ねて２ビットのマスタ−スレイブ型のフリップフロップとした構成の回路図である。
図１３において、ＮＡＮＤ回路１００１、１００２、１００３、１００４、インバータ回路１００５からなる回路は図１０の回路とまったく同一である。図１３において、ＮＡＮＤ回路１３０１、１３０２、１３０３、１３０４の構成はＮＡＮＤ回路１００１、１００２、１００３、１００４にそれぞれ対応して、基本的には同一の機能を有している。詳細な説明は略すが、図１３は２ビットのマスタ−スレイブ型のフリップフロップとなっている。
【００６９】
以上、図９から図１３において１ビットのマスタ型のＤ型フリップフロップや２ビットのマスタ−スレイブ型のＤ型フリップフロップの様々な構成例を示した。したがってＤ型フリップフロップと称しても様々な機能や構成があることが解かる。用途に応じて最適なＤ型フリップフロップの構成を選択すればよい。
【００７０】
また、フリップフロップはＤ型フリップフロップのみならず、ＲＳ型フリップフロップ、ＪＫ型フリップフロップ、Ｔ型フリップフロップ等、様々にある。これらのフリップフロップの機能と構成はよく知られているので詳細な説明は省略する。
ただし、必要に応じてＭＬＵＴブロックに搭載するフリップフロップは様々に選択可能である。
【００７１】
（離間配線について）
次に、ＭＬＵＴ間の離間配線について説明する。なお、離間配線と近距離配線の違いについてはすでに簡単に記したが、解かりやすさのために一部、重複するものの以下に詳しく記載する。
さて、図１、図６等における配線は近距離配線についてのみ図示し、離間配線については不図示であった。以下においては離間配線について述べる。
【００７２】
さて、離間配線と近距離配線の定義を以下に再掲する。
同一平面上で互いに隣接したＭＬＵＴ間で配線することを近距離配線と呼ぶ。
同一平面上で互いに隣接していないＭＬＵＴ間、もしくはＭＬＵＴブロック間で配線することを離間配線と呼ぶ。
【００７３】
また、近距離配線については図５のアドレス−データ対のＰ０〜Ｐ５を用いる。
また、離間配線については図５のアドレス−データ対のＰ６を用いる。
【００７４】
なお、図１において、ＭＬＵＴＭ４に関してはアドレス−データ対Ｐ６はＤ型フリップフロップ用に用いたが、ＭＬＵＴＭ０〜Ｍ３、及びＭＬＵＴＭ５〜Ｍ８のアドレス−データ対Ｐ６はすべて離間配線に用いる。ただし、図１に図示してある配線はすべてアドレス−データ対のＰ０〜Ｐ５による近距離配線のみで、アドレス−データ対Ｐ６による離間配線は不図示であった。
【００７５】
次にＭＬＵＴＭ０〜Ｍ８によって構成されるＭＬＵＴブロックでアドレス−データ対Ｐ０〜Ｐ５による近距離配線は不図示で、アドレス−データ対Ｐ６による離間配線のみを図示したのが図１６の配線図である。
図１６において、ＭＬＵＴＭ０〜Ｍ８の９個のＭＬＵＴで構成されている。また、ＭＬＵＴＭ４のみにはＤ型フリップフロップが付随している。ただし、Ｄ型フリップフロップは不図示としている。前記したようにＭＬＵＴＭ４にはＤ型フリップフロップが付随しているのでアドレス−データ対Ｐ６はフリップフロップ用に使われて離間配線は使用できない。ＭＬＵＴＭ０〜Ｍ３とＭＬＵＴＭ５〜Ｍ８の各アドレス−データ対Ｐ６がＭＬＵＴブロックの外部へ離間配線が伸びている様子を示している。また、前記したようにＭＬＵＴＭ４のみがＤ型フリップフロップを配置した点と、離間配線は使用しない点とが他のＭＬＵＴＭ０〜Ｍ３及びＭＬＵＴＭ５〜Ｍ８と異なっているのでＭ４を四角で囲って表現し、他のＭ０〜Ｍ３及びＭ５〜Ｍ８が丸で囲っている表現と区別をしている。
【００７６】
図１７は離間配線の結線の２種類のパターンを示す配線図である。ＭＬＵＴブロックにおいて、離間配線の接続の仕方は様々な可能性があるが、図１７においては２種類の離間配線パターンを示している。図１７（ａ）はＭＬＵＴＭ０，Ｍ５におけるアドレス−データ対Ｐ６の離間配線は下方向に配線され、ＭＬＵＴＭ３，Ｍ８におけるアドレス−データ対Ｐ６の離間配線は上方向に配線されている。この図１７（ａ）を離間配線パターン１と呼ぶことにする。また、図１７（ｂ）はＭＬＵＴＭ０，Ｍ５におけるアドレス−データ対Ｐ６の離間配線は上方向に配線され、ＭＬＵＴＭ３，Ｍ８におけるアドレス−データ対Ｐ６の離間配線は下方向に配線されている。この図１７（ｂ）を離間配線パターン２と呼ぶことにする。
【００７７】
さて、図１７（ａ），（ｂ）の離間配線パターン１と離間配線パターン２をそれぞれに持つ２個のＭＬＵＴブロックを上下関係に配置すると、離間配線パターン１の図１７（ａ）のＭＬＵＴＭ０，Ｍ５におけるアドレス−データ対Ｐ６の離間配線は下方向に配線されており、かつ離間配線パターン２の図１７（ｂ）のＭＬＵＴＭ０，Ｍ５におけるアドレス−データ対Ｐ６の離間配線は上方向に配線されているので、離間配線パターン１と離間配線パターン２をそれぞれに持つ２個のＭＬＵＴブロックのＭＬＵＴＭ０，Ｍ５は位置関係において適合した配線が接続される。
【００７８】
また、図１７（ａ），（ｂ）の離間配線パターン１と離間配線パターン２をそれぞれに持つ２個のＭＬＵＴブロックを前記した場合と逆に離間配線パターン２を上に、離間配線パターン１を下の位置関係に配置すると、離間配線パターン２の図１７（ｂ）のＭＬＵＴＭ３，Ｍ８におけるアドレス−データ対Ｐ６の離間配線は下方向に配線されており、かつ離間配線パターン１の図１７（ａ）のＭＬＵＴＭ３，Ｍ８におけるアドレス−データ対Ｐ６の離間配線は上方向に配線されているので、離間配線パターン２と離間配線パターン１をそれぞれに持つ２個のＭＬＵＴブロックのＭＬＵＴＭ３，Ｍ８は位置関係において適合した配線が接続される。
【００７９】
なお、前記離間配線パターン１と離間配線パターン２においてはＭＬＵＴＭ１，Ｍ２，Ｍ６，Ｍ７に関しては同型の離間配線パターンを有している。前記離間配線パターン１と離間配線パターン２の２個のＭＬＵＴブロックを左右に配置した場合でも図１７（ａ），（ｂ）の場合には支障なく適合した配線が接続される。したがって同型の離間配線パターンを組み合わせた場合でも、位置関係において適合した配線を接続することもできる。
【００８０】
図１８は図１７（ａ），（ｂ）で示した離間配線パターン１と離間配線パターン２の組み合わせでＭＬＵＴブロックをタイル状に配置し、各ＭＬＵＴブロックの各ＭＬＵＴを介した離間配線の一部を図示した配線図である。なお、上下、左右の各ＭＬＵＴブロック間の各ＭＬＵＴにおける離間配線の配置の様子を示すのが目的であるので、理解の妨げになりかねない他の位置にあるＭＬＵＴブロックや離間配線が重なり表示が煩雑となりかねない他のＭＵＬＴの離間配線は意図的に不図示としている。
【００８１】
図１８において、ＭＬＵＴブロック１８０１は前記した離間配線パターン１で構成され、ＭＬＵＴブロック１８０２は離間配線パターン２で構成されている。ＭＬＵＴブロック１８０１におけるＭＬＵＴＭ０，Ｍ５における離間配線と、ＭＬＵＴブロック１８０２におけるＭＬＵＴＭ０，Ｍ５における離間配線とが上下の方向の配線において、位置関係において適合した配線接続が行われていることが解かる。
【００８２】
また、図１８において、ＭＬＵＴブロック１８０３は前記した離間配線パターン２で構成されている。前記したようにＭＬＵＴブロック１８０１は離間配線パターン１で構成されている。したがって、ＭＬＵＴブロック１８０３におけるＭＬＵＴＭ３，Ｍ８における下方向の離間配線と、ＭＬＵＴブロック１８０１におけるＭＬＵＴＭ３，Ｍ８における上方向の離間配線とが上下の方向の配線において、位置関係において適合した配線接続が行われていることが解かる。
【００８３】
図１９は離間配線を含めたＭＬＵＴブロックを平面上において規則的に配置した場合のレイアウトパターンの効率的な組み合わせを示すレイアウトのブロック配置図である。
図１９は図１８と形状としては同一のＭＬＵＴブロックを並べている。ただし、レイアウトパターンを自動的に繰り返して効率よく配置する場合には図１８のＭＬＵＴブロックの組み合わせでは複数の種類の離間配線パターンが含まれているために煩雑な場合があり、レイアウト設計に多大な時間を要したり、あるいはミスを起こしかねない。
【００８４】
図１９においては同一パターンによる繰り返しによる効率的なＭＬＵＴブロックの組み合わせを示すものである。図１９におけるＭＬＵＴブロック１８０1、１８０２、１８０３は図１８におけるＭＬＵＴブロック１８０1、１８０２、１８０３にそのまま対応している。図１９においては破線１９１０で示したＭＬＵＴブロック１８０1、１８０２は含むが、ＭＬＵＴブロック１８０３は含まない４個×４個からなるブロック単位で考える。
【００８５】
このとき、ＭＬＵＴブロック１８０２は離間配線パターン２であり、ＭＬＵＴブロック１８０３も離間配線パターン２であることを考慮すると破線１９０１の横の破線の上下の関係４個×４個のＭＬＵＴブロックの間で同一パターンが繰り返されており、かつ破線１９０１において、横方向の離間配線パターンは各ＭＬＵＴブロック間で同一であるので、図１９の破線で示した４個×４個のＭＬＵＴブロックを基本単位として、平面上において規則的に配置していけば離間配線が位置関係において適合した配線接続がなされた状態で自動的に全体のＭＬＵＴブロックが配列された構造が出来上がる。
【００８６】
（トーラス配線、及びトーラス網）
次に離間配線において信号伝達特性をよくするための手法であるトーラス配線について述べる。同一構成のセルを平面上に多数並べる場合において、同一信号線を各セルが共有する場合がある。図２２は各セル間を１本の信号線で単純に接続した配線図である。このとき、図２２に示すように各セル間を一本の信号線で接続した場合には、端点に位置する０番のセルと５番のセルは一本の信号線しか受けていないのに対し、１番のセルから４番のセルは２本の信号線を受けている。したがって、端点に位置する０番および５番のセルと、中に位置する１番から４番のセルとの間には少なくとも受信した信号線の数だけにおいても対称性を失っているので、各セル間での特性に差がでることがある。この場合には端点の特異性が生じたことになる。
【００８７】
図２３は端点における信号線の数の特異性を少しでも解消する意図で、図１７の状態から端点の０番のセルと５番のセル間を追加した信号線で接続した配線図である。この方法により、各セルで受信する信号線の本数は解消したことになる。しかしながら、図２３において、端点の０番のセルと５番のセル間を直接接続する信号線の長さは他のセル間での接続線の長さに比較すると異常に長い。したがって、電気的には寄生静電容量やノイズの影響の受け易さ等において特性差が生じ、各セル間での対称性は確保できていない。
【００８８】
図２４は端点における信号線の数の特異性を更に解消しようと試みた配線図である。図２４において、左端の０番のセルはセルを一つ跳ばした位置の２番のセルに信号線を接続し、２番のセルはセルを一つ跳ばした位置の４番のセルに信号線を接続している。また右端の５番のセルはセルを一つ跳ばした位置の３番のセルに信号線を接続している。また３番のセルはセルを一つ跳ばした位置の１番のセルに信号線を接続している。なお４番のセルから５番のセルへの接続、および１番のセルから０番のセルへの接続は隣同士であるが、これは例外であって原則的に一つ跳ばしたセルに接続する方法をとっている。すると最大の信号線の間隔がセルを一つ跳ばした位置の距離にすべての信号線が収まる。したがって、受信した信号線の数、および信号線の接続間隔がすべてのセル間でほぼ等しくなり、各セルの電気的特性が均一化され、制御しやすくなるとともに安定した性能を確保できることとなる。このような一つ跳ばししていきながらループ状に配線し、均一で安定した性能を確保する配線手法を一般的にトーラス配線という。
【００８９】
図２４では１本のトーラス配線を示したが、アドレス線などにおいて複数本を行う場合を図示したものが図２１である。ここでは横方向において、１信号が２本の対でループ状に構成され、かつ一つ跳ばしして行きながらトーラス構造となっている。またこれらの構造の複数の信号対が配列されている。また、横方向のみならず、縦方向においても１信号が２本の対でループ状に構成され、かつ一つ跳ばししていくトーラス構造となっている。そして、これらの構造の複数の信号対が配列されている。したがって図２１は横方向、および縦方向に複数の信号線がトーラス構造の配置が行われており、一般的にトーラス網と呼ばれている構造である。
【００９０】
図１８は前記したように本発明のＭＬＵＴ間、及びＭＬＵＴブロック間での離間配線を示したものであるが、トーラス構造を一部に用いた例でもある。図１８において、ＭＬＵＴ、およびＭＬＵＴブロックはそれぞれ基本単位を構成しているので、ＭＬＵＴ、及びＭＬＵＴブロックをＭ（Ｍは１以上の整数）個を跳ばして配線することにより、離間配線をトーラス構造で実現している。なお、図１８においてはＭＬＵＴを６個跳ばししていく構成とも、ＭＬＵＴブロックを１個跳ばししていく構成ともとれる。どちらでも解釈可能である。
【００９１】
このようにＭＬＵＴ単位、ＭＬＵＴブロック単位でトーラス構造あるいはトーラス網を構成することにより、それぞれ長さの異なる距離に対しても、各々特性が均一で安定した最適な離間配線を本発明は提供できる。
【００９２】
また、以上の説明においてはＭＬＵＴ、もしくはＭＬＵＴブロックを１個跳ばす例を示したが、２個以上を跳ばすことも可能である。跳ばす個数に規則性を持たせれば均一で、安定した特性の離間配線が得られる。
【００９３】
（トーラス配線による離間配線例）
さて、図２０にＭＬＵＴブロックを平面上において規則的に配置した本発明のなかに含まれる離間配線にトーラス配線を適用した配線図の例を示す。図２０において、ＭＬＵＴブロック２００１、２００２、２００３、２００４、２００５、２００６は離間配線として図１７（ａ）、（ｂ）の離間配線パターン１もしくは離間配線パターン２を持っている。したがって、前記したトーラス配線の考え方に基づき離間配線が行える。
【００９４】
図２０においては平面上で規則的に配置されたＭＬＵＴブロック２００１、２００２、２００３、２００４、２００５、２００６において、ＭＬＵＴブロック２００２とＭＬＵＴブロック２００４の間でＭＬＵＴブロック２００３を１個跳ばして離間配線２Ｒ２４が配線されている。また、ＭＬＵＴブロック２００４とＭＬＵＴブロック２００６の間でＭＬＵＴブロック２００５を１個跳ばして離間配線２Ｒ４６が配線されている。以上はＭＬＵＴブロック２００２、２００３、２００４、２００５、２００６に対し右側を配線したとして図示されている。
【００９５】
また、ＭＬＵＴブロック２００１とＭＬＵＴブロック２００３の間でＭＬＵＴブロック２００２を１個跳ばして離間配線２Ｌ１３が配線されている。また、ＭＬＵＴブロック２００３とＭＬＵＴブロック２００５の間でＭＬＵＴブロック２００４を１個跳ばして離間配線２Ｌ３５が配線されている。以上はＭＬＵＴブロック２００１、２００２、２００３、２００４、２００５に対し左側を配線したと図示されている。
【００９６】
以上のようにＭＬＵＴブロック２００１、２００２、２００３、２００４、２００５、２００６に対し、ＭＬＵＴブロックを１個ずつ跳ばして右側を離間配線２Ｒ２４と２Ｒ４６が配線され、また、ＭＬＵＴブロックを１個ずつ跳ばして左側を離間配線２Ｌ１３と２Ｌ３５が配線されている。以下、すべての領域についての説明は省略するが、以上により前記トーラス配線がＭＬＵＴブロックを平面上において規則的に配置された状態において縦方向の離間配線に適用できることが解かる。また、左右方向においても前記トーラス配線がＭＬＵＴブロックを平面上において規則的に配置された状態において離間配線に適用できることが解かる。したがって、縦方向の離間配線にも、左右方向の離間配線にもトーラス配線が適用できるので、図２０のＭＬＵＴブロック群はトーラス配線網が構成されていることが解かる。
【００９７】
（その他の実施形態）
本発明は前記の実施形態に限定されるものではない。以下に例をあげる。
本発明を構成するＭＬＵＴブロックは９個のＭＬＵＴを組み合わせた構成で示したが、一般にＫ個×Ｌ個（Ｋ、Ｌは１以上の整数）の構成が可能である。
また、該Ｋ個×Ｌ個の構成の場合にフリップフロップを付随するＭＬＵＴはＭＬＵＴブロック内において、複数個置くことができる。
また、Ｋ個×Ｌ個（Ｋ、Ｌは１以上の正の整数）の構成を基本とするが、その一部の升目においてＭＬＵＴの代わりに他の回路要素を配置することも可能である。
【００９８】
また、以上において、ＭＬＵＴもしくはＭＬＵＴブロックは平面上に配列する例を示したが、チップを積層する形態をとれば３次元的に実装してもよい。
【００９９】
また、図１、図２、図５においてはアドレス−データ対が７本からなり、そのうちの６本（６対）が近距離配線に、また１本（１対）が離間配線に用いられる例を示したが、図３に示すようにアドレス−データ対をＰ０〜Ｐ７の計が８本で構成してもよい。また、それ以上の本数でもよい。このＰ０〜Ｐ７の計が８本の場合には図４におけるメモリブロックにおけるメモリ容量は増加するが、図１における近距離配線のアドレス−データ対を１本増やすこともできるし、また図１には図示されていない離間配線を更に１対増やすこともできる。
また、前記したようにＭＬＵＴを組み合わせる構成が３×３以外の、一般にＫ個×Ｌ個（Ｋ、Ｌは１以上の正の整数）の構成となった場合にはアドレス−データ対の本数は実態に合わせて適切な本数が前記した本数以外に存在する。
【０１００】
また、以上において、図４に示したようにＭＬＵＴに含まれるメモリブロック４０はＳＲＡＭで説明したが、不揮発性メモリで構成してもよい。メモリブロック４０が不揮発性メモリで構成され、図４のＭＬＵＴが論理回路機能を持たされていた場合には電源が一度遮断され、再度電源投入した場合でもメモリが不揮発性であるので、電源投入後から直ちに設定された回路機能動作を開始するという効果がある。また、同様にメモリが不揮発性であればメモリ回路として使用していた場合にも電源投入後から直ちに使用できるという効果がある。ここで、不揮発性メモリとしてはＥＥＰＲＯＭ（Erasable Programmable Read Only Memory）(ＦＬＡＳＨ型を含む )、ＦｅＲＡＭ(Ferroelectric Random Access Memory)、ＭＲＡＭ(Magneto-resistive  Random Access Memory)等がある。
【０１０１】
また、以上において、ＭＬＵＴは図４に示した構成を例示したが、必ずしも図４の構成とは限らない。メモリブロックの構成をｎ×（２のｎ乗）の構成にしたが、他のメモリブロックの構成にしてもよいし、アドレス線やデータ線の共有化も場合によっては可能である。
【０１０２】
また以上において、図１、図６に存在するフリップフロップは１個からなる場合について述べてきたが、フリップフロップは複数個搭載する場合もある。フリップフロップを複数個搭載すると、順序回路として用いる場合は前状態の状態数を数多く増やせるので複雑な順序回路を実現できる。
また、制御信号による同期をとるためにフリップフロップを用いる場合には２相のクロック信号や異なる複数の制御信号による同期や制御が可能となるのでより高機能な回路を構成することが可能となる。
【０１０３】
また、以上において、図１、図６に存在するフリップフロップはＤ型フリップフロップで説明し、他のフリップフロップの場合として、ＲＳ型、ＪＫ型、Ｔ型のフリップフロップの例をあげてきたが、必ずしも純然たるフリップフロップのみならず他の回路要素も有効となる場合がある。例えばレジスターやカウンターであってもよい。レジスターが搭載してあれば、図８で例とした４ビットの加算回路のように下の桁からの桁上げを待たずに各桁が並列的にほぼ同時に計算を行うパイプライン型の加算器のように、より高速、高機能な回路を搭載することも可能となる。
【０１０４】
また、図１７（ａ），（ｂ）において、上下方向の配線において２種類の離間配線パターン１と離間配線パターン２を記したが、左右方向の配線についても２種類の離間配線パターンは存在する。したがって、上下方向で２種類、左右方向で２種類あるので、組み合わせせれば最低でも４種類の離間配線パターンが存在する。このような他の離間配線パターンを組み合わせて用いてもよい。
【０１０５】
また、離間配線にトーラス配線を適用する例を示し、トーラス配線の場合には端点における特異性の影響が電気的特性のバラツキを相殺する一つの方法であることを前記した。しかし、二次元、三次元の平面、曲面を考慮するとトーラス以外のトポロジー（位相幾何構造）を持つものは数多く存在する。これらの他のトポロジーを擬似的に構成することは多層配線を用いれば可能である。例えば球面やハイパーキューブ等に相当する擬似的構造は前記した端点における特異性の消去のみならず、製造過程の空間の位置に由来するバラツキや、位置によって差異があるノイズ等を相殺するような構造を持たせる可能性がある。
【産業上の利用可能性】
【０１０６】
本発明は随時、機能変更が可能であるプログラマブルなＬＳＩであり、かつ従来のＦＰＧＡに比較して、安価で、性能に安定性がある。また、初期のＭＰＬＤに比較し、安価であるとともに、同期回路や順序回路を構成しやすくし、高機能と高性能となっている。したがって、コストパフォーマンスのよいプログラマブルＬＳＩとして、多品種少量生産の機種や、機能変更が起こりうる機種や、新製品の開発現場にプログラマブルＬＳＩとして、従来のＦＰＧＡ等に置き換わり、広く使用されていく可能性がある。
【符号の説明】
【０１０７】
Ｍ０〜Ｍ８，６１１〜６１２，１４０１，１５５１〜１５５３，１５６１〜１５６３  ＭＬＵＴ
Ｐ０〜Ｐ６  アドレス−データ対による近距離配線
１１，６２１，１４０２，１５５１  Ｄ型フリップフロップ
４０  ＳＲＡＭからなるメモリブロック
４１  アドレス切り替え回路
４２  アドレスデコーダ
４３  出力データ切り替え回路
４４  メモリ動作時データ入力
４５  メモリ動作時入力アドレス
４６  メモリ動作時データ出力
４７  論理動作時入力アドレス
４８  論理動作時データ出力
４９  動作切り替え信号
５１  アドレス線データ入力
５２  データ出力
４４４６  メモリ動作時データ入出力
６０１，１８０１〜１８０３，２００１〜２００６  ＭＬＵＴブロック
ＭＬＡ１〜ＭＬＡ４  ＭＬＵＴから構成された１ビット加算器
ＭＬＳ１〜ＭＬＳ４  ＭＬＵＴから構成されたスイッチ
１５２１  複数個のＤ型フリップフロップ群
２Ｌ１３，２Ｌ３５，２Ｒ２４，２Ｒ４６  離間配線
【図１】
2010239325.tif 000003
【図２】
2010239325.tif 000004
【図３】
2010239325.tif 000005
【図４】
2010239325.tif 000006
【図５】
2010239325.tif 000007
【図６】
2010239325.tif 000008
【図７】
2010239325.tif 000009
【図８】
2010239325.tif 000010
【図９】
2010239325.tif 000011
【図１０】
2010239325.tif 000012
【図１１】
2010239325.tif 000013
【図１２】
2010239325.tif 000014
【図１３】
2010239325.tif 000015
【図１４】
2010239325.tif 000016
【図１５】
2010239325.tif 000017
【図１６】
2010239325.tif 000018
【図１７】
2010239325.tif 000019
【図１８】
2010239325.tif 000020
【図１９】
2010239325.tif 000021
【図２０】
2010239325.tif 000022
【図２１】
2010239325.tif 000023
【図２２】
2010239325.tif 000024
【図２３】
2010239325.tif 000025
【図２４】
2010239325.tif 000026