半導体集積回路及び半導体集積回路の設計方法
【課題】半導体集積回路の回路面積を小さくする。
【解決手段】被試験回路2の観測対象の複数の信号線TA1〜TA4上の観測点TP1〜TP4を複数の入力端子に接続し、複数の信号線TA1〜TA4を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、複数の信号線TA1〜TA4の何れかを伝搬する値に応じた出力値を出力する論理回路(NOR回路3,NAND回路4)を設けることで、複数の観測点をEOR回路を用いて共用する半導体集積回路より回路面積を小さくできる。
【解決手段】被試験回路2の観測対象の複数の信号線TA1〜TA4上の観測点TP1〜TP4を複数の入力端子に接続し、複数の信号線TA1〜TA4を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、複数の信号線TA1〜TA4の何れかを伝搬する値に応じた出力値を出力する論理回路(NOR回路3,NAND回路4)を設けることで、複数の観測点をEOR回路を用いて共用する半導体集積回路より回路面積を小さくできる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体集積回路及び半導体集積回路の設計方法に関する。
【背景技術】
【0002】
半導体集積回路の試験時の故障検出率を向上させるために、ある信号線の信号値を観測したり、制御したりする仕組みを半導体集積回路に挿入するTPI(Test Point Insertion)と呼ばれる技術が知られている。
【0003】
たとえば、ある組合せ回路の故障を検出する際、その組合せ回路が他の組合せ回路を介して、外部端子や、スキャンフリップフロップ(以下、単にSFFと表す)に接続されていると、他の組合せ回路の影響で故障の検出率が下がる。そのため、TPIでは、故障を検出する組合せ回路と、他の組合せ回路との間の信号線上の観測点にSFFまたは出力端子などを接続して信号値を観測可能にすることで、故障検出率を向上させる。なお、SFFまたは出力端子を含めた信号値を観測する仕組みを観測点という場合もある。
【0004】
ただし、多くの信号線に観測点を設けると、半導体集積回路の回路面積が増大したり、端子数が増加したりする。
そのため、従来、複数の観測点を入力端子に接続した排他的論理和回路を用いて、各観測点の値を観測することで、回路面積及び端子数を削減することが行われている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−135226号公報
【特許文献2】特開平5−249197号公報
【特許文献3】特開平3−296673号公報
【特許文献4】特開昭63−140969号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、排他的論理和回路は面積が大きく、観測点が多くなると、半導体集積回路の回路面積が増加してしまうという問題があった。
【課題を解決するための手段】
【0007】
発明の一観点によれば、被試験回路と、前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、を備えた半導体集積回路が提供される。
【0008】
また、発明の一観点によれば、以下に示すような、コンピュータによって実行される半導体集積回路の設計方法が提供される。
この半導体集積回路の設計方法は、記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する。
【発明の効果】
【0009】
開示の半導体集積回路及び半導体集積回路の設計方法によれば、回路面積を小さくできる。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態の半導体集積回路の一例を示す図である。
【図2】論理回路の種類とその面積の一例を示す図である。
【図3】第2の実施の形態の半導体集積回路の一例を示す図である。
【図4】半導体集積回路の設計を行うコンピュータの一例を示す図である。
【図5】半導体集積回路の設計方法の一例を示すフローチャートである。
【図6】観測点の分類条件の一例を示す図である。
【図7】AND−NOR型ゲートの複合ゲートで共用された観測点の一例を示す図である。
【図8】OR−NAND型ゲートの複合ゲートで共用された複数の観測点の一例を示す図である。
【図9】4入力のNAND回路で共用された観測点の一例を示す図である。
【図10】4入力のNOR回路で共用された観測点の一例を示す図である。
【図11】2入力のNAND回路で共用された観測点の一例を示す図である。
【図12】2入力のNOR回路で共用された観測点の一例を示す図である。
【図13】EOR回路で共用された複数の観測点の例を示す図である。
【図14】各論理回路が選択される条件の一例を示す図である。
【図15】信号線TA1の0縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【図16】信号線TA3の1縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態を、図面を参照しつつ説明する。
本実施の形態の半導体集積回路は、被試験回路の観測対象の複数の信号線上の観測点(本明細書中では、論理回路を接続する信号線上の部分(点)を意味するものとする)を複数の入力端子に接続した論理回路を有する。論理回路は、複数の信号線を伝搬する値の、論理積(AND)、論理和(OR)、否定論理積(NAND)、または否定論理和(NOR)の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力するものである。
【0012】
(第1の実施の形態)
図1は、第1の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路1は、被試験回路2と、上記の論理回路の例として、NOR回路3とNAND回路4を有している。また、半導体集積回路1は、排他的論理和(EOR)回路5、SFF6,7,8,9を有している。
【0013】
被試験回路2は、複数の組合せ回路21,22,23,24,25を有している。
なお、図1において表記されている、信号線TA1,TA2,TA3,TA4,TA5,TA6の参照符号横の括弧内の数値は、その信号線の0可制御性と1可制御性を示している。括弧内の左側の数値が0可制御性の値であり、右側の数値が1可制御性の値である。可制御性についての詳細は後述する。
【0014】
図1の半導体集積回路1の例では、信号線TA1〜TA4が被試験回路2における観測対象の信号線である。
NOR回路3は、被試験回路2の観測対象の信号線TA1,TA2上の観測点TP1,TP2を入力端子に接続し、信号線TA1,TA2を伝搬する値の否定論理和を演算し、信号線TA1,TA2の何れかを伝搬する値に応じた出力値を出力する。NOR回路3は、一方の入力端子に入力される値が“0”のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、たとえば、信号線TA2の値が“0”のとき、NOR回路3は、信号線TA1を伝搬する値に応じた出力値を出力することになる。また、信号線TA1の値が“0”のとき、NOR回路3は、信号線TA2を伝搬する値に応じた出力値を出力することになる。
【0015】
NAND回路4は、被試験回路2の観測対象の信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続し、信号線TA3,TA4を伝搬する値の否定論理積を演算し、信号線TA3,TA4の何れかを伝搬する値に応じた出力値を出力する。NAND回路4は、一方の入力端子に入力される値が“1”のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、たとえば、信号線TA4の値が“1”のとき、NAND回路4は、信号線TA3を伝搬する値に応じた出力値を出力することになる。また、信号線TA3の値が“1”のとき、NAND回路4は、信号線TA4を伝搬する値に応じた出力値を出力することになる。
【0016】
EOR回路5は、NOR回路3とNAND回路4の出力値を信号線TA5,TA6を介して入力して、何れかの出力値に応じた値を出力する。たとえば、試験時において、半導体集積回路1に入力されるテストパターンによって、NAND回路4の出力値が“0”に固定されている場合、EOR回路5からは、NOR回路3の出力値が出力される。NAND回路4の出力値が“1”に固定されている場合、EOR回路5からは、NOR回路3の出力値を反転した値が出力される。
【0017】
SFF6,7,8,9は、データ端子D、スキャンイン端子SIN、スキャンモード端子SM、クロック端子CK、出力端子Qを有している。データ端子D以外の各端子の接続関係などは図示を省略しているが、SFF6〜9は、複数のSFFが直列に接続されたシフトレジスタとして機能するスキャンチェーンの一部となっている。そのため、SFF6〜9に取り込まれた(キャプチャされた)値は、外部から観測可能となっている。
【0018】
SFF6〜8は、それぞれ、組合せ回路23〜25の出力値を取り込み、SFF9は、EOR回路5の出力値を取り込む。
半導体集積回路1の動作を以下に説明する。
【0019】
信号線TA1に発生する故障(0縮退故障など)を検出する場合、たとえば、信号線TA2,TA6の値が“0”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA1を伝搬する値に応じた出力値が、NOR回路3、EOR回路5を介してSFF9に取り込まれ、信号線TA1に発生する故障が検出可能になる。
【0020】
信号線TA2に発生する故障を検出する場合、たとえば、信号線TA1,TA6の値が“0”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA2を伝搬する値に応じた出力値が、NOR回路3、EOR回路5を介してSFF9に取り込まれ、信号線TA2に発生する故障が検出可能になる。
【0021】
信号線TA3に発生する故障を検出する場合、たとえば、信号線TA4,TA5の値が“1”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA3を伝搬する値に応じた出力値が、NAND回路4、EOR回路5を介してSFF9に取り込まれ、信号線TA3に発生する故障が検出可能になる。
【0022】
信号線TA4に発生する故障を検出する場合、たとえば、信号線TA3,TA5の値が“1”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA4を伝搬する値に応じた出力値が、NAND回路4、EOR回路5を介してSFF9に取り込まれ、信号線TA4に発生する故障が検出可能になる。
【0023】
以上のように、半導体集積回路1は、複数の信号線の値(複数の観測点の値)を、NOR回路3、NAND回路4を用いて検出するようにしたので、EOR回路で複数の観測点の値を検出するよりも、回路面積を削減することができる。
【0024】
図2は、論理回路の種類とその面積の一例を示す図である。
図2では、バッファ回路(BUF)、2入力のNOR回路、2入力のNAND回路の面積を1.0としたときの、他の論理回路の面積の概略が示されている。インバータ回路(INV)は0.5、2入力のOR回路と2入力のAND回路は1.5、2入力のEOR回路は2.5、SFFでは8.0である。
【0025】
たとえば、観測点TP1〜TP4にそれぞれSFFを接続して故障を観測する回路とした場合には、その部分の回路の面積は図2の例によれば、SFFが4つ分なので、8×4=32となる。
【0026】
また、図1のNOR回路3とNAND回路4の部分にも、EOR回路を用いた場合には、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、2.5×3+8=15.5となる。
【0027】
これに対し、図1の半導体集積回路1で、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、1×2+2.5+8=12.5となり、回路面積を小さくできる。
なお、図1に示した半導体集積回路1において、NOR回路3やNAND回路4の代わりに、OR回路やAND回路を用いてもよい。また、EOR回路5の代わりに、NOR回路、NAND回路、OR回路またはAND回路を用いて、より回路面積が削減されるようにしてもよい。
【0028】
ところで、観測対象の複数の信号線に接続される論理回路は、信号線の0可制御性と1可制御性に応じて種類が決定されている。
0可制御性と1可制御性とは、信号線の値を“0”または“1”に制御できる可能性の大きさ、言い換えると、信号線の値を“0”または“1”に制御するときの容易さを示している。
【0029】
図1の例では、組合せ回路21から出力される値が伝搬する信号線TA1,TA2の0可制御性と1可制御性は(3/4,1/4)となっている。また、組合せ回路22から出力される値が伝搬する信号線TA3,TA4の0可制御性と1可制御性は(1/4,3/4)となっている。つまり、信号線TA1,TA2は、“0”に制御しやすく、信号線TA3,TA4は、“1”に制御しやすい。
【0030】
前述のように、NOR回路3は、一方の入力端子に“0”を入力することで、他の入力端子に入力された値に応じた出力値を出力する。“0”はNOR回路3にとっての非制御値と呼ばれる。また、“1”はNOR回路3にとっての制御値と呼ばれる。NAND回路4は、一方の入力端子に“1”を入力することで、他の入力端子に入力された値に応じた出力値を出力する。“1”はNAND回路4にとっての非制御値と呼ばれる。また、“0”はNAND回路4にとっての制御値と呼ばれる。
【0031】
なお、ある論理回路の1つの入力端子の信号変化を出力へ伝搬するときの他の入力端子は、サイドインプットと呼ばれる。
図1の半導体集積回路1では、試験時に上記のような非制御値をサイドインプットに設定しやすくするため、“0”に制御しやすい信号線TA1,TA2上の観測点TP1,TP2にNOR回路3が接続されている。また、“1”に制御しやすい信号線TA3,TA4上の観測点TP3,TP4にNAND回路4が接続されている。
【0032】
そして、試験時において、故障を検出する信号線TA1〜TA4に応じて、信号線TA1,TA2の何れかを伝搬する値を“1”、または信号線TA3,TA4の何れかを伝搬する値を“0”にするようなテストパターンが、半導体集積回路1に入力される。
【0033】
前述のように、信号線TA1,TA2は、“0”に制御しやすく、信号線TA3,TA4は、“1”に制御しやすい。そのため、信号線TA1,TA2の何れかを伝搬する値を“1”、または信号線TA3,TA4の何れかを伝搬する値を“0”にするようなテストパターンの生成は容易となる。
【0034】
なお、信号線TA5,TA6については、0可制御性と1可制御性の大小関係が異なっている。すなわち、信号線TA5の0可制御性と1可制御性は(7/16,9/16)と、1可制御性が0可制御性より大きいのに対し、信号線TA6では(9/16,7/16)と、1可制御性が0可制御性より小さい。このような信号線TA5,TA6については、たとえば、図1のようにEOR回路5(またはENOR回路)が接続される。EOR回路5は、NOR回路3やNAND回路4のように、前述のような制御値、非制御値がないため、サイドインプットに入力される値を“0”または“1”に固定すれば、ある入力端子に入力される値に応じた出力値が出力される。
【0035】
このように、信号線TA1〜TA6の0可制御性と1可制御性に応じて、信号線TA1〜TA6に接続される論理回路の種類が決定されているので、試験時に入力されるテストパターンの生成の複雑度を軽減できる。
【0036】
(第2の実施の形態)
図3は、第2の実施の形態の半導体集積回路の一例を示す図である。
第1の実施の形態の半導体集積回路1と同一の要素については、同一符号を付し、説明を省略する。
【0037】
第2の実施の形態の半導体集積回路1aは、NOR回路3の出力値を伝搬する信号線TA5を入力端子に接続するとともに、信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続した3入力のNAND回路31を有している。NAND回路31から出力される出力値は、SFF9に取り込まれる。
【0038】
また、図3では、NOR回路3とNAND回路31が、1つのセルである複合ゲート30に含まれていることが示されている。
前述のように、NAND回路31は“1”を非制御値とするため、試験時において、信号線TA1または信号線TA2の故障を検出する際には、信号線TA3,TA4を伝搬する値が“1”となるようなテストパターンが入力される。信号線TA3の故障を検出する際には、信号線TA4,TA5を伝搬する値が“1”となるようなテストパターンが入力される。また、信号線TA4の故障を検出する際には、信号線TA3,TA5を伝搬する値が“1”となるようなテストパターンが入力される。
【0039】
信号線TA3〜TA5は、何れも、1可制御性が0可制御性よりも大きいため、信号線TA3〜TA5の値、NAND回路31の非制御値である“1”とするテストパターンを生成することは容易である。
【0040】
このように、半導体集積回路1aでは、NOR回路3の出力値が伝搬する信号線TA5と、信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続するNAND回路31を設け、信号線TA3〜TA5の何れかを伝搬する値を出力するようにしている。これにより、さらに回路面積を小さくすることが可能になる。
【0041】
たとえば、各論理回路の面積が図2に示したような関係をもつ場合、半導体集積回路1aにおいて、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、3入力のNAND回路31の面積を1.5とすると、1+1.5+8=10.5となる。第1の実施の形態の半導体集積回路1では、12.5であったため、それよりも回路面積をさらに縮小できる。
【0042】
なお、図3の例では、信号線TA3〜TA5において、何れも、1可制御性が0可制御性よりも大きいためNAND回路31を適用しているが、これに限定されない。信号線TA3〜TA5において、何れも、1可制御性が0可制御性よりも小さい場合には、OR回路やNOR回路を用いることが、テストパターン生成の容易化のためには望ましい。
【0043】
また、信号線TA3〜TA5において、0可制御性と1可制御性の大小関係が異なるような場合には、NAND回路31の代わりにEOR回路を用いてもよい。
以下、上記のような半導体集積回路1,1aを設計する設計方法を説明する。
【0044】
(半導体集積回路の設計方法)
半導体集積回路の設計は、たとえば、以下に示すようなコンピュータで行われる。
図4は、半導体集積回路の設計を行うコンピュータの一例を示す図である。
【0045】
コンピュータ40は、CPU(Central Processing Unit)41によって装置全体が制御されている。CPU41には、バス48を介してRAM(Random Access Memory)42と複数の周辺機器が接続されている。
【0046】
RAM42は、コンピュータ40の主記憶装置として使用される。RAM42には、CPU41に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM42には、CPU41による処理に用いる各種データが格納される。
【0047】
バス48に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)43、グラフィック処理装置44、入力インタフェース45、光学ドライブ装置46、及び通信インタフェース47がある。
【0048】
HDD43は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD43は、コンピュータ40の二次記憶装置として使用される。HDD43には、OSのプログラム、アプリケーションプログラム、及び、ネットリストなどの被試験回路データなど、各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0049】
グラフィック処理装置44には、モニタ44aが接続されている。グラフィック処理装置44は、CPU41からの命令にしたがって、画像をモニタ44aの画面に表示させる。モニタ44aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0050】
入力インタフェース45には、キーボード45aとマウス45bとが接続されている。入力インタフェース45は、キーボード45aやマウス45bから送られてくる信号をCPU41に送信する。なお、マウス45bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0051】
光学ドライブ装置46は、レーザ光などを利用して、光ディスク46aに記録されたデータの読み取りを行う。光ディスク46aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク46aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0052】
通信インタフェース47は、ネットワーク47aに接続されている。通信インタフェース47は、ネットワーク47aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0053】
図5は、半導体集積回路の設計方法の一例を示すフローチャートである。
ステップS10:たとえば、入力インタフェース45を介してユーザにより、被試験回路における観測対象の複数の信号線上の観測点の位置などが指示される。これによりCPU41は、たとえば、HDD43などに格納されたネットリスト(被試験回路データ)から、観測対象の複数の信号線上の観測点を抽出する。
【0054】
ステップS11:CPU41は、抽出された観測点を複数の入力端子に接続し、複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する。これにより、複数の観測点を共有する論理回路が生成される。なお、CPU41は、後述する条件の場合には、排他的論理和または否定排他的論理和を演算する論理回路を生成するようにしてもよい。
【0055】
ステップS11の処理は、可制御性(1可制御性と0可制御性)の算出工程(ステップS111)、観測点の分類工程(ステップS112)、論理回路の選択工程(ステップS113)、ネットリストへの論理回路の挿入工程(ステップS114)を有している。以下各工程の詳細を説明する。
【0056】
(可制御性の算出工程)
0可制御性と1可制御性は以下のように求められる。
なお、以下の例では、各信号線において、0可制御性を示す値と1可制御性を示す値の和は1であるとする。
【0057】
たとえば、AND回路の出力値が伝搬される信号線の1可制御性は、そのAND回路の各入力値が伝搬される信号線の1可制御性を示す値の積で求められる。また、0可制御性は、1から1可制御性を示す値を引き算した値となる。そのため、たとえば、2入力AND回路において、入力側の2つの信号線の0可制御性と1可制御性が(1/2,1/2)のとき、出力側の信号線の0可制御性と1可制御性は、(3/4,1/4)となる。
【0058】
また、OR回路の出力値が伝搬される信号線の0可制御性は、そのOR回路の各入力値が伝搬される信号線の0可制御性を示す値の積で求められる。また、1可制御性は、1から0可制御性を示す値を引き算した値となる。そのため、たとえば、2入力OR回路において、入力側の2つの信号線の0可制御性と1可制御性が(1/2,1/2)のとき、出力側の信号線の0可制御性と1可制御性は、(1/4,3/4)となる。
【0059】
たとえば、図1に示したような半導体集積回路1を設計する際、CPU41は、被試験回路2の組合せ回路21,22に含まれる論理回路の種類に応じて上記のような計算を行い、信号線TA1〜TA4の0可制御性と1可制御性を算出する。
【0060】
(観測点分類工程)
CPU41は、抽出された複数の観測点を、どの論理回路を用いて共用するか決定するために、ステップS111で求めた可制御性に応じて、各観測点を分類する。
【0061】
図6は、観測点の分類条件の一例を示す図である。
観測点は、0可制御性と1可制御性の大小を選択条件として、たとえば、図6に示すようなグループ名の3つのグループに分類される。1可制御性が0可制御性より大きい観測点は、NANDグループに分類される。1可制御性が0可制御性より小さい観測点は、NORグループに分類される。1可制御性が0可制御性と等しい観測点は、EORグループに分類される。
【0062】
なお、1可制御性が0可制御性と等しい観測点が、NANDグループまたは、NORグループに分類されるようにして、EORグループをなくしてもよい。
(論理回路の選択工程)
CPU41は、複数の観測点を共用する論理回路(複数の観測点を入力端子に接続し、1つの出力端子から観測結果を出力する回路)として、たとえば、以下の優先順序で、選択が可能か判断する。(1)複合ゲート、(2)3入力以上のNAND回路またはNOR回路、(3)2入力のNAND回路またはNOR回路、(4)EOR回路(またはENOR回路)。
【0063】
なお、NAND回路やNOR回路の代わりに、AND回路やOR回路が選択されるようにしてもよいが、図2に示したようにNAND回路やNOR回路の方が、AND回路やOR回路よりも面積が小さい。そのため以下では、複合ゲートが選択される場合を除き、AND回路またはOR回路ではなく、NAND回路またはNOR回路が、観測点を共用する論理回路として選択される場合の例について説明する。
【0064】
複合ゲートの選択条件は、たとえば、HDD43に格納されているセルライブラリに存在する複合ゲートの種類に応じて、たとえば、以下のようになる。
(AND−NOR型ゲートの場合)
(a)NANDグループに属する観測点が少なくとも2つ存在する。
【0065】
(b)NANDグループに属する観測点同士を、AND回路で共用すると仮定した場合、AND回路の出力値が伝搬される信号線上に設定するポイント(以下共用ポイントという)がNORグループに分類される。なお、CPU41は、この条件を満たすか判定するため、共用ポイントにおける可制御性の算出を行い、図6に示した選択条件のもと、共用ポイントが分類されるグループを決定する。
【0066】
(c)NORグループに属する観測点が少なくとも1つ存在する。
上記3つの条件がすべて満たされる場合、CPU41は、複数の観測点を共用する論理回路として、AND−NOR型ゲートの複合ゲートを選択する。
【0067】
図7は、AND−NOR型ゲートの複合ゲートで共用された観測点の一例を示す図である。
観測点TPa,TPb,TPcでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPb,TPcは、NANDグループに属する。したがって、上記の(a)の条件を満たす。
【0068】
図7に示されているように、観測点TPa,TPb,TPcをAND回路50aで共用した場合の共用ポイントCP1における0可制御性は、1可制御性よりも大きい。そのため、共用ポイントCP1は、図6に示したように、NORグループに属し、上記の(b)の条件を満たす。
【0069】
また、図7に示されているように、観測点TPdでは、0可制御性が1可制御性よりも大きいため、図6に示したように、観測点TPdは、NORグループに属する。したがって、上記の(c)の条件を満たす。
【0070】
これにより、共用ポイントCP1と、観測点TPdがNOR回路50bで共用される。つまり、観測点TPa,TPb,TPc,TPdは、図7に示されているようなAND−NOR型ゲート50で共用されることになる。
【0071】
(OR−NAND型ゲートの場合)
OR−NAND型ゲートの選択条件は、たとえば、以下のようになる。
(a)NORグループに属する観測点が少なくとも2つ存在する。
【0072】
(b)NORグループに属する観測点を、OR回路で共用すると仮定した場合、OR回路の出力値が伝搬される信号線上の共用ポイントがNANDグループに分類される。
(c)NANDグループに属する観測点が少なくとも1つ存在する。
【0073】
上記3つの条件がすべて満たされる場合、CPU41は、複数の観測点を共用する論理回路として、OR−NAND型ゲートの複合ゲートを選択する。
図8は、OR−NAND型ゲートの複合ゲートで共用された複数の観測点の一例を示す図である。
【0074】
観測点TPa,TPb,TPcでは、0可制御性が1可制御性より大きいため、観測点TPa,TPb,TPcは、図6に示したように、NORグループに属する。したがって、上記の(a)の条件を満たす。
【0075】
図8に示されているように、観測点TPa,TPb,TPcをOR回路51aで共用した場合の共用ポイントCP2における0可制御性は1可制御性よりも小さい。そのため、共用ポイントCP2は、図6に示したように、NANDグループに属し、上記の(b)の条件を満たす。
【0076】
また、図8に示されているように、観測点TPdでは、0可制御性が1可制御性よりも小さいため、図6に示したように、観測点TPdは、NANDグループに属する。したがって、上記の(c)の条件を満たす。
【0077】
これにより、共用ポイントCP2と、観測点TPdがNAND回路51bで共用される。つまり、観測点TPa,TPb,TPc,TPdは、図8に示されているような、OR−NAND型ゲート51で共用されることになる。
【0078】
3入力以上のNAND回路またはNOR回路、2入力のNAND回路またはNOR回路、及びEOR回路(またはENOR回路)の選択条件は、以下のような条件となる。
(3入力以上のNAND回路の選択条件)
3入力以上のNAND回路の選択条件は、共用するすべての観測点がすべてNANDグループに分類されていること、である。
【0079】
図9は、4入力のNAND回路で共用された観測点の一例を示す図である。
観測点TPa,TPb,TPc,TPdでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPb,TPc,TPdは、NANDグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPb,TPc,TPdは、図9に示されているような、4入力のNAND回路52で共用されることになる。
【0080】
(3入力以上のNOR回路の選択条件)
3入力以上のNOR回路の選択条件は、共用するすべての観測点がすべてNORグループに分類されていること、である。
【0081】
図10は、4入力のNOR回路で共用された観測点の一例を示す図である。
観測点TPa,TPb,TPc,TPdでは、0可制御性が1可制御性より大きいため、図6に示したように、観測点TPa,TPb,TPc,TPdは、NORグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPb,TPc,TPdは、図10に示されているような、4入力のNOR回路53で共用されることになる。
【0082】
(2入力のNAND回路の選択条件)
2入力のNAND回路の選択条件は、共用する2つの観測点がNANDグループに分類されていること、である。
【0083】
図11は、2入力のNAND回路で共用された観測点の一例を示す図である。
観測点TPa,TPbでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPbは、NANDグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPbは、図11に示されているような、2入力のNAND回路54で共用されることになる。
【0084】
(2入力のNOR回路の選択条件)
2入力のNOR回路の選択条件は、共用する2つの観測点がNORグループに分類されていること、である。
【0085】
図12は、2入力のNOR回路で共用された観測点の一例を示す図である。
観測点TPa,TPbでは、0可制御性が1可制御性より大きいため、図6に示したように、観測点TPa,TPbは、NORグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPbは、図12に示されているような、2入力のNOR回路55で共用されることになる。
【0086】
(EOR回路またはENOR回路の選択条件)
EOR回路またはENOR回路の選択条件として、以下の2つがある。
(a)共用する複数の観測点がEORグループに分類されている。
【0087】
(b)共用する複数の観測点が異なるグループに分類されている。
たとえば、上記2つの条件のうち、1つでも満たされる場合には、CPU41は、複数の観測点を共用する論理回路として、EOR回路またはENOR回路を選択する。
【0088】
図13は、EOR回路で共用された複数の観測点の例を示す図である。図13では、3つのパターンが示されている。
パターン1において、観測点TPa,TPbでは、0可制御性が1可制御性と等しいため、図6に示したように、観測点TPa,TPbは、EORグループに属する。したがって、上記の(a)の条件が満たされる。そのため、観測点TPa,TPbは、図13のパターン1に示されているように、EOR回路56で共用されることになる。
【0089】
パターン2において、観測点TPaでは、0可制御性が1可制御性より大きく、観測点TPbでは、0可制御性より1可制御性が大きい。そのため、図6に示したように、観測点TPaは、NORグループに分類され、観測点TPbは、NANDグループに分類される。したがって、上記の(b)の条件が満たされる。そのため、観測点TPa,TPbは、図13のパターン2に示されているように、EOR回路57で共用されることになる。
【0090】
パターン3において、観測点TPaでは、0可制御性より1可制御性が大きく、観測点TPbでは、0可制御性が1可制御性より大きく、観測点TPcでは、0可制御性と1可制御性が等しい。そのため、図6に示したように、観測点TPaは、NANDグループに分類され、観測点TPbは、NORグループに分類され、観測点TPcは、EORグループに分類される。したがって、上記の(b)の条件が満たされる。そのため、観測点TPa,TPb,TPcは、図13のパターン3に示されているように、3入力のEOR回路58で共用されることになる。
【0091】
以上のように、複合ゲート、3入力以上のNAND回路またはNOR回路、2入力のNAND回路またはNOR回路、EOR回路の優先順位で、観測点を共用する論理回路が選択される。そして、CPU41は、共用した観測点の数が、たとえば、ユーザにより指定される閾値(被試験回路において共用する観測点の数)より少ない場合、選択した論理回路の出力値が伝搬される信号線における0可制御性と1可制御性を算出する。さらに、CPU41は、観測点と同様に、選択した論理回路の出力値が伝搬される信号線上の共用ポイントが、図6に示したような選択条件にしたがって何れのグループに属するか判定する。
【0092】
たとえば、図1のような半導体集積回路1を設計する場合、まず、観測点TP1,TP2を共用するNOR回路3が選択され、信号線TA5上に共用ポイントが設定され、共用ポイントのグループが決定される。図3に示したような複合ゲート30が、セルライブラリになく、選択できない場合には、図1に示したように、観測点TP3,TP4を共用するNAND回路4が選択される。そして、NAND回路4の出力値が伝搬される信号線TA6における共用ポイントの0可制御性と1可制御性が算出され、図6に示したような選択条件にしたがって、共用ポイントが何れのグループに属するか判定される。そして、両共用ポイントを共用する論理回路が、上記と同様な優先順位で判定され、選択される。
【0093】
なお、上記ではNAND回路や、NOR回路が選択されるようにしたが、NAND回路やNOR回路の代わりに、AND回路やOR回路が選択されるようにしても、EOR回路を優先して選択するよりも回路面積を削減できる。ただし、図2に示したように、NAND回路やNOR回路の方がAND回路やOR回路よりも面積が小さいため、NAND回路やNOR回路が選択可能であれば、優先して、NAND回路やNOR回路を選択することが望ましい。
【0094】
また上記では、選択される論理回路の優先順位を、3入力以上の論理回路と、2入力の論理回路の2つの場合に分けたが、3入力以上の場合も、入力端子数が多い論理回路ほど優先して配置されるようにしてもよい。
【0095】
NAND回路(またはAND回路)、NOR回路(またはOR回路)、EOR回路(またはENOR回路)が選択される条件をまとめると、以下のようになる。
図14は、各論理回路が選択される条件の一例を示す図である。
【0096】
NAND回路(またはAND回路)の選択条件は、共用する観測点がNANDグループ同士の場合である。NOR回路(またはOR回路)の選択条件は、共用する観測点がNORグループ同士の場合である。EOR回路(またはENOR回路)の選択条件は、2つあり、共用する観測点がEORグループ同士の場合と、共用する観測点のグループが異なる場合である。
【0097】
(ネットリストへの論理回路の挿入工程)
以上のような論理回路の選択工程が終了すると、CPU41は、選択した論理回路やSFFなどの回路記述を、被試験回路が記述されたネットリストに挿入する。
【0098】
これにより、図1や図3に示したような半導体集積回路1,1aが設計される。
以上の工程により、複数の信号線上の観測点を入力端子に接続し、複数の信号線を伝搬する値の、論理積、論理和、否定論理積または否定論理和の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を有した回路が生成される。論理積、論理和、否定論理積または否定論理和の何れかを演算する論理回路(AND回路、OR回路、NAND回路、NOR回路)は、図2に示したように、EOR回路よりも面積が小さい。そのため、複数の観測点を、EOR回路で共用する場合よりも、設計される半導体集積回路の回路面積を削減できる。
【0099】
また、図3に示したような複合ゲート30が選択できる場合は、優先して生成することで、回路面積を縮小できる。また、入力端子が多い論理回路を入力端子が少ない論理回路よりも優先して選択して生成することで、新たに、観測点を共有する論理回路を追加するよりも回路面積を削減できる。
【0100】
また、観測点が設定される信号線の0可制御性と1可制御性に応じて、信号線に接続される論理回路の種類が決定されるので、故障検出時(試験時)に入力されるテストパターンの生成の複雑度を軽減できる。
【0101】
図5に示したような半導体集積回路の設計方法では、上記の処理の後、故障検出(ステップS12)が行われる。
以下、図1に示した半導体集積回路1の故障検出の一例を説明する。
【0102】
(故障検出)
たとえば、信号線TA1に発生する0縮退故障を観測する場合の半導体集積回路1の動作は以下のようになる。
【0103】
図15は、信号線TA1の0縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
図15では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EOR回路5の出力、SFF9に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA1の0縮退故障が発生している際の信号値の例を示している。
【0104】
動作モードには、図1に示したようなSFF6〜9を含む複数のSFFが直列に接続されたシフトレジスタをスキャンシフト動作させるモードと、通常の動作モード(図15ではキャプチャと示している。)を有する。モード間の切り替えは、SFF6〜9のスキャンモード端子SMに入力される制御信号により行われる。
【0105】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EOR回路5の出力、SFF9の値は、X(不定値)となっている。図15では、スキャンシフト動作中の信号の詳細は図示を省略している。
【0106】
スキャンシフト動作の最後のサイクルn−1では、たとえば、CPU41により信号線TA1が“1”と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0107】
このとき、信号線TA1の故障を検出するため、NOR回路3が信号線TA1の状態に応じた値を伝搬するように、NOR回路3のサイドインプットが非制御値の“0”に設定される。つまり、信号線TA2が“0”に設定される。
【0108】
また、NOR回路3から出力される信号線TA1の状態に応じた値を、EOR回路5が伝搬するように、EOR回路5のサイドインプットが“0”または“1”に設定される。EOR回路5は、制御値がないため、サイドインプットが“0”でも“1”でも、ある入力端子に入力される信号に応じた値を出力できるからである。ただし、信号線TA6は、図1に示したように0可制御性が1可制御性よりも大きいため、図15の例では、“0”に設定されるものとしている。また、信号線TA6を“0”にするため、信号線TA3,TA4が、ともに“1”に設定されている。
【0109】
信号線TA1が正常な場合、信号線TA1を伝搬する値である“1”と信号線TA2を伝搬する値である“0”の否定論理和がNOR回路3から出力され、信号線TA5の値は“0”である。そして、信号線TA5を伝搬する値である“0”と信号線TA6を伝搬する値である“0”の排他的論理和の演算結果である“0”がEOR回路5から出力され、キャプチャ動作時(サイクルn)でSFF9に取り込まれる値も“0”のままである。
【0110】
これに対し、信号線TA1に0縮退故障が発生している場合、NOR回路3の2つの入力値が両方“0”になるため、出力値が“1”となり、信号線TA5の値は“1”となる。そして、EOR回路5の2つの入力値が“1”と“0”になるため、出力値が“1”となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりでSFF9には“1”が取り込まれる(タイミングt2)。その後、サイクルn+1以降のスキャンシフト動作により、SFF9に取り込まれた値が、たとえば、半導体集積回路1の図示しない外部端子から出力され、信号線TA1の0縮退故障が検出される。
【0111】
次に、図1の信号線TA3に発生する1縮退故障を観測する場合の半導体集積回路1の動作の一例を説明する。
図16は、信号線TA3の1縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【0112】
図16では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EOR回路5の出力、SFF9に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA3の1縮退故障が発生している際の信号値の例を示している。
【0113】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EOR回路5の出力、SFF9の値は、Xとなっている。図16でも、スキャンシフト動作中の信号の詳細は図示を省略している。
【0114】
スキャンシフト動作の最後のサイクルn−1では、たとえば、CPU41により信号線TA3が“0”と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0115】
このとき、信号線TA3の故障を検出するため、NAND回路4が信号線TA3の状態に応じた値を伝搬するように、NAND回路4のサイドインプットが非制御値の“1”に設定される。つまり、信号線TA4が“1”に設定される。
【0116】
また、NAND回路4から出力される信号線TA3の状態に応じた値を、EOR回路5が伝搬するように、EOR回路5のサイドインプットが“0”または“1”に設定される。信号線TA5は、図1に示したように1可制御性が0可制御性よりも大きいため、図16の例では、“1”に設定されるものとしている。また、信号線TA5を“1”にするため、信号線TA1,TA2が、ともに“0”に設定されている。
【0117】
信号線TA3が正常な場合、信号線TA3を伝搬する値である“0”と信号線TA4を伝搬する値である“1”の否定論理積がNAND回路4から出力され、信号線TA6の値は“1”である。そして、信号線TA5を伝搬する値である“1”と信号線TA6を伝搬する値である“1”の排他的論理和の演算結果である“0”がEOR回路5から出力され、キャプチャ動作時(サイクルn)でSFF9に取り込まれる値が“0”となる(タイミングt2)。
【0118】
これに対し、信号線TA3に1縮退故障が発生している場合、NAND回路4の2つの入力値が両方“1”になるため、出力値が“0”となり、信号線TA6の値は“0”となる。そして、EOR回路5の2つの入力値が“1”と“0”になるため、出力値が“1”となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりであるタイミングt2では、SFF9に“1”が取り込まれる。その後、サイクルn+1以降のスキャンシフト動作により、SFF9に取り込まれた値が、たとえば、半導体集積回路1の図示しない外部端子から出力され、信号線TA3の1縮退故障が検出される。
【0119】
以上のような、故障検出によって、被試験回路2における信号線TA1〜TA4の各種故障を検出することができる。
以上、実施の形態に基づき、本発明の半導体集積回路及び半導体集積回路の設計方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【0120】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 被試験回路と、
前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、
を有することを特徴とする半導体集積回路。
【0121】
(付記2) 前記論理回路は、前記複数の信号線の1可制御性が0可制御性よりも大きい場合、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、論理和回路または否定論理和回路であることを特徴とする付記1に記載の半導体集積回路。
【0122】
(付記3) 前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない、観測対象の第2の信号線とを複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を有することを特徴とする付記1または2に記載の半導体集積回路。
【0123】
(付記4) コンピュータによって実行される半導体集積回路の設計方法において、
記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、
前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する、
ことを特徴とする半導体集積回路の設計方法。
【0124】
(付記5) 前記複数の信号線の1可制御性が0可制御性よりも大きい場合、生成される前記論理回路は、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、生成される前記論理回路は、論理和回路または否定論理和回路であることを特徴とする付記4に記載の半導体集積回路の設計方法。
【0125】
(付記6) 前記観測点を、前記観測点が設定される信号線の1可制御性と0可制御性の大小関係に応じてグループ分けすることを特徴とする付記4に記載の半導体集積回路の設計方法。
【0126】
(付記7) 前記信号線の1可制御性が0可制御性より大きいグループに分類された前記観測点同士を接続する前記論理回路として、論理積回路または否定論理積回路を生成し、前記信号線の1可制御性が0可制御性より小さいグループに分類された前記観測点同士を接続する前記論理回路として、論理和回路または否定論理和回路を生成することを特徴とする付記6に記載の半導体集積回路の設計方法。
【0127】
(付記8) 前記信号線の1可制御性が0可制御性と等しいグループに分類された前記観測点同士、または、異なるグループに分類された前記観測点同士を、排他的論理和回路または否定排他的論理和回路の入力端子に接続することを特徴とする付記6または7に記載の半導体集積回路の設計方法。
【0128】
(付記9) 前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない観測対象の第2の信号線と、を複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を生成することを特徴とする付記4乃至8の何れか1つに記載の半導体集積回路の設計方法。
【0129】
(付記10) 入力端子数が多い前記論理回路を、入力端子数が少ない前記論理回路よりも優先的に選択して生成することを特徴とする付記4乃至9の何れか1つに記載の半導体集積回路の設計方法。
【符号の説明】
【0130】
1 半導体集積回路
2 被試験回路
3 NOR回路
4 NAND回路
5 EOR回路
6〜9 SFF(スキャンフリップフロップ)
21〜25 組合せ回路
TA1〜TA6 信号線
TP1〜TP4 観測点
【技術分野】
【0001】
本発明は、半導体集積回路及び半導体集積回路の設計方法に関する。
【背景技術】
【0002】
半導体集積回路の試験時の故障検出率を向上させるために、ある信号線の信号値を観測したり、制御したりする仕組みを半導体集積回路に挿入するTPI(Test Point Insertion)と呼ばれる技術が知られている。
【0003】
たとえば、ある組合せ回路の故障を検出する際、その組合せ回路が他の組合せ回路を介して、外部端子や、スキャンフリップフロップ(以下、単にSFFと表す)に接続されていると、他の組合せ回路の影響で故障の検出率が下がる。そのため、TPIでは、故障を検出する組合せ回路と、他の組合せ回路との間の信号線上の観測点にSFFまたは出力端子などを接続して信号値を観測可能にすることで、故障検出率を向上させる。なお、SFFまたは出力端子を含めた信号値を観測する仕組みを観測点という場合もある。
【0004】
ただし、多くの信号線に観測点を設けると、半導体集積回路の回路面積が増大したり、端子数が増加したりする。
そのため、従来、複数の観測点を入力端子に接続した排他的論理和回路を用いて、各観測点の値を観測することで、回路面積及び端子数を削減することが行われている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−135226号公報
【特許文献2】特開平5−249197号公報
【特許文献3】特開平3−296673号公報
【特許文献4】特開昭63−140969号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、排他的論理和回路は面積が大きく、観測点が多くなると、半導体集積回路の回路面積が増加してしまうという問題があった。
【課題を解決するための手段】
【0007】
発明の一観点によれば、被試験回路と、前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、を備えた半導体集積回路が提供される。
【0008】
また、発明の一観点によれば、以下に示すような、コンピュータによって実行される半導体集積回路の設計方法が提供される。
この半導体集積回路の設計方法は、記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する。
【発明の効果】
【0009】
開示の半導体集積回路及び半導体集積回路の設計方法によれば、回路面積を小さくできる。
【図面の簡単な説明】
【0010】
【図1】第1の実施の形態の半導体集積回路の一例を示す図である。
【図2】論理回路の種類とその面積の一例を示す図である。
【図3】第2の実施の形態の半導体集積回路の一例を示す図である。
【図4】半導体集積回路の設計を行うコンピュータの一例を示す図である。
【図5】半導体集積回路の設計方法の一例を示すフローチャートである。
【図6】観測点の分類条件の一例を示す図である。
【図7】AND−NOR型ゲートの複合ゲートで共用された観測点の一例を示す図である。
【図8】OR−NAND型ゲートの複合ゲートで共用された複数の観測点の一例を示す図である。
【図9】4入力のNAND回路で共用された観測点の一例を示す図である。
【図10】4入力のNOR回路で共用された観測点の一例を示す図である。
【図11】2入力のNAND回路で共用された観測点の一例を示す図である。
【図12】2入力のNOR回路で共用された観測点の一例を示す図である。
【図13】EOR回路で共用された複数の観測点の例を示す図である。
【図14】各論理回路が選択される条件の一例を示す図である。
【図15】信号線TA1の0縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【図16】信号線TA3の1縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【発明を実施するための形態】
【0011】
以下、本実施の形態を、図面を参照しつつ説明する。
本実施の形態の半導体集積回路は、被試験回路の観測対象の複数の信号線上の観測点(本明細書中では、論理回路を接続する信号線上の部分(点)を意味するものとする)を複数の入力端子に接続した論理回路を有する。論理回路は、複数の信号線を伝搬する値の、論理積(AND)、論理和(OR)、否定論理積(NAND)、または否定論理和(NOR)の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力するものである。
【0012】
(第1の実施の形態)
図1は、第1の実施の形態の半導体集積回路の一例を示す図である。
半導体集積回路1は、被試験回路2と、上記の論理回路の例として、NOR回路3とNAND回路4を有している。また、半導体集積回路1は、排他的論理和(EOR)回路5、SFF6,7,8,9を有している。
【0013】
被試験回路2は、複数の組合せ回路21,22,23,24,25を有している。
なお、図1において表記されている、信号線TA1,TA2,TA3,TA4,TA5,TA6の参照符号横の括弧内の数値は、その信号線の0可制御性と1可制御性を示している。括弧内の左側の数値が0可制御性の値であり、右側の数値が1可制御性の値である。可制御性についての詳細は後述する。
【0014】
図1の半導体集積回路1の例では、信号線TA1〜TA4が被試験回路2における観測対象の信号線である。
NOR回路3は、被試験回路2の観測対象の信号線TA1,TA2上の観測点TP1,TP2を入力端子に接続し、信号線TA1,TA2を伝搬する値の否定論理和を演算し、信号線TA1,TA2の何れかを伝搬する値に応じた出力値を出力する。NOR回路3は、一方の入力端子に入力される値が“0”のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、たとえば、信号線TA2の値が“0”のとき、NOR回路3は、信号線TA1を伝搬する値に応じた出力値を出力することになる。また、信号線TA1の値が“0”のとき、NOR回路3は、信号線TA2を伝搬する値に応じた出力値を出力することになる。
【0015】
NAND回路4は、被試験回路2の観測対象の信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続し、信号線TA3,TA4を伝搬する値の否定論理積を演算し、信号線TA3,TA4の何れかを伝搬する値に応じた出力値を出力する。NAND回路4は、一方の入力端子に入力される値が“1”のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、たとえば、信号線TA4の値が“1”のとき、NAND回路4は、信号線TA3を伝搬する値に応じた出力値を出力することになる。また、信号線TA3の値が“1”のとき、NAND回路4は、信号線TA4を伝搬する値に応じた出力値を出力することになる。
【0016】
EOR回路5は、NOR回路3とNAND回路4の出力値を信号線TA5,TA6を介して入力して、何れかの出力値に応じた値を出力する。たとえば、試験時において、半導体集積回路1に入力されるテストパターンによって、NAND回路4の出力値が“0”に固定されている場合、EOR回路5からは、NOR回路3の出力値が出力される。NAND回路4の出力値が“1”に固定されている場合、EOR回路5からは、NOR回路3の出力値を反転した値が出力される。
【0017】
SFF6,7,8,9は、データ端子D、スキャンイン端子SIN、スキャンモード端子SM、クロック端子CK、出力端子Qを有している。データ端子D以外の各端子の接続関係などは図示を省略しているが、SFF6〜9は、複数のSFFが直列に接続されたシフトレジスタとして機能するスキャンチェーンの一部となっている。そのため、SFF6〜9に取り込まれた(キャプチャされた)値は、外部から観測可能となっている。
【0018】
SFF6〜8は、それぞれ、組合せ回路23〜25の出力値を取り込み、SFF9は、EOR回路5の出力値を取り込む。
半導体集積回路1の動作を以下に説明する。
【0019】
信号線TA1に発生する故障(0縮退故障など)を検出する場合、たとえば、信号線TA2,TA6の値が“0”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA1を伝搬する値に応じた出力値が、NOR回路3、EOR回路5を介してSFF9に取り込まれ、信号線TA1に発生する故障が検出可能になる。
【0020】
信号線TA2に発生する故障を検出する場合、たとえば、信号線TA1,TA6の値が“0”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA2を伝搬する値に応じた出力値が、NOR回路3、EOR回路5を介してSFF9に取り込まれ、信号線TA2に発生する故障が検出可能になる。
【0021】
信号線TA3に発生する故障を検出する場合、たとえば、信号線TA4,TA5の値が“1”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA3を伝搬する値に応じた出力値が、NAND回路4、EOR回路5を介してSFF9に取り込まれ、信号線TA3に発生する故障が検出可能になる。
【0022】
信号線TA4に発生する故障を検出する場合、たとえば、信号線TA3,TA5の値が“1”になるようなテストパターンが半導体集積回路1に入力される。これにより、信号線TA4を伝搬する値に応じた出力値が、NAND回路4、EOR回路5を介してSFF9に取り込まれ、信号線TA4に発生する故障が検出可能になる。
【0023】
以上のように、半導体集積回路1は、複数の信号線の値(複数の観測点の値)を、NOR回路3、NAND回路4を用いて検出するようにしたので、EOR回路で複数の観測点の値を検出するよりも、回路面積を削減することができる。
【0024】
図2は、論理回路の種類とその面積の一例を示す図である。
図2では、バッファ回路(BUF)、2入力のNOR回路、2入力のNAND回路の面積を1.0としたときの、他の論理回路の面積の概略が示されている。インバータ回路(INV)は0.5、2入力のOR回路と2入力のAND回路は1.5、2入力のEOR回路は2.5、SFFでは8.0である。
【0025】
たとえば、観測点TP1〜TP4にそれぞれSFFを接続して故障を観測する回路とした場合には、その部分の回路の面積は図2の例によれば、SFFが4つ分なので、8×4=32となる。
【0026】
また、図1のNOR回路3とNAND回路4の部分にも、EOR回路を用いた場合には、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、2.5×3+8=15.5となる。
【0027】
これに対し、図1の半導体集積回路1で、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、1×2+2.5+8=12.5となり、回路面積を小さくできる。
なお、図1に示した半導体集積回路1において、NOR回路3やNAND回路4の代わりに、OR回路やAND回路を用いてもよい。また、EOR回路5の代わりに、NOR回路、NAND回路、OR回路またはAND回路を用いて、より回路面積が削減されるようにしてもよい。
【0028】
ところで、観測対象の複数の信号線に接続される論理回路は、信号線の0可制御性と1可制御性に応じて種類が決定されている。
0可制御性と1可制御性とは、信号線の値を“0”または“1”に制御できる可能性の大きさ、言い換えると、信号線の値を“0”または“1”に制御するときの容易さを示している。
【0029】
図1の例では、組合せ回路21から出力される値が伝搬する信号線TA1,TA2の0可制御性と1可制御性は(3/4,1/4)となっている。また、組合せ回路22から出力される値が伝搬する信号線TA3,TA4の0可制御性と1可制御性は(1/4,3/4)となっている。つまり、信号線TA1,TA2は、“0”に制御しやすく、信号線TA3,TA4は、“1”に制御しやすい。
【0030】
前述のように、NOR回路3は、一方の入力端子に“0”を入力することで、他の入力端子に入力された値に応じた出力値を出力する。“0”はNOR回路3にとっての非制御値と呼ばれる。また、“1”はNOR回路3にとっての制御値と呼ばれる。NAND回路4は、一方の入力端子に“1”を入力することで、他の入力端子に入力された値に応じた出力値を出力する。“1”はNAND回路4にとっての非制御値と呼ばれる。また、“0”はNAND回路4にとっての制御値と呼ばれる。
【0031】
なお、ある論理回路の1つの入力端子の信号変化を出力へ伝搬するときの他の入力端子は、サイドインプットと呼ばれる。
図1の半導体集積回路1では、試験時に上記のような非制御値をサイドインプットに設定しやすくするため、“0”に制御しやすい信号線TA1,TA2上の観測点TP1,TP2にNOR回路3が接続されている。また、“1”に制御しやすい信号線TA3,TA4上の観測点TP3,TP4にNAND回路4が接続されている。
【0032】
そして、試験時において、故障を検出する信号線TA1〜TA4に応じて、信号線TA1,TA2の何れかを伝搬する値を“1”、または信号線TA3,TA4の何れかを伝搬する値を“0”にするようなテストパターンが、半導体集積回路1に入力される。
【0033】
前述のように、信号線TA1,TA2は、“0”に制御しやすく、信号線TA3,TA4は、“1”に制御しやすい。そのため、信号線TA1,TA2の何れかを伝搬する値を“1”、または信号線TA3,TA4の何れかを伝搬する値を“0”にするようなテストパターンの生成は容易となる。
【0034】
なお、信号線TA5,TA6については、0可制御性と1可制御性の大小関係が異なっている。すなわち、信号線TA5の0可制御性と1可制御性は(7/16,9/16)と、1可制御性が0可制御性より大きいのに対し、信号線TA6では(9/16,7/16)と、1可制御性が0可制御性より小さい。このような信号線TA5,TA6については、たとえば、図1のようにEOR回路5(またはENOR回路)が接続される。EOR回路5は、NOR回路3やNAND回路4のように、前述のような制御値、非制御値がないため、サイドインプットに入力される値を“0”または“1”に固定すれば、ある入力端子に入力される値に応じた出力値が出力される。
【0035】
このように、信号線TA1〜TA6の0可制御性と1可制御性に応じて、信号線TA1〜TA6に接続される論理回路の種類が決定されているので、試験時に入力されるテストパターンの生成の複雑度を軽減できる。
【0036】
(第2の実施の形態)
図3は、第2の実施の形態の半導体集積回路の一例を示す図である。
第1の実施の形態の半導体集積回路1と同一の要素については、同一符号を付し、説明を省略する。
【0037】
第2の実施の形態の半導体集積回路1aは、NOR回路3の出力値を伝搬する信号線TA5を入力端子に接続するとともに、信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続した3入力のNAND回路31を有している。NAND回路31から出力される出力値は、SFF9に取り込まれる。
【0038】
また、図3では、NOR回路3とNAND回路31が、1つのセルである複合ゲート30に含まれていることが示されている。
前述のように、NAND回路31は“1”を非制御値とするため、試験時において、信号線TA1または信号線TA2の故障を検出する際には、信号線TA3,TA4を伝搬する値が“1”となるようなテストパターンが入力される。信号線TA3の故障を検出する際には、信号線TA4,TA5を伝搬する値が“1”となるようなテストパターンが入力される。また、信号線TA4の故障を検出する際には、信号線TA3,TA5を伝搬する値が“1”となるようなテストパターンが入力される。
【0039】
信号線TA3〜TA5は、何れも、1可制御性が0可制御性よりも大きいため、信号線TA3〜TA5の値、NAND回路31の非制御値である“1”とするテストパターンを生成することは容易である。
【0040】
このように、半導体集積回路1aでは、NOR回路3の出力値が伝搬する信号線TA5と、信号線TA3,TA4上の観測点TP3,TP4を入力端子に接続するNAND回路31を設け、信号線TA3〜TA5の何れかを伝搬する値を出力するようにしている。これにより、さらに回路面積を小さくすることが可能になる。
【0041】
たとえば、各論理回路の面積が図2に示したような関係をもつ場合、半導体集積回路1aにおいて、観測点TP1〜TP4の信号をまとめて検出する回路の面積は、3入力のNAND回路31の面積を1.5とすると、1+1.5+8=10.5となる。第1の実施の形態の半導体集積回路1では、12.5であったため、それよりも回路面積をさらに縮小できる。
【0042】
なお、図3の例では、信号線TA3〜TA5において、何れも、1可制御性が0可制御性よりも大きいためNAND回路31を適用しているが、これに限定されない。信号線TA3〜TA5において、何れも、1可制御性が0可制御性よりも小さい場合には、OR回路やNOR回路を用いることが、テストパターン生成の容易化のためには望ましい。
【0043】
また、信号線TA3〜TA5において、0可制御性と1可制御性の大小関係が異なるような場合には、NAND回路31の代わりにEOR回路を用いてもよい。
以下、上記のような半導体集積回路1,1aを設計する設計方法を説明する。
【0044】
(半導体集積回路の設計方法)
半導体集積回路の設計は、たとえば、以下に示すようなコンピュータで行われる。
図4は、半導体集積回路の設計を行うコンピュータの一例を示す図である。
【0045】
コンピュータ40は、CPU(Central Processing Unit)41によって装置全体が制御されている。CPU41には、バス48を介してRAM(Random Access Memory)42と複数の周辺機器が接続されている。
【0046】
RAM42は、コンピュータ40の主記憶装置として使用される。RAM42には、CPU41に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM42には、CPU41による処理に用いる各種データが格納される。
【0047】
バス48に接続されている周辺機器としては、ハードディスクドライブ(HDD:Hard Disk Drive)43、グラフィック処理装置44、入力インタフェース45、光学ドライブ装置46、及び通信インタフェース47がある。
【0048】
HDD43は、内蔵したディスクに対して、磁気的にデータの書き込み及び読み出しを行う。HDD43は、コンピュータ40の二次記憶装置として使用される。HDD43には、OSのプログラム、アプリケーションプログラム、及び、ネットリストなどの被試験回路データなど、各種データが格納される。なお、二次記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【0049】
グラフィック処理装置44には、モニタ44aが接続されている。グラフィック処理装置44は、CPU41からの命令にしたがって、画像をモニタ44aの画面に表示させる。モニタ44aとしては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0050】
入力インタフェース45には、キーボード45aとマウス45bとが接続されている。入力インタフェース45は、キーボード45aやマウス45bから送られてくる信号をCPU41に送信する。なお、マウス45bは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0051】
光学ドライブ装置46は、レーザ光などを利用して、光ディスク46aに記録されたデータの読み取りを行う。光ディスク46aは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク46aには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
【0052】
通信インタフェース47は、ネットワーク47aに接続されている。通信インタフェース47は、ネットワーク47aを介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0053】
図5は、半導体集積回路の設計方法の一例を示すフローチャートである。
ステップS10:たとえば、入力インタフェース45を介してユーザにより、被試験回路における観測対象の複数の信号線上の観測点の位置などが指示される。これによりCPU41は、たとえば、HDD43などに格納されたネットリスト(被試験回路データ)から、観測対象の複数の信号線上の観測点を抽出する。
【0054】
ステップS11:CPU41は、抽出された観測点を複数の入力端子に接続し、複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する。これにより、複数の観測点を共有する論理回路が生成される。なお、CPU41は、後述する条件の場合には、排他的論理和または否定排他的論理和を演算する論理回路を生成するようにしてもよい。
【0055】
ステップS11の処理は、可制御性(1可制御性と0可制御性)の算出工程(ステップS111)、観測点の分類工程(ステップS112)、論理回路の選択工程(ステップS113)、ネットリストへの論理回路の挿入工程(ステップS114)を有している。以下各工程の詳細を説明する。
【0056】
(可制御性の算出工程)
0可制御性と1可制御性は以下のように求められる。
なお、以下の例では、各信号線において、0可制御性を示す値と1可制御性を示す値の和は1であるとする。
【0057】
たとえば、AND回路の出力値が伝搬される信号線の1可制御性は、そのAND回路の各入力値が伝搬される信号線の1可制御性を示す値の積で求められる。また、0可制御性は、1から1可制御性を示す値を引き算した値となる。そのため、たとえば、2入力AND回路において、入力側の2つの信号線の0可制御性と1可制御性が(1/2,1/2)のとき、出力側の信号線の0可制御性と1可制御性は、(3/4,1/4)となる。
【0058】
また、OR回路の出力値が伝搬される信号線の0可制御性は、そのOR回路の各入力値が伝搬される信号線の0可制御性を示す値の積で求められる。また、1可制御性は、1から0可制御性を示す値を引き算した値となる。そのため、たとえば、2入力OR回路において、入力側の2つの信号線の0可制御性と1可制御性が(1/2,1/2)のとき、出力側の信号線の0可制御性と1可制御性は、(1/4,3/4)となる。
【0059】
たとえば、図1に示したような半導体集積回路1を設計する際、CPU41は、被試験回路2の組合せ回路21,22に含まれる論理回路の種類に応じて上記のような計算を行い、信号線TA1〜TA4の0可制御性と1可制御性を算出する。
【0060】
(観測点分類工程)
CPU41は、抽出された複数の観測点を、どの論理回路を用いて共用するか決定するために、ステップS111で求めた可制御性に応じて、各観測点を分類する。
【0061】
図6は、観測点の分類条件の一例を示す図である。
観測点は、0可制御性と1可制御性の大小を選択条件として、たとえば、図6に示すようなグループ名の3つのグループに分類される。1可制御性が0可制御性より大きい観測点は、NANDグループに分類される。1可制御性が0可制御性より小さい観測点は、NORグループに分類される。1可制御性が0可制御性と等しい観測点は、EORグループに分類される。
【0062】
なお、1可制御性が0可制御性と等しい観測点が、NANDグループまたは、NORグループに分類されるようにして、EORグループをなくしてもよい。
(論理回路の選択工程)
CPU41は、複数の観測点を共用する論理回路(複数の観測点を入力端子に接続し、1つの出力端子から観測結果を出力する回路)として、たとえば、以下の優先順序で、選択が可能か判断する。(1)複合ゲート、(2)3入力以上のNAND回路またはNOR回路、(3)2入力のNAND回路またはNOR回路、(4)EOR回路(またはENOR回路)。
【0063】
なお、NAND回路やNOR回路の代わりに、AND回路やOR回路が選択されるようにしてもよいが、図2に示したようにNAND回路やNOR回路の方が、AND回路やOR回路よりも面積が小さい。そのため以下では、複合ゲートが選択される場合を除き、AND回路またはOR回路ではなく、NAND回路またはNOR回路が、観測点を共用する論理回路として選択される場合の例について説明する。
【0064】
複合ゲートの選択条件は、たとえば、HDD43に格納されているセルライブラリに存在する複合ゲートの種類に応じて、たとえば、以下のようになる。
(AND−NOR型ゲートの場合)
(a)NANDグループに属する観測点が少なくとも2つ存在する。
【0065】
(b)NANDグループに属する観測点同士を、AND回路で共用すると仮定した場合、AND回路の出力値が伝搬される信号線上に設定するポイント(以下共用ポイントという)がNORグループに分類される。なお、CPU41は、この条件を満たすか判定するため、共用ポイントにおける可制御性の算出を行い、図6に示した選択条件のもと、共用ポイントが分類されるグループを決定する。
【0066】
(c)NORグループに属する観測点が少なくとも1つ存在する。
上記3つの条件がすべて満たされる場合、CPU41は、複数の観測点を共用する論理回路として、AND−NOR型ゲートの複合ゲートを選択する。
【0067】
図7は、AND−NOR型ゲートの複合ゲートで共用された観測点の一例を示す図である。
観測点TPa,TPb,TPcでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPb,TPcは、NANDグループに属する。したがって、上記の(a)の条件を満たす。
【0068】
図7に示されているように、観測点TPa,TPb,TPcをAND回路50aで共用した場合の共用ポイントCP1における0可制御性は、1可制御性よりも大きい。そのため、共用ポイントCP1は、図6に示したように、NORグループに属し、上記の(b)の条件を満たす。
【0069】
また、図7に示されているように、観測点TPdでは、0可制御性が1可制御性よりも大きいため、図6に示したように、観測点TPdは、NORグループに属する。したがって、上記の(c)の条件を満たす。
【0070】
これにより、共用ポイントCP1と、観測点TPdがNOR回路50bで共用される。つまり、観測点TPa,TPb,TPc,TPdは、図7に示されているようなAND−NOR型ゲート50で共用されることになる。
【0071】
(OR−NAND型ゲートの場合)
OR−NAND型ゲートの選択条件は、たとえば、以下のようになる。
(a)NORグループに属する観測点が少なくとも2つ存在する。
【0072】
(b)NORグループに属する観測点を、OR回路で共用すると仮定した場合、OR回路の出力値が伝搬される信号線上の共用ポイントがNANDグループに分類される。
(c)NANDグループに属する観測点が少なくとも1つ存在する。
【0073】
上記3つの条件がすべて満たされる場合、CPU41は、複数の観測点を共用する論理回路として、OR−NAND型ゲートの複合ゲートを選択する。
図8は、OR−NAND型ゲートの複合ゲートで共用された複数の観測点の一例を示す図である。
【0074】
観測点TPa,TPb,TPcでは、0可制御性が1可制御性より大きいため、観測点TPa,TPb,TPcは、図6に示したように、NORグループに属する。したがって、上記の(a)の条件を満たす。
【0075】
図8に示されているように、観測点TPa,TPb,TPcをOR回路51aで共用した場合の共用ポイントCP2における0可制御性は1可制御性よりも小さい。そのため、共用ポイントCP2は、図6に示したように、NANDグループに属し、上記の(b)の条件を満たす。
【0076】
また、図8に示されているように、観測点TPdでは、0可制御性が1可制御性よりも小さいため、図6に示したように、観測点TPdは、NANDグループに属する。したがって、上記の(c)の条件を満たす。
【0077】
これにより、共用ポイントCP2と、観測点TPdがNAND回路51bで共用される。つまり、観測点TPa,TPb,TPc,TPdは、図8に示されているような、OR−NAND型ゲート51で共用されることになる。
【0078】
3入力以上のNAND回路またはNOR回路、2入力のNAND回路またはNOR回路、及びEOR回路(またはENOR回路)の選択条件は、以下のような条件となる。
(3入力以上のNAND回路の選択条件)
3入力以上のNAND回路の選択条件は、共用するすべての観測点がすべてNANDグループに分類されていること、である。
【0079】
図9は、4入力のNAND回路で共用された観測点の一例を示す図である。
観測点TPa,TPb,TPc,TPdでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPb,TPc,TPdは、NANDグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPb,TPc,TPdは、図9に示されているような、4入力のNAND回路52で共用されることになる。
【0080】
(3入力以上のNOR回路の選択条件)
3入力以上のNOR回路の選択条件は、共用するすべての観測点がすべてNORグループに分類されていること、である。
【0081】
図10は、4入力のNOR回路で共用された観測点の一例を示す図である。
観測点TPa,TPb,TPc,TPdでは、0可制御性が1可制御性より大きいため、図6に示したように、観測点TPa,TPb,TPc,TPdは、NORグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPb,TPc,TPdは、図10に示されているような、4入力のNOR回路53で共用されることになる。
【0082】
(2入力のNAND回路の選択条件)
2入力のNAND回路の選択条件は、共用する2つの観測点がNANDグループに分類されていること、である。
【0083】
図11は、2入力のNAND回路で共用された観測点の一例を示す図である。
観測点TPa,TPbでは、0可制御性より1可制御性が大きいため、図6に示したように、観測点TPa,TPbは、NANDグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPbは、図11に示されているような、2入力のNAND回路54で共用されることになる。
【0084】
(2入力のNOR回路の選択条件)
2入力のNOR回路の選択条件は、共用する2つの観測点がNORグループに分類されていること、である。
【0085】
図12は、2入力のNOR回路で共用された観測点の一例を示す図である。
観測点TPa,TPbでは、0可制御性が1可制御性より大きいため、図6に示したように、観測点TPa,TPbは、NORグループに属する。したがって、上記の条件を満たす。そのため、観測点TPa,TPbは、図12に示されているような、2入力のNOR回路55で共用されることになる。
【0086】
(EOR回路またはENOR回路の選択条件)
EOR回路またはENOR回路の選択条件として、以下の2つがある。
(a)共用する複数の観測点がEORグループに分類されている。
【0087】
(b)共用する複数の観測点が異なるグループに分類されている。
たとえば、上記2つの条件のうち、1つでも満たされる場合には、CPU41は、複数の観測点を共用する論理回路として、EOR回路またはENOR回路を選択する。
【0088】
図13は、EOR回路で共用された複数の観測点の例を示す図である。図13では、3つのパターンが示されている。
パターン1において、観測点TPa,TPbでは、0可制御性が1可制御性と等しいため、図6に示したように、観測点TPa,TPbは、EORグループに属する。したがって、上記の(a)の条件が満たされる。そのため、観測点TPa,TPbは、図13のパターン1に示されているように、EOR回路56で共用されることになる。
【0089】
パターン2において、観測点TPaでは、0可制御性が1可制御性より大きく、観測点TPbでは、0可制御性より1可制御性が大きい。そのため、図6に示したように、観測点TPaは、NORグループに分類され、観測点TPbは、NANDグループに分類される。したがって、上記の(b)の条件が満たされる。そのため、観測点TPa,TPbは、図13のパターン2に示されているように、EOR回路57で共用されることになる。
【0090】
パターン3において、観測点TPaでは、0可制御性より1可制御性が大きく、観測点TPbでは、0可制御性が1可制御性より大きく、観測点TPcでは、0可制御性と1可制御性が等しい。そのため、図6に示したように、観測点TPaは、NANDグループに分類され、観測点TPbは、NORグループに分類され、観測点TPcは、EORグループに分類される。したがって、上記の(b)の条件が満たされる。そのため、観測点TPa,TPb,TPcは、図13のパターン3に示されているように、3入力のEOR回路58で共用されることになる。
【0091】
以上のように、複合ゲート、3入力以上のNAND回路またはNOR回路、2入力のNAND回路またはNOR回路、EOR回路の優先順位で、観測点を共用する論理回路が選択される。そして、CPU41は、共用した観測点の数が、たとえば、ユーザにより指定される閾値(被試験回路において共用する観測点の数)より少ない場合、選択した論理回路の出力値が伝搬される信号線における0可制御性と1可制御性を算出する。さらに、CPU41は、観測点と同様に、選択した論理回路の出力値が伝搬される信号線上の共用ポイントが、図6に示したような選択条件にしたがって何れのグループに属するか判定する。
【0092】
たとえば、図1のような半導体集積回路1を設計する場合、まず、観測点TP1,TP2を共用するNOR回路3が選択され、信号線TA5上に共用ポイントが設定され、共用ポイントのグループが決定される。図3に示したような複合ゲート30が、セルライブラリになく、選択できない場合には、図1に示したように、観測点TP3,TP4を共用するNAND回路4が選択される。そして、NAND回路4の出力値が伝搬される信号線TA6における共用ポイントの0可制御性と1可制御性が算出され、図6に示したような選択条件にしたがって、共用ポイントが何れのグループに属するか判定される。そして、両共用ポイントを共用する論理回路が、上記と同様な優先順位で判定され、選択される。
【0093】
なお、上記ではNAND回路や、NOR回路が選択されるようにしたが、NAND回路やNOR回路の代わりに、AND回路やOR回路が選択されるようにしても、EOR回路を優先して選択するよりも回路面積を削減できる。ただし、図2に示したように、NAND回路やNOR回路の方がAND回路やOR回路よりも面積が小さいため、NAND回路やNOR回路が選択可能であれば、優先して、NAND回路やNOR回路を選択することが望ましい。
【0094】
また上記では、選択される論理回路の優先順位を、3入力以上の論理回路と、2入力の論理回路の2つの場合に分けたが、3入力以上の場合も、入力端子数が多い論理回路ほど優先して配置されるようにしてもよい。
【0095】
NAND回路(またはAND回路)、NOR回路(またはOR回路)、EOR回路(またはENOR回路)が選択される条件をまとめると、以下のようになる。
図14は、各論理回路が選択される条件の一例を示す図である。
【0096】
NAND回路(またはAND回路)の選択条件は、共用する観測点がNANDグループ同士の場合である。NOR回路(またはOR回路)の選択条件は、共用する観測点がNORグループ同士の場合である。EOR回路(またはENOR回路)の選択条件は、2つあり、共用する観測点がEORグループ同士の場合と、共用する観測点のグループが異なる場合である。
【0097】
(ネットリストへの論理回路の挿入工程)
以上のような論理回路の選択工程が終了すると、CPU41は、選択した論理回路やSFFなどの回路記述を、被試験回路が記述されたネットリストに挿入する。
【0098】
これにより、図1や図3に示したような半導体集積回路1,1aが設計される。
以上の工程により、複数の信号線上の観測点を入力端子に接続し、複数の信号線を伝搬する値の、論理積、論理和、否定論理積または否定論理和の何れかを演算し、複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を有した回路が生成される。論理積、論理和、否定論理積または否定論理和の何れかを演算する論理回路(AND回路、OR回路、NAND回路、NOR回路)は、図2に示したように、EOR回路よりも面積が小さい。そのため、複数の観測点を、EOR回路で共用する場合よりも、設計される半導体集積回路の回路面積を削減できる。
【0099】
また、図3に示したような複合ゲート30が選択できる場合は、優先して生成することで、回路面積を縮小できる。また、入力端子が多い論理回路を入力端子が少ない論理回路よりも優先して選択して生成することで、新たに、観測点を共有する論理回路を追加するよりも回路面積を削減できる。
【0100】
また、観測点が設定される信号線の0可制御性と1可制御性に応じて、信号線に接続される論理回路の種類が決定されるので、故障検出時(試験時)に入力されるテストパターンの生成の複雑度を軽減できる。
【0101】
図5に示したような半導体集積回路の設計方法では、上記の処理の後、故障検出(ステップS12)が行われる。
以下、図1に示した半導体集積回路1の故障検出の一例を説明する。
【0102】
(故障検出)
たとえば、信号線TA1に発生する0縮退故障を観測する場合の半導体集積回路1の動作は以下のようになる。
【0103】
図15は、信号線TA1の0縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
図15では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EOR回路5の出力、SFF9に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA1の0縮退故障が発生している際の信号値の例を示している。
【0104】
動作モードには、図1に示したようなSFF6〜9を含む複数のSFFが直列に接続されたシフトレジスタをスキャンシフト動作させるモードと、通常の動作モード(図15ではキャプチャと示している。)を有する。モード間の切り替えは、SFF6〜9のスキャンモード端子SMに入力される制御信号により行われる。
【0105】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EOR回路5の出力、SFF9の値は、X(不定値)となっている。図15では、スキャンシフト動作中の信号の詳細は図示を省略している。
【0106】
スキャンシフト動作の最後のサイクルn−1では、たとえば、CPU41により信号線TA1が“1”と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0107】
このとき、信号線TA1の故障を検出するため、NOR回路3が信号線TA1の状態に応じた値を伝搬するように、NOR回路3のサイドインプットが非制御値の“0”に設定される。つまり、信号線TA2が“0”に設定される。
【0108】
また、NOR回路3から出力される信号線TA1の状態に応じた値を、EOR回路5が伝搬するように、EOR回路5のサイドインプットが“0”または“1”に設定される。EOR回路5は、制御値がないため、サイドインプットが“0”でも“1”でも、ある入力端子に入力される信号に応じた値を出力できるからである。ただし、信号線TA6は、図1に示したように0可制御性が1可制御性よりも大きいため、図15の例では、“0”に設定されるものとしている。また、信号線TA6を“0”にするため、信号線TA3,TA4が、ともに“1”に設定されている。
【0109】
信号線TA1が正常な場合、信号線TA1を伝搬する値である“1”と信号線TA2を伝搬する値である“0”の否定論理和がNOR回路3から出力され、信号線TA5の値は“0”である。そして、信号線TA5を伝搬する値である“0”と信号線TA6を伝搬する値である“0”の排他的論理和の演算結果である“0”がEOR回路5から出力され、キャプチャ動作時(サイクルn)でSFF9に取り込まれる値も“0”のままである。
【0110】
これに対し、信号線TA1に0縮退故障が発生している場合、NOR回路3の2つの入力値が両方“0”になるため、出力値が“1”となり、信号線TA5の値は“1”となる。そして、EOR回路5の2つの入力値が“1”と“0”になるため、出力値が“1”となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりでSFF9には“1”が取り込まれる(タイミングt2)。その後、サイクルn+1以降のスキャンシフト動作により、SFF9に取り込まれた値が、たとえば、半導体集積回路1の図示しない外部端子から出力され、信号線TA1の0縮退故障が検出される。
【0111】
次に、図1の信号線TA3に発生する1縮退故障を観測する場合の半導体集積回路1の動作の一例を説明する。
図16は、信号線TA3の1縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
【0112】
図16では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EOR回路5の出力、SFF9に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA3の1縮退故障が発生している際の信号値の例を示している。
【0113】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EOR回路5の出力、SFF9の値は、Xとなっている。図16でも、スキャンシフト動作中の信号の詳細は図示を省略している。
【0114】
スキャンシフト動作の最後のサイクルn−1では、たとえば、CPU41により信号線TA3が“0”と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0115】
このとき、信号線TA3の故障を検出するため、NAND回路4が信号線TA3の状態に応じた値を伝搬するように、NAND回路4のサイドインプットが非制御値の“1”に設定される。つまり、信号線TA4が“1”に設定される。
【0116】
また、NAND回路4から出力される信号線TA3の状態に応じた値を、EOR回路5が伝搬するように、EOR回路5のサイドインプットが“0”または“1”に設定される。信号線TA5は、図1に示したように1可制御性が0可制御性よりも大きいため、図16の例では、“1”に設定されるものとしている。また、信号線TA5を“1”にするため、信号線TA1,TA2が、ともに“0”に設定されている。
【0117】
信号線TA3が正常な場合、信号線TA3を伝搬する値である“0”と信号線TA4を伝搬する値である“1”の否定論理積がNAND回路4から出力され、信号線TA6の値は“1”である。そして、信号線TA5を伝搬する値である“1”と信号線TA6を伝搬する値である“1”の排他的論理和の演算結果である“0”がEOR回路5から出力され、キャプチャ動作時(サイクルn)でSFF9に取り込まれる値が“0”となる(タイミングt2)。
【0118】
これに対し、信号線TA3に1縮退故障が発生している場合、NAND回路4の2つの入力値が両方“1”になるため、出力値が“0”となり、信号線TA6の値は“0”となる。そして、EOR回路5の2つの入力値が“1”と“0”になるため、出力値が“1”となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりであるタイミングt2では、SFF9に“1”が取り込まれる。その後、サイクルn+1以降のスキャンシフト動作により、SFF9に取り込まれた値が、たとえば、半導体集積回路1の図示しない外部端子から出力され、信号線TA3の1縮退故障が検出される。
【0119】
以上のような、故障検出によって、被試験回路2における信号線TA1〜TA4の各種故障を検出することができる。
以上、実施の形態に基づき、本発明の半導体集積回路及び半導体集積回路の設計方法の一観点について説明してきたが、これらは一例にすぎず、上記の記載に限定されるものではない。
【0120】
以上説明した複数の実施の形態に関し、さらに以下の付記を開示する。
(付記1) 被試験回路と、
前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、
を有することを特徴とする半導体集積回路。
【0121】
(付記2) 前記論理回路は、前記複数の信号線の1可制御性が0可制御性よりも大きい場合、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、論理和回路または否定論理和回路であることを特徴とする付記1に記載の半導体集積回路。
【0122】
(付記3) 前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない、観測対象の第2の信号線とを複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を有することを特徴とする付記1または2に記載の半導体集積回路。
【0123】
(付記4) コンピュータによって実行される半導体集積回路の設計方法において、
記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、
前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する、
ことを特徴とする半導体集積回路の設計方法。
【0124】
(付記5) 前記複数の信号線の1可制御性が0可制御性よりも大きい場合、生成される前記論理回路は、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、生成される前記論理回路は、論理和回路または否定論理和回路であることを特徴とする付記4に記載の半導体集積回路の設計方法。
【0125】
(付記6) 前記観測点を、前記観測点が設定される信号線の1可制御性と0可制御性の大小関係に応じてグループ分けすることを特徴とする付記4に記載の半導体集積回路の設計方法。
【0126】
(付記7) 前記信号線の1可制御性が0可制御性より大きいグループに分類された前記観測点同士を接続する前記論理回路として、論理積回路または否定論理積回路を生成し、前記信号線の1可制御性が0可制御性より小さいグループに分類された前記観測点同士を接続する前記論理回路として、論理和回路または否定論理和回路を生成することを特徴とする付記6に記載の半導体集積回路の設計方法。
【0127】
(付記8) 前記信号線の1可制御性が0可制御性と等しいグループに分類された前記観測点同士、または、異なるグループに分類された前記観測点同士を、排他的論理和回路または否定排他的論理和回路の入力端子に接続することを特徴とする付記6または7に記載の半導体集積回路の設計方法。
【0128】
(付記9) 前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない観測対象の第2の信号線と、を複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を生成することを特徴とする付記4乃至8の何れか1つに記載の半導体集積回路の設計方法。
【0129】
(付記10) 入力端子数が多い前記論理回路を、入力端子数が少ない前記論理回路よりも優先的に選択して生成することを特徴とする付記4乃至9の何れか1つに記載の半導体集積回路の設計方法。
【符号の説明】
【0130】
1 半導体集積回路
2 被試験回路
3 NOR回路
4 NAND回路
5 EOR回路
6〜9 SFF(スキャンフリップフロップ)
21〜25 組合せ回路
TA1〜TA6 信号線
TP1〜TP4 観測点
【特許請求の範囲】
【請求項1】
被試験回路と、
前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、
を有することを特徴とする半導体集積回路。
【請求項2】
前記論理回路は、前記複数の信号線の1可制御性が0可制御性よりも大きい場合、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、論理和回路または否定論理和回路であることを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない、観測対象の第2の信号線とを複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を有することを特徴とする請求項1または2に記載の半導体集積回路。
【請求項4】
コンピュータによって実行される半導体集積回路の設計方法において、
記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、
前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する、
ことを特徴とする半導体集積回路の設計方法。
【請求項5】
前記複数の信号線の1可制御性が0可制御性よりも大きい場合、生成される前記論理回路は、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、生成される前記論理回路は、論理和回路または否定論理和回路であることを特徴とする請求項4に記載の半導体集積回路の設計方法。
【請求項6】
前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない観測対象の第2の信号線と、を複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を生成することを特徴とする請求項4または5に記載の半導体集積回路の設計方法。
【請求項1】
被試験回路と、
前記被試験回路の観測対象の複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路と、
を有することを特徴とする半導体集積回路。
【請求項2】
前記論理回路は、前記複数の信号線の1可制御性が0可制御性よりも大きい場合、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、論理和回路または否定論理和回路であることを特徴とする請求項1に記載の半導体集積回路。
【請求項3】
前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない、観測対象の第2の信号線とを複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を有することを特徴とする請求項1または2に記載の半導体集積回路。
【請求項4】
コンピュータによって実行される半導体集積回路の設計方法において、
記憶部に記憶された被試験回路データから、観測対象の複数の信号線上の観測点を抽出し、
前記複数の信号線上の観測点を複数の入力端子に接続し、前記複数の信号線を伝搬する値の、論理積、論理和、否定論理積、または否定論理和の何れかを演算し、前記複数の信号線の何れかを伝搬する値に応じた出力値を出力する論理回路を生成する、
ことを特徴とする半導体集積回路の設計方法。
【請求項5】
前記複数の信号線の1可制御性が0可制御性よりも大きい場合、生成される前記論理回路は、論理積回路または否定論理積回路であり、前記複数の信号線の1可制御性が0可制御性よりも小さい場合、生成される前記論理回路は、論理和回路または否定論理和回路であることを特徴とする請求項4に記載の半導体集積回路の設計方法。
【請求項6】
前記論理回路の出力値を伝搬する第1の信号線と、前記論理回路の入力端子に接続されていない観測対象の第2の信号線と、を複数の入力端子に接続し、前記第1の信号線または前記第2の信号線の何れかを伝搬する値に応じた値を出力する他の論理回路を生成することを特徴とする請求項4または5に記載の半導体集積回路の設計方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【公開番号】特開2013−79912(P2013−79912A)
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願番号】特願2011−221137(P2011−221137)
【出願日】平成23年10月5日(2011.10.5)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成25年5月2日(2013.5.2)
【国際特許分類】
【出願日】平成23年10月5日(2011.10.5)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]