(57)【要約】【課題】回路の一部分に欠陥が生じていてもそれを救済して回路全体を正常に動作させることが可能であるとともに、欠陥の救済に伴う信号遅延の変化を小さくすることができることはもとより、ストラクチャードＡＳＩＣにおいて最適なアーキテクチャを実現することが可能な半導体集積回路を提供する。【解決手段】セル部２０１（−１〜−５）および冗長セル部２０２は、組み合わせ回路部２１０Ｃ、２１０Ｒが回路配列の第１の領域ＡＲ１にまとめて形成され、順序回路部２２０Ｃ，２２０Ｒが組み合わせ回路部２１０Ｃ、２１０Ｒが配置された第１の領域ＡＲ１に隣接する（本実施形態では図中上側に隣接する）第２の領域ＡＲ２に形成されている。【選択図】図６
2008270249.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ（Ｍは２以上の整数）列の回路部列と、
任意の入出力論理を一意に決めるプログラム部列と、を有し、
上記プログラム部列は、上記回路部列間に配置され、冗長前は、第１側に隣接する回路部列に接続される構造を有し、
所定の回路部列に欠陥があると、当該欠陥回路部列が第１側に位置するプログラム部列から順次に配置されているプログラム部列は、第２側に隣接する回路部列と接続されるカラムシフト冗長方式によってセル部の配置が行われ、
上記各セル部は、
組み合わせ回路部と順序回路部とが独立したレイアウトとして配置されている
半導体集積回路。
【請求項２】
上記組み合わせ回路と順序回路の割合が、回路特性に合わせて設定されている
請求項１記載の半導体集積回路。
【請求項３】
冗長対象外回路部が、上記組み合わせ回路、順序回路と別個に配列されている
請求項１記載の半導体集積回路。
【請求項４】
上記順序回路部には、少なくともクロック回路とテスト回路の少なくともいずれかが形成される
請求項１記載の半導体集積回路。
【請求項５】
上記レイアウトは冗長機能を実現するため、冗長シフト方向に同一回路が並ぶように形成されている
請求項１から４のいずれか一に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに機能を代替可能な複数のモジュールを有する半導体集積回路に関するものである。
【背景技術】
【０００２】
近年の半導体集積回路では、加工寸法の微細化と回路構成の大規模化が進み、製造上の欠陥による歩留りの低下が深刻化している。そこで、全体の回路の一部に予め冗長な回路を設けておき、欠陥部分をこの冗長な回路に置き換えることによって、半導体チップ全体が不良品とならないようにする手法が提案されている。
【０００３】
たとえば特許文献１に記載されるＦＰＧＡ（field programmable gate array）の論理回路データ生成方法では、故障情報と論理情報から故障回避の必要性を判定し、必要であるなら故障部分の機能を空き部分で代用するように論理情報を変更する。
【０００４】
また、特許文献２に記載される半導体装置では、メモリーマップ型のアドレッシングによって複数の回路モジュール間のデータ転送が行われる。各回路モジュールにＩＤコードが割り当てられており、そのＩＤコードを操作してデータの転送先を制御することにより、故障した回路モジュールを冗長な回路モジュールに置き換える。
【０００５】
また、基本構成単位となる複数の回路セルを組み合わせることによって構成される半導体集積回路としてストラクチャードＡＳＩＣ（Structured ASIC）が知られている。
【０００６】
ストラクチャードＡＳＩＣは、回路の最小構成単位として、ＮＡＮＤ回路のような基本ゲートよりも粒度の粗い構造を持った回路セルを用いるＩＣである。
【０００７】
ストラクチャードＡＳＩＣの基本論理構成単位に関する代表的な論文として、たとえば非特許文献１がある。この論文においては、３入力ルックアップテーブル（look up table、以下「ＬＵＴ」と略記する）とスキャンフリップフロップ、２つの３入力ＮＡＮＤ回路、７つのバッファを用いて基本構成単位が構成されている。スタンダードセル方式との性能比較が検討されており、面積は４０〜６８％程大きくなるものの、遅延についてはほぼ同等の性能を得られることが報告されている。
【０００８】
また、特許文献３には、ＬＵＴの入力にＮＡＮＤ回路を接続した論理セルが提案されている。特許文献４には、２つの３入力ＬＵＴと２入力ＬＵＴ、フリップフロップを用いて構成された論理セルが提案されている。
【０００９】
ストラクチャードＡＳＩＣは、ＦＰＧＡ（field programmable gate array）と異なり、配線の一部を用途に合わせてカスタマイズするマスク・ルーティングにより所望の機能を持った回路を構成することができる。ＦＰＧＡにおける再構成可能な配線構造は非常に無駄が多いが、それをマスク・ルーティングに置き換えることによって、スタンダードセル方式より無駄があるものの、ＦＰＧＡよりは非常に無駄が少ない回路を短期間に開発できるというメリットがある。
【００１０】
【特許文献１】特許第３４９１５７９号明細書
【特許文献２】特許第３１９２２２０号明細書
【非特許文献１】Ｋ．Ｙ．Ｔｏｎｇ  他５名、“Ｒｅｇｕｌａｒ  ｌｏｇｉｃ  ｆａｂｒｉｃｓ  ｆｏｒ  ａ  ｖｉａ  ｐａｔｔｅｒｎｅｄ  ｇａｔｅ  ａｒｒａｙ  （ＶＰＧＡ）”、ＩＥＥＥ  ２００３  ＣＵＳＴＯＭ  ＩＮＴＥＧＲＡＴＥＤ  ＣＩＲＣＵＩＴＳ  ＣＯＮＦＥＲＥＮＣＥ、（米国）、２００３年、ｐ．５３−５６
【特許文献３】米国特許第６２３６２２９号明細書
【特許文献４】米国特許第６５８０２８９号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した技術には、次に述べるような不利益がある。
【００１２】
特許文献１に記載されるＦＰＧＡでは、論理回路の基本構成単位である基本セルが故障している場合、これを迂回するように配線ルートが変更される。故障回避のための迂回配線は故障の発生状況に応じて様々であり、どのような配線ルートに変更されるかを予測することは難しい。そのため、基本セルのどれが故障しても所望の遅延条件を満たし得るような明確な遅延マージンを設定することが困難であり、遅延特性が著しく悪化する可能性を考慮してかなり大きな遅延マージンを見込んでおく必要がある。
【００１３】
特許文献２に記載される半導体装置では、回路モジュール間のデータ転送距離がどの程度の長さになるかが不良の発生状況に応じて大きく変化する可能性があるため、全ての回路モジュールがお互いに最大限離れた場合を想定して各モジュールの動作を規定する必要がある。したがって、設計の段階においてかなり大きな遅延マージンを見込んでおく必要があり、システム全体の性能を最適化し難い。
【００１４】
また、ＦＰＧＡマクロセルを用いたストラクチャードＡＳＩＣにおいては、セル内にＬＵＴとフリップフロップ（ＦＦ）が同梱されているため、ＬＵＴとＦＦの個数比が、回路アーキテクチャに対して常に最適とはならない。
【００１５】
本発明は、回路の一部分に欠陥が生じていてもそれを救済して回路全体を正常に動作させることが可能であるとともに、欠陥の救済に伴う信号遅延の変化を小さくすることができることはもとより、ストラクチャードＡＳＩＣにおいて最適なアーキテクチャを実現することが可能な半導体集積回路を提供することにある。
【課題を解決するための手段】
【００１６】
本発明の観点に係る半導体集積回路は、Ｍ（Ｍは２以上の整数）列の回路部列と、任意の入出力論理を一意に決めるプログラム部列と、を有し、上記プログラム部列は、上記回路部列間に配置され、冗長前は、第１側に隣接する回路部列に接続される構造を有し、所定の回路部列に欠陥があると、当該欠陥回路部列が第１側に位置するプログラム部列から順次に配置されているプログラム部列は、第２側に隣接する回路部列と接続されるカラムシフト冗長方式によってセル部の配置が行われ、上記各セル部は、組み合わせ回路部と順序回路部とが独立したレイアウトとして配置されている。
【００１７】
好適には、上記組み合わせ回路と順序回路の割合が、回路特性に合わせて設定されている。
【００１８】
好適には、冗長対象外回路部が、上記組み合わせ回路、順序回路と別個に配列されている。
【００１９】
好適には、上記順序回路部には、少なくともクロック回路とテスト回路の少なくともいずれかが形成される。
【００２０】
好適には、上記レイアウトは冗長機能を実現するため、冗長シフト方向に同一回路が並ぶように形成されている。
【発明の効果】
【００２１】
本発明によれば、ストラクチャードＡＳＩＣにおいて最適なアーキテクチャを実現することができる。
また、同一入出力部に接続される複数個のモジュールを、当該入出力部との距離の違いが小さくなるように配置することができるため、欠陥の救済等に伴って入出力部とモジュールとの接続を切り替えた場合に生じる信号遅延の変化を小さくすることができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の実施形態を図面に関連付けて説明する。
本実施形態では、いわゆるカラムシフト冗長方式の基本的な、概念、構成を図１から図５に関連付けて説明した後、リペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））の構造、配置、具体的な回路構成等について説明する。
【００２３】
図１は、本発明の実施形態に係るカラムシフト冗長方式を採用した半導体集積回路の構成の一例を示す図である。
本実施形態に係る半導体集積回路は、たとえば図１に示すように、モジュールＭ１１〜Ｍ１９，Ｍ２１〜Ｍ２９，Ｍ３１〜Ｍ３９，Ｍ４１〜Ｍ４９と、一般回路ブロック１００と、モジュール選択部５０とを有する。
【００２４】
モジュールＭ１１〜Ｍ１９，Ｍ２１〜Ｍ２９，Ｍ３１〜Ｍ３９，Ｍ４１〜Ｍ４９は、たとえば４行９列の行列状に配列される。ここで、‘ｋ’を１から４までの整数、‘ｎ’を１から９までの整数とすると、モジュールＭｋｎは第ｋ行および第ｎ列に属する。
【００２５】
モジュールＭｋｎは、入力される機能設定データに応じてその機能を設定される回路、すなわちプログラム可能な回路である。
モジュールＭｋｎの回路構成や機能は任意であり、たとえばＤＳＰ（digital signal processor）等の演算・処理機能を持つ回路や、単純な論理演算を行う回路を含んでも良い。後者の回路としては、たとえば、入出力部（後述）から入力される信号の少なくとも一部に応じて、機能設定データの複数のビットデータから１つを選択し、選択したビットデータ若しくはその論理反転データを入出力部へ出力するセレクタＳＥＬ（図２）などでも良い。
【００２６】
また、モジュールＭｋｎは、デジタル回路に限定されるものではなく、機能設定データに応じて機能を設定可能なアナログ回路でも良い。
【００２７】
同一の行に属するモジュールは、入力される機能設定データが同一の場合、互いの機能を代替可能である。すなわち、第ｋ行に属するモジュールＭｋ１〜Ｍｋ９に同一の機能設定データを入力した場合、これらのモジュールの機能は同等になる。
【００２８】
同一の行に属するモジュールＭｋ１〜Ｍｋ９は、全て同一の回路構成を有していても良いし、同じ機能設定データを入力した場合に機能を代替可能であれば、その一部に異なる回路構成を有するモジュールを含んでいても良い。
【００２９】
一般回路ブロック１００は、上述したモジュールＭ１１〜Ｍ１９，Ｍ２１〜Ｍ２９，Ｍ３１〜Ｍ３９，Ｍ４１〜Ｍ４９との間で信号をやり取りするための入出力部Ｐ１１〜Ｐ１８，Ｐ２１〜Ｐ２８，Ｐ３１〜３８，Ｐ４１〜Ｐ４８を有しており、これらのモジュールと共同して所定の処理を実行する。一般回路ブロック１００の回路構成や機能は任意であり、たとえば配線のみでも良い。
【００３０】
入出力部Ｐ１１〜Ｐ１８，Ｐ２１〜Ｐ２８，Ｐ３１〜３８，Ｐ４１〜Ｐ４８は、４行８列の行列状に配列される。ここで、‘ｉ’を１から８までの整数とすると、入出力部Ｐｋｉは第ｋ行および第ｉ列に属する。
【００３１】
入出力部Ｐ１１〜Ｐ１８，Ｐ２１〜Ｐ２８，Ｐ３１〜３８，Ｐ４１〜Ｐ４８の各々は、１つのモジュールに少なくとも１つの信号を出力するとともに、当該１つのモジュールにおいて発生する少なくとも１つの信号を入力する。図１において記号‘Ｉ／Ｏ’は、後述する機能設定データ以外に入出力部とモジュールとの間でやり取りされる信号を示す。
【００３２】
なお、同一の行に属する入出力部Ｐｋ１〜Ｐｋ８は、全てが同一の組合せの信号を入出力しても良いし、異なる組合せの信号を入出力する異なる種類の入出力部を含んでいても良い。
たとえばモジュールＭｋｎが３つの出力端子を有する場合に、この３つの出力端子の全てから信号を入力するものや、１つの出力端子のみから信号を入力するものなどが入出力部Ｐｋ１〜Ｐｋ８の中に混在していても良い。
【００３３】
また、入出力部Ｐｋｉは、上述した機能設定データを保持するデータ保持部ＰＤを有する。データ保持部ＰＤは、たとえばプログラマブルなデバイスにより形成可能である。入出力部Ｐｋｉが、後述するモジュール選択部５０によって１つのモジュールに接続されると、この入出力部Ｐｋｉに設けられたデータ保持部ＰＤは、接続先のモジュールに対して、保持している機能設定データを入力する。
【００３４】
データ保持部ＰＤは、少なくともデータを保持できれば良く、その構成は任意である。
【００３５】
たとえばデータ保持部ＰＤは、ビヤ等の配線を使って構成される固定的なデータを発生する回路でも良い。
この場合、データ保持部ＰＤは、複数の配線ＬＡ（第１配線）と、複数の配線ＬＢ（第２配線）と、複数の配線ＬＣ（第３配線）とを用いて構成することができる。
配線ＬＡは、接続先のモジュールへ機能設定データの各ビットデータを伝送する配線である。
配線ＬＢは、それぞれ所定のビットデータを伝送する配線である。たとえば電源線やグランド線など、一定値のビットデータ（‘１’、‘０’）を伝送する配線や、一般回路ブロック１００に含まれる回路によって任意の値に設定されるビットデータを伝送する配線などが含まれる。
配線ＬＣは、複数の配線ＬＡの各々に複数の配線ＬＢの何れか１つを接続する配線である。
【００３６】
たとえば第１配線ＬＡは、ある１つの金属配線層ＭＬ１に形成され、第２配線ＬＢは、この金属配線層ＭＬ１より上層の金属配線層ＭＬ２に形成される。この場合、第３配線ＬＣは、２つ金属配線層（ＭＬ１，ＭＬ２）の間を貫通するビヤを含む。
【００３７】
このように、配線を用いてデータ保持部ＰＤを構成した場合、データ保持部ＰＤに保持される機能設定データは、半導体集積回路の製造後に変更することができない。
【００３８】
他方、データ保持部ＰＤは、各種のＳＲＡＭ（static random access memory）やＲＯＭ（read only memory）、フリップフロップ、不揮発性メモリなど、記憶データを少なくとも１回書き換えることが可能な記憶素子を用いて構成しても良い。
データ保持部ＰＤに記憶素子を用いた場合、データ保持部ＰＤに保持される機能設定データは、半導体集積回路を製造した後でも書き換えることが可能になる。
【００３９】
図２は、入出力部とモジュールの構成例を示す図である。
入出力部Ｐｋｉに設けられたデータ保持部ＰＤは、たとえば４ビットの機能設定データ（ＦＤ０，…，ＦＤ３）を保持しており、後述のモジュール選択部５０によって接続されたモジュールＭｋｉに、この機能設定データを入力する。また、入出力部Ｐｋｉは、モジュール選択部５０を介して２ビットの信号（ＩＮ０，ＩＮ１）をモジュールＭｋｉに出力するとともに、モジュール選択部５０を介して１ビットの信号（ＯＵＴ）をモジュールＭｋｉから入力する。
モジュールＭｋｉは、たとえばセレクタＳＥＬを有しており、データ保持部ＰＤから入力される機能設定データの各ビットデータ（ＦＤ０，…，ＦＤ３）の中から、信号ＩＮ０，ＩＮ１に応じて１つのビットデータを選択し、これを信号ＯＵＴとして入出力部Ｐｋｉに出力する。
【００４０】
図２の例において、データ保持部ＰＤとセレクタＳＥＬは、２入力１出力のルックアップテーブルを構成している。本実施形態に係る半導体集積回路では、たとえば図２に示すように、ルックアップテーブルの構成要素であるデータ保持部とセレクタを分離し、入出力部の内部にデータ保持部を、モジュールの内部にセレクタをそれぞれ配置している。
このデータ保持部ＰＤとセレクタＳＥＬとは組み合わせ回路を形成する。
【００４１】
モジュール選択部５０は、不図示の制御部から供給される制御信号に応じて、上述した４行９列のモジュールから１列を除いた４行８列のモジュールを選択し、この選択した４行８列のモジュールと上述した４行８列の入出力部とを１対１に接続する。この場合、モジュール選択部５０は、同一の行に属する入出力部の各々に、同一の行に属する２つのモジュールから制御信号に応じて選択した１つのモジュールを接続する。すなわち、モジュール選択部５０は、第ｋ行に属するモジュールＭｋｉ又はモジュールＭｋ（ｉ＋１）の一方を制御信号に応じて選択し、これを第ｋ行の入出力部Ｐｋｉに接続する。
【００４２】
モジュール選択部５０は、たとえば、不図示の制御部から供給される制御信号に応じて、故障したモジュールを含む列（故障したモジュールがない場合は冗長用に設けられた特定の列）を除いた４行８列のモジュールを選択する。
【００４３】
故障したモジュールがない場合は、たとえば図１に示すように、モジュールＭｋｉと入出力部Ｐｋｉとが１対１に接続され、第９列に属するモジュールＭ１９〜Ｍ４９が全ての入出力部から切り離される。以下では、このように故障のモジュールがない通常の状態で入出力部から切り離されるモジュール列を、冗長カラムと呼ぶ場合がある。
【００４４】
図３は、図１に示す半導体集積回路における欠陥救済の一例を示す図であり、モジュールＭ２２が故障している場合における入出力部とモジュールとの接続状態を示す。
モジュール２２が故障している場合、図示しない制御部によって、モジュール２２を含む第２列のモジュールＭ１２〜Ｍ４２と第２列の入出力部Ｐ１２〜Ｐ４２とが切り離される。第２列の入出力部Ｐ１２〜Ｐ４２は、第２列のモジュールＭ１２〜Ｍ４２の代わりに第３列のモジュールＭ１３〜Ｍ４３に接続され、第３列の入出力部Ｐ２１〜Ｐ２２は、第３列のモジュールＭ１３〜Ｍ４３の代わりに第４列のモジュールＭ１４〜Ｍ４４に接続される。このように、各入出力部の接続先が冗長カラム（第９列）の方向へ順にシフトすることにより、４行８列の入出力部は第２列を除く４行８列のモジュールと１対１に接続され、モジュールＭ２２の欠陥が救済される。
【００４５】
図４および図５は、欠陥の救済に伴って機能設定データの入力方向が変化する様子を図解した図であり、図の下側は、図１に示す半導体集積回路の断面の一例を図解している。
欠陥モジュールがない場合（図４）、各入出力部のデータ保持部ＰＤは、図の左隣に位置するモジュールのセレクタＳＥＬに機能設定データを入力する。一方、欠陥モジュールが存在する場合（図５）であり、その欠陥モジュールを含んだ列より右側にある各入出力部のデータ保持部ＰＤは、図の右隣に位置するモジュールのセレクタＳＥＬに機能設定データを入力する。これにより、欠陥モジュールを含んだ列より右側にある各モジュールの機能は、欠陥救済を行う前と比較して、全体的に右側へシフトする。
【００４６】
以上、カラムシフト冗長方式の基本的な概念および構成について説明した。
以下に、本実施形態に係るカラムシフト冗長方式を採用したリペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））の構造、配置、具体的な回路構成等について図面に関連付けて説明する。
【００４７】
図６は、本実施形態に係るリペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））の基本的な構成を示す図である。
【００４８】
本実施形態のＲＳ−ＡＳＩＣ２００は、図６に示すように、複数ｍ（図６の例ではｍ＝５）のセル部２０１−１〜２０１−５と、一つの冗長セル部２０２とを有する。
冗長セル部２０２は、前述した冗長カラムに相当する。
【００４９】
本実施形態のＲＳ−ＡＳＩＣ２００においては、ランダムなロジック回路を形成するにあたり、各セル部２０１−１〜２０１−５に上述したセレクタ（以下、ＳＥＬという）２１１およびデータ保持部（ＰＤ）２１２からなる組み合わせ回路が複数行配列された組み合わせ回路部２１０Ｃと、フリップフロップ（Flip Flop(FF)、以下、ＦＦという）２２１およびＦＦ２２１の入出力を切り替え可能のＦＦピン(pin)部２２２からなる順序回路部２２０がｎ（図６の例ではｎ＝４）行配列された順序回路部２２０Ｃと、を配置した多段構造のストラクチャード（Structured）ＡＳＩＣ方式を採用している。
この例では、ＳＥＬ２１１とＰＤ２１２を対とすることで、ルックアップテーブル（ＬＵＴ）の機能を実現している。
【００５０】
この例ではデータ保持部（以下、ＰＤという）２１２は任意のデータをプログラミングすることにより、Ｎ入力で構成可能なすべての論理を実現することが可能な回路である。
ＦＰＧＡなどのＰＬＡ（Programmable Logic Array)や上述した図１の半導体集積回路において、一般的にこのプログラミングは、ＲＡＭなどの記憶デバイスを用いるが、ここでは、ハードワイヤードロジック（Hard Wired Logic）をターゲットとしているため、コンタクトビヤ（VIA）により実現する。
また不良箇所の発生は予測不能であるため、すべての製造プロセスを完了したチップに対し、冗長救済を行うためには、不良箇所を電気的に回避してやる必要がある。
そのため、本実施形態においては、ＰＤ２１２をコンタクトによる「プログラム部」と、そのデータを読み出すための回路部「ＡＦＥ（Adaptive Functional Element)」と定義することも可能で、これにより、回路部の不良を救済することとしている。
【００５１】
また、冗長セル部２０２は、ＳＥＬ２１１からなる組み合わせ回路が複数行配列された組み合わせ回路部２１０Ｒと、ＦＦ２２１０がｎ（図６の例ではｎ＝４）行配列された順序回路部２２０Ｒと、を配置した多段構造を有する。
【００５２】
このように、本実施形態のＲＳ−ＡＳＩＣ２００においては、セル部２０１（−１〜−５）および冗長セル部２０２は、組み合わせ回路部２１０Ｃ、２１０Ｒが回路配列の第１の領域ＡＲ１にまとめて形成され、順序回路部２２０Ｃ，２２０Ｒが組み合わせ回路部２１０Ｃ、２１０Ｒが配置された第１の領域ＡＲ１に隣接する（本実施形態では図中上側に隣接する）第２の領域ＡＲ２に形成されている。
すなわち、セル部２０１（−１〜−５）および冗長セル部２０２は、組み合わせ回路部２１０Ｃ、２１０Ｒと順序回路部２２０Ｃ，２２０Ｒとを異なる領域に配置し、かつ、隣接するように形成されている。
【００５３】
換言すれば、本実施形態のＲＳ−ＡＳＩＣ２００においては、組み合わせ回路部２１０と順序回路部２２０とを独立したレイアウトとし、そのレイアウトは上述した冗長機能を実現するため、冗長シフト方向に同一回路が並ぶ構成を有している。
【００５４】
各セル部２０１−１〜２０１−５は、複数のＳＥＬ２１１と、これに対応するＰＤ２１２で論理を構成し、ＳＥＬ２１１への入出力はプログラム部（ＰＤ）２１２領域を通して行われる。
そして、図６におけるセル部２０１−１は、回路部（ＳＥＬ）列２０１１−１とプログラム部（ＰＤ）列２０１２−１を有する。
図６におけるセル部２０１−２は、回路部（ＳＥＬ）列２０１１−２とプログラム部（ＰＤ）列２０１２−２を有する。
図６におけるセル部２０１−３は、回路部（ＳＥＬ）列２０１１−３とプログラム部（ＰＤ）列２０１２−３を有する。
図６におけるセル部２０１−４は、回路部（ＳＥＬ）列２０１１−４とプログラム部（ＰＤ）列２０１２−４を有する。
図６におけるセル部２０１−５は、回路部（ＳＥＬ）列２０１１−５とプログラム部（ＰＤ）列２０１２−５を有する。
そして、図６における冗長セル部２０２は、回路部（ＡＦＥ）列２０２１を有する。
【００５５】
本実施形態においては、回路部列はＭ＝６列配置され、プログラム部列は（Ｍ−１）＝５列配置されており、この構成に対してカラムシフト冗長方式を採用してセル配置を行う。
【００５６】
図７は、各セル部２０１〜２０５に不良（欠陥）がない場合の配線のレイアウト例を示す図である。
また、図８は、セル部２０１−３に不良（欠陥）がある場合を示す図であり、図９は、セル部２０３に不良（欠陥）がある場合の配線のレイアウト例を示す図である。
【００５７】
チップ内に不良（欠陥）が無い場合、プログラミング部（ＰＤ）２１２にプログラミングされたデータはＰＤ２１２から見て左側のＳＥＬ２１１で選択され、出力値を決定する。
しかし、チップ内の回路に不良がある場合、図７および図８に示すようにＭ不良を回避するため、不良回路部（ＳＥＬ）に接続されていたＰＤ２１２は不良回路列を切り離し、反対側の回路に接続される。
そして、この動作を不良回路列からみて右側すべての回路で同様の処理を行うことにより、不良回路を回避することが可能となる。
【００５８】
図８および図９の例においては、セル部２０１−３の回路部（ＳＥＬ）２１１に不良（欠陥）があることから、図６のセル部２０１−３のプログラム部（ＰＤ）列２０１２−３が図６で右側に位置するセル部２０１−４の回路部（ＳＥＬ）列２０１１−４と接続される。
図６のセル部２０１−４のプログラム部（ＰＤ）列２０１２−４が図６で右側に位置するセル部２０１−５の回路部（ＳＥＬ）列２０１１−５と接続される。
図６のセル部２０１−５のプログラム部（ＳＥＬ）列２０１１−２が図６で右側に位置する冗長セル部２０２の回路部（ＳＥＬ）列２０２１と接続される。
このようにして、冗長置換後は、セル部２０１−３が回路部（ＳＥＬ）列２０１１−３を含む冗長後セル部２０１−３Ａを形成する。
そして、プログラム部（ＰＤ）列２０１２−３と回路部（ＳＥＬ）列２０１１−４とによりセル部２０１−４Ａが形成され、プログラム部（ＰＤ）列２０１２−４と回路部（ＳＥＬ）列２０１１−５とによりセル部２０１−５Ａが形成され、プログラム部（ＰＤ）列２０１２−５と回路部（ＳＥＬ）列２０２１とによりセル部２０２Ａが形成される。
【００５９】
図７および図９には、回路の断面構造と配線例を示している。
図に示すように、回路部（ＳＥＬ）と配線の接続は全てプログラム部（ＰＤ）上部のコンタクトより接続され、スイッチ機構を解して回路部（ＳＥＬ）へと接続される。このため、冗長処理の前後における、上層配線経路の変更は無い。
【００６０】
図１０は、本実施形態に係るリペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））の具体的なレイアウトの第１の構成例を示す図である。
【００６１】
図１０のＲＳ−ＡＳＩＣ２００Ａは、図６に示すような５個のセル部２０１−１〜２０１−５が１行５列に配列されて形成されるセルユニットＣＡＵＮＴ１１〜ＣＡＵＮＴ３２が、３行２列配列され、セルユニットの各配列行の端部、本実施形態では図中の右端部にそれぞれ冗長セル部２０２が配置されて構成されている。
【００６２】
また、本実施形態においては、順序回路はまとめて配置されていることから、たとえば図１１に示すように、クロック（Clock）回路やテスト回路など、回路機能と直接関係の無い回路を埋め込むことが容易になり、ユーザーの開発負担を軽減することが可能となる。
【００６３】
図１２および図１３は、各セル部の組み合わせ回路と順序回路の割合を回路特性に最適なものとしたＲＳ−ＡＳＩＣの具体的なレイアウトの第２および第３の構成例を示す図である。
【００６４】
図１２の第２の構成例のＲＳ−ＡＳＩＣ２００Ｂでは、低周波数デバイスに対応するために、各セル部２０１において、組み合わせ回路部２１０の配列を１６行（段）とし、順序回路部２２０の配列を１行（段）として、セルユニットＣＡＵＮＴが３行２列配列されている。冗長セル部２０２も同様である。
【００６５】
図１３の第３の構成例のＲＳ−ＡＳＩＣ２００Ｃでは、図１１の場合より高周波数デバイスに対応するために、各セル部２０１において、組み合わせ回路部２１０の配列を４行（段）とし、順序回路部２２０の配列を４行（段）として、セルユニットＣＡＵＮＴが７行２列配列されている。冗長セル部２０２も同様である。
【００６６】
図１２および第１３のように構成する理由は以下のとおりである。
回路動作周波数を上げることにより、特性を向上させるタイプの設計思想と、回路動作周波数は抑えるが、組み合わせ回路を複雑にすることにより、特性を向上させる設計思想があり、それらのユーザーに対し「組み合わせ回路と順序回路の割合が同じ」マスタを供給すると、一方は順序回路を使いきり、組み合わせ回路が大量に余るなど、回路面積、特性に悪影響を及ぼす。
そこで、たとえば同一（類似）アプリケーションにおけるプラットフォームチップを毛形成する場合に、組み合わせ回路と順序回路の割合を最適化することにより、特性と面積においてバランスの良い構成でマスタを作製することができる。
【００６７】
図１４は、本実施形態に係るＲＳ−ＡＳＩＣの具体的なレイアウトの第４の構成例を示す図である。
【００６８】
図１４のＲＡＳ−ＡＳＩＣ２００Ｄにおいては、インバータ（Inverter）、バッファ（Buffer）、ナンドゲート（NAND gate）、セレクタ（Selector）など単純な構成の論理ゲートを冗長対象外とし、独立に配置することにより、特性と面積の最適化を実現している。
図１４の第４の構成例では、冗長対象外回路部２４０が、各セル部２０１および冗長セル部２０２の組み合わせ回路部２１０の組み合わせ回路間に挿入されている。
そのレイアウトは上述した冗長機能を実現するため（妨げないため）、冗長シフト方向に同一回路が並ぶ構成を有している。
【００６９】
ＬＵＴで使用するゲート（Gate）は数十ゲート（約20gate）程度であるが、ＬＵＴを使って反転機能（インバータInverter: 0.5gate）や少数入力ＮＡＮＤゲート(2input NAND: 1gate)などを構成すると無駄になる回路が多いばかりでなく、特性も悪化するおそれがある。そのため、必要な部分には最適レイアウトされた単純ゲートを使用し、特性の向上と面積の最適化を狙う。この際、これら冗長対象外の回路部２４０が極力少なくなるような回路構成（net）とすることが望ましい。
【００７０】
図１５は、本実施形態に係る冗長対象外回路部の具体的な使用例を示す図である。
この例では、入力Ｄ０〜Ｄ２が論理回路２５０に入力され、論理回路２５０の出力がＦＦ２２１−１を介して出力Ｑ０が得られ、また、論理回路２５０の出力がインバータＩＮＶ１を介して２入力ナンドゲートＮＧＴ１の一入力に供給され、ナンドゲートＮＧＴ１の他入力に入力Ｄ３が供給され、ナンドゲートＮＧＴ１の出力がＦＦ２２１−２を介して出力Ｑ１が得られる。
これを図１６（Ａ）に示すように、論理回路、インバータ、およびナンドゲートをすべてＬＵＴで構成すると回路規模が大きくなる。
これに対して、図１６（Ｂ）に示すように、論理回路のみをＬＵＴで構成し、反転等の単純な論理は冗長対象外として構成することによりゲート規模の削減を図ることができる。
【００７１】
図１７は、図１６（Ｂ）の構成を採用した場合のＲＳ−ＡＳＩＣのレイアウト上に形成例を示す図である。
図１７の例では、セル部２０１−２の１行目のＳＥＬ２１１とＰＤ２１２によりＬＵＴ２５０Ａが構成され、４行目のＳＥＬ２１１とＰＤ２１２を通して冗長対象外回路部２４０−１のインバータＩＮＶ１を介して２入力ナンドゲートＮＧＴ１の入力に接続されている。
ＬＵＴ２５０Ａの出力がセル部２０１の１行目のＰＤ２１２により形成され、この出力信号が同セル部の順序回路部２２０Ｃの４行目のＦＦピン２２２を通してＦＦ２１１−１に入力されて信号Ｑ０が得られる。
また、ナンドゲートＮＧＴ１の出力は同セル部２０１−２の１行目のＳＥＬ２１１を介して左隣のセル部２０１−１の１行目のＰＤ２１２を通して、同セル部の順序回路部２２０Ｃの４行目のＦＦピン２２２を通してＦＦ２１１−２に入力されて信号Ｑ１が得られる。
【００７２】
以上説明したように、セル部２０１（−１〜−５）および冗長セル部２０２は、組み合わせ回路部２１０Ｃ、２１０Ｒが回路配列の第１の領域ＡＲ１にまとめて形成され、順序回路部２２０Ｃ，２２０Ｒが組み合わせ回路部２１０Ｃ、２１０Ｒが配置された第１の領域ＡＲ１に隣接する（本実施形態では図中上側に隣接する）第２の領域ＡＲ２に形成されている。すなわち、セル部２０１（−１〜−５）および冗長セル部２０２は、組み合わせ回路部２１０Ｃ、２１０Ｒと順序回路部２２０Ｃ，２２０Ｒとを異なる領域に配置し、かつ、隣接するように形成されていることから、以下の効果を得ることができる。
プロセス立ち上げ（生産）初期の生産歩留まりが安定しない状態において、高歩留まりで良品を確保することが可能となる。
また、ストラクチャードASICとすることにより、開発期間の短TAT化を図ることができる。
また、アプリケーションを限定することにより、より最適な構成で実現できるストラクチャードＡＳＩＣクロックk回路設計やテスト回路設計にかける負担を軽減することができる。
【００７３】
また、以上説明したように、図１に示す半導体集積回路によれば、４行９列のモジュールから１列を除いた４行８列のモジュールが選択され、この選択された４行８列のモジュールと４行８列の入出力部とが１対１に接続される。また、同一の行に属する入出力部の各々に、同一の行に属する２つのモジュールから選択された１つのモジュールが接続される。
これにより、同一の入出力部Ｐｋｉに接続される２つのモジュール（Ｍｋｉ、Ｍｋ（ｉ＋１））を、入出力部Ｐｋｉとの距離の違いが小さくなるように配置することが可能になる。たとえば図１に示すように、各行の８つの入出力部（Ｐｋ１〜Ｐｋ８）を等しい間隔で配列することにより、入出力部Ｐｋｉとの距離が互いに等しくなるように２つのモジュール（Ｍｋｉ、Ｍｋ（ｉ＋１））を配置することができる。
入出力部とモジュールとの距離の違いを小さくすることによって、両者を接続する配線長の違いを小さくすることができる。したがって、欠陥の救済に伴ってモジュールと入出力部との接続を切り替えた場合に生じる信号遅延の変化を小さくすることができる。
【００７４】
また、モジュールＭｋｉおよびＭｋ（ｉ＋１）と入出力部Ｐｋｉとの位置関係に基づいて、欠陥救済による信号遅延の変化がどの程度になるかを正確に予測することができるため、たとえば先に述べた特許文献１のように正確な予測が難しい場合に比べて、遅延マージンを小さく見積もることが可能になる。これにより、高速に動作する回路を実現できる。
【００７５】
さらに、図１に示す半導体集積回路によれば、１つの入出力部に２つのモジュールの一方を選択して接続する簡易な回路構成によって欠陥の救済を行うことができるため、回路の増加や余分な消費電力の発生を最小限に抑えることができる。
接続の切替えに用いるスイッチ回路や制御部、欠陥情報を保持するための記憶部には、従来の一般的な方法によって設計、製造可能な回路を用いることができるため、欠陥救済機能を設けることによるコストの増大を微小に抑えることができる。
【００７６】
また、図１に示す半導体集積回路によれば、各入出力部に機能設定データを保持するデータ保持部ＰＤが設けられており、このデータ保持部ＰＤに保持される機能設定データがモジュール選択部を介して各モジュールに入力される。各モジュールの機能は、入力される機能設定データに応じて設定される。
これにより、一の入出力部に接続されるモジュールが欠陥救済のために切り替えられても、当該一の入出力部に接続されるモジュールを、そのデータ保持部ＰＤに保持される機能設定データに応じた一定の機能に設定することができる。
【００７７】
欠陥救済に伴って入出力部とモジュールとの接続を切り替えた場合、各モジュールの機能は、接続先の入出力部に合わせて変更する必要がある。そのため、もし、データ保持部ＰＤがモジュールの内部に設けられていると、欠陥救済を行った場合には、データ保持部ＰＤの機能設定データを接続先の入出力部に合わせて書き換えなくてはならない。これを実現するには、たとえば、データ保持部ＰＤを書換え可能な記憶素子で構成する方法や、モジュールの欠陥を検査した後に電子線ビーム装置などによってデータ保持部ＰＤの配線を固定する方法などが考えられる。
しかしながら、書換え可能な記憶素子を用いてデータ保持部ＰＤを構成する方法では、ビヤ等によって配線を固定する方法に比べて回路構成が大幅に複雑化し、回路面積の増大や故障率の上昇を招くという不利益がある。また、電子線ビーム装置などによってデータ保持部ＰＤの配線を固定する方法では、従来の一般的な製造ラインを利用できなくなる不利益や、製造効率が低下するという不利益がある。
これに対し、図１に示す半導体集積回路によれば、入出力部とモジュールとの接続を切り替えても、データ保持部ＰＤに保持される機能設定データを一切変更する必要がないため、データ保持部ＰＤを固定の配線によって構成することができる。したがって、書換え可能な記憶素子を用いる方法や、電子線ビーム装置等を用いて配線を固定する方法における上述した不利益を回避することができる。
【００７８】
更に、一般回路ブロック１００には、欠陥の救済を行うために回路を付加する必要が全くないため、従来の回路をそのまま使用することが可能になり、欠陥救済機能を設けることによる設計の負担を軽減できる。
【００７９】
また、モジュールを規則的に配置する構造によって、配線の間隔や素子の特性等を最適化し易くなるため、モジュールをランダムに配置する構造に比べて回路面積の増大や回路特性のばらつきを抑制することができる。
【００８０】
しかも、図１に示す半導体集積回路によれば、入出力部とモジュールとの接続状態を列ごとに一括して制御することができるため、個々のモジュールについて入出力部との接続状態を独立に制御する場合に比べて制御信号の数を大幅に減らすことが可能であり、制御部の回路構成を簡易化することができる。
【００８１】
また、故障を検査する場合には、列ごとに故障の有無を検査すれば良いため、１つ１つのモジュールを検査する場合に比べて検査時間を短縮することができる。
【００８２】
更には、半導体集積回路の内部にヒューズ等の記憶素子を利用して故障モジュールの情報を書き込む場合には、列ごとに故障の有無の情報を書き込めば良いため、情報量が少なくなり、書き込み処理に要する時間を短縮することができる。
【００８３】
なお、本実施形態に係る半導体集積回路では、故障したモジュールが存在する場合に、これと同じ列に属する全てのモジュールが入出力部から切り離されるため、正常なモジュールも無駄になってしまう。そのため、故障の発生確率が高い場合には、無駄になるモジュールの数が多くなる傾向がある。しかしながら、故障の発生確率があまり高くない場合や、比較的小規模のモジュールを大量に有する場合には、個々のモジュールについて接続状態の制御を行う方式に比べて、同一の歩留りを達成するために必要な回路面積を抑えることができる。
【００８４】
また、図１に示す半導体集積回路においては、同一行の入出力部（Ｐｋ１〜Ｐｋ８）が直線上に配列されているが、これらはたとえば曲線や蛇行した線の上に配列されても良いし、ジグザグに配列されても良い。どのような線上であっても、入出力部Ｐｋ１〜Ｐｋ８が等しい間隔で配列されていれば、入出力部Ｐｋｉとの距離が互いに等しくなるように２つのモジュール（Ｍｋｉ、Ｍｋ（ｉ＋１））を配置することが可能である。
【００８５】
上述した実施形態ではモジュールや入出力部を行列状に配列しているが、本発明はこれに限定されない。たとえば、上述した行列における行の数を１つにしても良い。この場合、モジュールや入出力部は１本の直線に沿って配列しても良いし、曲線や蛇行線などの任意の線に沿って配列しても良いし、あるいはジグザグ状に配列しても良い。
【００８６】
上述した半導体集積回路は、その全てを同一の半導体チップに形成しても良いし、たとえばＳＩＰ（system in package）などの技術を用いることによって複数の半導体チップに分けて形成しても良い。
【図面の簡単な説明】
【００８７】
【図１】実施形態に係る半導体集積回路の構成の一例を示す図である。
【図２】入出力部とモジュールの構成例を示す図である。
【図３】図１に示す半導体集積回路における欠陥救済の一例を示す図である。
【図４】欠陥の救済に伴って機能設定データの入力方向が変化する様子を説明するための第１の図である。
【図５】欠陥の救済に伴って機能設定データの入力方向が変化する様子を説明するための第２の図である。
【図６】本実施形態に係るリペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））の基本的な構成を示す図である。
【図７】図６の各セル部に不良（欠陥）がない場合の配線のレイアウト例を示す図である。
【図８】図６のセル部に不良（欠陥）がある場合を示す図である。
【図９】図６のセル部に不良（欠陥）がある場合の配線のレイアウト例を示す図である。
【図１０】本実施形態に係るＲＳ−ＡＳＩＣの具体的なレイアウトの第１の構成例を示す図である。
【図１１】順序回路部にクロック（Clock）回路やテスト回路を設ける例を説明するための図である。
【図１２】各セル部の組み合わせ回路と順序回路の割合を回路特性に最適なものとしたＲＳ−ＡＳＩＣの具体的なレイアウトの第２の構成例を示す図である。
【図１３】各セル部の組み合わせ回路と順序回路の割合を回路特性に最適なものとしたＲＳ−ＡＳＩＣの具体的なレイアウトの第３の構成例を示す図である。
【図１４】本実施形態に係るＲＳ−ＡＳＩＣの具体的なレイアウトの第４の構成例を示す図である。
【図１５】本実施形態に係る冗長対象外回路部の具体的な使用例を示す図である。
【図１６】本実施形態に係る冗長対象外回路部を用いる場合と用いない場合の例を示す図である。
【図１７】図１６（Ｂ）の構成を採用した場合のＲＳ−ＡＳＩＣのレイアウト上に形成例を示す図である。
【符号の説明】
【００８８】
５０・・・モジュール選択部、１００・・・一般回路ブロック、ＰＤ・・・データ保持部、ＳＥＬ・・・セレクタ、Ｍ１１〜Ｍ１９，Ｍ２１〜Ｍ２９，Ｍ３１〜Ｍ３９，Ｍ４１〜Ｍ４９・・・モジュール、Ｐ１１〜Ｐ１８，Ｐ２１〜Ｐ２８，Ｐ３１〜３８，Ｐ４１〜Ｐ４８…入出力部、２００，２００Ａ〜２００Ｄ・・・リペアブルストラクチャードＡＳＩＣ（Repairable Structured ASIC（RS-ASIC））、２０１−１〜２０１−５・・・セル部、２０２・・・冗長セル部、２０１−３Ａ・・・冗長後セル部、２０１−４Ａ，２０１−５、２０２Ａ・・・セル部、２１０・・・組み合わせ回路部、２１１・・・セレクタ（ＳＥＬ）、２１２・・・データ保持部（ＰＤ）、２２０・・・順序回路部、２２１・・・フリップフロップ（ＦＦ）、２２２・・・ＦＦピン、２０１１−１〜２０１１−５、２０２１・・・回路部（ＳＥＬ）列、２０１２−１〜２０１２−５・・・プログラム部（ＰＤ）列。
【図１】
2008270249.tif 000003
【図２】
2008270249.tif 000004
【図３】
2008270249.tif 000005
【図４】
2008270249.tif 000006
【図５】
2008270249.tif 000007
【図６】
2008270249.tif 000008
【図７】
2008270249.tif 000009
【図８】
2008270249.tif 000010
【図９】
2008270249.tif 000011
【図１０】
2008270249.tif 000012
【図１１】
2008270249.tif 000013
【図１２】
2008270249.tif 000014
【図１３】
2008270249.tif 000015
【図１４】
2008270249.tif 000016
【図１５】
2008270249.tif 000017
【図１６】
2008270249.tif 000018
【図１７】
2008270249.tif 000019