JP5181638B2 - 半導体集積回路設計方法 - Google Patents

半導体集積回路設計方法 Download PDF

Info

Publication number
JP5181638B2
JP5181638B2 JP2007307657A JP2007307657A JP5181638B2 JP 5181638 B2 JP5181638 B2 JP 5181638B2 JP 2007307657 A JP2007307657 A JP 2007307657A JP 2007307657 A JP2007307657 A JP 2007307657A JP 5181638 B2 JP5181638 B2 JP 5181638B2
Authority
JP
Japan
Prior art keywords
macro
macros
scan
semiconductor integrated
integrated circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007307657A
Other languages
English (en)
Other versions
JP2009135134A (ja
Inventor
賢司 鈴木
勉 中森
正人 井上
崇文 宮原
紘宜 武野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2007307657A priority Critical patent/JP5181638B2/ja
Publication of JP2009135134A publication Critical patent/JP2009135134A/ja
Application granted granted Critical
Publication of JP5181638B2 publication Critical patent/JP5181638B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Tests Of Electronic Circuits (AREA)

Description

本発明は、半導体集積回路設計方法に関する。
近年、各分野から半導体集積回路(LSI)の低消費電力化が求められており、クロックゲーティングや、スリープモード信号、ディセーブル信号等を多用し、通常動作時において、同時に動作する回路を極力減らして低消費電力化を目指そうとすることが多くなってきている。
このようなLSIでは、逆にテスト時の方が同時に動作する回路が多くなり、テスト時の消費電力が通常動作時の消費電力を上回ってしまうことがある。
その結果、LSIのテスト時には通常動作時より大きなIRドロップが発生し、回路動作が不安定になったり、動作不良を起こしてしまう。IRドロップは、回路に電流が流れることによる電源電圧降下である。通常動作では良品として扱われるものでも、テスト動作では不良品として扱われてしまうことがある。
LSIのテスト回路としてスキャンチェーンを生成するが、クロックツリーに基づいて接続したり、配置位置に基づいて単純に物理的距離が近いマクロ同士を接続したり、タイミングエラーが起きにくいようにする事を優先して接続しており、IRドロップを考慮して行うことはほとんど無かった。
このため、テスト時のIRドロップの影響については、後からチェックするしかなく、テストでNGとなった場合には、LSI設計のやり直しを発生させてしまう。
また、下記の特許文献1には、スキャンテスト時のIRドロップによる誤動作を防止する手法が提案されている。特許文献1には、半導体集積回路をテストするためスキャンフリップフロップ群を直列に接続して構成したスキャンテスト回路情報が挿入された論理接続情報を入力として、上記スキャンテスト回路情報を含むマスクレイアウトパターンを出力する自動配置配線部と、上記マスクレイアウトパターンに基づいて、電源電圧を供給する配線の物理的形状、電源供給源からの距離、電源系統を解析し、電源RCネットワーク解析結果として出力する電源RCネットワーク解析部と、上記電源RCネットワーク解析結果に基づいて、スキャンフリップフロップをグルーピングし、スキャン回路グループ情報として出力するスキャン回路グルーピング部と、上記マスクレイアウトパターンと、上記スキャン回路グループ情報と、各スキャンフリップフロップの動作回数を示した動作率情報に基づいて、上記配線上に生じる電圧降下を解析し、IRドロップによる各スキャンフリップフロップの誤動作が発生するか否かを判定するIRドロップ解析部と、上記スキャン回路グループ情報に基づいて、上記論理接続情報のスキャンテスト回路を変更するスキャンチェーン挿入部と、上記IRドロップ解析部により、各スキャンフリップフロップの誤動作が発生しないと判定されるまで、上記自動配置配線部、上記電源RCネットワーク解析部、上記スキャン回路グルーピング部、上記IRドロップ解析部、および上記スキャンチェーン挿入部の一連の機能を自動的に繰り返し実行するスキャンチェーン生成用リピート部を備え、上記スキャン回路グルーピング部は、上記IRドロップ解析部による解析結果が出力されている場合には、上記IRドロップ解析部による解析結果と上記電源RCネットワーク解析結果に基づいて、同時にスキャンテスト動作させても誤動作を生じないスキャンフリップフロップ同士をグルーピングする半導体集積回路テスト設計支援装置が記載されている。
また、下記の特許文献2には、スキャンフリップフロップ回路を含む内部回路ブロックと、外部から入力されたスキャンモード信号を前記スキャンフリップフロップ回路に出力する第1の入力バッファ回路と、外部から入力されたスキャンイン信号を前記スキャンフリップフロップ回路に出力する第2の入力バッファ回路と、外部から入力されたスキャンクロック信号を前記スキャンフリップフロップ回路に出力する第3の入力バッファ回路と、論理積ゲートを有し前記論理積ゲートに入力された前記内部回路ブロックの出力と前記第1の入力バッファ回路の出力との論理積の信号を外部に送出する1つ以上の出力バッファ回路とを備え、前記入力バッファ回路及び前記出力バッファ回路の電源線及びグランド線には電源端子及びグランド端子を前記入力バッファ回路及び前記出力バッファ回路の近傍に接続することを特徴とする半導体集積回路が記載されている。
特開2006−66825号公報 特許第2959009号公報
しかし、特許文献1は、実際にIRドロップによるスキャンテスト回路の誤動作判定を行いながらスキャンチェーン/スキャン回路を生成していく方法であり、フローが複雑になり工数が増え、また、イタレーション(スキャンチェーン/スキャン回路生成のやり直し)が多く発生することがあり、効率が悪い。これでは、結局は初期のスキャンチェーンの出来具合により、設計TATが大きく左右されてしまう。
本発明の目的は、設計のやり直しがなく、テスト時のIRドロップが小さくなるように複数のマクロを複数のスキャンチェーンで接続することができる半導体集積回路設計方法を提供することである。
本発明の半導体集積回路設計方法は、半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、前記割り当てステップは、前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする。
本発明の半導体集積回路設計方法は、半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、前記割り当てステップは、前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする。
本発明の半導体集積回路設計方法は、半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、前記割り当てステップは、前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする。
テスト時のIRドロップが小さくなるように複数のマクロを複数のスキャンチェーンで接続することができる。また、テスト後にスキャンチェーン接続設計をやり直すことがないので、効率的な設計を行うことができる。
(第1の実施形態)
図8は、本発明の第1の実施形態による半導体集積回路設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。このコンピュータは、CAD(computer-aided design)により、レジスタ転送レベル(RTL)設計データ及びネットリスト設計データ(以下、ネットリストという)の生成及びスキャンテスト回路の生成等を行うができる。
バス801には、中央処理装置(CPU)802、ROM803、RAM804、ネットワークインタフェース805、入力装置806、出力装置807及び外部記憶装置808が接続されている。
CPU802は、データの処理及び演算を行うと共に、バス801を介して接続された上記の構成ユニットを制御するものである。ROM803には、予めブートプログラムが記憶されており、このブートプログラムをCPU802が実行することにより、コンピュータが起動する。外部記憶装置808にコンピュータプログラムが記憶されており、そのコンピュータプログラムがRAM804にコピーされ、CPU802により実行される。このコンピュータは、コンピュータプログラムを実行することにより、後述する図1、図3及び図6の処理等を行うことができる。
外部記憶装置808は、例えばハードディスク記憶装置等であり、電源を切っても記憶内容が消えない。外部記憶装置808は、コンピュータプログラム、RTL設計データ及びネットリスト等を記録媒体に記録したり、記録媒体からコンピュータプログラム等を読み出すことができる。
ネットワークインタフェース805は、ネットワークに対してコンピュータプログラム及びRTL設計データ等を入出力することができる。入力装置806は、例えばキーボード及びポインティングデバイス(マウス)等であり、各種指定又は入力等を行うことができる。出力装置807は、ディスプレイ及びプリンタ等であり、表示又は印刷することができる。
図9は、一般的な半導体集積回路CPの構成例を示すブロック図である。半導体集積回路CPは、複数のマクロM1〜M6及び電源パッドPDを有する。電源パッドPDには、外部から電源電圧が供給される。マクロM1〜M6は、フリップフロップ又はRAM等のユニット回路である。半導体集積回路CP内では、2本に分岐された第1の電源線VL1及び第2の電源線VL2が電源パッドPDに接続される。例えば、3個のマクロM1〜M3は、第1の電源線VL1に接続され、第1の電源線VL1から電源電圧の供給を受ける。また、他の3個のマクロM4〜M6は、第2の電源線VL2に接続され、第2の電源線VL2から電源電圧の供給を受ける。
半導体集積回路CPは、製品出荷前に、スキャンテストを行う。スキャンテストは、例えば、3個のマクロM1〜M3を第1のスキャンチェーンSC1でシリアルに接続し、外部からスキャンデータを入力し、3個のマクロM1〜M3を通過して出力されたデータを調べることにより、3個のマクロM1〜M3が正常にスキャンデータを伝達できるか否かを調べるテストである。同様に、3個のマクロM4〜M6を第2のスキャンチェーンSC2でシリアルに接続し、スキャンテストを行う。スキャンテストを行うためのスキャン回路として、マクロM1〜M6は、通常のデータ入出力端子とは別に、スキャンデータを入出力するためのスキャンイン端子及びスキャンアウト端子を有し、スキャンチェーンSC1,SC2が接続される。スキャンチェーンSC1はマクロM1〜M3のスキャンイン端子及びスキャンアウト端子に接続され、スキャンチェーンSC2はマクロM4〜M6のスキャンイン端子及びスキャンアウト端子に接続される。
第1のスキャンチェーンSC1のスキャンテストを行うと、3個のマクロM1〜M3が同時に動作する。この3個のマクロM1〜M3は、同じ第1の電源線VL1に接続されているため、スキャンテスト時には通常動作時より大きなIRドロップが第1の電源線VL1に発生し、マクロM1〜M3に供給される電源電圧が低下してしまう。これにより、マクロM1〜M3の回路動作が不安定になったり、動作不良を起こしてしまうことがある。
同様に、第2のスキャンチェーンSC2のスキャンテストを行うと、3個のマクロM4〜M6が同時に動作する。この3個のマクロM4〜M6は、同じ第2の電源線VL2に接続されているため、スキャンテスト時には通常動作時より大きなIRドロップが第2の電源線VL2に発生し、マクロM4〜M6に供給される電源電圧が低下してしまう。これにより、マクロM4〜M6の回路動作が不安定になったり、動作不良を起こしてしまうことがある。
図10は、本実施形態による半導体集積回路CPの構成例を示すブロック図である。以下、図10の回路が図9の回路と異なる点を説明する。マクロM1〜M3は第1の電源線VL1に接続され、マクロM4〜M6は第2の電源線VL2に接続される。
3個のマクロM1,M4及びM5は、第1のスキャンチェーンSC1によりシリアルに接続される。マクロM1は第1の電源線VL1に接続され、マクロM4及びM5は第2の電源線VL2に接続される。したがって、第1のスキャンチェーンSC1のスキャンテスト時には、マクロM1,M4及びM5が同時に動作するが、その動作によるIRドロップは第1の電源線VL1及び第2の電源線VL2に分散される。そのため、第1の電源線VL1及び第2の電源線VL2のそれぞれのIRドロップは小さくなり、マクロM1,M4及びM5の回路動作が安定し、動作不良を防止することができる。
同様に、3個のマクロM2,M3及びM6は、第2のスキャンチェーンSC2によりシリアルに接続される。マクロM2及びM3は第1の電源線VL1に接続され、マクロM6は第2の電源線VL2に接続される。したがって、第2のスキャンチェーンSC2のスキャンテスト時には、マクロM2,M3及びM6が同時に動作するが、その動作によるIRドロップは第1の電源線VL1及び第2の電源線VL2に分散される。そのため、第1の電源線VL1及び第2の電源線VL2のそれぞれのIRドロップは小さくなり、マクロM2,M3及びM6の回路動作が安定し、動作不良を防止することができる。
以上のように、スキャンテスト時のIRドロップを小さくするためには、消費電力が大きいマクロについて、第1の電源線VL1を共有しているマクロM1〜M3同士又は第2の電源線VL2を共有しているマクロM4〜M6同士をなるべく同じスキャンチェーンで接続せずに、異なるスキャンチェーンで接続することが好ましい。これにより、電源線VL1又はVL2のいずれかにIRドロップを集中させることを防止し、電源線VL1及びVL2のIRドロップを小さくし、マクロM1〜M6の回路動作を安定させることができる。
図1は本実施形態による半導体集積回路設計装置の設計方法を示すフローチャートであり、図2は本実施形態による半導体集積回路CPの構成例を示す図である。半導体集積回路CPは、例えば6個のスキャンテスト対象マクロM1〜M6を有する。半導体集積回路設計装置は、ネットリストを基に以下のスキャン回路の設計を行い、そのスキャン回路を組み込んだネットリストを生成する。
まず、ステップS101では、CPU802は、任意の基点となるマクロを選択し、第1のスキャンチェーンSC1のマクロとする。例えば、マクロM1を基点として選択し、マクロM1を第1のスキャンチェーンSC1のマクロとする。
次に、ステップS102では、CPU802は、先の基点のマクロに最も近いマクロから順に第2のスキャンチェーンSC2、第3のスキャンチェーンSC3、・・・、第NのスキャンチェーンSCN(Nはスキャンチェーン数)と割り当てていく。例えば、基点のマクロM1に最も近いマクロはマクロM2であるので、マクロM2を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS103では、CPU802は、次に近いマクロから順に第1のスキャンチェーンSC1、第2のスキャンチェーンSC2、第3のスキャンチェーンSC3、・・・、第NのスキャンチェーンSCNと割り当てる。例えば、基点のマクロM1から次に近いマクロはマクロM4であるので、マクロM4を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、基点のマクロM1から次に近いマクロはマクロM5であるので、マクロM5を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS104では、CPU802は、すべてのマクロを割り当てたか否かをチェックする。割り当てていなければ、ステップS103に戻る。例えば、未だ割り当てられていないマクロとしてマクロM3及びM6が存在するので、ステップS103に戻る。
ステップS103では、例えば、基点のマクロM1から次に近いマクロはマクロM3であるので、マクロM3を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、基点のマクロM1から次に近いマクロはマクロM6であるので、マクロM6を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS104において、すべてのマクロが割り当てられていれば、ステップS105に進む。例えば、すべてのマクロM1〜M6が割り当てられたので、ステップS105に進む。
ステップS105では、CPU802は、割り当てられたマクロを各スキャンチェーンで接続する。例えば、上記のように、マクロM1,M4,M3は第1のスキャンチェーンSC1のグループとして割り当てられ、マクロM2,M5,M6は第2のスキャンチェーンSC2のグループとして割り当てられる。したがって、マクロM1,M4,M3を第1のスキャンチェーンSC1でシリアルに接続し、マクロM2,M5,M6を第2のスキャンチェーンSC2でシリアルに接続する。CPU802は、マクロをスキャンチェーンで接続した半導体集積回路のネットリスト設計データを生成する。
マクロをスキャンチェーンで接続する順番は、上記の割り当て順で接続してもよいし、それ以外の順で接続してもよい。上記の割り当てられたスキャンチェーンの同じグループ内であれば、どのような順で接続してもよい。例えば、同じグループ内で近い順にマクロを接続することができる。
なお、基点のマクロM1から近いマクロから順に割り当てる例を説明したが、基点のマクロM1から遠いマクロから順に割り当てるようにしてもよい。
以上のように、本実施形態は、各マクロ間の物理的な距離を基に、各スキャンチェーンに接続するマクロを割り当てる。マクロの物理的な距離が遠いもの同士は一般的に電源線を共有している確率が低いので、本実施形態によるスキャンチェーン接続を行えば、異なる電源線に接続されるマクロを各スキャンチェーンで接続することができる。これにより、スキャンテスト時には、各電源線のIRドロップが小さくなり、マクロの動作を安定させることができる。
本実施形態の半導体集積回路設計方法は、半導体集積回路CP内の複数のマクロM1〜M6を複数のスキャンチェーンSC1,SC2で接続するための半導体集積回路設計方法であって、前記複数のマクロM1〜M6間の距離に応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2の中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップS101〜S104と、前記複数のマクロM1〜M6を前記割り当てられたスキャンチェーンSC1,SC2で接続した半導体集積回路CPの設計データを生成する生成ステップS105とを有する。
前記割り当てステップS101〜S104は、前記複数のマクロM1〜M6間の距離に応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2に順番に繰り返し割り当てる。
また、前記割り当てステップは、前記複数のマクロM1〜M6の中の1個のマクロを基点マクロM1として第1のスキャンチェーンSC1に割り当てる第1の割り当てステップS101と、前記基点マクロM1に最も近い又は遠いマクロから順に前記第1のスキャンチェーンSC1以外の他のスキャンチェーンSC2に割り当てる第2の割り当てステップS102と、未割り当てのマクロの中で前記基点マクロM1に最も近い又は遠いマクロから順番に繰り返して前記複数のスキャンチェーンSC1,SC2に割り当てる第3の割り当てステップS103,S104とを有する。
(第2の実施形態)
図3は本発明の第2の実施形態による半導体集積回路設計装置の設計方法を示すフローチャートであり、図5は本実施形態による半導体集積回路CPの構成例を示す図である。半導体集積回路CPは、例えば6個のスキャンテスト対象マクロM1〜M6を有する。半導体集積回路設計装置は、ネットリストを基に以下のスキャン回路の設計を行い、そのスキャン回路を組み込んだネットリストを生成する。以下、本実施形態が第1の実施形態と異なる点を説明する。
図4は、6個のマクロM1〜M6のIRドロップを演算し、6個のマクロM1〜M6をIRドロップの大きい順に並べた図である。半導体集積回路設計装置は、通常動作モードにおける半導体集積回路CPの抵抗網の等価回路を生成し、その抵抗網を基に各マクロM1〜M6のIRドロップを演算する。例えば、マクロM1はIRドロップが最大であり、マクロM3はIRドロップが最小である。マクロM1,M4,M2,M5,M6,M3は、大きいIRドロップから小さいIRドロップに向けて順に並ぶ。なお、上記の通常動作モードは、半導体集積回路の待機モードではなく、最大電力を消費するモードであることが好ましい。
まず、ステップS301では、CPU802は、最もIRドロップ(IRD)の大きいマクロを選択し、第1のスキャンチェーンSC1のマクロとする。例えば、最もIRドロップが大きいマクロはマクロM1であるので、マクロM1を第1のスキャンチェーンSC1のマクロとする。
次に、ステップS302では、CPU802は、次にIRドロップの大きいマクロから順に第2のスキャンチェーンSC2、第3のスキャンチェーンSC3、・・・、第NのスキャンチェーンSCN(Nはスキャンチェーン数)と割り当てていく。例えば、上記のマクロM1の次にIRドロップが大きいマクロはマクロM4であるので、マクロM4を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS303では、CPU802は、次にIRドロップの大きいマクロから順に第1のスキャンチェーンSC1、第2のスキャンチェーンSC2、第3のスキャンチェーンSC3、・・・、第NのスキャンチェーンSCNと割り当てる。例えば、上記のマクロM4の次にIRドロップが大きいマクロはマクロM2であるので、マクロM2を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、上記のマクロM2の次にIRドロップが大きいマクロはマクロM5であるので、マクロM5を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS304では、CPU802は、すべてのマクロを割り当てたか否かをチェックする。割り当てていなければ、ステップS303に戻る。例えば、未だ割り当てられていないマクロとしてマクロM3及びM6が存在するので、ステップS303に戻る。
ステップS303では、例えば、上記のマクロM5の次にIRドロップが大きいマクロはマクロM6であるので、マクロM6を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、上記のマクロM6の次にIRドロップが大きいマクロはマクロM3であるので、マクロM3を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS304において、すべてのマクロが割り当てられていれば、ステップS305に進む。例えば、すべてのマクロM1〜M6が割り当てられたので、ステップS305に進む。
ステップS305では、CPU802は、割り当てられたマクロを各スキャンチェーンで接続する。例えば、上記のように、マクロM1,M2,M6は第1のスキャンチェーンSC1のグループとして割り当てられ、マクロM4,M5,M3は第2のスキャンチェーンSC2のグループとして割り当てられる。したがって、マクロM1,M2,M6を第1のスキャンチェーンSC1でシリアルに接続し、マクロM4,M5,M3を第2のスキャンチェーンSC2でシリアルに接続する。CPU802は、マクロをスキャンチェーンで接続した半導体集積回路のネットリスト設計データを生成する。
マクロをスキャンチェーンで接続する順番は、上記の割り当て順で接続してもよいし、それ以外の順で接続してもよい。上記の割り当てられたスキャンチェーンの同じグループ内であれば、どのような順で接続してもよい。例えば、同じグループ内で近い順にマクロを接続することができる。
なお、IRドロップの大きいマクロから順に割り当てる例を説明したが、IRドロップの小さいマクロから順に割り当てるようにしてもよい。
以上のように、本実施形態は、通常動作モードでの各マクロのIRドロップを基に、各スキャンチェーンに接続するマクロを割り当てる。これにより、IRドロップの大きい複数のマクロが同一のスキャンチェーンに割り当てられることを防止し、各スキャンチェーンにおいてIRドロップの偏りを減らし、IRドロップが均一になるようにすることができる。これにより、スキャンテスト時には、各電源線のIRドロップが小さくなり、マクロの動作を安定させることができる。
本実施形態の半導体集積回路設計方法は、半導体集積回路CP内の複数のマクロM1〜M6を複数のスキャンチェーンSC1,SC2で接続するための半導体集積回路設計方法であって、前記複数のマクロM1〜M6のIRドロップに応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2の中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップS301〜S304と、前記複数のマクロM1〜M6を前記割り当てられたスキャンチェーンSC1,SC2で接続した半導体集積回路CPの設計データを生成する生成ステップS305とを有する。
前記割り当てステップS301〜S304は、前記複数のマクロM1〜M6のIRドロップに応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2に順番に繰り返し割り当てる。
また、前記割り当てステップは、前記複数のマクロM1〜M6の中で前記IDドロップが最も大きい又は小さいマクロから順番に前記複数のスキャンチェーンSC1,SC2に割り当てる第1の割り当てステップS301,S302と、未割り当てのマクロの中で前記IDドロップが最も大きい又は小さいマクロから順番に繰り返して前記複数のスキャンチェーンSC1,SC2に割り当てる第2の割り当てステップS303,S304とを有する。
(第3の実施形態)
図6は本発明の第3の実施形態による半導体集積回路設計装置の設計方法を示すフローチャートであり、図7は本実施形態による半導体集積回路CPの構成例を示す図である。半導体集積回路CPは、例えば6個のスキャンテスト対象マクロM1〜M6を有する。半導体集積回路設計装置は、ネットリストを基に以下のスキャン回路の設計を行い、そのスキャン回路を組み込んだネットリストを生成する。以下、本実施形態が第1の実施形態と異なる点を説明する。
半導体集積回路設計装置は、各マクロM1〜M6間の電源配線抵抗R2〜R6を演算する。抵抗R2は、マクロM1の電源線及びマクロM2の電源線間の抵抗である。抵抗R3は、マクロM1の電源線及びマクロM3の電源線間の抵抗である。抵抗R4は、マクロM1の電源線及びマクロM4の電源線間の抵抗である。抵抗R5は、マクロM1の電源線及びマクロM5の電源線間の抵抗である。抵抗R6は、マクロM1の電源線及びマクロM6の電源線間の抵抗である。
例えば、半導体集積回路CPは、第1の電源パッドPD1及び第2の電源パッドPD2を有する。マクロM1の電源線は第1の電源パッドPD1に接続され、マクロM6の電源線は第2の電源パッドPD2に接続される。この場合、マクロM1及びマクロM6は異なる電源パッドの電源線に接続されるので、マクロM1及びM6間の抵抗R6は非常に高い値となる。また、マクロM1及びM2が同じ電源線に接続される場合には、マクロM1及びM2間の抵抗R2は非常に低い値となる。
まず、ステップS601では、CPU802は、任意のマクロを選択し、第1のスキャンチェーンSC1のマクロとする。例えば、マクロM1を第1のスキャンチェーンSC1のマクロとする。
次に、ステップS602では、CPU802は、先のマクロから最も抵抗値の低いマクロから順に第2のスキャンチェーンSC2、第3のスキャンチェーンSC3、・・・、第NのスキャンチェーンSCN(Nはスキャンチェーン数)と割り当てていく。例えば、先のマクロM1から最も抵抗値の低いマクロはマクロM2であるので(抵抗R2〜R6の中で最も低い抵抗は抵抗R2であるので)、マクロM2を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS603では、CPU802は、各スキャンチェーンの最後に割り当てられたマクロから最も抵抗値が高く、かつ未割り当てのマクロをそのスキャンチェーンに割り当てる。例えば、第1のスキャンチェーンSC1の最後に割り当てられたマクロはマクロM1であり、そのマクロM1から最も抵抗値が高くかつ未割り当てのマクロはマクロM6であるので、マクロM6を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、第2のスキャンチェーンSC2の最後に割り当てられたマクロはマクロM2であり、そのマクロM2から最も抵抗値が高くかつ未割り当てのマクロはマクロM4であるので、マクロM4を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS604では、CPU802は、すべてのマクロを割り当てたか否かをチェックする。割り当てていなければ、ステップS603に戻る。例えば、未だ割り当てられていないマクロとしてマクロM3及びM5が存在するので、ステップS603に戻る。
ステップS603では、例えば、第1のスキャンチェーンSC1の最後に割り当てられたマクロはマクロM6であり、そのマクロM6から最も抵抗値が高くかつ未割り当てのマクロはマクロM3であるので、マクロM3を第1のスキャンチェーンSC1のマクロとして割り当てる。続いて、第2のスキャンチェーンSC2の最後に割り当てられたマクロはマクロM4であり、そのマクロM4から最も抵抗値が高くかつ未割り当てのマクロはマクロM5であるので、マクロM5を第2のスキャンチェーンSC2のマクロとして割り当てる。スキャンチェーン数が2である場合には、これでこのステップを終了する。
次に、ステップS604において、すべてのマクロが割り当てられていれば、ステップS605に進む。例えば、すべてのマクロM1〜M6が割り当てられたので、ステップS605に進む。
ステップS605では、CPU802は、割り当てられたマクロを各スキャンチェーンで接続する。例えば、上記のように、マクロM1,M6,M3は第1のスキャンチェーンSC1のグループとして割り当てられ、マクロM2,M4,M5は第2のスキャンチェーンSC2のグループとして割り当てられる。したがって、マクロM1,M6,M3を第1のスキャンチェーンSC1でシリアルに接続し、マクロM2,M4,M5を第2のスキャンチェーンSC2でシリアルに接続する。CPU802は、マクロをスキャンチェーンで接続した半導体集積回路のネットリスト設計データを生成する。
マクロをスキャンチェーンで接続する順番は、上記の割り当て順で接続してもよいし、それ以外の順で接続してもよい。上記の割り当てられたスキャンチェーンの同じグループ内であれば、どのような順で接続してもよい。例えば、同じグループ内で近い順にマクロを接続することができる。
以上のように、本実施形態は、各マクロ間の電源配線抵抗値を求め、それを基に各スキャンチェーンに接続するマクロを割り当てる。電源配線抵抗値が高いマクロ間ほどIRドロップの相関が低くなる確率が高いので(その2個のマクロが異なる電源線に接続されている可能性が高いので)、本実施形態によるスキャンチェーン接続を行えば、異なる電源線に接続されるマクロを各スキャンチェーンで接続することができる。これにより、スキャンテスト時には、各電源線のIRドロップが小さくなり、マクロの動作を安定させることができる。
本実施形態の半導体集積回路設計方法は、半導体集積回路CP内の複数のマクロM1〜M6を複数のスキャンチェーンSC1,SC2で接続するための半導体集積回路設計方法であって、前記複数のマクロM1〜M6の電源線間の抵抗値R2〜R6に応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2の中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップS601〜S604と、前記複数のマクロM1〜M6を前記割り当てられたスキャンチェーンSC1,SC2で接続した半導体集積回路CPの設計データを生成する生成ステップS605とを有する。
前記割り当てステップS601〜S604は、前記複数のマクロM1〜M6の電源線間の抵抗値R2〜R6に応じて、前記複数のマクロM1〜M6を前記複数のスキャンチェーンSC1,SC2に順番に繰り返し割り当てる。
また、前記割り当てステップは、前記複数のマクロM1〜M6の中の1個のマクロを基点マクロM1として第1のスキャンチェーンSC1に割り当てる第1の割り当てステップS601と、前記基点マクロM1に対して前記抵抗値が最も低いマクロから順に前記第1のスキャンチェーンSC1以外の他のスキャンチェーンSC2に割り当てる第2の割り当てステップS602と、未割り当てのマクロの中で各スキャンチェーンSC1,SC2の最後に割り当てられたマクロに対して前記抵抗値が最も高いマクロから順番に繰り返して前記各スキャンチェーンSC1,SC2に割り当てる第3の割り当てステップS603,S604とを有する。
第1〜第3の実施形態によれば、半導体集積回路のスキャンテスト時において、電源電圧のIRドロップによる回路誤動作を回避させることができる。具体的には、スキャンテスト時のIRドロップの発生を出来るだけ抑えるようにスキャンチェーンを生成することにより、スキャンテスト時の回路動作不良を防止することができる。これにより、コスト、設計TATの大幅な増加を伴うことなく、スキャンテスト時のIRドロップを抑制した半導体集積回路設計を行うことができる。
また、テスト時のIRドロップが小さくなるように複数のマクロを複数のスキャンチェーンで接続することができる。また、テスト後にスキャンチェーン接続設計をやり直すことがないので、効率的な設計を行うことができる。
本実施形態は、図8のコンピュータがプログラムを実行することによって実現することができる。また、プログラムをコンピュータに供給するための手段、例えばかかるプログラムを記録したCD−ROM等のコンピュータ読み取り可能な記録媒体又はかかるプログラムを伝送するインターネット等の伝送媒体も本発明の実施形態として適用することができる。また、上記のプログラムを記録したコンピュータ読み取り可能な記録媒体等のコンピュータプログラムプロダクトも本発明の実施形態として適用することができる。上記のプログラム、記録媒体、伝送媒体及びコンピュータプログラムプロダクトは、本発明の範疇に含まれる。記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
本発明の実施形態は、例えば以下のように種々の適用が可能である。
(付記1)
半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップと
を有することを特徴とする半導体集積回路設計方法。
(付記2)
前記割り当てステップは、前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする付記1記載の半導体集積回路設計方法。
(付記3)
前記割り当てステップは、
前記複数のマクロの中の1個のマクロを基点マクロとして第1のスキャンチェーンに割り当てる第1の割り当てステップと、
前記基点マクロに最も近い又は遠いマクロから順に前記第1のスキャンチェーン以外の他のスキャンチェーンに割り当てる第2の割り当てステップと、
未割り当てのマクロの中で前記基点マクロに最も近い又は遠いマクロから順番に繰り返して前記複数のスキャンチェーンに割り当てる第3の割り当てステップとを有することを特徴とする付記2記載の半導体集積回路設計方法。
(付記4)
半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップと
を有することを特徴とする半導体集積回路設計方法。
(付記5)
前記割り当てステップは、前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする付記4記載の半導体集積回路設計方法。
(付記6)
前記割り当てステップは、
前記複数のマクロの中で前記IDドロップが最も大きい又は小さいマクロから順番に前記複数のスキャンチェーンに割り当てる第1の割り当てステップと、
未割り当てのマクロの中で前記IDドロップが最も大きい又は小さいマクロから順番に繰り返して前記複数のスキャンチェーンに割り当てる第2の割り当てステップとを有することを特徴とする付記5記載の半導体集積回路設計方法。
(付記7)
半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップと
を有することを特徴とする半導体集積回路設計方法。
(付記8)
前記割り当てステップは、前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする付記7記載の半導体集積回路設計方法。
(付記9)
前記割り当てステップは、
前記複数のマクロの中の1個のマクロを基点マクロとして第1のスキャンチェーンに割り当てる第1の割り当てステップと、
前記基点マクロに対して前記抵抗値が最も低いマクロから順に前記第1のスキャンチェーン以外の他のスキャンチェーンに割り当てる第2の割り当てステップと、
未割り当てのマクロの中で各スキャンチェーンの最後に割り当てられたマクロに対して前記抵抗値が最も高いマクロから順番に繰り返して前記各スキャンチェーンに割り当てる第3の割り当てステップとを有することを特徴とする付記8記載の半導体集積回路設計方法。
本発明の第1の実施形態による半導体集積回路設計装置の設計方法を示すフローチャートである。 本発明の第1の実施形態による半導体集積回路の構成例を示す図である。 本発明の第2の実施形態による半導体集積回路設計装置の設計方法を示すフローチャートである。 6個のマクロをIRドロップの大きい順に並べた図である。 本発明の第2の実施形態による半導体集積回路の構成例を示す図である。 本発明の第3の実施形態による半導体集積回路設計装置の設計方法を示すフローチャートである。 本発明の第3の実施形態による半導体集積回路の構成例を示す図である。 本発明の第1の実施形態による半導体集積回路設計装置を構成するコンピュータのハードウェア構成例を示すブロック図である。 一般的な半導体集積回路の構成例を示すブロック図である。 本発明の第1の実施形態による半導体集積回路の構成例を示すブロック図である。
符号の説明
CP 半導体集積回路
M1〜M6 マクロ
SC1,SC2 スキャンチェーン
PD,PD1,PD2 電源パッド
801 バス
802 CPU
803 ROM
804 RAM
805 ネットワークインタフェース
806 入力装置
807 出力装置
808 外部記憶装置

Claims (6)

  1. 半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
    前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
    前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、
    前記割り当てステップは、前記複数のマクロ間の距離に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする半導体集積回路設計方法。
  2. 前記割り当てステップは、
    前記複数のマクロの中の1個のマクロを基点マクロとして第1のスキャンチェーンに割り当てる第1の割り当てステップと、
    前記基点マクロに最も近い又は遠いマクロから順に前記第1のスキャンチェーン以外の他のスキャンチェーンに割り当てる第2の割り当てステップと、
    未割り当てのマクロの中で前記基点マクロに最も近い又は遠いマクロから順番に繰り返して前記複数のスキャンチェーンに割り当てる第3の割り当てステップとを有することを特徴とする請求項記載の半導体集積回路設計方法。
  3. 半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
    前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
    前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、
    前記割り当てステップは、前記複数のマクロのIRドロップに応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする半導体集積回路設計方法。
  4. 前記割り当てステップは、
    前記複数のマクロの中で前記Iドロップが最も大きい又は小さいマクロから順番に前記複数のスキャンチェーンに割り当てる第1の割り当てステップと、
    未割り当てのマクロの中で前記Iドロップが最も大きい又は小さいマクロから順番に繰り返して前記複数のスキャンチェーンに割り当てる第2の割り当てステップとを有することを特徴とする請求項記載の半導体集積回路設計方法。
  5. 半導体集積回路内の複数のマクロを複数のスキャンチェーンで接続するための半導体集積回路設計方法であって、
    前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンの中のいずれかのスキャンチェーンに接続するマクロとして割り当てる割り当てステップと、
    前記複数のマクロを前記割り当てられたスキャンチェーンで接続した半導体集積回路の設計データを生成する生成ステップとを有し、
    前記割り当てステップは、前記複数のマクロの電源線間の抵抗値に応じて、前記複数のマクロを前記複数のスキャンチェーンに順番に繰り返し割り当てることを特徴とする半導体集積回路設計方法。
  6. 前記割り当てステップは、
    前記複数のマクロの中の1個のマクロを基点マクロとして第1のスキャンチェーンに割り当てる第1の割り当てステップと、
    前記基点マクロに対して前記抵抗値が最も低いマクロから順に前記第1のスキャンチェーン以外の他のスキャンチェーンに割り当てる第2の割り当てステップと、
    未割り当てのマクロの中で各スキャンチェーンの最後に割り当てられたマクロに対して前記抵抗値が最も高いマクロから順番に繰り返して前記各スキャンチェーンに割り当てる第3の割り当てステップとを有することを特徴とする請求項5記載の半導体集積回路設計方法。
JP2007307657A 2007-11-28 2007-11-28 半導体集積回路設計方法 Expired - Fee Related JP5181638B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007307657A JP5181638B2 (ja) 2007-11-28 2007-11-28 半導体集積回路設計方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007307657A JP5181638B2 (ja) 2007-11-28 2007-11-28 半導体集積回路設計方法

Publications (2)

Publication Number Publication Date
JP2009135134A JP2009135134A (ja) 2009-06-18
JP5181638B2 true JP5181638B2 (ja) 2013-04-10

Family

ID=40866794

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007307657A Expired - Fee Related JP5181638B2 (ja) 2007-11-28 2007-11-28 半導体集積回路設計方法

Country Status (1)

Country Link
JP (1) JP5181638B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5257030B2 (ja) * 2008-12-02 2013-08-07 富士通セミコンダクター株式会社 集積回路設計プログラムおよび集積回路設計装置
JP6326756B2 (ja) * 2013-10-10 2018-05-23 日本電気株式会社 スキャンパスを構成するための情報処理装置、スキャンパス接続方法及びプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10197603A (ja) * 1997-01-09 1998-07-31 Matsushita Electric Ind Co Ltd 半導体集積回路および半導体集積回路の検査方法
JP2004096103A (ja) * 2002-08-09 2004-03-25 Matsushita Electric Ind Co Ltd 半導体集積回路装置の設計方法および設計装置
JP2004185427A (ja) * 2002-12-04 2004-07-02 Renesas Technology Corp スキャンパスタイミング最適化装置
JP2006066825A (ja) * 2004-08-30 2006-03-09 Renesas Technology Corp 半導体集積回路テスト設計支援装置

Also Published As

Publication number Publication date
JP2009135134A (ja) 2009-06-18

Similar Documents

Publication Publication Date Title
US8495547B2 (en) Providing secondary power pins in integrated circuit design
CN109086468B (zh) 用于设计集成电路芯片的方法、系统及电脑程序产品
US10268787B2 (en) Hybrid timing analysis method and associated system and non-transitory computer readable medium
US6976235B2 (en) Region-based voltage drop budgets for low-power design
EP3239865A1 (en) Method for analyzing ir drop and electromigration of ic
CN108959693B (zh) 设计集成电路的方法,以及制造集成电路的方法
US20090243393A1 (en) Semiconductor device, designing method and designing apparatus of the same
JP2010257164A (ja) 半導体集積回路装置の設計方法およびプログラム
US8413102B2 (en) Vectorless IVD analysis prior to tapeout to prevent scan test failure due to voltage drop
JP5181638B2 (ja) 半導体集積回路設計方法
US20070195716A1 (en) Ring bus in an emulation environment
US20040230934A1 (en) System and method for emulating systems with multiple field programmable gate arrays
Shi et al. Improved analytical delay models for RC-coupled interconnects
US8484840B2 (en) Leading wiring method, leading wiring program, and leading wiring apparatus
US7360129B2 (en) Simultaneous switch test mode
US7962877B2 (en) Port assignment in hierarchical designs by abstracting macro logic
JP2007011957A (ja) 回路設計装置およびプログラム
US7861197B2 (en) Method of verifying design of logic circuit
JP2008250583A (ja) レイアウト設計装置及びレイアウト方法
US7005873B2 (en) Built-in self-test hierarchy for an integrated circuit
WO2014106040A1 (en) Pattern-based power-and-ground (pg) routing and via creation
US20100079149A1 (en) Circuit testing apparatus and system
JP5522380B2 (ja) 半導体集積回路の診断テストパターン数最適化プログラム
US7519926B2 (en) Semiconductor device and method for designing the same
JP2011141140A (ja) Lsi試験装置および試験方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100825

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121130

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121231

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160125

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees