JP2012003471A - Scan chain formation method, program and design support device - Google Patents

Scan chain formation method, program and design support device Download PDF

Info

Publication number
JP2012003471A
JP2012003471A JP2010137214A JP2010137214A JP2012003471A JP 2012003471 A JP2012003471 A JP 2012003471A JP 2010137214 A JP2010137214 A JP 2010137214A JP 2010137214 A JP2010137214 A JP 2010137214A JP 2012003471 A JP2012003471 A JP 2012003471A
Authority
JP
Japan
Prior art keywords
scan
data holding
holding circuit
ffs
calculating
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.)
Granted
Application number
JP2010137214A
Other languages
Japanese (ja)
Other versions
JP5447209B2 (en
Inventor
Shun Takamura
瞬 高村
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 JP2010137214A priority Critical patent/JP5447209B2/en
Publication of JP2012003471A publication Critical patent/JP2012003471A/en
Application granted granted Critical
Publication of JP5447209B2 publication Critical patent/JP5447209B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide a scan chain formation method for suppressing the increase of delay elements and the increase of test costs while solving a timing error.SOLUTION: A scan chain is formed so that wiring length between the scan terminals of each of a plurality of scans FF can be made the shortest. Afterwards, a coordinate set X3 in which any timing error is not generated with an object scan FF in which a timing error is generated among the plurality of scans FF as a center is calculated, and one scan FF is selected so that the order of connection of the scan chain before reorder processing can be held as much as possible from among the scans FF arranged in the coordinate set X3 (steps S17 to S19, and S23). Then, the order of connection is changed so that the selected scan FF can be connected to the object scan FF (step S20).

Description

本発明は、スキャンチェーン形成方法、プログラム及び設計支援装置に関するものである。   The present invention relates to a scan chain forming method, a program, and a design support apparatus.

従来、LSIのテスト容易化設計(Design For Testability:DFT)の一つとして、スキャンテスト法が知られている(例えば、特許文献1参照)。このスキャンテスト法では、論理回路中のフリップフロップ(FF)を外部から制御・観測するための経路(スキャンチェーン)が形成される。すなわち、論理回路中のFFがスキャンFFに置き換えられ、動作試験時には複数のスキャンFFが直列に接続されてスキャンチェーンが形成される。このスキャンチェーンの入力端子から試験信号を入力して順次この値をシフトすることによって、試験対象とする組み合わせ回路に所定の入力値を設定する。次に、設定された入力値によって得られた組み合わせ回路の出力値は再びスキャンチェーンによってシフトされて出力端子から出力される。そして、この出力された値を検証することで、試験対象の組み合わせ回路が正常に動作しているか否かを検証することができる。このようにして、複雑な回路で構成される集積回路の不良箇所を容易に特定することができる。   Conventionally, a scan test method is known as one of LSI design for testability (DFT) (see, for example, Patent Document 1). In this scan test method, a path (scan chain) for controlling and observing a flip-flop (FF) in a logic circuit from outside is formed. That is, the FFs in the logic circuit are replaced with scan FFs, and a plurality of scan FFs are connected in series during an operation test to form a scan chain. By inputting a test signal from the input terminal of the scan chain and sequentially shifting this value, a predetermined input value is set in the combinational circuit to be tested. Next, the output value of the combinational circuit obtained by the set input value is shifted again by the scan chain and output from the output terminal. Then, by verifying this output value, it is possible to verify whether or not the combinational circuit to be tested is operating normally. In this way, it is possible to easily identify a defective portion of an integrated circuit composed of complicated circuits.

特開2006−258694号公報JP 2006-258694 A

ところで、従来のスキャンチェーンは、スキャンFFの配置情報に基づいて各スキャンFFのスキャン端子間の配線長が最短となるように接続順序が決定されて形成される。但し、この場合には、スキャンFF間の信号伝搬時間が短すぎてホールドエラーが発生する場合があった。このようなホールドエラーは、スキャン端子間に遅延素子を挿入して信号伝搬を遅延させてホールド時間を確保することで改善することができる。しかし、この方法では、ホールドエラー数が増加するに連れて遅延素子数が増加し、回路の複雑化や消費電力の増大といった問題を招く。   By the way, the conventional scan chain is formed by determining the connection order based on the arrangement information of the scan FFs so that the wiring length between the scan terminals of each scan FF is the shortest. However, in this case, the signal propagation time between the scan FFs is too short and a hold error may occur. Such a hold error can be improved by inserting a delay element between the scan terminals to delay the signal propagation and secure a hold time. However, with this method, the number of delay elements increases as the number of hold errors increases, causing problems such as circuit complexity and increased power consumption.

また、各スキャンFFのスキャン端子間の配線長が一定の距離以上になれば、スキャンFF間の信号伝搬に長い時間を要するため、上記ホールドエラーは発生しない。しかし、スキャンFF間の信号伝搬時間が長くなりすぎると、セットアップエラーが発生する。このようなセットアップエラーは、各スキャンFFに入力されるクロック信号の周波数を低くすることで改善することができる。しかし、この方法では、試験時間が長くなり試験コストが増大するという問題がある。   In addition, if the wiring length between the scan terminals of each scan FF exceeds a certain distance, the signal propagation between the scan FFs takes a long time, so the hold error does not occur. However, if the signal propagation time between the scan FFs becomes too long, a setup error occurs. Such a setup error can be improved by lowering the frequency of the clock signal input to each scan FF. However, this method has a problem that the test time is increased and the test cost is increased.

本発明の一観点によれば、複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、を含む。   According to one aspect of the present invention, a calculation step of calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits, and the first step One data holding circuit is arranged so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest among the data holding circuits arranged in the range. A selection step of selecting, and a reordering step of changing a connection order so as to connect the selected data holding circuit and the first data holding circuit.

本発明の一観点によれば、タイミングエラーを解消しつつも、遅延素子の増加及び試験コストの増大を抑制することができるという効果を奏する。   According to one aspect of the present invention, it is possible to suppress an increase in delay elements and an increase in test cost while eliminating timing errors.

設計支援装置の概略構成図。The schematic block diagram of a design support apparatus. (a)、(b)リオーダー処理前後のスキャンチェーンを示す回路図。(A), (b) The circuit diagram which shows the scan chain before and behind a reorder process. スキャンチェーンのリオーダー処理を説明するためのフローチャート。6 is a flowchart for explaining scan chain reorder processing; スキャンチェーンのリオーダー処理を説明するためのフローチャート。6 is a flowchart for explaining scan chain reorder processing; スキャンチェーンのリオーダー処理を説明するためのフローチャート。6 is a flowchart for explaining scan chain reorder processing; (a)、(b)第1の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of a 1st application example. (a)、(b)第1の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of a 1st application example. (a)、(b)第2の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 2nd application example. (a)、(b)第2の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 2nd application example. 第2の適用例のリオーダー処理を説明するための説明図。Explanatory drawing for demonstrating the reorder process of a 2nd application example. (a)、(b)第3の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 3rd application example. (a)、(b)第3の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 3rd application example. (a)、(b)第3の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 3rd application example. (a)、(b)第3の適用例のリオーダー処理を説明するための説明図。(A), (b) Explanatory drawing for demonstrating the reorder process of the 3rd application example.

以下、一実施形態を図面に従って説明する。図1は、本実施形態のレイアウト設計装置の概略構成図である。
図1に示すように、設計支援装置10は、例えば一般的な設計支援装置(CAD:Computer Aided Design)である。この設計支援装置10は、中央処理装置(CPU)11と、メモリ12と、記憶装置13と、表示装置14と、入力装置15と、ドライブ装置16とを含む。これら各装置11,13,14,15,16及びメモリ12は、バス17を介して相互に接続されている。
Hereinafter, an embodiment will be described with reference to the drawings. FIG. 1 is a schematic configuration diagram of a layout design apparatus according to the present embodiment.
As shown in FIG. 1, the design support apparatus 10 is, for example, a general design support apparatus (CAD: Computer Aided Design). The design support apparatus 10 includes a central processing unit (CPU) 11, a memory 12, a storage device 13, a display device 14, an input device 15, and a drive device 16. These devices 11, 13, 14, 15 and 16 and the memory 12 are connected to each other via a bus 17.

CPU11は、メモリ12を利用してプログラムを実行し、スキャンチェーンを形成するのに必要な処理(スキャンチェーンのリオーダー処理等)を実現する。メモリ12には、スキャンチェーン形成の機能を提供するために必要なプログラムとデータが格納される。このメモリ12としては、通常、キャッシュ・メモリ、システム・メモリ及びディスプレイ・メモリ等を含む。   The CPU 11 executes a program using the memory 12 and realizes processing necessary for forming a scan chain (scan chain reorder processing and the like). The memory 12 stores programs and data necessary for providing a scan chain forming function. The memory 12 usually includes a cache memory, a system memory, a display memory, and the like.

表示装置14は、レイアウト表示、パラメータ入力画面等の表示に用いられる。この表示装置14としては、例えばCRT,LCD,PDP等(図示略)が用いられる。入力装置15は、ユーザからの要求や指示、パラメータの入力に用いられる。この入力装置15としては、例えばキーボード及びマウス装置等が用いられる。   The display device 14 is used for displaying a layout display, a parameter input screen, and the like. As the display device 14, for example, a CRT, LCD, PDP or the like (not shown) is used. The input device 15 is used to input a request or instruction from a user and parameters. As the input device 15, for example, a keyboard and a mouse device are used.

記憶装置13は、通常、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等を含む。この記憶装置13には、スキャンチェーンを形成するためのプログラム(以下、プログラム)及び各種のデータファイル(以下、ファイル)が格納される。CPU11は、入力装置15による指示に応答してプログラムや各種ファイルに格納されるデータを適宜メモリ12へ転送し、それを逐次実行する。なお、記憶装置13は、データベースとしても使用される。   The storage device 13 usually includes a magnetic disk device, an optical disk device, a magneto-optical disk device, and the like. The storage device 13 stores a program for forming a scan chain (hereinafter referred to as a program) and various data files (hereinafter referred to as files). In response to an instruction from the input device 15, the CPU 11 appropriately transfers data stored in a program or various files to the memory 12 and executes it sequentially. The storage device 13 is also used as a database.

CPU11が実行するプログラムは、記憶媒体18にて提供される。ドライブ装置16は、記憶媒体18を駆動し、その記憶内容にアクセスする。CPU11は、ドライブ装置16を介して記憶媒体18からプログラムを読み出し、それを記憶装置13にインストールする。   A program executed by the CPU 11 is provided on the storage medium 18. The drive device 16 drives the storage medium 18 and accesses the stored contents. The CPU 11 reads the program from the storage medium 18 via the drive device 16 and installs it in the storage device 13.

記憶媒体18としては、メモリカード、フレキシブルディスク、光ディスク(例えばCD−ROM,DVD−ROMなど)、光磁気ディスク(例えばMO,MDなど)等、任意のコンピュータ読取り可能な記憶媒体を使用することができる。この記憶媒体18に、上述のプログラムを格納しておき、必要に応じて、メモリ12にロードして使用することもできる。   As the storage medium 18, any computer-readable storage medium such as a memory card, a flexible disk, an optical disk (for example, CD-ROM, DVD-ROM, etc.), a magneto-optical disk (for example, MO, MD, etc.) may be used. it can. The above-mentioned program can be stored in the storage medium 18 and loaded into the memory 12 for use as necessary.

なお、記憶媒体18には、通信媒体を介してアップロード又はダウンロードされたプログラムを記録した媒体、ディスク装置を含む。さらに、コンピュータによって直接実行可能なプログラムを記録した記憶媒体だけでなく、一旦他の記憶媒体(ハードディスク等)にインストールすることによって実行可能となるようなプログラムを記録した記憶媒体や、暗号化されたり、圧縮されたりしたプログラムを記録した記憶媒体も含む。   The storage medium 18 includes a medium and a disk device that record a program uploaded or downloaded via a communication medium. Furthermore, not only a storage medium that records a program that can be directly executed by a computer, but also a storage medium that records a program that can be executed once installed on another storage medium (such as a hard disk), or is encrypted. In addition, a storage medium on which a compressed program is recorded is also included.

図2は、スキャンチェーンの一例を示すブロック図である。
図2(a)に示すスキャンチェーン上には、スキャンフリップフロップ(スキャンFF)1a〜1fが含まれる。これら各スキャンFF1a〜1fは、スキャンイン端子SI及びスキャンアウト端子SO(総称して「スキャン端子」ともいう。)を備えている。また、各スキャンFF1a〜1fは、動作試験時において、各スキャンFFのスキャンアウト端子SOがスキャン配線を通じて次段のスキャンFFのスキャンイン端子SIに接続され、多数のスキャンFFが直列に接続されている。具体的には、図2(a)に示すスキャンチェーンでは、多数のスキャンFF1a〜1fが、入力端子Tiから出力端子Toに向かってスキャンFF1a→1b→1c→1d→1e→1fの順に直列に接続されている。そして、動作試験時には、各スキャンFF1a〜1fは、クロック端子(図示略)に入力されるクロック信号に基づいて、スキャンイン端子SIに入力されるデータをラッチしてスキャンアウト端子SOから出力することにより、シフトレジスタとして動作する。
FIG. 2 is a block diagram illustrating an example of a scan chain.
On the scan chain shown in FIG. 2A, scan flip-flops (scan FFs) 1a to 1f are included. Each of the scan FFs 1a to 1f includes a scan-in terminal SI and a scan-out terminal SO (also collectively referred to as “scan terminals”). In the operation test, each scan FF 1a to 1f has a scan-out terminal SO of each scan FF connected to a scan-in terminal SI of the next-stage scan FF through a scan wiring, and a number of scan FFs connected in series. Yes. Specifically, in the scan chain shown in FIG. 2A, a large number of scan FFs 1a to 1f are serially arranged in the order of scan FFs 1a → 1b → 1c → 1d → 1e → 1f from the input terminal Ti to the output terminal To. It is connected. At the time of the operation test, each of the scan FFs 1a to 1f latches the data input to the scan-in terminal SI based on the clock signal input to the clock terminal (not shown) and outputs the data from the scan-out terminal SO. Therefore, it operates as a shift register.

なお、通常動作時には、各スキャンFF1a〜1fに設けられる切換機能により、スキャンイン端子SIとスキャンアウト端子SOとの接続が遮断され、各スキャンFF1a〜1fがそれぞれ他の論理回路と接続される。   During normal operation, the connection between the scan-in terminal SI and the scan-out terminal SO is cut off by the switching function provided in each of the scan FFs 1a to 1f, and each of the scan FFs 1a to 1f is connected to another logic circuit.

ここで、図2(b)は、図2(a)に示すスキャンチェーンにおけるスキャンFF1c,1d間で発生するホールドエラーを解消するために、スキャンチェーンのリオーダー処理(つなぎ順の変更処理)を行った後のスキャンチェーンを示すものである。すなわち、リオーダー処理後のスキャンチェーンでは、図2(a)に示すつなぎ順を、入力端子Tiから出力端子Toに向かってスキャンFF1a→1c→1b→1d→1e→1fとなるようにつなぎ替えてホールドエラーを解消している。   Here, FIG. 2B shows a scan chain reorder process (link order change process) in order to eliminate a hold error occurring between the scan FFs 1c and 1d in the scan chain shown in FIG. It shows the scan chain after it has been performed. That is, in the scan chain after the reorder processing, the connection order shown in FIG. 2A is changed so that the scan FFs 1a → 1c → 1b → 1d → 1e → 1f from the input terminal Ti to the output terminal To. To eliminate the hold error.

次に、このようなホールドエラーやセットアップエラーを解消しつつスキャンチェーンを形成する方法の概略を図3に従って説明する。
まず、CPU11は、論理回路の配置及び配線を実行し、論理回路中のスキャンFFの配置情報に基づいて各スキャンFF1a〜1fのスキャン端子間の配線長が最短となるようにスキャンチェーンを形成する(ステップS1)。なお、図2(a)に示すスキャンチェーンは、このステップS1で形成されたスキャンチェーンである。
Next, an outline of a method for forming a scan chain while eliminating such hold errors and setup errors will be described with reference to FIG.
First, the CPU 11 executes logic circuit arrangement and wiring, and forms a scan chain based on the arrangement information of the scan FFs in the logic circuit so that the wiring length between the scan terminals of the scan FFs 1a to 1f is the shortest. (Step S1). Note that the scan chain shown in FIG. 2A is the scan chain formed in step S1.

続いて、CPU11は、ステップS1で形成したスキャンチェーンに対してタイミング解析処理(例えば、Static timing analysis:STA)を実行する(ステップS2)。このタイミング解析処理でスキャンチェーン内にタイミングエラー(ホールドエラー又はセットアップエラー)が発生した場合には(ステップS3でYES)、CPU11は、スキャンチェーンのリオーダー処理を実行する(ステップS4)。   Subsequently, the CPU 11 executes timing analysis processing (for example, Static timing analysis: STA) on the scan chain formed in Step S1 (Step S2). If a timing error (hold error or setup error) occurs in the scan chain in this timing analysis process (YES in step S3), the CPU 11 executes a scan chain reorder process (step S4).

次に、CPU11は、リオーダー処理後のスキャンチェーンに対してタイミング解析処理を再度実行する(ステップS5)。このタイミング解析処理でスキャンチェーン内にタイミングエラーが発生した場合には(ステップS6でYES)、CPU11は、予め設定された所定回数だけリオーダー処理を実行したか否かを判定する(ステップS7)。このとき、リオーダー処理の回数が所定回数に達していない場合には(ステップS7でNO)、上記ステップS4〜S6の処理が繰り返し実行される。一方、リオーダー処理の回数が所定回数に達した場合には(ステップS7でYES)、スキャンチェーンのレイアウト処理を終了する。   Next, the CPU 11 executes the timing analysis process again on the scan chain after the reorder process (step S5). If a timing error occurs in the scan chain in this timing analysis process (YES in step S6), the CPU 11 determines whether or not the reorder process has been executed a predetermined number of times set in advance (step S7). . At this time, if the number of reorder processes has not reached the predetermined number (NO in step S7), the processes in steps S4 to S6 are repeatedly executed. On the other hand, when the number of reorder processes reaches a predetermined number (YES in step S7), the scan chain layout process is terminated.

なお、タイミング解析処理でスキャンチェーン内にタイミングエラーが発生していない場合には(ステップS3,S6でNO)、ホールドタイミング及びセットアップタイミングが正常なタイミングに収束したものとしてスキャンチェーンのレイアウト処理を終了する。   If no timing error has occurred in the scan chain in the timing analysis process (NO in steps S3 and S6), it is determined that the hold timing and the setup timing have converged to normal timing, and the scan chain layout process is terminated. To do.

次に、上記ステップS4におけるスキャンチェーンのリオーダー処理の具体的処理を図4及び図5に従って説明する。はじめに、図6及び図7に示す第1の適用例(図2(a)に示すスキャンチェーンから図2(b)に示すスキャンチェーンに変更する適用例)を併せ参照して説明する。   Next, a specific process of the scan chain reorder process in step S4 will be described with reference to FIGS. First, the first application example shown in FIGS. 6 and 7 (application example in which the scan chain shown in FIG. 2A is changed to the scan chain shown in FIG. 2B) will be described.

まず、CPU11は、リオーダー処理前のスキャンチェーン上の各スキャンFFに対して、入力側から出力側に向かって順番(昇順)に番号を付与する(ステップS11:番号付与工程)。具体的には、図6(a)に示すリオーダー処理前のスキャンチェーンでは、先の図2(a)と同様に、各スキャンFF1a〜1fが入力端子Tiから出力端子Toに向かって、スキャンFF1a→1b→1c→1d→1e→1fという順序で接続されている。このため、この場合には、スキャンFF1a,1b,1c,1d,1e,1fにそれぞれ「1」、「2」、「3」、「4」、「5」、「6」という番号が付与される(図6(a)の各スキャンFF内の数字参照)。なお、このリオーダー処理前のスキャンチェーンに対して付与された初期番号情報は、記憶装置13に記憶される。   First, the CPU 11 assigns numbers in order (ascending order) from the input side to the output side for each scan FF on the scan chain before the reorder process (step S11: number assignment step). Specifically, in the scan chain before the reorder process shown in FIG. 6A, each of the scan FFs 1a to 1f scans from the input terminal Ti toward the output terminal To, as in FIG. 2A. They are connected in the order of FF1a → 1b → 1c → 1d → 1e → 1f. Therefore, in this case, the scan FFs 1a, 1b, 1c, 1d, 1e, and 1f are assigned numbers “1”, “2”, “3”, “4”, “5”, and “6”, respectively. (See the numbers in each scan FF in FIG. 6A). The initial number information given to the scan chain before the reorder process is stored in the storage device 13.

次に、CPU11は、上記タイミング解析処理でタイミングエラーが発生したスキャンFFのうち任意の1つのスキャンFFを、リオーダー処理の対象となる対象スキャンFF(第1のデータ保持回路)として選択する(ステップS12)。本例では、CPU11は、出力側のスキャンFFからタイミングエラーが発生したか否かを判定し、はじめにタイミングエラーの発生したスキャンFFを選択する。具体的には、CPU11は、スキャンFF1f→1e→1d→1c→1b→1aの順番でタイミングエラーが発生したか否かを判定する。この場合には、スキャンFF1c,1d間でタイミングエラー(ホールドエラー)が発生しているため(図6(a)の破線矢印参照)、スキャンFF1dが対象スキャンFFとして選択されることになる。   Next, the CPU 11 selects any one scan FF among the scan FFs in which the timing error has occurred in the timing analysis process as a target scan FF (first data holding circuit) to be reordered (first data holding circuit). Step S12). In this example, the CPU 11 determines whether or not a timing error has occurred from the output-side scan FF, and first selects the scan FF in which the timing error has occurred. Specifically, the CPU 11 determines whether or not a timing error has occurred in the order of scan FFs 1f → 1e → 1d → 1c → 1b → 1a. In this case, since a timing error (hold error) has occurred between the scan FFs 1c and 1d (see the broken line arrow in FIG. 6A), the scan FF 1d is selected as the target scan FF.

