JP2010239325A - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP2010239325A
JP2010239325A JP2009083786A JP2009083786A JP2010239325A JP 2010239325 A JP2010239325 A JP 2010239325A JP 2009083786 A JP2009083786 A JP 2009083786A JP 2009083786 A JP2009083786 A JP 2009083786A JP 2010239325 A JP2010239325 A JP 2010239325A
Authority
JP
Japan
Prior art keywords
wiring
mlut
address
circuit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009083786A
Other languages
English (en)
Other versions
JP5140029B2 (ja
JP2010239325A5 (ja
Inventor
Tetsuo Hironaka
哲夫 弘中
Kazuya Tanigawa
一哉 谷川
Hiroaki Toguchi
博昭 戸口
Naoki Hirakawa
直樹 平川
Takashi Ishiguro
隆 石黒
Masayuki Sato
正幸 佐藤
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.)
HIROSHIMA ICHI
Taiyo Yuden Co Ltd
Original Assignee
HIROSHIMA ICHI
Taiyo Yuden 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 HIROSHIMA ICHI, Taiyo Yuden Co Ltd filed Critical HIROSHIMA ICHI
Priority to JP2009083786A priority Critical patent/JP5140029B2/ja
Priority to CN201080013413.3A priority patent/CN102369668B/zh
Priority to US13/255,846 priority patent/US8283945B2/en
Priority to PCT/JP2010/055029 priority patent/WO2010113713A1/ja
Publication of JP2010239325A publication Critical patent/JP2010239325A/ja
Publication of JP2010239325A5 publication Critical patent/JP2010239325A5/ja
Application granted granted Critical
Publication of JP5140029B2 publication Critical patent/JP5140029B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17736Structural details of routing resources
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17724Structural details of logic blocks
    • H03K19/17728Reconfigurable logic blocks, e.g. lookup tables
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/1778Structural details for adapting physical parameters
    • H03K19/17792Structural details for adapting physical parameters for operating speed

Abstract

【課題】従来のプログラマブルな半導体装置であるFPGAやMPLDはコストパフォーマンスが悪く、かつ長い信号線に対する配慮が不充分であった。
【解決手段】メモリと、アドレス−データ対を有する複数のMLUTから構成されるMLUTブロックにフリップフロップを内蔵した。また隣接するMLUT間の近距離配線には交互配置配線を導入し、隣接していないMLUT間の配線には専用の離間配線、更にはトーラス配線網を設けた。
【選択図】図1

Description

本発明はメモリを含み、かつアドレス線とデータ線対を有する論理機能セルを備えたことからなるプログラマブルな半導体装置の構成に関わるものである。
従来、集積回路であるLSI(Large Scale Integration)を搭載した半導体装置は、機能設計、論理設計等を行い、それらに基づき、同一機能を持つ製品を多量に製造したものが、一般的であった。これらは大量生産に向いている為、効率よく低コストで製品が得られる一方、機能が若干でも異なると使用できなかった。したがって、多品種少量生産の製品や、仕様もしくは機能変更を度々行なう必要のある製品には適していなかった。
そこで、単一の半導体装置でありながら、顧客側で機能を設定できるもの、あるいは使用の途中で機能変更をできるプログラマブルな半導体装置が登場してきた。
プログラマブルな半導体装置として代表的な一例は可変機能回路セル群と可変信号配線群とスイッチ素子群、及びメモリを持ち、該メモリの情報に基づきトランジスタによる前記のスイッチをオン/オフ(ON/OFF)させて前記可変機能回路セル群と可変信号配線群を切り替え、所望の機能の回路をプログラマブルに実現するFPGA(Field Programmable Gate Array)がある。
しかしながら、従来のFPGAは各回路や各信号配線の変更をトランジスタによるスイッチを用いて行うが、回路や配線の占有領域がそれぞれ固定されているため、自由度が少なく、所望の機能回路によっては非常に無駄な構成となることがある。したがって、レイアウト上の面積効率が一般的に悪く、相対的に大きなチップ面積のLSIを必要とし、コストパフォーマンスが低くかった。また、製造工程も配線層の多さを含め長く複雑で製造コストが高いという問題があった。また、従来のFPGAでは各回路を接続する配線が遠くの位置に及ぶ場合には寄生静電容量と寄生抵抗による伝送遅延が問題となり、誤動作を引き起こす場合があった。もしくは、この伝送遅延に関わる問題を回避するために信号線の途中にバッファを何段も設ける必要が生じ、素子の使用効率やチップ面積の増大などが長距離の信号配線の増加とともに大きな問題となっていた。
なお、これらFPGAに関する特許文献としては特許文献1および特許文献2がある。
以上の背景から、次に記す初期のMPLDが登場してきた。MPLDは以下のように構成されている。
すなわち、アドレス線の本数と、データ線の本数が同数であるメモリを搭載し、メモリに所望の機能を形成するためのデータを書き込み、論理動作時には入力信号に相当するアドレスデータに基づき、論理回路動作に相当する出力データを前記メモリから読み出す機能からなるMLUTを単位セルとし、複数の前記MLUTの単位セルを並べて配置し、かつ相互に配線することによって様々な回路と等価の機能を果たす素子としたものが、MPLDである。
なお、ここでMPLDとはMemory-based Programmable Logic Deviceの略であり、MLUTはMPLD Look Up Tableの略である。また、これらの先行技術文献としては特許文献3および非特許文献1がある。
特開2000−36738号広報 特開2002−164780号広報 WO2007/060738号明細書
ITC−CSCC 2008(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.
しかしながら、従来のMPLDではフリップフロップを使用する場合、MPLDの外に配置していたので、フリップフロップとMLUT間の配線接続が非効率であった。また、接続の配線が長くなり、遅延時間が大きくなり、高速化が出来ない、等の課題があった。 また、MPLDにおいて、フリップフロップやラッチ回路を必要とする場合には、MLUTを回路要素資源として、フリップフロップやラッチ回路に転用して構成した後、該回路を用いてフリップフロップを必要とする論理回路を構成する手法をとっていたものもあるが、これらは面積効率、素子効率が悪いという課題があった。
また、基準信号に基づいてタイミングをとる同期回路を構成する場合、MLUT間の配線接続が非効率で、配線の長さが長くなり、その結果、遅延時間が大きくなり、高速化が困難、等の課題があった。
以上から、従来のMPLDでは順序回路をはじめとする前の状態が論理機能に影響する回路を構成する場合や、また、基準信号に基づいてタイミングをとる同期回路を構成する場合には前記した課題が噴出することが多かった。
そこで本発明はこのような問題点を解決するもので、その目的とするところは高機能と安定した特性を備え、かつ設計上の自由度が高く、チップ面積効率のよい、したがってコストパフォーマンスの高いプログラマブルな半導体装置、殊に前記した課題についてより改良されたMPLDからなる半導体装置を提供することである。
前記の課題を解決して、本発明の目的を達成するために、各発明を以下のように構成した。
すなわち第1の発明は、メモリと、アドレス線とデータ線対と、を有するMLUTがN(Nは1以上の整数)個からなるMLUTブロックを基本単位とし、この基本単位であるMLUTブロックを複数個、配列するとともに、MLUTブロックにフリップフロップを配置したものである。
第2の発明は第1の発明において、前記フリップフロップにD型フリップフロップ(Delay型フリップフロップ)を用いたものである。
第3の発明は第1の発明または第2の発明において、前記フリップフロップをMLUTブロックに2個以上配置したものである。
第4の発明は第1の発明において、前記メモリをSRAM(Static Random Access Memory)で構成したものである。
第5の発明は第1の発明において、前記メモリを不揮発性メモリで構成したものである。
第6の発明は第1の発明または第2の発明において、前記MLUT間のアドレス線とデータ線の対による近距離配線を交互配置配線としたものである。
第7の発明は第1の発明から第3の発明のいずれか、もしくは第6の発明において、前記MLUT間、もしくはMLUTブロック間の信号接続に専用の離間配線を有したものである。
第8の発明は第7の発明において、前記離間配線にトーラス構造を含ませたものである。
したがって、前記の構成によれば、従来のMPLDに比較して、本発明ではフリップフロップをMLUTブロック内に専用に設けてあるため、組み合わせ回路のみならず順序回路も構成できることや、更には制御の際における同期がとりやすいため、より高速で高機能の回路を容易に構成しやすいという効果がある。
また、面積効率、素子効率が改善されているので、より低コストで提供できるという効果がある。
本発明の実施例に関わるMLUTブロックの各MLUTの配置と、各MLUT間の近距離配線の関係を示す回路ブロック図である。 本発明の実施例に関わるMLUTブロックにおいて、交互配置配線を行うMLUTの2種類の近距離配線パターンを示す配線パターン図である。 本発明の他の実施例におけるアドレス線とデータ線の対の信号線の端子配置を示した回路ブロック図である。 本発明の実施例に関わるMLUTの回路構成を示す回路ブロック図である。 本発明の実施例に関わるMLUTの複数本のアドレス線とデータ線の対と、メモリ動作時の入力アドレス線と入出力データ線の構成を示した回路ブロック図である。 本発明の実施例に関わるMLUTブロックを平面上において規則的に配列し、MLUTとフリップフロップと近距離配線の関係を示した回路ブロック図である。 従来回路の全加算回路の動作機能を表す機能図と、回路構成例を示す回路図である。 本発明の実施例に関わるMLUTを用いた4ビット加算回路の構成を示す回路ブロック図である。 本発明および従来例に用いられるD型フリップフロップの第1例を示す回路図である。 本発明および従来例に用いられるD型フリップフロップの第2例を示す回路図である。 本発明および従来例に用いられるD型フリップフロップの第3例を示す回路図である。 本発明および従来例に用いられるD型フリップフロップの第4例を示す回路図である。 本発明および従来例に用いられるD型フリップフロップの第5例を示す回路図である。 本発明の実施例に関わるMLUTとD型フリップフロップの接続関係を表す回路ブロック図である。 本発明の実施例に関わるMLUTとD型フリップフロップの配置関係を表すレイアウトブロック図である。 本発明の実施例に関わるMLUTブロックの各MLUTからの離間配線の結線を示す配線図である。 本発明の実施例に関わるMLUTブロックの各MLUTからの離間配線の結線の2種類のパターンを示す配線図である。 本発明の実施例に関わるMLUTブロックとMLUTの離間配線の結線を示す配線図である。 本発明の実施例に関わるMLUTブロックとMLUTを効率的に設計上の配置を行う際のMLUTブロックの構成を示すブロック配置図である。 本発明の実施例に関わるMLUTブロックにおけるトーラス配線(網)による離間配線を示した配線図である。 本発明および従来例に用いられるトーラス配線、及びトーラス配線網を示した配線図である。 従来例に用いられる信号配線の第一例を示した配線図である。 従来例に用いられる信号配線の第二例を示した配線図である。 本発明および従来例に用いられるトーラス配線を示した配線図である。
以下、本発明の実施の形態について、図面を参照して説明する。
(本発明の半導体装置を構成するMLUTブロックの実施形態)
図1は本発明の半導体装置の主要要素であるMLUTが9個からなるMLUTブロックの構成の第1例を示す回路ブロック図である。
図1において、M0〜M8はMLUTである。MLUTM0〜M8によってMLUTブロックを構成している。MLUTM0〜M8は同一平面上で互いに隣接したMLUT間でアドレス線とデータ線の対(以下、「アドレス−データ対」と略すこともある)からなる信号のやりとりをして回路を構成していく。この同一平面上で互いに隣接したMLUT間で配線することを近距離配線と呼ぶことにする。また、この同一平面上で互いに隣接していないMLUT間で配線することを離間配線と呼ぶことにする。
図1では本発明の特徴であるアドレス線とデータ線の対による近距離配線についてのみ番号を付けて図示しているが、混乱を避ける為、他の配線は不図示としている。図1で不図示としている信号配線は図4、及び図5を用いて後述する。また、MLUTM4にはD型(Delay)のフリップフロップが付随して配置されている。なお、D型フリップフロップを図面の中においてはD−FFと略記して用いることがある。さて、図1の機能を説明するにあたってMLUTM0〜M8を構成するMLUTそのものの構成が重要であるので、MLUTについて先に説明する。
(MLUTについて)
図4は本発明の半導体装置を構成する基本単位の回路であるMLUTの具体的な構成を示す回路ブロック図である。以下に構成と動作を説明する。
図4において、メモリブロック40はSRAM(Static Random Access Memory)からなるメモリセルをn個×(2のn乗)(nを正の整数とする)で行列状に並べて構成している。また、メモリブロック40のアドレス線51は(2のn乗)本であり、メモリ動作時データ入力44はn本であり、データ出力52もn本である。
さて、このメモリブロック40に回路機能を果たす期待値のデータを次の手順で入力する。入力動作切り替え信号49をメモリ動作の信号とする。するとアドレス切り替え回路41からメモリ動作時入力アドレス(n本)45を取り込み、アドレスデコーダ42で2のn乗のアドレスを指定しメモリブロック40を前記アドレスに該当する一列のn個のSRAMセルのみを活性化させ、入力動作時データ入力44からn本の信号線を通じてそのアドレスに必要な期待値のデータをn個、その列のSRAMセルに記憶させる。次にメモリ動作時入力アドレス45から別のアドレスを取り込み、アドレスデコーダ42で2のn乗のアドレスの中から別の指定する一列のn個のSRAMセルのみを活性化させ、入力動作時データ入力44からn本の信号線を通じてそのアドレスに必要な別の期待値のデータをn個、その列のSRAMセルに記憶させる。このようにして、n×(2のn乗)個のSRAMセルに順に機能回路としての期待値を書き込んでいく。以上で書き込み手順が終了する。なお、メモリブロック40に書き込むデータ群はMLUTが設定された機能回路としての各入力値(アドレス)に対する出力値の期待値である。
次に該MLUTに回路動作をさせる場合には動作切り替え信号49で論理動作を選択する。するとアドレス切り替え回路41から論理動作時入力アドレス(n本)47が取り込まれ、アドレスデコーダ42を介して選択された所望のアドレスに相当するn個のSRAMセルのみが活性化され、メモリブロック40のデータ線(n本)52にn個のデータが取り出され、出力データ切り替え回路43を経て、論理動作時データ出力(n本)48に出力データとして取り出される。この出力データは所望の論理回路としての入力値に対する出力の期待値であるので等価的に論理回路としての機能を果たしたことになる。なお、入力値としてのアドレスが変われば、その入力値に対応する別の出力値が得られる。したがって所定の入力値に対して所望の論理回路と等価の動作をする。
以上は該MLUTに論理回路動作をさせる場合であったが、単なるメモリ回路としても使用できる。この場合にはまず、動作切り替え信号49をメモリ動作に選択し、メモリ動作時入力アドレス45からアドレスを順に選択し、アドレスデコーダ42を経てメモリブロック40のn個のSRAMセルを活性化させ、メモリ動作時データ入力44からn個のデータを書き込む。この操作を各アドレスに対して行い、書き込みの動作が完了する。
次にメモリブロック40からメモリ回路としてのデータを読み出す場合には動作切り替え信号49でメモリ動作を選択する。するとアドレス切り替え回路41からメモリ動作時入力アドレス45が取り込まれ、アドレスデコーダ42を介して選択された所望のアドレス51に相当するn個のSRAMセルのみが活性化され、メモリブロック40のデータ線52にn個のデータが取り出され、出力データ切り替え回路43を経て、メモリ動作時データ出力(n本)46に出力データとして取り出される。この操作により各入力アドレスに対するメモリセルの出力が得られ、一般的なメモリ回路としての機能を果たしていることが解かる。
なお、メモリ動作時データ入力44とメモリ動作時データ出力46は同時に使用されることはないので、双方向の入出力線として兼用されることがある。
以上、MLUTに論理回路としても、メモリ回路としてもどちらの機能を割りあてることもできる。
なお、メモリブロック40がSRAMで構成している場合には電源を一度遮断するとメモリのデータは消滅してしまうので、再度電源投入した場合はメモリブロック40にデータを再書き込みした後でなければ所望の回路動作はしない。
図5はMLUTの中の構成を示す図4とMLUTの近距離配線の接続関係を示す図1との関係を更に明らかにするための配線構成を示した回路ブロック図である。図5において、メモリブロック40と、メモリ動作時入力アドレス45はともに図4のメモリブロック40とメモリ動作時入力アドレス45に対応している。図5のメモリ動作時入出力データ4446は図4のメモリ動作時データ入力44とメモリ動作時データ出力46を双方向にして兼用したものに対応している。図5において2本の信号線を組み合わせたアドレス−データ対P0〜P6は図4において、論理動作時入力アドレス47と論理動作時データ出力48がそれぞれn=7本の場合であって、それぞれ1本ずつ別に分けて、入力アドレス線とデータ出力線の対として7組を再構成したものに相当している。なお、図5では図4におけるアドレス切り替え回路41、アドレスデコーダ42、出力データ切り替え回路43、及び動作切り替え信号49は表現上と理解の混乱を避けるために不図示としている。
(MLUTブロックについて)
図5における論理動作時入力アドレスと論理動作時データ出力を再構成したアドレス−データ対P0〜P6の内、P0〜P5までの対が図1におけるアドレス−データ対P0〜P5までに対応している。図1ではアドレス−データ対P0〜P5は1本の線で表しているが、図5に示すようにアドレス線とデータ線の対であって実際には2本で構成されている。図5における残されたアドレス−データ対P6は図1において図示していない離間配線用として使用される。図1において、MLUTM0〜M8は前述したそれぞれ前述したMLUTからなり、MLUTの中のメモリブロックに書きこまれたメモリデータにより様々な回路機能を持っている。これらのMLUTM0〜M8を近距離配線であるアドレス−データ対P0〜P5を用いて互いに接続し、アドレスが入力信号に相当し、データ線が出力信号に相当するので、各機能回路が組み合わされて更に複雑な回路が構成されていく。
なお、MLUTM4にはD型フリップフロップ11が特別に配置されている。このMLUTM4とD型フリップフロップ11との信号配線の接続は近距離配線には用いられないアドレス−データ対P6が使用される。このようにMLUTM4においてはD型フリップフロップ11との接続にアドレス−データ対P6を使用してしまうため、MLUTM4のみについては離間配線が用いられない。図1において、MLUTM0〜M3およびMLUTM5〜M8はD型フリップフロップが付随しない代わりに離間配線用端子を設け、図5の残されたアドレス−データ対P6を用いて離間配線を行い、相対的に遠くに配置された回路と信号のやりとりを行う。
図1においては、MLUTM0とMLUTM3はアドレス−データ対P0〜P5の出方が上下、逆の関係の配置になっている。他のMLUTについても図2に示すように2種類の型がある。図2において、M0に代表される第1種のMLUTのアドレス−データ対P1とP2は左方向に配置され、アドレス−データ対P3とP4は右方向に配置されている。それぞれ、横方向に位置するMLUTとの近距離配線として用いられる。また、アドレス−データ対P0は左下方向に位置し、アドレス−データ対P5は右下方向に位置し、それぞれ、下段の左側と右側に位置するMLUTとの近距離配線として用いられる。第1種のMLUTのアドレス−データ対の配置の構成は以上の通りである。
また、M3に代表される第2種のMLUTのアドレス−データ対P1とP2は右方向に配置され、アドレス−データ対P3とP4は左方向に配置されている。それぞれ、横方向に位置するMLUTとの近距離配線として用いられる。また、アドレス−データ対P0は右上方向に位置し、アドレス−データ対P5は左上方向に位置し、それぞれ、上段の右側と左側に位置するMLUTとの近距離配線として用いられる。第2種のMLUTのアドレス−データ対の配置の構成は以上の通りである。
したがって、M0に代表される第1種のMLUTとM3に代表される第2種のMLUTとでは近距離配線として用いられるアドレス−データ対の配置に関しては上下、および左右に関して対称形の構成となっているため、図1に示すように各MLUTが近接したMLUTとの間でアドレス−データ対を近距離配線として接続するには効率のよい構成となっている。このように図2に見られるアドレス−データ対の位置関係が左右および上下の関係で対称形をなす2種類のMLUTを一方向に交互に配置し、それに基づきアドレス−データ対による近距離配置配線を行ったものを交互配置配線と呼ぶことにする。
さて、図1では前記した2種類のMLUTからなる交互配置配線が効率よい配置と配線の例としてあげたが、図1ではMLUTのM0、M1、M2の縦方向にアドレス−データ対が配置されていない。したがって、縦方向にもアドレス−データ対を配置した様々な他のMLUTのレイアウトやアドレス−データ対の配置も考えられる。しかしながら、図1では不図示としているが、MLUTの中の構成を示した図5のように近距離配線に用いるアドレス−データ対P0〜P5以外にも、離間配線用に用いるアドレス−データ対P6やメモリ動作時入力アドレス45、そしてメモリ動作時入出力データ4446が実際には存在している。そして、これら図1では図示していない配線は図1において主として縦方向に配置されている。
したがって、近距離配線以外の縦方向に配置された前記離間配線用アドレス−データ対P6、メモリ動作時入力アドレス45、及びメモリ動作時入出力データ4446の存在を考慮すると必ずしも縦方向の近距離配線を用いることが総合的には効率よい配置と配線とは言えない。したがって縦方向に配置された前記近距離配線以外の配線の存在を考慮すると図1に示した前記交互配置配線が近距離配置配線として優れた構成であると言える。
なお、以上の交互配置配線において、MLUTの配置に関しては、トランジスタを含め各素子が構成されるレイアウトパターンから2種の左右上下対称のMLUTをレイアウトパターン上で配置する場合と、アドレス−データ対の近距離配線層を主とした配線層のみを2種の左右上下対称のMLUT配線を用いる場合の2通りがある。
(複数個のMLUTブロックについて)
図6は図1の9個のMULTからなるMLUTブロックを更に繰り返し配置した状態を表している。図6において、破線601で示した領域が図1におけるMLUTブロックをあらわしている。また、MLUT611、612やフリップフロップ621が破線601で示すMLUTの外側にも規則的に配置されている。
図6では簡明さのために、配線はアドレス−データ対による近距離配線のみを図示しており、離間配線やMLUTの制御線等は不図示としている。以上の複数個のMLUTブロックを組み合わせて所望の機能を有する回路を構成していく。該MLUTブロックを複数個設けることによって半導体装置を形成している。
なお、図1ではMLUTM0〜M8を整然とした格子状に配置した状態を示し、図6ではMLUTM0〜M8は菱形の頂点にほぼ位置するクラスター状に配置された状態を示しているが、図1では近距離配線の位置関係を見やすくする為に、また、図6ではD型フリップフロップの存在を表示しやすくする為にそれぞれ図示したものであり、実際のレイアウトパターンでは正方形や長方形の格子状でも菱形のクラスター状でも共に可能である。
(回路機能構成例)
図8に4ビット加算器がMLUTブロック群を用いて実現する例を示す。
(1ビット全加算回路の構成)
まず、図7(a)に1ビットの全加算回路としての真理値を表現した図を示す。図7において、Aは被演算数、Bは演算数、Cは前ビットからの桁上げ、Sは和の演算結果、Caは次ビットへの桁上げである。ここでは和の入力値である被演算数Aと演算数Bとの各組み合わせ、及び前ビットからの桁上げCの有無の組み合わせによって、演算結果Sと、次ビットへの桁上げCaがそれぞれどのようになるかを表している。
図7(b)は以上の各真理値の関係を実現する標準的な回路の例である。図7(b)は一般的によく知られた回路構成であるので詳細な説明は省略する。
さて、図4で示した構造の1個のMLUTにまず、メモリ動作時入力アドレス45に図7(a)の入力A、B、Cを割り当て、またメモリ動作時データ入力44に出力S、Caを割り当て、メモリ動作時入力アドレス45に入力A、B、Cの各組み合わせをそれぞれ入力し、そのときのアドレスに指定され活性化された2ビットのSRAMセルに、該組み合わせに対応する出力S、Caの各値をメモリ動作時データ入力44を通して前記活性化された2ビットのSRAMセルに書き込む。この書き込みによってMLUTは1ビットの全加算回路としての機能を持つことになる。
次に図4における論理時入力アドレス47から図7(a)の入力A、B、Cの任意の組み合わせを入力すれば、論理動作時データ出力48から全加算回路としての出力S、Caの各値が出力される。なお、論理時入力アドレス47と論理動作時データ出力48は図1、図5から解かるようにアドレス−データ対P0〜P5の6本のなかに含まれていて、近距離配線として隣接した複数のMLUTと入出力信号のやり取りが可能である。
(MLUTを用いた4ビット加算回路)
図8は4ビットの加算回路をMLUTブロック群のなかに構成した回路ブロック図である。図8において、MLA1、MLA2、MLA3、MLA4は前記した方法によりそれぞれ1ビットの全加算回路の機能をMLUTに持たせたものである。また、MLS1、MLS2、MLS3、MLS4はMLUTに入力値と出力値が同一の値となる機能をそれぞれに持たせたものであり、スイッチのオン(ON)状態に対応する機能を持っている。
全加算回路機能を持ったMLA1には1ビット目の被演算値と演算値に相当する入力信号A1、B1を入力アドレス−データ対の入力アドレスから入力する。また、1ビット目の演算結果は入力アドレス−データ対の出力データからS1として出力される。
全加算回路機能を持ったMLA2には2ビット目の被演算値と演算値に相当する入力信号A2、B2を入力アドレス−データ対の入力アドレスから入力する。また、2ビット目の演算結果は入力アドレス−データ対の出力データからS2として出力される。
全加算回路機能を持ったMLA3には3ビット目の被演算値と演算値に相当する入力信号A3、B3を入力アドレス−データ対の入力アドレスから入力する。また、3ビット目の演算結果は入力アドレス−データ対の出力データからS3として出力される。
全加算回路機能を持ったMLA4には4ビット目の被演算値と演算値に相当する入力信号A4、B4を入力アドレス−データ対の入力アドレスから入力する。また、4ビット目の演算結果は入力アドレス−データ対の出力データからS4として出力される。
配線スイッチ機能を持つMLS1は前記全加算回路MLA1から次ビットへの桁上げであるCaを入力し、出力として前記全加算回路MLA2の前ビットからの桁上げであるCに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つMLS2は前記全加算回路MLA2から次ビットへの桁上げであるCaを入力し、出力として前記全加算回路MLA3の前ビットからの桁上げであるCに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つMLS3は前記全加算回路MLA3から次ビットへの桁上げであるCaを入力し、出力として前記全加算回路MLA4の前ビットからの桁上げであるCに入力アドレス−データ対を通して接続する。
配線スイッチ機能を持つMLS4は前記全加算回路MLA4から次ビットへの桁上げであるCaを入力し、4ビット加算器としての桁上げとして出力している。
以上により入力信号として4ビットからなる(A1、A2、A3、A4)の被演算値と4ビットからなる(B1、B2、B3、B4)の演算値を入力信号として、演算結果である(S1、S2、S3、S4)と桁上げ信号としての桁上げの出力信号Caが得られる回路構成となっている。
(フリップフロップを用いる回路)
以上においては図7における1ビット全加算回路、図8においては4ビット加算回路への適用例を示したが、いずれもそのときの入力信号で一意的に決定されるいわゆる組み合わせ回路である。これに対し、同一の入力信号であっても事前の状態によって出力結果が異なる回路は順序回路と呼ばれている。順序回路には一般的に前状態を記憶したラッチ回路、もしくはフリップフロップ回路が必要となる。
また、組み合わせ回路であっても様々な入力があり、機能回路への入力に際して、各信号間で遅延や到達タイミングにバラツキがあると過渡的に誤動作や不適切な出力信号を出すことがある。このような場合にはフリップフロップ等を用いて信号の同期をとることが有力な手法である。
本発明では図1のM4に付随したD型フリップフロップを例に示している。また、図14は図1におけるMULTM4とD型フリップフロップの接続関係を更に詳しく示した回路ブロック図である。図14において、MLUT1401とD型フリップフロップ1402の間は図5におけるアドレス−データ対P6を用いる。アドレス−データ対P6は近距離配線として用いられるアドレス−データ対P0〜P5とは異なり、D型フリップフロップとの信号とのやりとりのために残していたアドレス−データ対である。図14ではMLUT1401のアドレス−データ対P6はD型フリップフロップ1402のD端子1411とQ端子1412に接続されている。また、D型フリップフロップ1402のCL信号端子1413には同期をとるための基準となる信号が選択され、接続されることになる。
図15(a)、(b)は各MLUTとD型フリップフロップの配置関係を示したレイアウトブロック図である。図15(a)においては複数個のMLUT1561〜1563等が配列された状態と、複数個のD型フリップフロップ群1521が配置されている。D型フリップフロップをMLUT群の外側に一括して多数配置した状態を表している。また、図15(b)はD型フリップフロップ1512、1513を図1や図6に示した如く、MLUT群(1552〜1553等)のなかに広く均一的に配置した状態を示している。
図15(a)はD型フリップフロップをMLUTがそれぞれ用いる場合に、離れた位置関係となるので配線の無駄や混雑が起きて適切な配置でない場合が多い。それに対し、図15(b)では各MLUTから比較的に近くにD型フリップフロップが存在しているので効率的に利用できる。これからも図1によるMLUTブロックの構成が優れていることが解かる。
(フリップフロップの回路構成について)
図9は図1、図6の中に示したD型フリップフロップの具体的回路構成の第1例を示す回路図である。なお、図9に示す回路は1ビットのマスタ型のD型フリップフロップである。以下に構成と動作について記す。
図9において、D型フリップフロップはインバータ回路904、902、及びクロックドゲートインバータ回路901、903から構成されている。なお、クロックドゲートインバータ回路とはクロック信号が1か0かによって出力信号を出すか否かが決定されるインバータ回路(反転回路)である。
さて、インバータ回路904の入力端子には動作タイミングを制御するクロック信号(CL)が入力され、出力端子からはクロック信号の反転信号が出力される。クロックドゲートインバータ回路901の入力端子には制御すべきデータ信号(D)905が入力され、出力端子にはデータ信号の反転信号が出力させる。ただし、クロック信号(CL)(端子906)によって出力信号を出力するか否か制御されている。インバータ回路902の入力端子はクロックドゲートインバータ回路901の出力端子に接続され、インバータ回路902の出力端子はD型フリップフロップ端子としての出力端子(Q)907に接続されている。また、インバータ回路902の出力端子はクロックドゲートインバータ回路903の入力端子に接続されている。クロックドゲートインバータ回路903の出力端子はインバータ回路902の入力端子に接続されている。ただし、クロックドゲートインバータ回路903の出力はインバータ回路904の出力信号で制御されるように接続されているので、クロック信号(CL)の反転信号に制御される。
さて、信号を2値として正信号と負信号をそれぞれ1、0で表現したとすると、端子906から入力されるクロック信号(CL)が1である場合にはD型フリップフロップの入力信号端子905のデータ信号(D)がクロックドゲートインバータ回路901で反転され、更にインバータ回路902で反転されD型フリップフロップの出力信号端子907に直ちにデータ信号(D)と同一の信号が出力される。なお、このときクロックドゲートインバータ回路903の入力端子には出力信号端子907のデータ信号(D)と同一の信号の信号が入力されているが、クロック信号(CL)の反転信号であるインバータ回路904の出力信号により制御されているので、クロックドゲートインバータ回路903の出力端子には出力信号が出力されない(1、0のいずれでもなく高インピーダンス状態)。
次に端子906から入力されるクロック信号(CL)が0に変わるとクロックドゲートインバータ回路901の出力端子には出力信号がでない。一方、クロックドゲートインバータ回路903の制御信号は1となるので、出力信号端子907のデータ信号(D)の反転信号がクロックドゲートインバータ回路903の出力端子に出力される。これを受けてインバータ回路902の出力端子はデータ信号(D)の反転信号の反転信号、つまりデータ信号(D)が出力され、かつクロックドゲートインバータ回路903の入力端子に接続されているので、インバータ回路902とクロックドゲートインバータ回路903はラッチ回路を構成していてクロック信号(CL)が0の間は前の状態のデータ信号(D)を記憶して保持している。このクロック信号(CL)が0の間はD型フリップフロップの入力信号端子905のデータが如何に変ろうと前の状態のデータ信号(D)を保持して出力している。このD型フリップフロップはクロック信号(CL)が1になった後に新たなデータ信号(D)に応じて新たな出力信号を出力する。それまでは前の状態のデータ信号(D)を記憶し、出力し続ける。以上が図9の1ビットのマスタ型のD型フリップフロップの基本的動作である。
図11はD型フリップフロップの具体的回路構成の第2例を示す回路図である。なお、図11に示す回路は2ビットのマスタ−スレイブ型のD型フリップフロップである。
図11において、インバータ回路904、902、及びクロックドゲートインバータ回路901、903から構成されているマスタ部の1ビットのD型フリップフロップと、インバータ回路1104、1102、及びクロックドゲートインバータ回路1101、1103から構成されているスレイブ部の1ビットのD型フリップフロップと、からなっている。図11のマスタ部のインバータ回路904、902、及びクロックドゲートインバータ回路901、903から構成は、図9のインバータ回路904、902、及びクロックドゲートインバータ回路901、903とまったく同じ構成であり、対応する素子の各番号も同一である。したがって、前記したマスタ部は1ビットのD型フリップフロップとしての機能を有している。
また、図11のスレイブ部のインバータ回路1104、1102、及びクロックドゲートインバータ回路1101、1103の構成は、図11のマスタ部のインバータ回路904、902、及びクロックドゲートインバータ回路901、903とまったく同じ構成であり、各番号の下一桁がそれぞれ順に対応している。したがって、図11のインバータ回路1104、1102、及びクロックドゲートインバータ回路1101、1103からなるスレイブ部も1ビットのD型フリップフロップとしての機能を有している。
ただし、クロックドゲートインバータ回路1101、1103に供給されるクロック信号CLとその反転信号は、クロックドゲートインバータ回路901、903に供給されるクロック信号CLとその反転信号とはそれぞれ逆の位相関係となっている。また、マスタ部の出力部であるインバータ902の出力端子Mは、スレイブ部の入力端子であるクロックドゲートインバータ回路1101に入力端子に接続されている。なお、スレイブ部の入力端子に入力したマスタ部の出力端子Mはスレイブ部の1ビットのD型フリップフロップを経て、インバータ回路1102の出力信号にスレイブ部の出力信号Qとして出力されている。
したがって、図11におけるマスタ部の1ビットのD型フリップフロップとスレイブ部の1ビットのD型フリップフロップとでは合体され、かつ動作の位相が反転しているので、2ビットのマスタ−スレイブ型のD型フリップフロップとして動作する。
図12はD型フリップフロップの具体的回路構成の第3例を示す回路図である。なお、図12に示す回路は2ビットのマスタ−スレイブ型のD型フリップフロップである。
図12において、マスタ部のD型フリップフロップはインバータ回路1222、1223、及びトランスミッションゲート回路1224、1225から構成されている。なお、トランスミッションゲート回路とはN型MOSFETとP型MOSFETが並列に接続され、それぞれのゲート電極は反対の位相の信号をかけてオン/オフ(ON/OFF)の制御をする開閉器の機能を持っている。なお、MOSFETとは電界効果型トランジスタであって、Metal-Oxide-Semiconductor Field-Effect Transistor の略である。マスタ部のD型フリップフロップにおいて、インバータ回路1222と1223はトランスミッションゲート回路1225を介してラッチ回路を構成している。また、トランスミッションゲート回路1224、1225を介して、データ転送(図12においてDからMの反転)機能と、データ(Mの反転)のラッチ機能を有している。
また、スレイブ部のD型フリップフロップはインバータ回路1232、1233、及びトランスミッションゲート回路1234、1235から構成されている。
スレイブ部のD型フリップフロップにおいて、インバータ回路1232と1233はトランスミッションゲート回路1235を介してラッチ回路を構成している。また、トランスミッションゲート回路1234、1235を介して、データ転送(図12においてMの反転からQ)機能と、データ(Mの反転)のラッチ機能を有している。
また、図12において、インバータ回路1204と1205はそれぞれCLの反転信号と二重の反転信号(つまり正転信号)を作り出し、トランスミッションゲート回路1224、1225、1234、1235に供給している。
以上から、図12において、前記したマスタ部のD型フリップフロップとスレイブ部のD型フリップフロップは互いに逆の位相の制御信号CLで制御されているので、図12の回路は2ビットのマスタ−スレイブ型のD型フリップフロップとして動作する。
図10は図9とは異なる構成のD型フリップフロップの回路図である。なお、図10の回路は1ビットのマスタ型のD型フリップフロップである。
図10において、NAND回路1002、1003の入出力線を互いに襷がけの構成にしたラッチ回路と、NAND回路1001、1004とインバータ回路1005を組み合わせ、D型フリップフロップとしては入力データ信号D、制御クロック信号CL、出力信号Q、及びQの反転出力信号を有するものである。図10の回路構成はよく知られているので詳細な説明は省略する。
図13は図10の1ビットのマスタ型のD型フリップフロップを2個重ねて2ビットのマスタ−スレイブ型のフリップフロップとした構成の回路図である。
図13において、NAND回路1001、1002、1003、1004、インバータ回路1005からなる回路は図10の回路とまったく同一である。図13において、NAND回路1301、1302、1303、1304の構成はNAND回路1001、1002、1003、1004にそれぞれ対応して、基本的には同一の機能を有している。詳細な説明は略すが、図13は2ビットのマスタ−スレイブ型のフリップフロップとなっている。
以上、図9から図13において1ビットのマスタ型のD型フリップフロップや2ビットのマスタ−スレイブ型のD型フリップフロップの様々な構成例を示した。したがってD型フリップフロップと称しても様々な機能や構成があることが解かる。用途に応じて最適なD型フリップフロップの構成を選択すればよい。
また、フリップフロップはD型フリップフロップのみならず、RS型フリップフロップ、JK型フリップフロップ、T型フリップフロップ等、様々にある。これらのフリップフロップの機能と構成はよく知られているので詳細な説明は省略する。
ただし、必要に応じてMLUTブロックに搭載するフリップフロップは様々に選択可能である。
(離間配線について)
次に、MLUT間の離間配線について説明する。なお、離間配線と近距離配線の違いについてはすでに簡単に記したが、解かりやすさのために一部、重複するものの以下に詳しく記載する。
さて、図1、図6等における配線は近距離配線についてのみ図示し、離間配線については不図示であった。以下においては離間配線について述べる。
さて、離間配線と近距離配線の定義を以下に再掲する。
同一平面上で互いに隣接したMLUT間で配線することを近距離配線と呼ぶ。
同一平面上で互いに隣接していないMLUT間、もしくはMLUTブロック間で配線することを離間配線と呼ぶ。
また、近距離配線については図5のアドレス−データ対のP0〜P5を用いる。
また、離間配線については図5のアドレス−データ対のP6を用いる。
なお、図1において、MLUTM4に関してはアドレス−データ対P6はD型フリップフロップ用に用いたが、MLUTM0〜M3、及びMLUTM5〜M8のアドレス−データ対P6はすべて離間配線に用いる。ただし、図1に図示してある配線はすべてアドレス−データ対のP0〜P5による近距離配線のみで、アドレス−データ対P6による離間配線は不図示であった。
次にMLUTM0〜M8によって構成されるMLUTブロックでアドレス−データ対P0〜P5による近距離配線は不図示で、アドレス−データ対P6による離間配線のみを図示したのが図16の配線図である。
図16において、MLUTM0〜M8の9個のMLUTで構成されている。また、MLUTM4のみにはD型フリップフロップが付随している。ただし、D型フリップフロップは不図示としている。前記したようにMLUTM4にはD型フリップフロップが付随しているのでアドレス−データ対P6はフリップフロップ用に使われて離間配線は使用できない。MLUTM0〜M3とMLUTM5〜M8の各アドレス−データ対P6がMLUTブロックの外部へ離間配線が伸びている様子を示している。また、前記したようにMLUTM4のみがD型フリップフロップを配置した点と、離間配線は使用しない点とが他のMLUTM0〜M3及びMLUTM5〜M8と異なっているのでM4を四角で囲って表現し、他のM0〜M3及びM5〜M8が丸で囲っている表現と区別をしている。
図17は離間配線の結線の2種類のパターンを示す配線図である。MLUTブロックにおいて、離間配線の接続の仕方は様々な可能性があるが、図17においては2種類の離間配線パターンを示している。図17(a)はMLUTM0,M5におけるアドレス−データ対P6の離間配線は下方向に配線され、MLUTM3,M8におけるアドレス−データ対P6の離間配線は上方向に配線されている。この図17(a)を離間配線パターン1と呼ぶことにする。また、図17(b)はMLUTM0,M5におけるアドレス−データ対P6の離間配線は上方向に配線され、MLUTM3,M8におけるアドレス−データ対P6の離間配線は下方向に配線されている。この図17(b)を離間配線パターン2と呼ぶことにする。
さて、図17(a),(b)の離間配線パターン1と離間配線パターン2をそれぞれに持つ2個のMLUTブロックを上下関係に配置すると、離間配線パターン1の図17(a)のMLUTM0,M5におけるアドレス−データ対P6の離間配線は下方向に配線されており、かつ離間配線パターン2の図17(b)のMLUTM0,M5におけるアドレス−データ対P6の離間配線は上方向に配線されているので、離間配線パターン1と離間配線パターン2をそれぞれに持つ2個のMLUTブロックのMLUTM0,M5は位置関係において適合した配線が接続される。
また、図17(a),(b)の離間配線パターン1と離間配線パターン2をそれぞれに持つ2個のMLUTブロックを前記した場合と逆に離間配線パターン2を上に、離間配線パターン1を下の位置関係に配置すると、離間配線パターン2の図17(b)のMLUTM3,M8におけるアドレス−データ対P6の離間配線は下方向に配線されており、かつ離間配線パターン1の図17(a)のMLUTM3,M8におけるアドレス−データ対P6の離間配線は上方向に配線されているので、離間配線パターン2と離間配線パターン1をそれぞれに持つ2個のMLUTブロックのMLUTM3,M8は位置関係において適合した配線が接続される。
なお、前記離間配線パターン1と離間配線パターン2においてはMLUTM1,M2,M6,M7に関しては同型の離間配線パターンを有している。前記離間配線パターン1と離間配線パターン2の2個のMLUTブロックを左右に配置した場合でも図17(a),(b)の場合には支障なく適合した配線が接続される。したがって同型の離間配線パターンを組み合わせた場合でも、位置関係において適合した配線を接続することもできる。
図18は図17(a),(b)で示した離間配線パターン1と離間配線パターン2の組み合わせでMLUTブロックをタイル状に配置し、各MLUTブロックの各MLUTを介した離間配線の一部を図示した配線図である。なお、上下、左右の各MLUTブロック間の各MLUTにおける離間配線の配置の様子を示すのが目的であるので、理解の妨げになりかねない他の位置にあるMLUTブロックや離間配線が重なり表示が煩雑となりかねない他のMULTの離間配線は意図的に不図示としている。
図18において、MLUTブロック1801は前記した離間配線パターン1で構成され、MLUTブロック1802は離間配線パターン2で構成されている。MLUTブロック1801におけるMLUTM0,M5における離間配線と、MLUTブロック1802におけるMLUTM0,M5における離間配線とが上下の方向の配線において、位置関係において適合した配線接続が行われていることが解かる。
また、図18において、MLUTブロック1803は前記した離間配線パターン2で構成されている。前記したようにMLUTブロック1801は離間配線パターン1で構成されている。したがって、MLUTブロック1803におけるMLUTM3,M8における下方向の離間配線と、MLUTブロック1801におけるMLUTM3,M8における上方向の離間配線とが上下の方向の配線において、位置関係において適合した配線接続が行われていることが解かる。
図19は離間配線を含めたMLUTブロックを平面上において規則的に配置した場合のレイアウトパターンの効率的な組み合わせを示すレイアウトのブロック配置図である。
図19は図18と形状としては同一のMLUTブロックを並べている。ただし、レイアウトパターンを自動的に繰り返して効率よく配置する場合には図18のMLUTブロックの組み合わせでは複数の種類の離間配線パターンが含まれているために煩雑な場合があり、レイアウト設計に多大な時間を要したり、あるいはミスを起こしかねない。
図19においては同一パターンによる繰り返しによる効率的なMLUTブロックの組み合わせを示すものである。図19におけるMLUTブロック1801、1802、1803は図18におけるMLUTブロック1801、1802、1803にそのまま対応している。図19においては破線1910で示したMLUTブロック1801、1802は含むが、MLUTブロック1803は含まない4個×4個からなるブロック単位で考える。
このとき、MLUTブロック1802は離間配線パターン2であり、MLUTブロック1803も離間配線パターン2であることを考慮すると破線1901の横の破線の上下の関係4個×4個のMLUTブロックの間で同一パターンが繰り返されており、かつ破線1901において、横方向の離間配線パターンは各MLUTブロック間で同一であるので、図19の破線で示した4個×4個のMLUTブロックを基本単位として、平面上において規則的に配置していけば離間配線が位置関係において適合した配線接続がなされた状態で自動的に全体のMLUTブロックが配列された構造が出来上がる。
(トーラス配線、及びトーラス網)
次に離間配線において信号伝達特性をよくするための手法であるトーラス配線について述べる。同一構成のセルを平面上に多数並べる場合において、同一信号線を各セルが共有する場合がある。図22は各セル間を1本の信号線で単純に接続した配線図である。このとき、図22に示すように各セル間を一本の信号線で接続した場合には、端点に位置する0番のセルと5番のセルは一本の信号線しか受けていないのに対し、1番のセルから4番のセルは2本の信号線を受けている。したがって、端点に位置する0番および5番のセルと、中に位置する1番から4番のセルとの間には少なくとも受信した信号線の数だけにおいても対称性を失っているので、各セル間での特性に差がでることがある。この場合には端点の特異性が生じたことになる。
図23は端点における信号線の数の特異性を少しでも解消する意図で、図17の状態から端点の0番のセルと5番のセル間を追加した信号線で接続した配線図である。この方法により、各セルで受信する信号線の本数は解消したことになる。しかしながら、図23において、端点の0番のセルと5番のセル間を直接接続する信号線の長さは他のセル間での接続線の長さに比較すると異常に長い。したがって、電気的には寄生静電容量やノイズの影響の受け易さ等において特性差が生じ、各セル間での対称性は確保できていない。
図24は端点における信号線の数の特異性を更に解消しようと試みた配線図である。図24において、左端の0番のセルはセルを一つ跳ばした位置の2番のセルに信号線を接続し、2番のセルはセルを一つ跳ばした位置の4番のセルに信号線を接続している。また右端の5番のセルはセルを一つ跳ばした位置の3番のセルに信号線を接続している。また3番のセルはセルを一つ跳ばした位置の1番のセルに信号線を接続している。なお4番のセルから5番のセルへの接続、および1番のセルから0番のセルへの接続は隣同士であるが、これは例外であって原則的に一つ跳ばしたセルに接続する方法をとっている。すると最大の信号線の間隔がセルを一つ跳ばした位置の距離にすべての信号線が収まる。したがって、受信した信号線の数、および信号線の接続間隔がすべてのセル間でほぼ等しくなり、各セルの電気的特性が均一化され、制御しやすくなるとともに安定した性能を確保できることとなる。このような一つ跳ばししていきながらループ状に配線し、均一で安定した性能を確保する配線手法を一般的にトーラス配線という。
図24では1本のトーラス配線を示したが、アドレス線などにおいて複数本を行う場合を図示したものが図21である。ここでは横方向において、1信号が2本の対でループ状に構成され、かつ一つ跳ばしして行きながらトーラス構造となっている。またこれらの構造の複数の信号対が配列されている。また、横方向のみならず、縦方向においても1信号が2本の対でループ状に構成され、かつ一つ跳ばししていくトーラス構造となっている。そして、これらの構造の複数の信号対が配列されている。したがって図21は横方向、および縦方向に複数の信号線がトーラス構造の配置が行われており、一般的にトーラス網と呼ばれている構造である。
図18は前記したように本発明のMLUT間、及びMLUTブロック間での離間配線を示したものであるが、トーラス構造を一部に用いた例でもある。図18において、MLUT、およびMLUTブロックはそれぞれ基本単位を構成しているので、MLUT、及びMLUTブロックをM(Mは1以上の整数)個を跳ばして配線することにより、離間配線をトーラス構造で実現している。なお、図18においてはMLUTを6個跳ばししていく構成とも、MLUTブロックを1個跳ばししていく構成ともとれる。どちらでも解釈可能である。
このようにMLUT単位、MLUTブロック単位でトーラス構造あるいはトーラス網を構成することにより、それぞれ長さの異なる距離に対しても、各々特性が均一で安定した最適な離間配線を本発明は提供できる。
また、以上の説明においてはMLUT、もしくはMLUTブロックを1個跳ばす例を示したが、2個以上を跳ばすことも可能である。跳ばす個数に規則性を持たせれば均一で、安定した特性の離間配線が得られる。
(トーラス配線による離間配線例)
さて、図20にMLUTブロックを平面上において規則的に配置した本発明のなかに含まれる離間配線にトーラス配線を適用した配線図の例を示す。図20において、MLUTブロック2001、2002、2003、2004、2005、2006は離間配線として図17(a)、(b)の離間配線パターン1もしくは離間配線パターン2を持っている。したがって、前記したトーラス配線の考え方に基づき離間配線が行える。
図20においては平面上で規則的に配置されたMLUTブロック2001、2002、2003、2004、2005、2006において、MLUTブロック2002とMLUTブロック2004の間でMLUTブロック2003を1個跳ばして離間配線2R24が配線されている。また、MLUTブロック2004とMLUTブロック2006の間でMLUTブロック2005を1個跳ばして離間配線2R46が配線されている。以上はMLUTブロック2002、2003、2004、2005、2006に対し右側を配線したとして図示されている。
また、MLUTブロック2001とMLUTブロック2003の間でMLUTブロック2002を1個跳ばして離間配線2L13が配線されている。また、MLUTブロック2003とMLUTブロック2005の間でMLUTブロック2004を1個跳ばして離間配線2L35が配線されている。以上はMLUTブロック2001、2002、2003、2004、2005に対し左側を配線したと図示されている。
以上のようにMLUTブロック2001、2002、2003、2004、2005、2006に対し、MLUTブロックを1個ずつ跳ばして右側を離間配線2R24と2R46が配線され、また、MLUTブロックを1個ずつ跳ばして左側を離間配線2L13と2L35が配線されている。以下、すべての領域についての説明は省略するが、以上により前記トーラス配線がMLUTブロックを平面上において規則的に配置された状態において縦方向の離間配線に適用できることが解かる。また、左右方向においても前記トーラス配線がMLUTブロックを平面上において規則的に配置された状態において離間配線に適用できることが解かる。したがって、縦方向の離間配線にも、左右方向の離間配線にもトーラス配線が適用できるので、図20のMLUTブロック群はトーラス配線網が構成されていることが解かる。
(その他の実施形態)
本発明は前記の実施形態に限定されるものではない。以下に例をあげる。
本発明を構成するMLUTブロックは9個のMLUTを組み合わせた構成で示したが、一般にK個×L個(K、Lは1以上の整数)の構成が可能である。
また、該K個×L個の構成の場合にフリップフロップを付随するMLUTはMLUTブロック内において、複数個置くことができる。
また、K個×L個(K、Lは1以上の正の整数)の構成を基本とするが、その一部の升目においてMLUTの代わりに他の回路要素を配置することも可能である。
また、以上において、MLUTもしくはMLUTブロックは平面上に配列する例を示したが、チップを積層する形態をとれば3次元的に実装してもよい。
また、図1、図2、図5においてはアドレス−データ対が7本からなり、そのうちの6本(6対)が近距離配線に、また1本(1対)が離間配線に用いられる例を示したが、図3に示すようにアドレス−データ対をP0〜P7の計が8本で構成してもよい。また、それ以上の本数でもよい。このP0〜P7の計が8本の場合には図4におけるメモリブロックにおけるメモリ容量は増加するが、図1における近距離配線のアドレス−データ対を1本増やすこともできるし、また図1には図示されていない離間配線を更に1対増やすこともできる。
また、前記したようにMLUTを組み合わせる構成が3×3以外の、一般にK個×L個(K、Lは1以上の正の整数)の構成となった場合にはアドレス−データ対の本数は実態に合わせて適切な本数が前記した本数以外に存在する。
また、以上において、図4に示したようにMLUTに含まれるメモリブロック40はSRAMで説明したが、不揮発性メモリで構成してもよい。メモリブロック40が不揮発性メモリで構成され、図4のMLUTが論理回路機能を持たされていた場合には電源が一度遮断され、再度電源投入した場合でもメモリが不揮発性であるので、電源投入後から直ちに設定された回路機能動作を開始するという効果がある。また、同様にメモリが不揮発性であればメモリ回路として使用していた場合にも電源投入後から直ちに使用できるという効果がある。ここで、不揮発性メモリとしてはEEPROM(Erasable Programmable Read Only Memory)(FLASH型を含む )、FeRAM(Ferroelectric Random Access Memory)、MRAM(Magneto-resistive Random Access Memory)等がある。
また、以上において、MLUTは図4に示した構成を例示したが、必ずしも図4の構成とは限らない。メモリブロックの構成をn×(2のn乗)の構成にしたが、他のメモリブロックの構成にしてもよいし、アドレス線やデータ線の共有化も場合によっては可能である。
また以上において、図1、図6に存在するフリップフロップは1個からなる場合について述べてきたが、フリップフロップは複数個搭載する場合もある。フリップフロップを複数個搭載すると、順序回路として用いる場合は前状態の状態数を数多く増やせるので複雑な順序回路を実現できる。
また、制御信号による同期をとるためにフリップフロップを用いる場合には2相のクロック信号や異なる複数の制御信号による同期や制御が可能となるのでより高機能な回路を構成することが可能となる。
また、以上において、図1、図6に存在するフリップフロップはD型フリップフロップで説明し、他のフリップフロップの場合として、RS型、JK型、T型のフリップフロップの例をあげてきたが、必ずしも純然たるフリップフロップのみならず他の回路要素も有効となる場合がある。例えばレジスターやカウンターであってもよい。レジスターが搭載してあれば、図8で例とした4ビットの加算回路のように下の桁からの桁上げを待たずに各桁が並列的にほぼ同時に計算を行うパイプライン型の加算器のように、より高速、高機能な回路を搭載することも可能となる。
また、図17(a),(b)において、上下方向の配線において2種類の離間配線パターン1と離間配線パターン2を記したが、左右方向の配線についても2種類の離間配線パターンは存在する。したがって、上下方向で2種類、左右方向で2種類あるので、組み合わせせれば最低でも4種類の離間配線パターンが存在する。このような他の離間配線パターンを組み合わせて用いてもよい。
また、離間配線にトーラス配線を適用する例を示し、トーラス配線の場合には端点における特異性の影響が電気的特性のバラツキを相殺する一つの方法であることを前記した。しかし、二次元、三次元の平面、曲面を考慮するとトーラス以外のトポロジー(位相幾何構造)を持つものは数多く存在する。これらの他のトポロジーを擬似的に構成することは多層配線を用いれば可能である。例えば球面やハイパーキューブ等に相当する擬似的構造は前記した端点における特異性の消去のみならず、製造過程の空間の位置に由来するバラツキや、位置によって差異があるノイズ等を相殺するような構造を持たせる可能性がある。
本発明は随時、機能変更が可能であるプログラマブルなLSIであり、かつ従来のFPGAに比較して、安価で、性能に安定性がある。また、初期のMPLDに比較し、安価であるとともに、同期回路や順序回路を構成しやすくし、高機能と高性能となっている。したがって、コストパフォーマンスのよいプログラマブルLSIとして、多品種少量生産の機種や、機能変更が起こりうる機種や、新製品の開発現場にプログラマブルLSIとして、従来のFPGA等に置き換わり、広く使用されていく可能性がある。
M0〜M8,611〜612,1401,1551〜1553,1561〜1563 MLUT
P0〜P6 アドレス−データ対による近距離配線
11,621,1402,1551 D型フリップフロップ
40 SRAMからなるメモリブロック
41 アドレス切り替え回路
42 アドレスデコーダ
43 出力データ切り替え回路
44 メモリ動作時データ入力
45 メモリ動作時入力アドレス
46 メモリ動作時データ出力
47 論理動作時入力アドレス
48 論理動作時データ出力
49 動作切り替え信号
51 アドレス線データ入力
52 データ出力
4446 メモリ動作時データ入出力
601,1801〜1803,2001〜2006 MLUTブロック
MLA1〜MLA4 MLUTから構成された1ビット加算器
MLS1〜MLS4 MLUTから構成されたスイッチ
1521 複数個のD型フリップフロップ群
2L13,2L35,2R24,2R46 離間配線

Claims (8)

  1. メモリと、アドレス線とデータ線を対にして配置配線した入出力信号線と、を有するMLUTがN(Nは1以上の整数)個からなるMLUTブロックを基本単位とし、該基本単位のMLUTブロックが複数個、配列されており、かつ前記MLUTブロックにフリップフロップが配置されていることを特徴とする半導体装置。
  2. 請求項1において、
    前記フリップフロップがD型フリップフロップであることを特徴とする半導体装置。
  3. 請求項1または請求項2において、
    前記フリップフロップが複数個からなることを特徴とする半導体装置。
  4. 請求項1において、
    前記メモリがSRAMであることを特徴とする半導体装置。
  5. 請求項1において、
    前記メモリが不揮発性メモリであることを特徴とする半導体装置。
  6. 請求項1または請求項2において、
    前記MLUT間のアドレス線とデータ線を対にした入出力信号配線の引き出し方、及び配置が前記MLUT間で対称形に構成された交互配置配線であることを特徴とする半導体装置。
  7. 請求項1、2、3のいずれか、もしくは請求項6のいずれかにおいて、
    前記MLUT間、もしくはMLUTブロック間の信号接続に、同一平面上で互いに隣接していないMLUT間、もしくはMLUTブロック間を接続するアドレス線とデータ線の対による離間配線を有していることを特徴とする半導体装置。
  8. 請求項7において、
    前記離間配線にトーラス構造を含むことを特徴とする半導体装置。

JP2009083786A 2009-03-30 2009-03-30 半導体装置 Expired - Fee Related JP5140029B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2009083786A JP5140029B2 (ja) 2009-03-30 2009-03-30 半導体装置
CN201080013413.3A CN102369668B (zh) 2009-03-30 2010-03-24 半导体装置
US13/255,846 US8283945B2 (en) 2009-03-30 2010-03-24 Semiconductor device
PCT/JP2010/055029 WO2010113713A1 (ja) 2009-03-30 2010-03-24 半導体装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009083786A JP5140029B2 (ja) 2009-03-30 2009-03-30 半導体装置

Publications (3)

Publication Number Publication Date
JP2010239325A true JP2010239325A (ja) 2010-10-21
JP2010239325A5 JP2010239325A5 (ja) 2011-12-15
JP5140029B2 JP5140029B2 (ja) 2013-02-06

Family

ID=42828008

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009083786A Expired - Fee Related JP5140029B2 (ja) 2009-03-30 2009-03-30 半導体装置

Country Status (4)

Country Link
US (1) US8283945B2 (ja)
JP (1) JP5140029B2 (ja)
CN (1) CN102369668B (ja)
WO (1) WO2010113713A1 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014163099A2 (ja) * 2013-04-02 2014-10-09 太陽誘電株式会社 再構成可能な論理デバイス
US9177092B2 (en) 2012-04-09 2015-11-03 Taiyo Yuden Co., Ltd. Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
US9214209B2 (en) 2010-06-24 2015-12-15 Taiyo Yuden Co., Ltd. Semiconductor device
US9350357B2 (en) 2012-10-28 2016-05-24 Taiyo Yuden Co., Ltd. Reconfigurable semiconductor device
US9425798B2 (en) 2012-04-11 2016-08-23 Taiyo Yuden Co., Ltd. Reconfigurable semiconductor device
US9514259B2 (en) 2012-11-20 2016-12-06 Taiyo Yuden Co., Ltd. Logic configuration method for reconfigurable semiconductor device
US9729154B2 (en) 2013-09-16 2017-08-08 Taiyo Yuden Co., Ltd. Reconfigurable logic device configured as a logic element or a connection element

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9762865B2 (en) * 2013-03-15 2017-09-12 James Carey Video identification and analytical recognition system
US9423452B2 (en) 2013-12-03 2016-08-23 Taiwan Semiconductor Manufacturing Company, Ltd. Contactless signal testing
EP3211795A4 (en) * 2014-10-22 2018-10-03 Taiyo Yuden Co., Ltd. Reconfigurable device
JP6390683B2 (ja) * 2016-09-28 2018-09-19 ミツミ電機株式会社 半導体集積回路

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0220923A (ja) * 1988-07-08 1990-01-24 Fujitsu Ltd プログラマブル・ロジック・デバイス
JPH11238850A (ja) * 1998-02-19 1999-08-31 Toshiba Corp 半導体集積回路
WO2007060738A1 (ja) * 2005-11-28 2007-05-31 Taiyo Yuden Co., Ltd. 半導体装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3471628B2 (ja) 1998-05-12 2003-12-02 日本電信電話株式会社 書き換え可能な論理回路およびラッチ回路
US6150838A (en) * 1999-02-25 2000-11-21 Xilinx, Inc. FPGA configurable logic block with multi-purpose logic/memory circuit
US6215327B1 (en) * 1999-09-01 2001-04-10 The United States Of America As Represented By The Secretary Of The Air Force Molecular field programmable gate array
JP3517839B2 (ja) 2000-11-29 2004-04-12 日本電信電話株式会社 プログラマブルセルアレイ回路
US6331788B1 (en) * 2001-07-03 2001-12-18 The United States Of America As Represented By The Secretary Of The Air Force Simplified cellular array structure for programmable Boolean networks
US6777977B1 (en) * 2002-05-01 2004-08-17 Actel Corporation Three input field programmable gate array logic circuit configurable as a three input look up table, a D-latch or a D flip-flop
JP4226383B2 (ja) * 2003-04-23 2009-02-18 株式会社ミツトヨ 測長装置
US7102387B1 (en) * 2004-12-08 2006-09-05 The United States Of America As Represented By The Secretary Of The Air Force Periodic computation structure based on 1-input lookup tables
US7632745B2 (en) * 2007-06-30 2009-12-15 Intel Corporation Hybrid high-k gate dielectric film
US8010590B1 (en) * 2007-07-19 2011-08-30 Xilinx, Inc. Configurable arithmetic block and a method of implementing a configurable arithmetic block in a device having programmable logic
US7816946B1 (en) * 2008-01-31 2010-10-19 Actel Corporation Inverting flip-flop for use in field programmable gate arrays

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0220923A (ja) * 1988-07-08 1990-01-24 Fujitsu Ltd プログラマブル・ロジック・デバイス
JPH11238850A (ja) * 1998-02-19 1999-08-31 Toshiba Corp 半導体集積回路
WO2007060738A1 (ja) * 2005-11-28 2007-05-31 Taiyo Yuden Co., Ltd. 半導体装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9214209B2 (en) 2010-06-24 2015-12-15 Taiyo Yuden Co., Ltd. Semiconductor device
US9177092B2 (en) 2012-04-09 2015-11-03 Taiyo Yuden Co., Ltd. Method for arranging and wiring reconfigurable semiconductor device, program therefor, and arranging and wiring apparatus
US9425798B2 (en) 2012-04-11 2016-08-23 Taiyo Yuden Co., Ltd. Reconfigurable semiconductor device
US9350357B2 (en) 2012-10-28 2016-05-24 Taiyo Yuden Co., Ltd. Reconfigurable semiconductor device
US9514259B2 (en) 2012-11-20 2016-12-06 Taiyo Yuden Co., Ltd. Logic configuration method for reconfigurable semiconductor device
JPWO2014080872A1 (ja) * 2012-11-20 2017-01-05 太陽誘電株式会社 再構成可能な半導体装置の論理構成方法
WO2014163099A2 (ja) * 2013-04-02 2014-10-09 太陽誘電株式会社 再構成可能な論理デバイス
WO2014163099A3 (ja) * 2013-04-02 2014-11-27 太陽誘電株式会社 再構成可能な論理デバイス
US9425800B2 (en) 2013-04-02 2016-08-23 Taiyo Yuden Co., Ltd. Reconfigurable logic device
JPWO2014163099A1 (ja) * 2013-04-02 2017-02-16 太陽誘電株式会社 再構成可能な論理デバイス
US9729154B2 (en) 2013-09-16 2017-08-08 Taiyo Yuden Co., Ltd. Reconfigurable logic device configured as a logic element or a connection element

Also Published As

Publication number Publication date
JP5140029B2 (ja) 2013-02-06
CN102369668A (zh) 2012-03-07
CN102369668B (zh) 2014-09-17
US20120007635A1 (en) 2012-01-12
WO2010113713A1 (ja) 2010-10-07
US8283945B2 (en) 2012-10-09

Similar Documents

Publication Publication Date Title
JP5140029B2 (ja) 半導体装置
US11296705B2 (en) Stacked programmable integrated circuitry with smart memory
CN104699884B (zh) 布图设计系统以及使用该系统制造的半导体器件
US5019736A (en) Programmable logic cell and array
US7587697B1 (en) System and method of mapping memory blocks in a configurable integrated circuit
JPH07175719A (ja) ワード長をプログラム可能なメモリ
US9886275B1 (en) Multi-core processor using three dimensional integration
JP6250548B2 (ja) 再構成可能な半導体装置の論理構成方法
Yang et al. Review of advanced FPGA architectures and technologies
JP4423953B2 (ja) 半導体集積回路
JP2013077358A (ja) 半導体装置
US8434045B1 (en) System and method of providing a memory hierarchy
JP2008288559A (ja) 半導体集積回路及び半導体集積回路のレイアウト方法
WO2013153852A1 (ja) 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
US9621159B2 (en) Reconfigurable semiconductor integrated circuit and electronic device
JP5336398B2 (ja) 半導体集積回路、半導体集積回路の構成変更方法
JP5311382B2 (ja) 再構成可能集積回路
JP2014029903A (ja) 半導体装置および設計装置
JP2010251468A (ja) 半導体集積回路
US7521962B2 (en) Semiconductor integrated circuit apparatus
Jagasivamani et al. Memory-System Design Challenges in Realizing Monolithic Computers
CN117421274A (zh) 用于可重构并行处理器的片上存储系统
JP2009288890A (ja) 半導体集積回路、および半導体集積回路のレイアウト方法
Matsumura et al. The LSI implementation of a memory based field programmable device for MCU peripherals
JP2007166455A (ja) 電子論理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20110325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110325

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111026

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121023

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121116

R150 Certificate of patent or registration of utility model

Ref document number: 5140029

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151122

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees