[go: up one dir, main page]

JPH11203342A - Scannet design method and system - Google Patents

Scannet design method and system

Info

Publication number
JPH11203342A
JPH11203342A JP10007171A JP717198A JPH11203342A JP H11203342 A JPH11203342 A JP H11203342A JP 10007171 A JP10007171 A JP 10007171A JP 717198 A JP717198 A JP 717198A JP H11203342 A JPH11203342 A JP H11203342A
Authority
JP
Japan
Prior art keywords
flip
scan
group
processing means
flop
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.)
Pending
Application number
JP10007171A
Other languages
Japanese (ja)
Inventor
Yoshinobu Okazaki
慶信 岡▲崎▼
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP10007171A priority Critical patent/JPH11203342A/en
Publication of JPH11203342A publication Critical patent/JPH11203342A/en
Pending legal-status Critical Current

Links

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

(57)【要約】 【課題】 スキャンネットの配線長を短縮し、その処理
時間を短くすること。 【解決手段】 論理回路の故障検出のために設けるスキ
ャンネットを設計するスキャンネット設計方法におい
て、前記論理回路を複数の小論理のブロックに分割し、
前記各ブロック間接続を考慮して該ブロックの配置を行
うレイアウト構成を行い、前記各ブロック毎にフリップ
フロップ数を算出し、該フリップフロップ数の算出結果
と前記ブロック間の距離とを基に、近接するブロック同
志をそれぞれ纏めて複数のグループに分け、該各グルー
プに属するブロックのフリップフロップを配線長が短く
なるように接続順序を入れ換えてそれぞれ1本のスキャ
ンネットで接続して配線し、それらスキャンネットにて
論理回路の故障検出を行うテストパターンを生成する過
程を有する。
(57) [Summary] [PROBLEMS] To reduce the wiring length of a scan net and the processing time thereof. In a scan net design method for designing a scan net provided for detecting a failure of a logic circuit, the logic circuit is divided into a plurality of small logic blocks,
A layout configuration for arranging the blocks in consideration of the connection between the blocks is performed, the number of flip-flops is calculated for each block, and based on the calculation result of the number of flip-flops and the distance between the blocks, Adjacent blocks are grouped together and divided into a plurality of groups, and the flip-flops of the blocks belonging to each group are connected by one scan net and wired by changing the connection order so that the wiring length is shortened. A step of generating a test pattern for detecting a failure of the logic circuit in the scan net.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、論理回路の故障検
出のために設けるスキャンネットの設計を行うスキャン
ネット設計方法及びシステムに関し、特にスキャンネッ
トの配線長を短くするスキャンネット設計方法及びシス
テムに適用して有効な技術に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a scan net design method and system for designing a scan net provided for detecting a fault in a logic circuit, and more particularly to a scan net design method and system for shortening the scan net wiring length. It is about technology that is effective to apply.

【0002】[0002]

【従来の技術】従来、論理回路のテストのためにスキャ
ンネットをLSIに組み込むことは広く行われている。
スキャンネットはLSIに含まれるフリップフロップを
数珠つなぎにしたネットで、その両端はLSIピンにつ
ながれており、始点をスキャンインピン、終点をスキャ
ンアウトピンと呼んでいる。
2. Description of the Related Art Hitherto, it has been widely practiced to incorporate a scan net into an LSI for testing a logic circuit.
A scan net is a net in which flip-flops included in an LSI are connected in a daisy chain. Both ends are connected to an LSI pin, and the start point is called a scan-in pin and the end point is called a scan-out pin.

【0003】このスキャンネットによるLSIテスト
は、まずスキャンインピンよりスキャンインデータを入
力し各フリップフロップに値を格納したあと、クロック
を動作させて回路を動かし、今度は各フリップフロップ
の値をスキャンネットを介してスキャンアウトピンに取
り出すようにする。
In an LSI test using this scan net, first, scan-in data is input from a scan-in pin, a value is stored in each flip-flop, and a circuit is operated by operating a clock. To take out to the scan-out pin.

【0004】このとき、該スキャンアウトデータがあら
かじめ計算された期待値通りであればLSIに不良はな
く、期待値通りでなければ製造不良があると判定され
る。
At this time, if the scan-out data is in accordance with an expected value calculated in advance, it is determined that there is no defect in the LSI, and if it is not in accordance with the expected value, it is determined that there is a manufacturing defect.

【0005】スキャンネットはLSI内に1本だけでは
なく複数本あるのが普通である。本数が多ければ多いほ
ど、スキャンネット当たりのフリップフロップ数は少な
くなるのでスキャンイン・スキャンアウトに費やす時間
が短くなりテストコストは少なくなるという良い面があ
る。
In general, not only one scan net but a plurality of scan nets are provided in an LSI. The greater the number, the smaller the number of flip-flops per scan net, so that the time spent on scan-in / scan-out is shortened and the test cost is reduced.

【0006】しかし、LSIピン数は決まっているので
物理的にスキャンインピン・スキャンアウトピンの取れ
るピンは限られており、また、一般論理のピンをスキャ
ンインピン・スキャンアウトピンと兼用した場合、一般
論理はディレイ的な影響を受けるため無条件にスキャン
ネット数を増やせるわけではない。またテスタの制約か
ら同時に入力・出力できるスキャンデータに制限がある
場合もある。
However, since the number of LSI pins is fixed, the number of pins that can physically take scan-in / scan-out pins is limited, and if a general logic pin is also used as a scan-in pin / scan-out pin, a general logic pin is used. Is not always able to increase the number of scan nets because it is affected by delay. There are also cases where there is a limit on scan data that can be simultaneously input and output due to the limitations of the tester.

【0007】したがって、設計者はテストコスト、LS
Iピン数、一般論理へのディレイの影響などを考慮した
スキャンチェインの本数を決める必要がある。
[0007] Therefore, the designer is required to reduce the test cost, LS
It is necessary to determine the number of scan chains in consideration of the number of I pins, the influence of delay on general logic, and the like.

【0008】従来によるスキャンネットの設計方法を図
14を用いて説明する。図14は、従来のスキャンネッ
トを設計するシステムの構成を示す図である。
A conventional scan net design method will be described with reference to FIG. FIG. 14 is a diagram showing a configuration of a conventional system for designing a scan net.

【0009】従来のスキャンネット設計は、設計者は端
末200からさまざまな情報を入力しながら、計算機2
10を動かしLSI設計に必要な処理を各処理部220
〜227で行い、その処理結果をディスク230内に格
納することで行われる。
In the conventional scan net design, the designer inputs various information from the terminal 200 while the computer 2
10 to perform processing necessary for LSI design
227, and the processing result is stored in the disk 230.

【0010】従来のスキャンネット設計の手順は、まず
図14に示す論理ファイル入力処理部220において、
LSIとして実現したい論理をRTL(レジスタトラン
スファレベル)と呼ぶ抽象度で記述した論理ファイルを
入力することから始まる。この際、論理を複数のブロッ
クと呼ぶ小論理に分割し、各ブロックについて論理ファ
イルが入力されるのが一般的である。なお、論理ファイ
ル入力の処理結果はRTL論理データ231に格納され
る。
[0010] In the conventional scan net design procedure, first, in the logical file input processing unit 220 shown in FIG.
It starts by inputting a logical file describing the logic to be realized as an LSI with an abstraction level called RTL (register transfer level). At this time, the logic is generally divided into small logics called a plurality of blocks, and a logical file is input for each block. The processing result of the logical file input is stored in the RTL logical data 231.

【0011】論理ファイル入力が終わると、RTLフロ
アプラン処理部221によりブロックをLSI枠に配置
するRTLフロアプランを行う。その配置結果の情報は
ブロック配置データ232に格納される。RTLフロア
プランではブロック間ネットに対する大まかなディレイ
計算を行い、後で示す詳細フロアプランでのディレイ計
算前に決定的なディレイ不良を早期摘出する。
When the input of the logical file is completed, the RTL floor plan processing unit 221 performs an RTL floor plan for arranging the blocks in the LSI frame. Information on the arrangement result is stored in the block arrangement data 232. In the RTL floor plan, a rough delay calculation for the inter-block net is performed, and a critical delay defect is extracted early before calculating the delay in the detailed floor plan described later.

【0012】次に論理合成処理部222においてRTL
記述された論理をゲートレベルに変換し、スキャンネッ
ト挿入を行う論理合成処理を行う。その論理合成後の論
理はゲート論理データ233に格納され、さらにスキャ
ンネット挿入処理部223にてゲート論理データ233
にスキャンの情報が追加される。スキャンネット挿入処
理部223でフリップフロップをスキャンネットで接続
する方法としては、通常、フリップフロップに付けられ
たインスタンス名と呼ぶ識別情報の昇順または降順に自
動接続する方法が一般にとられている。
Next, in the logic synthesis processing unit 222, the RTL
The logic described is converted to a gate level, and a logic synthesis process for inserting a scan net is performed. The logic after the logic synthesis is stored in the gate logic data 233, and the scan net insertion processing unit 223 further stores the logic in the gate logic data 233.
Is added to the scan information. As a method of connecting flip-flops by a scan net in the scan net insertion processing unit 223, generally, a method of automatically connecting flip-flops in an ascending or descending order of identification information called instance names attached to the flip-flops is generally adopted.

【0013】さらに、該接続の際、設計者の決めたスキ
ャンネット当たりのフリップフロップ数を指定する。
Further, at the time of the connection, the number of flip-flops per scan net determined by the designer is specified.

【0014】スキャンネット挿入が終わると詳細フロア
プラン処理部224においてブロックのフロアプランの
補正を行い、ゲート配置処理部225においてそのゲー
ト配置処理、配線処理部226において配線処理と続
き、最後にテストパターン生成処理部227においてL
SIテスト用のテストパターン生成が行われる。配線処
理部226の処理後のレイアウト情報が配置・配線デー
タ234、テストパターン生成処理部227の処理結果
がテストデータ235である。該従来手法ではスキャン
ネットを短くする処理は配線処理部226にて行われ
る。
When the insertion of the scan net is completed, the floor plan of the block is corrected in the detailed floor plan processing section 224, the gate placement processing in the gate placement processing section 225, the wiring processing in the wiring processing section 226, and finally the test pattern. L in the generation processing unit 227
A test pattern for the SI test is generated. The layout information after processing by the wiring processing unit 226 is arrangement / wiring data 234, and the processing result of the test pattern generation processing unit 227 is test data 235. In the conventional method, the process of shortening the scan net is performed by the wiring processing unit 226.

【0015】また、他の従来技術としては、特開平09
−089992号公報の「シフトレジスタ型スキャン回
路生成における近似的最短接続順の自動検出方法」に開
示されている。該従来技術では、LSI全体をある基準
で4分割しながら、LSIの全てのフリップフロップに
ついて接続順を決めている。
Another conventional technique is disclosed in Japanese Unexamined Patent Publication No.
No. 0889992, entitled "Automatic detection method of approximate shortest connection order in generation of shift register type scan circuit". In the prior art, the connection order is determined for all the flip-flops of the LSI while dividing the entire LSI into four based on a certain standard.

【0016】[0016]

【発明が解決しようとする課題】本発明者は、上記従来
技術を検討した結果、以下の問題点を見いだした。
SUMMARY OF THE INVENTION As a result of studying the above prior art, the present inventor has found the following problems.

【0017】前記従来手法ではスキャンネットを短くす
る処理は配線処理部226にて行われている。このた
め、スキャンネット挿入処理部223で繋いだフリップ
フロップ接続順をゲート配置処理部225でのフリップ
フロップ配置位置で見直し、スキャンネット長が短くな
るようネット張替え処理が行われる。しかし、該スキャ
ンネット張替えは同じスキャンネット内でのフリップフ
ロップ接続順入れ替えのみ行なわれ、スキャンネット間
でのフリップフロップ接続順入れ替えは行われない。し
たがって、配線処理部226によるネット張替えではス
キャンネットの配線長短縮について大きい効果は望めな
い。この状況を図15を用いて詳細に説明する。図15
(a)はゲート配置処理部225にてゲート配置処理し
た後の状況である。LSI300にはブロック301〜
309(ブロック名a〜i)が入っており、さらにブロ
ック301〜309にはフリップフロップ311〜31
9(インスタンス名はA〜I)が各1個だけ入っている
とした。図15(a)の時点ではスキャンネット挿入処
理部223にてインスタンス名の順にスキャンネット3
20〜322がはられている。ここではスキャンネット
当たりのフリップフロップ数を最大3個としている。図
15(b)は配線処理部226にて配線処理した後の状
況である。スキャンネット320〜322は、配線長が
短くなるようにフリップフロップの接続順が交換されて
スキャンネット330〜332となっているが、スキャ
ンネットに含まれるフリップフロップは変わらない。
In the above-mentioned conventional method, the processing for shortening the scan net is performed by the wiring processing unit 226. Therefore, the connection order of the flip-flops connected by the scan net insertion processing unit 223 is reviewed based on the flip-flop arrangement position in the gate arrangement processing unit 225, and the net reassignment process is performed so that the scan net length becomes short. However, the scan net replacement is performed only in the flip-flop connection order within the same scan net, and the flip-flop connection order is not switched between the scan nets. Therefore, the reconnection of the net by the wiring processing unit 226 cannot expect a great effect in shortening the wiring length of the scan net. This situation will be described in detail with reference to FIG. FIG.
(A) is a situation after the gate arrangement processing is performed by the gate arrangement processing unit 225. The blocks 300 to
309 (block names a to i), and the blocks 301 to 309 have flip-flops 311 to 31.
9 (the instance names are A to I). At the time of FIG. 15A, the scan net 3 is processed by the scan net insertion
20 to 322 are detached. Here, the maximum number of flip-flops per scan net is three. FIG. 15B shows a state after the wiring processing is performed by the wiring processing unit 226. In the scan nets 320 to 322, the connection order of the flip-flops is exchanged so as to shorten the wiring length to form the scan nets 330 to 332, but the flip-flops included in the scan nets do not change.

【0018】しかし、そもそもスキャンネット挿入処理
部223にてフリップフロップの位置を考慮したスキャ
ンネット接続が行われないため、配線処理部226の配
線処理後のスキャンネットでもスキャンネット331、
332のようにLSI300内を対角線上に走ることも
あり配線長短縮に対する大きな効果は望めないという問
題点があった。
However, since the scan net connection taking into account the position of the flip-flop is not performed in the scan net insertion processing unit 223 in the first place, the scan net 331,
There is a problem that a large effect of shortening the wiring length cannot be expected because the wiring may run diagonally in the LSI 300 as in 332.

【0019】また、前記従来技術の特開平09−089
992号公報では、フリップフロップ接続順をLSI全
体にわたって決めるため、配線長短縮に対する効果は望
めるが処理が複雑になり、処理時間が長くなってしまう
という問題点があった。
Further, Japanese Patent Application Laid-Open No. 09-089 of the prior art described above.
In Japanese Patent Application Laid-Open No. 992, since the flip-flop connection order is determined over the entire LSI, the effect of shortening the wiring length can be expected, but the processing becomes complicated and the processing time becomes long.

【0020】本発明は、上記問題点を解決するために成
されたものであり、その目的は、スキャンネットの配線
長を短縮し、その処理時間を短くすることが可能な技術
を提供することにある。
The present invention has been made to solve the above problems, and an object of the present invention is to provide a technique capable of shortening a scan net wiring length and a processing time thereof. It is in.

【0021】本発明の前記ならびにその他の目的と新規
な特徴は、本明細書の記述及び添付図面によって明らか
になるであろう。
The above and other objects and novel features of the present invention will become apparent from the description of the present specification and the accompanying drawings.

【0022】[0022]

【課題を解決するための手段】本願において開示される
発明のうち、代表的なものの概要を簡単に説明すれば、
下記のとおりである。
SUMMARY OF THE INVENTION Among the inventions disclosed in the present application, the outline of a representative one will be briefly described.
It is as follows.

【0023】論理回路の故障検出のために設けるスキャ
ンネットを設計するスキャンネット設計方法において、
前記論理回路を複数の小論理のブロックに分割し、前記
各ブロック間接続を考慮して該ブロックの配置を行うフ
ロアプランを行い、前記各ブロック毎にフリップフロッ
プ数を算出し、該フリップフロップ数の算出結果と前記
ブロック間の距離とを基に、近接するブロック同志をそ
れぞれ纏めて複数のグループに分け、該各グループに属
するブロックのフリップフロップを配線長が短くなるよ
うに接続順序を入れ換えてそれぞれ1本のスキャンネッ
トで接続して配線し、それらスキャンネットにて論理回
路の故障検出を行うテストパターンを生成する過程を有
する。
In a scan net design method for designing a scan net provided for detecting a fault in a logic circuit,
The logic circuit is divided into a plurality of small logic blocks, a floor plan for arranging the blocks in consideration of the connection between the blocks is performed, the number of flip-flops is calculated for each block, and the number of flip-flops is calculated. Based on the calculation result of the above and the distance between the blocks, adjacent blocks are respectively grouped into a plurality of groups, and the connection order of the flip-flops of the blocks belonging to each group is changed so that the wiring length is shortened. The method includes a step of connecting and wiring each with one scan net, and generating a test pattern for detecting a failure of a logic circuit with the scan net.

【0024】また、前記複数のグループに分けた後に、
各フリップフロップと該フリップフロップが属するグル
ープの重心点との距離を算出し、その算出結果が基準距
離を超えた場合に該フリップフロップの配置位置から最
も近接するグループを算出し、その算出されたグループ
へ該フリップフロップを含める過程を有する。
Further, after being divided into the plurality of groups,
The distance between each flip-flop and the center of gravity of the group to which the flip-flop belongs is calculated, and when the calculation result exceeds the reference distance, the group closest to the flip-flop arrangement position is calculated, and the calculated value is calculated. Including the flip-flop in a group.

【0025】さらに、論理回路の故障検出のために設け
るスキャンネットを設計するスキャンネット設計システ
ムにおいて、実現したい論理回路を複数の小論理のブロ
ックに分割し、それら小論理データをファイル入力する
論理ファイル入力処理手段と、前記各ブロック間接続を
考慮して該ブロックの配置を行うフロアプラン処理手段
と、前記論理ファイル入力処理手段に入力された各論理
データからそれを実現する素子群のデータに変換する論
理合成処理手段と、前記論理合成処理手段による素子群
データから各ブロック毎のフリップフロップ数を算出す
るフリップフロップ数算出手段と、前記フリップフロッ
プ数算出手段の算出結果と前記各ブロック間の距離とを
基に、近接するブロックをそれぞれ纏めて複数のグルー
プに分けるグループ割り当て処理手段と、前記素子群の
データを基に各ブロックの物理的な配置の補正を行う詳
細フロアプラン処理手段と、前記各ブロック毎の素子群
の配置を行う素子配置処理手段と、前記素子配置処理手
段により配置された各フリップフロップと該フリップフ
ロップが属するグループの重心点との距離を算出し、そ
の算出結果が基準距離を超えた場合に、該フリップフロ
ップの配置位置から最も近接するグループを算出し、そ
の算出されたグループへ該フリップフロップを含めるス
キャンネットの接続張替手段と、該各グループに属する
ブロックのフリップフロップを配線長が短くなるように
接続順序を入れ換えてそれぞれ1本のスキャンネットで
接続して配線する配線処理手段と、前記各スキャンネッ
ト毎に論理回路の故障検出を行うテストパターンを生成
するテストパターン生成処理手段とを備える。
Further, in a scan net design system for designing a scan net provided for detecting a failure in a logic circuit, a logic file to be realized is divided into a plurality of small logic blocks, and the small logic data is input to a file. Input processing means, floor plan processing means for arranging the blocks in consideration of the connection between the blocks, and conversion of each logical data inputted to the logical file input processing means to data of an element group for realizing the logical data Logic synthesizing means for calculating, the number of flip-flops for calculating the number of flip-flops for each block from the element group data by the logic synthesizing means, the calculation result of the number of flip-flops and the distance between the blocks Group that divides adjacent blocks into multiple groups based on Allocation processing means, detailed floor plan processing means for correcting the physical arrangement of each block based on the data of the element group, element arrangement processing means for arranging the element group for each block, and the element The distance between each of the flip-flops arranged by the arrangement processing means and the center of gravity of the group to which the flip-flop belongs is calculated. If the calculation result exceeds the reference distance, the group closest to the arrangement position of the flip-flop is calculated. And the scan net connection changing means for including the flip-flops in the calculated group and the flip-flops of the blocks belonging to each group are changed in connection order such that the wiring length is shortened to one each. Wiring processing means for connecting and wiring by scan nets; and a circuit for detecting a failure of a logic circuit for each scan net. And a test pattern generating means for generating the door pattern.

【0026】さらに、論理回路の故障検出のために設け
るスキャンネットを設計するスキャンネット設計システ
ムにおいて、実現したい論理回路を複数の小論理のブロ
ックに分割し、それら小論理データをファイル入力する
論理ファイル入力処理手段と、前記各ブロック間接続を
考慮して該ブロックの配置を行うフロアプラン処理手段
と、前記論理ファイル入力処理手段に入力された各論理
データからそれを実現する素子群のデータに変換する論
理合成処理手段と、前記論理合成処理手段による素子群
データから各ブロック毎のフリップフロップ数を算出す
るフリップフロップ数算出手段と、近接する前記各ブロ
ックをそれぞれ纏めて複数のグループに分けるためのグ
ループ分け情報をスキャンネットの設計者から取得する
グループ分け情報取得処理手段と、前記フリップフロッ
プ数算出手段の算出結果と前記グループ分け情報を基
に、前記各ブロックを複数のグループに分けるグループ
割り当て処理手段と、前記素子群のデータを基に各ブロ
ックの物理的な配置の補正を行う詳細フロアプラン処理
手段と、前記各ブロック毎の素子群の配置を行う素子配
置処理手段と、前記素子配置処理手段により配置された
各フリップフロップと該フリップフロップが属するグル
ープの重心点との距離を算出し、その算出結果が基準距
離を超えた場合に、該フリップフロップの配置位置から
最も近接するグループを算出し、その算出されたグルー
プへ該フリップフロップを含めるスキャンネットの接続
張替手段と、該各グループに属するブロックのフリップ
フロップを配線長が短くなるように接続順序を入れ換え
てそれぞれ1本のスキャンネットで接続して配線する配
線処理手段と、前記各スキャンネット毎に論理回路の故
障検出を行うテストパターンを生成するテストパターン
生成処理手段とを備える。
Further, in a scan net design system for designing a scan net provided for detecting a failure in a logic circuit, a logic file to be realized is divided into a plurality of small logic blocks, and the small logic data is inputted into a file. Input processing means, floor plan processing means for arranging the blocks in consideration of the connection between the blocks, and conversion of each logical data inputted to the logical file input processing means to data of an element group for realizing the logical data Logic synthesizing means, a flip-flop number calculating means for calculating the number of flip-flops for each block from the element group data by the logic synthesizing means, and a plurality of groups for dividing the adjacent blocks into a plurality of groups. Grouping information obtained from scannet designers Acquisition processing means, group assignment processing means for dividing each block into a plurality of groups based on the calculation result of the flip-flop number calculation means and the grouping information, and physical assignment of each block based on the data of the element group. Detailed floorplan processing means for correcting the global arrangement, element arrangement processing means for arranging the element group for each block, each flip-flop arranged by the element arrangement processing means, and a group to which the flip-flop belongs Is calculated, and when the calculation result exceeds the reference distance, a group closest to the flip-flop arrangement position is calculated, and the scan group including the flip-flop in the calculated group is calculated. And the flip-flops of the blocks belonging to each group so as to reduce the wiring length. It includes a routing processing means for wiring connected by one scan nets respectively interchanged order, a test pattern generating means for generating a test pattern for performing failure detection logic circuit the each scan net.

【0027】[0027]

【発明の実施の形態】以下、本発明の実施例を図面を用
いて詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0028】図1は本発明の一実施形態にかかるスキャ
ンネットの設計を実現するスキャンネット設計システム
の構成を説明するための図である。
FIG. 1 is a diagram for explaining the configuration of a scan net design system for implementing a scan net design according to an embodiment of the present invention.

【0029】本実施形態のスキャンネット設計システム
は、図1に示すように、設計者が情報を入力する端末2
00と、その入力された情報に基づき計算を行う計算機
210とその計算結果を格納するディスク230とから
構成される。
As shown in FIG. 1, the scan net design system according to the present embodiment has a terminal 2 on which a designer inputs information.
00, a computer 210 for performing calculations based on the input information, and a disk 230 for storing the calculation results.

【0030】上述した計算機210は、論理ファイル入
力処理部220と、RTLフロアプラン処理部221
と、論理合成処理部222と、フリップフロップ数算出
処理部100と、スキャングループ割り当て処理部10
1と、グループ分け情報取得部101Aと、スキャンネ
ット挿入処理部223と、詳細フロアプラン処理部22
4と、ゲート配置処理部225と、スキャンチェーン張
替処理部102と、配線処理部226と、テストパター
ン生成処理部227とからなる。
The above-described computer 210 includes a logical file input processing unit 220 and an RTL floor plan processing unit 221.
, Logic synthesis processing unit 222, flip-flop number calculation processing unit 100, scan group assignment processing unit 10
1, a grouping information acquisition unit 101A, a scan net insertion processing unit 223, and a detailed floor plan processing unit 22
4, a gate arrangement processing unit 225, a scan chain reassignment processing unit 102, a wiring processing unit 226, and a test pattern generation processing unit 227.

【0031】また、ディスク230は、RTL論理デー
タ231と、ブロック配置データ232と、ゲート論理
データ233と、配置・配線データ234と、テストデ
ータ235とを格納したディスク230とからなる。
The disk 230 is composed of a disk 230 storing RTL logical data 231, block arrangement data 232, gate logical data 233, arrangement / wiring data 234, and test data 235.

【0032】なお、従来の技術で説明した図14と同じ
ものを示すものには同じ番号を付している。図1におい
ては、200〜235がそれに相当する。図1に示す1
00、101,101A,及び102と400,90
0,及び1000が本実施形態のスキャンネット設計シ
ステムを実現する上で新たに追加した部分である。な
お、本実施形態ではこの新たに追加した部分についての
み説明していく。
The same components as those shown in FIG. 14 described in the prior art are denoted by the same reference numerals. In FIG. 1, 200 to 235 correspond thereto. 1 shown in FIG.
00, 101, 101A, and 102 and 400, 90
Numerals 0 and 1000 are newly added portions for realizing the scan net design system of the present embodiment. In this embodiment, only the newly added part will be described.

【0033】フリップフロップ数算出処理部100は、
論理合成処理部222の論理合成結果であるゲート論理
データ233を読み込み各ブロックのフリップフロップ
数を算出する処理を行う。
The flip-flop number calculation processing section 100
The logic synthesis processing unit 222 reads the gate logic data 233 as the logic synthesis result, and performs a process of calculating the number of flip-flops of each block.

【0034】グループ分け情報取得処理部101Aは、
各ブロックが属すべきスキャングループを定義したグル
ープ分け情報を設計者から取得する処理を行う。
The grouping information acquisition processing unit 101A
A process of acquiring grouping information defining a scan group to which each block belongs from a designer is performed.