続いて、CPU11は、対象スキャンFF1dを基点(基準)として、ホールドエラーが発生しない最小伝搬遅延時間Dminを算出する(ステップS13)。ここで、この最小伝搬遅延時間Dminは、スキャンFFのホールドタイムをThとし、クロックスキューをCsとすると、
Dmin=Th+Cs
によって算出することができる。すなわち、スキャンFF内部の信号遅延DinとスキャンFF間の配線遅延Dlineとの合計値が最小伝搬遅延時間Dmin(=Th+Cs)よりも小さいときにホールドエラーが発生する。次いで、CPU11は、算出した最小伝搬遅延時間DminをスキャンFF間距離(具体的には、スキャンFFのスキャン端子間距離)に換算する(ステップS14)。この換算したスキャンFF間距離よりも離れた座標に配置されたスキャンFFと対象スキャンFF1dとがスキャン配線で接続される際には、ホールドエラーが発生しない。すなわち、これらステップS13,S14において、対象スキャンFF1dを基点(中心)とした、ホールドエラーの発生しない座標の集合X1(第1の座標の集合)を得ることができる。
Subsequently, the CPU 11 calculates a minimum propagation delay time Dmin in which no hold error occurs with the target scan FF 1d as a base point (reference) (step S13). Here, the minimum propagation delay time Dmin is set such that the hold time of the scan FF is Th and the clock skew is Cs.
Dmin = Th + Cs
Can be calculated. That is, a hold error occurs when the total value of the signal delay Din inside the scan FF and the wiring delay Dline between the scan FFs is smaller than the minimum propagation delay time Dmin (= Th + Cs). Next, the CPU 11 converts the calculated minimum propagation delay time Dmin into a distance between scan FFs (specifically, a distance between scan terminals of the scan FFs) (step S14). A hold error does not occur when the scan FF and the target scan FF 1d, which are arranged at coordinates farther than the converted distance between the scan FFs, are connected by the scan wiring. That is, in these steps S13 and S14, it is possible to obtain a set of coordinates X1 (first set of coordinates) where the target scan FF1d is the base point (center) and no hold error occurs.

次に、CPU11は、対象スキャンFF1dを基点(基準)として、セットアップエラーが発生しない最大伝搬遅延時間Dmaxを算出する(ステップS14)。ここで、この最大伝搬遅延時間Dmaxは、クロック周期をTとし、スキャンFFのセットアップタイムをTsとすると、
Dmax=T−Ts+Cs
によって算出することができる。すなわち、スキャンFF内部の信号遅延DinとスキャンFF間の配線遅延Dlineとの合計値が最大伝搬遅延時間Dmaxよりも大きいときにセットアップエラーが発生する。続いて、CPU11は、算出した最大伝搬遅延時間DmaxをスキャンFF間距離(具体的には、スキャンFFのスキャン端子間距離)に換算する。この換算したスキャンFF間距離よりも近い座標に配置されたスキャンFFと対象スキャンFF1dとがスキャン配線で接続される際には、セットアップエラーが発生しない。すなわち、これらステップS15,S16において、対象スキャンFF1dを基点(中心)とした、セットアップエラーの発生しない座標の集合X2(第2の座標の集合)を得ることができる。これにより、ホールドエラーの発生しない座標の集合X1とセットアップエラーの発生しない座標の集合X2との双方に含まれる座標の集合X3、すなわち対象スキャンFF1dを中心とした、タイミングエラーの発生しない座標の集合X3を得ることができる。ここで、本例のようにスキャン配線の配線角が任意の角度を取る場合には、図6に示すように、座標集合X3が円形となる。なお、第2の適用例のようにスキャン配線の配線角が直角のみの場合には、図8に示すように、座標集合X3がひし形となる。このような座標集合X3内に配置されるスキャンFFが、対象スキャンFF1dにとってスキャン配線を接続した際にタイミングエラーが発生しないスキャンFFの選択候補となる。なお、スキャンFF間距離及び基点は、スキャンFFのスキャン端子やスキャンFFの配置座標から考える。また、上記最小伝搬遅延時間Dminや最大伝搬遅延時間Dmaxの算出に必要な各パラメータ(クロックスキューCs等)の数値は、設計に使用されるテクノロジやレイアウトなどによって変わる。
Next, the CPU 11 calculates a maximum propagation delay time Dmax in which no setup error occurs with the target scan FF 1d as a base point (reference) (step S14). Here, the maximum propagation delay time Dmax is T, where the clock period is T and the setup time of the scan FF is Ts.
Dmax = T−Ts + Cs
Can be calculated. That is, a setup error occurs when the total value of the signal delay Din inside the scan FF and the wiring delay Dline between the scan FFs is larger than the maximum propagation delay time Dmax. Subsequently, the CPU 11 converts the calculated maximum propagation delay time Dmax into a distance between the scan FFs (specifically, a distance between the scan terminals of the scan FFs). A setup error does not occur when the scan FF and the target scan FF 1d arranged at coordinates closer than the converted distance between the scan FFs are connected by the scan wiring. That is, in these steps S15 and S16, it is possible to obtain a set of coordinates X2 (second set of coordinates) in which the setup error does not occur with the target scan FF1d as the base point (center). As a result, a coordinate set X3 included in both the coordinate set X1 where no hold error occurs and the coordinate set X2 where no setup error occurs, that is, a set of coordinates where no timing error occurs centered on the target scan FF1d. X3 can be obtained. When the wiring angle of the scan wiring is an arbitrary angle as in this example, the coordinate set X3 is circular as shown in FIG. When the wiring angle of the scan wiring is only a right angle as in the second application example, the coordinate set X3 has a diamond shape as shown in FIG. The scan FF arranged in the coordinate set X3 is a scan FF selection candidate in which no timing error occurs when the scan wiring is connected to the target scan FF 1d. The distance between scan FFs and the base point are considered from the scan FF scan terminals and the scan FF arrangement coordinates. The numerical values of parameters (clock skew Cs and the like) necessary for calculating the minimum propagation delay time Dmin and the maximum propagation delay time Dmax vary depending on the technology used in the design, the layout, and the like.

次に、図5のステップS17において、CPU11は、対象スキャンFF1dのつなぎ先の選択候補となるスキャンFFが存在するか否かを判定する。具体的には、本例では上記ステップS12で出力側のスキャンFFからタイミングエラーが発生しているか否かを判定しているため、スキャンFF1dよりも入力側のスキャンFF1a〜1cの中に選択候補となるスキャンFFが存在するか否かを判定する。ここでは、図6(a)に示すように、座標集合X3(第1の範囲)内にスキャンFF1bが配置されているため、選択候補となるスキャンFFが存在すると判定される(ステップS17でYES)。続いて、本例では座標集合X3の適用によるリオーダー処理が出力側から実行されているため(ステップS18でYES)、ステップS19に移る。このステップS19において、CPU11は、選択候補のスキャンFFのうち、対象スキャンFF1dから入力側に向かって最大番号の選択候補スキャンFF(ここでは、スキャンFF1b)を選択する(選択工程)。ここで、対象スキャンFF1dから入力側に向かって最も近い番号の選択候補スキャンFFを選択するのは、上記ステップS1で形成されたスキャンチェーンのつなぎ順をできる限り保持した状態でリオーダー処理を実行するためである。   Next, in step S <b> 17 of FIG. 5, the CPU 11 determines whether there is a scan FF that is a selection candidate for the connection destination of the target scan FF 1 d. Specifically, in this example, since it is determined in step S12 whether or not a timing error has occurred from the output-side scan FF, selection candidates are selected from the scan-side FFs 1a to 1c that are more input than the scan FF 1d. It is determined whether or not there is a scan FF. Here, as shown in FIG. 6A, since the scan FF 1b is arranged in the coordinate set X3 (first range), it is determined that there is a scan FF as a selection candidate (YES in step S17). ). Subsequently, in this example, since the reorder process by applying the coordinate set X3 is executed from the output side (YES in step S18), the process proceeds to step S19. In this step S19, the CPU 11 selects the selection candidate scan FF (here, the scan FF 1b) with the largest number from the target scan FF 1d toward the input side among the scan FFs of selection candidates (selection step). Here, the selection candidate scan FF having the closest number from the target scan FF 1d toward the input side is selected by executing the reorder process in a state where the connection order of the scan chains formed in step S1 is maintained as much as possible. It is to do.

次に、CPU11は、対象スキャンFF1dとステップS19で選択した選択候補スキャンFF1bとを接続するようにスキャンFFのつなぎ順を変更する、つまり対象スキャンFF1dのリオーダー処理を実行する(ステップS20:リオーダー工程)。すなわち、CPU11は、図6(b)に示すように、スキャンFF1dのスキャンイン端子のつなぎ先を、スキャンFF1cからスキャンFF1bのスキャンアウト端子に変更する。これにより、出力側からスキャンFF1f→1e→1d→1bの順番でつなぎ順が確定される。さらに、CPU11は、上記つなぎ順の変更に伴って、スキャンFF1a〜1cのつなぎ順を、上記ステップS1で形成されたスキャンチェーンのつなぎ順をできる限り保持するように変更する(変更工程)。すなわち、CPU11は、スキャンFF1a,1b,1cのつなぎ順を、つなぎ順が未確定のスキャンFF1a,1cについて初期番号が入力側から小さい順となるように、つまりスキャンFF1a→1c→1bとなるように変更する。なお、図6(b)においては、上述のようにリオーダー処理に伴って接続が変更された配線、すなわちリオーダー候補の配線を破線矢印で示している。   Next, the CPU 11 changes the connection order of the scan FFs so as to connect the target scan FF 1d and the selection candidate scan FF 1b selected in step S19, that is, executes reorder processing of the target scan FF 1d (step S20: re-order). Order process). That is, as illustrated in FIG. 6B, the CPU 11 changes the connection destination of the scan-in terminal of the scan FF 1d from the scan FF 1c to the scan-out terminal of the scan FF 1b. As a result, the connection order is determined from the output side in the order of scan FFs 1f → 1e → 1d → 1b. Further, the CPU 11 changes the connection order of the scan FFs 1a to 1c so as to maintain the connection order of the scan chains formed in step S1 as much as possible in accordance with the change of the connection order (change process). That is, the CPU 11 sets the connection order of the scan FFs 1a, 1b, and 1c so that the initial numbers of the scan FFs 1a and 1c whose connection order is undetermined are in ascending order from the input side, that is, the scan FFs 1a → 1c → 1b. Change to In FIG. 6B, the wiring whose connection has been changed in accordance with the reorder process as described above, that is, the reorder candidate wiring is indicated by a broken line arrow.

次に、CPU11は、つなぎ順の変更された全てのスキャンFF(ここでは、スキャンFF1a〜1d)に座標集合X3を適用してリオーダー処理を実行した否かを判定する(ステップS21)。ここでは、スキャンFF1a〜1cについては、未だ座標集合X3が適用されていないため(ステップS21でNO)、ステップS11に戻り、それらスキャンFF1a〜1cに対して座標集合X3を適用する。すなわち、上記ステップS20でつなぎ順の変更された全てのスキャンFF1a〜1c(リオーダー候補の配線)についてタイミングエラーが発生しないことを確認する。   Next, the CPU 11 determines whether or not the reorder process has been executed by applying the coordinate set X3 to all the scan FFs (here, the scan FFs 1a to 1d) whose connection order has been changed (step S21). Here, since the coordinate set X3 is not yet applied to the scan FFs 1a to 1c (NO in step S21), the process returns to step S11, and the coordinate set X3 is applied to the scan FFs 1a to 1c. That is, it is confirmed that no timing error occurs for all the scan FFs 1a to 1c (reorder candidate wirings) whose connection order has been changed in step S20.

具体的には、CPU11は、ステップS11において、つなぎ順の変更された後のスキャンチェーンの各スキャンFFに対して、入力端子Ti側から出力端子To側に向かって順番に番号を付与する。ここでは、図7(a)に示すように、スキャンFF1a,1c,1b,1d,1e,1fにそれぞれ「1」、「2」、「3」、「4」、「5」、「6」という番号が付与される。なお、図7以降の図面におけるスキャンFF中に示された括弧内の数字は、上記ステップS1で形成されたスキャンチェーンに対して付与された初期番号である。   Specifically, in step S11, the CPU 11 assigns numbers in order from the input terminal Ti side to the output terminal To side for each scan FF of the scan chain after the connection order is changed. Here, as shown in FIG. 7A, the scan FFs 1a, 1c, 1b, 1d, 1e, and 1f are respectively “1”, “2”, “3”, “4”, “5”, “6”. The number is given. The numbers in parentheses shown in the scan FF in the drawings after FIG. 7 are initial numbers given to the scan chain formed in step S1.

次に、CPU11は、つなぎ順の変更されたスキャンFF1a〜1cのうち、最も出力側のスキャンFF1bを対象スキャンFF1bとして選択する(ステップS12)。その後、CPU11は、このスキャンFF1bを中心とした、タイミングエラーの発生しない座標集合X3を算出する(ステップS13〜S16:算出工程)。この座標集合X3内に配置されたスキャンFFのうち、対象スキャンFF1bよりも入力側のスキャンFF1a,1cが選択候補となる(ステップS17でYES)。CPU11は、これら選択候補スキャンFF1a,1cのうち最大番号の付与されたスキャンFF1cをつなぎ先のスキャンFFとして選択する(ステップS19)。このように、対象スキャンFF1bのリオーダー候補の配線のつなぎ先であるスキャンFF1cがつなぎ先のスキャンFFとして選択されたことにより、これらスキャンFF1b,1cではタイミングエラーが発生しないと判断することができる。そして、CPU11は、図7(a)に示すように、対象スキャンFF1bのスキャンイン端子のつなぎ先を、スキャンFF1cのスキャンアウト端子に確定する(ステップS20)。   Next, the CPU 11 selects the scan FF 1b on the most output side as the target scan FF 1b among the scan FFs 1a to 1c whose connection order has been changed (step S12). Thereafter, the CPU 11 calculates a coordinate set X3 around the scan FF 1b where no timing error occurs (steps S13 to S16: calculation step). Of the scan FFs arranged in the coordinate set X3, the scan FFs 1a and 1c on the input side of the target scan FF 1b are selection candidates (YES in step S17). The CPU 11 selects the scan FF 1c having the highest number among the selection candidate scan FFs 1a and 1c as a connection destination scan FF (step S19). As described above, since the scan FF 1c that is the connection destination of the reorder candidate wiring of the target scan FF 1b is selected as the connection scan FF, it can be determined that no timing error occurs in the scan FFs 1b and 1c. . Then, as shown in FIG. 7A, the CPU 11 determines the connection destination of the scan-in terminal of the target scan FF 1b as the scan-out terminal of the scan FF 1c (step S20).

同様に、スキャンFF1cについても座標集合X3の適用を実施し(ステップS11〜S20)、図7(b)に示すように、対象スキャンFF1cのスキャンイン端子のつなぎ先を、スキャンFF1aのスキャンアウト端子に確定する。   Similarly, the coordinate set X3 is also applied to the scan FF 1c (steps S11 to S20), and as shown in FIG. 7B, the connection destination of the scan-in terminal of the target scan FF 1c is connected to the scan-out terminal of the scan FF 1a. To confirm.

このように、つなぎ順の変更された全てのスキャンFFに対して座標集合X3の適用が終了すると(ステップS21でYES)、CPU11は、タイミングエラーの発生した全てのスキャンFFに対して座標集合X3の適用が終了したかを判定する(ステップS22)。ここでは、タイミングエラーの発生した全てのスキャンFF1c,1dに対して座標集合X3の適用が終了しているため(ステップS22でYES)、スキャンチェーンのリオーダー処理を終了する。   As described above, when the application of the coordinate set X3 is completed for all the scan FFs whose connection order has been changed (YES in step S21), the CPU 11 sets the coordinate set X3 for all the scan FFs in which the timing error has occurred. It is determined whether or not the application has been completed (step S22). Here, since the application of the coordinate set X3 has been completed for all the scan FFs 1c and 1d in which the timing error has occurred (YES in step S22), the scan chain reordering process is terminated.

このようなリオーダー処理によって、図6(a)に示すリオーダー処理前のつなぎ順(スキャンFF1a→1b→1c→1d→1e→1f)が、図7(b)に示すつなぎ順(スキャンFF1a→1c→1b→1d→1e→1f)に変更される。このとき、つなぎ順が変更されたスキャンFF1a,1b,1c,1dでは、タイミングエラー(ホールドエラー及びセットアップエラー)の発生しない座標集合X3を適用させてつなぎ先が確定されているため、タイミングエラーが解消されている。したがって、このリオーダー処理により、ホールドエラー及びセットアップエラーの解消されたスキャンチェーンが形成される。換言すると、スキャンFF間に遅延素子を挿入することなく、スキャンFF間のつなぎ順を変更するのみで、ホールドエラー及びセットアップエラーを解消することができる。   By such reorder processing, the connection order (scan FF1a → 1b → 1c → 1d → 1e → 1f) before the reorder process shown in FIG. 6A is changed to the connection order (scan FF1a shown in FIG. 7B). → 1c → 1b → 1d → 1e → 1f). At this time, in the scan FFs 1a, 1b, 1c, and 1d in which the connection order is changed, the connection destination is fixed by applying the coordinate set X3 in which the timing error (hold error and setup error) does not occur. It has been resolved. Therefore, a scan chain in which the hold error and the setup error are eliminated is formed by this reorder process. In other words, the hold error and the setup error can be eliminated only by changing the connection order between the scan FFs without inserting a delay element between the scan FFs.

なお、上記リオーダー処理後のスキャンチェーンに対するタイミング解析処理でタイミングエラーが発生する場合には、リオーダー処理回数が所定回数に達するまでは上述と同様のリオーダー処理が繰り返し実行される。   When a timing error occurs in the timing analysis process for the scan chain after the reorder process, the same reorder process as described above is repeatedly executed until the number of reorder processes reaches a predetermined number.

次に、第2の適用例におけるスキャンチェーンのリオーダー処理を図8〜図10に従って説明する。なお、図8(a)は、図3のステップS1で形成されたリオーダー処理前のスキャンチェーンを示している。このスキャンチェーンでは、各スキャンFF2a〜2gが入力端子Tiから出力端子Toに向かって、スキャンFF2a→2b→2c→2d→2e→2f→2gという順序で接続されており、スキャンFF2b,2c間でホールドエラーが発生している。   Next, the scan chain reordering process in the second application example will be described with reference to FIGS. FIG. 8A shows the scan chain before reorder processing formed in step S1 of FIG. In this scan chain, the scan FFs 2a to 2g are connected in the order of scan FFs 2a → 2b → 2c → 2d → 2e → 2f → 2g from the input terminal Ti to the output terminal To, and between the scan FFs 2b and 2c. A hold error has occurred.

まず、CPU11は、図8(a)に示すように、スキャンFF2a,2b,2c,2d,2e,2f,2gにそれぞれ「1」、「2」、「3」、「4」、「5」、「6」、「7」という初期番号を付与する(ステップS11)。なお、このリオーダー処理前のスキャンチェーンに対して付与された初期番号情報は、記憶装置13に記憶される。   First, as shown in FIG. 8A, the CPU 11 adds “1”, “2”, “3”, “4”, “5” to the scan FFs 2a, 2b, 2c, 2d, 2e, 2f, and 2g, respectively. , “6” and “7” are assigned initial numbers (step S11). The initial number information given to the scan chain before the reorder process is stored in the storage device 13.

次に、CPU11は、タイミングエラーが発生したスキャンFFのうち任意の1つのスキャンFFを対象スキャンFFとして選択する(ステップS12)。本例では、CPU11は、入力側のスキャンFFからタイミングエラーが発生しているか否かを判定し、はじめにタイミングエラーの発生しているスキャンFFを選択する。具体的には、CPU11は、スキャンFF2a→2b→2c→2d→2e→2f→2gの順番でタイミングエラーが発生しているか否かを判定する。この場合には、スキャンFF2b,2c間でホールドエラーが発生しているため(破線矢印参照)、スキャンFF2bが対象スキャンFFとして選択されることになる。   Next, the CPU 11 selects any one scan FF among the scan FFs in which the timing error has occurred as a target scan FF (step S12). In this example, the CPU 11 determines whether or not a timing error has occurred from the scan FF on the input side, and first selects a scan FF in which a timing error has occurred. Specifically, the CPU 11 determines whether or not a timing error has occurred in the order of scan FFs 2a → 2b → 2c → 2d → 2e → 2f → 2g. In this case, since a hold error has occurred between the scan FFs 2b and 2c (see the broken line arrow), the scan FF 2b is selected as the target scan FF.

続いて、対象スキャンFF2bを中心とした、ホールドエラーの発生しない座標集合X1とセットアップエラーの発生しない座標集合X2を算出することにより、タイミングエラーの発生しない座標集合X3を算出する(ステップS13〜S16)。   Subsequently, by calculating a coordinate set X1 that does not cause a hold error and a coordinate set X2 that does not cause a setup error centered on the target scan FF2b, a coordinate set X3 that does not cause a timing error is calculated (steps S13 to S16). ).

次に、CPU11は、対象スキャンFF2bのつなぎ先の選択候補となるスキャンFFが存在するか否かを判定する(ステップS17)。具体的には、本例では上記ステップS12で入力側のスキャンFFからタイミングエラーが発生しているか否かを判定しているため、スキャンFF2bよりも出力側のスキャンFF2c〜2gの中に選択候補スキャンFFが存在するか否かを判定する。ここでは、図8(a)に示すように、座標集合X3内にスキャンFF2fが配置されているため、選択候補となるスキャンFFが存在すると判定される(ステップS17でYES)。続いて、本例では座標集合X3の適用によるリオーダー処理が入力側から実行されているため(ステップS18でNO)、CPU11は、選択候補スキャンFFのうち、対象スキャンFF2bから出力側に向かって最小番号の選択候補スキャンFF(ここでは、スキャンFF2f)を選択する(ステップS23)。ここで、対象スキャンFF2bから出力側に向かって最も近い番号の選択候補スキャンFFを選択するのは、上記ステップS1で形成されたスキャンチェーンのつなぎ順をできる限り保持した状態でリオーダー処理を実行するためである。   Next, the CPU 11 determines whether or not there is a scan FF that is a candidate for selection of the connection destination of the target scan FF 2b (step S17). Specifically, in this example, since it is determined whether or not a timing error has occurred from the input-side scan FF in step S12, selection candidates are selected from the scan-side FFs 2c to 2g that are more output than the scan FF 2b. It is determined whether or not a scan FF exists. Here, as shown in FIG. 8A, since the scan FF 2f is arranged in the coordinate set X3, it is determined that there is a scan FF as a selection candidate (YES in step S17). Subsequently, in this example, since the reorder process by applying the coordinate set X3 is executed from the input side (NO in step S18), the CPU 11 moves from the target scan FF 2b to the output side among the selection candidate scan FFs. The selection candidate scan FF having the smallest number (here, scan FF 2f) is selected (step S23). Here, the selection candidate scan FF having the closest number from the target scan FF 2b toward the output side is selected by executing the reorder process while maintaining the connection order of the scan chains formed in step S1 as much as possible. It is to do.

次に、CPU11は、対象スキャンFF2bと上記ステップS19で選択した選択候補スキャンFF2fとを接続するように、スキャンFFのつなぎ順を変更する(ステップS20)。すなわち、CPU11は、図8(b)に示すように、スキャンFF2bのスキャンアウト端子のつなぎ先を、スキャンFF2cからスキャンFF2fのスキャンイン端子に変更する。この変更に伴って、スキャンFF2c〜2gのつなぎ順が、つなぎ順の未確定なスキャンFF2c〜2e,2gについて初期番号が入力側から小さい順となるように、つまりスキャン2f→2c→2d→2e→2gとなるように変更される(変更箇所は破線矢印参照)。なお、このときのつなぎ順の変更は、上記タイミング解析処理でタイミングエラーの発生が検出されていないスキャン配線(スキャンパス)は極力修正しないように実行される、とも言える。   Next, the CPU 11 changes the connection order of the scan FFs so as to connect the target scan FF 2b and the selection candidate scan FF 2f selected in step S19 (step S20). That is, as illustrated in FIG. 8B, the CPU 11 changes the connection destination of the scan-out terminal of the scan FF 2b from the scan FF 2c to the scan-in terminal of the scan FF 2f. Along with this change, the connection order of the scan FFs 2c to 2g is such that the initial numbers of the scan FFs 2c to 2e and 2g whose connection order is undetermined are in ascending order from the input side, that is, the scans 2f → 2c → 2d → 2e. → Changed to 2g (refer to broken line arrow for changed part). In addition, it can be said that the change of the connection order at this time is executed so that the scan wiring (scan path) in which the occurrence of the timing error is not detected in the timing analysis process is corrected as much as possible.

次に、CPU11は、つなぎ順の変更されたスキャンFF2fに対して座標集合X3を適用することにより、スキャンFF2f,2c間でタイミングエラーが発生しないことを確認する。具体的には、図8(b)に示すスキャンチェーン上のスキャンFF2a,2b,2f,2c,2d,2e,2gに対して、「1」、「2」、「3」、「4」、「5」、「6」、「7」という番号を付与する(図9(a)参照)。続いて、スキャンFF2fを中心とした座標集合X3を算出し、スキャンFF2fのつなぎ先であるスキャンFF2cが座標集合X3内に配置されているか否かを確認する(ステップS12〜S17)。しかし、ここでは、スキャンFF2cが座標集合X3内に配置されていないため、スキャンFF2f,2c間ではホールドエラーが発生すると判定される。そこで、CPU11は、座標集合X3内に配置された選択候補スキャンFF2eを、対象スキャンFF2fのつなぎ先のスキャンFFとして選択する。   Next, the CPU 11 confirms that no timing error occurs between the scan FFs 2f and 2c by applying the coordinate set X3 to the scan FF 2f whose connection order has been changed. Specifically, for the scan FFs 2a, 2b, 2f, 2c, 2d, 2e, and 2g on the scan chain shown in FIG. 8B, “1”, “2”, “3”, “4”, Numbers “5”, “6”, and “7” are assigned (see FIG. 9A). Subsequently, a coordinate set X3 centering on the scan FF 2f is calculated, and it is confirmed whether or not the scan FF 2c, which is a connection destination of the scan FF 2f, is arranged in the coordinate set X3 (steps S12 to S17). However, here, since the scan FF 2c is not arranged in the coordinate set X3, it is determined that a hold error occurs between the scan FFs 2f and 2c. Therefore, the CPU 11 selects the selection candidate scan FF2e arranged in the coordinate set X3 as the scan FF that is the connection destination of the target scan FF2f.

続いて、CPU11は、図9(a)に示すように、スキャンFF2fのスキャンアウト端子のつなぎ先を、スキャンFF2cからスキャンFF2eのスキャンイン端子に変更する。この変更に伴って、スキャンFF2c〜2e,2gのつなぎ順が、つなぎ順の未確定なスキャンFF2c,2d,2gについて初期番号が入力側から小さい順となるように、つまりスキャンFF2e→2c→2d→2gとなるように変更される(変更箇所は破線矢印参照)。   Subsequently, as illustrated in FIG. 9A, the CPU 11 changes the connection destination of the scan-out terminal of the scan FF 2f from the scan FF 2c to the scan-in terminal of the scan FF 2e. Along with this change, the connection order of the scan FFs 2c to 2e, 2g is such that the initial numbers of the scan FFs 2c, 2d, 2g whose connection order is undetermined are in ascending order from the input side, that is, the scan FFs 2e → 2c → 2d. → Changed to 2g (refer to broken line arrow for changed part).

次に、CPU11は、つなぎ順の変更されたスキャンFF2eに対して座標集合X3を適用することにより、スキャンFF2e,2c間でタイミングエラーが発生しないことを確認する(ステップS11〜S19)。ここでは、図9(b)に示すように、スキャンFF2eを中心とした座標集合X3内にスキャンFF2cが含まれるため、CPU11は、スキャンFF2eのスキャンアウト端子のつなぎ先を、スキャンFF2cのスキャンイン端子に確定する(ステップS20)。同様に、CPU11は、スキャンFF2dに対して座標集合X3を適用し、図10に示すように、スキャンFF2dのスキャンアウト端子のつなぎ先を、スキャンFF2gのスキャンイン端子に確定する(ステップS11〜S20)。なお、スキャンFF2c,2d間は、リオーダー処理前からつなぎ順が変更されておらず、リオーダー処理前からタイミングエラーが発生していないため、このスキャンFF2cに対して座標集合X3は適用されない。   Next, the CPU 11 confirms that a timing error does not occur between the scan FFs 2e and 2c by applying the coordinate set X3 to the scan FF 2e whose connection order has been changed (steps S11 to S19). Here, as shown in FIG. 9B, since the scan FF 2c is included in the coordinate set X3 centered on the scan FF 2e, the CPU 11 connects the scan-out terminal of the scan FF 2e to the scan-in of the scan FF 2c. The terminal is determined (step S20). Similarly, the CPU 11 applies the coordinate set X3 to the scan FF 2d and determines the connection destination of the scan-out terminal of the scan FF 2d as the scan-in terminal of the scan FF 2g as shown in FIG. 10 (steps S11 to S20). ). Note that the connection order between the scan FFs 2c and 2d has not been changed from before the reorder process, and a timing error has not occurred before the reorder process. Therefore, the coordinate set X3 is not applied to the scan FF 2c.

以上の処理により、つなぎ順が変更された全てのスキャンFF及びタイミングエラーの発生した全てのスキャンFFに対して座標集合X3の適用が終了するため(ステップS21,S22でYES)、CPU11はスキャンチェーンのリオーダー処理を終了する。   As a result of the above processing, the application of the coordinate set X3 is completed for all the scan FFs whose connection order has been changed and all the scan FFs in which the timing error has occurred (YES in steps S21 and S22). End the reorder process.

このようなリオーダー処理によって、スキャンFF2a→2b→2c→2d→2e→2f→2gのつなぎ順(図8(a)参照)が、スキャンFF2a→2b→2f→2e→2c→2d→2g(図10参照)となるように変更される。これにより、ホールドエラー及びセットアップエラーの解消されたスキャンチェーンが形成される。   By such reorder processing, the connecting order of the scan FFs 2a → 2b → 2c → 2d → 2e → 2f → 2g (see FIG. 8A) is changed to the scan FFs 2a → 2b → 2f → 2e → 2c → 2d → 2g ( (See FIG. 10). Thereby, a scan chain in which the hold error and the setup error are eliminated is formed.

最後に、第3の適用例におけるスキャンチェーンのリオーダー処理を図11〜図14に従って説明する。なお、図11(a)は、図3のステップS1で形成されたリオーダー処理前のスキャンチェーンを示している。このスキャンチェーンでは、各スキャンFF3a〜3hが入力端子Tiから出力端子Toに向かって、スキャンFF3a→3b→3c→3d→3e→3f→3g→3hという順序で接続されている。また、このスキャンチェーンでは、スキャンFF3c,3d間及びスキャンFF3f,3g間でホールドエラーが発生している(破線矢印参照)。   Finally, the scan chain reordering process in the third application example will be described with reference to FIGS. FIG. 11A shows the scan chain before reorder processing formed in step S1 of FIG. In this scan chain, the scan FFs 3a to 3h are connected in the order of the scan FFs 3a → 3b → 3c → 3d → 3e → 3f → 3g → 3h from the input terminal Ti to the output terminal To. Further, in this scan chain, a hold error has occurred between the scan FFs 3c and 3d and between the scan FFs 3f and 3g (see broken line arrows).

まず、CPU11は、図11(a)に示すように、スキャンFF3a,3b,3c,3d,3e,3f,3g,3hにそれぞれ「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」という初期番号を付与する(ステップS11)。なお、このリオーダー処理前のスキャンチェーンに対して付与された初期番号情報は、記憶装置13に記憶される。   First, as shown in FIG. 11A, the CPU 11 adds “1”, “2”, “3”, “4”, “4” to the scan FFs 3a, 3b, 3c, 3d, 3e, 3f, 3g, 3h, respectively. Initial numbers “5”, “6”, “7”, and “8” are assigned (step S11). The initial number information given to the scan chain before the reorder process is stored in the storage device 13.

次に、CPU11は、第1の適用例と同様に、出力側のスキャンFFから座標集合X3の適用によるリオーダー処理を実行する。具体的には、CPU11は、スキャンFF3h→3g→3f→3e→3d→3c→3b→3aの順番でタイミングエラーが発生しているか否かを判定する。この場合には、スキャンFF3f,3g間でホールドエラーが発生しているため(破線矢印参照)、CPU11は、スキャンFF3gを対象スキャンFFとして選択する(ステップS12)。   Next, as in the first application example, the CPU 11 executes reorder processing by applying the coordinate set X3 from the output-side scan FF. Specifically, the CPU 11 determines whether or not a timing error has occurred in the order of scan FFs 3h → 3g → 3f → 3e → 3d → 3c → 3b → 3a. In this case, since a hold error has occurred between the scan FFs 3f and 3g (see the broken line arrow), the CPU 11 selects the scan FF 3g as the target scan FF (step S12).

続いて、対象スキャンFF3gを中心とした、ホールドエラーの発生しない座標集合X1とセットアップエラーの発生しない座標集合X2を算出することにより、タイミングエラーの発生しない座標集合X3を算出する(ステップS13〜S16)。   Subsequently, by calculating a coordinate set X1 that does not cause a hold error and a coordinate set X2 that does not cause a setup error centered on the target scan FF 3g, a coordinate set X3 that does not cause a timing error is calculated (steps S13 to S16). ).

