米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 計算機;電気通信 -> 松下電器産業株式会社

発明の名称 スキャンテスト回路の配置配線方法及びその配置配線装置並びに半導体集積回路
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開平7−192043
公開日 平成7年(1995)7月28日
出願番号 特願平6−21445
出願日 平成6年(1994)2月18日
代理人 【弁理士】
【氏名又は名称】前田 弘 (外2名)
発明者 吉田 久人 / 勝連 城二 / 吉本 哲朗 / 福井 正博 / 吉田 忠弘
要約 目的
スキャンテスト回路において、クロックスキューに起因するスキャンレジスタの誤動作(ミスラッチ)を防止する。

構成
スキャンテスト回路の配置配線を行う際、スキャンテストの対象となるフリップフロップ等のスキャンレジスタを含む回路要素の配置及び概略配線を行った後、配置配線されたスキャンレジスタのスキャンモード時におけるクロックのスキューによる誤動作を回避するための処理を行う。クロックのスキューによる誤動作を回避するための処理としては、例えばクロックスキューが所定以上となる2つのフリップフロップ間に逆位相フリップフロップを追加配置する。また、連続する2つのフリップフロップが異系統クロックで制御される場合にも、逆位相フリップフロップを追加配置する。これにより、各フリップフロップにおける信号の保持状態を適正に維持してミスラッチを回避する。
特許請求の範囲
【請求項1】 スキャンテストの対象となるスキャンレジスタを含む回路要素の配置を行うステップと、上記各回路要素間における概略配線を行うステップと、上記配置配線されたスキャンレジスタのスキャンモード時におけるクロックのスキューによる誤動作を回避するための処理を行うステップとを備えたことを特徴とするスキャンテスト回路の配置配線方法。
【請求項2】 スキャンテストの対象となるスキャンレジスタを含む回路要素の配置を行うステップと、上記各回路要素間における概略配線を行うステップと、上記概略配線された回路内におけるクロックのスキューが所定値以上になる箇所を検出するステップと、上記クロックのスキューが所定値以上になる箇所について、クロックのスキューによるスキャンモード時の誤動作を回避するための回路の配置,配線を行うステップとを備えたことを特徴とするスキャンテスト回路の配置配線方法。
【請求項3】 請求項2記載のスキャンテスト回路の配置配線方法において、スキャンレジスタとしてフリップフロップを配置し、上記クロックのスキューが所定値以上になる箇所を検出するステップは、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップと、スキャンチェーン上で仮に決定されたスキャン順序において連続するフリップフロップのクロックスキューを求めるステップと、上記求められたクロックスキューが所定値以上となる2つのフリップフロップの組み合わせを抽出するステップとからなり、上記クロックスキューを回避する処理を行うステップは、スキャンモード時に上記ステップで抽出された2つのフリップフロップの少なくともいずれか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続位置が上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとからなることを特徴とするスキャンテスト回路の配置配線方法。
【請求項4】 請求項3記載のスキャンテスト回路の配置配線方法において、上記クロックスキューが所定値より大きい2つのフリップフロップの組合せを抽出するステップは、クロック発生源から各フリップフロップまでの遅延値列を配線の長さ及び断面積に基づき求め、n番目のフリップフロップの遅延値から(n+1)番目のフリップフロップの遅延値を減じた値に(n+1)番目のフリップフロップのホールド時間を加算した値と、(n+1)番目のフリップフロップの無負荷遅延値とを比較して、無負荷遅延値の方が大きくない場合にエラー箇所として検出することを特徴とするスキャンテスト回路の配置配線方法。
【請求項5】 請求項1記載のスキャンテスト回路の配置配線方法において、上記スキャンテストの対象となる回路には、複数のクロック系統が設けられており、スキャンレジスタとしてフリップフロップを配置し、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップと、スキャンチェーン内で連続かつ制御されるクロックの系統が異なる2つのフリップフロップの組み合わせを抽出するステップとを備え、上記クロックスキューを回避する処理を行なうステップは、スキャンモード時に上記ステップで抽出された2つのフリップフロップのどちらか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとからなることを特徴とするスキャンテスト回路の配置配線方法。
【請求項6】 請求項1記載のスキャンテスト回路の配置配線方法において、スキャンレジスタとしてフリップフロップを配置し、上記概略配線を行うステップの後に、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップを備え、上記クロックスキューを回避するステップは、スキャンチェーン上の一つおきのフリップフロップをスキャンモード時にクロックの逆位相で動作するフリップフロップに変更するステップと、上記決定されたスキャンチェーンの接続順序に従ってスキャンチェーンの配線を行うステップとからなることを特徴とするスキャンテスト回路の配置配線方法。
【請求項7】 請求項1記載のスキャンテスト回路の配置配線方法において、上記クロックスキューを回避する処理を行うステップは、配置配線情報に基づき、クロック発生源から各スキャンレジスタへの遅延時間を計算するステップと、上記遅延時間の相対関係によって上記スキャンレジスタ間の半順序関係を定義するステップと、上記半順序関係に違反しないと言った制約のもとに配置配線の評価値を最適化するように上記スキャンレジスタ間の全順序関係を求めるステップと、上記全順序関係に基づき上記スキャンレジスタ間の概略配線の経路を求めるステップと、詳細配線を実行するステップとからなることを特徴とするスキャンテスト回路の配置配線方法。
【請求項8】 請求項7記載のスキャンテスト回路の配置配線方法において、スキャンレジスタとしてフリップフロップを配置し、上記クロックスキューを回避する処理を行うステップは、上記全順序に従って連続する2つのフリップフロップのクロックのスキューがある値より大きい箇所を検出するステップと、上記検出された2つのフリップフロップのどちらか一方のクロックの逆位相で動作するフリップフロップを追加配置するステップと、上記追加された逆位相で動作するフリップフロップを含めたスキャン順序に基づき、スキャンチェーンの配線を行うステップとをさらに備えたことを特徴とする配置配線方法。
【請求項9】 請求項7記載のスキャンテスト回路の配置配線方法において、スキャンテストの対象となる回路には、複数のクロック系統が設けられており、スキャンレジスタとしてフリップフロップを配置し、上記クロックスキューを回避する処理を行うステップは、全順序が決定されたスキャンチェーン内で連続かつ制御されるクロックの系統が異なる2つのフリップフロップの組み合わせを抽出するステップと、スキャンモード時に上記ステップで抽出された2つのフリップフロップのどちらか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとをさらに備えたことを特徴とする配置配線方法。
【請求項10】 請求項1記載のスキャンテスト回路の配置配線方法において、上記クロックスキューを回避する処理を行うステップでは、配置配線情報に基づき、クロック発生源からスキャンレジスタへの遅延時間と、スキャンチェーンにおける配線の遅延時間とを計算して、クロックのスキューがスキャン配線の遅延時間に比較して大きくなるスキャンレジスタのペアを求め、上記スキャンレジスタペア間の配置配線を改善することを特徴とするスキャンテスト回路の配置配線方法。
【請求項11】 請求項10記載のスキャンテスト回路の配置配線方法において、上記クロックスキューを回避する処理を行うステップでは、上記スキャンレジスタのペア間のクロック配線又はスキャンチェーンの経路を順次改善することを特徴とするスキャンテスト回路の配置配線方法。
【請求項12】 請求項10記載のスキャンテスト回路の配置配線方法において、上記クロックスキューを回避する処理を行うステップでは、上記スキャンレジスタのペアのうちいずれかのスキャンレジスタを遅延時間の異なるスキャンレジスタに置き換えることを特徴とするスキャンテスト回路の配置配線方法。
【請求項13】 スキャンテストの対象となるフリップフロップを含む回路要素の配置を行う配置設計手段と、上記各回路要素間の概略配線を行う配線設計手段と、上記配線設計手段による配置情報に基づき上記フリップフロップのスキャンチェーン上での接続順序を仮に決定する接続順序仮決定手段と、仮に決定された接続順序において連続する2つのフリップフロップ間のクロックのスキューが所定値以上になる箇所を抽出するエラー箇所検出手段と、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行う接続順序再決定手段と、上記再決定された接続順序に従ってスキャンチェーンの配線を行うスキャンチェーン配線手段とを備えたことを特徴とする配置配線装置。
【請求項14】 スキャンテストの対象となるフリップフロップを含む回路要素の配置を行う配置設計手段と、上記各回路要素間の概略配線を行う配線設計手段と、上記配線設計手段による配置情報に基づき上記フリップフロップのスキャンチェーン上での接続順序を決定する接続順序決定手段と、スキャンチェーン上の一つおきのフリップフロップをスキャンモード時にクロックの逆位相で動作するフリップフロップに変更するフリップフロップ変更手段と、上記決定された接続順序に従ってスキャンチェーンの配線を行うスキャンチェーン配線手段とを備えたことを特徴とする配置配線装置。
【請求項15】 スキャンテストの対象となるフリップフロップを配置してなるスキャンテスト回路を備えた半導体集積回路において、上記スキャンテスト回路には、スキャンモード時のみクロックの逆位相で動作するフリップフロップと、スキャンモード時も正位相で動作するフリップフロップとがスキャンチェーン上で交互に配置されていることを特徴とする半導体集積回路装置。
発明の詳細な説明
【0001】
【産業上の利用分野】本発明は、半導体集積回路の接続状態等をテストするために設けられるスキャンテスト回路の配置配線方法,配置配線装置及びスキャンテスト回路を配置してなる半導体集積回路に関するものである。
【0002】
【従来の技術】従来から行われているスキャンチェーンの接続方法としては、以下の3つの方法があげられる。
【0003】(1) 第1の方法としては、回路設計者が、回路設計時にスキャン対象フリップフロップに対し、接続関係から回路図上でマニュアルでスキャンチェーンを接続する方法である。
【0004】(2) 第2の方法としては、設計者が回路を設計後、スキャンテストを自動挿入する機能を持った回路合成システムやテスト生成システムを用いてスキャンチェーンを自動で接続する方法である。
【0005】(3) 第3の方法としては、例えば、特開平4−96252号公報に開示されているように、回路の配置配線時に、各セルの配置情報に基づいて、スキャンチェーンが短くなるようにスキャンの順序を決定し、接続する方法である。その場合、スキャンチェーンを構成するフリップフロップ等のスキャンレジスタにおいて、クロック信号の遅延差(スキュー)に起因する誤動作(ミスラッチ)が生じるという現象があった。
【0006】図16にスキャンテスト回路におけるスキューを説明するための図を示す。この図で、ck31はクロック、330はスキャン信号線、301,302はフリップフロップ等のスキャンレジスタ、360はスキャン入力端子、370はスキャン出力端子である。スキャンレジスタ301のスキャン入力端子360とスキャンレジスタ302のスキャン入力端子360との間にはスキャン遅延Dsが生じ、スキャンレジスタ301のクロック信号とスキャンレジスタ302のクロック信号との間にはクロックスキュー(クロックの遅延差)Dcが生じる。スキャンテスト回路は一般的に、後述の式(1) が成立している場合に正常動作をし、この条件が成り立たないと誤動作を生じる。
【0007】
Ds>Dc (1) 次に、スキャンが誤動作を起こす場合について、図17の回路を例にとって説明する。図17において、ck31はクロック、331〜339はスキャン信号線、301〜308はスキャンレジスタ、380はスタンダードセル、390はチャネルである。各スキャン信号線331〜339によりスキャンレジスタ301〜308を直列に接続してなるスキャンチェーン330が形成されている。
【0008】ここで、スキャンレジスタ307とスキャンレジスタ308とに着目すると、両者へのクロック配線はかなり遠回りしているため、クロックスキューは大きい。反面、両者間のスキャン信号線は同じチャネル内でできるので、配線が短く、スキャン遅延も小さい。このような場合に、上記式(1) の関係を満たさなくなり、スキャンの誤動作を起こす。
【0009】一方、上記の全ての従来手法において、回路内にクロック信号線が複数存在する場合には、クロック信号線毎の遅延差により生ずるクロックスキューによりスキャンチェーン上の誤動作を起こす可能性が高いため、クロック信号線毎に異なるスキャンチェーンを作成し、複数のスキャンチェーンを用いてテストを行なっていた。例えば、図18は、上記図17の一部を取り出したものであり、スキャンレジスタとしてフリップフロップを配置したものである。図18に示す回路において、フリップフロップ301,302は、クロックck31により制御され、フリップフロップ303,304は、クロックck32により制御されている。従来、このような回路に対しては、スキャン信号線331,332,333によりフリップフロップ301及び302を直列に接続してなるスキャンチェーン330Aと、スキャン信号線334,335,336によりフリップフロップ303及び304を直列に接続してなるスキャンチェーン330Bとの2本のスキャンチェーンを形成していた。なお、同図において、313はテストモード信号線、341〜348はデータ信号線、351〜353は組合せ回路である。
【0010】
【発明が解決しようとする課題】しかしながら、上記従来のようなスキャンテスト回路の配置配線技術では、下記のような問題があった。
【0011】上記(1)および(2)の方法を用いた場合、フリップフロップの配置の結果、スキャンチェーン上で接続されたフリップフロップが遠く離れたり、あるいは、データ信号線によって接続される配置が、スキャンチェーン上で接続される順序とは異なる順序で配置された結果、スキャンチェーンの配線が複雑になり、その結果、スキャンチェーンのための配線面積が大きくなる。
【0012】上記(3)の方法を用いると、クロックのスキューやスキャン信号の伝搬時間が考慮されていないために、誤動作を生じやすい配線が施される虞れがある。
【0013】また、上記(1)〜(3)のいずれの方法を用いた場合にも、回路規模が大きい場合など、各フリップフロップでのクロックのスキューからスキャンモード時に誤動作を起こす虞れがあった。これを回避すべく、従来では、配置配線終了後、実配線遅延シミュレーション等を用いて相当の工数をかけて動作検証を行ない、かつ、誤動作が発見されれば配置または配線を人手で修正する必要があり、回路が大規模化するにつれて、現実的な手法としては不適当となっている。
【0014】また、異なるクロック系統が存在する場合、あらかじめ異なるスキャンチェーンを形成するようにすると、スキャンチェーンの数が多くなり、それらを制御するための大規模なテスト用回路が必要となる。しかし、テスト用回路の簡素化を図るべく、制御されるクロックの信号線が異なるフリップフロップに対し、一本のスキャンチェーンを用いてスキャンテストを行なおうとすると、スキャンテスト時にミスラッチを起こし、正しくテストできないことが多くあった。これは、スキャンチェーン上ではフリップフロップ間が配線のみであることから遅延時間が短いので、異なる信号線のクロック信号間に位相差があるからである。以下に、そのミスラッチの発生作用を具体的に説明する。
【0015】例えば、図19に示すように、フリップフロップ302−303間をスキャン信号線333で接続し、共通のスキャンチェーンを形成するとする。
【0016】図20は、上方から順に、テストモード時のクロックck31,ck32の信号状態、各スキャン信号線331〜336の信号状態の例を示す。ここでは、例として、テストモード信号線313により、テストモードに切り替わった時点でのフリップフロップ301〜304の内部状態を、各々“0”,“1”,“0”,“1”とし、データ信号線331からは論理値“1”が送られてくるとする。また、クロックck31,ck32間には、クロック信号間のスキューTdckが存在しているとする。以下にテストモード時の動作を説明する。
【0017】テストモードに切り替わった直後、スキャン信号線332,333,335,336には、通常動作時の出力が継続して出力されている。
【0018】タイミングt511において、フリップフロップ301がスキャン信号線331の信号を、フリップフロップ302がスキャン信号線332の信号を取り込み、それぞれ、スキャン信号線332,333へ出力する。
【0019】次に、タイミングt521においてフリップフロップ303がスキャン信号線333の信号を、フリップフロップ304がスキャン信号線335の信号を取り込み、それぞれスキャン信号線335,336へ出力する。
【0020】以降、各クロックの立上り時に順次データが送られ、各スキャン信号線331,332,333,335,336は、それぞれ同図に示すような信号状態となる。ここで、スキャン信号線336には、同図に示すように、テストモードに替わった時点でのフリップフロップ302の状態が伝えられていない。これは、異なる信号線のクロックで制御されている2つのフリップフロップ302,303の間でクロック信号線間のスキューがあるために、タイミングt521では、信号線333には、すでにテストモード切替え時点でのフリップフロップ301の状態が伝搬しており、その値を保持してしまっているためである。
【0021】以上のような不具合が生じるため、異なる信号線のクロックにより制御されるフリップフロップがスキャンチェーン中に存在する場合、あらかじめ異なるスキャンチェーンを形成するせざるを得ないことになる。
【0022】本発明は斯かる点に鑑みてなされたものであり、主として下記の目的を達成するためのスキャンテスト回路の配置配線方法及びその配置配線装置並びに半導体集積回路を提供するものである。
【0023】(1) 第1の目的は、スキャンテスト回路におけるクロックスキューによる誤動作を防止することにある。
【0024】(2) 第2の目的は、異なるクロックで制御されるフリップフロップがスキャンテスト回路に含まれている場合、予めクロックスキューによる誤動作が生じることが予想されるため、この誤動作を未然に防止することにある。
【0025】(3) 第3の目的は、スキャンテスト回路中の遅延によって生じる誤動作を確実に防止することにある。
【0026】
【課題を解決するための手段】上記目的を達成するため、請求項1の発明の講じた手段は、スキャンテスト回路の配置配線方法として、図1に示す基本的なステップからなる方法である。すなわち、スキャンテストの対象となるスキャンレジスタを含む回路要素の配置を行うステップST1と、上記各回路要素間における概略配線を行うステップST2と、上記配置配線されたスキャンレジスタのスキャンモード時におけるクロックのスキューによる誤動作を回避するための処理を行うステップST3とを設ける方法である。
【0027】請求項2の発明の講じた手段は、スキャンテスト回路の配置配線方法として、スキャンテストの対象となるスキャンレジスタを含む回路要素の配置を行うステップと、上記各回路要素間における概略配線を行うステップと、上記概略配線された回路内におけるクロックのスキューが所定値以上になる箇所を検出するステップと、上記クロックのスキューが所定値以上になる箇所について、クロックのスキューによるスキャンモード時の誤動作を回避するための回路の配置,配線を行うステップとを設ける方法である。
【0028】請求項3の発明の講じた手段では、請求項2の発明において、スキャンレジスタとしてフリップフロップを配置する。そして、上記クロックのスキューが所定値以上になる箇所を検出するステップとして、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップと、スキャンチェーン上で仮に決定されたスキャン順序において連続するフリップフロップのクロックスキューを求めるステップと、上記求められたクロックスキューが所定値以上となる2つのフリップフロップの組み合わせを抽出するステップとを設ける。さらに、上記クロックスキューを回避する処理を行うステップとして、スキャンモード時に上記ステップで抽出された2つのフリップフロップの少なくともいずれか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続位置が上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとを設ける方法である。
【0029】請求項4の発明の講じた手段では、請求項3の発明において、上記クロックスキューが所定値より大きい2つのフリップフロップの組合せを抽出するステップは、クロック発生源から各フリップフロップのクロックピンまでの遅延値列を配線の長さ及び断面積に基づき求め、n番目のフリップフロップの遅延値から(n+1)番目のフリップフロップの遅延値を減じた値に(n+1)番目のフリップフロップのホールド時間を加算した値と、(n+1)番目のフリップフロップの無負荷遅延値とを比較して、無負荷遅延値の方が大きくない場合にエラー箇所として検出する方法である。
【0030】請求項5の発明の講じた手段では、請求項1の発明において、上記スキャンテストの対象となる回路に、複数のクロック系統が設けられているものとする。そして、スキャンレジスタとしてフリップフロップを配置する。また、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップと、スキャンチェーン内で連続かつ制御されるクロックの系統が異なる2つのフリップフロップの組み合わせを抽出するステップとを設ける。さらに、上記クロックスキューを回避する処理を行なうステップとして、スキャンモード時に上記ステップで抽出された2つのフリップフロップのどちらか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとを設ける方法である。
【0031】請求項6の発明の講じた手段では、請求項1の発明において、スキャンレジスタとしてフリップフロップを配置する。また、上記概略配線を行うステップの後に、配置配線情報に基づく上記フリップフロップのスキャンチェーン上での接続順序を仮に決定するステップを設ける。さらに、上記クロックスキューを回避するステップとして、スキャンチェーン上の一つおきのフリップフロップをスキャンモード時にクロックの逆位相で動作するフリップフロップに変更するステップと、上記決定されたスキャンチェーンの接続順序に従ってスキャンチェーンの配線を行うステップとを設ける方法である。
【0032】請求項7の発明の講じた手段は、請求項1の発明において、上記クロックスキューを回避する処理を行うステップとして、配置配線情報に基づき、クロック発生源から各スキャンレジスタの遅延時間を計算するステップと、上記遅延時間の相対関係によって上記スキャンレジスタ間の半順序関係を定義するステップと、上記半順序関係に違反しないと言った制約のもとに配置配線の評価値を最適化するように上記スキャンレジスタ間の全順序関係を求めるステップと、上記全順序関係に基づき上記スキャンレジスタ間の概略配線の経路を求めるステップと、詳細配線を実行するステップとを設ける方法である。
【0033】請求項8の発明の講じた手段では、請求項7の発明において、スキャンレジスタとしてフリップフロップを配置する。そして、上記クロックスキューを回避する処理を行うステップに、上記全順序に従って連続する2つのフリップフロップのクロックのスキューがある値より大きい箇所を検出するステップと、上記検出された2つのフリップフロップのどちらか一方のクロックの逆位相で動作するフリップフロップを追加配置するステップと、上記追加された逆位相で動作するフリップフロップを含めたスキャン順序に基づき、スキャンチェーンの配線を行うステップとをさらに設ける方法である。
【0034】請求項9の発明の講じた手段では、請求項7の発明において、スキャンテストの対象となる回路には、複数のクロック系統が設けられているものとする。そして、スキャンレジスタとしてフリップフロップを配置する。また、上記クロックスキューを回避する処理を行うステップに、全順序が決定されたスキャンチェーン内で連続かつ制御されるクロックの系統が異なる2つのフリップフロップの組み合わせを抽出するステップと、スキャンモード時に上記ステップで抽出された2つのフリップフロップのどちらか一方が制御されるクロックの逆位相で動作するフリップフロップを回路に追加配置するステップと、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行うステップと、上記再決定された接続順序に従ってスキャンチェーンの配線を行うステップとをさらに設ける方法である。
【0035】請求項10の発明の講じた手段は、請求項1の発明において、上記クロックスキューを回避する処理を行うステップでは、配置配線情報に基づき、クロック発生源から各スキャンレジスタへの遅延時間と、スキャンチェーンにおける配線の遅延時間とを計算して、クロックのスキューがスキャン配線の遅延時間に比較して大きくなるスキャンレジスタのペアを求め、上記スキャンレジスタペア間の配置配線を改善する方法である。
【0036】請求項11の発明の講じた手段は、請求項10の発明において、上記クロックスキューを回避する処理を行うステップでは、上記スキャンレジスタのペア間のクロック配線又はスキャンチェーンの経路を順次改善する方法である。
【0037】請求項12の発明の講じた手段は、請求項10の発明において、上記クロックスキューを回避する処理を行うステップでは、上記スキャンレジスタのペアのうちいずれかのスキャンレジスタを遅延時間の異なるスキャンレジスタに置き換える方法である。
【0038】請求項13の発明の講じた手段は、スキャンテスト回路の配置配線装置として、スキャンテストの対象となるフリップフロップを含む回路要素の配置を行う配置設計手段と、上記各回路要素間の概略配線を行う配線設計手段と、上記配線設計手段による配置情報に基づき上記フリップフロップのスキャンチェーン上での接続順序を仮に決定する接続順序仮決定手段と、仮に決定された接続順序において連続する2つのフリップフロップ間のクロックのスキューが所定値以上になる箇所を抽出するエラー箇所検出手段と、上記抽出された2つのフリップフロップのうちいずれか一方のクロックの逆位相で動作するフリップフロップを回路に追加配置する追加配置手段と、上記追加されたフリップフロップのスキャンチェーン上での接続順序を上記抽出された2つのフリップフロップの間になるよう接続順序の再決定を行う接続順序再決定手段と、上記再決定された接続順序に従ってスキャンチェーンの配線を行うスキャンチェーン配線手段とを設けたものである。
【0039】請求項14の発明の講じた手段は、スキャンテスト回路の配置配線装置として、スキャンテストの対象となるフリップフロップを含む回路要素の配置を行う配置設計手段と、上記各回路要素間の概略配線を行う配線設計手段と、上記配線設計手段による配置情報に基づき上記フリップフロップのスキャンチェーン上での接続順序を決定する接続順序決定手段と、スキャンチェーン上の一つおきのフリップフロップをスキャンモード時にクロックの逆位相で動作するフリップフロップに変更するフリップフロップ変更手段と、上記決定された接続順序に従ってスキャンチェーンの配線を行うスキャンチェーン配線手段とを設ける方法である。
【0040】請求項15の発明の講じた手段は、スキャンテストの対象となるフリップフロップを配置してなるスキャンテスト回路を備えた半導体集積回路を前提とする。そして、上記スキャンテスト回路に、スキャンモード時のみクロックの逆位相で動作するフリップフロップと、スキャンモード時も正位相で動作するフリップフロップとがスキャンチェーン上で交互に配置するようにしたものである。
【0041】
【作用】以上の方法により、請求項1の発明では、スキャンテスト回路の回路要素が配置され概略配線された後に、クロックのスキューに起因する誤動作を回避する処理が行われるので、クロックスキューによるミスラッチを起こすことのないスキャンテスト回路が構築されることになる。
【0042】請求項2の発明では、スキャンテスト回路の回路要素が配置され概略配線された後に、クロックのスキューが所定値以上になる箇所が検出されると、当該箇所については、クロックスキューに起因する誤動作を回避する処理が行われるので、構築されるスキャンテスト回路では、クロックスキューによる誤動作が確実に防止されることになる。
【0043】請求項3の発明では、各フリップフロップ間のクロックスキューから誤動作を生じる可能性が高い箇所が確実に検出され、クロックのスキューによりミスラッチを起こす可能性が高いところには、逆位相で動作するフリップフロップが挿入される。したがって、挿入された逆位相のクロックで制御されるフリップフロップが、クロックの立ち下がりから次の立ち下がりまでの時間、前段のフリップフロップの出力を保持する。そのため、後段のフリップフロップを制御するクロックと、前段のフリップフロップを制御するクロックとの間に位相差が生じていても、後段のフリップフロップは、前段のフリップフロップの1クロック前の出力をラッチすることが可能となる。したがって、クロックスキューに起因する誤動作が確実に回避されることになる。
【0044】請求項4の発明では、請求項3の発明において、エラー箇所が確実に検出されることになる。
【0045】請求項5の発明では、クロック系統が異なる境界のフリップフロップ間で、逆位相フリップフロップの挿入によって、上記請求項3の発明と同様の作用により、前段のフリップフロップの1クロック前の出力をラッチすることが可能となり、異なるクロック信号線間のクロックの位相のずれにもかかわらず、一本のスキャンチェーンによりスキャンテストが可能となる。
【0046】請求項6の発明では、スキャンチェーン内の各フリップフロップに対し、一律に一つおきに逆位相フリップフロップに変更されるので、スキューエラーを生じる箇所を検出する手間を要することなく、クロックスキューに起因する誤動作が未然に回避されることになる。
【0047】請求項7の発明では、各スキャンレジスタ間の半順序関係を決定するステップで、クロックスキューに起因する誤動作が回避され、さらに、全順序関係を求めるステップで、各スキャンレジスタの評価値が最適化される。したがって、クロックスキューに起因する誤動作が回避されるとともに、スキャンチェーンの配線が可及的に簡素化されることになる。
【0048】請求項8の発明では、請求項7の発明では回避できないクロックスキューに起因する誤動作が生じるような条件下においても、逆位相フリップフロップの挿入によって確実にクロックスキューによる誤動作が回避されることになる。
【0049】請求項9の発明では、請求項7の発明では回避できない異系統クロックの存在に起因する誤動作が生じるような条件下においても、逆位相フリップフロップの挿入によって確実にクロックスキューによる誤動作が回避されることになる。
【0050】請求項10の発明では、スキャンテスト回路に対して、自動設計により配置配線の改善処理を行うことが可能となり、設計工数が大幅に削減されることになる。
【0051】請求項11の発明では、各スキャンレジスタのペア間のクロック配線又はスキャンチェーンの経路が順次改善されるので、すべての箇所におけるクロックスキューによる誤動作が確実に回避されることになる。
【0052】請求項12の発明では、クロックスキューによる誤動作が生じる虞れがある箇所があっても、遅延時間の異なるスキャンレジスタとの置き換えによって誤動作が回避される。したがって、スキャンレジスタの追加による回路面積の増大を招くことなく誤動作が回避されることになる。
【0053】請求項13の発明では、請求項3の発明の作用を奏するスキャンテスト回路を形成しうる配置配線装置が構成されることになる。
【0054】請求項14の発明では、請求項6の発明の作用を奏するスキャンテスト回路を形成しうる配置配線装置が構成されることになる。
【0055】請求項15の発明では、請求項6の発明の作用を奏する半導体集積回路が形成されることになる。
【0056】
【実施例】以下、本発明の実施例について、図面を参照しながら説明する。
【0057】(第1実施例)まず、第1実施例について、図2〜図8に基づき説明する。
【0058】図2は第1実施例に係るスキャンテスト回路の配置配線を行う配置配線装置の構成を示すブロック図である。図2において、10は中央処理部(CPU)であり、該中央処理部10には、各回路要素の配置や、回路要素間のクロック信号線やデータ信号線等の概略配線を行う配置及び概略配線部11と、スキャン順序を決定するスキャン順序決定部12と、異系統クロック検出部13と、スキューエラー検出部14と、スキャンチェーン内に逆位相フリップフロップを配置するための逆位相フリップフロップ配置部15と、スキャンチェーンの配線を行うスキャンチェーン配線部16とが内蔵されている。また、20は記憶部であって、該記憶部20には、各セルの名称や接続情報等を記憶するセル名接続情報記憶部21と、各回路要素の配置に関する情報と配線に関する情報とを記憶する配置配線情報記憶部22と、スキャンチェーンを形成する際のスキャン順序を記憶するスキャン順序記憶部23と、クロックスキューに起因する誤動作を記憶するクロックスキューエラー情報記憶部24とが内蔵されている。また、30は入力部、40は出力部である。
【0059】次に、上記配置配線装置によるスキャンテスト回路の配置配線方法の手順について、図3のフロ―チャ―トに基づき説明する。なお、配置配線装置のセル名接続情報記憶部20には、予め当該セルの名前と接続情報とが記憶されている。図3に示すように、ステップST11で、中央処理部10の配置部及び概略配線部11によりスキャンチェーンに関する接続情報を用いないで各回路要素の配置処理を行ない、ステップST12で配置及び概略配線部11によりスキャンチェーンを除いたセル間の配線処理を行う。そして、これらの配置配線情報は、記憶部20の配置配線情報記憶部22に記憶しておく。次に、ステップST13で、上記ステップST11における配置結果に基づきスキャンチェーン内のフリップフロップの接続順序を仮に決定する処理を行う。このスキャン順序は記憶部20のスキャン順序記憶部23に記憶しておく。
【0060】また、ステップST14で、異系統クロック検出部13により、回路内に相異なるクロック系統が存在するか否かを判別する。このステップST14の判別で、異系統クロックが存在する場合にはステップST15でその異系統クロックに接続される2つのフリップフロップ間をエラー箇所と設定した後、異系統クロックが回路内に存在しない場合にはそのままで、それぞれステップST16に進む。そして、ステップST16で、スキューエラー検出部1により、クロックの遅延時間の計算を行う。このとき、クロックのブロックの入力ピンからスキャン対象フリップフロップまでの遅延値の計算を行う。さらに,スキューエラー検出部1により、ステップST17で、スキャンチェーン上で連続するフリップフロップにスキューによるエラーがないかを検出するスキューエラーの検出処理を行う。つまり、クロックの遅延時間から算出される後述の加算値Scが無負荷遅延値Kよりも大きい箇所がないか否かを判別する。そして、ステップST18で、Sc<Kとなるフリップフロップ間をエラー箇所と設定する。
【0061】次に、上記ステップST14〜18の制御により,エラー箇所と設定された部位に対し、ステップST19で、中央処理部10の逆相フリップフロップ配置部15により、当該スキューエラーを生じた2つのフリップフロップの間にクロックの逆位相で作動する逆位相フリップフロップを配置する。この時、逆位相フリップフロップを配置したことで、回路要素の配置及びスキャン順序に変更が生じるので、この新たな配置配線情報は記憶部の配置配線情報記憶部22に記憶し、スキャン順序はスキャン順序記憶部23に記憶しておく。さらに、ステップST20で、スキャン順序決定部12により、上記ステップST19の結果に基づいてスキャンチェーンの順序の再決定処理を行い、ステップST21で、スキャンチェーン配線部16により、スキャンチェーンの配線処理を行う。この最終的な配置配線情報は、配置配線情報記憶部22に記憶しておく。
【0062】なお、上記各ステップにおける作動は、具体的には以下のようになされる。
【0063】セル配置処理を行うステップST11では、スキャンチェーンに関する接続情報を全ての接続関係から除いたうえで、例えば、「岩波講座マイクロエレクトロニクス4VLSIの設計I」の第4章に示される方法により配置配線を行う。
【0064】ステップST13では、スタンダードセルの配置配線のように列毎にセルを配置する方法では、各列毎にスキャン対象フリップフロップに番号を割り当て、上から順に全体の順序を決定し、スキャン順序列を作成する。
【0065】ステップST16では、クロックのブロックの入力ピンからスキャン対象フリップフロップのクロックピンまでの各配線線分の長さおよび幅を求め、単位面積当たりの抵抗値および容量値を用いてブロック入力ピンからの遅延値を求め、その値を、ステップST13で求めた順序にしたがって記憶する。
【0066】ステップST17では、ステップST14で求めた遅延値列から、順次値を取りだし、先の値から後の値を減じた値に後の値に対応するフリップフロップのホールド時間を加算した値Scと、後の値に対応するフリップフロップの無負荷遅延値Kとを比較する。例えば、1番めの値から2番めの値を減じて求まる差値に2番めのフリップフロップのホールド時間を加算した値と、2番めのフリップフロップの無負荷遅延値とを比較する。そして、無負荷遅延値の方が上記加算値よりも大きくない場合に、そのフリップフロップ間をエラー箇所として検出し、エラー箇所リストに記憶する。
【0067】ステップST19では、エラー箇所リストから順次エラー箇所を取りだし、エラー箇所と同じ列上に逆位相で動作するフリップフロップを追加配置する。逆位相のフリップフロップを配置する余裕が該当列にない場合には、その列に近い列で、余裕のある列に追加配置する。ステップST21では、ステップST20において接続された各フリップフロップの順序にしたがって、スキャンチェーンの配線を行うとともに、スキャン順序リストの所定の箇所に、ステップST19で追加したフリップフロップを追加挿入する。
【0068】次に、図4は、上述の配置配線装置によって構成されたスキャンテスト回路の構成を示す。同図において、ck11はチップ内の第1クロック、ck12は第2クロックであり、113はテストモードと通常モードとの切替え信号を入力するためのテストモード信号線である。101及び102は第1クロックck11の信号線に接続されるフリップフロップであり、103及び104は第2クロックck12の信号線に接続されるフリップフロップである。通常モードでは、各フリップフロップ101〜104において、端子Dはデータ信号の入力部、端子SIはテストモード時におけるスキャン信号の入力部である。出力は端子SQおよびQに等しく出力される。
【0069】ここで、上記図4のフリップフロップ105は、第2クロックck12の逆位相で制御されるフリップフロップであって、上記図3のフロ―チャ―トにおけるステップST14,15の制御によりエラー箇所と設定され、ステップST19の制御によりスキャンテスト回路に配置されるものである。そして、図3のステップST21の制御により、各フリップフロップ101〜105を図に示す順序で接続するスキャン信号線131〜136の配線処理が行われる。すなわち、スキャン信号線131〜136により各フリップフロップ101〜105を直列に接続してなるスキャンチェーンが構成される。なお、同図において、150〜153は組合せ回路のブロックであり、これらの組合せ回路150〜153と各フリップフロップ101〜104とを接続するデータ信号線141〜148により、通常動作時のデータの伝搬が行なわれる。
【0070】また、図5は、上記図3のステップST17,18の制御によりエラー箇所と設定され、ステップST19の制御によりスキャンテスト回路に逆位相フリップフロップ105が配置された場合のスキャンセル回路の構成を示す。この場合、各フリップフロップ101〜105はすべて共通の第1クロックck11により制御される。
【0071】以下に、図6及び図7に示す回路を用いて、上記図4に示すスキャンセル回路を用いてスキャンテストを行った場合の動作を説明する。図6および図7は、いずれも上方から順に、テストモード時のクロックck11,ck12の状態、スキャン信号線131〜136の信号状態の例を示す。ここでは、例として、テストモードに切り替わった時点でのフリップフロップ101〜104の内部状態を各々,“0”,“1”,“0”,“1”とし、スキャン信号線131からは“1”が送られてくるとする。また、第1クロックck11と第2クロックck12との間には、クロック系統間のスキューTdckが存在しているとする。図6は、スキューTdckがクロックの半周期より小さい場合を、図7はスキューTdckがクロックの半周期より大きい場合をそれぞれ示している。
【0072】まず、図6に示す動作を説明する。当初、モード切替え信号113によりテストモードに切り替わった直後には、スキャン信号線132,133,135,136には、通常動作時の出力が継続して出力されている。
【0073】次に、タイミングt311において、フリップフロップ101がスキャン信号線131の信号を、フリップフロップ102がスキャン信号線132の信号を取り込み、それぞれ、スキャン信号線132,133へ出力する。そして、タイミングt321においてフリップフロップ103がスキャン信号線134の信号を、フリップフロップ104がスキャン信号線135の信号を取り込み、それぞれ、スキャン信号線135,136へ出力する。さらに、タイミングt331において、フリップフロップ105がスキャン信号線133の信号を取り込み、スキャン信号線134へ出力する。
【0074】次に、タイミングt312において、フリップフロップ101がスキャン信号線131の信号を、フリップフロップ102がスキャン信号線132の信号を取り込み、それぞれ、スキャン信号線132,133へ出力する。そして、タイミングt322においてフリップフロップ103がスキャン信号線134の信号を、フリップフロップ104がスキャン信号線135の信号を取り込み、それぞれ、スキャン信号線135,136へ出力する。
【0075】以降、各クロックの立ち上がり、または、立ち下がり時に、前述の動作を繰り返すことにより、スキャンパス上で順次データが送られる。
【0076】ここで、フリップフロップ105が、第2クロックck12の立ち上がりに対し、前後半周期の間、前段のフリップフロップ104の出力を保持しているため、第2クロックck12が第1クロックck11に対して、半周期以下の遅れを生じている場合にも、タイミングt321およびt322において、フリップフロップ103が保持する値は、それぞれタイミングt310,t311においてフリップフロップ102が保持した値となり、正しいスキャンデータを保持することが可能となる。従って、スキャン信号線136には、各々のフリップフロップの状態が順次現れる。
【0077】次に図7における動作を説明する。当初、モード切替え信号113によりテストモードに切り替わった直後には、スキャン信号線132,133,135,136には、通常動作時の出力が継続して出力されている。
【0078】次に、タイミングt421においてフリップフロップ103がスキャン信号線134の信号を、フリップフロップ104がスキャン信号線135の信号を取り込み、それぞれ、スキャン信号線135,136へ出力する。そして、タイミングt411において、フリップフロップ101がスキャン信号線131の信号を、フリップフロップ102がスキャン信号線132の信号を取り込み、それぞれ、スキャン信号線132,133へ出力する。さらに、タイミングt431において、フリップフロップ105がスキャン信号線133の信号を取り込み、スキャン信号線134へ出力する。
【0079】次に、タイミングt422においてフリップフロップ103がスキャン信号線134の信号を、フリップフロップ104がスキャン信号線135の信号を取り込み、それぞれ、スキャン信号線135,136へ出力する。そして、タイミングt412において、フリップフロップ101がスキャン信号線131の信号を、フリップフロップ102がスキャン信号線132の信号を取り込み、それぞれ、スキャン信号線132,133へ出力する。さらに、タイミングt432において、フリップフロップ105がスキャン信号線133の信号を取り込み、スキャン信号線134へ出力する。
【0080】以降、各クロックの立ち上がり、または、立ち下がり時に、前述の動作を繰り返すことにより、スキャンパス上で順次データが送られる。
【0081】ここで、第2クロックck12が第1クロックck11に対して、半周期以上の遅れを生じている場合にも、テストモードへの切替が、第1クロックck11の立ち上がりから第2クロックck12の立ち上がりの間に行なわれれば、タイミングt421およびt422において、フリップフロップ103が保持する値は、それぞれタイミングt410,t411においてフリップフロップ102が保持した値となり、正しいスキャンデータを保持することが可能となる。従って、スキャン信号線136には、各々のフリップフロップの状態が順次現れる。
【0082】以上の結果、クロック信号線間にスキューが存在する場合においても一本のスキャンチェーン用いてスキャンすることが可能となる。
【0083】なお、本実施例では、逆位相のフリップフロップの制御を、後段のフリップフロップのクロックを用いて説明したが、前段のフリップフロップのクロックを用いても同等の効果が得られる。
【0084】また、本実施例では、一相クロックにより制御されるフリップフロップを用いて説明を行なったが、図8(a)〜(c)に示すような動作を行う三相クロック制御のフリップフロップを用いても同等の効果を得ることができる。ただし、図8(a)は通常動作時におけるクロック等の信号状態を、図8(b)はテストモード時における各信号状態を、図8(c)は回路モデルをそれぞれ示す。
【0085】また、本実施例ではテストモードへの切替をテストモード信号を用いて説明したが、本発明は、テストモードへの切替え方法によらず有効である。
【0086】また、本実施例におけるフリップフロップは、基本フリップフロップ回路とテスト回路とから構成されているものでもよく、その他同様の機能を有するものであれば、その回路構成に限定されるものではない。
【0087】また、本実施例では、単一系統クロックにより制御される図5のフリップフロップ間における各信号線の信号状態を示すタイミングチャートは省略するが、上記図6及び図7のタイミングチャートから明らかなように、スキューエラーを生じた箇所のスキューTdskがクロックの半周期より長い場合または短い場合のいずれに対しても、フリップフロップ間のクロックスキューに起因する誤動作を起こさずスキャンすることが可能となる。
【0088】なお、上記第1実施例では、クロック系統が異なることによりスキューが生じる場合とクロックの遅延によりスキューが生じる場合とを同時に処理しうるように配置配線する例について説明したが、いずれか一方のみを行ってもよいことはいうまでもない。
【0089】(第2実施例)次に、第2実施例について、図9〜図11に基づき説明する。図9は第2実施例に係るスキャンテスト回路の配置配線を行う配置配線装置の構成を示すブロック図である。同図に示すように、第2実施例に係る配置配線装置の構成は、上記第1実施例における配置配線装置の構成よりも簡素化されている。すなわち、中央処理部10には、異系統クロック検出部13及びスキューエラー検出部14が配置されておらず、さらに、逆位相フリップフロップ配置部15に代えて、逆位相フリップフロップ変更部17が配置されている。また、記憶部20には、クロックスキューエラー情報記憶部24が配設されていない。その他の構成は、図2に示す構成と同様である。
【0090】以下、第2実施例におけるスキャンセル回路の配置配線方法について、図10のフロ―チャ―トに基づき説明する。
【0091】まず、ステップST31〜ST33で、上記図3のフロ―チャ―トにおけるステップST11〜ST13と同様の制御を行った後、ステップST34で、逆位相フリップフロップ変更部17により逆位相フリップフロップへの置き換えセルの決定を行い、ステップST35で、逆位相フリップフロップの再配置処理を行う。このとき、スキャンチェーン上で連続するフリップフロップ中の一つおきのフリップフロップを、スキャンモード時のみ逆位相クロックで動作するフリップフロップに変更する。そして、ステップST36で、スキャン順序記憶部23からスキャン順序情報を取出し、その情報に基づいてスキャンチェーンの配線を行い、配置配線情報記憶部22の記憶内容を更新する。
【0092】図11は、上記配置配線処理によって構成されるスキャンテスト回路の例を示す。同図に示すように、クロックck11の正位相で動作するフリップフロップ101,103と、クロックck11の逆位相で動作するフリップフロップ102,103とを交互に接続したスキャンチェーン130を形成している。つまり、フリップフロップ101,103は通常動作時及びテスト動作時のいずれの場合もクロックの立上がりでデータを取り込み、フリップフロップ102,104は、通常動作時にはクロックの立上がりでデータを取り込み、テスト時にはクロックの立ち下がりでデータを取り込む。その他の構成は上記図4等の構成と同様である。
【0093】本実施例では、上記第1実施例における図6及び図7のタイミングチャートから明らかなように、すべてのフリップフロップ間におけるスキューによる誤動作を有効に防止することができ、その場合、スキュー箇所の検出等の作業を伴わないので、制御の簡素化を図ることができる。
【0094】(第3実施例)次に、第3実施例について、図12及び図13に基づき説明する。本実施例では、異系統クロックが存在するのではなく、共通の1つのクロックのみが存在することを前提としている。
【0095】図12は、第3実施例に係る1スキャンテスト回路の配置配線方法のフロ―チャ―トを示す。まず、ステップST41で、各セルの配置を行った後、ステップST42で、概略配線処理を行う。ここまでは、上記第1,第2実施例と同様である。次に、ステップST43で、クロックの遅延時間Dcの計算を行う。このとき、ステップST42のスキャン信号線以外の概略配線処理まで実行した後に、各フリップフロップのクロック入力端子へのクロック遅延時間を計算する。
【0096】次に、ステップST44で、スキャンフリップフロップの半順序の決定処理を以下の手順で行う。
【0097】スキャンフリップフロップの配線負荷容量が“0”の時のスキャン遅延をDs0としたとき、スキャンフリップフロップの全体集合をクロック発生源から各フリップフロップへのクロックの伝搬遅延値DRによって、以下のような部分集合Siに分ける。
【0098】Si={フリップフロップR|クロック発生源からフリップフロップRへのクロックの伝搬遅延DRがDs0*(i−1)<DR<Ds0*iを満足する。}
この時、任意の2個のフリップフロップRa,Rbは、それが含まれる部分集合Siのiの大から小へ向かう順序関係によって、上記任意の2個のフリップフロップRa,Rbが含まれる部分集合が異なる場合に限り順序関係を与えるとすると、全てのフリップフロップ間に、iの大小による半順序関係が定義される。そして、この半順序関係を満足するような全てのフリップフロップの全順序を求め(すなわち、全てのフリップフロップを一列に並べ)、その順列に従って数珠つなぎになるようにスキャン配線を行なうと、全てのフリップフロップは式(1)を満足し、スキャン回路は全て正常動作をすることになる。
【0099】尚、以上の議論で、Ds0の代わりに、Ds0より小さな任意の値を用いても同様のことが言える。たとえば、上記半順序関係として、クロックの遅延時間の逆順にフリップフロップを並べても良い。
【0100】次に、ステップST45で、スキャンチェーンの全順序の再決定処理を行う。このステップST45における処理は、ステップST44の半順序の決定処理で決定された半順序関係を満足しつつ、配線長が最小となる全順序の再決定を行なうものである。
【0101】以下、スキャンチェーンの全順序再決定処理について、図13を参照しながら説明する。同図において、200a〜200jはスキャンフリップフロップ、230a〜230kはスキャン信号線(スキャン概略配線)、280はスキャン入力端子、290はスキャン出力端子である。
【0102】ここで、上記上記ステップST44の制御により決定された半順序関係(Sn,…,S3 ,S2 ,S1 )において、部分集合Sn にはフリップフロップ200da,200d,200g,200jが含まれ、部分集合Sn-1 にはフリップフロップ200h,200bが含まれ、部分集合S2にはフリップフロップ200e,200iが含まれ、部分集合S1 にはフリップフロップ200c,200fが含まれているものとする(すなわち、n=4の場合である)。
【0103】まず、最上位に順序付けされているスキャンフリップフロップの集合(すなわちSn)を取り出し、これらのうちスキャン入力端子280に最も近いフリップフロップ200aにスキャン信号線230aを接続するように各フリップフロップの接続順序を再決定する。次に、フリップフロップ200aから最も近いフリップフロップ200dにスキャン信号線230bを接続するように接続関係を再決定する。この処理をSn内の全てのフリップフロップがつながれるまで行なう。図13の例では、フリップフロップ200a、200d、200g、200jの順に接続関係が再決定されることになる。
【0104】次に、フリップフロップの集合Sn-1 に対して、スキャン信号線の新たな始点をSn内のスキャン信号線最終点(すなわち、フリップフロップ200jのスキャン出力端子)として、集合Sn-1 に含まれるフリップフロップのうち新たな始点に最も近いものを順に接続するよう接続関係を再決定する。図13の例では、フリップフロップ200h、200bの順で接続されることになる。
【0105】以上の処理を集合Sn-1 〜S1 まで順に行ない、最後にスキャン信号線に接続されるスキャンフリップフロップ200cのスキャン出力端子からブロックのスキャン出力端子290を接続するように接続関係を再決定する。
【0106】これにより、各フリップフロップ200a〜200jの全順序の再決定処理を終了すると、ステップST46に進んで、スキャンチェーンの配線処理を行ない、これにより、スキャンチェーンの配置配線処理を終了する。
【0107】本第3実施例では、スキャンチェーンにおける半順序を決定する前に、クロックの遅延時間を考慮しているので、以下のような利点がある。
【0108】すなわち、上記第1実施例に示す方法は、図3のステップST12の配線処理において、クロックを、例えば「1991年 Proceeding of IEEE InternationalConference on Computer-Aided Design p336〜339 」に記載されているようなスキューを低減するアルゴリズムに基づいて配線された場合には有効であるが、クロックを他のネットと同様に配線した場合、クロックのスキューが多くなることが予想される。したがって、第1実施例の方法を用いた場合、条件によっては、逆位相のフリップフロップを多く挿入しなければならなくなるようなことが生じうる。それに対し、本第3実施例では、予めクロックの遅延時間を考慮して、式(1) を満足するように半順序関係を決定してからこの制約のもとに全順序関係を再決定するので、逆位相フリップフロップを挿入しなくても、単にスキャンチェーンの接続関係を適切に行うことで、クロックスキューに起因する誤動作を回避しうる利点がある。
【0109】なお、異系統クロックが存在し、上記第3実施例の制御に加えて、相異なるクロックにより制御される連続した2つのスキャンレジスタが存在する場合、2つのスキャンレジスタ間に逆位相フリップフロップを挿入するようにしてもよい。
【0110】(第4実施例)次に、第4実施例について、図14を参照しながら説明する。
【0111】図14は、第4実施例におけるスキャンテスト回路の配置配線方法を示すフロ―チャ―トである。まず、ステップST51〜53では、上記第3実施例におけるステップST41〜43の制御と同様の制御を行う。その際、ステップST53における遅延時間の計算処理では、スキャン遅延時間Dsと、クロック遅延時間Dcとの計算を行う。
【0112】次に、ステップST54で、スキャンチェーンの配置配線の改善処理を行う。すなわち、クロックのスキューがスキャン配線の遅延に比較して大きくなるスキャンレジスタセルのペアを求め、上記スキャンレジスタセルペア間のクロック配線を太くする、あるいはスキャン配線を抵抗値の高い配線に置き換えたり、遠回りをさせたりして遅延時間の大きいものに置き換える、等の処理をスキャンの誤動作が起きない条件(式(1) )を満足するまで順次繰り返す。または、スキャン配線を変更する代わりに、問題のあるスキャンレジスタペアの前段のほうのスキャンレジスタを遅延時間の遅いものに置き換えることを繰り返すことによって、スキャンの誤動作が起きない条件(式(1) )を満足する方法である。いずれの方法も、自動設計で全て行なえる。
【0113】最後に、ステップST55で、上記第3実施例と同様に、スキャンチェーンの配線処理を行なう。
【0114】第4実施例では、ステップST54におけるスキャン配置配線の改善処理を自動設計で全て行なえるので、設計工数の大幅な削減が期待できる。
【0115】(第5実施例)次に、第5実施例について、図15のフロ―チャ―トに基づき説明する。
【0116】上記第3実施例の方法は、クロックの遅延時間のバラツキが小さい場合には、有効である。しかし、クロックのバラツキが大きい場合、例えば特定の場所に配置されたスキャン対象フリップフロップのクロックの遅延時間が他のフリップフロップのクロックの遅延時間に比べて相当程度に大きい場合、全フリップフロップを上述の方法で順序付けることができない虞れが生じる。そこで、本第5実施例では、そのような箇所に上記第1実施例で延べた逆位相フリップフロップを挿入するようにする。
【0117】図15は、第5実施例に係るスキャンテスト回路の配置配線方法を示すフロ―チャ―トである。まず、ステップST61〜64では、上記第3実施例の図12に示すステップST41〜44と同様の処理を実行する。
【0118】次に、ステップST65で、スキャンフリップフロップの全順序付け及びエラーの検出処理を行う。その場合、全順序付けは第3実施例と同様に行うとともに、スキュー条件を満たさない箇所が発見された時には、エラー箇所をエラー箇所リストに記憶する。そして、ステップST66で、エラー箇所リストからエラー情報を順次取出し、エラーを起こしている2つのフリップフロップのいずれかの列の上、あるいはその間の列の上に、逆位相で動作するフリップフロップを追加配置する。さらに、ステップST65の処理で作成されたスキャン順序リストの所定の箇所に、追加したフリップフロップを追加挿入する。
【0119】その後、ステップST67で、スキャンチェーンの順序の再決定処理を行って、ステップST68で、スキャンチェーンの配線処理を行う。
【0120】したがって、第5実施例では、上記第3実施例の効果に加えて、ブロック内のクロックの遅延値に大きなバラツキがあっても誤動作しないスキャンチェーンを作成することができるという著効を発揮することができる。
【0121】また、本実施例におけるフリップフロップは、基本フリップフロップ回路とテスト回路とから構成されているものでもよく、その他同様の機能を有するものであれば、その回路構成に限定されるものではない。
【0122】
【発明の効果】以上説明したように、請求項1の発明によれば、スキャンテスト回路の配置配線方法として、スキャンレジスタを含む回路要素の配置及び概略配線を行った後、配置配線されたスキャンレジスタのスキャンモード時におけるクロックのスキューによる誤動作を回避するための処理を行うようにしたので、クロックスキューによるミスラッチを起こすことのないスキャンテスト回路を構築することができる。
【0123】請求項2の発明によれば、スキャンテスト回路の配置配線方法として、スキャンレジスタを含む回路要素の配置及び概略配線を行った後、概略配線された回路内におけるクロックのスキューが所定値以上になる箇所を検出し、クロックのスキューが所定値以上になる箇所について、クロックのスキューによるスキャンモード時の誤動作を回避するための回路の配置,配線を行うようにしたので、クロックスキューによる誤動作を確実に防止することができる。
【0124】請求項3の発明によれば、請求項2の発明において、スキャンレジスタとしてフリップフロップを配置し、配置配線情報に基づくフリップフロップのスキャンチェーン上での接続順序を仮に決定した後、クロックスキューが所定値より大きい2つのフリップフロップの組み合わせを抽出し、当該箇所に逆位相フリップフロップを追加配置するようにしたので、クロックスキューに起因する誤動作をより確実に防止することができる。
【0125】請求項4の発明によれば、請求項3の発明において、クロックスキューが所定値以上となる2つのフリップフロップの組合せを抽出する際に、所定の加算値が一方のフリップフロップの無負荷遅延値よりも大きくない場合に、そのフリップフロップ間をエラー箇所として検出するようにしたので、誤動作を生じる箇所が確実に検出されることになる。
【0126】請求項5の発明によれば、請求項1の発明において、クロックの系統が異なる2つのフリップフロップの間に逆位相フリップフロップを追加配置するようにしたので、異なるクロック信号線間のクロックの位相のずれがあっても、一本のスキャンチェーンにより、誤動作を生じることなくスキャンテストが可能なスキャンテスト回路を形成することができる。
【0127】請求項6の発明によれば、請求項1の発明において、スキャンチェーン上の一つおきのフリップフロップを逆位相フリップフロップに変更するようにしたので、スキューエラーを生じる箇所を検出する手間を要することなく、クロックスキューに起因する誤動作を未然に防止することができる。
【0128】請求項7の発明によれば、請求項1の発明において、各スキャンレジスタの遅延時間の相対関係によってスキャンレジスタ間の半順序関係を定義し、この定義の下で配置配線の評価値を最適化するよう全順序関係を求めるようにしたので、クロックスキューに起因する誤動作を回避しながら、スキャンチェーンの配線の簡素化を図ることができる。
【0129】請求項8の発明によれば、請求項7の発明に加えて、全順序に従って連続する2つのフリップフロップのクロックのスキューが所定値以上となる箇所には逆位相フリップフロップを追加配置するようにしたので、請求項7の発明では回避できない誤動作を確実に防止することができる。
【0130】請求項9の発明によれば、請求項7の発明に加えて、全順序に従って連続する2つのフリップフロップが異系統クロックにより制御される場合、両者の間に逆位相フリップフロップを追加配置するようにしたので、請求項7の発明では回避できない異系統クロックによる誤動作を確実に防止することができる。
【0131】請求項10の発明によれば、請求項1の発明において、クロックスキューを回避する処理を行う際に、クロックのスキューがスキャン配線の遅延時間に比較して大きくなるスキャンレジスタのペアを求め、スキャンレジスタペア間の配置配線を改善するようにしたので、スキャンテスト回路の設計工数の大幅な削減を図ることができる。
【0132】請求項11の発明によれば、請求項10の発明において、クロックスキューを回避する処理を行う際に、スキャンレジスタのペア間のクロック配線又はスキャンチェーンの経路を順次改善するようにしたので、すべての箇所におけるクロックスキューによる誤動作を確実に防止することができる。
【0133】請求項12の発明によれば、請求項10の発明において、クロックスキューを回避する処理を行う際に、スキャンレジスタのペアのうちいずれかのスキャンレジスタを遅延時間の異なるスキャンレジスタに置き換えるようにしたので、スキャンレジスタの追加による回路面積の増大を招くことなく、クロックスキューによる誤動作を防止することができる。
【0134】請求項13の発明によれば、スキャンテスト回路の配置配線装置として、回路要素の配置を行う配置設計手段と、各回路要素間の概略配線を行う配線設計手段と、フリップフロップの接続順序を仮に決定する接続順序仮決定手段と、2つのフリップフロップ間でクロックスキューが所定値以上になる箇所を検出するエラー箇所検出手段と、エラー箇所に逆位相フリップフロップを追加配置する追加配置手段と、接続順序の再決定を行う接続順序再決定手段と、スキャンチェーン配線手段とを設けたので、請求項3の発明の効果を発揮するスキャンテスト回路を形成するための配置配線装置を提供することができる。
【0135】請求項14の発明によれば、スキャンテスト回路の配置配線装置として、回路要素の配置を行う配置設計手段と、各回路要素間の概略配線を行う配線設計手段と、フリップフロップの接続順序を決定する接続順序決定手段と、スキャンチェーン上の一つおきのフリップフロップをスキャンモード時にクロックの逆位相で動作するフリップフロップに変更するフリップフロップ変更手段と、スキャンチェーンの配線を行うスキャンチェーン配線手段とを設けたので、請求項6の発明の効果を発揮するスキャンテスト回路を形成するための配置配線装置を提供する鋳込とができる。
【0136】請求項15の発明によれば、スキャンテスト回路を備えた半導体集積回路の構成として、逆位相フリップフロップと正位相フリップフロップとをスキャンチェーン上に交互に配置するようにしたので、請求項6の発明の効果を発揮することができる。




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013