【0035】スキャングループ割り当て処理部101
は、上述したグループ分け情報取得処理部101Aでグ
ループ分け情報が取得されているときには、そのグルー
プ分け情報を基に各ブロックにスキャングループ番号を
付与する処理を行い、取得されないときは、ブロック間
の距離とフリップフロップ数算出処理部100で求めた
フリップフロップ数から各ブロックにスキャングループ
番号を付与する処理を行う。
Scan group assignment processing unit 101
Performs a process of assigning a scan group number to each block based on the grouping information when the grouping information is acquired by the grouping information acquisition processing unit 101A described above. A process of assigning a scan group number to each block based on the distance and the number of flip-flops calculated by the flip-flop number calculation processing unit 100 is performed.

【0036】また、スキャンチェイン張替え処理部10
2は、フリップフロップが該フリップフロップが属する
スキャングループの枠を超えて配置されたときに近接ス
キャングループのスキャンチェインへ該フリップフロッ
プを張り替える処理を行う。
The scan chain reassignment processing unit 10
2 performs a process of replacing the flip-flop with a scan chain of a neighboring scan group when the flip-flop is arranged beyond the frame of the scan group to which the flip-flop belongs.

【0037】また、400、900、1000はそれぞ
れ本実施形態のために追加したスキャングループテーブ
ル、ブロック枠テーブル、張替え対象FFテーブルをそ
れぞれ示す。
Reference numerals 400, 900, and 1000 denote a scan group table, a block frame table, and a replacement FF table, respectively, added for this embodiment.

【0038】次に、上述したフリップフロップ数算出処
理部100とスキャングループ割り当て処理部101の
処理について図2〜図9を用いて説明する。
Next, the processing of the above-described flip-flop number calculation processing section 100 and scan group assignment processing section 101 will be described with reference to FIGS.

【0039】図2〜図5に示すスキャングループテーブ
ル400は、スキャングループ割り当てにて利用するテ
ーブルであり、モジュール410はLSIを構成するブ
ロックのブロック名を格納する欄、フリップフロップ数
420は各ブロックのフリップフロップ数を格納する
欄、原点430と対角点440はRTLフロアプラン2
21で決定したブロックの配置枠について原点と対角点
の座標をそれぞれ格納する欄である。また、距離450
はブロック間の距離を格納する欄、スキャングループ番
号460はスキャングループ割り当てにて決定した各ブ
ロックのスキャングループ番号を格納する欄である。
A scan group table 400 shown in FIGS. 2 to 5 is a table used for scan group assignment. A module 410 stores a block name of a block constituting an LSI, and a flip-flop number 420 indicates each block. , The origin 430 and the diagonal point 440 are the RTL floor plan 2
This is a column for storing the coordinates of the origin and the diagonal point of the arrangement frame of the block determined in 21. Also, distance 450
Is a column for storing the distance between blocks, and the scan group number 460 is a column for storing the scan group number of each block determined by scan group assignment.

【0040】図6〜図8は、本実施形態で用いるLSI
300を示し、従来の技術で示した図15と同じであ
る。ただし、各ブロックに存在するフリップフロップ数
は図15とは異なり1個ではなく、ブロック枠内に丸で
囲んだ数値とする。例えば、ブロックaのフリップフロ
ップ数は2個、ブロックgのフリップフロップ数は4個
である。また、レイアウト時の座標原点はLSI300
の左上すみとし、さらに、水平方向をy軸、垂直方向を
x軸とする。
FIGS. 6 to 8 show the LSI used in this embodiment.
300, which is the same as FIG. 15 shown in the prior art. However, unlike FIG. 15, the number of flip-flops present in each block is not one but a numerical value surrounded by a circle in a block frame. For example, the number of flip-flops in block a is two, and the number of flip-flops in block g is four. The coordinate origin at the time of layout is LSI300
, And the horizontal direction is the y-axis and the vertical direction is the x-axis.

【0041】なお、図2〜図5に示す原点430とはブ
ロック枠のうち座標原点に近い側すなわちブロック枠の
左上頂点を示し、また、対角点440とはブロック枠の
うち座標原点に遠い側すなわちブロック枠の右下頂点を
示す。例えば、図6に示すブロックaの原点は501、
対角点は502であって具体的には原点(0、0)、対
角点(200、200)である。
The origin 430 shown in FIGS. 2 to 5 indicates the side of the block frame closer to the coordinate origin, that is, the upper left vertex of the block frame, and the diagonal point 440 is far from the coordinate origin of the block frame. Shows the side, that is, the lower right vertex of the block frame. For example, the origin of block a shown in FIG.
The diagonal point is 502, specifically, the origin (0, 0) and the diagonal point (200, 200).

【0042】フリップフロップ数算出処理部100の処
理は、まず、ゲート論理データ233を読み込み、各モ
ジュールのモジュール名とフリップフロップ数の情報を
スキャングループテーブル400のモジュール410と
フリップフロップ数420に格納する。
In the processing of the number-of-flip-flops calculation processing unit 100, first, the gate logical data 233 is read, and information on the module name of each module and the number of flip-flops is stored in the module 410 and the number of flip-flops 420 of the scan group table 400. .

【0043】このゲート論理データ233には、論理を
構成する全てのゲートのゲート名と各ゲートを識別する
ためのインスタンス名が付けられているが、ゲート名か
ら該ゲートがフリップフロップか否か、インスタンス名
から該ゲートが属するブロックが識別できるため、本実
施形態のフリップフロップ数算出処理部100ではこれ
を利用してフリップフロップ数の算出を行う。この時点
のスキャングループテーブル400の状態が図2であ
る。
The gate logic data 233 includes the gate names of all the gates constituting the logic and an instance name for identifying each gate. Since the block to which the gate belongs can be identified from the instance name, the flip-flop number calculation processing unit 100 of the present embodiment calculates the number of flip-flops using this. FIG. 2 shows the state of the scan group table 400 at this time.

【0044】次に、スキャングループ割り当て処理部1
01の処理を図9に示すフローチャートを基に説明す
る。なお、スキャングループ割り当て処理部101の処
理は、設計者からグループ分け情報が入力されていると
きは、そのグループ分け情報に基づいてスキャングルー
プ割り当てを行うため、ここではグループ分け情報が入
力されていないときに行われる、ブロック間の距離とフ
リップフロップ数算出処理部100で求めたフリップフ
ロップ数からスキャングループ割り当てを行う処理につ
いて説明する。
Next, the scan group assignment processing section 1
01 will be described with reference to the flowchart shown in FIG. In the process of the scan group assignment processing unit 101, when the grouping information is input from the designer, the scan group is assigned based on the grouping information. Therefore, the grouping information is not input here. A description will be given of a process performed when a scan group is assigned based on the distance between blocks and the number of flip-flops calculated by the flip-flop number calculation processing unit 100.

【0045】スキャングループ割り当て処理部101の
処理は、図9に示すように、まず、ブロック配置データ
232を読み込み、スキャングループテーブル400の
原点430と対角点440に各ブロックの枠の座標を入
れ(ステップ600)、さらに、各ブロックのスキャン
グループ番号460を初期値設定のため”0”クリアし
(ステップ601)、スキャングループ番号カウンタ
を”0”クリアする(ステップ602)。ここで示すス
キャングループ番号カウンタとはスキャングループ割り
当ての処理にて一時的に用いられる作業用エリアのこと
で、処理中のスキャングループ番号を格納しているエリ
アである。
As shown in FIG. 9, the scan group assignment processing unit 101 first reads the block arrangement data 232 and inserts the coordinates of the frame of each block into the origin 430 and the diagonal point 440 of the scan group table 400. (Step 600) Further, the scan group number 460 of each block is cleared to "0" for initial value setting (Step 601), and the scan group number counter is cleared to "0" (Step 602). The scan group number counter shown here is a work area temporarily used in the scan group assignment processing, and is an area storing the scan group number being processed.

【0046】次に、スキャングループ番号カウンタに1
を加える(ステップ603)。最初にこのステップ60
3の処理を実施したときはスキャングループ番号カウン
タは”1”になっている。すなわち、スキャングループ
番号1のスキャングループに属するブロックをこれから
決めようとするわけである。まず、スキャングループ番
号1に属するブロックを一つ決める。本実施形態では、
スキャングループ番号460を第一ソートキー、原点4
30のy座標を第ニソートキー、原点430のx座標を
第三ソートキーとして、スキャングループテーブル40
0をソートし、ソート後のスキャングループテーブル4
00の最初のエントリをスキャングループ番号1に最初
に属するブロックとする(ステップ604)。この状態
が図3に示すスキャングループテーブル400である。
Next, 1 is set to the scan group number counter.
Is added (step 603). First this step 60
When the process 3 is performed, the scan group number counter is "1". That is, the block belonging to the scan group with the scan group number 1 is to be determined. First, one block belonging to scan group number 1 is determined. In this embodiment,
Scan group number 460 is the first sort key, origin 4
Using the y-coordinate of the scan group 30 as the second sort key and the x-coordinate of the origin 430 as the third sort key, the scan group table 40
0, and scan group table 4 after sorting
The first entry of 00 is a block that first belongs to scan group number 1 (step 604). This state is the scan group table 400 shown in FIG.

【0047】ここで、スキャングループ番号460を第
一ソートキーにしたのは、スキャングループ番号2に属
するブロックを決める際にステップ604の処理が再度
行われるが、後述するようにスキャングループ番号1に
属するブロックはスキャングループ番号460が”
1”、属していないブロックのスキャングループ番号4
60はステップ601の処理で実施されたままの”0”
となっているため、ソートしたときにスキャングループ
が決まっていないブロックがスキャングループテーブル
400の上方にかたまって集まるからである。
Here, the reason why the scan group number 460 is used as the first sort key is that when the block belonging to the scan group number 2 is determined, the process of step 604 is performed again. The block has a scan group number 460 "
1 ", scan group number 4 of the block which does not belong
Reference numeral 60 denotes “0” as it was in the processing of step 601.
This is because the blocks for which the scan group is not determined at the time of sorting are gathered at the top of the scan group table 400.

【0048】次にスキャングループ番号1に最初に属す
るブロックは”a”であるため、次にブロックaと他ブ
ロック間の距離をもとめ距離450に格納する(ステッ
プ605)。本実施形態では、図7に示すように、各ブ
ロックの重心間の距離とする。
Next, since the first block belonging to the scan group number 1 is "a", the distance between the block a and another block is determined and stored in the distance 450 (step 605). In the present embodiment, as shown in FIG. 7, the distance between the centers of gravity of the blocks is used.

【0049】そして、ブロックaに近い順にスキャング
ループテーブル400を並べ変えるため、スキャングル
ープテーブル400を距離450でソートする(ステッ
プ606)。この状態が図4に示すスキャングループテ
ーブル400である。この状態から、スキャングループ
番号1に属するブロックを決めていくわけであるが、そ
の前にエントリーカウンタの値を1(ステップ60
7)、FF数カウンタにスキャングループテーブル40
0の最初のエントリのフリップフロップ数420の値を
セットし(ステップ608)、さらに、スキャングルー
プテーブル400の最初のエントリのスキャングループ
番号にスキャングループ番号カウンタの値をセットする
(ステップ609)。ここで示したエントリーカウン
タ、FF数カウンタとはスキャングループ割り当て処理
部101の処理にて一時的に用いられる作業用エリアの
ことで、エントリーカウンタはスキャングループテーブ
ル400のエントリーをしめすカウンタであり、FF数
カウンタとはスキャングループ番号に属するブロックの
総フリップフロップ数を格納するためのエリアである。
Then, in order to rearrange the scan group table 400 in the order closer to the block a, the scan group table 400 is sorted by the distance 450 (step 606). This state is the scan group table 400 shown in FIG. From this state, blocks belonging to scan group number 1 are determined. Before that, the value of the entry counter is set to 1 (step 60).
7) The scan group table 40 is stored in the FF counter.
The value of the flip-flop number 420 of the first entry of 0 is set (step 608), and the value of the scan group number counter is set to the scan group number of the first entry of the scan group table 400 (step 609). The entry counter and the number of FFs shown here are work areas temporarily used in the processing of the scan group assignment processing unit 101, and the entry counter is a counter indicating an entry of the scan group table 400. The number counter is an area for storing the total number of flip-flops of the block belonging to the scan group number.

【0050】次に、スキャングループテーブル400の
全ブロックにスキャングループ番号が付与されたかを確
認し、そうであれば終了する(ステップ610)。本実
施形態では、ステップ610が最初に処理された時点で
は9個のブロックのうち、ブロックaのみスキャングル
ープ番号がつけられたのみであるため次の処理であるス
テップ611へ移る。
Next, it is confirmed whether a scan group number has been assigned to all blocks in the scan group table 400, and if so, the process is terminated (step 610). In the present embodiment, when step 610 is first processed, of the nine blocks, only the block a is assigned a scan group number, so that the process proceeds to step 611 as the next process.

【0051】ステップ611では、スキャングループテ
ーブル400の次のエントリを参照するため、エントリ
カウンタを+1し、引きつづきエントリカウンタの値に
て次のブロックのフリップフロップ数をスキャングルー
プテーブル400から読みだしFF数カウンタに加える
(ステップ612)。
In step 611, the value of the entry counter is incremented by 1 to refer to the next entry of the scan group table 400, and the number of flip-flops of the next block is read from the scan group table 400 using the value of the entry counter. The value is added to the number counter (step 612).

【0052】そのFF数カウンタの値があらかじめ他の
手段より指定された最大FF数を超えた場合は、次のス
キャングループを処理するためステップ603に戻るが
(ステップ613)、超えない場合はスキャングループ
テーブル400のスキャングループ番号460に現在の
スキャングループ番号を入力する(ステップ614)。
スキャングループ番号1のスキャングループが決まった
時点のスキャングループテーブル400の状態を図5に
示す。本実施形態を最後まで行うと、スキャングループ
番号1に属するブロックはブロックa、g、i、スキャ
ングループ番号2に属するのはブロックd、f、h、ス
キャングループ番号3に属するのはブロックb、c、e
となり、スキャングループ割り当て処理部101の処理
後に引き続き、本実施形態の結果を用いて同じスキャン
グループに属するブロックをスキャンチェインでつなぐ
ようにすれば、配線処理部226により配線処理後は図
8に示すようになり、図15(b)のごとくLSIの対
角線を配線が走る事はなくなりスキャンチェインの配線
長は短くなる。
If the value of the FF counter exceeds the maximum number of FFs specified in advance by another means, the process returns to step 603 to process the next scan group (step 613). The current scan group number is input to the scan group number 460 of the group table 400 (step 614).
FIG. 5 shows the state of the scan group table 400 when the scan group of scan group number 1 is determined. When the present embodiment is completed, the blocks belonging to scan group number 1 are blocks a, g, i, the blocks belonging to scan group number 2 are blocks d, f, h, the blocks belonging to scan group number 3 are blocks b, c, e
If the blocks belonging to the same scan group are connected by a scan chain using the result of the present embodiment after the processing of the scan group assignment processing unit 101, the wiring processing unit 226 performs the wiring processing shown in FIG. As a result, the wiring does not run along the diagonal line of the LSI as shown in FIG. 15B, and the wiring length of the scan chain is reduced.

【0053】なお、各ブロックのスキャングループへの
割り当ては、上述したように、設計者が各ブロックが属
すべきスキャングループ情報を定義したグループ分け情
報を与えた場合はそれを基に行う。
As described above, the assignment of each block to a scan group is performed on the basis of the grouping information defining the scan group information to which each block belongs, as described above.

【0054】次に、スキャンチェイン張替え処理部10
2の処理を図10〜図13を用いて説明する。
Next, the scan chain reassignment processing section 10
The process 2 will be described with reference to FIGS.

【0055】上述したスキャングループ割り当て処理部
101の処理では、フリップフロップはブロック枠を超
えてゲート配置されることまでは考慮されていない。し
かし、実際は高密度実装するためにゲート配置処理部2
25でブロック枠を超えてゲート配置されるのが一般的
である。この状況を図10に示す。
In the processing of the scan group assignment processing unit 101 described above, consideration is not given to flip-flops being arranged in gates beyond the block frame. However, in practice, the gate arrangement processing unit 2 is
In general, gates are arranged at 25 beyond the block frame. This situation is shown in FIG.

【0056】図10は、ブロックd、g、iを拡大した
ものであって、本実施形態では、それぞれのブロックに
はインスタンスD1〜D3、G1〜G2、I1〜I2を
持つフリップフロップが存在するものとする。
FIG. 10 is an enlarged view of blocks d, g, and i. In this embodiment, each block has a flip-flop having instances D1 to D3, G1 to G2, and I1 to I2. Shall be.

【0057】図10に示すように、インスタンスD2を
持つフリップフロップがブロックdの枠を大きく超えた
場合、スキャングループ番号2に属するブロックdとは
いえ、フリップフロップD2はスキャングループ番号1
のスキャンチェインに含めた方がLSI全体での配線長
は短くなる。
As shown in FIG. 10, when the flip-flop having the instance D2 greatly exceeds the frame of the block d, the flip-flop D2 has the scan group number 1 even though the block d belongs to the scan group number 2.
If the scan chain is included, the wiring length of the entire LSI becomes shorter.

【0058】すなわち、D1→D2→D3のような破線
ではなく、G1→D2→I1とした方が配線長は短い。
That is, the wiring length is shorter when G1 → D2 → I1 is used instead of a broken line such as D1 → D2 → D3.

【0059】このため、スキャンチェイン張替処理部1
02は、スキャングループ割り当て処理部101による
割り当て処理後に行われるゲート配置処理部225のゲ
ート配置結果から、LSI全体でスキャンチェインの配
線長が短くなるよう各フリップフロップの属するスキャ
ングループ番号を見直す処理を行う。
For this reason, the scan chain reassignment processing unit 1
02 is a process of re-evaluating the scan group number to which each flip-flop belongs so that the wiring length of the scan chain in the entire LSI is shortened from the gate arrangement result of the gate arrangement processing unit 225 performed after the allocation processing by the scan group allocation processing unit 101. Do.