次に、図11(a)示すように、対象スキャンFF3gよりも入力側のスキャンFF3d,3eが座標集合X3内に配置されているため、選択候補スキャンFFが存在すると判定される(ステップS17でYES)。続いて、本例では座標集合X3の適用が出力側から実行されているため(ステップS18でYES)、選択候補のスキャンFF3d(番号:4)とスキャンFF3e(番号:5)のうち最大番号の選択候補スキャンFF3eを選択する(ステップS23)。   Next, as shown in FIG. 11A, since the scan FFs 3d and 3e on the input side with respect to the target scan FF 3g are arranged in the coordinate set X3, it is determined that there is a selection candidate scan FF (in step S17). YES) Subsequently, since the application of the coordinate set X3 is executed from the output side in this example (YES in step S18), the largest number of the selection candidate scan FF3d (number: 4) and scan FF3e (number: 5) is selected. A selection candidate scan FF3e is selected (step S23).

次いで、CPU11は、図11(b)に示すように、対象スキャンFF3gのスキャンイン端子のつなぎ先を、スキャンFF3fからスキャン3eのスキャンアウト端子に変更する。この変更に伴って、スキャンFF3d〜3gのつなぎ順が、つなぎ順の未確定なスキャンFF3d,3fについて初期番号が入力側から小さい順となるように、つまりスキャンFF3d→3f→3e→3gとなるように変更される(破線矢印参照)。   Next, as illustrated in FIG. 11B, the CPU 11 changes the connection destination of the scan-in terminal of the target scan FF 3 g from the scan FF 3 f to the scan-out terminal of the scan 3 e. Along with this change, the connection order of the scan FFs 3d to 3g is set so that the initial numbers of the scan FFs 3d and 3f whose connection order is undefined are in ascending order from the input side, that is, the scan FFs 3d → 3f → 3e → 3g. (See the dashed arrow).

次に、CPU11は、つなぎ順の変更されたスキャンFF3eに対して座標集合X3を適用することにより、スキャンFF3e,3f間でタイミングエラーが発生しないことを確認する(ステップS11〜S19)。ここでは、図12(a)に示すように、スキャンFF3eを中心とした座標集合X3内にスキャンFF3fが含まれるため、スキャンFF3eのスキャンイン端子のつなぎ先が、スキャンFF3fのスキャンアウト端子に確定される(ステップS20)。同様に、スキャンFF3fに対して座標集合X3が適用され、図12(b)に示されるように、スキャンFF3fのスキャンイン端子のつなぎ先が、スキャンFF3dのスキャンアウト端子に確定される(ステップS11〜S20)。   Next, the CPU 11 confirms that a timing error does not occur between the scan FFs 3e and 3f by applying the coordinate set X3 to the scan FF 3e whose connection order has been changed (steps S11 to S19). Here, as shown in FIG. 12A, since the scan FF 3f is included in the coordinate set X3 centered on the scan FF 3e, the connection destination of the scan-in terminal of the scan FF 3e is determined as the scan-out terminal of the scan FF 3f. (Step S20). Similarly, the coordinate set X3 is applied to the scan FF 3f, and as shown in FIG. 12B, the connection destination of the scan-in terminal of the scan FF 3f is determined as the scan-out terminal of the scan FF 3d (step S11). ~ S20).

このような処理により、つなぎ順の変更された全てのスキャンFF3e,3fに対して座標集合X3の適用が終了する(ステップS21でYES)。但し、上述したように、本例のスキャンチェーンでは、スキャンFF3c,3d間でもタイミングエラーが発生しているため(ステップS22でNO)、CPU11は、ステップS11に戻ってスキャンFF3c,3d間のリオーダー処理を実行する。   By such processing, application of the coordinate set X3 is completed for all the scan FFs 3e and 3f whose connection order has been changed (YES in step S21). However, as described above, in the scan chain of this example, a timing error also occurs between the scan FFs 3c and 3d (NO in step S22). Therefore, the CPU 11 returns to step S11 and returns to the scan FFs 3c and 3d. Execute order processing.

まず、CPU11は、図13(a)に示すように、スキャンFF3a,3b,3c,3d,3f,3e,3g,3hにそれぞれ「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」という番号を付与する(ステップS11)。   First, as shown in FIG. 13A, the CPU 11 adds “1”, “2”, “3”, “4”, “4” to the scan FFs 3a, 3b, 3c, 3d, 3f, 3e, 3g, and 3h, respectively. Numbers “5”, “6”, “7”, and “8” are assigned (step S11).

次に、スキャンFF3c,3d間でタイミングエラーが発生しているため(破線矢印参照)、出力側のスキャンFF3dが対象スキャンFFとして選択される(ステップS12)。続いて、CPU11は、対象スキャンFF3dを中心とした座標集合X3を算出する(ステップS13〜S16)。   Next, since a timing error has occurred between the scan FFs 3c and 3d (see the broken line arrow), the output-side scan FF 3d is selected as the target scan FF (step S12). Subsequently, the CPU 11 calculates a coordinate set X3 centered on the target scan FF 3d (steps S13 to S16).

次に、CPU11は、対象スキャンFF3dのつなぎ先の選択候補となるスキャンFFが存在するか否かを判定する(ステップS17)。このとき、スキャンFF3dよりも入力側のスキャンFF3a〜3cの中で座標集合X3内に配置されているスキャンFFが存在しないため、選択候補となるスキャンFFが存在しないと判定される(ステップS17でNO)。すると、図5に示すステップS24において、CPU11は、スキャンFF3dよりも入力側のスキャンFF3a〜3cの中で座標集合X1の境界線に最も近いスキャンFF(ここでは、スキャンFF3b)をつなぎ先のスキャンFFに選択する。より具体的には、CPU11は、スキャンFF3dよりも入力側のスキャンFF3a〜3cの中で座標集合X1の境界線に最も近く、且つスキャン配線のつなぎ替えが行われていないスキャンFFを選択する。なお、第2の適用例のように入力側のスキャンFFから座標集合X3を適用する場合には、対象スキャンFFよりも出力側のスキャンFFの中で座標集合X1の境界線に最も近く、且つスキャン配線のつなぎ替えが行われていないスキャンFFが選択される。   Next, the CPU 11 determines whether or not there is a scan FF that is a candidate for selection of the connection destination of the target scan FF 3d (step S17). At this time, since there is no scan FF arranged in the coordinate set X3 among the scan FFs 3a to 3c on the input side from the scan FF 3d, it is determined that there is no scan FF as a selection candidate (in step S17). NO). Then, in step S24 shown in FIG. 5, the CPU 11 connects the scan FF (here, the scan FF 3b) closest to the boundary of the coordinate set X1 among the scan FFs 3a to 3c on the input side from the scan FF 3d. Select FF. More specifically, the CPU 11 selects the scan FF that is closest to the boundary line of the coordinate set X1 and has not been connected to the scan wiring among the scan FFs 3a to 3c on the input side from the scan FF 3d. When the coordinate set X3 is applied from the input-side scan FF as in the second application example, the output-side scan FF is closest to the boundary line of the coordinate set X1 than the target scan FF, and A scan FF in which scan wire reconnection is not performed is selected.

続いて、CPU11は、図13(b)に示すように、対象スキャンFF3dのスキャンイン端子のつなぎ先を、スキャンFF3cからスキャンFF3bのスキャンアウト端子に変更する(ステップS20)。この変更に伴って、スキャンFF3a〜3dのつなぎ順が、つなぎ順の未確定なスキャンFF3a,3cについて初期番号が入力側から小さい順となるように、つまりスキャンFF3a→3c→3b→3dとなるように変更される(破線矢印参照)。   Subsequently, as illustrated in FIG. 13B, the CPU 11 changes the connection destination of the scan-in terminal of the target scan FF 3d from the scan FF 3c to the scan-out terminal of the scan FF 3b (step S20). Along with this change, the connection order of the scan FFs 3a to 3d is such that the initial numbers of the scan FFs 3a and 3c whose connection order is undefined are in ascending order from the input side, that is, the scan FFs 3a → 3c → 3b → 3d. (See the dashed arrow).

次に、CPU11は、つなぎ順の変更されたスキャンFF3bに対して座標集合X3を適用することにより、スキャンFF3b,3c間でタイミングエラーが発生しないことを確認する(ステップS11〜S19)。ここでは、図14(a)に示すように、対象スキャンFF3bを中心とした座標集合X3内にスキャンFF3cが含まれるため、スキャンFF3bのスキャンイン端子のつなぎ先が、スキャンFF3cのスキャンアウト端子に確定される(ステップS20)。同様に、スキャンFF3cに対して座標集合X3が適用され、図14(b)に示されるように、スキャンFF3cのスキャンイン端子のつなぎ先が、スキャンFF3aのスキャンアウト端子に確定される(ステップS11〜S20)。   Next, the CPU 11 confirms that a timing error does not occur between the scan FFs 3b and 3c by applying the coordinate set X3 to the scan FF 3b whose connection order has been changed (steps S11 to S19). Here, as shown in FIG. 14A, since the scan FF 3c is included in the coordinate set X3 centered on the target scan FF 3b, the connection destination of the scan-in terminal of the scan FF 3b becomes the scan-out terminal of the scan FF 3c. Confirmed (step S20). Similarly, the coordinate set X3 is applied to the scan FF 3c, and as shown in FIG. 14B, the connection destination of the scan-in terminal of the scan FF 3c is determined as the scan-out terminal of the scan FF 3a (step S11). ~ S20).

以上の処理により、つなぎ順が変更された全てのスキャンFF及びタイミングエラーの発生した全てのスキャンFFに対して座標集合X3の適用が終了するため(ステップS21,S22でYES)、スキャンチェーンのリオーダー処理を終了する。   As a result of the above processing, the application of the coordinate set X3 is completed for all the scan FFs whose connection order has been changed and all the scan FFs in which the timing error has occurred (YES in steps S21 and S22). End the order process.

このようなリオーダー処理によって、スキャンFF3a→3b→3c→3d→3e→3f→3g→3hのつなぎ順(図11(a)参照)が、スキャンFF3a→3c→3b→3d→3f→3e→3g→3hのつなぎ順(図14(b)参照)に変更される。このリオーダー処理後のスキャンチェーンに対するタイミング解析処理(図3のステップS5)でタイミングエラーが発生する場合(例えば、上記スキャンFF3b,3d間でタイミングエラーが発生する場合)には、リオーダー処理回数が所定回数に達するまで上述と同様のリオーダー処理が繰り返し実行される。なお、最小伝搬遅延時間Dminを算出する際にマージンを設定している場合には、スキャンFF3dを中心とした座標集合X3内にスキャンFF3bが配置されていなくとも、タイミング解析処理でタイミングエラーが発生しない場合もある。   By such reorder processing, the connecting order of the scan FFs 3a → 3b → 3c → 3d → 3e → 3f → 3g → 3h (see FIG. 11A) is changed to the scan FFs 3a → 3c → 3b → 3d → 3f → 3e → The connection order is changed from 3g to 3h (see FIG. 14B). When a timing error occurs in the timing analysis process (step S5 in FIG. 3) for the scan chain after the reorder process (for example, when a timing error occurs between the scan FFs 3b and 3d), the number of reorder processes The reorder process similar to that described above is repeatedly executed until the number reaches a predetermined number. When a margin is set when calculating the minimum propagation delay time Dmin, a timing error occurs in the timing analysis process even if the scan FF 3b is not arranged in the coordinate set X3 centered on the scan FF 3d. Sometimes not.

以上説明した本実施形態によれば、以下の効果を奏することができる。
(1)タイミングエラーが発生した対象スキャンFFを中心とした、タイミングエラーの発生しない座標集合X3内に配置されたスキャンFFの中から、リオーダー処理前のスキャンチェーンのつなぎ順を極力保持するように1つのスキャンFFを選択する。そして、その選択したスキャンFFと対象スキャンFFを接続するようにつなぎ順を変更するようにした。これにより、タイミングエラーの発生しない位置に配置されたスキャンFFと対象スキャンFFが接続されるため、対象スキャンFFにおけるタイミングエラーを解消することができる。すなわち、スキャンFF間に遅延素子を挿入することなく、スキャンFF間のつなぎ順を変更するのみでホールドエラーの解消あるいはエラー値の縮小を図ることができる。このとき、ホールドエラーのみならず、セットアップエラーも発生しない位置に配置されたスキャンFFがつなぎ先として選択されるため、スキャンFF間のつなぎ順を変更するのみでセットアップエラーも解消することができる。このため、各スキャンFFに入力されるクロック信号の周波数を低くする必要がなく、試験時間及び試験コストの増大を抑制することができる。
According to this embodiment described above, the following effects can be obtained.
(1) From the scan FFs arranged in the coordinate set X3 where the timing error does not occur, centering on the target scan FF in which the timing error has occurred, the connecting order of the scan chains before the reorder processing is maintained as much as possible. One scan FF is selected. Then, the connection order is changed so that the selected scan FF and the target scan FF are connected. Thereby, since the scan FF and the target scan FF arranged at a position where the timing error does not occur are connected, the timing error in the target scan FF can be eliminated. In other words, it is possible to eliminate the hold error or reduce the error value only by changing the connection order between the scan FFs without inserting a delay element between the scan FFs. At this time, the scan FFs arranged at positions where not only the hold error but also the setup error does not occur are selected as the connection destinations. Therefore, the setup error can be solved only by changing the connection order between the scan FFs. For this reason, it is not necessary to lower the frequency of the clock signal input to each scan FF, and the increase in test time and test cost can be suppressed.

(2)さらに、対象スキャンFFのつなぎ先を、各スキャンFFのスキャン端子間の配線長が最短となるように形成されたリオーダー処理前のスキャンチェーンのつなぎ順を極力保持するように選択するようにした。これにより、つなぎ順の変更処理が進んだ際に、対象スキャンFFから離れた位置(具体的には、対象スキャンFFを中心とした座標の集合X2よりも離れた位置)に配置されたスキャンFFしかつなぎ先として残らない、という状況を回避することができる。したがって、リオーダー処理後のスキャンチェーンでセットアップエラーが発生することを好適に抑制することができる。   (2) Further, the connection destinations of the target scan FFs are selected so that the connection order of the scan chains before the reorder process formed so that the wiring length between the scan terminals of each scan FF is the shortest is maintained as much as possible. I did it. As a result, when the connection order changing process proceeds, the scan FF arranged at a position away from the target scan FF (specifically, a position away from the coordinate set X2 centered on the target scan FF). However, it is possible to avoid the situation where it does not remain as a tip. Therefore, it is possible to suitably suppress the occurrence of a setup error in the scan chain after the reorder process.

(3)第1及び第3の適用例では、出力側のスキャンFFから座標集合X3の適用によるリオーダー処理を実行するようにした。これにより、ホールドエラーを入力側のスキャンFFに送ることができる。このため、入力端子Tiから入力される試験信号のタイミング調整によって上記ホールドエラーを解消することもできる。   (3) In the first and third application examples, the reorder process is executed by applying the coordinate set X3 from the scan FF on the output side. As a result, a hold error can be sent to the scan FF on the input side. For this reason, the hold error can be eliminated by adjusting the timing of the test signal input from the input terminal Ti.

(他の実施形態)
なお、上記実施形態は、これを適宜変更した以下の態様にて実施することもできる。
・上記実施形態におけるステップS7を省略してもよい。この場合には、例えば1回のみリオーダー処理(ステップS4)を実行するようにしてもよい。
(Other embodiments)
In addition, the said embodiment can also be implemented in the following aspects which changed this suitably.
-Step S7 in the above embodiment may be omitted. In this case, for example, the reorder process (step S4) may be executed only once.

・上記実施形態におけるステップS24を省略してもよい。この場合には、例えばステップS17において選択候補となるスキャンFFが存在しないときに、つなぎ順を変更せずに以降の処理を実行するようにしてもよい。   -Step S24 in the above embodiment may be omitted. In this case, for example, when there is no scan FF as a selection candidate in step S17, the subsequent processing may be executed without changing the connection order.

・上記実施形態のステップS11において、スキャンチェーン上の各スキャンFFに対して、入力側から出力側に向かって降順に番号を付与するようにしてもよい。
・上記実施形態において、最小伝搬遅延時間Dminや最大伝搬遅延時間Dmaxを算出する際にマージンを設定するようにしてもよい。
In step S11 of the above embodiment, numbers may be assigned to the scan FFs on the scan chain in descending order from the input side to the output side.
In the above embodiment, a margin may be set when calculating the minimum propagation delay time Dmin and the maximum propagation delay time Dmax.

・上記実施形態において、最小伝搬遅延時間Dminや最大伝搬遅延時間DmaxをスキャンFF間距離に換算せずに、これら各遅延時間Dmin,Dmaxをそのまま選択候補スキャンFFを探索するのに利用してもよい。すなわち、最小伝搬遅延時間Dmin及び最大伝搬遅延時間Dmaxから、対象スキャンFFを中心とした、タイミングエラーの発生しない第1の範囲を算出するようにしてもよい。   In the above embodiment, the minimum propagation delay time Dmin and the maximum propagation delay time Dmax are not converted into the distance between the scan FFs, and these delay times Dmin and Dmax can be used as they are for searching the selection candidate scan FF. Good. That is, a first range in which no timing error occurs centering on the target scan FF may be calculated from the minimum propagation delay time Dmin and the maximum propagation delay time Dmax.

・上記実施形態において、スキャンチェーンのリオーダー処理を実行した後のタイミング解析処理でタイミングエラーが残っている場合に、そのタイミングエラーの発生しているスキャンFF間に遅延素子を挿入するようにしてもよい。これにより、ホールドエラーを解消するために挿入する遅延素子の数を削減しながら、ホールドエラーを解消することができる。   In the above embodiment, when a timing error remains in the timing analysis process after executing the scan chain reorder process, a delay element is inserted between the scan FFs in which the timing error has occurred. Also good. Thereby, it is possible to eliminate the hold error while reducing the number of delay elements to be inserted in order to eliminate the hold error.

・上記実施形態において、フリップフロップ以外のデータ保持回路でスキャンチェーンを形成する場合にも応用可能である。
上記各実施形態に関し、以下の付記を開示する。
In the above embodiment, the present invention can be applied to the case where a scan chain is formed by a data holding circuit other than a flip-flop.
The following notes are disclosed regarding the above embodiments.

(付記1)
設計支援装置の中央処理装置にて実行されるスキャンチェーン形成方法であって、
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を含むことを特徴とするスキャンチェーン形成方法。
(Appendix 1)
A scan chain forming method executed by a central processing unit of a design support device,
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
A scan chain forming method comprising:

(付記2)
前記算出工程の前に、前記スキャンチェーン上の前記複数のデータ保持回路に対して入力側から出力側に向かって順番に番号を付与する番号付与工程を含み、
前記算出工程は、前記複数のデータ保持回路のうち出力側のデータ保持回路から前記第1のデータ保持回路を選択する工程を含み、
前記選択工程は、前記第1の範囲内に配置されたデータ保持回路の中から、前記第1のデータ保持回路よりも入力側であって前記第1のデータ保持回路の番号に最も近い番号の付与されたデータ保持回路を選択する
ことを特徴とする付記1に記載のスキャンチェーン形成方法。
(Appendix 2)
Before the calculating step, including a numbering step of sequentially assigning numbers to the plurality of data holding circuits on the scan chain from the input side toward the output side,
The calculating step includes a step of selecting the first data holding circuit from an output side data holding circuit among the plurality of data holding circuits,
In the selection step, among the data holding circuits arranged in the first range, the number closest to the number of the first data holding circuit on the input side than the first data holding circuit. The scan chain forming method according to appendix 1, wherein a given data holding circuit is selected.

(付記3)
前記算出工程の前に、前記スキャンチェーン上の前記複数のデータ保持回路に対して入力側から出力側に向かって順番に番号を付与する番号付与工程を含み、
前記算出工程は、前記複数のデータ保持回路のうち入力側のデータ保持回路から前記第1のデータ保持回路を選択する工程を含み、
前記選択工程は、前記第1の範囲内に配置されたデータ保持回路の中から、前記第1のデータ保持回路よりも出力側であって前記第1のデータ保持回路の番号に最も近い番号の付与されたデータ保持回路を選択する
ことを特徴とする付記1に記載のスキャンチェーン形成方法。
(Appendix 3)
Before the calculating step, including a numbering step of sequentially assigning numbers to the plurality of data holding circuits on the scan chain from the input side toward the output side,
The calculating step includes a step of selecting the first data holding circuit from an input side data holding circuit among the plurality of data holding circuits,
In the selection step, among the data holding circuits arranged in the first range, the number closest to the number of the first data holding circuit on the output side than the first data holding circuit. The scan chain forming method according to appendix 1, wherein a given data holding circuit is selected.

(付記4)
前記算出工程は、
前記第1のデータ保持回路を中心とした、ホールドエラーの発生しない第1の座標の集合を算出する工程と、
前記第1のデータ保持回路を中心とした、セットアップエラーの発生しない第2の座標の集合を算出する工程と、を含むことを特徴とする付記1〜3のいずれか1つに記載のスキャンチェーン形成方法。
(Appendix 4)
The calculation step includes
Calculating a first set of coordinates centering on the first data holding circuit and causing no hold error;
The scan chain according to any one of appendices 1 to 3, further comprising: calculating a second set of coordinates centering on the first data holding circuit and causing no setup error. Forming method.

(付記5)
前記選択工程は、
前記第1の範囲内に選択候補となるデータ保持回路が存在しない場合において、
出力側のデータ保持回路から前記第1のデータ保持回路を選択するときには、前記第1のデータ保持回路よりも入力側であって前記第1の座標の集合の境界に最も近いデータ保持回路を選択する、又は、
入力側のデータ保持回路から前記第1のデータ保持回路を選択するときには、前記第1のデータ保持回路よりも出力側であって前記第1の座標の集合の境界に最も近いデータ保持回路を選択する
ことを特徴とする付記4に記載のスキャンチェーン形成方法。
(Appendix 5)
The selection step includes
In the case where there is no data holding circuit as a selection candidate within the first range,
When selecting the first data holding circuit from the data holding circuit on the output side, select the data holding circuit closest to the boundary of the set of the first coordinates on the input side than the first data holding circuit Or
When selecting the first data holding circuit from the data holding circuit on the input side, select the data holding circuit closest to the boundary of the set of the first coordinates on the output side than the first data holding circuit The scan chain forming method according to appendix 4, wherein:

(付記6)
前記第1の座標の集合を算出する工程は、
前記第1のデータ保持回路を基点として前記ホールドエラーの発生しない最小伝搬遅延時間を算出する工程と、
前記最小伝搬遅延時間を前記データ保持回路のスキャン端子間距離に換算する工程とを含み、
前記第2の座標の集合を算出する工程は、
前記第1のデータ保持回路を基点として前記セットアップエラーの発生しない最大伝搬遅延時間を算出する工程と、
前記最大伝搬遅延時間を前記データ保持回路のスキャン端子間距離に換算する工程とを含むことを特徴とする付記4に記載のスキャンチェーン形成方法。
(Appendix 6)
Calculating the first set of coordinates comprises:
Calculating a minimum propagation delay time in which the hold error does not occur with the first data holding circuit as a base point;
Converting the minimum propagation delay time into a distance between scan terminals of the data holding circuit,
The step of calculating the second set of coordinates includes:
Calculating a maximum propagation delay time in which the setup error does not occur with the first data holding circuit as a base point;
The scan chain forming method according to claim 4, further comprising a step of converting the maximum propagation delay time into a distance between scan terminals of the data holding circuit.

(付記7)
前記リオーダー工程は、
前記選択工程で選択されたデータ保持回路と前記第1のデータ保持回路との接続によってつなぎ順が未確定となるデータ保持回路のつなぎ順を、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順をできる限り保持するように変更する変更工程を含むことを特徴とする付記1〜6のいずれか1つに記載のスキャンチェーン形成方法。
(Appendix 7)
The reordering process includes:
The connection order of the data holding circuits in which the connection order is undetermined by the connection between the data holding circuit selected in the selection step and the first data holding circuit, and the wiring length between the scan terminals of each data holding circuit is 7. The scan chain forming method according to any one of appendices 1 to 6, further including a changing step of changing the connection order of the scan chains formed to be the shortest so as to keep as much as possible.

(付記8)
前記変更工程においてつなぎ順の変更されたデータ保持回路について、該データ保持回路を前記第1のデータ保持回路とし、前記第1の範囲を利用して前記タイミングエラーが発生しないことを確認する工程を含むことを特徴とする付記7に記載のスキャンチェーン形成方法。
(Appendix 8)
For the data holding circuit whose connection order has been changed in the changing step, the step of confirming that the timing error does not occur using the first range as the data holding circuit as the first data holding circuit. The scan chain forming method according to appendix 7, wherein the scan chain is formed.

(付記9)
設計支援装置により実行されるプログラムであって、
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を含むことを特徴とするプログラム。
(Appendix 9)
A program executed by the design support device,
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
The program characterized by including.

(付記10)
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を実行することを特徴とする設計支援装置。
(Appendix 10)
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
A design support apparatus characterized by executing

10 設計支援装置
11 中央処理装置
1a〜1f,2a〜2g,3a〜3h スキャンフリップフロップ(データ保持回路)
SI スキャンイン端子(スキャン端子)
SO スキャンアウト端子(スキャン端子)
DESCRIPTION OF SYMBOLS 10 Design support apparatus 11 Central processing unit 1a-1f, 2a-2g, 3a-3h Scan flip-flop (data holding circuit)
SI Scan-in terminal (Scan terminal)
SO scan-out terminal (scan terminal)

Claims (7)

設計支援装置の中央処理装置にて実行されるスキャンチェーン形成方法であって、
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を含むことを特徴とするスキャンチェーン形成方法。
A scan chain forming method executed by a central processing unit of a design support device,
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
A scan chain forming method comprising:
前記算出工程の前に、前記スキャンチェーン上の前記複数のデータ保持回路に対して入力側から出力側に向かって順番に番号を付与する番号付与工程を含み、
前記算出工程は、前記複数のデータ保持回路のうち出力側のデータ保持回路から前記第1のデータ保持回路を選択する工程を含み、
前記選択工程は、前記第1の範囲内に配置されたデータ保持回路の中から、前記第1のデータ保持回路よりも入力側であって前記第1のデータ保持回路の番号に最も近い番号の付与されたデータ保持回路を選択する
ことを特徴とする請求項1に記載のスキャンチェーン形成方法。
Before the calculating step, including a numbering step of sequentially assigning numbers to the plurality of data holding circuits on the scan chain from the input side toward the output side,
The calculating step includes a step of selecting the first data holding circuit from an output side data holding circuit among the plurality of data holding circuits,
In the selection step, among the data holding circuits arranged in the first range, the number closest to the number of the first data holding circuit on the input side than the first data holding circuit. 2. The scan chain forming method according to claim 1, wherein a given data holding circuit is selected.
前記算出工程の前に、前記スキャンチェーン上の前記複数のデータ保持回路に対して入力側から出力側に向かって順番に番号を付与する番号付与工程を含み、
前記算出工程は、前記複数のデータ保持回路のうち入力側のデータ保持回路から前記第1のデータ保持回路を選択する工程を含み、
前記選択工程は、前記第1の範囲内に配置されたデータ保持回路の中から、前記第1のデータ保持回路よりも出力側であって前記第1のデータ保持回路の番号に最も近い番号の付与されたデータ保持回路を選択する
ことを特徴とする請求項1に記載のスキャンチェーン形成方法。
Before the calculating step, including a numbering step of sequentially assigning numbers to the plurality of data holding circuits on the scan chain from the input side toward the output side,
The calculating step includes a step of selecting the first data holding circuit from an input side data holding circuit among the plurality of data holding circuits,
In the selection step, among the data holding circuits arranged in the first range, the number closest to the number of the first data holding circuit on the output side than the first data holding circuit. 2. The scan chain forming method according to claim 1, wherein a given data holding circuit is selected.
前記算出工程は、
前記第1のデータ保持回路を中心とした、ホールドエラーの発生しない第1の座標の集合を算出する工程と、
前記第1のデータ保持回路を中心とした、セットアップエラーの発生しない第2の座標の集合を算出する工程と、を含むことを特徴とする請求項1〜3のいずれか1つに記載のスキャンチェーン形成方法。
The calculation step includes
Calculating a first set of coordinates centering on the first data holding circuit and causing no hold error;
The method according to claim 1, further comprising: calculating a second set of coordinates centering on the first data holding circuit and causing no setup error. Chain formation method.
前記選択工程は、
前記第1の範囲内に選択候補となるデータ保持回路が存在しない場合において、
出力側のデータ保持回路から前記第1のデータ保持回路を選択するときには、前記第1のデータ保持回路よりも入力側であって前記第1の座標の集合の境界に最も近いデータ保持回路を選択する、又は、
入力側のデータ保持回路から前記第1のデータ保持回路を選択するときには、前記第1のデータ保持回路よりも出力側であって前記第1の座標の集合の境界に最も近いデータ保持回路を選択する
ことを特徴とする請求項4に記載のスキャンチェーン形成方法。
The selection step includes
In the case where there is no data holding circuit as a selection candidate within the first range,
When selecting the first data holding circuit from the data holding circuit on the output side, select the data holding circuit closest to the boundary of the set of the first coordinates on the input side than the first data holding circuit Or
When selecting the first data holding circuit from the data holding circuit on the input side, select the data holding circuit closest to the boundary of the set of the first coordinates on the output side than the first data holding circuit The scan chain forming method according to claim 4, wherein:
設計支援装置により実行されるプログラムであって、
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を含むことを特徴とするプログラム。
A program executed by the design support device,
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
The program characterized by including.
複数のデータ保持回路のうちタイミングエラーの発生した第1のデータ保持回路を基準としてタイミングエラーの発生しない第1の範囲を算出する算出工程と、
前記第1の範囲内に配置されたデータ保持回路の中から、前記各データ保持回路のスキャン端子間の配線長が最短となるように形成されたスキャンチェーンのつなぎ順を保持するように1つのデータ保持回路を選択する選択工程と、
前記選択したデータ保持回路と前記第1のデータ保持回路とを接続するようにつなぎ順を変更するリオーダー工程と、
を実行することを特徴とする設計支援装置。
A calculating step for calculating a first range in which a timing error does not occur with reference to a first data holding circuit in which a timing error has occurred among a plurality of data holding circuits;
One of the data holding circuits arranged in the first range is held so as to hold the connecting order of the scan chains formed so that the wiring length between the scan terminals of each data holding circuit is the shortest. A selection step of selecting a data holding circuit;
A reordering step for changing a connection order so as to connect the selected data holding circuit and the first data holding circuit;
A design support apparatus characterized by executing
JP2010137214A 2010-06-16 2010-06-16 Scan chain forming method, program, and design support apparatus Expired - Fee Related JP5447209B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010137214A JP5447209B2 (en) 2010-06-16 2010-06-16 Scan chain forming method, program, and design support apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010137214A JP5447209B2 (en) 2010-06-16 2010-06-16 Scan chain forming method, program, and design support apparatus

Publications (2)

Publication Number Publication Date
JP2012003471A true JP2012003471A (en) 2012-01-05
JP5447209B2 JP5447209B2 (en) 2014-03-19

Family

ID=45535382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010137214A Expired - Fee Related JP5447209B2 (en) 2010-06-16 2010-06-16 Scan chain forming method, program, and design support apparatus

Country Status (1)

Country Link
JP (1) JP5447209B2 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006258694A (en) * 2005-03-18 2006-09-28 Fujitsu Ltd Method for resolving hold error of scan chain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006258694A (en) * 2005-03-18 2006-09-28 Fujitsu Ltd Method for resolving hold error of scan chain

Also Published As

Publication number Publication date
JP5447209B2 (en) 2014-03-19

Similar Documents

Publication Publication Date Title
US8701064B2 (en) Timing error removing method and design support apparatus
US20120137263A1 (en) Timing closure in chip design
US7469393B2 (en) Method and device for supporting verification, and computer product
CN113221491A (en) Integrated circuit design method, device and equipment
JP5040758B2 (en) Simulation apparatus, simulation method, and program
JP4736822B2 (en) Semiconductor integrated circuit design support apparatus, design support method, and design support program
JP5447209B2 (en) Scan chain forming method, program, and design support apparatus
JP4473163B2 (en) How to eliminate scan chain hold errors
JP2012146865A (en) Semiconductor integrated circuit, and scan test circuit design method
JPWO2006025412A1 (en) Logic verification method, logic module data, device data, and logic verification apparatus
JP6089853B2 (en) Wiring inspection apparatus, wiring inspection program, and wiring inspection method
JP2013019694A (en) Scan test circuit and generation method of scan test circuit
JP4886559B2 (en) Semiconductor design support apparatus, semiconductor design support method, and semiconductor design support program
US8683399B2 (en) Timing constraint generating support apparatus and method of supporting generation of timing constraint
JP7334580B2 (en) Automatic placement and routing device, automatic placement and routing method, automatic placement and routing program, storage medium storing automatic placement and routing program, and semiconductor integrated circuit
JP2002351939A (en) Formal verification method
JP2019046087A (en) Semiconductor design assisting device, semiconductor design assisting method, and program
JP2006268439A (en) Semiconductor integrated circuit, design method and design device for semiconductor integrated circuit, and design program for semiconductor integrated circuit
JP2006310469A (en) Method, system, and program for laying out semiconductor integrated circuit devices
JP2006106838A (en) Semiconductor integrated circuit, its designing device, designing method, designing program, test vector verification device, and test vector generation device
JP6613971B2 (en) Information processing apparatus, design support method, and design support program
US8782579B2 (en) Connection verification method, recording medium thereof, and connection verification apparatus
JP5431737B2 (en) Integrated circuit design apparatus, design method and program
JP2014142253A (en) Testing support method, testing support program, and testing support device
JP2006302995A (en) Semiconductor integrated circuit, and circuit layout apparatus, method, and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131111

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: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5447209

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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