【文献】
中尾教伸 外4名,BIST向け検査点挿入方式のFF共用に関する考察,電子情報通信学会技術研究報告,社団法人電子情報通信学会,1999年 2月 4日,Vol.98 No.584,pp.17−24
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0011】
以下に添付図面を参照して、本発明にかかる設計支援方法、設計支援プログラム、および設計支援装置の実施の形態を詳細に説明する。
【0012】
図1は、設計支援装置による動作例を示す説明図である。設計支援装置100は、対象回路logの設計を支援するコンピュータである。設計支援装置100は、信号値を観測可能な観測点を複数の信号線に共用させる共用回路であって、複数種類の論理演算の少なくともいずれかを行う複数種類の共用回路を示す共用回路情報sp_listを取得する。
図1の例では、複数種類の共用回路には、例えば、2入力排他的論理和(以下「EXOR」と称する。)回路と、2入力EXOR回路よりも面積が削減可能な共用回路と、が含まれる。
図1の例では、EXOR回路よりも面積が削減可能な共用回路として、2入力否定論理積(以下「NAND」と称する。)回路、3入力NAND回路、2入力否定論理和(以下「NOR」と称する。)回路、3入力NOR回路を示す。面積が削減可能とは、面積を入力端子数で割った値である1入力端子あたりの面積がEXOR回路よりも小さい回路である。共用回路の詳細については後述する。
【0013】
設計支援装置100は、対象回路log内の観測対象の信号線の各々について、信号線の値を特定の値とする制御のしやすさを示す可制御性に基づく値を決定する。
図1の例では、観測対象の信号線は、TA1〜TA6である。
【0014】
信号線の値を0とする制御のしやすさを示す可制御性を0可制御性と称する。信号線の値を1とする制御のしやすさを示す可制御性を1可制御性と称する。例えば、0可制御性と1可制御性とは例えば、確率で表される。0可制御性と1可制御性の算出方法は後述する。信号線について決定される値は、信号線に対応付ける入力端子を有する共用回路が行う論理演算の非制御値である。非制御値とは、論理演算の演算結果を決定しない値である。例えば、論理積(以下「AND」と称する。)とNANDとの非制御値は1であり、ORとNORとの非制御値は0であり、EXORの非制御値はnone(なし)である。
図1において、共用回路情報sp_listが示す各共用回路に付された0、1、またはnoneは非制御値を示す。また、決定結果は各信号線を示す識別情報の後に記載された()内に示す。例えば、信号線TA1(0)の0が決定された値である。
【0015】
設計支援装置100は、取得した共用回路情報sp_listに基づいて、複数種類の共用回路の中からいずれか一つの共用回路を選択する。設計支援装置100は、選択した共用回路の入力端子の各々について、観測対象の信号線TA1〜TA6のうち、信号線について決定した値が入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報101を生成する。対応情報101は、例えば、選択された共用回路の識別情報と、共用回路の入力端子の識別情報と、信号線の識別情報と、を有する。
【0016】
例えば、3入力NOR回路が選択された場合、3入力NOR回路の各入力端子に、決定された値が0である信号線TA1,TA3,TA6が対応付けられる。
図1における3入力NOR回路についての対応情報101は、対応情報101−xである。
【0017】
また、例えば、3入力NAND回路が選択された場合、3入力NAND回路の各入力端子に、決定された値が1である信号線TA2,TA4,TA5が対応付けられる。
図1における3入力NAND回路についての対応情報101は、対応情報101−yである。
【0018】
図1によれば、設計支援装置100は、EXOR回路よりも面積を削減可能な種類を含む複数種類の共用回路から選択した共用回路内の各入力端子に、可制御性に基づく値が回路の演算の非制御値と同じ信号線を対応付ける。これにより、信号線の値が観測可能な範囲で共用回路に要する面積の削減を図る。
【0019】
図2は、観測点の一例を示す説明図である。ここで、観測点について簡単に説明する。観測点は、信号値を観測する仕組みであり、具体的には外部出力端子やSFFなどである。外部出力端子やスキャンフリップフロップ(以下、「SFF(Scan Flip Flop)」と称する。)へ信号値が到達しにくい信号線に観測点を接続することによって、信号値を観測点で観測可能になる。
【0020】
4入力AND回路と3入力AND回路とによる6入力AND回路において、入力信号X6の信号線に0縮退故障を仮定し、故障を出力端子OUT1で観測する例を挙げる。入力信号X6の0縮退故障を観測するためには、入力信号X1〜X5の入力値がすべて1でなければならない。入力信号X1〜X5がそれぞれ1となる確率を1/2とした場合、入力信号X1〜X5がすべて1となる確率は、1/32(=1/(2
5))となる。したがって、入力信号X6の0縮退故障を出力端子で観測可能な確率は、1/32である。
図2において括弧で示された値は、信号線が1となる確率を表している。
【0021】
3入力AND回路に出力端子OUT2などの観測点を接続させると、入力信号X6に仮定した0縮退故障は、入力信号X4、X5が1であれば、出力端子OUT2において観測可能となる。入力信号X4、X5がそれぞれ1となる確率は1/2であるため、入力信号X4、X5がともに1となる確率は1/4(=1/(2
2))となる。したがって、入力信号X6の0縮退故障を出力端子OUT2で観測できる確率は1/4である。
【0022】
このように、観測点が接続されることにより、入力信号X6に仮定した0縮退故障を観測できる確率を向上させることができる。
【0023】
図3は、セルの種類とセルの面積例を示す説明図である。
図3に示す回路名はそれぞれが1つのセルである。バッファ(以下「BUF」と称する。)回路、2入力NOR回路、2入力NAND回路のレイアウトにおける面積は同一であり、
図3では、BUF回路、2入力NOR回路、2入力NAND回路のレイアウトにおける面積を1.0としたときの、他の論理回路の面積の概略を示す。インバータ回路(INV)は0.5であり、2入力OR回路と2入力AND回路は1.5であり、2入力EXOR回路は2.5、SFFは8.0である。
図3に示すように、2入力EXOR回路が共用回路として利用されると、2入力NAND回路や2入力NOR回路が共用回路として利用される場合よりも面積が大きくなる。
【0024】
(設計支援装置100のハードウェア構成例)
図4は、設計支援装置のハードウェア構成例を示すブロック図である。設計支援装置100は、CPU401と、ROM(Read Only Memory)402と、RAM(Random Access Memory)403と、ディスクドライブ404と、ディスク405と、を有する。設計支援装置100は、I/F406(Inter Face)と、入力装置407と、出力装置408と、を有する。また、各部はバス400によってそれぞれ接続される。
【0025】
ここで、CPU401は、設計支援装置100の全体の制御を司る。ROM402は、ブートプログラムなどのプログラムを記憶する。RAM403は、CPU401のワークエリアとして使用される記憶部である。ディスクドライブ404は、CPU401の制御にしたがってディスク405に対するデータのリード/ライトを制御する。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する。ディスク405としては、磁気ディスク、光ディスクなどが挙げられる。
【0026】
I/F406は、通信回線を通じてLAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどのネットワークNETに接続され、このネットワークNETを介して他の装置に接続される。そして、I/F406は、ネットワークNETと内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F406には、例えば、モデムやLANアダプタなどを採用することができる。
【0027】
入力装置407は、キーボード、マウス、タッチパネルなど利用者の操作により、各種データの入力を行うインターフェースである。また、入力装置407は、カメラから画像や動画を取り込むこともできる。また、入力装置407は、マイクから音声を取り込むこともできる。出力装置408は、CPU401の指示により、データを出力するインターフェースである。出力装置408には、ディスプレイやプリンタが挙げられる。
【0028】
(設計支援装置100の機能的構成例)
図5は、設計支援装置の機能的構成例を示すブロック図である。設計支援装置100は、取得部501と、TP候補集合生成部502と、TP候補選択部503と、共用回路選択部504と、対応情報生成部505と、を有する。また、設計支援装置100は、対象回路決定部506と、TP候補決定部507と、共用段数判断部508と、接続先情報生成部509と、回路情報生成部510とを有する。
【0029】
取得部501から回路情報生成部510の処理は、例えば、CPU401がアクセス可能なディスク405などの記憶装置に記憶された設計支援プログラムにコーディングされる。そして、CPU401が記憶装置に記憶された設計支援プログラムを読み出して、設計支援プログラムにコーディングされている処理を実行する。これにより、取得部501から回路情報生成部510の処理が実現される。また、各部の処理結果は、例えば、RAM403、ディスク405などの記憶装置に記憶される。
【0030】
取得部501は、対象回路log内のセルとセル間の接続関係を示す回路情報loginを取得する。ここでの回路情報loginは、ネットリストである。回路情報loginは、例えば、VerilogやVHDL(Very high speed integrated circuit Hardware Description Language)などのハードウェア記述言語やシステム記述言語によって記述される。
【0031】
図6は、対象回路例を示す説明図である。対象回路log内のモジュールについて簡単に説明する。対象回路logの全体を表すモジュールTOPは、モジュールmod1とモジュールmod2と、ユニットU3などとを有する。モジュールmod1は、ユニットU1とユニットU2などと、を有する。モジュールmod2は、ユニットU4などを有する。ここで、組み合わせ回路や順序回路などの1以上のセルについてユニットと称する。対象回路log内の観測対象の信号線を、TP(Test Point)候補と称する。
図6の例では、TP候補はTP1〜TP4である。
【0032】
取得部501は、対象回路log内の観測対象の複数のTP候補を示すTP候補情報TPdaを取得する。TP候補情報TPdaは、例えば、回路情報loginに含まれる対象回路logの全体を表すモジュールから当該TP候補を有するモジュールまでの絶対パスを含むネット名などである。
【0033】
図7は、TP候補情報例を示す説明図である。ここでは、
図7に示した対象回路logに基づくTP候補情報TPdaを示す。TP候補情報TPdaは、TP候補名のフィールドを有する。TP候補名のフィールドに情報が設定されることにより、レコードとして登録される。TP候補情報TPdaは、例えば、ディスク405などの記憶装置によって実現される。TP候補名のフィールドには、TP候補を有する各モジュールの名称とTP候補に接続されるユニット名とTP候補名とが「/」によって繋がれた情報が登録される。
【0034】
TP候補集合生成部502は、TP候補名Nameと、種類typeと、共用段数Depthと、モジュール間距離Distance(以降「Dist」と省略する。)と、を一つの要素として有するTP候補集合TP_obsをTP候補情報TPdaに基づいて生成する。各要素は、TP候補を示す。種類typeは、TP候補について可制御性に基づき決定される値である。決定される値は、TP候補を対応付ける入力端子を有する共用回路が行う論理演算の非制御値である。共用段数Depthは、TP候補が伝搬する信号を伝搬する共用回路の段数であり、初期値が0である。モジュール間距離Distは2つのTP候補の各々を有する対象回路log内のモジュールの間に介在する対象回路log内のモジュールの数であり、初期値が0である。TP候補集合生成部502は、生成したTP候補集合TP_obsをRAM403、ディスク405などの記憶装置に記憶する。
【0035】
図8は、TP候補集合の生成例を示す説明図である。TP候補集合TP_obsの各要素であるTPn(
図8中n=1〜4)の直後の括弧内は、順に、TP候補名Name、種類type、共用段数Depth、モジュール間距離Distを表す。ここでは、種類type、共用段数Depth、モジュール間距離Distは、それぞれ初期値が設定されてある。
【0036】
また、TP候補集合生成部502は、算出部511と、検出部513と、種類決定部512と、を有する。算出部511は、TP候補集合TP_obsの各要素が示すTP候補について、0可制御性および1可制御性を算出する。
【0037】
図9は、可制御性の算出例を示す説明図である。例えば、設計支援装置100は、2入力AND回路の1可制御性について、各入力の1可制御性の積によって算出する。また、設計支援装置100は、2入力AND回路の0可制御性を1から1可制御性を引き算することによって算出する。
図9のような2入力AND回路の場合、2入力AND回路の出力端子からの信号線Y1の1可制御性は、1/4(=1/2×1/2)となる。また、2入力AND回路の出力端子からの信号線Y1の0可制御性は、3/4(1−(1/2×1/2))となる。
【0038】
例えば、算出部511は、2入力OR回路の0可制御性を各入力の0可制御性の積によって算出する。また、算出部511は、2入力OR回路の1可制御性を1から0可制御性を引き算することによって算出する。
図9のような2入力OR回路の場合、2入力OR回路の出力端子からの信号線Y2の0可制御性は、1/4(=1/2×1/2)となる。また、2入力OR回路の出力端子からの信号線Y2の1可制御性は、3/4(1−(1/2×1/2))となる。
【0039】
つぎに、種類決定部512は、TP候補情報TPdaが示す複数のTP候補の各々について、算出部511による算出結果に基づく値を決定する。ここで、TP候補について決定される値は、TP候補に対応付ける入力端子を有する共用回路が行う論理演算の非制御値である。非制御値とは、論理演算の演算結果を決定しない値である。例えば、ANDとNANDとの非制御値は1であり、ORとNORとの非制御値は0であり、EXORの非制御値はnone(なし)である。ここでは、上述したように、算出結果に基づく値を、TP候補に割り当てる共用回路の種類typeとする。
【0040】
図10は、各TP候補の種類の決定方法例を示す説明図である。0可制御性が0に近いまたは1可制御性が1に近いTP候補であれば、種類決定部512は、当該TP候補の種類typeを1に決定する。0可制御性が0に近いまたは1可制御性が1に近いとは、例えば、「0可制御性+α<1可制御性」の条件を満たす場合である。例えば、種類typeが1に決定されると、
図10に示すように当該TP候補には、NANDまたはANDを行う共用回路が、EXORを行う共用回路よりも優先して割り当てられる。
【0041】
0可制御性が1に近いまたは1可制御性が0に近いTP候補であれば、種類決定部512は、当該TP候補の種類typeを0に決定する。0可制御性が1に近いまたは1可制御性が0に近いとは、例えば、「0可制御性>1可制御性+α」の条件を満たす場合である。例えば、TP候補の種類typeが0に決定されると、
図10に示すように当該TP候補には、NORまたはORを行う共用回路が、EXORを行う共用回路よりも優先して割り当てられる。
【0042】
0可制御性が0.5に近いまたは1可制御性が0.5に近い信号線であれば、当該TP候補の種類typeをnoneに決定する。0可制御性が0.5に近いまたは1可制御性が0.5に近いとは、「α≧|1可制御性−0可制御性|」の条件を満たす場合である。例えば、TP候補の種類typeがnoneに決定されると、
図10に示すように当該TP候補には、EXORを行う共用回路が割り当てられる。
【0043】
αはTP候補の種類typeを決定するための条件に設けられるマージンである。例えば、対象回路logの設計者または検証者が、対象回路logの試験パターンを生成する際に可制御性が低いと、TP候補の信号値を意図した値に設定できなくなる可能性がある。そのため、可制御性が低い場合に、AND、NAND、OR、NORのような非制御値が1または0である論理演算を行う論理回路が共用回路として用いられると、故障を観測点まで伝搬できない可能性がある。そこで、可制御性が低い場合に、0または1のいずれの縮退故障が発生しても伝搬可能なように、NORのように非制御値がnoneである論理演算を行う論理回路が共用回路として用いられる。
【0044】
図11は、αが0[%]の場合とαが10[%]の場合の比較例を示す説明図である。TP候補TPnの後ろに記載の括弧内には0可制御性、1可制御性を順に示す。例えば、TP候補TP1の0可制御性は3/5であり、TP候補TP1の1可制御性は2/5である。例えば、TP候補TP2の0可制御性は4/7であり、TP候補TP2の1可制御性は3/7である。
【0045】
αが0[%]の場合、TP候補TP1とTP候補TP2はいずれも「0可制御性>1可制御性」となり、設計支援装置100は、TP候補TP1とTP候補TP2との各々の種類typeを0に決定する。αが10[%]の場合、TP1とTP2はいずれも「α≧|1可制御性−0可制御性|」となり、設計支援装置100は、TP候補TP1とTP候補TP2との各々の種類typeをnoneに決定する。
【0046】
図12は、TP候補集合に種類が設定された例を示す説明図である。TP候補TP1を示す要素の種類typeには、0が設定され、TP候補TP2を示す要素の種類typeには、1が設定され、TP候補TP3を示す要素の種類typeには、0が設定され、TP候補TP4を示す要素の種類typeには、0が設定される。
【0047】
つぎに、取得部501は、信号値を観測可能な観測点を複数のTP候補に共用させる複数種類の共用回路を示す共用回路情報sp_listを取得する。また、共用回路情報sp_listは、複数種類の共用回路の各々についての共用回路の面積と共用回路の入力端子数とに基づく複数種類の共用回路内における各共用回路の順序を示す。当該順序とは、具体的には、面積の削減効果が大きい順序である。
【0048】
図13は、共用回路情報例を示す説明図である。共用回路情報sp_listは、面積の削減効果が大きい順序orderに基づいて共用回路名が記憶される。
図13には、NAND、NOR、EXORなどの1種類の論理演算を行う共用回路を示している。AND回路とNOR回路とが複合されたAND−NOR型の複合ゲートやOR回路とNAND回路とが複合されたOR−NAND型の複合ゲートが共用回路として用いられてもよい。
【0049】
面積の削減効果が大きい順序orderとは、1入力端子当たりの面積が小さい順序orderである。順序orderは、「複合ゲート>3入力以上のNAND、NOR回路>2入力NAND、NOR回路>EXOR回路」の通りである。例えば、3入力NAND回路の面積は2入力NAND回路の面積よりも大きいが、3入力NAND回路の1入力端子当たりの面積は、2入力NAND回路の1入力端子当たりの面積よりも小さい。そのため、面積の削減効果は、3入力NAND回路の方が2入力NAND回路より大きい。
【0050】
また、EXOR回路よりも面積の削減効果が大きい単体のAND回路単体が共用回路に含まれていてもよい。単体のAND回路とは、AND回路単体でセルになっている場合である。AND回路とNAND回路とは非制御値が同一であり、入力端子数が同一の場合、NAND回路の方がAND回路よりも面積が小さい。そのため、AND回路よりもNAND回路が優先して共用回路として用いられる。
【0051】
また、EXOR回路よりも面積の削減効果が大きい単体のOR回路が共用回路に含まれていてもよい。単体のOR回路とは、OR回路単体でセルになっている場合である。OR回路とNOR回路とは非制御値が同一であり、入力端子数が同一の場合、NOR回路の方がOR回路よりも面積が小さい。そのため、OR回路よりもNOR回路が優先して共用回路として用いられる。
【0052】
(実施例1)
実施例1では、EXOR回路より面積を削減可能な種類を含む複数種類の共用回路から、選択した観測対象の信号線の可制御性に基づく値と非制御値が同一の演算を行う共用回路を選択する。これにより、信号線の値が観測可能な範囲で共用回路に要する面積の削減を図る。
【0053】
TP候補選択部503は、複数のTP候補から1つのTP候補を選択する。具体的には、TP候補選択部503は、TP候補集合に含まれる要素から1つの要素を選択する。ここで、選択された要素をtpとし、要素tpが示すTP候補を基準TP候補とする。
【0054】
また、検出部513は、複数のTP候補のうちの基準TP候補以外の他のTP候補の各々について、他のTP候補を有する対象回路log内のモジュールと、基準TP候補を有する対象回路log内のモジュールと、のモジュール間距離Distを検出する。検出部513は、検出結果を各要素のモジュール間距離Distに設定する。
【0055】
図14は、モジュール間距離の検出例を示す説明図である。
図15は、モジュールの階層例を示す説明図である。
図16は、モジュール間距離を設定後のTP候補集合例を示す説明図である。TP候補TP1が基準候補とする。TP候補TP1とTP候補TP2とは、階層に示すように、同一のモジュール内にあるため、TP候補TP1とTP候補TP2とのモジュール間距離Distは0である。TP候補TP1とTP候補TP3との間は、階層に示すように、1つのモジュールを跨るため、TP候補TP1とTP候補TP3とのモジュール間距離Distは1である。TP候補TP1とTP候補TP4との間は、階層に示すように、2つのモジュールを跨るため、TP候補TP1とTP候補TP4とのモジュール間距離Distは2である。
【0056】
また、設計支援装置100は、複数種類の共用回路内における各共用回路の順序orderに基づいて、複数の共用回路のうち、選択したTP候補の種類typeと同一の非制御値である論理演算を行う共用回路の中からいずれか一つの共用回路を選択する。具体的には、設計支援装置100は、複数の共用回路のうち、基準TP候補の種類typeと同一の非制御値である論理演算を行う共用回路の中から面積の削減効果が最も大きい共用回路を選択する。上述したように、共用回路情報sp_listは、面積の削減効果が大きい順に共用回路名が登録されてある。そのため、設計支援装置100は、共用回路情報sp_listが示す共用回路の中で、基準TP候補の種類typeと同一の非制御値である論理演算を行う共用回路のうち、先頭に登録されている順に共用回路を選択する。ここでは、例えば、3入力NOR回路が選択される。選択された共用回路を、選択共用回路spとする。
【0057】
0に制御しやすいTP候補を非制御値が0である論理演算を行う共用回路の入力端子に対応付ける。これにより、EXORを行う共用回路の入力端子にTP候補を対応付けた場合に対して観測点での観測のし易さが低下することを抑止することができる。1に制御しやすいTP候補を非制御値が1である論理演算を行う共用回路の入力端子に対応付ける。これにより、TP候補にEXORを行う共用回路を割り当てた場合に対して観測点での観測のし易さが低下することを抑止することができる。
【0058】
つぎに、対応情報生成部505は、選択共用回路sp内の各入力端子について、TP候補集合TP_obsが示すTP候補のうち、種類typeが入力端子への入力信号に対して行われる論理演算の非制御値と同一であるTP候補を対応付ける。これにより、対応情報生成部505は、対応情報101を生成する。ここでの対応情報101は、選択共用回路sp内の入力端子のうちの入力信号に対して行う論理演算の非制御値が基準TP候補の種類typeと同一の入力端子に、基準TP候補を対応付けた対応情報101を生成する。選択共用回路sp内の入力端子については、例えば、共用回路情報sp_listに関連付けられたセルライブラリlibに基づいて特定可能である。ここでは、例えば、設計支援装置100は、3入力NOR回路の入力端子1に基準TP候補として選択されたTP候補TP1を対応付ける。
【0059】
また、対応情報生成部505は、基準TP候補が対応付けられる入力端子以外の残余の入力端子の各々に対して、TP候補を対応付けることにより対応情報101を生成する。対応情報生成部505は、残余の入力端子の各々に対して、基準TP候補以外のTP候補の中で、モジュール間距離Distが閾値Dist_limit以下であるTP候補のうちのいずれか一つのTP候補を対応付けることにより対応情報101を生成する。観測点の挿入時には回路のレイアウト設計が行われていないが、モジュール間距離Distが大きいTP候補同士であると、レイアウトにおけるTP候補の配置が遠くなる可能性が高い。そのため、モジュール間距離Distが大きいTP候補同士で観測点を共用させると、レイアウトが行えない可能性がある。本実施の形態のように、モジュール間距離Distが小さいTP候補同士で観測点を共用させることにより、レイアウト時により近くに配置されるTP候補同士で観測点を共用させることができ、レイアウトを容易化させることができる。
【0060】
種類typeが3入力NOR回路の非制御値と同一であるTP候補は、TP候補TP3とTP候補TP4である。そこで、対応情報生成部505は、基準TP候補が対応付けられる入力端子以外の残余の入力端子2、3に、TP候補TP3とTP候補TP4を対応付けることにより対応情報101を生成する。対応情報101は追加される共用回路の数(
図5中「m」で表す。)生成される。
【0061】
図17は、対応情報例1を示す説明図である。対応情報101−1は、共用回路名、入力端子名、およびTP候補名のフィールドを有する。対応情報101−1は、入力端子1にTP候補T1が対応付けられ、入力端子2にTP候補TP3が対応付けられ、入力端子3にTP候補TP4が対応付けられたことを示す。
【0062】
対象回路決定部506は、生成された対応情報101−1に基づく対応付けに従って選択した共用回路が対象回路logに接続された回路をあらたな対象回路logに決定する。
【0063】
図18は、共用回路が接続された対象回路例1を示す説明図である。例えば、対象回路決定部506は、対応情報101−1に従って、選択された3入力NOR回路の各入力端子にTP候補が接続された回路をあらたな対象回路logに決定する。あらたな対象回路logでは、TP候補T1と3入力NOR回路の入力端子1が接続され、TP候補TP3と3入力NOR回路の入力端子2が接続され、TP候補TP4と3入力NOR回路の入力端子3が接続される。
【0064】
そして、TP候補決定部507は、あらたに接続された共用回路の出力端子からの信号線と、複数のTP候補のうち生成された対応情報101によって対応付けられたTP候補以外のTP候補と、をあらたな観測対象のTP候補に決定する。例えば、共用回路の出力端子からのTP候補は、SP1である。TP候補集合TP_obsが示す対応情報101によって対応付けられたTP候補以外のTP候補は、TP2である。
【0065】
そして、TP候補決定部507は、決定されたあらたな対象回路log内の選択した共用回路の出力端子からの信号線をTP候補に決定する。具体的には、TP候補決定部507は、共用回路の出力端子からのTP候補を示す要素をTP候補集合生成部502によって生成させる。そして、TP候補決定部507は、TP候補集合生成部502によって生成された要素をTP候補集合に登録させる。
【0066】
また、共用段数判断部508は、あらたな対象回路log内の追加された共用回路の出力端子からの信号線が、あらたな対象回路log内において所定段数以上の共用回路を介して伝搬される信号を伝搬するか否かを判断する。共用段数判断部508は、対応情報101によって対応付けたTP候補を示す要素の共用段数Depthのうち、最も大きい共用段数Depthを特定する。共用段数判断部508は、特定した共用段数Depthに1インクリメントした値を、接続された共用回路の出力端子からのTP候補の共用段数Depthとする。そして、共用段数判断部508は、接続された共用回路の出力端子からのTP候補の共用段数Depthが所定段数Depth_limit以上であるか否かを判断する。所定段数Depth_limitについては、利用者によって予め定められた値であり、ディスク405などの記憶装置に予め記憶される。
【0067】
また、所定段数Depth_limit以上の共用回路を介して伝搬される信号を伝搬すると判断された場合、接続先情報生成部509は、接続された共用回路の出力端子からの信号線に、信号値に観測可能な観測点を接続させることを示す情報を生成する。具体的には、接続先情報生成部509は、接続先情報SPにTP候補を示す要素を登録することによって、観測点を接続させることを示す情報を生成する。接続先情報SP例については、後述する。また、所定段数Depth_limit以上の共用回路を介して伝搬される信号を伝搬すると判断された場合、TP候補決定部507は、決定されたあらたな対象回路log内の選択した共用回路の出力端子からの信号線をTP候補にしない。
【0068】
図18の例では、所定段数Depth_limit未満であると判断される。そのため、TP候補集合生成部502は、接続された共用回路の出力端子からのTP候補を示す要素を生成する。そして、TP候補集合生成部502は、生成したTP候補集合TP_obsに登録する。そして、TP候補集合生成部502は、TP候補集合TP_obsから、対応情報101によって対応付けられたTP候補を示す要素を削除する。
【0069】
図19は、あらたなTP候補集合例1を示す説明図である。あらたなTP候補SP1を示す要素の種類typeは上述した決定部によって決定され、ここでは1が設定される。TP候補SP1を示す要素のモジュール間距離Distには初期値が設定される。TP候補SP1を示す要素の共用段数には、1が設定される。そして、TP候補TP1とTP候補TP3とTP候補TP4との各々を示す要素はTP候補集合TP_obsから削除される。
【0070】
つぎに、TP候補選択部503は、あらたなTP候補集合TP_obsが示すTP候補の中から、いずれか一つの基準TP候補を選択する。ここでは、例えば、TP候補選択部503は、基準TP候補としてTP候補TP2を選択する。
【0071】
そして、共用回路選択部504は、順序orderに基づいて、複数の共用回路の中から、基準TP候補の種類typeと非制御値が同一の共用回路を選択する。ここでは、例えば、TP候補TP2の種類typeが1であるため、共用回路選択部504は、3入力NAND回路を選択する。
【0072】
つぎに、対応情報生成部505は、上述したように対応情報101を生成する。ここでは、TP候補集合TP_obsが示すTP候補の中に、種類typeが1であるTP候補の数が2つしかないため、3入力NAND回路の入力端子3に対応付けるTP候補がない。
【0073】
そのため、共用回路選択部504は、複数種類の共用回路のうち以前に選択した共用回路以外の共用回路の中から、基準TP候補の種類typeと非制御値が同一の共用回路をあらたに選択する。ここでは、例えば、共用回路選択部504は、2入力NAND回路を選択する。そして、対応情報生成部505は、上述したように対応情報101を生成する。
【0074】
図20は、対応情報例2を示す説明図である。対応情報101−2は、2入力NAND回路の入力端子1にTP候補TP2が対応付けられ、2入力NAND回路の入力端子2にTP候補SP1が対応付けられたことを示す。
【0075】
そして、上述と同様に、対象回路決定部506はあらたな対象回路logを決定し、共用段数判断部508は共用段数Depthが所定数Depth_limit以下であるか否かが判断する。
【0076】
図21は、共用回路が接続された対象回路例2を示す説明図である。例えば、対象回路決定部506は、対応情報101−2に従って、TP候補TP2と2入力NAND回路の入力端子1とが接続され、TP候補SP1と2入力NAND回路の入力端子2とが接続された回路をあらたな対象回路logに決定する。
図21の例では、共用段数判断部508は、所定段数Depth_limit未満の共用回路を介して伝搬される信号を伝搬すると判断する。
【0077】
そして、上述と同様に、TP候補決定部507とTP候補集合生成部502とによってあらたなTP候補集合TP_obsが生成される。
【0078】
図22は、あらたなTP候補集合例2を示す説明図である。あらたなTP候補SP2を示す要素の種類typeは上述した決定部によって決定され、ここでは0が設定される。TP候補SP1を示す要素のモジュール間距離Distには初期値が設定される。TP候補SP1を示す要素の共用段数には、2が設定される。そして、TP候補TP2とTP候補SP1との各々を示す要素はTP候補集合TP_obsから削除される。
【0079】
また、
図22のように、TP候補選択部503は、TP候補集合TP_obsが示すTP候補の数が1であると、あらたにTP候補を基準TP候補として選択しない。そして、接続先情報生成部509は、TP候補集合TP_obsが示すTP候補に、信号値を観測可能な観測点を接続させることを示す情報を生成する。具体的には、接続先情報生成部509は、接続先情報SPにTP候補を示す要素を登録することによって、観測点を接続させることを示す情報を生成する。
【0080】
図23は、接続先情報例を示す説明図である。接続先情報SPには、TP候補SP2の要素が登録される。
【0081】
回路情報生成部510は、取得した回路情報loginに基づいて、対象回路logに各対応情報101に従って共用回路を接続させ、対象回路logに接続先情報SPに従って観測点を接続させたあらたな対象回路logを示す回路情報logoutを生成する。回路情報生成部510は、生成された回路情報logoutを出力する。出力形式としては、ディスク405などに記憶させてもよいし、ディスプレイなどの出力装置408へ出力してもよいし、I/F406によりネットワークNETを介して他の装置へ出力してもよい。
【0082】
図24は、観測点を接続させた後の対象回路例を示す説明図である。例えば、
図24に示すように、TP候補SP2に観測点であるSFFが挿入される。これにより、SFFでTP候補TP1〜TP4の値を観測させることが可能となる。
【0083】
つぎに、論理演算の種類ごとの共用例と、複合ゲートによる共用例と、について、説明する。
【0084】
<NAND回路による共用例>
図25は、NAND回路による共用例を示す説明図である。
図25では、4入力NAND回路を例に挙げ、α=0として各TP候補の種類typeが決定されてある。上述したように、4入力NAND回路の非制御値は1であるため、対応情報生成部505は、4入力NAND回路の各入力端子に、TP候補の種類typeが1のTP候補を対応付ける。
【0085】
<NOR回路による共用例>
図26は、NOR回路による共用例を示す説明図である。
図26の例では、α=0として各TP候補の種類typeが決定されてある。
図26では、4入力NOR回路を例に挙げ、α=0として各TP候補の種類typeが決定されてある。上述したように、4入力NOR回路の非制御値は0であるため、対応情報生成部505は、4入力NOR回路の各入力端子に、TP候補の種類typeが0のTP候補を対応付ける。
【0086】
<AND−NOR型の複合ゲートによる共用例>
図27は、AND−NOR型の複合ゲートによる共用例を示す説明図である。
図27に示すAND−NOR型の複合ゲート内の入力端子は、1〜4である。例えば、入力端子1〜3への入力信号に対して行われる論理演算は、ANDである。上述したように、ANDの非制御値は1である。そのため、
図27に示すように、対応情報生成部505は、AND−NOR型の複合ゲート内の入力端子1〜3に、種類typeが1であるTP候補TP1〜TP3をそれぞれ対応付ける。
【0087】
入力端子4への入力信号に対して行われる論理演算は、NORである。上述したように、NORの非制御値は0である。そのため、
図27に示すように、対応情報生成部505は、AND−NOR型の複合ゲート内の入力端子4に、種類typeが0であるTP候補TP4を対応付ける。
【0088】
図27に示すように、α=0の場合に、AND−NOR型の複合ゲート内の共用ポイントでは0可制御性が1可制御性よりも大きくなるため、共用ポイントの種類typeは0となる。また、共用ポイントはNOR回路の入力端子に接続される。このため、AND−NOR型の複合ゲートは共用回路として用いることができる。
【0089】
<OR−NAND型の複合ゲートによる共用例>
図28は、OR−NAND型の複合ゲートによる共用例を示す説明図である。
図28に示すOR−NAND型の複合ゲートの入力端子は、1〜4である。例えば、入力端子1〜3への入力信号に対して行われる論理演算は、ORである。上述したように、ORの非制御値は0である。そのため、
図28に示すように、対応情報生成部505は、OR−NAND型の複合ゲートの入力端子1〜3に、種類typeが0であるTP候補TP1〜TP3をそれぞれ対応付ける。
【0090】
また、例えば、入力端子4への入力信号に対して行われる論理演算は、NANDである。上述したように、NANDの非制御値は1である。そのため、
図28に示すように、対応情報生成部505は、OR−NAND型の複合ゲートの入力端子4に、種類typeが1であるTP候補TP4を対応付ける。
【0091】
図28に示すように、α=0の場合に、OR−NAND型の複合ゲート内の共用ポイントでは1可制御性が0可制御性よりも大きくなるため、共用ポイントの種類typeは1となる。また、共用ポイントはNOR回路の入力端子に接続される。このため、AND−NOR型の複合ゲートは共用回路として用いることができる。
【0092】
<EXOR回路による共用例>
図29は、EXOR回路による共用例を示す説明図である。
図29の例では、α=0として各TP候補の種類typeが決定されてある。上述したように、EXOR回路の非制御値はnoneである。(a)に示すように、対応情報生成部505は、2入力EXOR回路の各入力端子に、TP候補の種類typeがnoneのTP候補を対応付ける。
【0093】
(b)と(c)に示すように、TP候補集合TP_obsが示すTP候補の数が複数あっても、種類typeが同一でないと、共用回路としてNAND回路やNOR回路が選択されても、入力端子にTP候補を対応付けることができない。そのため、共用回路選択回路は、EXOR回路を選択する。そして、対応情報生成部505は、他の共用回路によって共用できない残余のTP候補の各々をEXOR回路の入力端子に対応付けてもよい。
【0094】
(実施例1にかかる設計支援装置100が行う処理手順例)
図30〜
図32は、実施例1にかかる設計支援装置が行う設計支援処理手順例を示すフローチャートである。設計支援装置100は、対象回路logの回路情報loginを取得する(ステップS3001)。設計支援装置100は、共用回路情報sp_listを取得する(ステップS3002)。設計支援装置100は、TP候補情報TPdaを取得する(ステップS3003)。設計支援装置100は、TP候補情報TPdaに基づいて、TP候補集合TP_obsを生成する(ステップS3004)。
【0095】
設計支援装置100は、TP候補集合TP_obsの各要素の種類typeを決定して設定する(ステップS3005)。設計支援装置100は、TP候補集合TP_obsの各要素の共用段数Depthを検出して設定する(ステップS3006)。設計支援装置100は、接続先情報SP=φとする(ステップS3007)。設計支援装置100は、TP候補集合TP_obsの要素数が1より大きいか否かを判断する(ステップS3008)。
【0096】
TP候補集合TP_obsの要素数が1より大きくない場合(ステップS3008:No)、設計支援装置100は、TP候補集合の要素を接続先情報SPに追加する(ステップS3009)。そして、設計支援装置100は、対象回路log内の接続先情報SPの各要素が示すTP候補に観測点が接続された回路を示す回路情報logoutを生成する(ステップS3010)。つぎに、設計支援装置100は、生成結果を出力し(ステップS3011)、一連の処理を終了する。
【0097】
一方、TP候補集合TP_obsの要素数が1より大きい場合(ステップS3008:Yes)、設計支援装置100は、TP候補集合TP_obsから1つの要素を取り出し、取り出した要素を基準要素TPとして選択する(ステップS3101)。設計支援装置100は、基準要素tp以外の要素が示す残余のTP候補の各々について、基準要素tpが示す基準TP候補と、残余のTP候補と、のモジュール間距離Distを検出して設定する(ステップS3102)。
【0098】
設計支援装置100は、順序orderに基づいて、複数種類の共用回路の中から、非制御値が基準TP候補の種類と同一である論理演算を行う共用回路を選択共用回路spとして選択する(ステップS3103)。
【0099】
設計支援装置100は、選択共用回路spの入力端子のうち、入力信号に対して行われる論理演算の非制御値が基準TP候補の種類と同一の入力端子のいずれか一つの入力端子に、基準TP候補を対応付ける(ステップS3104)。設計支援装置100は、基準TP候補以外のTP候補のうち、モジュール間距離Distが閾値Dist_limit以下であるTP候補を特定する(ステップS3105)。設計支援装置100は、選択共用回路spの入力端子のうち、対応付けられていない入力端子の各々に、特定したTP候補のうち、TP候補の種類typeが入力端子の非制御値と同一のTP候補を対応付けることにより対応情報101を生成する(ステップS3106)。
【0100】
設計支援装置100は、選択共用回路spの入力端子のすべてにTP候補が対応付けられたか否かを判断する(ステップS3107)。少なくともいずれか一つの入力端子にTP候補が対応付けられていないと判断された場合(ステップS3107:No)、設計支援装置100は、未選択の共用回路の中で、非制御値が基準TP候補の種類typeと同じ論理演算を行う共用回路があるか否かを判断する(ステップS3108)。
【0101】
共用回路があると判断された場合(ステップS3108:Yes)、設計支援装置100は、順序orderに基づいて共用回路を選択共用回路spとして選択し(ステップS3109)、ステップS3104へ戻る。一方、共用回路がないと判断された場合(ステップS3108:No)、設計支援装置100は、基準TP候補の種類typeがnoneであるか否かを判断する(ステップS3110)。
【0102】
noneであると判断された場合(ステップS3110:Yes)、設計支援装置100は、基準要素tpを接続先情報SPに追加し(ステップS3111)、ステップS3008へ移行する。一方、noneでないと判断された場合(ステップS3110:No)、設計支援装置100は、基準TP候補の種類typeをnoneに変更し(ステップS3112)、ステップS3107へ戻る。
【0103】
一方、ステップS3107において、対応付けられたと判断された場合(ステップS3107:Yes)、設計支援装置100は、対応情報101に従って対象回路logに選択共用回路spが接続された回路をあらたな対象回路logに決定する(ステップS3201)。設計支援装置100は、決定したあらたな対象回路logを示す回路情報loginを生成する(ステップS3202)。
【0104】
設計支援装置100は、接続された選択共用回路spの出力端子からの信号線をTP候補として要素を生成する(ステップS3203)。そして、設計支援装置100は、生成した要素の種類typeを決定して設定する(ステップS3204)。つぎに、設計支援装置100は、生成した要素の共用段数Depthを検出して設定する(ステップS3205)。設計支援装置100は、共用段数Depthが所定段数Depth_limit以下であるか否かを判断する(ステップS3206)。
【0105】
共用段数Depthが所定段数Depth_limit以下であると判断された場合(ステップS3206:Yes)、設計支援装置100は、生成した要素をTP候補集合TP_obsに追加する(ステップS3207)。一方、共用段数Depthが所定段数Depth_limit以下でないと判断された場合(ステップS3206:No)、設計支援装置100は、生成した要素を接続先情報SPに追加する(ステップS3208)。
【0106】
ステップS3207またはステップS3208のつぎに、設計支援装置100は、TP候補集合TP_obsの中から、対応付けられたTP候補を示す要素を削除し(ステップS3209)、ステップS3101へ移行する。
【0107】
以上実施例1で説明したように、設計支援装置100は、EXOR回路より面積を削減可能な種類を含む複数種類の共用回路から、選択した観測対象の信号線の可制御性に基づく値と非制御値が同一の演算を行う共用回路を選択する。設計支援装置100は、選択した共用回路の各入力端子に、信号線の可制御性に基づく値が入力端子への信号に対する論理演算の非制御値と同一の信号線を対応付ける。これにより、信号線の値が観測可能な範囲で共用回路に要する面積の削減を図る。
【0108】
また、設計支援装置100は、選択した共用回路の入力端子のいずれかに信号線を対応付けられない場合、あらたに共用回路を選択する。これにより、共用回路のすべての入力端子に信号線を対応付けることができる。したがって、観測対象の信号線の数に応じて共用回路が選択され、共用回路に要する面積をより削減させることができる。
【0109】
また、設計支援装置100は、複数種類の共用回路から、選択した信号線の可制御性に基づく値と非制御値が同一の演算を行う共用回路を面積の削減効果が大きい順序orderに基づいて選択する。これにより、共用回路に要する面積をより削減させることができる。
【0110】
また、設計支援装置100は、対象回路logに選択した共用回路が対応情報101に従って接続された回路をあらたな対象回路logにし、接続された共用回路の出力端子からの信号線をあらたな観測対象にする。これにより、より多くの信号線が同一の観測点を共用することができ、共用回路に要する面積をより削減させることができる。
【0111】
また、設計支援装置100は、観測対象の信号線の値が観測点に伝搬されるまでにある共用回路を所定数以下とする。これにより、観測点を共用する信号線の数の増大を抑止し、観測点での信号線の値の観測のし易さが低下することを抑止することができる。
【0112】
また、設計支援装置100は、選択した信号線と選択した信号線以外の観測対象の信号線とのモジュール間を跨ぐ数が閾値以下である信号線の中から、選択した共用回路の入力端子に対応付ける信号線を決定する。これにより、レイアウトによって近くに配置される可能性が高い信号線同士に観測点を共用させることができる。したがって、レイアウトのし易さが共用回路の接続によって低下することを抑止することができる。
【0113】
(実施例2)
EXOR回路より面積を削減可能な種類を含む複数種類の共用回路から選択した共用回路の各入力端子に、可制御性に基づく値が入力端子への入力信号に対して行われる演算の非制御値と同じ信号線を対応付ける。これにより、対象回路logの面積の削減を図りつつ、信号線の値を観測可能にする。また、実施例2では、1つのTP候補を選択した後に、選択したTP候補の種類typeにも基づいて共用回路を選択する。一方、実施例1では、1つの共用回路を選択した後に、選択した共用回路が行う演算の非制御値に基づいてTP候補を選択する。
【0114】
共用回路選択部504は、順序orderに基づいて、複数種類の共用回路から共用回路を選択する。つぎに、TP候補選択部503は、種類typeが選択した共用回路が行う論理演算の非制御値と同一のTP候補を基準TP候補として選択する。また、共用回路選択部504とTP候補選択部503以外の部についての詳細は実施例1と同一であるため、詳細な説明を省略する。
【0115】
(実施例2にかかる設計支援装置100が行う処理手順例)
図33と
図34は、実施例2にかかる設計支援装置が行う設計支援処理手順例を示すフローチャートである。設計支援装置100は、対象回路logの回路情報を取得する(ステップS3301)。設計支援装置100は、共用回路情報sp_listを取得する(ステップS3302)。設計支援装置100は、TP候補情報TPdaを取得する(ステップS3303)。設計支援装置100は、TP候補情報TPdaに基づいて、TP候補集合TP_obsを生成する(ステップS3304)。
【0116】
設計支援装置100は、TP候補集合TP_obsの各要素の種類typeを決定して設定する(ステップS3305)。設計支援装置100は、TP候補集合TP_obsの各要素の共用段数Depthを検出して設定する(ステップS3306)。設計支援装置100は、接続先情報SP=φとする(ステップS3307)。設計支援装置100は、未選択の共用回路があるか否かを判断する(ステップS3308)。
【0117】
未選択の共用回路がないと判断された場合(ステップS3308:No)、設計支援装置100は、TP候補集合TP_obsの要素を接続先情報SPに追加する(ステップS3309)。そして、設計支援装置100は、対象回路log内の接続先情報SPの各要素が示すTP候補に観測点が接続された回路を示す回路情報を生成する(ステップS3310)。設計支援装置100は、生成結果を出力し(ステップS3311)、一連の処理を終了する。
【0118】
一方、未選択の共用回路があると判断された場合(ステップS3308:Yes)、設計支援装置100は、未選択の共用回路から、順序orderに基づいて、共用回路を選択する(ステップS3401)。設計支援装置100は、TP候補集合TP_obsのうち種類typeが、共用回路が行う論理演算の非制御値と同じ要素を基準要素tpとして選択する(ステップS3402)。
【0119】
設計支援装置100は、選択できたか否かを判断する(ステップS3403)。選択できた場合(ステップS3403:Yes)、設計支援装置100は、基準要素tp以外の要素が示す残余のTP候補の各々について、基準要素tpが示す基準TP候補と、残余のTP候補と、のモジュール間距離Distを検出して設定する(ステップS3404)。
【0120】
設計支援装置100は、選択共用回路spの入力端子のうち、入力信号に対して行われる論理演算の非制御値が基準TP候補の種類と同一の入力端子のいずれか一つの入力端子に、基準TP候補を対応付ける(ステップS3405)。設計支援装置100は、基準TP候補以外のTP候補のうち、モジュール間距離Distが閾値Dist_limit以下であるTP候補を特定する(ステップS3406)。設計支援装置100は、選択共用回路spの入力端子のうち、対応付けられていない入力端子の各々に、特定したTP候補のうち、TP候補の種類typeが入力端子の非制御値と同一のTP候補を対応付けることにより対応情報101を生成する(ステップS3407)。
【0121】
設計支援装置100は、選択共用回路spの入力端子のすべてにTP候補が対応付けられたか否かを判断する(ステップS3408)。少なくともいずれか一つの入力端子にTP候補が対応付けられていないと判断された場合(ステップS3408:No)、設計支援装置100は、TP候補集合の要素数が1より大きいか否かを判断する(ステップS3409)。TP候補集合Tp_obsの要素数が1より大きいと判断された場合(ステップS3409:Yes)、設計支援装置100は、ステップS3308へ戻る。TP候補集合Tp_obsの要素数が1以下であると判断された場合(ステップS3409:No)、設計支援装置100は、基準TP候補を示す要素tpを接続先情報SPに追加し(ステップS3410)、ステップS3308へ移行する。
【0122】
一方、ステップS3408において、選択共用回路spの入力端子のすべてにTP候補が対応付けられたと判断された場合(ステップS3408:Yes)、ステップS3201へ移行する。ステップS3201〜ステップS3209の処理については、
図32に示した処理と同一であるため、詳細な説明を省略する。実施例2では、ステップS3209のつぎに、ステップS3401へ戻る。
【0123】
ステップS3403において、選択できなかった場合(ステップS3403:No)、設計支援装置100は、選択した共用回路がEXOR回路であるか否かを判断する(ステップS3411)。選択した共用回路がEXOR回路であると判断された場合(ステップS3411:Yes)、設計支援装置100は、TP候補集合の各要素の種類をnoneに変更し(ステップS3412)、ステップS3402へ戻る。選択した共用回路がEXOR回路でないと判断された場合(ステップS3411:No)、設計支援装置100は、ステップS3308へ戻る。
【0124】
以上実施例2で説明したように、設計支援装置100は、EXORより面積を削減可能な種類を含む複数種類の共用回路から選択した共用回路の入力端子に、観測対象の信号線のうち、可制御性に基づく値が共用回路の演算の非制御値と同じ信号線を対応付ける。これにより、対象回路logの面積の削減を図りつつ、信号線の値を観測可能にする。
【0125】
また、設計支援装置100は、可制御性に基づく値が、選択した共用回路の演算の非制御値と同じ信号線を選択する。そして、設計支援装置100は、選択した信号線と残余の信号線とがモジュール間を跨ぐ数が所定数以下となる信号線の中から、選択した信号線以外で共用回路の入力端子に対応付ける信号線を決定する。
【0126】
(故障検出)
ここで、
図35に示す半導体集積回路の故障検出の一例を説明する。
【0127】
図35は、半導体集積回路例を示す説明図である。半導体集積回路3501は、被試験回路3502と、共用回路としてNOR回路3503とNAND回路3504を有する。また、半導体集積回路3501は、EXOR回路3505、SFF3506,3507,3508,3509を有する。
【0128】
被試験回路3502は、複数の組み合わせ回路3521,3522,3523,3524,3525を有する。なお、
図35において表記されている、信号線TA1,TA2,TA3,TA4,TA5,TA6の参照符号横の括弧内の数値は、その信号線の0可制御性と1可制御性を示している。括弧内の左側の数値が0可制御性の値であり、右側の数値が1可制御性の値である。
【0129】
図35の半導体集積回路3501の例では、信号線TA1〜TA4が被試験回路3502における観測対象の信号線である。NOR回路3503は、被試験回路3502の観測対象の信号線TA1,TA2を入力端子に接続し、信号線TA1,TA2を伝搬する値の否定論理和を演算し、信号線TA1,TA2のいずれかを伝搬する値に応じた出力値を出力する。
【0130】
NOR回路3503は、一方の入力端子に入力される値が0のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、例えば、信号線TA2の値が0のとき、NOR回路3503は、信号線TA1を伝搬する値に応じた出力値を出力することになる。また、信号線TA1の値が0のとき、NOR回路3503は、信号線TA2を伝搬する値に応じた出力値を出力することになる。
【0131】
NAND回路3504は、被試験回路3502の観測対象の信号線TA3,TA4を入力端子に接続し、信号線TA3,TA4を伝搬する値の否定論理積を演算し、信号線TA3,TA4のいずれかを伝搬する値に応じた出力値を出力する。NAND回路3504は、一方の入力端子に入力される値が1のとき、他方の入力端子に入力される値を反転した値を出力する。そのため、例えば、信号線TA4の値が1のとき、NAND回路3504は、信号線TA3を伝搬する値に応じた出力値を出力することになる。また、信号線TA3の値が1のとき、NAND回路3504は、信号線TA4を伝搬する値に応じた出力値を出力することになる。
【0132】
EXOR回路3505は、NOR回路3503とNAND回路3504の出力値を信号線TA5,TA6を介して入力して、いずれかの出力値に応じた値を出力する。例えば、試験時において、半導体集積回路3501に入力されるテストパターンによって、NAND回路3504の出力値が0に固定されている場合、EXOR回路3505からは、NOR回路3503の出力値が出力される。NAND回路3504の出力値が1に固定されている場合、EXOR回路3505からは、NOR回路3503の出力値を反転した値が出力される。
【0133】
SFF3506,3507,3508,3509は、データ端子D、スキャンイン端子SIN、スキャンモード端子SM、クロック端子CK、出力端子Qを有している。データ端子D以外の各端子の接続関係などは図示を省略しているが、SFF3506〜3509は、複数のSFFが直列に接続されたシフトレジスタとして機能するスキャンチェーンの一部となっている。そのため、SFF3506〜3509に取り込まれた(キャプチャされた)値は、外部から観測可能となっている。
【0134】
SFF3506〜3508は、それぞれ、組み合わせ回路3523〜3525の出力値を取り込み、SFF3509は、EXOR回路3505の出力値を取り込む。
【0135】
半導体集積回路3501の動作を以下に説明する。信号線TA1に発生する故障(0縮退故障など)を検出する場合、例えば、信号線TA2,TA6の値が0になるようなテストパターンが半導体集積回路3501に入力される。これにより、信号線TA1を伝搬する値に応じた出力値が、NOR回路3503、EXOR回路3505を介してSFF3509に取り込まれ、信号線TA1に発生する故障が検出可能になる。
【0136】
信号線TA2に発生する故障を検出する場合、例えば、信号線TA1,TA6の値が0になるようなテストパターンが半導体集積回路3501に入力される。これにより、信号線TA2を伝搬する値に応じた出力値が、NOR回路3503、EXOR回路3505を介してSFF3509に取り込まれ、信号線TA2に発生する故障が検出可能になる。
【0137】
信号線TA3に発生する故障を検出する場合、例えば、信号線TA4,TA5の値が1になるようなテストパターンが半導体集積回路3501に入力される。これにより、信号線TA3を伝搬する値に応じた出力値が、NAND回路3504、EXOR回路3505を介してSFF3509に取り込まれ、信号線TA3に発生する故障が検出可能になる。
【0138】
信号線TA4に発生する故障を検出する場合、例えば、信号線TA3,TA5の値が1になるようなテストパターンが半導体集積回路3501に入力される。これにより、信号線TA4を伝搬する値に応じた出力値が、NAND回路3504、EXOR回路3505を介してSFF3509に取り込まれ、信号線TA4に発生する故障が検出可能になる。
【0139】
以上のように、半導体集積回路3501は、複数の信号線の各信号値を、NOR回路3503、NAND回路3504を用いて検出するため、EXOR回路により複数の信号線の各信号値を検出するよりも、共用回路に要する面積を削減することができる。
【0140】
図36は、信号線TA1の0縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。ここでは、例えば、信号線TA1に発生する0縮退故障を観測する場合の半導体集積回路3501の動作について説明する。
図36では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EXOR回路3505の出力、SFF3509に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA1の0縮退故障が発生している際の信号値の例を示している。
【0141】
動作モードには、
図35に示したようなSFF3506〜3509を含む複数のSFFが直列に接続されたシフトレジスタをスキャンシフト動作させるモードと、通常の動作モード(
図36ではキャプチャと示している。)を有する。モード間の切り替えは、SFF3506〜3509のスキャンモード端子SMに入力される制御信号により行われる。
【0142】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EXOR回路3505の出力、SFF3509の値は、X(不定値)となっている。
図36では、スキャンシフト動作中の信号の詳細は図示を省略している。
【0143】
スキャンシフト動作の最後のサイクルn−1では、例えば、CPU401により信号線TA1が1と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0144】
このとき、信号線TA1の故障を検出するため、NOR回路3503が信号線TA1の状態に応じた値を伝搬するように、NOR回路3503のサイドインプットが非制御値の0に設定される。つまり、信号線TA2が0に設定される。
【0145】
また、NOR回路3503から出力される信号線TA1の状態に応じた値を、EXOR回路3505が伝搬するように、EXOR回路3505のサイドインプットが0または1に設定される。EXOR回路3505は、制御値がないため、サイドインプットが0でも1でも、ある入力端子に入力される信号に応じた値を出力できるからである。ただし、信号線TA6は、
図35に示したように0可制御性が1可制御性よりも大きいため、
図36の例では、0に設定されるものとしている。また、信号線TA6を0にするため、信号線TA3,TA4が、ともに1に設定されている。
【0146】
信号線TA1が正常な場合、信号線TA1を伝搬する値である1と信号線TA2を伝搬する値である0の否定論理和がNOR回路3503から出力され、信号線TA5の値は0である。そして、信号線TA5を伝搬する値である0と信号線TA6を伝搬する値である0の排他的論理和の演算結果である0がEXOR回路3505から出力され、キャプチャ動作時(サイクルn)でSFF3509に取り込まれる値も0のままである。
【0147】
これに対し、信号線TA1に0縮退故障が発生している場合、NOR回路3503の2つの入力値が両方0になるため、NOR回路3503の出力値が1となり、信号線TA5の値は1となる。そして、EXOR回路3505の2つの入力値が1と0になるため、EXOR回路3505からの出力値が1となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりでSFF3509には1が取り込まれる(タイミングt2)。その後、サイクルn+1以降のスキャンシフト動作により、SFF3509に取り込まれた値が、例えば、半導体集積回路3501の図示しない外部端子から出力され、信号線TA1の0縮退故障が検出される。
【0148】
つぎに、
図35の信号線TA3に発生する1縮退故障を観測する場合の半導体集積回路3501の動作の一例を、
図37を用いて説明する。
【0149】
図37は、信号線TA3の1縮退故障の観測時の半導体集積回路の各部の信号の一例を示すタイミングチャートである。
図37では、動作モード、サイクル、クロック信号、信号線TA1〜TA6の値、EXOR回路3505の出力、SFF3509に取り込まれる値の例が示されている。なお、点線で示されている信号値は、信号線TA3の1縮退故障が発生している際の信号値の例を示している。
【0150】
スキャンシフト動作の開始時は、各信号線TA1〜TA6,EXOR回路3505の出力、SFF3509の値は、Xとなっている。
図37でも、スキャンシフト動作中の信号の詳細は図示を省略している。
【0151】
スキャンシフト動作の最後のサイクルn−1では、例えば、CPU401により信号線TA3が0と設定されるようなテストパターンがスキャンイン(シフトレジスタに入力)される(タイミングt1)。
【0152】
このとき、信号線TA3の故障を検出するため、NAND回路3504が信号線TA3の状態に応じた値を伝搬するように、NAND回路3504のサイドインプットが非制御値の1に設定される。つまり、信号線TA4が1に設定される。
【0153】
また、NAND回路3504から出力される信号線TA3の状態に応じた値を、EXOR回路3505が伝搬するように、EXOR回路3505のサイドインプットが0または1に設定される。信号線TA5は、
図35に示したように1可制御性が0可制御性よりも大きいため、
図37の例では、1に設定されるものとしている。また、信号線TA5を1にするため、信号線TA1,TA2が、ともに0に設定されている。
【0154】
信号線TA3が正常な場合、信号線TA3を伝搬する値である0と信号線TA4を伝搬する値である1の否定論理積がNAND回路3504から出力され、信号線TA6の値は1である。そして、信号線TA5を伝搬する値である1と信号線TA6を伝搬する値である1の排他的論理和の演算結果である0がEXOR回路3505から出力され、キャプチャ動作時(サイクルn)でSFF3509に取り込まれる値が0となる(タイミングt2)。
【0155】
これに対し、信号線TA3に1縮退故障が発生している場合、NAND回路3504の2つの入力値が両方1になるため、出力値が0となり、信号線TA6の値は0となる。そして、EXOR回路3505の2つの入力値が1と0になるため、出力値が1となり、キャプチャ動作時(サイクルn)のクロック信号の立ち上がりであるタイミングt2では、SFF3509に1が取り込まれる。その後、サイクルn+1以降のスキャンシフト動作により、SFF3509に取り込まれた値が、例えば、半導体集積回路3501の図示しない外部端子から出力され、信号線TA3の1縮退故障が検出される。以上のような、故障検出によって、被試験回路3502における信号線TA1〜TA4の各種故障を検出することができる。
【0156】
なお、本実施の形態で説明した設計支援方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本設計支援プログラムは、ディスク405、USB(Universal Serial Bus)フラッシュメモリ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本設計支援プログラムは、インターネット等のネットワークNETを介して配布してもよい。
【0157】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0158】
(付記1)コンピュータが、
信号値を観測可能な観測点を複数の信号線に共用させる共用回路であって、複数種類の論理演算の少なくともいずれかを行う複数種類の共用回路を示す共用回路情報を取得し、
対象回路内の観測対象の信号線の各々について、前記信号線の値を特定の値とする制御のしやすさを示す可制御性に基づく値を決定し、
取得した前記共用回路情報に基づいて、前記複数種類の共用回路の中からいずれか一つの共用回路を選択し、
選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報を生成する、
処理を実行することを特徴とする設計支援方法。
【0159】
(付記2)前記コンピュータが、
前記対応情報を生成する処理において、選択した前記共用回路の入力端子の少なくともいずれか一つの入力端子に、前記観測対象の信号線の中のいずれの信号線も対応付けられない場合、取得した前記共用回路情報に基づいて、前記複数種類の共用回路のうち、以前に選択した前記共用回路以外の共用回路の中からいずれか一つの共用回路をあらたに選択し、
あらたに選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報を生成する、
処理を実行することを特徴とする付記1に記載の設計支援方法。
【0160】
(付記3)前記共用回路情報は、前記複数種類の共用回路の各々についての前記共用回路の面積と前記共用回路の入力端子数とに基づく前記複数種類の共用回路における各共用回路の順序を示し、
前記共用回路を選択する処理では、
取得した前記共用回路情報が示す前記順序に基づいて、前記複数種類の共用回路の中からいずれか一つの共用回路を選択することを特徴とする付記1または2に記載の設計支援方法。
【0161】
(付記4)前記コンピュータが、
生成した前記対応情報による対応付けに従って選択した前記共用回路が前記対象回路に接続された回路をあらたな対象回路に決定し、
決定した前記あらたな対象回路内の選択した前記共用回路の出力端子からの信号線と、前記観測対象の信号線のうち生成した前記対応情報によって対応付けられた信号線以外の信号線と、をあらたな観測対象の信号線に決定し、
前記あらたな観測対象の信号線の各々について、前記可制御性に基づく値を決定し、
取得した前記共用回路情報に基づいて、前記複数種類の共用回路の中からいずれか一つの第2共用回路を選択し、
選択した前記第2共用回路の入力端子の各々について、前記あらたな観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた第2対応情報を生成する、
処理を実行することを特徴とする付記1〜3のいずれか一つに記載の設計支援方法。
【0162】
(付記5)前記コンピュータが、
前記あらたな対象回路内の追加された前記共用回路の出力端子からの信号線が、前記あらたな対象回路内において所定段数以上の共用回路を介して伝搬される信号を伝搬するか否かを判断し、
前記所定段数以上の共用回路を介して伝搬される信号を伝搬する場合、前記あらたな対象回路内の選択した前記共用回路の出力端子からの信号線に、信号値を観測可能な観測点を接続させることを示す情報を生成する、
処理を実行し、
前記あらたな観測対象の信号線を決定する処理では、
前記所定段数以上の共用回路を介して伝搬される信号を伝搬する場合、前記あらたな観測対象の信号線に、追加された前記共用回路の出力端子からの信号線を含めないことを特徴とする付記4に記載の設計支援方法。
【0163】
(付記6)前記コンピュータが、
前記観測対象の信号線のうちのいずれか一つの信号線を選択する処理を実行し、
前記共用回路を選択する処理では、
取得した前記共用回路情報に基づいて、選択した前記信号線について決定した前記値と非制御値が同一である論理演算を行う共用回路を前記複数種類の共用回路の中から選択し、
前記対応情報を生成する処理では、
選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報であって、選択した前記共用回路の入力端子のうちのいずれか一つの入力端子に選択した前記信号線を対応付けた対応情報を生成することを特徴とする付記1〜5のいずれか一つに記載の設計支援方法。
【0164】
(付記7)前記コンピュータが、
前記観測対象の信号線のうち、前記信号線について決定した前記値が選択した前記共用回路が行う論理演算の非制御値と同一の信号線の中から、いずれか一つの信号線を選択する処理を実行し、
前記対応情報を生成する処理では、
選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報であって、選択した前記共用回路の入力端子のうちのいずれか一つの入力端子に選択した前記信号線を対応付けた対応情報を生成することを特徴とする付記1〜5のいずれか一つに記載の設計支援方法。
【0165】
(付記8)前記対応情報を生成する処理では、
選択した前記共用回路の入力端子の中で、入力信号に対して行われる論理演算の非制御値が、選択した前記信号線について決定した前記値と同一である入力端子のうちのいずれか一つの入力端子に選択した前記信号線を対応付け、
選択した前記共用回路の入力端子のうちの前記いずれか一つの入力端子以外の入力端子の各々に対して、前記観測対象の信号線のうちの選択した前記信号線以外の信号線の中で、前記信号線について決定した前記値が、前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線のうちのいずれか一つの信号線を対応付ける、
ことにより前記対応情報を生成することを特徴とする付記6または7に記載の設計支援方法。
【0166】
(付記9)前記コンピュータが、
前記対象回路内のセルと前記セル間の接続関係を示す回路情報を取得し、
前記観測対象の信号線のうちの選択した前記信号線以外の信号線の各々について、前記信号線を含む前記対象回路内のモジュールと、選択した前記信号線を含む前記対象回路内のモジュールと、の間に介在する前記対象回路内のモジュールの数を、取得した前記回路情報に基づいて検出する、
処理を実行し、
前記対応情報を生成する処理では、
前記いずれか一つの入力端子以外の入力端子の各々に対して、選択した前記信号線以外の信号線の中で、検出した前記モジュールの数が閾値以下である信号線のうちのいずれか一つの信号線を対応付けることにより前記対応情報を生成することを特徴とする付記6〜8のいずれか一つに記載の設計支援方法。
【0167】
(付記10)コンピュータに、
信号値を観測可能な観測点を複数の信号線に共用させる共用回路であって、複数種類の論理演算の少なくともいずれかを行う複数種類の共用回路を示す共用回路情報を取得し、
対象回路内の観測対象の信号線の各々について、前記信号線の値を特定の値とする制御のしやすさを示す可制御性に基づく値を決定し、
取得した前記共用回路情報に基づいて、前記複数種類の共用回路の中からいずれか一つの共用回路を選択し、
選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報を生成する、
処理を実行させることを特徴とする設計支援プログラム。
【0168】
(付記11)信号値を観測可能な観測点を複数の信号線に共用させる共用回路であって、複数種類の論理演算の少なくともいずれかを行う複数種類の共用回路を示す共用回路情報を取得する取得部と、
対象回路内の観測対象の信号線の各々について、前記信号線の値を特定の値とする制御のしやすさを示す可制御性に基づく値を決定する種類決定部と、
前記取得部が取得した前記共用回路情報に基づいて、前記複数種類の共用回路の中からいずれか一つの共用回路を選択する共用回路選択部と、
前記共用回路選択部が選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について前記種類決定部が決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報を生成する対応情報生成部と、
を有することを特徴とする設計支援装置。
【0169】
(付記12)信号値を観測可能な観測点を複数の信号線に共用させる共用回路であって、複数種類の論理演算の少なくともいずれかを行う複数種類の共用回路を示す共用回路情報を取得し、
対象回路内の観測対象の信号線の各々について、前記信号線の値を特定の値とする制御のしやすさを示す可制御性に基づく値を決定し、
取得した前記共用回路情報に基づいて、前記複数種類の共用回路の中からいずれか一つの共用回路を選択し、
選択した前記共用回路の入力端子の各々について、前記観測対象の信号線のうち、前記信号線について決定した前記値が前記入力端子への入力信号に対して行われる論理演算の非制御値と同一である信号線を対応付けた対応情報を生成する、
処理をコンピュータに実行させる設計支援プログラムを記録したことを特徴とする記録媒体。