【0060】そのスキャンチェイン張替処理部102の
処理で用いられるブロック枠テーブル900,張替対象
FFテーブル1000について図11,図12を用いて
説明する。
The block frame table 900 and the replacement FF table 1000 used in the processing of the scan chain replacement processing unit 102 will be described with reference to FIGS.

【0061】図11に示すブロック枠テーブル900は
ブロック(モジュール)910毎にブロック枠920と
拡張ブロック枠930、スキャングループ番号940を
格納するテーブルである。
The block frame table 900 shown in FIG. 11 is a table for storing a block frame 920, an extended block frame 930, and a scan group number 940 for each block (module) 910.

【0062】ここで拡張ブロック枠930とは、ブロッ
ク枠920および別手段によって与えられた基準値によ
って算出される情報であり、該拡張ブロック枠930を
超えて配置されたフリップフロップに対しスキャンチェ
イン張替が行われる。
Here, the extended block frame 930 is information calculated by the block frame 920 and a reference value given by another means, and the scan chain extension is applied to flip-flops arranged beyond the extended block frame 930. Replacement is performed.

【0063】また、図10に示す張替対象FFテーブル
1000は、スキャンチェイン張替処理部102にて決
定したスキャンチェインを張り替えるべきフリップフロ
ップのインスタンス名1010と張替後に属すべきスキ
ャングループ番号1020を格納する。
The reassignment target FF table 1000 shown in FIG. 10 includes the flip-flop instance name 1010 to which the scan chain is to be reassigned determined by the scan chain reassignment processing unit 102 and the scan group number 1020 to which the reassignment belongs. Is stored.

【0064】次に、スキャンチェイン張替処理部102
の処理について説明する。図13は、スキャンチェイン
張替処理部102の処理を説明するためのフローチャー
トである。
Next, the scan chain reassignment processing unit 102
Will be described. FIG. 13 is a flowchart illustrating the processing of the scan chain reassignment processing unit 102.

【0065】スキャンチェイン張替処理部102の処理
は、図13に示すように、まず、スキャングループ割り
当て処理部101の処理で決定したスキャングループテ
ーブル400からモジュール410、原点430、対角
点440、スキャングループ番号460の情報を、それ
ぞれブロック枠テーブル900のモジュール910、ブ
ロック枠920の原点921、対角点922、スキャン
グループ番号940に格納する(ステップ800)。
As shown in FIG. 13, the processing of the scan chain reassignment processing unit 102 first includes the module 410, the origin 430, the diagonal point 440, and the like from the scan group table 400 determined by the processing of the scan group assignment processing unit 101. The information of the scan group number 460 is stored in the module 910 of the block frame table 900, the origin 921, the diagonal point 922, and the scan group number 940 of the block frame 920, respectively (step 800).

【0066】次に、拡張ブロック枠930の原点93
1、対角点932を計算する(ステップ810)。該計
算方法は、拡張ブロック枠の原点931はx、yともブ
ロック枠920の原点921から別途指定された基準値
を引いた数値である。ただし、引いた数値がマイナスに
なる場合は”0”とする。また、拡張ブロック枠の対角
点932はx、yともブロック枠920の対角点922
に別途指定された基準値を足した数値である。ただし、
足した数値がLSIの枠を超える場合はLSI枠の最大
座標とする。上述した図11に示したブロック枠テーブ
ル900の内容はステップ810の処理が完了したとき
の値である。別途指定された基準値は50としている。
Next, the origin 93 of the extended block frame 930 is set.
1. The diagonal point 932 is calculated (step 810). In this calculation method, the origin 931 of the extended block frame is a numerical value obtained by subtracting a separately specified reference value from the origin 921 of the block frame 920 for both x and y. However, when the subtracted numerical value becomes negative, it is set to “0”. Also, the diagonal points 932 of the extended block frame are the diagonal points 922 of the block frame 920 for both x and y.
Is a numerical value obtained by adding a separately specified reference value to However,
If the added numerical value exceeds the frame of the LSI, the maximum coordinate of the LSI frame is used. The contents of the block frame table 900 shown in FIG. 11 described above are values when the processing of step 810 is completed. The reference value specified separately is 50.

【0067】次に、配置・配線データ234から1つの
ゲートに関する情報を読み込み(ステップ820)、該
ゲートがフリップフロップかどうかを判断し(ステップ
830)、フリップフロップであればインスタンス名か
ら属するブロックを判断する(ステップ840)。例え
ば、図10のインスタンスD2のフリップフロップはブ
ロックdが属するゲートであると判断する。なお、図1
0の上ではインスタンス名をD2としたが、ゲートのイ
ンスタンス名は合成処理にてd_d2などのように一部
にモジュール名が付くのが普通であるため、容易にイン
スタンス名からモジュール名が判断できる。
Next, information on one gate is read from the placement / wiring data 234 (step 820), and it is determined whether the gate is a flip-flop (step 830). A determination is made (step 840). For example, it is determined that the flip-flop of the instance D2 in FIG. 10 is a gate to which the block d belongs. FIG.
Although the instance name is set to D2 above 0, the module name can be easily determined from the instance name because the instance name of the gate usually has a module name such as d_d2 in the synthesis processing. .

【0068】次に拡張ブロック枠をはみだしているかを
判断する(ステップ850)。これは、該フリップフロ
ップのx、y座標のいずれかが該フリップフロップが属
するブロックの原点931より小さいか、対角点932
より大きいかで判断できる。はみ出していれば、該フリ
ップフロップがどのブロック枠内にあるか判断する(ス
テップ860)。これは該フリップフロップのx、y座
標の双方がブロックの原点921より大きく、対角点9
22より小さいブロックをブロック枠テーブル900で
捜す。
Next, it is determined whether or not the extended block frame is protruded (step 850). This is because either the x or y coordinate of the flip-flop is smaller than the origin 931 of the block to which the flip-flop belongs, or the diagonal point 932
You can judge by the bigger. If so, it is determined in which block frame the flip-flop is located (step 860). This is because both the x and y coordinates of the flip-flop are larger than the block origin 921 and the diagonal point 9
A block smaller than 22 is searched in the block frame table 900.

【0069】次に、該フリップフロップのインスタンス
名とステップ860の処理で求めたブロックのスキャン
グループ番号を張替え対象FFテーブルに格納し(ステ
ップ870)、次のゲート情報を処理する(ステップ8
80)。
Next, the instance name of the flip-flop and the scan group number of the block obtained in the processing of step 860 are stored in the FF table to be replaced (step 870), and the next gate information is processed (step 8).
80).

【0070】そして、最後に張替対象FFテーブルの情
報をもとに配置・配線データ234でのスキャンチェイ
ン接続情報(図示せず)を書き換える(ステップ89
0)。例えば、図10の例の場合、スキャングループ番
号2のスキャンチェイン接続順をD1→D2→D3から
D1→D3に、インスタンスD1のフリップフロップは
スキャングループ番号1の最後のスキャンチェインに接
続する。インスタンスD1のフリップフロップを接続の
最後とするのは、後段の配線処理部226で、再度、ゲ
ート位置によるスキャンチェイン張替えを行うからで、
一時的に最後につないでもよい。
Finally, the scan chain connection information (not shown) in the arrangement / wiring data 234 is rewritten based on the information of the FF table to be replaced (step 89).
0). For example, in the case of the example of FIG. 10, the scan chain connection order of the scan group number 2 is D1 → D2 → D3 from D1 → D3, and the flip-flop of the instance D1 is connected to the last scan chain of the scan group number 1. The connection of the flip-flop of the instance D1 is made last because the wiring processing unit 226 in the subsequent stage performs the scan chain reconnection based on the gate position again.
It may be connected temporarily at the end.

【0071】したがって、論理回路の故障検出のために
設けるスキャンネットを設計するスキャンネット設計方
法において、LSIを実現する論理回路を複数の小論理
のブロックに分割し、各ブロック間接続を考慮してその
ブロックの配置を行い、各ブロック毎にフリップフロッ
プ数を算出し、そのフリップフロップ数の算出結果とブ
ロック間距離とを基に、近接するブロックをそれぞれ纏
めて複数のグループに分け、各グループに属するブロッ
クのフリップフロップを配線長が短くなるように接続順
序を入れ換えてそれぞれ1本のスキャンネットで接続し
て配線し、それらスキャンネットにて論理回路の故障検
出を行うテストパターンを生成する過程を有することに
より、スキャンネットは近接するブロック内のフリップ
フロップを繋ぐように設計されるので、スキャンネット
の配線長を短縮することが可能になる。
Therefore, in a scan net design method for designing a scan net provided for detecting a fault in a logic circuit, a logic circuit for realizing an LSI is divided into a plurality of small logic blocks and connection between the blocks is taken into consideration. The arrangement of the blocks is performed, the number of flip-flops is calculated for each block, and based on the calculation result of the number of flip-flops and the inter-block distance, adjacent blocks are collectively divided into a plurality of groups. The order of connecting flip-flops of the block to which they belong is changed so that the wiring length is shortened, and the wiring is connected and wired by one scan net. Having scan nets connects flip-flops in adjacent blocks Because it is designed to, it is possible to shorten the wiring length of the scan net.

【0072】また、個々のフリップフロップ単位で行う
ことなく、ブロック単位でスキャンネットの設計を行う
ので、その処理時間を短くすることが可能となる。
Further, since the design of the scan net is performed in units of blocks, not in units of individual flip-flops, the processing time can be reduced.

【0073】さらに、スキャンチェインの張替え処理ま
えに近接するフリップフロップを1つのスキャンチェイ
ンに含めることができ、また、全フリップフロップでは
なく、ゲート配置結果により大きくスキャングループ枠
を超えたフリップフロップのみをスキャングループの見
直し対象とするため、スキャンチェインの配線長を容易
に短くすることが可能となる。
Further, flip-flops adjacent to the scan chain before the re-switching process can be included in one scan chain. Only flip-flops that greatly exceed the scan group frame due to the gate arrangement result, instead of all flip-flops, can be included. Since the scan group is to be reviewed, the wiring length of the scan chain can be easily reduced.

【0074】なお、上述した各処理部はコンピュータ
(計算機)で実行可能なプログラムで実現される場合も
あり、そのときのプログラムは、フロッピーディスク、
CD・ROM、マスクROM等の記憶媒体で一般ユーザ
に提供される。この場合、さらに、これら処理の他にG
UIプログラム等の他のプログラムと組み合わせてユー
ザに提供することもある。
Each of the above-described processing units may be realized by a program that can be executed by a computer (computer), and the program at that time may be a floppy disk,
The storage medium such as a CD / ROM or a mask ROM is provided to general users. In this case, in addition to these processes, G
It may be provided to the user in combination with another program such as a UI program.

【0075】また、上述した記憶媒体で提供する代替手
段として、インタネット等のネットワークを通じて有償
で提供することもある。
As an alternative means provided by the above-mentioned storage medium, it may be provided through a network such as the Internet for a fee.

【0076】以上、本発明者によってなされた発明を、
前記実施形態に基づき具体的に説明したが、本発明は、
前記実施形態に限定されるものではなく、その要旨を逸
脱しない範囲において種々変更可能であることは勿論で
ある。
As described above, the invention made by the present inventor is:
Although specifically described based on the embodiment, the present invention
It is needless to say that the present invention is not limited to the above-described embodiment, but can be variously modified without departing from the scope of the invention.

【0077】[0077]

【発明の効果】本願において開示される発明のうち代表
的なものによって得られる効果を簡単に説明すれば、下
記のとおりである。
The effects obtained by the representative ones of the inventions disclosed in the present application will be briefly described as follows.

【0078】スキャンネットは近接するブロック内のフ
リップフロップを繋ぐように設計されるので、且つ、個
々のフリップフロップ単位で行うことなく、ブロック単
位でスキャンネットの設計を行うので、スキャンネット
の配線長を短縮し、その処理時間を短くすることが可能
となる。
The scan net is designed so as to connect flip-flops in adjacent blocks, and the scan net is designed in units of blocks, not in units of individual flip-flops. And the processing time can be shortened.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の一実施形態にかかるスキャンネットの
設計を実現するスキャンネット設計システムの構成を説
明するための図である。
FIG. 1 is a diagram for explaining a configuration of a scan net design system for implementing a scan net design according to an embodiment of the present invention.

【図2】フリップフロップ数算出処理部100を説明す
るためのスキャングループテーブル400を示した図で
ある。
FIG. 2 is a diagram showing a scan group table 400 for explaining the flip-flop number calculation processing unit 100.

【図3】スキャングループ割り当て処理部101を説明
するためのスキャングループテーブル400を示した図
である。
FIG. 3 is a diagram showing a scan group table 400 for explaining a scan group assignment processing unit 101;

【図4】スキャングループ割り当て処理部101を説明
するためのスキャングループテーブル400を示した図
である。
FIG. 4 is a diagram showing a scan group table 400 for explaining a scan group assignment processing unit 101;

【図5】スキャングループ割り当て処理部101を説明
するためのスキャングループテーブル400を示した図
である。
FIG. 5 is a diagram showing a scan group table 400 for explaining the scan group assignment processing unit 101.

【図6】フリップフロップ数算出処理部100の処理を
説明するための図である。
FIG. 6 is a diagram for explaining processing of a flip-flop number calculation processing unit 100;

【図7】スキャングループ割り当て処理部101を説明
するための図である。
FIG. 7 is a diagram for explaining a scan group assignment processing unit 101;

【図8】スキャングループ割り当て処理部101を説明
するための図である。
FIG. 8 is a diagram for explaining a scan group assignment processing unit 101;

【図9】スキャングループ割り当て処理部101の処理
を説明するためのフローチャートである。
FIG. 9 is a flowchart for explaining processing of a scan group assignment processing unit 101;

【図10】スキャンチェイン張替処理部102の処理を
説明するための図である。
FIG. 10 is a diagram for explaining processing of a scan chain reassignment processing unit 102;

【図11】ブロック枠テーブル900を説明するための
図である。
11 is a diagram for explaining a block frame table 900. FIG.

【図12】張替対象FFテーブル1000を説明するた
めの図である。
FIG. 12 is a diagram for explaining a replacement FF table 1000;

【図13】スキャンチェイン張替処理部102の処理を
説明するためのフローチャートである。
FIG. 13 is a flowchart for explaining processing of a scan chain reassignment processing unit 102;

【図14】従来のスキャンネットの設計を実現するスキ
ャンネット設計システムの構成を説明するための図であ
る。
FIG. 14 is a diagram for explaining a configuration of a scan net design system that realizes a conventional scan net design.

【図15】従来のスキャンネット設計処理を説明するた
めの図である。
FIG. 15 is a diagram for explaining a conventional scan net design process.

【符号の説明】[Explanation of symbols]

