(57)【特許請求の範囲】
【請求項１】
標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、
１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路を備えている、ことを特徴とする機能可変型セル。
【請求項２】
標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、
１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路と、
前記１つ又は複数の入力信号のうちの少なくとも１つと、前記機能可変型の回路の出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を、出力端子より出力するセレクタ回路と、
を備えている、ことを特徴とする機能可変型セル。
【請求項３】
標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、
１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路と、
前記機能可変型の回路の出力信号を、データ入力端子より入力し、クロック入力端子に入力されるクロック信号により、前記データ入力端子に入力される信号をサンプルして出力端子から出力するフリップフロップと、
前記機能可変型の回路の出力信号と、前記フリップフロップの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、
を備えている、ことを特徴とする機能可変型セル。
【請求項４】
標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、
第１の入力信号を一の入力端子より入力し、標準セルより構成されている第１の回路網と、
前記第１の入力信号を一の入力端子より入力し、第２の入力信号を他の入力端子より入力し、制御端子に入力される制御信号に基づき、機能が可変される機能可変セルを含んで構成されている第２の回路網と、
前記第１の回路網と前記第２の回路網の出力信号とを第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号の一方を出力端子より出力するセレクタ回路と、
を備えている、ことを特徴とする機能可変型セル。
【請求項５】
標準セルと混在する形態にて配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、
１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路と、
前記１つ又は複数の入力信号を対応する入力端子より入力し、前記１つ又は複数の入力信号に関して予め定められた所定の論理演算結果である出力信号を出力端子より出力する論理回路と、
前記論理回路からの出力信号と、前記機能可変型の回路からの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、
を備えている、ことを特徴とする機能可変型セル。
【請求項６】
前記機能可変型の回路が、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応したアドレスに記憶されている信号を取り出し出力信号として出力するルックアップテーブルよりなり、
前記ルックアップテーブルは、前記制御信号の値にしたがって、前記入力信号と出力信号との論理の対応関係が可変に設定される、ことを特徴とする請求項１、２、４、５のいずれか一に記載の機能可変型セル。
【請求項７】
前記セレクタ回路を複数備え、前記論理回路から出力される出力信号と前記機能可変型の回路から出力される出力信号とが、複数の前記セレクタ回路の第１、第２の入力端子にそれぞれ供給され、複数の前記セレクタ回路の出力端子にそれぞれ接続された複数の出力信号線を有し、複数の前記セレクタ回路で選択された信号が対応する前記出力信号線よりそれぞれ出力される、ことを特徴とする請求項２乃至５のいずれか一に記載の機能可変型セル。
【請求項８】
前記機能可変型の回路が、複数段のフリップフロップを縦続接続してなるシフトレジスタを備え、
前記シフトレジスタの初段の前記フリップフロップのデータ入力端子には、１つの前記制御信号をなす制御データ信号が入力され、複数段の前記フリップフロップは、他の前記制御信号をなす制御クロック信号によって駆動され、初段の前記フリップフロップに入力されたデータ信号が、後段の前記フリップフロップに伝搬させる構成とされており、
前記シフトレジスタのそれぞれの前記フリップフロップの出力信号を入力し、入力される選択制御信号に基づき、１つの前記フリップフロップの出力信号を選択して出力するセレクタと、
前記機能可変型の回路に入力される前記入力信号をアドレス信号として受け取り、前記アドレス信号をデコードして前記選択制御信号を生成し前記セレクタに出力するデコーダと、
を備えたルックアップテーブル回路を少なくとも１つ備えている、ことを特徴とする請求項１乃至５のいずれか一記載の機能可変型セル。
【請求項９】
縦続形態に接続された複数段の前記ルックアップテーブル回路を備え、
相隣る２つの段の前記ルックアップテーブル回路について、前段の前記ルックアップテーブル回路の最終段のフリップフロップの出力信号が、後段の前記ルックアップテーブル回路の初段のフリップフロップのデータ入力端子に入力され、前記アドレス信号と前記制御クロック信号が、複数の前記ルックアップテーブル回路に、共通に入力される、ことを特徴とする請求項８記載の機能可変型セル。
【請求項１０】
請求項１乃至９のいずれか一に記載の機能可変型セルを備え、
入力されるクロック信号により、入力信号をサンプリングするフリップフロップ回路を１つ又は複数段縦続形態に備えており、
前記フリップフロップ回路の出力信号が対応する前記機能可変型セルへ制御信号として入力される構成とされている、半導体集積回路。
【請求項１１】
セルライブラリに予め登録されているセルを予め定められた仕様に基づき配置及び配線して構成される半導体集積回路において、
与えられた制御信号に基づき、機能の変更、機能の停止、及び、機能の活性化のうちの少なくとも１つを制御する手段を備えた機能可変型セルを有する、ことを特徴とする半導体集積回路。
【請求項１２】
セルライブラリに予め登録されているセルを予め定められた仕様に基づき配置及び配線して構成される半導体集積回路において、
前記半導体集積回路の製造時点では、前記仕様には影響を与えない機能に設定されている、１又は複数の機能可変型セルを含み、
前記機能可変型セルは、与えられた制御信号に基づき、機能の変更、機能の停止、及び、機能の活性化のうちの少なくとも１つを制御する手段を備え、
前記半導体集積回路の製造後の仕様の変更、及び／又は、バグの修正に対応可能とされてなる、ことを特徴とする半導体集積回路。
【請求項１３】
半導体集積回路の製造後における前記半導体集積回路の仕様変更、及び／又は、前記半導体集積回路におけるバグの修正に応じて、前記半導体集積回路内部で生成される制御信号、あるいは、前記半導体集積回路の外部から与えられる制御信号の値によって、機能の変更、機能の停止、及び、機能の活性化のうちの少なくとも１つを制御する手段を備えた機能可変型セルを有する、ことを特徴とする半導体集積回路。
【請求項１４】
前記機能可変型セルが、標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされ、１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路を備えている、ことを特徴とする請求項１１乃至１３のいずれか一に記載の半導体集積回路。
【請求項１５】
前記機能可変セルが、前記制御信号の値によって機能が可変とされる前記機能可変型の回路の出力信号と、標準セルからなる論理回路の出力信号とを入力し、一方を選択して出力するセレクタ回路を有し、前記セレクタ回路に与える選択制御信号によって、前記機能可変型セルの機能の停止、及び、機能の活性化が制御される、ことを特徴とする請求項１４に記載の半導体集積回路。
【請求項１６】
前記機能可変型セルは、標準セルと同じ条件で、配置、及び配線されている、ことを特徴とする請求項１１乃至１５のいずれか一に記載の半導体集積回路。
【請求項１７】
前記機能可変型のセルの入力信号線と出力信号線に伝搬する信号の遅延時間が、製造後の仕様の変更に適合するように、あらかじめ、前記機能可変型セルが、配置、及び配線されている、ことを特徴とする請求項１１乃至１６のいずれか一に記載の半導体集積回路。
【請求項１８】
前記半導体集積回路に設けられる複数の機能可変型セルにおいて、機能の変更、機能の停止、及び、機能の活性化のうち少なくとも１つを制御する制御信号が、１又は複数のグループに分割されており、
それぞれの前記グループ内にある複数の前記制御信号に与えるデータ値が、シリアルに転送される、ことを特徴とする請求項１１乃至１７のいずれか一に記載の半導体集積回路。
【請求項１９】
前記機能可変型セルが、基本ゲートよりなる、論理演算回路、算術演算回路、クロック同期回路、セレクタ回路、メモリ回路のうち、複数の機能のいずれかに、前記制御信号によって選択自在とされている、ことを特徴とする請求項１１乃至１８のいずれか一に記載の半導体集積回路。
【請求項２０】
前記機能可変セルが、複数の標準セルで構成されている、ことを特徴とする請求項１１乃至１９のいずれか一に記載の半導体集積回路。
【請求項２１】
前記機能可変セルが、マトリックス状またはアレイ状に規則正しく配列されることを要さずに、標準セルと混在する形態で、配置、及び配線されている、ことを特徴とする請求項１１乃至２０のいずれか一に記載の半導体集積回路。
【請求項２２】
半導体集積回路の仕様を規定する、ハードウェア記述言語によるハードウェア記述に基づき、論理合成手段にて論理合成を行う、半導体集積回路の設計システムにおいて、
複数種の標準セルを標準セルライブラリとして記憶する記憶手段と、
前記標準セルと混在する形態にて配置及び配線が行われ、与えられた制御信号により、論理機能が可変とされる複数種の機能可変型のセルを予め登録した機能可変セルライブラリを記憶する記憶手段と、
を備え、
前記論理合成手段は、半導体集積回路のハードウェア記述を入力して解析し、前記ハードウェア記述に機能可変型のセルが指定されている場合、前記機能可変セルライブラリを参照して該当する機能可変型のセルを選択し論理合成を行う、ことを特徴とする半導体集積回路の設計システム。
【請求項２３】
前記機能可変セルライブラリに登録されている前記機能可変型のセルが、
１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路を有する、ことを特徴とする請求項２２記載の半導体集積回路の設計システム。
【請求項２４】
前記機能可変型のセルが、前記１つ又は複数の入力信号を対応する入力端子より入力し、前記１つ又は複数の入力信号に関して予め定められた所定の論理演算結果である出力信号を出力端子より出力する標準セルよりなる論理回路と、
前記論理回路からの出力信号と、前記機能可変型の回路からの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、
を有する、ことを特徴とする請求項２３記載の半導体集積回路の設計システム。
【請求項２５】
前記機能可変型のセルが、前記１つ又は複数の入力信号のうちの少なくとも１つと、前記機能可変型の回路の出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を、出力端子より出力するセレクタ回路を有する、ことを特徴とする請求項２３記載の半導体集積回路の設計システム。
【請求項２６】
前記機能可変型のセルが、前記機能可変型の回路の出力信号を、データ入力端子より入力し、クロック入力端子に入力されるクロック信号により、前記データ入力端子に入力される信号をサンプルして出力端子から出力するフリップフロップと、
前記機能可変型の回路の出力信号と、前記フリップフロップの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、
を有する、ことを特徴とする請求項２３記載の半導体集積回路の設計システム。
【請求項２７】
前記論理合成手段は、前記ハードウェア記述を解析し、前記ハードウェア記述に指定される機能可変度のレベル情報が０の場合には、前記標準セルライブラリから標準セルを選択し、前記ハードウェア記述に機能可変度のレベル情報が指定されている場合には、指定された機能可変度のレベルに対応した機能可変型セルを、前記機能可変セルライブラリから選択する手段を備えている、ことを特徴とする請求項２２乃至２６のいずれか一に記載の半導体集積回路の設計システム。
【請求項２８】
前記論理合成手段による論理合成結果に基づき、回路の配置及び配線を行う手段が、前記機能可変型セルを、標準セルと同じ条件で、配置、及び配線する、ことを特徴とする請求項２２乃至２６のいずれか一に記載の半導体集積回路の設計システム。
【請求項２９】
前記配置及び配線を行う手段は、前記機能可変型のセルの入力信号線と出力信号線に伝搬する信号の遅延時間が、製造後の仕様の変更に適合するように、前記機能可変型セルの配置、及び配線を行う、ことを特徴とする請求項２８記載の半導体集積回路の設計システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、半導体集積回路に関し、特に、製造後に論理の変更を可能とし、仕様の変更、バグの修正等に対応可能とした半導体集積回路に関する。
【０００２】
【従来の技術】
セルライブラリに登録されているスタンダードセルを顧客の仕様に沿って配置、配線することで、仕様を満足しようとする半導体集積回路として、セルベースＩＣがある。
【０００３】
また、セルベースＩＣで使用するスタンダードセルよりも少ないトランジスタ数で構成された標準セルをマトリックス状またはアレイ状に規則正しく配置し、それぞれの標準セルを上層の数枚の配線マスクによって顧客の仕様に沿って接続するゲートアレイがある。
【０００４】
また、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルやセレクタ回路を、マトリックス状またはアレイ状に規則正しく配置、配線し、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができるＦＰＧＡ(フィールド・プログラマブル・ゲート・アレイ)がある。
【０００５】
また、ＦＰＧＡを、ＩＰマクロとしてチップの１部に集積したＦＰＧＡ混載セルベースＩＣも知られている。
【０００６】
［セルベースＩＣ］
従来のセルベースＩＣでは、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができない。このため、例えば１チップに１０００万のオーダのトランジスタを集積するような半導体集積回路では、その機能が顧客の仕様を満足するかどうかを検証するのに、例えば半年から１年程度以上を要し、非常に長い時間・作業工数が必要とされている。また、このような長い時間をかけて検証しても、半導体集積回路を製造した後で修正することは避けられない場合があり、結局は、何度も半導体集積回路を製造しなおすことが必要となり、半導体集積回路のコスト増加を招いている。
【０００７】
［ゲートアレイ］
ゲートアレイは、上層の数枚の配線マスクによって顧客の仕様に沿って標準セルを接続するため、半導体集積回路を製造しなおすことが必要となっても、マスク製造枚数が少なくなり、セルベースＩＣで問題となった半導体集積回路のコスト増加を抑えることができる。
【０００８】
しかし、標準セルが、セルベースＩＣでのスタンダードセルに比べて単純な構造であること、及び、標準セルをあらかじめマトリックス状またはアレイ状に規則正しく並べた上で、必要な機能を、上層の配線の接続だけで実現すること、から、セル間の平均配線長が長くなり、配線領域を確保するために標準セルを無駄に消費し、セル使用率が低くなる、という問題点がある。そして、セル使用率が低くなると、ある機能を実現するときに必要な面積が大きくなる、という問題点がある。また、平均配線長が長くなると、半導体集積回路の消費電力が大きくなったり、動作速度が遅くなる、という問題点がある。また、同じ機能を実現するときに無駄なトランジスタを使ったり、必要なトランジスタの数が多くなるため、半導体集積回路の面積や消費電力が大きくなったり、動作速度が遅くなる、という問題点もある。
【０００９】
［ＦＰＧＡ］
ＦＰＧＡは、ゲートアレイのようにあらかじめ機能可変セルがマトリックス状またはアレイ状に規則正しく並べてあり、機能可変セルの機能と機能可変セル間の配線接続を半導体集積回路の製造後にプログラムすることができるため、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる。
【００１０】
しかし、ＦＰＧＡで実現できる機能を増やすために、ＦＰＧＡで用いられる機能可変セルは、あらかじめ十分な種類だけ、外部から機能を可変できる必要がある。この場合、個々の機能可変セルは、セルベースＩＣでのスタンダードセルに比べて、複雑な構造となってしまう。つまり、ある機能を実現するときに必要な面積が大きくなる、という問題点がある。面積が大きくなると半導体集積回路の消費電力が大きくなったり、動作速度が遅くなる、という問題点がある。
【００１１】
また、機能可変セルをあらかじめマトリックス状またはアレイ状に規則正しく並べた上で、必要な機能を、機能可変セルそれぞれの機能と機能可変セル間のデータの流れを制御することで実現していることから、機能可変セル間の平均配線長が長くなり、配線領域を確保するために機能可変セルを無駄に消費し、セル使用率が低くなる、という問題点がある。
【００１２】
前述したように、セル使用率が低くなると、ある機能を実現するときに必要な面積が大きくなる、という問題点がある。また、平均配線長が長くなると、半導体集積回路の消費電力が大きくなったり、動作速度が遅くなる、という問題点がある。また、同じ機能を実現する際に、無駄なトランジスタを使ったり、必要なトランジスタの数が多くなるため、半導体集積回路の面積や消費電力が大きくなったり、動作速度が遅くなる、という問題点もある。
【００１３】
［ＦＰＧＡ混載セルベースＩＣ］
ＦＰＧＡをＩＰマクロとしてチップの一部に集積したＦＰＧＡ混載セルベースＩＣでは、半導体集積回路の一部にＩＰマクロを配置し、そのＩＰマクロは、あらかじめ機能可変セルがマトリックス状またはアレイ状に規則正しく並べてあり、機能可変セルの機能と機能可変セル間の配線接続を、半導体集積回路の製造後にプログラムすることができるため、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる。
【００１４】
しかし、ＩＰマクロで実現できる機能を増やすために、ＩＰマクロで用いられる機能可変セルは、あらかじめ十分な種類だけ、外部から、機能を可変できる必要がある。この場合、個々の機能可変セルは、セルベースＩＣでのスタンダードセルに比べて、複雑な構造となってしまう。つまり、ある機能を実現するときに必要な面積が大きくなる、という問題点がある。面積が大きくなると半導体集積回路の消費電力が大きくなったり、動作速度が遅くなるという問題点がある。
【００１５】
また、ＦＰＧＡをＩＰマクロとしてチップの一部に集積したＦＰＧＡ混載セルベースＩＣでは、機能可変セルを、あらかじめマトリックス状またはアレイ状に規則正しく配列した上で、必要な機能を、機能可変セルそれぞれの機能と機能可変セル間のデータの流れを制御することによって実現しているため、機能可変セル間の平均配線長が長くなり、配線領域を確保するために機能可変セルを無駄に消費し、セル使用率が低くなる、という問題点がある。前述したように、セル使用率が低くなると、ある機能を実現するときに必要な面積が大きくなる、という問題点がある。また、平均配線長が長くなると半導体集積回路の消費電力が大きくなったり、動作速度が遅くなる、という問題点がある。また、同じ機能を実現するときに無駄なトランジスタを使ったり、必要なトランジスタの数が多くなるため、半導体集積回路の面積や消費電力が大きくなったり、動作速度が遅くなる、という問題点もある。
【００１６】
また、ＩＰマクロとして、機能可変セルを、半導体集積回路に配置、配線すると、機能可変セルは、マトリックス状またはアレイ状に配置される。これらの機能可変セルは、ＡＮＤやＮＡＮＤやＯＲやＮＯＲやＥＸＯＲやＥＸＮＯＲなどの論理演算回路、加算器や減算器や乗算器や除算器などの算術演算回路、フリップフロップやラッチなどのクロック同期回路、セレクタ回路、メモリ回路の中で２つ以上の機能のいずれかに機能を変えることができるようにする必要があるため、通常のセルベースＩＣのスタンダードセルに比べてその面積が大きくなる。
【００１７】
つまり、機能可変セルが、マトリックス状またはアレイ状に配列して構成したＩＰマクロを用いてある機能を実現しようとすると、本来は、機能可変セルで実現しなくても、スタンダードセルで実現できるような、単純であり、かつ半導体集積回路製造後の変更が必要のないような機能であっても、機能可変セルを用いて実現することで、その面積が大きくなったり、消費電力が大きくなったり、動作速度が遅くなる。
【００１８】
なお、論理を変更する技術に関する刊行物として下記のものがある。
（ａ）製造後に論理構成を変更自在とした半導体集積回路として、例えば特開平１０−２４２８４１号公報には、論理設計後、レイアウト設計後のシミュレーションやパッケージング後のテスタ評価で問題がなく実動作によるシステム評価で問題があることが発覚した場合であっても、論理設計をやりなおすことがなく、論理ＬＳＩを救済することができ、システム開発期間を短縮するための論理集積回路として、目的の論理を構成するフリップフロップに対して、救済データを記憶可能なラッチ回路と、システム動作クロック信号を遅延するインバータと、システム動作クロック信号とインバータによる反転出力とを被選択信号入力端子より入力し、ラッチ回路からの救済データ（救済データのデータチェーンとしても出力される）を選択制御信号として入力し、２つの被選択信号入力端子の１つを選択して、該フリップフロップのクロック入力端子に供給するセレクタと、を備えた救済機能付きフリップフロップ回路セルの構成が開示されている。この半導体集積回路では、フリップフロップ回路に供給されるクロック信号の信号種別をラッチ回路の情報に基づき、選択している。
（ｂ）特開昭６０−２０４１１８号公報には、記憶手段に記憶された情報に従い論理回路中の信号線を活性化、非活性化することにより、論理回路の論理機能を変更し、任意の論理関数を実現する方法と装置の構成が開示されている。
（ｃ）特開平４−２０７８１４号公報には、複数のゲート回路の制御端子に与える制御信号に応じて複数の回路機能を選択できるようにした電子回路の構成が開示されている。
（ｄ）特開平１０−９３４２１号公報には、回路の組上げ後に機能を変更することが容易であり、素子の無駄を減少させることができる二入力組合せ論理回路として信号値１または０をとり得る入力信号ａと固定的に信号値１である信号１のうち１つの信号を選択する第１のスイッチと、信号値１または０をとり得る入力信号ｂと固定的に信号値０である信号０のうち１つの信号を選択する第２のスイッチと、入力信号ａと信号１と固定的に信号値０である信号０のうち１つの信号を選択する第３のスイッチと、入力信号ｂと信号１と信号０のうち１つの信号を選択する第４のスイッチと、第１、第２のスイッチの信号が等しいとき第３のスイッチの信号を出力し、第１、第２のスイッチの信号が異なるとき第４のスイッチの信号を出力する構成の論理回路が提案されている。
【００１９】
【発明が解決しようとする課題】
したがって、本発明が解決しようとする課題は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる半導体集積回路を提供することにある。
【００２０】
また、本発明が解決しようとする他の課題は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを実現しながら、チップ面積増加の割合を低く抑える半導体集積回路を提供することにある。
【００２１】
また、本発明が解決しようとする他の課題は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを実現しながら、消費電力の増加の割合を低く抑える半導体集積回路を提供することにある。
【００２２】
また、本発明が解決しようとするさらに他の課題は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを実現しながら、動作速度低下の割合を低く抑える半導体集積回路を提供することにある。
【００２３】
また、本発明が解決しようとするさらに他の課題は、半導体集積回路に、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを実現しながら、機能可変セルのセル使用率を向上させる半導体集積回路を提供することにある。
【００２４】
本発明が解決しようとする他の課題は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる半導体集積回路を自動設計するシステムを提供することにある。
【００２５】
【課題を解決するための手段】
前記課題の少なくとも１つを解決する本発明の１つのアスペクトに係る回路は、標準セルと混在して配置及び配線が行われ、与えられた制御信号により論理機能が可変とされる機能可変型セルであって、１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路を備えている。本発明においては、上記機能可変型の回路と、前記１つ又は複数の入力信号のうちの少なくとも１つと、前記機能可変型の回路の出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を、出力端子より出力するセレクタ回路と、を備えた構成としてもよい。
【００２６】
本発明に係る機能可変型セルは、１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路と、前記機能可変型の回路の出力信号を、データ入力端子より入力し、クロック入力端子に入力されるクロック信号により、前記データ入力端子に入力される信号をサンプルして出力端子から出力するフリップフロップと、前記機能可変型の回路の出力信号と、前記フリップフロップの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、を備えている。
【００２７】
本発明に係る機能可変型セルは、１つ又は複数の入力信号を対応する入力端子より入力し、１つ又は複数の制御信号を対応する制御端子より入力し、前記１つの入力信号の値又は複数の入力信号の値の組合せに対応した出力信号を出力端子から出力し、前記制御信号の値にしたがって、前記１つの入力信号の値又は複数の入力信号の値の組合せと前記出力信号の値との論理の対応関係が可変される機能可変型の回路と、前記１つ又は複数の入力信号を対応する入力端子より入力し、前記１つ又は複数の入力信号に関して予め定められた所定の論理演算結果である出力信号を出力端子より出力する論理回路と、前記論理回路からの出力信号と、前記機能可変型の回路からの出力信号とを、第１及び第２の入力端子よりそれぞれ入力し、選択制御用の制御信号を制御端子より入力し、前記選択制御用の制御信号の値に基づき、前記第１及び第２の入力端子より入力した信号のうちの一方を出力端子より出力するセレクタ回路と、を備えている。
【００２８】
本発明の他のアスペクトに係る半導体集積回路は、セルライブラリに登録されているスタンダードセルを顧客の仕様に沿って配置、配線することで仕様を満足しようとする半導体集積回路において、前記半導体集積回路を構成する一部のスタンダードセルが、半導体集積回路を製造した後に、半導体集積回路の仕様を変更したり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルで構成される。
【００２９】
また、本発明に係る半導体集積回路は、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルを有する。
【００３０】
本発明に係る半導体集積回路は、半導体集積回路の製造時点では、前記半導体集積回路の仕様には影響しない複数の機能可変セルを含み、その機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号により、その機能を変更したり、あるいはその機能を活性化することができ、半導体集積回路の仕様を変更あるいは修正することができる。
【００３１】
また本発明に係る半導体集積回路は、半導体集積回路の製造時点では、前記半導体集積回路の仕様には影響しない複数の機能可変セルと、半導体集積回路の製造時点では、前記半導体集積回路の仕様に影響を及ぼす複数の機能可変セルを有し、前記機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号により、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる。
【００３２】
本発明は、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更できる複数の機能可変セルを有し、一部の前記機能可変セルの出力信号と一部の前記スタンダードセルの出力信号を切り替えることができるセレクタ回路を有し、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、前記セレクタ開rを制御し、かつ前記機能可変セルの機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる。
【００３３】
本発明は、顧客の仕様を記述しているハードウェア記述のソースファイルの中において、半導体集積回路を製造した後に半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する部分を、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルの使用を指定し、論理合成ツール等で論理合成する構成とされる。
【００３４】
本発明は、顧客の仕様を記述しているハードウェア記述のソースファイルにおいて、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する部分を、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルを用いて論理合成することを指示しておき、半導体集積回路の製造時点では、前記半導体集積回路の仕様には、影響しない複数の前記機能可変セルを、予め集積する。
【００３５】
本発明において、半導体集積回路を論理合成する際に、機能可変セルを用いて、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する手法や手順またはそれを実現するツールが提供される。
【００３６】
また、本発明は、セルべ−ス集積回路において、制御信号により機能が可変される回路とスタンダードセルによる回路の間の接続を変更するためのセレクタ回路を有する。
【００３７】
本発明においては、複数の機能可変セルは、ＩＰマクロとして、配置、及び配線されない。本発明において、複数の機能可変セルは、ＩＰマクロとして分離して配置、接続されずに、スタンダードセルと同じ条件で配置、及び配線される。
【００３８】
本発明において、半導体集積回路のスタンダードセルの配置・配線段階で、機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延が顧客の仕様あるいは将来の仕様変更に沿うように、機能可変セルが、配置、及び配線される。また本発明において、半導体集積回路のスタンダードセルの配置・配線段階で、半導体集積回路の製造時点では、その仕様に影響を及ぼさない機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延が、将来の仕様変更に沿うように、機能可変セルが、配置、及び配線される。
【００３９】
本発明において、半導体集積回路に存在する複数の機能可変セルにおいて、その機能を変えたり、あるいはその機能を停止したり、あるいはその機能を活性化する制御信号を、１つ以上のグループに分割し、それぞれのグループ内にある複数の前記制御信号に与えるデータ値を、シリアル転送して与える。
【００４０】
本発明において、機能可変セルが、ＡＮＤやＮＡＮＤやＯＲやＮＯＲやＥＸＯＲやＥＸＮＯＲなどの論理演算回路、加算器や減算器や乗算器や除算器などの算術演算回路、フリップフロップやラッチなどのクロック同期回路、セレクタ回路、メモリ回路の中で２つ以上の機能のいずれかに、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号により、選択自在とされる。
【００４１】
本発明において、機能可変セルが、複数のスタンダードセルで構成される。本発明において、機能可変セルは、マトリックス状またはアレイ状に規則正しく並べずに、スタンダードセルと混在する形態で、スタンダードセルと同等に配置、配線される。
【００４２】
本発明において、機能可変セルを、予め複数の種類ライブラリに用意しておき、機能可変セルが接続される回路に応じて適切な機能可変セルが選択される。
【００４３】
【発明の実施の形態】
本発明の実施の形態について説明する。まず本発明の概要について説明し、続いて実施例について説明する。本発明は、半導体集積回路を構成する一部のスタンダードセルを、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルで構成する。
【００４４】
かかる構成の本発明によれば、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる。したがって、例えば１チップに１０００万トランジスタを集積するような半導体集積回路であっても、その機能が顧客の仕様を満足するかどうかを検証する時間を短くすることができる。また、このように短い検証時間であっても、半導体集積回路を製造しなおす必要がないため、半導体集積回路のコストの増加を招くことはない。
【００４５】
また、本発明においては、
・セルライブラリに登録されているスタンダードセルと機能可変セルを混在して配置、配線する、
・機能可変セルを予め複数種類用意し、適用する回路によって使い分ける、
・機能可変セルをあらかじめマトリックス状またはアレイ状に規則正しく並べておくことはしない、
・複数の機能可変セルをＩＰマクロとして分離して配置、接続せずに、スタンダードセルと機能可変セルとが、同じ条件で、配置、及び配線される、
という特徴により、セル間の平均配線長を短くすることができる。
【００４６】
そして、配線領域を確保するために、機能可変セルを無駄に消費する、ということが回避され、セル使用率は低下しない。したがって、ある機能を実現するために必要とされる面積を縮減することができ、平均配線長が短くなる。このため、本発明によれば、半導体集積回路の消費電力の増大や動作速度の低下は回避される。
【００４７】
また、本発明によれば、同じ機能を実現するときに無駄なトランジスタを使ったり、必要なトランジスタの数が多くならない。このため、本発明によれば、半導体集積回路の面積や消費電力が大きくなったり、動作速度が遅くなる、ということが回避される。
【００４８】
また、本発明は、顧客の仕様を記述するハードウエア記述のソースファイルにおいて、半導体集積回路を製造した後に、半導体集積回路の仕様を変更したり、半導体集積回路で見つかったバグを修正する箇所を、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる機能可変セルを用いて論理合成することを指示しておき、論理合成ツールは、ソースファイル中のこの指示に基づき、機能可変セルを用いて、論理合成を行う。
【００４９】
本発明によれば、半導体集積回路で実現できる機能を増やす目的で、機能可変セルの機能変更できる種類の数を少なくすることができる。この場合、個々の機能可変セルは、セルベースＩＣにおけるスタンダードセルに比べて、複雑な構造とはならず、ある機能を実現するときに必要な面積は大きくならない。また、本発明によれば、半導体集積回路の消費電力が大きくなったり、動作速度が遅くなる、という事態も、回避される。
【００５０】
また、本発明は、半導体集積回路の製造時点では、前記半導体集積回路の仕様には影響しない形態で複数の機能可変セルを含む。これらの機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号により、その機能を変更したり、あるいはその機能を活性化することができ、半導体集積回路の仕様を変更あるいは修正することができる。
【００５１】
全ての機能可変セルが半導体集積回路の製造時点で使用されている場合と比べて、前述の半導体集積回路の製造時点で使用されていない機能可変セルを含む場合、半導体集積回路の仕様の変更は容易となり、半導体集積回路で見つかったバグの修正も容易となる。
【００５２】
また、本発明においては、半導体集積回路のスタンダードセルの配置、配線段階で、機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延を、顧客の仕様あるいは将来の仕様変更に沿うように、機能可変セルを配置、配線するようにしてもよい。また、本発明においては、スタンダードセルの配置、配線段階で、半導体集積回路の製造時点ではその仕様に影響を及ぼさない機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延を、将来の仕様変更に沿うように前記機能可変セルを配置、配線するようにしてもよい。
【００５３】
このように、本発明においては、信号の遅延を予め将来の仕様変更に沿うように配置、配線することで、半導体集積回路の仕様の変更を容易化し、半導体集積回路で見つかったバグの修正を容易化している。
【００５４】
また、本発明は、半導体集積回路を論理合成する際に、機能可変セルを用いて、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する手法や手順を提供し、さらに、この手法を実現するツールに適用することもできる。
【００５５】
半導体集積回路の論理合成時に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する方法や手順またはそれを実現するツールを提供しており、半導体集積回路の仕様を変更しやすくしたり、半導体集積回路で見つかったバグを修正しやすくなる。
【００５６】
また、本発明においては、半導体集積回路に存在する複数の機能可変セルにおいて、その機能を変えたり、あるいはその機能を停止したり、あるいはその機能を活性化する制御信号を、１つ以上のグループに分割し、それぞれのグループ内にある複数の前記制御信号に与えるデータ値を、シリアル転送して与えることもできる。
【００５７】
本発明においては、半導体集積回路の仕様を変更しやすくしたり、半導体集積回路で見つかったバグを修正しやすくするために、半導体集積回路の面積を増加させたり、消費電力を増加させたり、外部入出力ピン数を増加させたりすることがない。
【００５８】
また、本発明においては、機能可変セルを、複数のスタンダードセルで構成することもできる。セルライブラリに登録されているスタンダードセルを顧客の仕様に沿って配置、接続することで仕様を満足しようとする一般的なセルベースＩＣのセルライブラリがあればよく、予め機能可変セルを作る必要がなくなる。勿論作製された機能可変セルを機能可変セルライブラリに登録しておき、機能可変セルの論理合成にあたり、機能可変セルライブラリのセルを選択する構成としてもよいことは勿論である。
【００５９】
本発明においては、半導体集積回路の仕様を規定する、ハードウェア記述言語によるハードウェア記述に基づき、論理合成手段にて論理合成を行う、半導体集積回路の設計システムにおいて、標準セルライブラリと、機能可変セルを予め登録した機能可変セルライブラリと、を備え、論理合成ツールは、半導体集積回路のハードウェア記述を解析し、ハードウェア記述に機能可変セルが指定されている場合、機能可変セルライブラリから機能可変セルを選択して論理合成する。その際、論理合成ツールは、ハードウェア記述を解析し、前記ハードウェア記述に指定される機能可変度のレベル情報が０の場合、標準セルライブラリからセルを選択し、ハードウェア記述に機能可変度のレベル情報が指定されている場合には、指定された機能可変度のレベルに対応した機能可変セルを、前記機能可変セルライブラリから機能可変セルを選択する構成としてもよい。
【００６０】
このように、本発明は、スタンダードセルと、機能可変セルが混在して配置・配線され、機能可変セルが、必要とされる機能可変度（機能可変度のレベルが大きくなるにしたがって面積、電力も増大する）にしたがって決定され、半導体集積回路の製造後に、機能可変セルの機能の変更、停止、活性化を制御できるようにしている。
【００６１】
【実施例】
上記した実施の形態についてさらに詳細に説明すべく、本発明の実施例について図面を参照して説明する。図１は、本発明の実施の形態の構成（配置）を示す図である。半導体集積回路１００の上に、セルベースＩＣで用いられるスタンダードセル１０１と機能可変セル１０２とが混在して、配置、配線される。すなわち機能可変セル１０２だけでマトリックス状またはアレイ状に規則正しく配列されているのではなく、スタンダードセル１０１だけでマトリックス状またはアレイ状に規則正しく配列されているのでもなく、スタンダードセル１０１と機能可変セル１０２とが、互いに混在する形態で、同等に、配置、配線されている。なお、図１では、セル間の配線は、簡単のために、省略している。
【００６２】
機能可変セル１０２は、半導体集積回路を製造した後に、半導体集積回路の仕様を変更したり、半導体集積回路で見つかったバグを修正する部分だけを、半導体集積回路の内部の制御信号、あるいは半導体集積回路外部から与えられた制御信号によって、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができるような構成とされている。スタンダードセル１０１は、ＮＡＮＤ回路やＮＯＲ回路など予め決められた単一の機能を果たすものである。
【００６３】
半導体集積回路の自動設計を行うＥＤＡ（Electronic  Design  Automation）システムにて、半導体集積回路１００を製造するにあたり、一般に、まず、顧客の仕様を記述しているソースファイルの情報を基にして、セルライブラリに登録されているスタンダードセルを複数個選び出し、スタンダードセルとスタンダードセル間の接続情報からなるネットリストを得る。このネットリストは、顧客の仕様を満足する機能を実現する。このときネットリストは、顧客の仕様を満足する機能を実現できればよいことから、一意には、決定できず、複数の組み合わせがあり得る。しかし、一般には、チップ面積の縮減、動作速度の高速化、低消費電力化を実現するように、決定される。この手続きを「論理合成」と呼ぶ。
【００６４】
次に、ネットリストを基に、半導体集積回路１００の上に、チップ面積の縮減、動作速度の高速化、低消費電力化を図るように、ネットリスト上のスタンダードセルを配置し、個々のスタンダードセル間をネットリストに従って配線する。この手続きを「配置・配線」と呼ぶ。
【００６５】
本発明においては、論理合成の手続きにおいて、ネットリストに、スタンダードセル以外に機能可変セル１０２を含むことができる。
【００６６】
また、配置・配線の手続き段階でも、ネットリスト内のスタンダードセルを、そのスタンダードセルと同等の機能となるように、制御信号で制御された機能可変セル１０２に置換することもできる。
【００６７】
従来のスタンダードセルは、ＮＡＮＤ回路やＯＲ回路などその機能が一意に決まっている。
【００６８】
本発明において、機能可変セル１０２は、
・ＡＮＤ、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＥＸＯＲ、ＥＸＮＯＲ等の論理演算回路、
・加算器、減算器、乗算器、除算器等の算術演算回路、
・フリップフロップやラッチ等のクロック同期回路、
・セレクタ回路、
・メモリ回路、
のうちの２つ以上の機能のいずれかに、半導体集積回路の内部の制御信号、あるいは半導体集積回路の外部から与えられた制御信号によって、選択可能とされる。
【００６９】
また、半導体集積回路１００に存在する複数の機能可変セル１０２は、その機能を変えたり、あるいはその機能を停止したり、あるいはその機能を活性化する制御信号を、１つ以上のグループに分割し、それぞれのグループ内にある複数の制御信号に与えるデータ値を、順次、シリアル転送して与えることも可能とされている。
【００７０】
図１６は、本発明の一実施例において、チップ内に機能可変セル１０２とスタンダードセル１０１とが混在して配置される構成において、セル間の配線の一例を模式的に示す図である。図１６を参照すると、スタンダードセル１０１と機能可変セル１０２とは混載して互いに接続されている。大きな面積を占有する機能可変セル１０２を用いる必要がないところでは、小さな面積を占有するスタンダードセル１０１を用いている。また同じ機能可変セル１０２においても、機能可変の程度に応じて面積が異なっている。機能可変の程度が高い必要があるところには、比較的大きな面積を有する機能可変セル１０２を用い、機能可変の程度が少なくて済むところでは、比較的小さな面積を有する機能可変セル１０２が用いられる。
【００７１】
図２は、本発明の一実施例の機能可変セル１０２を含む回路構成の一例を示す図である。図２には、複数の機能可変セル１０２を、２つのグループに分割した場合が示されている。すなわち、２つのグループは、２つのデータと２つのクロックの系統からなる。フリップフロップ回路１０４は、クロック信号の遷移エッジで、データ端子Ｄの信号をサンプルしデータ出力端子Ｑから出力するＤ型フリップフロップである。端子２２０から入力されたデータは、端子２２１から入力されたクロック信号に基づき、回路中の第１グループのフリップフロップ回路１０４によって、逐次、シリアルに転送され、フリップフロップ回路１０４のデータ出力端子Ｑに接続される機能可変セル１０２に制御信号として供給される。端子２２２から入力されたデータは、端子２２３から入力されたクロック信号に基づき、回路中の第２グループのフリップフロップ回路１０４によって逐次シリアル転送され、フリップフロップ回路１０４のデータ出力端子Ｑに接続される機能可変セル１０２に制御信号として入力される。
【００７２】
また、半導体集積回路１００は、製造時点では、半導体集積回路の機能には影響しない複数の機能可変セルを、論理合成あるいは配置配線の手続きの中で含ませることもできる。この機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、半導体集積回路の内部の制御信号、あるいは半導体集積回路の外部端子から与えられた制御信号によって、その機能を変更したり、あるいはその機能を活性化することができ、半導体集積回路の仕様を変更あるいは修正することができる。
【００７３】
本発明と相違して、製造時点で半導体集積回路の機能には影響しない複数の機能可変セルを含まない場合、半導体集積回路の仕様を変更あるいは修正することができる範囲は限られる。
【００７４】
また、１つの半導体集積回路１００は、複数種類の機能可変セル１０２を有することができる。機能可変セル１０２を、セルライブリ等に予め複数の種類用意しておき、論理合成あるいは配置配線の手続きで、機能可変セルが使用される回路に応じて適切な機能可変セルを選択する。複数種類の機能可変セルを具備することで、面積の増大を抑えながら、半導体集積回路の仕様変更、修正が可能な範囲を増大させることができる。
【００７５】
図３は、本発明の別の実施例の機能可変セルの構成を示す図である。図３を参照すると、この機能可変セルは、ルックアップテーブル１０３と、フリップフロップ１０４と、セレクタ回路１０５とを備えている。ルックアップテーブル１０３は、第１、第２の入力信号２０１、２０２を入力し、第１、第２の入力信号２０１、２０２が予め定めた状態にあるときに、出力信号２０３をｈｉｇｈ（ハイ）レベルとし、第１、第２の入力信号２０１、２０２がそれ以外の状態にあるときには、出力信号２０３をｌｏｗ（ロー）レベルとする。ルックアップテーブル１０３において、その出力信号２０３をｈｉｇｈレベルとする第１と第２の入力信号２０１、２０２の組み合わせは、入力される制御信号２０９によって決定される。
【００７６】
フリップフロップ１０４は、データ入力端子Ｄにルックアップテーブル１０３の出力信号２０３が接続され、クロック入力端子に入力されるクロック信号２０４の立ち上がり又は立ち下がりの遷移エッジで、データ入力端子Ｄに供給される信号２０３の電圧レベルをサンプルし、データ出力端子Ｑからサンプルしたデータを出力信号２０５として出力する。
【００７７】
セレクタ回路１０５は、フリップフロップ１０４のデータ出力端子Ｑから出力される出力信号２０５と、ルックアップテーブル１０３から出力される出力信号２０３をそれぞれ第１、第２の入力端子より入力し、入力される選択制御信号２０８の電圧レベル（ｈｉｇｈ／ｌｏｗレベル）によって、信号２０５と信号２０３の電圧レベルの一方を選択して出力し、出力信号線２０７へ伝搬させる。
【００７８】
図４は、本発明の別の実施例の機能可変セルの構成を示す図である。図４を参照すると、この機能可変セルは、ルックアップテーブル１０３と、セレクタ回路１０６とを備えている。ルックアップテーブル１０３は、第１、第２の入力信号２０１、２０２を入力し、第１、第２の入力信号２０１、２０２が予め定めた状態にあるときに、出力信号２０３をｈｉｇｈ（ハイ）レベルとし、第１、第２の入力信号２０１、２０２がそれ以外の状態にあるときには、出力信号２０３をｌｏｗ（ロー）レベルとする。ルックアップテーブル１０３において、その出力信号２０３をｈｉｇｈレベルとする第１と第２の入力信号２０１、２０２の組み合わせは、入力される制御信号２０９によって決定される。
【００７９】
セレクタ回路１０６は、第１の入力信号２０６と、ルックアップテーブル１０３から出力される出力信号２０３をそれぞれ第１、第２の入力端子より入力し、入力される選択制御信号２０８の電圧レベル（ｈｉｇｈ／ｌｏｗレベル）によって、信号２０１と信号２０３の電圧レベルの一方を選択して出力し、出力信号線２０７へ伝搬させる。
【００８０】
この機能可変セルは、制御信号２０８、２０９により、その機能を変えることができる。
【００８１】
機能可変セルは、図３、図４で示す構成に限定されるものでなく、多くの組み合わせが適用できる。ＡＮＤ、ＮＡＮＤ、ＯＲ、ＮＯＲ、ＥＸＯＲ、ＥＸＮＯＲなどの論理演算回路や、加算器、減算器、乗算器、除算器などの算術演算回路、フリップフロップやラッチなどのクロック同期回路、セレクタ回路、メモリ回路の中で２つ以上の機能のいずれかに、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号により、選択できるものであればよい。
【００８２】
例えば、図４に示した機能可変セルにおいて、選択制御信号２０８の電圧レベルによって、セレクタ回路１０６へ入力される入力信号２０１と、セレクタ回路１０６からの出力信号２０７とが同電位となるように構成しておくことで、この機能可変セルは、第１の入力信号２０１から出力信号線２０７に、信号が単純に伝搬する配線として機能する。
【００８３】
すなわち、図４に示した機能可変セルは、半導体集積回路１００の製造時点で、半導体集積回路の機能には影響しない機能可変セルとして機能できる。
【００８４】
この機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するために、制御信号２０８の電位レベルを変更することで、その機能を変更することができる。すなわち、製造後に、半導体集積回路１００の仕様を、変更あるいは修正することができる。
【００８５】
同様にして、図３に示す機能可変セルの例においても、制御信号２０９によりルックアップテーブル回路１０３を制御し、第１の入力信号２０１と出力信号２０３が常に同一電圧レベルとなるようにし、第１の制御信号２０８の電圧レベルによってセレクタ回路１０５の第２の入力信号２０３と第１の出力信号２０７とを同電位となるようにしておくことで、この機能可変セルは、第１の入力信号２０１から出力信号２０７に、信号が単純に伝搬する配線として機能する。このため、半導体集積回路１００の製造時点で半導体集積回路の機能には影響しない機能可変セルとして機能できる。
【００８６】
また、図３、図４に示す構成の機能可変セルにおいて、制御信号２０８と制御信号２０９の電位レベル（ｈｉｇｈ／ｌｏｗレベル）を変更することで、機能が変更可能とされる。例えばルックアップテーブル１０３に入力される制御信号２０９の値を変えることで、ルックアップテーブル１０３の機能が可変される。したがって、これらの機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様の変更したり、あるいは半導体集積回路で見つかったバグの修正を行うことができる。
【００８７】
図３、図４に示した構成の機能可変セルでは、セレクタ回路１０５、１０９により、ルックアップテーブル１０３の出力信号と該出力信号をフリップフロップ１０４でサンプリングした信号の一方、ルックアップテーブル１０３の出力信号と入力信号２０１の一方を選択して出力する構成とされているが、機能可変セルを、制御信号で機能が可変されるルックアップテーブル１０３のみで構成してもよいことは勿論である。ルックアップテーブル１０３に入力する制御信号２０９の値を変えることで、ルックアップテーブル１０３に入力される入力信号と、該入力信号に対するルックアップテーブル１０３の出力信号の対応が可変させることができ、半導体集積回路の製造後の、半導体集積回路の仕様の変更、半導体集積回路で見つかったバグの修正に対応することができる。
【００８８】
図５は、本発明の別の実施例の構成を示す図である。図５には、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正するための別の実施例として、機能可変セルとスタンダードセルとを接続した構成の一例が示されている。図５において、１０７はスタンダードセルよりなる回路網である。第１の入力信号線２１０と第１の出力信号線２１２に接続される。１０８は、前記実施例で説明した機能可変セルよりなる回路網であり、第１の入力信号線２１０と第２の入力信号線２１４と、第１の出力信号線２１３に接続される。２入力１出力のセレクタ回路１０９は、制御信号２０８により、信号線２１２と信号線２１３のいずれか一方を選択して、出力信号線２１１に伝搬する。
【００８９】
制御信号２０８の電圧レベル（ｈｉｇｈ／ｌｏｗレベル）によってセレクタ回路１０９に入力される信号線２１２の電圧と出力信号線２１１の電圧とが同電位となるように設定しておくことで、スタンダードセルよりなる回路網１０７が機能し、機能可変セルよりなる回路網１０８は機能しない（機能は停止する）。
【００９０】
そして、制御信号２０８の電位レベルを変更することで、機能可変セルよりなる回路網１０８が機能し（機能が活性化する）、スタンダードセルよりなる回路網１０７は機能しなくなる。すなわち、半導体集積回路の仕様を変更あるいは修正することができる。
【００９１】
一般に、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する必要となる回路は、半導体集積回路の中の全体の回路の中で、数％にも満たないことが知られている。このような場合、予め変更する可能性が低いところに、機能可変セルを割り当てると、消費電力の増大や、動作速度の低下を招く。
【００９２】
しかしながら、図５に示した本実施例によれば、機能等を変更しない場合の消費電力の増大や動作速度の低下を防ぐことができる。
【００９３】
本発明は、論理合成の手続きにおいて、配置配線の手続き後においても、機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延が顧客の仕様あるいは将来の仕様変更に沿うように機能可変セルを配置、配線したり、半導体集積回路の製造時点ではその仕様に影響を及ぼさない機能可変セルの入力信号線と出力信号線に伝搬する信号の遅延が将来の仕様変更に沿うように、機能可変セルを配置、配線することで、半導体集積回路の仕様を変更しやすくしたり、半導体集積回路で見つかったバグを修正しやすくできる。
【００９４】
また、本発明は、論理合成の手続きで、機能可変セルを用いて、半導体集積回路を製造した後に、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する方法や手順またはそれを実現するツールを提供することもできる。
【００９５】
論理合成の手続きで、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正する方法や手順またはそれを実現するツールを同時に作成することで、半導体集積回路の仕様を変更しやすくしたり、半導体集積回路で見つかったバグを修正しやすくなる。
【００９６】
また、本発明においては、機能可変セルを、複数のスタンダードセルで構成するようにしてもよい。この場合、セルライブラリに登録されているスタンダードセルを、顧客の仕様に沿って配置、接続することで仕様を満足しようとする、一般的なセルベースＩＣのセルライブラリがあればよく、予め機能可変セルを作る必要がなくなる。
【００９７】
図６は、本発明の一実施例において論理合成に用いられるソースファイルの一例を示す図である。図６には、論理合成の手続きにおいて、顧客の仕様を記述しているソースファイルのどの部分を機能可変セルを用いて構成するかを指定するための例が示されている。
【００９８】
スタンダードセルではなく、機能可変セルを用いて機能合成する箇所には、該当するソースファイル中の行に、明示的にコメント記号”//”に続いて、コメントの内容を予め定めたコード、図６に示す例では、”Special Line”が記述されている。
【００９９】
図６に示す例では、ａ３＝ｂ１−ｃ２の減算機能、ｂ２＝ａ２＋ａ４の加算機能は、機能可変セルで合成される。後の説明で参照される図１５を用いて説明すると、”Special Line”が記述されて行の機能の論理合成は、例えば、機能可変セルライブラリが参照され、選択された機能可変セルを用いて論理合成が行われる。
【０１００】
機能可変セルを用いて機能合成する箇所が連続しており、長い場合には、別途予め定めたコードを用いて、その部分の始まりと終わりを指示するようにしてもよい。なお、ソースファイル中でどの部分を機能可変セルを用いて構成するかについて、明示的にソースファイルに記載することをせず、その代わりに、例えば、誤りや仕様変更が行われやすい箇所を予め定められた手順にしたがって自動で判断して、処理するようにしてもよい。
【０１０１】
次に、本発明のさらに別の実施例について説明する。図７は、本発明の別の実施例の機能可変セルの構成の一例を示す図である。図７を参照すると、この機能可変セルは、ルックアップテーブル１０３を備えている。図７において、２０１、２０２は入力信号線、２０７は出力信号線、２０８は、セレクタ回路１０５の選択を行うための選択制御信号線である。
【０１０２】
ルックアップテーブル１０３を構成するルックアップテーブル回路１１０は、入力ポートＡ０、Ａ１と、ルックアップテーブル１０３に供給される制御信号（制御データ信号）を入力するデータ入力端子ＤＳと、ルックアップテーブル１０３に供給される制御信号をなすクロック信号を入力するクロック入力端子ＤＣと、出力ポートＤＯと、を有している。
【０１０３】
ルックアップテーブル回路１１０において、２つの入力信号線２０１、２０２の信号がそれぞれ入力ポートＡ０、Ａ１（２ビットのアドレス信号として機能）に入力され、出力ポートＤＯから出力信号が出力される。ルックアップテーブル回路１１０は、端子ＤＳ、ＤＣに入力される制御信号２１１、２１２により、その機能を変更する。
【０１０４】
２つの入力信号線２０１、２０２は、標準セルよりなる基本ゲートをなすＮＡＮＤ回路１０９に入力される。ＮＡＮＤ回路１０９の出力信号と、ルックアップテーブル１０３の出力信号が２入力１出力のセレクタ回路１０５に入力され、セレクタ回路１０５は選択制御信号２１０により一方を選択して出力する。
【０１０５】
この機能可変セルは、ＮＡＮＤ回路１０９の出力信号がセレクタ回路１０５で選択される場合、入力信号線２０１、２０２の論理値のＮＡＮＤ演算結果を出力信号線２０７から出力する。
【０１０６】
一方、セレクタ回路１０５で、ルックアップテーブル１０３の出力信号が選択されると、２つの入力信号線２０１、２０２の論理値の組合せで規定されるアドレスに保持される値が出力信号線２０７から出力される。
【０１０７】
さらに、ルックアップテーブル１０３の出力信号がセレクタ回路１０５で選択された場合において、制御信号２１１、２１２の論理値により、入力信号線２０１、２０２の論理値の組合せに対するルックアップテーブル１０３の出力信号の値を可変させる制御が行われる。例えば、２つの入力信号線２０１、２０２の論理値の同一の組合せに対して、制御信号２１１が論理０のとき（制御クロック信号２１２によってルックアップテーブル回路１１０に取り込まれているものとする）と、制御信号２１１が論理１のとき（制御クロック信号２１２によってルックアップテーブル回路１１０に取り込まれているものとする）では、ルックアップテーブル１０３の出力信号は異なる。
【０１０８】
図７に示す機能可変セルにおいて、制御信号２１１、２１２が機能変更を制御し、機能の停止、活性化は、制御信号２１０で行う。
【０１０９】
図８は、図７のルックアップテーブル１０３の構成の一例を示す図である。図８（Ａ）を参照すると、このルックアップテーブルは、Ｋ個のルックアップテーブル回路１１１より構成されており、各ルックアップテーブル回路１１１は、ｍ個の入力ポートＡ０〜ｍ−１にアドレス信号Ａ０〜Ａｍ−１を入力し、それぞれの出力ポートＤから出力信号Ｄ０〜Ｄｋ−１を出力し、制御信号をなす制御データ信号ＤＳをデータ入力端子ＤＩから入力し、クロック信号ＤＣをクロック入力端子ＣＬＫから入力する構成とされており、入力信号Ａ０〜Ａｍ−１に対してｋ個の出力信号Ｄ０〜Ｄｋ−１を出力する。
【０１１０】
制御データ信号ＤＳは、初段のルックアップテーブル回路１１１のデータ入力端子ＤＩに入力され、初段のルックアップテーブル回路１１１のデータ出力端子ＤＯから次段のルックアップテーブル回路１１１のデータ入力端子ＤＩに順次入力されるという具合に、与えられたクロック信号ＤＣにより駆動されて、複数段のルックアップテーブル回路１１１をシリアルに伝送される。
【０１１１】
複数段のルックアップテーブル回路１１１を伝送される制御データ信号ＤＳを、論理１とするか論理０とすることで、ルックアップテーブルの機能（入力信号Ａ０〜Ａｍ−１に対する出力信号Ｄ０〜Ｄｋ−１の対応）が可変される。すなわち、ｋ本のデータ出力信号Ｄ０〜Ｄｋ−１の論理値の組合せは、クロック信号ＤＣに基づき、シリアルに入力される制御データ信号ＤＳのパタンによって任意に設定される。
【０１１２】
図８（Ｂ）は、図８（Ａ）のルックアップテーブル回路１１１の回路構成を示す図である。図８（Ｂ）を参照すると、ルックアップテーブル回路１１１は、２ｍ−１段縦続形態に接続され、シフトレジスタを構成するＤ型フリップフロップ１１２を備え、初段のＤ型フリップフロップ１１２のデータ入力端子Ｄは、ルックアップテーブル１１１のデータ入力端子ＤＩに接続され、最後段のＤ型フリップフロップ１１２のデータ出力端子Ｑは、ルックアップテーブル１１１のデータ出力端子ＤＯに接続されている。２ｍ−１段のＤ型フリップフロップ１１２のクロック端子は、ルックアップテーブル１１１のクロック端子ＣＬＫに共通に接続されており、２ｍ−１段のＤ型フリップフロップ１１２のデータ出力端子Ｑは、セレクタ回路１１４に入力されている。
【０１１３】
セレクタ回路１１４は、ルックアップテーブル１１１の入力ポートＡ０〜ｍ−１に入力されるｍ本のアドレスＡ０〜Ａｍ−１を入力してデコードするデコーダ１１３の出力を選択制御信号として入力し、選択されたＤ型フリップフロップ１１２のデータ出力端子Ｑからの出力が、出力信号Ｄとして出力される。かかる構成のルックアップテーブルにおいて、２ｍ−１段のＤ型フリップフロップ１１２にそれぞれ保持されるデータを変更することで、同一のアドレス入力に対する出力信号の値が可変させる。
【０１１４】
なお、図７のルックアップテーブル１０３は、図８（Ａ）に示したルックアップテーブル回路１１１（ただし、入力ポートはＡ０、Ａ１の２つ）を１つ備え、２ビットのアドレス入力、１ビット出力の構成としたものである。
【０１１５】
次に、本発明のさらに別の実施例について説明する。図９は、本発明の別の実施例の機能可変セルの構成の一例を示す図である。図９において、３１１、３１２は入力信号線であり、３１６は出力信号線である。入力信号線３１１、３１２は、２入力ＮＡＮＤ回路３０２（標準セルよりなる論理回路）に入力されるとともに、機能可変型の回路ブロック３０１にも入力され、ＮＡＮＤ回路３０２の出力信号と回路ブロック３０１の出力信号は２入力１出力のセレクタ回路３０３に入力され、セレクタ回路３０３で選択された信号が出力信号として出力信号線３１６に出力される。機能可変型の回路ブロック３０１は、入力信号線３１１、３１２をそれぞれ入力とする、２入力ＮＡＮＤ回路３０４、２入力ＮＯＲ回路３０５、２入力排他的否定論理和（ＥＸＮＯＲ）回路３０６を備え、ＮＡＮＤ回路３０４、ＮＯＲ回路３０５、ＥＸＮＯＲ回路３０６の出力は３入力１出力のセレクタ回路３０７に入力され、セレクタ回路３０７は、選択制御信号３１８に基づきいずれか１つを選択して出力する。
【０１１６】
セレクタ回路３０７の出力信号３１４と、出力信号３１４をインバータ３０８で反転した信号とが２入力１出力のセレクタ回路３０９に入力され、セレクタ回路３０９は、選択制御信号３１９に基づき、入力された２つの信号のいずれか一方を選択して出力する。
【０１１７】
選択制御信号３１７によってセレクタ回路３０３が、回路ブロック３０１の出力を選択し、回路ブロック３０１の出力信号線３１６に出力することで、機能可変型の回路ブロック３０１を活性化させる制御が行われる。さらに、制御信号３１８により、セレクタ回路３０７において、ＮＡＮＤ、ＮＯＲ、ＥＸＮＯＲのいずれか一が選択され、制御信号３１９により、セレクタ回路３０９において、セレクタ回路３０７の出力又はその反転信号が選択され、ＮＡＮＤ、ＮＯＲ、ＥＸＮＯＲ、又は、ＡＮＤ、ＯＲ、ＥＸＯＲのいずれか一が選択され、機能の変更が行われる。
【０１１８】
図９において、信号３１８、３１９が機能変更を制御し、機能の停止、活性化は、制御信号３１７で行う。
【０１１９】
図１０は、本発明のさらに別の実施例の機能可変セルの構成を示す図である。図１０において、４１１、４１２は第１組の入力信号線、４１３、４１４は第２組の入力信号線、４１５は、出力信号線である。４ビットの入力信号４１１、４１２を端子Ａ、Ｂから入力して加算し出力端子Ｏから４ビットの信号を出力する加算器４０６（キャリー端子Ｃは論理０に固定）を備えている。機能可変型の回路ブロック４０１は、第１組の入力信号４１１と第２組の入力信号４１３とを入力するセレクタ回路４０２と、第１組の入力信号４１２と第２組の入力信号４１４とを入力するセレクタ回路４０３と、セレクタ回路４０３の出力（４ビット）と信号４１９の排他的論理和をとった結果の４ビットを出力するＥＸＯＲ回路４０４と、セレクタ４０２の出力とＥＸＯＲ回路４０４の出力を端子Ａ、Ｂから入力して加算し出力端子Ｏから４ビットの信号を出力する加算器４０５を備えている。
【０１２０】
セレクタ回路４０２とセレクタ回路４０３は、それぞれ、選択制御信号４１７、４１８に基づき、２つの入力の一方を出力する。
【０１２１】
ＥＸＯＲ回路４０４は、制御信号４１９が、論理０のとき、セレクタ回路４０３の出力（４ビット）をそのまま加算器４０５のＢ端子に供給し、制御信号４１９が、論理１のとき、セレクタ回路４０３の出力の反転信号を加算器４０５のＢ端子に供給する。
【０１２２】
加算器４０６の出力と加算器４０４の出力はセレクタ回路４０７に入力され、セレクタ回路４０７は制御信号４１６の値に基づき一方を選択出力する。
【０１２３】
第１の入力信号の加算器（セレクタ回路４０７が加算器４０６の出力を選択時）のほか、回路ブロック４０１により、
・第１組の入力信号の減算器、
・第２組の入力信号の加算器、
・第２組の入力信号の減算器、
・第１、第２組の入力信号の加算器、
・第１、第２組の入力信号の減算器
に変更できる。
【０１２４】
すなわち、セレクタ回路４０７が機能可変回路ブロック４０１の出力信号を選択した状態で、回路ブロック４０１において、セレクタ回路４０２、４０３で、第１組の入力信号４１１、４１２を選択し、制御信号４１９を論理１とし、キャリ信号４２０を論理１とすることで、第１組の入力信号の減算器となる。
【０１２５】
回路ブロック４０１において、セレクタ回路４０２、４０３で、第２組の入力信号４１３、４１４を選択し、制御信号４１９を論理１とし、キャリ信号４２０を論理１とすることで、第２組の入力信号の減算器となり、制御信号４１９を論理０とし、キャリ信号４２０を論理０とすることで、第２組の入力信号の加算器となる。
【０１２６】
回路ブロック４０１において、セレクタ回路４０２、４０３で、入力信号４１１、４１４を選択するか、セレクタ回路４０２、４０３で、入力信号４１２、４１３を選択し、制御信号４１９を論理０とし、キャリ信号４２０を論理０とすることで、第１、第２組の２つの入力信号の加算器となり、制御信号４１９を論理１とし、キャリ信号４２０を論理１とすることで、第１、第２組の２つの入力信号の減算器となる。
【０１２７】
この実施例において、機能可変型の回路ブロック４０１は、例えばＩＰマクロを用いて構成されている。
【０１２８】
なお、図１０において、制御信号４１７〜４２０は、機能可変型セルの機能の変更を制御し、機能可変型セルの機能の停止、活性化は、制御信号４１６で行う。制御信号４１６が、セレクタ回路４０７を制御して、加算器４０６を選択している場合、機能可変型の回路ブロック４０１は非活性化されている。
【０１２９】
図１１は、本発明のさらに別の実施例の機能可変セルの構成を示す図である。図１１を参照すると、この実施例の機能可変セルは、複数本の出力信号線を有している。５１１、５１２は入力信号線、５１５、５１６は出力信号線である。５０１は、図７の１０３と同様のルックアップテーブルであり、制御信号入力端子ＤＳとクロック端子ＤＣに入力される制御信号５１９、クロック信号５２０により、入力ポートＡ０、Ａ１に入力される信号５１１、５１２に対する出力信号の値が可変とさせる。標準セルよりなる基本ゲートのＮＡＮＤ回路５０３の出力信号５１３と、ルックアップテーブル５０１の出力信号５１４とが、２つのセレクタ５０４とセレクタ５０５にそれぞれ入力され、セレクタ５０４、５０５の出力は出力信号線５１５、５１６に接続されている。
【０１３０】
かかる構成の本実施例の機能可変セルによれば、出力信号線５１５、５１６にそれぞれ接続される下流の回路（図示されない）のうち、ある回路は機能可変セルの出力を期待しており、別のある回路は、標準セルの出力（ＮＡＮＤ回路５０３の出力信号５１３）を期待している場合に対応できる。一方、機能可変回路ブロックの出力信号を用いるか、標準セルの出力信号を用いるかが選択自在な構成とされていない場合には、出力信号線に接続する下流の回路は、標準セルから機能可変セルへの切替えが行われた場合、当該下流の回路側でも、機能変更に対応して、その機能・構成を変える必要が生じる場合がある。すなわち、例えば上流の機能可変セルの１箇所の機能変更の影響が、該変更箇所の下流に配置される回路に波及することになる。
【０１３１】
この実施例では、ルックアップテーブル５０１と標準セルからなる論理回路５０３の出力を選択するためのセレクタ回路を複数の出力信号線に対応して備え、複数の出力信号線にそれぞれ接続される各下流の回路では、その機能・構成を変えることなく、上流の機能可変セルの機能変更に対応できる。
【０１３２】
図１１において、信号５１９〜５２０が機能変更を制御し、機能の停止、活性化は、制御信号５１７、５１８で行う。
【０１３３】
図１２は、本発明のさらに別の実施例の機能可変セルの構成を示す図である。図１２を参照すると、入力信号線６１１から並列に伝送される複数ビットの信号（ｎビット）を入力するロジック回路６０２（フリップフロップを含む）と、入力信号と出力信号との対応が可変させるルックアップテーブル６０１と、ロジック回路６０２の出力信号６１４（Ｋビット）とルックアップテーブル６０１の出力信号６１５（Ｋビット）とを入力し、ｌ本の選択制御信号６１６のそれぞれ値に基づき、１方を選択して出力するセレクタ６０４を複数組（ｌ組）備え、各セレクタ６０４からは、Ｋビットの出力信号が出力される。
【０１３４】
図１２に示す構成では、各セレクタ６０４では、２入力の１方を対応する選択制御信号に基づき独立に選択することができる。
【０１３５】
ルックアップテーブル６０１を構成するデバイス６０２の入力ポートＡ０〜Ａｎ−１には、ｎビットの入力信号６１１が入力され、ｍビットの入力信号６１３が入力ポートＡｎからＡｍ＋ｎ−１に入力される。ルックアップテーブル６０１を構成するデバイス６０２は、図８（Ａ）に示す構成において、各ルックアップテーブル１１１の入力ポートの数をｍ＋ｎとして構成される。
【０１３６】
この実施例では、ルックアップテーブル６０１と標準セルからなる論理回路６０２の出力を選択するためのセレクタ回路６０４を複数の出力信号線に対応して備え、複数の出力信号線にそれぞれ接続される各下流の回路では、その機能・構成を変えることなく、上流の機能可変セルの機能変更に対応できる。
【０１３７】
図１３は、本発明のさらに別の実施例を示す図である。図１３において、７０１は機能可変の回路ブロックであり、図３に示した機能可変セルに対応している。すなわち、図１３を参照すると、回路ブロック７０１は、ルックアップテーブル７０２（図３の１０３に対応）と、フリップフロップ７０３（図３の１０４に対応）と、セレクタ回路７０４（図３の１０５に対応）からなる。
【０１３８】
すなわち、この実施例においては、機能可変セル内において、入力信号を入力する端子と、セレクタ回路の入力端子との間に、標準セル７０５と並置される機能可変型の回路ブロック７０１が機能可変セルで構成されている。
【０１３９】
図１３を参照すると、この実施例において、ルックアップテーブル回路７０２の入力ポートＡ０〜Ａｎ−１には、ｎビットの入力信号７１１が入力され、ｍビットの入力信号７１３が入力ポートＡｎからＡｍ＋ｎ−１に入力される。ルックアップテーブル回路７０２は、図８（Ａ）に示す構成において、各ルックアップテーブル１１１の入力ポートの数をｍ＋ｎとして構成される。
【０１４０】
ルックアップテーブル回路７０２のＫビット出力は、Ｋ入力のレジスタ（クロック信号７２０を共通に入力するＫ個のＤ型フリップフロップよりなる）に入力され、ルックアップテーブル回路７０２の出力（Ｋビット）とレジスタ７０３の出力（Ｋビット）とがセレクタ回路７０４に入力される。
【０１４１】
セレクタ回路７０４では、入力される選択制御信号７２１に基づき、ルックアップテーブル回路７０２の出力（Ｋビット）とレジスタ７０３の出力（Ｋビット）の一方を選択して出力し、セレクタ回路７０４の出力７１５は、複数組（ｌ組）のセレクタ回路７０６に供給される。この実施例では、ルックアップテーブル７０２と標準セルからなるロジック回路７０５（フリップフロップを含む）の出力を選択するためのセレクタ回路７０６を複数の出力信号線７１２に対応して備えている。
【０１４２】
この実施例においても、図１２に示した実施例と同様、ロジック回路７０５の出力信号７１４と、機能可変セルから構成される回路ブロック７０１の出力信号７１５を入力し、選択制御信号７１７の値に基づき、入力した２系統の信号の１方を選択するセレクタ回路７０６を、複数備え、下流の回路に対して、対応するセレクタ回路７０６の出力がそれぞれ供給される。
【０１４３】
図１３において、信号７１８、７１９、７２０、７２１が、機能可変セルの機能変更を制御し、機能可変セルの機能の停止、活性化は、制御信号７１７で行う。
【０１４４】
図１４は、本発明のさらに別の実施例の構成を示す図である。図１４を参照すると、機能可変セルを２段縦続形態に接続してなるものであり、機能可変セル８０１１、８０１２は、同一構成とされ、ともに、図１３に示した回路ブロック７０１の機能可変セルよりなる。すなわち、機能可変セル８０１１、８０１２において、端子Ｉｎ、Ｉｍに入力される信号８１１、８１３（８１２、８１４）、端子Ｏｋから出力されるＫビットの信号８１２（８１５）は、図７の入力信号７１１、７１３、８１２にそれぞれ対応し、ＤＳ、ＤＣ、ＣＬＫ、ＳＥＬは、図７のＤＳ、ＤＣ、ＣＬＫ、ＳＥＬに対応している。
【０１４５】
機能可変セル８０１２は、上流の機能可変セル８０１１の１つのセレクタ回路７０６の出力信号線７１２（図１３参照）を、入力信号端子Ｉｎより入力している。この場合、図１３のルックアップテーブル回路７０２の入力ポートのＡ０〜Ａｍ＋ｎ−１における数ｎは、Ｋとなる。このように、機能可変セルを、複数段用いて論理回路を構成してもよい。
【０１４６】
上記した各実施例の機能可変セルにおいて、機能可変度の低い順から、図９、図７、図１２、図１３となる。機能可変度の最も低い回路は、機能可変セルを含まない通常の標準セルのみを含む回路で構成される。
【０１４７】
なお、図７、図９、図１０に示した機能可変セルでは、機能可変型の回路の出力と、スタンダードセルからなる論理回路の出力をセレクタ回路で選択して出力する構成とされているが、上記実施例の変形として、機能可変セルを、制御信号で機能が可変される機能可変型の回路（図７の１０３、図９の３０１、図１０の４０１）のみで構成してもよいことは勿論である。かかる構成において、機能可変型の回路（図７の１０３、図９の３０１、図１０の４０１）に入力する制御信号の値を変えることで、機能可変型の回路における入力信号と出力信号の対応が可変させることができ、半導体集積回路の製造後の、半導体集積回路の仕様の変更、半導体集積回路で見つかったバグの修正に対応することができる。また、図１１乃至図１３に示した構成の機能可変セルにおいて、機能可変型の回路（図１１の６０１、図１２の７０１、図１３の７０１）のみで構成し、機能可変型の回路の出力信号を複数（ｌ個）の出力信号線のそれぞれに分配出力する構成としてもよい。さらに、図７、図９、図１０〜図１３に示した機能可変セルの変形の一例として、論理回路を機能可変型の回路で構成し、２つの並列配置された機能可変型の回路の出力をセレクタ回路で選択して出力する構成としてもよい。
【０１４８】
次に、本発明に係る機能可変セルを用いて作製されるＬＳＩを設計するＥＤＡシステムについて説明する。図１５は、ＬＳＩ設計システムの処理手順の一例を示す流れ図である。本発明に係る機能可変セルを用いて作製されるＬＳＩを設計する場合、ＶＨＤＬ、Ｖｅｒｉｌｏｇ等のハードウェア記述言語により規定される回路の記述（ハードウェア記述文）中に、明示的に、機能可変度を指定しておく。例えば、図６の"//Special Line"（"//"はコメントを示す記号）のあとに、例えば、"Level=0"、"Level=1"等の指定が行われる。なお、そのシンタックスは、"//Special Line  Level=1"等に限定されるものでなく、論理合成ツールに対する機能可変度の指示が行えるものでありさえすればよく、任意である。
【０１４９】
論理合成ツールが参照するセルライブラリとして、通常のスタンダードセルライブラリ１１に加えて、本発明の機能可変セルを含む機能可変ライブラリ１２を用意しておく。
【０１５０】
論理合成ツールでは、ハードウェア記述を解析し（ステップＳ１１）、例えばコメント記号のあとに指定されている機能可変度が「０」の場合、スタンダードセルライブラリ１１の中から該当セルを検索して論理合成し（ステップＳ１２）、機能可変度が０でない場合、スタンダードセルライブラリ１１からのセルに加えて、機能可変セルを格納した機能可変セルライブラリ１２から、機能可変度のレベルに応じた機能可変セルを選択し、それぞれのセル間の接続を決定し（ステップＳ１３）、その後、通常のセル配置、配線ツールを実行する（ステップＳ１４）。かかる構成により、既存のハードウェア記述言語、論理合成ツール、自動レイアウトツールを用いて、機能可変セルを備えたＬＳＩを設計することができる。自動レイアウトツールにおいて、機能可変セルは、スタンダードセルと同じ条件で配置及び配線が行われる。また、機能可変セルの入力信号線と出力信号線間信号の伝搬遅延時間が、半導体集積回路の製造後の機能の変更に適合するように、配置・配線が行われる。
【０１５１】
以上本発明を上記実施例に即して説明したが、本発明は、上記実施例にのみ限定されるものでなく、特許請求の範囲の各請求項の本発明の範囲内で、当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
【０１５２】
【発明の効果】
以上説明したように、本発明によれば、下記記載の効果を奏する。
【０１５３】
本発明の第１の効果は、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる半導体集積回路を提供することができる、ということである。
【０１５４】
本発明の第２の効果は、前記第１の効果を得るために、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを用いても、チップ面積増加の割合を抑えることができる、ということである。
【０１５５】
本発明の第３の効果は、前記第１の効果を得るために、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを用いても、消費電力増加の割合を低く抑えることができる、ということである。
【０１５６】
本発明の第４の効果は、前記第１の効果を得るために、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを用いても、動作速度低下の割合を低く抑えることができる、ということである。
【０１５７】
本発明の第５の効果は、前記第１の効果を得るために、半導体集積回路を製造した後で、半導体集積回路の仕様を変更をしたり、半導体集積回路で見つかったバグを修正することができる機能可変セルを用いても、機能可変セルのセル使用率を高くすることができる、ということである。
【０１５８】
上記効果が得られる理由の概要は以下の通りである。
【０１５９】
本発明においては、半導体集積回路上に、セルベースＩＣで用いられるスタンダードセルと機能可変セルが同時に集積され、この機能可変セルは、半導体集積回路の内部の制御信号、あるいは外部から与えられた制御信号で、その機能を変更したり、あるいはその機能を停止したり、あるいはその機能を活性化することができる。このため、上記第１の効果が得られる。
【０１６０】
また、本発明においては、半導体集積回路上に、セルベースＩＣで用いられるスタンダードセルと機能可変セルが混在して配置、配線される。このため従来の技術とは異なり、半導体集積回路の適材適所に機能可変セルを用いることができる。つまり、機能可変セルは、半導体集積回路を製造した後に、半導体集積回路の仕様を変更したり、半導体集積回路で見つかったバグを修正する部分(回路)だけ、必要最小限だけ使用できる。このため、上記第５の効果が得られる。
【０１６１】
また、機能可変セルは、スタンダードセルよりも面積は大きいが、本発明においては、機能可変セルがスタンダードセルと混在して配置、配線されることと、必要最小限だけ使用されることから、上記第２の効果が得られる。
【０１６２】
また、本発明においては、面積がスタンダードセルよりも大きい機能可変セルの使用数を減らすことができるため、セル間の平均配線長が小さくでき、上記第３の効果と第４の効果が得られる。
【０１６３】
さらに、本発明によれば、標準セルの出力と活性化した機能可変セルの出力を選択するセレクタを複数備え、機能可変セルの活性化に対して、機能可変セルの下流の回路を機能変更することなく対応可能としている。
【図面の簡単な説明】
【図１】本発明の実施例の構成を示す図である。
【図２】本発明の一実施例の半導体集積回路の構成を模式的に示す図である。
【図３】本発明の一実施例の機能可変セルの構成を示す図である。
【図４】本発明の他の実施例の機能可変セルの構成を示す図である。
【図５】本発明の他の実施例における機能可変セルとスタンダードセルの接続例を示す図である。
【図６】本発明の実施例におけるソースファイル中の機能可変セルの指定を示す図である。
【図７】本発明の実施例の機能可変セルの構成を示す図である。
【図８】本発明の他の実施例の機能可変セルの構成を示す図である。
【図９】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１０】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１１】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１２】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１３】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１４】本発明のさらに別の実施例の機能可変セルの構成を示す図である。
【図１５】本発明の機能可変セルを含むＬＳＩを設計するＥＤＡツールの処理を説明するための流れ図である。
【図１６】本発明の一実施例において機能可変セルとスタンダードセルが混載して配線される様子を模式的に示す図である。
【符号の説明】
１１  標準セルライブラリ
１２  機能可変セルライブラリ
１００  半導体集積回路
１０１  スタンダードセル
１０２  機能可変セル
１０３  ルックアップテーブル回路
１０４  フリップフロップ回路
１０５、１０６、１０９  セレクタ回路
１０７  スタンダードセルよりなる回路網
１０８  機能可変セルよりなる回路網
１０９  論理回路（標準セル）
１１０、１１１  ルックアップテーブル回路
１１２  フリップフロップ
１１３  デコーダ
１１４  セレクタ
２０１、２０２、２０３、２０４、２０５、２０７、２０８、２０９、２１０、２１１、２１２、２１３、２１４、２２０、２２１、２２２、２２３  信号線
３０１  機能可変の回路ブロック
３０２  論理回路
３０４  ＮＡＮＤ
３０５  ＮＯＲ
３０６  ＥＸＮＯＲ
３０７  セレクタ回路
３０８  インバータ
３０９  セレクタ回路
３１１、３１２  入力信号線
３１３、３１４、３１５  信号線
３１６  出力信号線
３１７、３１８、３１９  選択制御信号
４０１  機能可変の回路ブロック
４０２  セレクタ
４０３  セレクタ
４０３  ＥＸＯＲ
４０５、４０６  加算器
４０７  セレクタ回路
４１１、４１２  入力信号線
４１５  出力信号線
４１６、４１７、４１８、４１９、４２０  制御信号
５０１  ルックアップテーブル
５０２  ルックアップテーブル回路
５０３  ＮＡＮＤ
５０４、５０５  セレクタ回路
５１１、５１２  入力信号線
５１３、５１４  信号線
５１５、５１６  出力信号線
５１７、５１９、５２０  制御信号
６０１  ルックアップテーブル
６０２  ルックアップテーブル回路
６０３  ロジック回路
６０４  セレクタ回路
６１１、６１２  入力信号線
６１４、６１５  信号線
６１２  出力信号線
６１６、６１７、６１９  制御信号
７０１  機能可変の回路ブロック
７０２  ルックアップテーブル
７０３  フリップフロップ
７０５  ロジック回路
７０６  セレクタ回路
７１１、７１３  入力信号線
７１４、７１５  信号線
７１２  出力信号線
７１７、７１８、７１９、７２０、７２１  制御信号
８０１  機能可変セル
８１１、８１３、８１４  入力信号
８１２、８１５  出力信号
８１５〜８２２  制御信号
【図１】
0003654259.tif 000002
【図２】
0003654259.tif 000003
【図３】
0003654259.tif 000004
【図４】
0003654259.tif 000005
【図５】
0003654259.tif 000006
【図６】
0003654259.tif 000007
【図７】
0003654259.tif 000008
【図８】
0003654259.tif 000009
【図９】
0003654259.tif 000010
【図１０】
0003654259.tif 000011
【図１１】
0003654259.tif 000012
【図１２】
0003654259.tif 000013
【図１３】
0003654259.tif 000014
【図１４】
0003654259.tif 000015
【図１５】
0003654259.tif 000016
【図１６】
0003654259.tif 000017