JP2008017113A - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JP2008017113A JP2008017113A JP2006185542A JP2006185542A JP2008017113A JP 2008017113 A JP2008017113 A JP 2008017113A JP 2006185542 A JP2006185542 A JP 2006185542A JP 2006185542 A JP2006185542 A JP 2006185542A JP 2008017113 A JP2008017113 A JP 2008017113A
- Authority
- JP
- Japan
- Prior art keywords
- output
- input
- cell
- circuit
- multiplexer
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
【課題】基本構成単位となる回路セルの無駄を減らし、機能性を向上を図れ、回路サイズの増大を抑えることができる半導体集積回路を提供する。
【解決手段】回路セル100は、複数のセル入力信号に応じて、複数の選択入力信号から少なくとも一つの信号を選択する複数の他入力1出力マルチプレクサ121,122を有し、各マルチプレクサから選択信号をセル出力信号として出力する選択部120と、複数のテーブル部131,132を有し、各テーブルから論理機能に応じて、少なくとも一つのセル入力信号を含む複数の信号の何れか一つを複数のマルチプレクサごとに複数の選択入力信号それぞれに割り当てる割り当て部130と、選択部120の出力信号を一のセル入力信号F0に応じて出力する出力部140と、を含み、一のマルチプレクサ121は、セル入力信号F0に応じて前記選択入力信号の出力を停止可能な停止機能ENを有する。
【選択図】図4
【解決手段】回路セル100は、複数のセル入力信号に応じて、複数の選択入力信号から少なくとも一つの信号を選択する複数の他入力1出力マルチプレクサ121,122を有し、各マルチプレクサから選択信号をセル出力信号として出力する選択部120と、複数のテーブル部131,132を有し、各テーブルから論理機能に応じて、少なくとも一つのセル入力信号を含む複数の信号の何れか一つを複数のマルチプレクサごとに複数の選択入力信号それぞれに割り当てる割り当て部130と、選択部120の出力信号を一のセル入力信号F0に応じて出力する出力部140と、を含み、一のマルチプレクサ121は、セル入力信号F0に応じて前記選択入力信号の出力を停止可能な停止機能ENを有する。
【選択図】図4
Description
本発明は、ルックアップテーブル(Look Up Table:LUT)回路を備えた、たとえばストラクチャードASIC(Structured ASIC)など、基本構成単位となる複数の回路セルを組み合わせることによって構成される半導体集積回路に関するものである。
ルックアップテーブル(Look Up Table:LUT)回路は、入力に対して任意の出力を出す回路で、FPGA(Field Programmable Gate Array)やストラクチャードASICのようなプログラマブル回路においてランダムロジック回路を構成する基本構成単位として使われる。
FPGAにおいては、LUTの論理とLUT間の配線をRAMで設定し回路を形成するため、チップ完成後にも内部論理を変更できるリコンフィギュアブルな回路となっている。
一方、ストラクチャードASICは、回路の最小構成単位として、NAND回路のような基本ゲートよりも粒度の粗い構造を持った回路セルを用いるICである。
このストラクチャードASICは、製造段階で決まった構成には同一のマスク(Mask)を使い、上層配線のパターニングやビヤ(Via)の位置、ヒューズによる設定などでプログラミングをする領域にのみカスタムマスクを使う。
異なったチップに対し同一マスクを使うことや、同一ウェハによる生産ができるため、低コスト、多少の違いを持ったチップの大量生産が可能になる。また、設計の前に決まった部分だけ先行して製造に入れるため短TATが可能となる。LUT回路はその中でランダムロジック回路として利用されている。
異なったチップに対し同一マスクを使うことや、同一ウェハによる生産ができるため、低コスト、多少の違いを持ったチップの大量生産が可能になる。また、設計の前に決まった部分だけ先行して製造に入れるため短TATが可能となる。LUT回路はその中でランダムロジック回路として利用されている。
一般的に、ストラクチャードASICは、FPGAに比べてリコンフィギュアブルといった機能を捨てた代りに固定配線とカスタム配線による高速な回路構成をとることができる。
しかし、その基本セルの速度自体を一般のスタンダードセル(Standard Cell:SC)手法によるチップ設計と比べると速度的なペナルティーは大きい。
これはスタンダードセル(SC)の持つ最小2入力NANDやインバータのような小さいセルでさえ3入力のLUTや4入力LUTのいった最小論理基本単位を使うため、面積的にも速度的にもペナルティーを持ってしまう。
しかし、その基本セルの速度自体を一般のスタンダードセル(Standard Cell:SC)手法によるチップ設計と比べると速度的なペナルティーは大きい。
これはスタンダードセル(SC)の持つ最小2入力NANDやインバータのような小さいセルでさえ3入力のLUTや4入力LUTのいった最小論理基本単位を使うため、面積的にも速度的にもペナルティーを持ってしまう。
このストラクチャードASICのスタンダードセルに対するペナルティーをより少なくする技術として、「ANDの機能内蔵LUTを用いたストラクチャードASICにおけるユニットセル構成」で、セル使用率の高い2入力NANDを一まとめにしたセル構成や、「セレクタ機能を持ったストラクチャードASIC基本論理構造」で、テーブルへの入力数を増やし複数のセレクタとして最適なセル構成を選べる基本論理構造を提案した。これらの技術によって使用するセル効率を向上することができる。
代表的な回路は、図1に示すように、論理を決めるテーブル(Table:TBL)1に対して複数の2対1のマルチプレクサ(Multiplexer:MUX)2−1〜2−15を階層的に接続した構成をとる。
たとえば、4入力LUTでは16ビット(bit)の論理を決めるプログラマブルテーブル(Programmable Table)と16対1のMUXが必要となる。このLUTの入力F0〜F3は各段のMUXの制御信号となり、所望の論理をテーブルにプログラムしておくことで任意の4入力論理を実現する。
たとえば、4入力LUTでは16ビット(bit)の論理を決めるプログラマブルテーブル(Programmable Table)と16対1のMUXが必要となる。このLUTの入力F0〜F3は各段のMUXの制御信号となり、所望の論理をテーブルにプログラムしておくことで任意の4入力論理を実現する。
ストラクチャードASICにおけるLUTを基本とした基本論理構成単位に関する代表的な論文としては非特許文献1が存在している。
この非特許文献1に開示された構成は、図2に示すように、テーブル2aに1入力を割り当てることによってMUXの入力数を削減したLUTを構成ができる。
たとえば、4入力LUTは1入力を含んだ8ビットテーブルと8対1MUXで実現可能となる。また、同論文でLUTの入出力数の最適化の議論として、入力の多いLUTを使用するメリットが述べられている。
多段論理ブロックをLUTにまとめて置き換える論理集約による論理段数の削減、LUT間配線の減少による配線領域の緩和などのメリットから、トータル(total)の面積速度で比較した結果、他の入力数のLUTより良い結果がでている。
この非特許文献1に開示された構成は、図2に示すように、テーブル2aに1入力を割り当てることによってMUXの入力数を削減したLUTを構成ができる。
たとえば、4入力LUTは1入力を含んだ8ビットテーブルと8対1MUXで実現可能となる。また、同論文でLUTの入出力数の最適化の議論として、入力の多いLUTを使用するメリットが述べられている。
多段論理ブロックをLUTにまとめて置き換える論理集約による論理段数の削減、LUT間配線の減少による配線領域の緩和などのメリットから、トータル(total)の面積速度で比較した結果、他の入力数のLUTより良い結果がでている。
また、参考としてFPGAにおいても同様にLUTの最小構成としてLUTの構成が議論されているが4入力が最適であるという報告がある(非特許文献2参照)。
K.Y.Tong 他5名、"Regular logic fabrics for a via patterned gate array (VPGA)"、IEEE 2003 CUSTOM INTEGRATED CIRCUITS CONFERENCE、(米国)、2003年、p.53−56 The Effect of LUT and Cluster Size on Deep-Submicron FPGA Performance and Density, Altera, Elias Ahmed and Jonathan Rose IEEE Transactions on VLSI systems, vol.12, no.3, month 2003
K.Y.Tong 他5名、"Regular logic fabrics for a via patterned gate array (VPGA)"、IEEE 2003 CUSTOM INTEGRATED CIRCUITS CONFERENCE、(米国)、2003年、p.53−56 The Effect of LUT and Cluster Size on Deep-Submicron FPGA Performance and Density, Altera, Elias Ahmed and Jonathan Rose IEEE Transactions on VLSI systems, vol.12, no.3, month 2003
しかし、4入力LUTなどの多入力セルは、入力数の少ないLUTやスタンダードセル(SC)のセルに比べると大きく、入力数の少ない単純な論理も単一のLUTの機能を実現するため大きなセルサイズがペナルティーとなってしまう。
さらに、エリア(area)の肥大化が平均的なLUT間配線の距離を伸ばし全体の配線にぶら下がる容量を増大させるため、配線間のバッファを多く必要とするため必要なインスタンス数が増加し全体として速度を低下させる。
また、セル自体の遅延は、図1および図2のような2対1MUXの多段接続によってより入力数の多いMUXを形成しLUTを構成した場合、入力数の増加とともにテーブル入力から出力までのMUXの段数が増えることによって増加する傾向にある。
ストラクチャードASICの基本セル構成はこれらトレードオフの中で最適な構造を選択する必要がある。
ストラクチャードASICの基本セル構成はこれらトレードオフの中で最適な構造を選択する必要がある。
本発明は、基本構成単位となる回路セルの無駄を減らし、機能性の向上を図れ、回路サイズの増大を抑えることができる半導体集積回路を提供することにある。
本発明の実施形態に係る半導体集積回路は、論理機能を適応的に構成可能であり、複数のセル入力信号から前記論理機能に応じて少なくとも1つのセル出力信号を生成する回路セルが形成され、前記回路セルは、任意の4入力論理を一意に決める4入力ルックアップテーブル(LUT)構造を有し、前記回路セルは、複数のセル入力信号に応じて、複数の選択入力信号から少なくとも一つの信号を選択する複数の他入力1出力マルチプレクサを有し、各マルチプレクサから選択した信号を前記セル出力信号として出力する選択部と、複数のテーブル部を有し、当該各テーブルから前記論理機能に応じて、少なくとも一つのセル入力信号を含む複数の信号の何れか一つを前記複数のマルチプレクサごとに前記複数の選択入力信号それぞれに割り当てる割り当て部と、前記選択部の出力信号を一のセル入力信号に応じて出力する出力部と、を含み、前記選択部の複数のマルチプレクサのうちの一のマルチプレクサは、一のセル入力信号に応じて前記選択入力信号の出力を停止可能な停止機能を有する。
好適には、前記出力部は、前記一のセル入力信号で制御されるトグルインバータ回路を含み、前記トグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が他のマルチプレクサの出力に接続されている。
好適には、前記選択部の前記一のマルチプレクサは、前記割り当て部の対応するテーブル部による選択入力信号を前記出力部に転送制御する複数のトランスミッションゲートを含み、前記停止機能時は、前記複数のトランスミッションゲートを非導通状態に制御する。
好適には、前記LUTは8入力対1出力のマルチプレクサにより論理を決めるテーブルの値を選択する機能を含み、前記選択部の前記複数のマルチプレクサのうち、少なくとも前記停止機能を有する一のマルチプレクサは4入力対1出力のマルチプレクサにより形成されている。
好適には、前記複数のマルチプレクサは2つの4入力対1出力のマルチプレクサにより形成されている。
好適には、前記停止機能を有する4入力対1出力の一のマルチプレクサの他のマルチプレクサは、2つの2入力対1出力のマルチプレクサにより形成されている。
好適には、前記出力部は、前記一のセル入力信号で制御される2つのトグルインバータ回路を含み、前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が一方の前記2入力対1出力のマルチプレクサの出力に接続され、前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が他方の前記2入力対1出力のマルチプレクサの出力に接続されている。
好適には、前記出力部は、前記一のセル入力信号で制御される2つのトグルインバータ回路を含み、前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が一方の前記2入力対1出力のマルチプレクサの出力に接続され、前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が他方の前記2入力対1出力のマルチプレクサの出力に接続されている。
本発明によれば、基本構成単位となる回路セルの無駄を減らし、機能性の向上を図れ、回路サイズの増大を抑えることができる。
以下、本発明の実施形態を図面に関連付けて説明する。
図3は、本発明の実施形態に係る半導体集積回路の構成の一例を示す図である。
図3に示す半導体集積回路は、m×n個の回路セルC11〜Cmnを有する。この回路セルC11〜Cmnは、たとえば図1に示すように、m行n列の行列状に配列される。
図3に示す半導体集積回路は、m×n個の回路セルC11〜Cmnを有する。この回路セルC11〜Cmnは、たとえば図1に示すように、m行n列の行列状に配列される。
各回路セルは、NAND回路のような基本ゲートより粒度の粗い構造を有しており、それぞれの論理機能を適応的に構成することが可能である。すなわち、回路セル毎に独立した論理機能を持たせることが可能である。
各回路セルに対する論理機能のプログラムは、たとえば、回路セル毎に独立したプログラム用配線(ビヤ等)を形成することにより行う。
また、回路セル同士の結線についても、たとえば回路セルのプログム方法と同様に、予め決められた規則的な構造の配線をビヤ等の配線で接続することにより行う。この配線構造については、後で詳述する。
各回路セルに対する論理機能のプログラムは、たとえば、回路セル毎に独立したプログラム用配線(ビヤ等)を形成することにより行う。
また、回路セル同士の結線についても、たとえば回路セルのプログム方法と同様に、予め決められた規則的な構造の配線をビヤ等の配線で接続することにより行う。この配線構造については、後で詳述する。
各回路セルC11〜Cmnは、以下に詳述するように、ストラクチャードASIC手法、すなわち、論理の最小構成単位をゲートではなく、より粗粒度な構造であるものの基本論理セルについて、より機能性の高いセルとして構成されている。
基本論理セルは、任意の4入力論理を一意に決めることが可能な4入力LUT(Look Up Table)とし、回路構成は8入力のMultiplexer(MUX)を用いて、LUT論理を決めるプログラマブル(Programable)なテーブル(Table)の値を選択する方式を採用している。
具体的には、8入力MUXに対し、複数の2入力対1出力、4入力対1出力MUXを階層的に接続することで実現した。さらに、その各MUXとしても分割して使用できる複数の論理を達成できる効率的なセル構造を採用している。また、バス構造を用いてテーブルから出力までのゲート段数を削減している。
基本論理セルは、任意の4入力論理を一意に決めることが可能な4入力LUT(Look Up Table)とし、回路構成は8入力のMultiplexer(MUX)を用いて、LUT論理を決めるプログラマブル(Programable)なテーブル(Table)の値を選択する方式を採用している。
具体的には、8入力MUXに対し、複数の2入力対1出力、4入力対1出力MUXを階層的に接続することで実現した。さらに、その各MUXとしても分割して使用できる複数の論理を達成できる効率的なセル構造を採用している。また、バス構造を用いてテーブルから出力までのゲート段数を削減している。
図4は、本発明の第1の実施形態に係る回路セルの構成例を示す図である。
図4の回路セル100(図3のC11〜Cmn)は、制御信号供給部110、選択部120、プログラム部(割り当て部)130、出力部140、およびインバータ回路INV1を有する。
インバータ回路INV1は、外部(他の回路セルや入出力回路など)から回路セル100に入力される4入力信号(セル入力信号)F0〜F3のうち信号F3を論理反転してプログラム部130に入力する。
制御信号生成部110は、回路セル100に入力される4入力信号(セル入力信号)F0〜F3のうち信号F0をイネーブル信号ENとして、選択部120および出力部140に供給し、信号F1、F2をMUXの選択信号として選択部120に供給する。
選択部120は、イネーブル機能(停止機能)付き4入力対1出力(以下4対1という)の第1MUX121、通常の4対1の第2MUX122、およびデコード部123を有し、制御信号生成部110から供給されるイネーブル信号ENとしての信号F0、および信号F1,F2に対するデコード部123のデコード結果に応じてプログラム部130の出力を選択して出力部140に供給する。
デコード部123は、セル入力信号F0,F1,F2のデコード処理を行う回路である。
デコード部123は、セル入力信号F0,F1,F2のデコード処理を行う回路である。
図5は、本第1の実施形態に係る選択部120の構成例を示す回路図である。
図5の例において、デコード部123は、8つの3入力NAND回路NA1〜NA4、2入力NAND回路NA5〜NA8、3つのインバータ回路INV2,INV3,INV4、およびデコード配線LD1〜LD4を有する。
また、第1MUX121の出力段はトランスミッションゲートTMG11〜TMG14、およびインバータ回路INV11〜INV14を有する。
また、第1MUX122の出力段はトランスミッションゲートTMG15〜TMG18、およびインバータ回路INV15〜INV18を有する。
なお、トランスミッションゲートTMG11〜TMG18は、pチャネルMOS(PMOS)トランジスタとnチャネルMOS(NMOS)トランジスタのソース、ドレイン同士を接続して構成される。
また、第1MUX121の出力段はトランスミッションゲートTMG11〜TMG14、およびインバータ回路INV11〜INV14を有する。
また、第1MUX122の出力段はトランスミッションゲートTMG15〜TMG18、およびインバータ回路INV15〜INV18を有する。
なお、トランスミッションゲートTMG11〜TMG18は、pチャネルMOS(PMOS)トランジスタとnチャネルMOS(NMOS)トランジスタのソース、ドレイン同士を接続して構成される。
インバータ回路INV2はセル入力信号F1を論理反転し、インバータ回路INV3はセル入力信号F2を論理反転し、インバータ回路INV4はセル入力信号F0を論理反転する。
インバータ回路INV2の出力端子がデコード配線LD1に接続され、セル入力信号F1の供給ラインがデコード配線LD2に接続され、インバータ回路INV3の出力端子がデコード配線LD3に接続され、セル入力信号F2の供給ラインがデコード配線LD4に接続されている。
デコード配線LD1が3入力NAND回路NA1,NA3の第1入力、並びに、2入力NAND回路NA5、NA7の第1入力に接続されている。
デコード配線LD2が3入力NAND回路NA2,NA4の第1入力、並びに、2入力NAND回路NA6、NA8の第1入力に接続されている。
デコード配線LD3が3入力NAND回路NA1,NA2の第2入力、並びに、2入力NAND回路NA5、NA6の第2入力に接続されている。
デコード配線LD4が3入力NAND回路NA3,NA4の第2入力、並びに、2入力NAND回路NA7、NA8の第2入力に接続されている。
そして、セル入力信号F0の論理反転を行うインバータ回路INV4の出力端子が3入力NAND回路NA1〜NA4の第3入力に接続されている。
デコード配線LD1が3入力NAND回路NA1,NA3の第1入力、並びに、2入力NAND回路NA5、NA7の第1入力に接続されている。
デコード配線LD2が3入力NAND回路NA2,NA4の第1入力、並びに、2入力NAND回路NA6、NA8の第1入力に接続されている。
デコード配線LD3が3入力NAND回路NA1,NA2の第2入力、並びに、2入力NAND回路NA5、NA6の第2入力に接続されている。
デコード配線LD4が3入力NAND回路NA3,NA4の第2入力、並びに、2入力NAND回路NA7、NA8の第2入力に接続されている。
そして、セル入力信号F0の論理反転を行うインバータ回路INV4の出力端子が3入力NAND回路NA1〜NA4の第3入力に接続されている。
NAND回路NA1は、インバータ回路INV2、INV3、およびINV4の出力信号の反転論理積を演算する。
NAND回路NA2は、セル入力信号F1と、インバータ回路INV3、INV4の出力信号の反転論理積を演算する。
NAND回路NA3は、インバータ回路INV2、INV4の出力信号と、セル入力信号F2の反転論理積を演算する。
NAND回路NA4は、セル入力信号F1およびF2と、インバータ回路INV4の出力信号との反転論理積を演算する。
NAND回路NA5は、インバータ回路INV2およびINV3の出力信号の反転論理積を演算する。
NAND回路NA6は、セル入力信号F1と、インバータ回路INV3の出力信号の反転論理積を演算する。
NAND回路NA7は、インバータ回路INV2の出力信号と、セル入力信号F2の反転論理積を演算する。
NAND回路NA8は、セル入力信号F1とF2の反転論理積を演算する。
NAND回路NA2は、セル入力信号F1と、インバータ回路INV3、INV4の出力信号の反転論理積を演算する。
NAND回路NA3は、インバータ回路INV2、INV4の出力信号と、セル入力信号F2の反転論理積を演算する。
NAND回路NA4は、セル入力信号F1およびF2と、インバータ回路INV4の出力信号との反転論理積を演算する。
NAND回路NA5は、インバータ回路INV2およびINV3の出力信号の反転論理積を演算する。
NAND回路NA6は、セル入力信号F1と、インバータ回路INV3の出力信号の反転論理積を演算する。
NAND回路NA7は、インバータ回路INV2の出力信号と、セル入力信号F2の反転論理積を演算する。
NAND回路NA8は、セル入力信号F1とF2の反転論理積を演算する。
トランスミッションゲートTMG11の一方の入出力端子がプログラム部130の選択入力信号LUT−Aの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA1の出力端子が、トランスミッションゲートTMG11のPMOSトランジスタのゲートおよびインバータINV回路11の入力端子に接続され、インバータ回路INV11の出力端子がトランスミッションゲートTMG11のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG12の一方の入出力端子がプログラム部130の選択入力信号LUT−Bの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA2の出力端子が、トランスミッションゲートTMG12のPMOSトランジスタのゲートおよびインバータINV回路12の入力端子に接続され、インバータ回路INV12の出力端子がトランスミッションゲートTMG12のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG13の一方の入出力端子がプログラム部130の選択入力信号LUT−Cの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA3の出力端子が、トランスミッションゲートTMG13のPMOSトランジスタのゲートおよびインバータINV回路13の入力端子に接続され、インバータ回路INV13の出力端子がトランスミッションゲートTMG13のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG14の一方の入出力端子がプログラム部130の選択入力信号LUT−Dの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA4の出力端子が、トランスミッションゲートTMG14のPMOSトランジスタのゲートおよびインバータINV回路14の入力端子に接続され、インバータ回路INV14の出力端子がトランスミッションゲートTMG14のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG12の一方の入出力端子がプログラム部130の選択入力信号LUT−Bの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA2の出力端子が、トランスミッションゲートTMG12のPMOSトランジスタのゲートおよびインバータINV回路12の入力端子に接続され、インバータ回路INV12の出力端子がトランスミッションゲートTMG12のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG13の一方の入出力端子がプログラム部130の選択入力信号LUT−Cの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA3の出力端子が、トランスミッションゲートTMG13のPMOSトランジスタのゲートおよびインバータINV回路13の入力端子に接続され、インバータ回路INV13の出力端子がトランスミッションゲートTMG13のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG14の一方の入出力端子がプログラム部130の選択入力信号LUT−Dの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA4の出力端子が、トランスミッションゲートTMG14のPMOSトランジスタのゲートおよびインバータINV回路14の入力端子に接続され、インバータ回路INV14の出力端子がトランスミッションゲートTMG14のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG15の一方の入出力端子がプログラム部130の選択入力信号LUT−Eの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA5の出力端子が、トランスミッションゲートTMG15のPMOSトランジスタのゲートおよびインバータINV回路15の入力端子に接続され、インバータ回路INV15の出力端子がトランスミッションゲートTMG15のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG16の一方の入出力端子がプログラム部130の選択入力信号LUT−Fの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA6の出力端子が、トランスミッションゲートTMG16のPMOSトランジスタのゲートおよびインバータINV回路16の入力端子に接続され、インバータ回路INV16の出力端子がトランスミッションゲートTMG16のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG17の一方の入出力端子がプログラム部130の選択入力信号LUT−Gの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA7の出力端子が、トランスミッションゲートTMG17のPMOSトランジスタのゲートおよびインバータINV回路17の入力端子に接続され、インバータ回路INV17の出力端子がトランスミッションゲートTMG17のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG18の一方の入出力端子がプログラム部130の選択入力信号LUT−Hの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA8の出力端子が、トランスミッションゲートTMG18のPMOSトランジスタのゲートおよびインバータINV回路18の入力端子に接続され、インバータ回路INV18の出力端子がトランスミッションゲートTMG18のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG16の一方の入出力端子がプログラム部130の選択入力信号LUT−Fの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA6の出力端子が、トランスミッションゲートTMG16のPMOSトランジスタのゲートおよびインバータINV回路16の入力端子に接続され、インバータ回路INV16の出力端子がトランスミッションゲートTMG16のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG17の一方の入出力端子がプログラム部130の選択入力信号LUT−Gの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA7の出力端子が、トランスミッションゲートTMG17のPMOSトランジスタのゲートおよびインバータINV回路17の入力端子に接続され、インバータ回路INV17の出力端子がトランスミッションゲートTMG17のNMOSトランジスタのゲートに接続されている。
トランスミッションゲートTMG18の一方の入出力端子がプログラム部130の選択入力信号LUT−Hの出力ラインに接続され、他方の入出力端子が出力部140に接続されている。そして、NAND回路NA8の出力端子が、トランスミッションゲートTMG18のPMOSトランジスタのゲートおよびインバータINV回路18の入力端子に接続され、インバータ回路INV18の出力端子がトランスミッションゲートTMG18のNMOSトランジスタのゲートに接続されている。
以上の構成を有する選択部120において、イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1,F2がローレベルの場合に、NAND回路NA1の出力がローレベルとなり、トランスミッションゲートTGM11がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Aが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がハイレベルで、セル入力信号F2がローレベルの場合に、NAND回路NA2の出力がローレベルとなり、トランスミッションゲートTGM12がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Bが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がローレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA3の出力がローレベルとなり、トランスミッションゲートTGM13がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Cが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がハイレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA4の出力がローレベルとなり、トランスミッションゲートTGM14がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Dが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がハイレベルで、セル入力信号F2がローレベルの場合に、NAND回路NA2の出力がローレベルとなり、トランスミッションゲートTGM12がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Bが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がローレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA3の出力がローレベルとなり、トランスミッションゲートTGM13がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Cが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルで、セル入力信号F1がハイレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA4の出力がローレベルとなり、トランスミッションゲートTGM14がオンし、第1MUX121からプログラム部130により選択入力信号LUT−Dが選択されて出力部140に供給される。
このように、第1MUX121は、4つのトランスミッションゲート(転送ゲート)TMG11〜TMG14をオフにするイネーブル機能(停止機能)を有する。
また、イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1,F2がローレベルの場合に、NAND回路NA5の出力がローレベルとなり、トランスミッションゲートTGM15がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Eが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がハイレベルで、セル入力信号F2がローレベルの場合に、NAND回路NA6の出力がローレベルとなり、トランスミッションゲートTGM16がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Fが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がローレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA7の出力がローレベルとなり、トランスミッションゲートTGM17がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Gが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がハイレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA8の出力がローレベルとなり、トランスミッションゲートTGM18がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Hが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がハイレベルで、セル入力信号F2がローレベルの場合に、NAND回路NA6の出力がローレベルとなり、トランスミッションゲートTGM16がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Fが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がローレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA7の出力がローレベルとなり、トランスミッションゲートTGM17がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Gが選択されて出力部140に供給される。
イネーブル信号ENとしてのセル入力信号F0がローレベルかハイレベルにかかわりなく、セル入力信号F1がハイレベルで、セル入力信号F2がハイレベルの場合に、NAND回路NA8の出力がローレベルとなり、トランスミッションゲートTGM18がオンし、第1MUX122からプログラム部130により選択入力信号LUT−Hが選択されて出力部140に供給される。
プログラム部130は、本回路セルの論理的な機能を設定する。
図4の例において、プログラム部130は、第1テーブル部131、第2テーブル部132を有し、信号LUT−A〜LUT−Hを選択部120に伝送するための互いに平行の第1配線LA1〜LA8と、セル入力信号F3が入力される互いに平行の第2配線LB1〜LB4とが互いに直交するように形成されている。
第1配線LA1〜LA8と第2配線LB1〜LB4は絶縁層を介し多層配線として形成されており、両配線の交点には、第2配線LB1〜LB4の一部と第1配線LA1〜LA8とを論理機能に応じて接続する複数のビヤV11〜V84が形成されている。
すなわち、配線LB1〜LB4は、配線LA1〜LA8と異なる配線層に形成されており、両者は層間を隔てて交差するように配置されている。この交差部分には、回路セルの論理機能に応じてビヤV11〜V84が選択的に形成される。
図4の例において、プログラム部130は、第1テーブル部131、第2テーブル部132を有し、信号LUT−A〜LUT−Hを選択部120に伝送するための互いに平行の第1配線LA1〜LA8と、セル入力信号F3が入力される互いに平行の第2配線LB1〜LB4とが互いに直交するように形成されている。
第1配線LA1〜LA8と第2配線LB1〜LB4は絶縁層を介し多層配線として形成されており、両配線の交点には、第2配線LB1〜LB4の一部と第1配線LA1〜LA8とを論理機能に応じて接続する複数のビヤV11〜V84が形成されている。
すなわち、配線LB1〜LB4は、配線LA1〜LA8と異なる配線層に形成されており、両者は層間を隔てて交差するように配置されている。この交差部分には、回路セルの論理機能に応じてビヤV11〜V84が選択的に形成される。
第1配線LA1と第2配線LB1〜LB4との交差部に、ビヤV11〜V14が形成される。
第1配線LA2と第2配線LB1〜LB4との交差部に、ビヤV21〜V24が形成される。
第1配線LA3と第2配線LB1〜LB4との交差部に、ビヤV31〜V34が形成される。
第1配線LA4と第2配線LB1〜LB4との交差部に、ビヤV41〜V44が形成される。
第1配線LA5と第2配線LB1〜LB4との交差部に、ビヤV51〜V54が形成される。
第1配線LA6と第2配線LB1〜LB4との交差部に、ビヤV61〜V64が形成される。
第1配線LA7と第2配線LB1〜LB4との交差部に、ビヤV71〜V74が形成される。
第1配線LA8と第2配線LB1〜LB4との交差部に、ビヤV81〜V84が形成される。
第1配線LA2と第2配線LB1〜LB4との交差部に、ビヤV21〜V24が形成される。
第1配線LA3と第2配線LB1〜LB4との交差部に、ビヤV31〜V34が形成される。
第1配線LA4と第2配線LB1〜LB4との交差部に、ビヤV41〜V44が形成される。
第1配線LA5と第2配線LB1〜LB4との交差部に、ビヤV51〜V54が形成される。
第1配線LA6と第2配線LB1〜LB4との交差部に、ビヤV61〜V64が形成される。
第1配線LA7と第2配線LB1〜LB4との交差部に、ビヤV71〜V74が形成される。
第1配線LA8と第2配線LB1〜LB4との交差部に、ビヤV81〜V84が形成される。
図4の例においては、第1配線LA1〜LA8は4本ずつの2つのグループに分割され、第1グループの配線LA1〜LA4は選択部120のイネーブル機能付き4対1MUX121に接続され、第2グループの配線LA5〜LA8は選択部120の通常の4対1MUX122に接続されている。
また、第2配線LB1〜LB4のうち、配線LB1はセル入力信号F4の供給ラインに接続され、配線LB2はインバータ回路INV1の出力端子(信号F3の反転信号の出力ライン)に接続され、配線LB3は基準電位VSS(グランドライン)に接続され、配線LB4は電源電位VDDに接続されている。
また、第2配線LB1〜LB4のうち、配線LB1はセル入力信号F4の供給ラインに接続され、配線LB2はインバータ回路INV1の出力端子(信号F3の反転信号の出力ライン)に接続され、配線LB3は基準電位VSS(グランドライン)に接続され、配線LB4は電源電位VDDに接続されている。
プログラム部130の第1テーブル部131は、選択部130の4つの選択入力信号LUT−A〜LUT−Dそれぞれに、回路セルの論理機能に応じた信号を割り当てる。
プログラム部130の第2テーブル部132は、選択部130の4つの選択入力信号LUT−E〜LUT−Hそれぞれに、回路セルの論理機能に応じた信号を割り当てる。
また、電源電圧VDDはハイレベル(論理値「1」)、基準電位VSSはローレベル(論理値「0」)に相当する。
プログラム部130の第2テーブル部132は、選択部130の4つの選択入力信号LUT−E〜LUT−Hそれぞれに、回路セルの論理機能に応じた信号を割り当てる。
また、電源電圧VDDはハイレベル(論理値「1」)、基準電位VSSはローレベル(論理値「0」)に相当する。
出力部140は、たとえば図4に示すように、セル入力信号F0でオンオフ制御されるトグルインバータ回路141を有する。
インバータ回路141の入力端子が選択部120の第2MUX122の出力ラインに接続され、出力端子が選択部120の第1MUX121の出力ラインに接続されている。
これにより、プログラム部130の3入力テーブル部131または132が出力端Qに出力されるかを選択することができる。
インバータ回路141の入力端子が選択部120の第2MUX122の出力ラインに接続され、出力端子が選択部120の第1MUX121の出力ラインに接続されている。
これにより、プログラム部130の3入力テーブル部131または132が出力端Qに出力されるかを選択することができる。
以上の構成により、8対1MUXが構成できる。このため、図6のように4入力LUTとして使用できる。合計8ビットのテーブル配線のビヤプログラムは24=16種類の入力に対して48=65536種類の論理が可能となっている。
以上のように、本第1の実施形態においては、本構造の例としてEN機能付き4対1MUXと、通常の4対1MUX、トグルインバータ回路を組み合わせることで4入力LUTを構成した。
具体的には、3入力LUTを2つ用いて4入力LUTの構造を実現している。
具体的には、3入力LUTを2つ用いて4入力LUTの構造を実現している。
図7は、4対1MUXに1入力をテーブル側に入れた3入力LUTを示す図である。
図7において、150はMUX選択信号入力部、160は4対1MUX、170はプログラム部170をそれぞれ示している。
図7において、150はMUX選択信号入力部、160は4対1MUX、170はプログラム部170をそれぞれ示している。
この構成においては、3入力F0、F1、F2のうち2入力F0、F1を、4対1MUX160の制御用信号とし、残りの1入力F2と電源、GNDをプログラム可能なテーブル(プルグラム部)170の配線4ビットを4対1MUXに入力する。
このテーブル配線1つを信号F0、F1の制御信号の組み合わせに対応した一つを出力する。
このテーブル配線1つを信号F0、F1の制御信号の組み合わせに対応した一つを出力する。
図8は、4対1MUXの具体的な構成を示す図である。
この構成は、図5におけるイネーブル(EN)機能(停止機能)付き4対1MUXの構成部分を除く部分と同様であることがその詳細は省略する。
2入力F0、F1の正負論理と4つの2入力NAND回路NA11〜NA14によって4ビットアドレスをデコードしF0、F1入力2x2種類の論理に対応して一つのアドレスを選択し、対応したトランスミッションゲートTMG21〜TMG24でテーブル配線配線4ビットのオンとオフを行う。
LUTは、4ビットのテーブル配線に残りの入力F2、電源、グラウンドのいずれかを電気的に接続することで論理のプルグラムを行う。
この構成でF0、F1、F2の3入力に対する全て出力の論理をプログラムすることができる。このプログラミング(programing)は上層配線間のビヤのパターンで行う。
このような2ビットデコーダを使った4対1MUX構成による3入力LUTは、テーブル出力間にトランスミッションゲートを用いる。
この構成は、図5におけるイネーブル(EN)機能(停止機能)付き4対1MUXの構成部分を除く部分と同様であることがその詳細は省略する。
2入力F0、F1の正負論理と4つの2入力NAND回路NA11〜NA14によって4ビットアドレスをデコードしF0、F1入力2x2種類の論理に対応して一つのアドレスを選択し、対応したトランスミッションゲートTMG21〜TMG24でテーブル配線配線4ビットのオンとオフを行う。
LUTは、4ビットのテーブル配線に残りの入力F2、電源、グラウンドのいずれかを電気的に接続することで論理のプルグラムを行う。
この構成でF0、F1、F2の3入力に対する全て出力の論理をプログラムすることができる。このプログラミング(programing)は上層配線間のビヤのパターンで行う。
このような2ビットデコーダを使った4対1MUX構成による3入力LUTは、テーブル出力間にトランスミッションゲートを用いる。
本第1の実施形態においては、このような3入力LUTを2つ用いて4入力LUTの構造の回路を実現している。
この4入力LUT構造の特徴は、テーブル入力4入力LUTが3入力LUTと同程度の速度を持つ論理があることを説明する。
EN機能付きMUX121をつかった方に入力しているプログラム部130のテーブル部131(テーブル)からの信号は、MUXから出力端Qまでがもとの3入力LUTと同じ段数であり、トランスミッションゲートが1段の3入力LUTと略同程度の速度となる。ただし、負荷容量としてMOSトランジスタにより形成されるトグルインバータ回路141のソースドレイン容量が増えている分の遅延が増加する。
LUTは基本的にどの入力に対して全ての論理が構成できるため、4入力LUTでは4つの入力に対して入れ替えを行ってもビヤプログラミングを変えることで同一の論理が組める。
この4入力LUT構造の特徴は、テーブル入力4入力LUTが3入力LUTと同程度の速度を持つ論理があることを説明する。
EN機能付きMUX121をつかった方に入力しているプログラム部130のテーブル部131(テーブル)からの信号は、MUXから出力端Qまでがもとの3入力LUTと同じ段数であり、トランスミッションゲートが1段の3入力LUTと略同程度の速度となる。ただし、負荷容量としてMOSトランジスタにより形成されるトグルインバータ回路141のソースドレイン容量が増えている分の遅延が増加する。
LUTは基本的にどの入力に対して全ての論理が構成できるため、4入力LUTでは4つの入力に対して入れ替えを行ってもビヤプログラミングを変えることで同一の論理が組める。
図9のように、論理合成時にこのピンの違いによる速度の違いを取り込んで合成し、回路ブロック全体で最も速くなるようにピンを選ぶ。この場合、合成時にそのブロック210のクリティカルパスに速いピンを選択する。
図10は、4入力LUT構造を使って4入力ANDを構成した例を示す図である。
ビヤは図10に示すように、LUTA−Dで3入力NANDを構成し、LUTE−Hは基準電位VSS(Gnd)とする。これで図中のDピンとあわせて4入力のNANDが実現されている。
なお、図10において、Zはハイインピーダンスを示す。
ビヤは図10に示すように、LUTA−Dで3入力NANDを構成し、LUTE−Hは基準電位VSS(Gnd)とする。これで図中のDピンとあわせて4入力のNANDが実現されている。
なお、図10において、Zはハイインピーダンスを示す。
この例においては、Aピンの信号F0がハイレベルの場合、トグルインバータ回路141の出力はハイインピーダンスとなり、MUX121を介して出力部140の出力端QにはB&C&D、すなわち、F1&F2&F3が現れる。
Aピンの信号F0がローレベルの場合、トグルインバータ回路141の出力はVSSとなり、MUX141の出力はハイインピーダンスとなる。
Aピンの信号F0がローレベルの場合、トグルインバータ回路141の出力はVSSとなり、MUX141の出力はハイインピーダンスとなる。
図11は、4入力LUT構造を使い、3入力2出力LUTとして利用し、フルアダー(Full Adder)回路を構成した例を示す図である。
図11のように、4入力LUT構造を使い、3入力2出力LUTとして利用する場合は4対1MUXのイネーブルEN機能をオンし、中間のトグルインバータ回路141の出力がハイインピーダンスとなるようにする。
これで出力端Q0とQ1にそれぞれLUTA−DとLUTE−Hでプログラミングをした3入力LUTの出力となる。
例として図ではフルアダー(FullAdder)回路300を本構造1セルのみで構成した。入力はABの2ビットとキャリCin、出力はサムSUMとキャリアウトCoutとなっている。
この場合も回路全体でSUMの論理が決まるタイミングがCoutよりも後でよければ速度の遅い方を割り当てることで回路ブロック全体の速さを調節できる。
これで出力端Q0とQ1にそれぞれLUTA−DとLUTE−Hでプログラミングをした3入力LUTの出力となる。
例として図ではフルアダー(FullAdder)回路300を本構造1セルのみで構成した。入力はABの2ビットとキャリCin、出力はサムSUMとキャリアウトCoutとなっている。
この場合も回路全体でSUMの論理が決まるタイミングがCoutよりも後でよければ速度の遅い方を割り当てることで回路ブロック全体の速さを調節できる。
図12は、本発明の第2の実施形態に係る回路セルの構成例を示す図である。
図12の回路セル100Aは、本構成の4対1MUX入力とテーブル部(テーブル)131,132の入力ピンを分けた構造である。
この場合、入力ピンF1-aとF1−b、F2−aとF2−b、F3−aとF3−bを分けて設けている。
入力ピンをこの回路のように増やすことで3入力LUTの入力を別にすることができ、3入力LUTx2として使うことができる。
この構造で前述の4入力LUTと3入力2出力の機能を持ったセルとして使うには、各入力ピンF1-aとF1−b、F2−aとF2−b、F3−aとF3−bに同一の入力を与えてやればよい。また、入力F0をVDDに固定しておく。
この場合、入力ピンF1-aとF1−b、F2−aとF2−b、F3−aとF3−bを分けて設けている。
入力ピンをこの回路のように増やすことで3入力LUTの入力を別にすることができ、3入力LUTx2として使うことができる。
この構造で前述の4入力LUTと3入力2出力の機能を持ったセルとして使うには、各入力ピンF1-aとF1−b、F2−aとF2−b、F3−aとF3−bに同一の入力を与えてやればよい。また、入力F0をVDDに固定しておく。
図13は、図12の回路セルの4入力LUT構造を使った固定配線構造を示す図である。
第a層(aは1以上の整数を示す)とその上層の第(a+1)層における配線パターンを示すとともに、回路セルの各構成要素の概略的なレイアウトを示す。図13と図12における同一の符号は同一の構成要素を表す。また、図13において、符号Vはビヤを示す。たとえば、第a層はメタル第2層で形成され、第(a+1)層はメタル第3層で形成される。
第a層(aは1以上の整数を示す)とその上層の第(a+1)層における配線パターンを示すとともに、回路セルの各構成要素の概略的なレイアウトを示す。図13と図12における同一の符号は同一の構成要素を表す。また、図13において、符号Vはビヤを示す。たとえば、第a層はメタル第2層で形成され、第(a+1)層はメタル第3層で形成される。
この配線構造により、メタル第2層を結合するビヤを打つか打たないかにより、配線とLUTの機能のプログラムを実現する。
機能としては4入力LUTに加えて、4入力LUT、3入力2出力LUTが可能である。プルグラム部130Aのテーブル配線の8x4の2層間のビヤのプログラミングにより論理を決定する。出力部140は使用するものを外部回路と接続する。
機能としては4入力LUTに加えて、4入力LUT、3入力2出力LUTが可能である。プルグラム部130Aのテーブル配線の8x4の2層間のビヤのプログラミングにより論理を決定する。出力部140は使用するものを外部回路と接続する。
図14は、本発明の第3の実施形態に係る回路セルの構成例を示す図である。
図14は、4入力LUT構造のほかの例として、3入力LUT+2対1MUXx2構造を示している。
具体的には、図12の通常の4対1MUX122の代わりに2つの2対1MUX1231,124で形成し、これらの入力となるプログラム部130Bのテーブル部132の代わりに、2×6のテーブル配線を持つテーブル部133,134を設けている。
MUX123は信号F0−aで制御され、MUX124は信号F0−bで制御される。
また、MUX123の出力は出力端Q1に接続されると共に、トグルインバータ回路141−1を介して出力端Q0に接続される。同様に、MUX124の出力は出力端Q2に接続されると共に、トグルインバータ回路141−2を介して出力端Q0に接続される。
このように、EN機能付きの4対1MUX121と2つの2対1MUX123,124をトグルインバータ回路141−1,141−2で接続する。また、入力F0をVDDに固定しておく。
具体的には、図12の通常の4対1MUX122の代わりに2つの2対1MUX1231,124で形成し、これらの入力となるプログラム部130Bのテーブル部132の代わりに、2×6のテーブル配線を持つテーブル部133,134を設けている。
MUX123は信号F0−aで制御され、MUX124は信号F0−bで制御される。
また、MUX123の出力は出力端Q1に接続されると共に、トグルインバータ回路141−1を介して出力端Q0に接続される。同様に、MUX124の出力は出力端Q2に接続されると共に、トグルインバータ回路141−2を介して出力端Q0に接続される。
このように、EN機能付きの4対1MUX121と2つの2対1MUX123,124をトグルインバータ回路141−1,141−2で接続する。また、入力F0をVDDに固定しておく。
図15は、図14の回路セルの固定配線構造を示す図である。
図13と同様に、第a層(aは1以上の整数を示す)とその上層の第(a+1)層における配線パターンを示すとともに、回路セルの各構成要素の概略的なレイアウトを示す。図15と図14における同一の符号は同一の構成要素を表す。また、図15において、符号Vはビヤを示す。たとえば、第a層はメタル第2層で形成され、第(a+1)層はメタル第3層で形成される。
図13と同様に、第a層(aは1以上の整数を示す)とその上層の第(a+1)層における配線パターンを示すとともに、回路セルの各構成要素の概略的なレイアウトを示す。図15と図14における同一の符号は同一の構成要素を表す。また、図15において、符号Vはビヤを示す。たとえば、第a層はメタル第2層で形成され、第(a+1)層はメタル第3層で形成される。
この配線構造により、メタル第2層を結合するビヤを打つか打たないかのテーブルにより、配線とLUTの機能のプログラミングを行う。
実施形態のもつ機能としては、まず4入力LUT一つの構成、さらに3入力のLUT一つ、2対1MUX二つの構成が可能である。
4入力LUT一つの場合、テーブル部131のテーブル配線の4x4の2層間のビヤと、テーブル部133,134のMUX用の2x6のビヤのうちVDD、VSSと1入力のtrueとnotを選択する2x4のビヤを2セット用いる。これら32個のビヤにより4入力の全ての論理を作ることが可能である。
2x6のビヤのテーブル配線への入力線はMUX用にLUTE(LA5)、LUTF(LA6)とLUTG(LA7)、LUTH(LA8)用にそれぞれ分断されている。このため、4入力LUT用に接続用パス配線を用意しこちらの配線間のビヤも接続する。
図14のように3入力のLUT一つ、2入力MUX二つの構成では3入力LUTはテーブル部131の4x4のビヤで構成することで3入力全部の論理を作る。また、MUXの2x6のビヤのテーブルに直接二つの入力を与えることで2対1MUXを2個なる。出力部140Bは用いる機能の出力を外部の回路と接続する。
実施形態のもつ機能としては、まず4入力LUT一つの構成、さらに3入力のLUT一つ、2対1MUX二つの構成が可能である。
4入力LUT一つの場合、テーブル部131のテーブル配線の4x4の2層間のビヤと、テーブル部133,134のMUX用の2x6のビヤのうちVDD、VSSと1入力のtrueとnotを選択する2x4のビヤを2セット用いる。これら32個のビヤにより4入力の全ての論理を作ることが可能である。
2x6のビヤのテーブル配線への入力線はMUX用にLUTE(LA5)、LUTF(LA6)とLUTG(LA7)、LUTH(LA8)用にそれぞれ分断されている。このため、4入力LUT用に接続用パス配線を用意しこちらの配線間のビヤも接続する。
図14のように3入力のLUT一つ、2入力MUX二つの構成では3入力LUTはテーブル部131の4x4のビヤで構成することで3入力全部の論理を作る。また、MUXの2x6のビヤのテーブルに直接二つの入力を与えることで2対1MUXを2個なる。出力部140Bは用いる機能の出力を外部の回路と接続する。
以上説明したように、本実施形態においては、ストラクチャードASIC手法(論理の最小構成単位をゲートではなく、より粗粒度な構造であるもの)の基本論理セルにおいて、任意の多入力論理を一意に決めるLUT構造に対し、一般的に用いられている構造よりも有利な構造を実現している。
すなわち、図16の概念図に示すように、LUTはMUXを用いて、論理を決めるテーブルの値のどれか一つを選択することで実現する。
多入力MUXを使ったLUTの多入力化は通常、図1や図2に示すように、テーブルから出力までのMUXの段数は等しくし、MUX回路のゲート効率やテーブルから出力端までの速度差を均一にすることから一般的な構成となっている。
本実施形態では、MUXのテーブルから出力までのゲート段数をテーブルごとに非対称にする。MUXは複数のMUXを階層的に接続することで構成する。これによって、テーブルから出力端までのゲート段数が減るパスと増えるパスができるため、LUTの論理によって速度差が生まれる。ここで、MUXの選択信号制御用デコーダーにEN機能付き用のNAND構成を使うことでテーブルから出力までの段数を削減することで回路のMUX段数を増やすことなしに速いパスを作ることができる。
また、各MUXの出力として外部出力のものを用意することで、全体MUXで可能な最大の入力LUTよりも入力数は少ないLUTに対して多出力の機能を構成する。
多入力MUXを使ったLUTの多入力化は通常、図1や図2に示すように、テーブルから出力までのMUXの段数は等しくし、MUX回路のゲート効率やテーブルから出力端までの速度差を均一にすることから一般的な構成となっている。
本実施形態では、MUXのテーブルから出力までのゲート段数をテーブルごとに非対称にする。MUXは複数のMUXを階層的に接続することで構成する。これによって、テーブルから出力端までのゲート段数が減るパスと増えるパスができるため、LUTの論理によって速度差が生まれる。ここで、MUXの選択信号制御用デコーダーにEN機能付き用のNAND構成を使うことでテーブルから出力までの段数を削減することで回路のMUX段数を増やすことなしに速いパスを作ることができる。
また、各MUXの出力として外部出力のものを用意することで、全体MUXで可能な最大の入力LUTよりも入力数は少ないLUTに対して多出力の機能を構成する。
このように、本実施形態においては、ストラクチャードASIC手法を用いたLUT型の基本セルの構造を実現している。
まずこの構造の効果として、最大4入力LUTとして機能するブロックを、同一構造のままで複数の論理ブロックとして分割して使うことができる。これにより、全体の回路に必要なブロックに合わせることで、多入力ブロックで少ない入力の論理を形成する際のペナルティーを削減することができる。
図4のような回路を使って、4入力LUT、3入力2出力の構成が可能となる。
また、図12のように各3入力LUTの入力を分けることによって3入力LUTx2として使用する構成も可能である。
図14の構造では3入力LUT+2対1MUXx2として使用することができる。
まずこの構造の効果として、最大4入力LUTとして機能するブロックを、同一構造のままで複数の論理ブロックとして分割して使うことができる。これにより、全体の回路に必要なブロックに合わせることで、多入力ブロックで少ない入力の論理を形成する際のペナルティーを削減することができる。
図4のような回路を使って、4入力LUT、3入力2出力の構成が可能となる。
また、図12のように各3入力LUTの入力を分けることによって3入力LUTx2として使用する構成も可能である。
図14の構造では3入力LUT+2対1MUXx2として使用することができる。
また、本構造は出力部にバス構造を用いることでの4入力LUTは通常の2対1MUXを重ねて並べたもの(図1)に対して、テーブル入力から出力までの論理段数を削減している。
一般的に、入力出力のパスが非対称な構造は論理によって速度の違いの幅を増加させるが、LUTは基本的に4つの入力に対して全ての論理が構成できるため、4つの入力に対して入れ替えを行ってもビヤプログラミングを変えることで同一の論理が組める。
よって意図的に速度の違いを意識して論理を形成すること、具体的にビヤ構成、ピンに対して速度を考えること、さらに前段の入力が決定されるタイミングに合わせて選ぶことができる。
図9のように論理合成時にこのピンの違いによる速度の違いを取り込んで合成し、回路ブロック全体で最も速くなるようにピンを選ぶ。また、クリティカルパスに合わせてピン構成を再配置することによりタイミング調整を行うことも可能となる。
一般的に、入力出力のパスが非対称な構造は論理によって速度の違いの幅を増加させるが、LUTは基本的に4つの入力に対して全ての論理が構成できるため、4つの入力に対して入れ替えを行ってもビヤプログラミングを変えることで同一の論理が組める。
よって意図的に速度の違いを意識して論理を形成すること、具体的にビヤ構成、ピンに対して速度を考えること、さらに前段の入力が決定されるタイミングに合わせて選ぶことができる。
図9のように論理合成時にこのピンの違いによる速度の違いを取り込んで合成し、回路ブロック全体で最も速くなるようにピンを選ぶ。また、クリティカルパスに合わせてピン構成を再配置することによりタイミング調整を行うことも可能となる。
また、図11に示す3入力2出力LUTを使ったフルアダー(Full Adder)回路では、SUMとキャリに求められる速さの違いを利用し、にキャリに速いパスを割り当てることで回路全体の速度選ぶことができる。
他にも簡単な具体例として、4入力論理の1ビット入力が3入力論理演算のモード(MODE)を変更するためのみの信号の場合、モードに遅いピンを割り当てることでペナルティーを削減できる。
また、MUXバス構造を用いたことで4入力LUTとして使うピンを他の分割した論理モードとして使う際にも使用するので、新たに追加する出力ピンのペナルティーはない。
他にも簡単な具体例として、4入力論理の1ビット入力が3入力論理演算のモード(MODE)を変更するためのみの信号の場合、モードに遅いピンを割り当てることでペナルティーを削減できる。
また、MUXバス構造を用いたことで4入力LUTとして使うピンを他の分割した論理モードとして使う際にも使用するので、新たに追加する出力ピンのペナルティーはない。
上述の実施形態では、回路セルの論理機能をビヤの有無によってプログラムする例が挙げられているが、本発明はこの例に限定されない。たとえば、ビヤの代わりにトランジスタ等で構成されたスイッチを設けて、メモリ(RAMや不揮発メモリなど)に格納されるデータに基づいてこのスイッチのオン/オフを制御してもよい。
上述の実施形態では、固定配線とビヤによってセル間を接続する例を挙げているが、これに限らず、各回路セルのプログラム領域以外を既存の自動配線ツールを用いたカスタム配線によって接続することも可能である。これらの接続方式は、カスタム配線に必要なリソースと、固定配線によるマスク代のコスト削減効果とのトレードオフなど勘案してユーザが適宜選択可能である。
また本発明に係る回路セルは、ストラクチャードASIC向けの回路セルのみに使えるものではなく、たとえばスタンダードセル手法のようないくつかの論理セルを論理に合わせて並べて回路を構成する場合に、その論理セルライブラリの一つとして使うことも可能である。
100,100A,100B・・・回路セル、110・・・制御信号生成部、120,120A,120B・・・選択部、121・・・EN機能付き4対1MUX、122・・・4対1MUX、123・・・デコード部、124,125・・・2対1MUX、130・・・プログラム部(割り当て部)、131〜134・・・テーブル部(テーブル配線)、140,140B・・・出力部、NA1〜NA8・・・NAND回路、TMG11〜TMG18・・・トランスミッションゲート、LA1〜LA8,LB1〜LB6…配線、V・・・ビヤ。
Claims (9)
- 論理機能を適応的に構成可能であり、複数のセル入力信号から前記論理機能に応じて少なくとも1つのセル出力信号を生成する回路セルが形成され、
前記回路セルは、任意の4入力論理を一意に決める4入力ルックアップテーブル(LUT)構造を有し、
前記回路セルは、
複数のセル入力信号に応じて、複数の選択入力信号から少なくとも一つの信号を選択する複数の他入力1出力マルチプレクサを有し、各マルチプレクサから選択した信号を前記セル出力信号として出力する選択部と、
複数のテーブル部を有し、当該各テーブルから前記論理機能に応じて、少なくとも一つのセル入力信号を含む複数の信号の何れか一つを前記複数のマルチプレクサごとに前記複数の選択入力信号それぞれに割り当てる割り当て部と、
前記選択部の出力信号を一のセル入力信号に応じて出力する出力部と、を含み、
前記選択部の複数のマルチプレクサのうちの一のマルチプレクサは、一のセル入力信号に応じて前記選択入力信号の出力を停止可能な停止機能を有する
半導体集積回路。 - 前記出力部は、前記一のセル入力信号で制御されるトグルインバータ回路を含み、
前記トグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が他のマルチプレクサの出力に接続されている
請求項1記載の半導体集積回路。 - 前記選択部の前記一のマルチプレクサは、
前記割り当て部の対応するテーブル部による選択入力信号を前記出力部に転送制御する複数のトランスミッションゲートを含み、
前記停止機能時は、前記複数のトランスミッションゲートを非導通状態に制御する
請求項2記載の半導体集積回路。 - 前記LUTは8入力対1出力のマルチプレクサにより論理を決めるテーブルの値を選択する機能を含み、
前記選択部の前記複数のマルチプレクサのうち、少なくとも前記停止機能を有する一のマルチプレクサは4入力対1出力のマルチプレクサにより形成されている
請求項1記載の半導体集積回路。 - 前記複数のマルチプレクサは2つの4入力対1出力のマルチプレクサにより形成されている
請求項4記載の半導体集積回路。 - 前記停止機能を有する4入力対1出力の一のマルチプレクサの他のマルチプレクサは、2つの2入力対1出力のマルチプレクサにより形成されている
請求項4記載の半導体集積回路。 - 前記出力部は、前記一のセル入力信号で制御される2つのトグルインバータ回路を含み、
前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が一方の前記2入力対1出力のマルチプレクサの出力に接続され、
前記一方のトグルインバータ回路の出力端子が前記一のマルチプレクサの出力に接続され、入力端子が他方の前記2入力対1出力のマルチプレクサの出力に接続されている
請求項6記載の半導体集積回路。 - 前記回路セルは、2つの3入力LUTを含む4入力LUT構造を有する
請求項5記載の半導体集積回路。 - 前記停止機能を有する4入力対1出力のマルチプレクサの出力はアダー回路のサム出力を形成し、他の4入力対1出力のマルチプレクサの出力はアダー回路のキャリ出力を形成する
請求項8記載の半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006185542A JP2008017113A (ja) | 2006-07-05 | 2006-07-05 | 半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006185542A JP2008017113A (ja) | 2006-07-05 | 2006-07-05 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008017113A true JP2008017113A (ja) | 2008-01-24 |
Family
ID=39073735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006185542A Pending JP2008017113A (ja) | 2006-07-05 | 2006-07-05 | 半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008017113A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8912822B2 (en) | 2012-03-27 | 2014-12-16 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit |
-
2006
- 2006-07-05 JP JP2006185542A patent/JP2008017113A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8912822B2 (en) | 2012-03-27 | 2014-12-16 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6023439A (en) | Programmable logic array integrated circuits | |
US7671626B1 (en) | Versatile logic element and logic array block | |
US7307449B1 (en) | Sub-cycle configurable hybrid logic/interconnect circuit | |
US7530033B2 (en) | Method and apparatus for decomposing functions in a configurable IC | |
JP3474878B2 (ja) | プログラマブル論理セル | |
US7224182B1 (en) | Hybrid configurable circuit for a configurable IC | |
US6501296B2 (en) | Logic/memory circuit having a plurality of operating modes | |
US6600337B2 (en) | Line segmentation in programmable logic devices having redundancy circuitry | |
US7161384B1 (en) | Flexible macrocell interconnect | |
US5883850A (en) | Programmable logic array integrated circuits | |
US7193436B2 (en) | Fast processing path using field programmable gate array logic units | |
US6897679B2 (en) | Programmable logic array integrated circuits | |
JP4883578B2 (ja) | マルチプレクサ回路 | |
US7253660B1 (en) | Multiplexing device including a hardwired multiplexer in a programmable logic device | |
US7468616B1 (en) | Circuit for and method of generating a delay in an input/output port of an integrated circuit device | |
CN1734676A (zh) | 带可编程部分的掩模可编程逻辑器件 | |
WO2007029167A1 (en) | Logic modules for semiconductor integrated circuits | |
KR20180116117A (ko) | 프로그래밍가능 게이트 어레이에 대한 로직 블록 아키텍처 | |
JP2008017113A (ja) | 半導体集積回路 | |
US7725867B2 (en) | Gate-array or field programmable gate array | |
JP2008047707A (ja) | 半導体集積回路 | |
US6879184B1 (en) | Programmable logic device architecture based on arrays of LUT-based Boolean terms | |
JP4914423B2 (ja) | 相互接続構造体および論理回路装置 | |
JP2007294676A (ja) | 半導体集積回路 |