100…フリップフロップ数算出処理部、101…スキ
ャングループ割り当て処理部、101A…グループ分け
情報取得処理部、102…スキャンチェイン張替処理
部、200…端末、210…計算機、230…ディス
ク、220…論理ファイル入力処理部、221…RTL
フロアプラン処理部、222…論理合成処理部、223
…スキャンネット挿入処理部、224…詳細フロアプラ
ン処理部、225…ゲート配置処理部、226…配線処
理部、227…テストパターン生成処理部、231…R
TL論理データ、232…ブロック配置データ、233
…ゲート論理データ、234…配置・配線データ、23
5…テストデータ、400…スキャングループテーブ
ル、900…ブロック枠テーブル、1000…張替え対
象FFテーブル。
100: flip-flop number calculation processing unit, 101: scan group assignment processing unit, 101A: grouping information acquisition processing unit, 102: scan chain reassignment processing unit, 200: terminal, 210: computer, 230: disk, 220: logic File input processing unit, 221 ... RTL
Floor plan processing unit, 222 ... Logic synthesis processing unit, 223
... Scannet insertion processing section, 224 detailed floor plan processing section, 225 gate placement processing section, 226 wiring processing section, 227 test pattern generation processing section, 231 R
TL logical data, 232... Block arrangement data, 233
... gate logic data, 234 ... placement / wiring data, 23
5: test data, 400: scan group table, 900: block frame table, 1000: FF table to be replaced.

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 論理回路の故障検出のために設けるスキ
ャンネットを設計するスキャンネット設計方法におい
て、 前記論理回路を複数の小論理のブロックに分割し、前記
各ブロック間接続を考慮して該ブロックの配置を行うフ
ロアプランを行い、前記各ブロック毎にフリップフロッ
プ数を算出し、該フリップフロップ数の算出結果と前記
ブロック間の距離とを基に、近接するブロック同志をそ
れぞれ纏めて複数のグループに分け、該各グループに属
するブロックのフリップフロップを配線長が短くなるよ
うに接続順序を入れ換えてそれぞれ1本のスキャンネッ
トで接続して配線し、それらスキャンネットにて論理回
路の故障検出を行うテストパターンを生成する過程を有
することを特徴とするスキャンネット設計方法。
1. A scan net designing method for designing a scan net provided for detecting a failure of a logic circuit, comprising: dividing the logic circuit into a plurality of small logic blocks; A floor plan for arranging the blocks is calculated, the number of flip-flops is calculated for each block, and based on the calculation result of the number of flip-flops and the distance between the blocks, adjacent blocks are grouped together to form a plurality of groups. And the flip-flops of the blocks belonging to each group are connected and wired by one scan net with the connection order changed so that the wiring length is shortened, and the failure of the logic circuit is detected by the scan nets. A method for designing a scan net, comprising: generating a test pattern.
【請求項2】 前記請求項1に記載のスキャンネット設
計方法において、 前記複数のグループに分けた後に、各フリップフロップ
と該フリップフロップが属するグループの重心点との距
離を算出し、その算出結果が基準距離を超えた場合に該
フリップフロップの配置位置から最も近接するグループ
を算出し、その算出されたグループへ該フリップフロッ
プを含める過程を有することを特徴とするスキャンネッ
ト設計方法。
2. The scan net design method according to claim 1, wherein after dividing the plurality of groups, a distance between each flip-flop and a center of gravity of the group to which the flip-flop belongs is calculated, and the calculation result is obtained. A step of calculating a group closest to the flip-flop from the position where the flip-flop is located when the distance exceeds a reference distance, and including the flip-flop in the calculated group.
【請求項3】 論理回路の故障検出のために設けるスキ
ャンネットを設計するスキャンネット設計システムにお
いて、 実現したい論理回路を複数の小論理のブロックに分割
し、それら小論理データをファイル入力する論理ファイ
ル入力処理手段と、 前記各ブロック間接続を考慮して該ブロックの配置を行
うフロアプラン処理手段と、 前記論理ファイル入力処理手段に入力された各論理デー
タからそれを実現する素子群のデータに変換する論理合
成処理手段と、 前記論理合成処理手段による素子群データから各ブロッ
ク毎のフリップフロップ数を算出するフリップフロップ
数算出手段と、 前記フリップフロップ数算出手段の算出結果と前記各ブ
ロック間の距離とを基に、近接するブロック同志をそれ
ぞれ纏めて複数のグループに分けるグループ割り当て処
理手段と、 前記素子群のデータを基に各ブロックの物理的な配置の
補正を行う詳細フロアプラン処理手段と、 前記各ブロック毎の素子群の配置を行う素子配置処理手
段と、 前記素子配置処理手段により配置された各フリップフロ
ップと該フリップフロップが属するグループの重心点と
の距離を算出し、その算出結果が基準距離を超えた場合
に、該フリップフロップの配置位置から最も近接するグ
ループを算出し、その算出されたグループへ該フリップ
フロップを含めるスキャンネットの接続張替手段と、 該各グループに属するブロックのフリップフロップを配
線長が短くなるように接続順序を入れ換えてそれぞれ1
本のスキャンネットで接続して配線する配線処理手段
と、 前記各スキャンネット毎に論理回路の故障検出を行うテ
ストパターンを生成するテストパターン生成処理手段と
を備えたことを特徴とするスキャンネット設計システ
ム。
3. A scan net design system for designing a scan net provided for detecting a fault in a logic circuit, wherein a logic circuit to be realized is divided into a plurality of small logic blocks, and the small logic data is input to a file. Input processing means, floor plan processing means for arranging the blocks in consideration of the connection between the blocks, and conversion of each logical data input to the logical file input processing means to data of an element group for realizing the logical data Logic-synthesis processing means, flip-flop-number calculation means for calculating the number of flip-flops for each block from the element group data by the logic synthesis processing means, a calculation result of the flip-flop number calculation means, and a distance between the blocks. Group that divides adjacent blocks into multiple groups based on Allocation processing means, detailed floor plan processing means for correcting the physical arrangement of each block based on the data of the element group, element arrangement processing means for arranging the element group for each block, and the element The distance between each of the flip-flops arranged by the arrangement processing means and the center of gravity of the group to which the flip-flop belongs is calculated. If the calculation result exceeds the reference distance, the group closest to the arrangement position of the flip-flop is calculated. And a scan net connection reassigning unit that includes the flip-flop in the calculated group, and a flip-flop of a block belonging to each group, the connection order of which is reduced so that the wiring length is shortened by one.
A scan net design comprising: wiring processing means for connecting and wiring with scan nets of a book; and test pattern generation processing means for generating a test pattern for detecting a failure of a logic circuit for each scan net. system.
【請求項4】 論理回路の故障検出のために設けるスキ
ャンネットを設計するスキャンネット設計システムにお
いて、 実現したい論理回路を複数の小論理のブロックに分割
し、それら小論理データをファイル入力する論理ファイ
ル入力処理手段と、 前記各ブロック間接続を考慮して該ブロックの配置を行
うフロアプラン処理手段と、 前記論理ファイル入力処理手段に入力された各論理デー
タからそれを実現する素子群のデータに変換する論理合
成処理手段と、 前記論理合成処理手段による素子群データから各ブロッ
ク毎のフリップフロップ数を算出するフリップフロップ
数算出手段と、 近接する前記各ブロックをそれぞれ纏めて複数のグルー
プに分けるためのグループ分け情報をスキャンネットの
設計者から取得するグループ分け情報取得処理手段と、 前記フリップフロップ数算出手段の算出結果と前記グル
ープ分け情報を基に、前記各ブロックを複数のグループ
に分けるグループ割り当て処理手段と、 前記素子群のデータを基に各ブロックの物理的な配置の
補正を行う詳細フロアプラン処理手段と、 前記各ブロック毎の素子群の配置を行う素子配置処理手
段と、 前記素子配置処理手段により配置された各フリップフロ
ップと該フリップフロップが属するグループの重心点と
の距離を算出し、その算出結果が基準距離を超えた場合
に、該フリップフロップの配置位置から最も近接するグ
ループを算出し、その算出されたグループへ該フリップ
フロップを含めるスキャンネットの接続張替手段と、 該各グループに属するブロックのフリップフロップを配
線長が短くなるように接続順序を入れ換えてそれぞれ1
本のスキャンネットで接続して配線する配線処理手段
と、 前記各スキャンネット毎に論理回路の故障検出を行うテ
ストパターンを生成するテストパターン生成処理手段と
を備えたことを特徴とするスキャンネット設計システ
ム。
4. A scan net design system for designing a scan net provided for detecting a failure of a logic circuit, wherein a logic circuit to be realized is divided into a plurality of small logic blocks, and the small logic data is inputted to a file. Input processing means, floor plan processing means for arranging the blocks in consideration of the connection between the blocks, and conversion of each logical data input to the logical file input processing means to data of an element group for realizing the logical data Logic-synthesis processing means, and flip-flop number calculation means for calculating the number of flip-flops for each block from the element group data by the logic synthesis processing means; and for dividing each of the adjacent blocks into a plurality of groups. Acquisition of grouping information to acquire grouping information from scannet designer Processing means; group assignment processing means for dividing each block into a plurality of groups based on the calculation result of the flip-flop number calculation means and the grouping information; and physical assignment of each block based on the data of the element group. Detailed floor plan processing means for correcting the arrangement, element arrangement processing means for arranging the element group for each block, and each of the flip-flops arranged by the element arrangement processing means and the group to which the flip-flop belongs. The distance from the center of gravity is calculated, and when the calculation result exceeds the reference distance, the group closest to the flip-flop arrangement position is calculated, and the scan group including the flip-flop in the calculated group is calculated. Connection reconnection means and flip-flops of blocks belonging to each group are connected such that the wiring length is reduced. Swap the order and each one
A scan net design comprising: wiring processing means for connecting and wiring with scan nets of a book; and test pattern generation processing means for generating a test pattern for detecting a failure of a logic circuit for each scan net. system.
JP10007171A 1998-01-19 1998-01-19 Scannet design method and system Pending JPH11203342A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10007171A JPH11203342A (en) 1998-01-19 1998-01-19 Scannet design method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10007171A JPH11203342A (en) 1998-01-19 1998-01-19 Scannet design method and system

Publications (1)

Publication Number Publication Date
JPH11203342A true JPH11203342A (en) 1999-07-30

Family

ID=11658646

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10007171A Pending JPH11203342A (en) 1998-01-19 1998-01-19 Scannet design method and system

Country Status (1)

Country Link
JP (1) JPH11203342A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526283A (en) * 2006-02-07 2009-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus and computer readable recording medium for clustering circuit elements of circuit design

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009526283A (en) * 2006-02-07 2009-07-16 インターナショナル・ビジネス・マシーンズ・コーポレーション Method, apparatus and computer readable recording medium for clustering circuit elements of circuit design
US8196074B2 (en) 2006-02-07 2012-06-05 International Business Machines Corporation Heuristic clustering of circuit elements in a circuit design

Similar Documents

Publication Publication Date Title
US6966045B2 (en) Method and computer program product for estimating wire loads
JP4031905B2 (en) Circuit design apparatus and circuit design method
US20080066040A1 (en) Integrated Circuit Chip With Repeater Flops and Method for Automated Design of Same
WO2007063513A1 (en) Timing constraint merging in hierarchical soc designs
JPH0743742B2 (en) Automatic wiring method
US6321173B1 (en) System and method for efficient verification of functional equivalence between design models
US7559042B2 (en) Layout evaluating apparatus
KR100486274B1 (en) Method for generating net-list for integrated circuit device design
JPH10207920A (en) Circuit design method and apparatus
JPH11203342A (en) Scannet design method and system
US5825659A (en) Method for local rip-up and reroute of signal paths in an IC design
JP2007188517A (en) Timing distribution device
JP2954192B1 (en) Design method of testable semiconductor integrated circuit
JPH1167923A (en) Semiconductor integrated circuit, wiring arrangement method thereof, and recording medium recording the method
Donze et al. PHILO-a VLSI design system
JP5287540B2 (en) Circuit design apparatus and circuit design program
JPH09232436A (en) Logic synthesis method and device, and semiconductor integrated circuit design method
EP1955222A2 (en) Method for analyzing voltage drop in power distribution across an integrated circuit
JP2630218B2 (en) Circuit design equipment
JP2788763B2 (en) Semiconductor design apparatus and method
JP2648528B2 (en) LSI design method
JP2000187064A (en) Test group forming device and its forming method
JP3410698B2 (en) Inspection circuit insertion method
JP2002164435A (en) Method for designing layout
US20040025131A1 (en) Method and apparatus for placing repeater banks in integrated circuit design