JP2687858B2 - 集積回路の設計方法 - Google Patents

集積回路の設計方法

Info

Publication number
JP2687858B2
JP2687858B2 JP5331656A JP33165693A JP2687858B2 JP 2687858 B2 JP2687858 B2 JP 2687858B2 JP 5331656 A JP5331656 A JP 5331656A JP 33165693 A JP33165693 A JP 33165693A JP 2687858 B2 JP2687858 B2 JP 2687858B2
Authority
JP
Japan
Prior art keywords
scan
loop
register
loops
allocation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP5331656A
Other languages
English (en)
Other versions
JPH0765064A (ja
Inventor
デイ スージット
ポコンジャック マイドラッグ
ケー ロイ ラビンドラ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Publication of JPH0765064A publication Critical patent/JPH0765064A/ja
Application granted granted Critical
Publication of JP2687858B2 publication Critical patent/JP2687858B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318583Design for test
    • G01R31/318586Design for test with partial scan or non-scannable parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、集積回路のハイレベル
合成に関し、特にパーシャル・スキャン技術によるかか
る回路のハードウエア・シェアリングによる実現におい
て試験容易性と効率を達成するための合成に関するもの
である。さらに本発明は特に集積回路のパーシャル・ス
キャン試験を行うためにデータ・パス内のループを切断
するのに必要なスキャン・レジスタの量を極小化するた
めのハードウエア・シェアリングに関するものである。
【0002】
【従来の技術および解決すべき課題】ハイレベル合成
は、パーティショニング、モジュール選択、トランスフ
ォーメーションなど、さまざまな合成タスクを包含して
いるが、そのそれぞれがいくつかの設計パラメータ、た
とえば面積、速度、電力などに影響を及ぼす潜在的可能
性を持っている。しかし、ハイレベル合成における義務
的タスクとして広く認められているのは配分(allocati
on)、スケジューリング(scheduling)および割付け
(assignment)のみである。配分は、ハードウエア・ユ
ニット(例:加算器)の各タイプの基本ブロックをいく
つ設計に用いるかを決定するステップである。スケジュ
ーリングは、各処理にとって利用可能な時間間隔内の時
間位置が固定しているステップである。割付けは、設計
において処理のインスタンスをハードウエア・ユニット
に割り付けるステップである。
【0003】ハイレベル合成に関する文献においては、
きわめて多数のスケジューリング、配分、割付けアルゴ
リズムが研究されている。たとえば、M.C. McFarlandそ
の他による「デジタル・システムのハイレベル合成」
(The High-Level Synthesis of Digital Systems )
(IEEE議事録、78( 2) :301-317 )、R. Walker その
他の「ハイレベル合成システムの調査」(A Survey of
High-Level Synthesis Systems)(Kluwer Academic Pu
blishers, Boston, Ma. 1991)などがある。その基礎と
なるアルゴリズム技術は、非常に簡単なヒューリスティ
ックスから複雑なフォーマル技術までさまざまである
が、ほとんどすべてのアルゴリズムの目標とするところ
は、資源制約の下での速度またはその双対(dual)の最
適化である。最近では、狙いとする目標のリストは、フ
ォールトトレランスおよび試験容易性を含むところまで
拡大されてきている。
【0004】回路の試験容易性が選択した試験手法に依
存することは広く認められている。試験容易性試験方法
のハイレベル合成は、大きく分けてつぎの2つのグルー
プに分類できる。すなわち、組込み自己試験(ビルトイ
ン・セルフテスト)ベース(BIST-based)および自動試
験パターン生成ベース(ATPG -- automatic test patte
rn generation )である。BIST手法は、試験ベクト
ル生成のための疑似乱数発生器および多数入力シグニチ
ャ・レジスタ(MISR -- multiple-input signature reg
ister )またはその他の応答圧縮のためのシグニチャー
解析器の存在を前提としている。BIST手法のほとん
どは、乱数試験が非スキャン順序回路には必ずしも適し
ていないことからフル・スキャン設計手法を前提として
いる。
【0005】ATPGベースの試験手法は、試験パター
ンが決定的自動試験パターン生成器で生成されることを
仮定している。しかし、これらの技術は、順序回路試験
生成を容易にするためルーチン的にフル・スキャンを前
提としておらず、一部の技術はパーシャル・スキャンを
前提としている。レジスタ割付けおよびスケジューリン
グを用いた試験容易性の改善については、T.C.Lee その
他の国際コンピュータ設計会議(1992)議事録の
「データ・パス配分における試験容易化のための動作合
成」(Behavioral Synthesis for Easy Test-ability i
n Data Path Allocation)と題する論文およびT.C.Lee
その他の国際コンピュータ支援設計会議議事録(pp.
616−619, 1992)の「データ・パス・スケジ
ューリングにおける試験容易化のための動作合成」(Be
haviroal Synthesis for Easy Testability in Data Pa
th Scheduling )と題する論文に報告されている。いず
れの場合も、カリフォルニア大学バークレー分校のSTEE
D と呼ばれる順序試験パターン生成器を作動させること
によって試験容易性の改善が立証されている。Chenおよ
びSaabは、国際コンピュータ支援設計会議議事録(p
p.612−615,Nov.1992)の「試験容易
化のための動作合成」(Behavioral Synthesis for Tes
tability)と題する論文の中で、試験容易性の改善のた
めに試験可能な構造を識別し、合成するハイレベル試験
容易性解析プログラムの使用について説明している。自
己ループの数を極小化することによって試験可能なデー
タ・パスを生成する方式についてはA.Majumdarその他が
国際フォールトトレラント・コンピューティング・シン
ポジウム(1992)議事録の「ハイレベル合成への試
験容易化要因の組込み」(Incorporating Testability
Considerations in High-Level Synthesis)と題する論
文の中で報告している。しかし、実際の故障検出率は報
告されていない。ごく最近では、Lee その他がパーシャ
ル・スキャンおよび適正なレジスタ割付けによってデー
タ・パス内のループ形成を極小化する方法を開発したこ
とが、デザイン・オートメーション会議議事録(pp.
292−297,1993)の「非スキャン、パーシャ
ル・スキャン環境における高度に試験容易なデータ・パ
スの動作合成」(Behavioral Synthesis of Highly Tes
table Data Paths Under the Non-Scan and Partial Sc
an Environments )の中で報告されている。
【0006】さらに、レジスタ転送(RT -- register t
ransfer )レベル記述を操作することによって回路の試
験容易性を改善する試みを若干の研究者が行っている。
フリップフロップを選択的にスキャンするためレジスタ
転送レベル情報を用いることによって、ゲート・レベル
情報のみに限定した技術に比べて、性能が大幅に改善さ
れる。また、フルスキャンの下で100%試験可能な最
適化設計を生成するのにレジスタ転送レベル情報を用い
るトランスフォーメーションおよび最適化技術も提案さ
れている。
【0007】本発明の目的は、ゲート・レベル順序決定
的自動試験パターン生成器によって試験容易化設計を合
成することにある。順序回路の試験容易性に影響するい
くつかの要因がある。順序回路のフリップフロップ(F
F)の従属性は、各ノードがフリップフロップに対応す
るSグラフによって表現される。順序回路にFFuから
FFvまでの組み合わせパスがある場合、ノードuから
ノードvまでの有向辺(directed edge )がある。順序
試験生成の複雑さは、Sグラフにおける閉路長に関して
は指数関数的に増大する。順序試験生成の複雑さは、S
グラフにおける最長のパス(シーケンシャル・デプス -
- sequential depth)に関しては直線的に増大するだけ
である。スキャン・フリップフロップは、Sグラフが自
己ループ以外に閉路を持たず、シーケンシャル・デプス
が最低になるよう選択する。自己ループ以外のループを
持たず、シーケンシャル・デプスの小さい順序回路は、
電流決定的順序試験パターン発生器によって試験容易化
される。
【0008】順序回路における検出困難な故障の大半
は、中型および大型の強接続要素(SCC)の中に見い
だされる。クリークは、高い優先度をもって切断すべき
であり、検出困難な故障は自己ループ内では稀にしか発
生しない。その結果、試験パターン生成器によってアボ
ートされた故障の知識を用いてフリップフロップを選択
的にスキャンするという、ゲート・レベルでのすぐれて
効率的なパーシャル・スキャン方式が開発されている。
【0009】Agrawal およびCheng に付与された米国特
許第5,043,986 号は、チップ試験におけるパーシャル・
スキャン設計方法を開示している。この方法は、一つの
回路の記憶素子の部分集合を確立するというものであ
る。この部分集合は、試験モードにおいては、回路内の
選択された閉路長に等しいか、それより大きい実質的に
すべてのフィードバック・パスが排除されるよう選択さ
れる。なお、スキャン素子は、回路のすべての閉路を排
除するよう選ばれることが望ましい。前記米国特許は、
ゲート・レベルでのループの存在を説明しており、その
解決策はゲート・レベル試験のための試験設計である。
【0010】
【課題を解決するための手段】本発明は、設計対象回路
の試験容易性とともに、ハイレベル合成回路設計を考慮
している。すなわち、データ・パス内に発生するループ
のすべてのソースを識別する。本発明はまた、ハードウ
エア・コストおよびパーシャル・スキャン試験のオーバ
ーヘッド・コストの低い設計をもたらすように処理を同
時にスケジュールし、割り付ける方法を説明している。
ハイレベル合成時に、ループの生成を回避するような方
法でハードウエア・シェアリングを回路に組み込む。本
発明は、データ・パス内に生成するすべてのループ:す
なわち、対応するCDFG(conrol data flow graph)
内のループの結果としてのスケジューリングおよび割付
けに関係なくデータ・パス内に生成するCDFGルー
プ;CDFGのパス内の2つ以上の処理が同じモジュー
ルに割り付けられるときに常に生成する割付けループ;
素パス(disjoint paths)内の複数の処理が、ある条件
の下で同一のモジュールに割り付けられたときに生成す
る疑似ループ;および一つのモジュールに属する複数の
レジスタが同一のモジュールの出力から入力を受け取る
ときに生成するレジスタ・ファイル・クリークを考慮す
る。これらの処理は、高い資源利用率を維持しながら、
データ・パス内のループ生成を回避すべくスケジュール
され、割り付けられる。
【0011】本発明は、主として計算集約的(computat
ion-intensive )なアプリケーション・ドメイン、すな
わちDSPおよびグラフィックスに関するものであるた
め、コントローラは一般的には少なくともデータ・パス
より小さい値を持ち、通常その状態は少数のフリップフ
ロップしか必要としない。本発明の開示内容に従って、
データ・パスへのすべての制御信号は、コントローラの
状態フリップフロップのパーシャル・スキャンを通じて
完全に制御可能にされているものと仮定されている。
【0012】本発明は、所与の性能制約を満足させつ
つ、ハイレベル仕様から試験可能なデータ・パスを生成
し、高資源利用率を達成することに関するものである。
データ・パスは、合成されたデータ・パスが、自己ルー
プ以外のループを持たないようにすることによって、試
験容易化される。ここに用いられている「ループ」とい
う用語は、1以上の長さのループを指すものと理解され
る。極小ループ・データ・パスは、順序回路のゲート・
レベル試験容易性の他の測定基準をも満足する。特に、
試験生成の複雑さは、ループを含まないデータ・パスの
フリップフロップ数に関して直線的関係にある。また、
強接続要素(SCC)は強固に相互接続されたループの
グループを表していることから、ループが存在しないこ
とはデータ・パス内にかかるSCCが存在しないことを
意味する。したがって、当該データ・パスは、多くの検
出困難な故障を持たない。パーシャル・スキャン手法
は、CDFG記述から極小ループ・データ・パスを合成
するのに用いられる。
【0013】ハードウエア・シェアリングは、高資源利
用率を達成するのに広く用いられている手法であるが、
データ・パス内に新しいループを導入することによって
回路の試験容易性に悪影響を及ぼす場合がある。しか
し、本発明の開示内容に従えば、ハードウエア・シェア
リングをパーシャル・スキャン手法と適切に併用した場
合、ループが導入される恐れがあるにもかかわらず、試
験容易性の改善が達成される。CDFG内のループだけ
でなく、ハードウエア・シェアリングによってデータ・
パスに導入されるループも切断するため、スキャン・レ
ジスタはCDFGのいくつかの変数によって共用され
る。
【0014】したがって、本発明の主要な目的は、試験
可能なデータ・パスを合成するのに必要なスキャン・レ
ジスタの量を極小化するためにハードウエア・シェアリ
ングを用いて、集積回路のハイレベル合成方法を提供す
ることにある。
【0015】本発明の別の目的は、高資源利用率を確保
しながら、低コストで試験容易性を改善する方法を提供
することにある。
【0016】本発明のさらに別の目的は、極めて低いハ
ードウエア・オーバーヘッドで、設計の性能を犠牲にす
ることなく、試験容易化設計の集積回路を合成するのに
有用な方法を提供することにある。
【0017】本発明のさらに別の目的は、集積回路のハ
イレベル合成の際に生成する、自己ループを除くすべて
のループを識別し、切断する方法を提供することにあ
る。
【0018】
【実施例】ハードウエア共用アーキテクチャーの実現領
域が極めてしばしば相互接続条件によって支配されるこ
とは広く認められている。相互接続問題に取り組むこと
は、ハイレベル合成においてはすべての主要な設計決定
がくだされる時まで延期されることが多い。これは、処
理およびレジスタ転送レベルの相互接続条件を物理レベ
ルでのそれと正確に相関させることが極めて困難なこと
による。この問題の効果的な解決は、図1に模式的に示
すハードウエア・モデルが用いられた場合に達成でき
る。図1のモデルは、レジスタ・ファイル・モデルと呼
ばれるが、このモデルではすべてのレジスタ10が数個
のレジスタ・ファイル12,14,16および18にま
とめられている。各実行ユニットは、一般的にすべての
レジスタ・ファイルにデータを送ることができるが、各
レジスタ・ファイルは単一の機能ユニット20または2
2のそれぞれの一つの入力に接続される。
【0019】レジスタがレジスタ・ファイルにまとめら
れ、特定のレジスタへのアクセスがただ一つの機能ユニ
ットに制限されているハードウエア・モデルについて
は、数多くの変形が工業デザインに広く用いられてい
る。Cathedral-IIおよびHyper などのいくつかの完全に
作動可能なハイレベル合成システムもレジスタ・ファイ
ル・モデルに基づいている。上記のハードウエア・モデ
ルの適用に伴う利点は、その意図的な制限が相互接続の
数を制限することであり、(レジスタ・ファイルと実行
ユニットの間の)局部的相互接続の使用を促進する。ま
た、このモデルにおいては相互接続は効果的に共用でき
る。さらに、レジスタおよびレジスタ・ファイルにまと
められる組み合わせ制御論理をレイアウトするのに必要
な領域は、相互接続に必要な領域よりかなり小さい。
【0020】図2は、もう一つのレジスタ・ファイル構
造の略図で、適用されたハードウエア・モデルの利点お
よび欠点を示している。たとえば、いま、特定の制御ス
テップにおいて減算器22で演算しなければならない変
数を記憶する必要があると仮定する。レジスタ・ファイ
ル18のすべてのレジスタはすでに占有されているが、
レジスタ・ファイル14ないの少なくとも一つの自由な
レジスタがある。ここで、(1)レジスタ・ファイル1
8のレジスタの数を1だけ増やすか;または(2)レジ
スタ・ファイル14から新しい相互接続を減算器22の
右側入力に導入する、という2つの可能性が存在する。
ファイル・レジスタ・モデルは、上述の理由によって、
しばしば第2の可能性より優れている第一の可能性の採
用を要求する。本発明は、図1に示すレジスタ・ファイ
ル・モデルに照合して説明されているが、わずかな修正
によって、相互接続制約条件が異なるか、または除去さ
れている実施例にも本発明を適用できることは、当業者
には明らかである。
【0021】本発明の内容をより深く理解するために第
4次IIRカスケードフィルタのコントロール・データ
・フロー・グラフ(CDFG)の持つ特定のタイミング
制約条件の下でのひとつの可能なスケジュールおよび割
付けを示す図3を参照して説明する。最高のスループッ
ト達成を目標としており、CDFGの各処理は一つの制
御サイクルを要する。遅延D1(または遅延D2)から
Outまでのクリティカルパスは、6制御サイクルの長
さである。たとえば、処理+2は、制御サイクル2にス
ケジュールされており、図中、処理+2に隣接する順序
づけられた対(2,A1)で示されるように加算器A1
内で処理されるため割り付けられている。図3の構成
は、極小量の実行ユニットを備えている。
【0022】図3のCDFGにおいて、その結果として
生じるデータ・パスは、図4に示されている。対応する
Sグラフは図5に示されている。ゲート・レベル順序回
路のSグラフと同様に、データ・パスのSグラフはこの
データ・パスのレジスタ間の従属性を確認する。Sグラ
フの各ノードは、データ・パス内のレジスタを表す。レ
ジスタvがレジスタuに依存している場合、ノードuか
らノードvまでの辺が存在する。図5のSグラフは、デ
ータ・パスのレジスタにかかわるいくつかのループが存
在することを示している。Sグラフのもっとも長いルー
プは、7の長さを持っている。予想通り、データ・パス
は、後に示す表2のIIR.16 init 行が示すように、極め
て試験がむずかしい。
【0023】データ・パスの試験容易性は、回路のすべ
てのループを切断するためにゲート・レベルでパーシャ
ル・スキャン技術を用いることによって改善できる。図
5のSグラフのすべてのループを切断するには、3n個
のFF(nは語のサイズ)に翻訳されるLA1,LA2
およびLM1の最低3つのレジスタをスキャンすること
が必要である。しかし、スキャンするFFの個数が大き
いため、これに付随する面積および性能オーバーヘッド
は禁止的に大きい。
【0024】図3,図4,図5の例は、ハイレベル合成
の初期段階でデータ・パスの試験容易性を考慮しなかっ
た場合、試験の困難なデータ・パスがいかに発生し得る
かを示している。設計を試験容易化するというタスクを
ゲート・レベルまで遅らせる代わりに、各種のハイレベ
ル合成タスクの中で性能および資源利用という在来の設
計目標に加えて、本来の設計目標の一つとして試験容易
性を組み入れることが可能である。図6は、IIRフィ
ルタの同一のフロー・グラフを示すが、これは以前と同
じ性能制約条件を満足する異なるスケジュールと割付け
を備えている。このソリューションも使用する実行ユニ
ットの数に関して最適である点に留意されたい。さら
に、このインプリメンテーションは、2つの他の重要な
資源コスト構成要素;すなわちレジスタの数量および相
互接続に関して最適である。より重要なことは、試験容
易性の観点から、図7および図8にそれぞれ示す対応す
るデータ・パスおよびSグラフは、図4および図5のそ
れに比べて順序試験容易性に対してより敏感に反応す
る。しかし、それでもSグラフはループを持っている
が、レジスタRA2(ハッチで示す)をスキャンするこ
とによって、すべてのループを切断できる。レジスタR
A2をスキャンした結果得られるデータ・パスはループ
を持たず、非常に試験が容易である。表2のIIR.16 Fin
al行に見られるように、このデータ・パスにおいては1
00%の試験効率が達成可能である。
【0025】本発明をさらに理解するためには、データ
・パス内のループのソース、およびそれに対応するSグ
ラフを理解することが必要である。上述のハードウエア
・モデルでは、CDFG内にループが存在するために、
ループの最初のタイプ、すなわち、CDFGループがデ
ータ・パスに生成される。割付けループ、疑似ループお
よびレジスタ・ファイル・クリークは、スケジューリン
グおよび割付けの際にハードウエア・シェアリングによ
って生成される。
【0026】データ・パス、したがってSグラフ内の最
も明白なループ・ソースは、CDFG内のループの存在
である。CDFG内のデータ従属辺から成るサイクルが
存在する場合には、データ・パス内にCDFGループが
生成される。たとえば、図3において、CDFGループ
(+5 ,D3,*5 ,+6 ,+5 )は、使用されるレジ
スタおよびモジュールに関係なく、データ・パス内にル
ープを生成する。図3に示す割付けが用いられた場合、
対応するデータ・パスにそのループ(RA1,A1D
1,LM1,RA2,RA1)が生成される。同じよう
に、図6に示す割付けは、そのループ(RA2,A2D
1,LM1,RA1,RA2)を生成する。
【0027】一般に、CDFGの各サイクルは、行われ
る配分、スケジューリング、割付けにかかわりなく常に
データ・パス、Sグラフにループを生成する。ハードウ
エア・シェアリングが用いられると否とにかかわらず、
CDFGループはデータ・パス内のループに変換する。
CDFGループは、DSPや数値計算のような分野では
多くのアルゴリズムの構造においてはごく一般的であ
る。
【0028】割付けループは,あるCDFGのパスの2
つ以上の処理が同一モジュールに割り付けられる場合に
はいつでも生成される。2つの連続した処理が同一モジ
ュールに割り付けられる場合、自己ループ(1の長さの
ループ)が生成される。たとえば、図3に示すCDFG
において、+4 と+5 の連続処理がA1という同一モジ
ュールに割り付けられることによって、データ・パスに
自己ループ(LA1−LA1)が生成される(図5)。
【0029】CDFGパスに沿って処理uから処理vま
での処理がn個の別々のモジュールに割り付けられ、u
およびvが同一モジュールに割り付けられた場合、nと
いう長さのループがデータ・パスに生成される。いま、
図3に示すCDFGにパス(+1 ,+4 ,+5 ,+8
を考えた場合、処理+1 および+8 が同一モジュールA
2に割り付け、中間の処理+4 および+5 をモジュール
A1に割り付けることは、図5のSグラフに2の長さを
持つループ(LA2,LA1,LA2)を生成する。
【0030】データ・パスの順序ループは、そのループ
が通常の作動条件の下では活性化できない場合には、疑
似と呼ばれる。疑似ループは、疑似パスの特殊なケース
である。図9および図10は、データ・パス内の疑似ル
ープの生成を示している。図9は、CDFG内の2つの
パスのセグメントを示しており、処理+1 および+3
制御ステップ1にスケジュールされ、処理+2 および+
4 が制御ステップ2にスケジュールされている。いま、
処理+1 および+2 が加算器A1およびA2にそれぞれ
割り付けられた場合、割付けループは生成しない。同じ
ように、処理+3 および+4 が加算器A2およびA1に
それぞれ割り付けられた場合、いかなる割付けループの
生成も回避しながら、最大限の資源利用率が達成され
る。しかし、図10に示す、その結果得られるデータ・
パスは順序ループ:すなわちA1,M2,LA2,A
2,M1,LA1,A1の生成を示している。このルー
プを活性化するためには、マルチプレクサM1およびM
2に対する必要な制御信号c1およびc2は、いずれか
の連続する制御ステップにおいて{c1=1、c2=
0}(または{c1=0、c2=1})でなければなら
ない。しかし、このことは、処理+4 に続く処理+
2 (または+2 に続く+4 )の実行を必要とするが、こ
れは明らかに不可能である。したがって、通常の作動条
件では、順序ループは決して活性化されることはなく、
したがって疑似ループである。
【0031】組み合わせ疑似ループは、データ・チェイ
ニングが認められる場合、すなわち、2つ以上の処理が
同一制御ステップにスケジュールされる場合、データ・
パス内に生成する。しかし、データ・チェイニングが認
められない場合でも、ハードウエア・シェアリングは、
データ・パス内に異なったタイプの疑似ループ、すなわ
ち、図10に示す順序疑似ループの生成をもたらすこと
がある。データ・パス内の2つ以上のレジスタが関係す
る各順序疑似ループに対応して、同じレジスタに関係す
るSグラフに疑似ループが存在する。データ・パスへの
制御信号が完全に制御可能であると仮定しているため、
疑似ループは試験生成の際には真のループとして機能す
る。このため、順序疑似ループは他のCADツールにと
って問題をもたらさないが、他のループと同じように順
序試験パターン生成の複雑さに寄与する。
【0032】モジュールMi が各入力に付随するレジス
タ・ファイルを持っているとき、レジスタ・ファイル内
のレジスタは、Sグラフにレジスタ・ファイル・クリー
クを生成する場合がある。モジュールMi のレジスタ・
ファイルに属するレジスタは、それがおそらく他のモジ
ュールのほかに、Mi からデータを受け取る場合、自己
ループ・レジスタと呼ばれる。モジュールMi の各自己
ループ・レジスタは、モジュールMi を通じてそれ自体
および他のすべての自己ループ・レジスタへの(から
の)パスを持っている。これに対応するSグラフにおい
ては、各自己ループ・レジスタは、モジュールMi の他
の自己ループ・レジスタへの(からの)辺を持ってい
る。したがって、モジュールMi の左および右のレジス
タ・ファイルがそれぞれmおよびnの自己ループ・レジ
スタを持っている場合、Sグラフには(m+n)の大き
さを持つクリークが生成される。
【0033】図12は、図14に示す楕円波フィルタの
データ・パスに用いられる加算器の一つであるモジュー
ルA1のレジスタ・ファイルを示す。モジュールへの処
理の割付けは図13に示す。A1にマップされる各処理
の左のオペランドは、A1の左のレジスタ・ファイルの
一部レジスタに割り付けられなければならない。この割
付けはまた図11にも示されている。変数のライフタイ
ムが競合するため複数のレジスタが必要である。たとえ
ば、変数(0,10)、(1,7)、(6,19)およ
び(33,31)は、7番目の制御ステップではすべて
生きており、したがって、4つの異なる自己ループ・レ
ジスタに割り付けなければならない。左のレジスタ・フ
ァイルは、5つのレジスタ:{L1...L5}を、ま
た右のレジスタ・ファイルは4つのレジスタ:{R
1...R4}を持っている。レジスタの入力が示され
ている。たとえば、レジスタL1は、モジュールA1か
ら来る単一の入力を、またレジスタR1は3つのA1,
A2およびM1を備えている。
【0034】A1の左のレジスタ・ファイルには5つの
自己ループ・レジスタがあり、右のレジスタ・ファイル
には3つの自己ループ・レジスタがあるので、8つの自
己ループ・レジスタにかかわるクリークが対応するSグ
ラフに生成される。
【0035】クリークの各レジスタは、クリークの他の
すべてのレジスタに完全に接続されているので、kとい
うサイズのクリークのすべてのループを切断するには、
k−1のレジスタをスキャンする必要がある。このこと
は、クリークの生成が試験パターン生成をきわめて困難
にするだけでなく、パーシャル・スキャン・ソリューシ
ョンをきわめて高価なものにする。
【0036】パーシャル・スキャン試験最適化のための
回路のハイレベル合成におけるハードウエア・シェアリ
ングという本方法を考案するに当たって、スループット
の制約条件を満足させつつ、ハードウエア資源の利用と
試験容易性に同時に取り組むスケジューリングと割付け
の際にいくつかの目標を設定した。ハードウエア的に競
争力のある回路を設計するためには、インプリメンテー
ション・コストの3つの構成部分、すなわち実行ユニッ
ト、レジスタ、および相互接続のそれぞれを考慮するこ
とが必要である。試験容易性というもう一つの配慮要因
は、データ・パス・グラフの4つのループ・タイプすべ
てに、またやや程度は落ちるがシーケンシャル・デプス
にも制約を課することになる。
【0037】本方法は、3つの段階を含んでいる。第一
の段階では、在来のハイレベル合成システムは、資源利
用率をもっぱら目標とする実行ユニット量の初期配分を
行う。実行回路の配分にはカリフォルニア大学バークレ
ー分校のHyperシステムを用いた。Hyperシス
テムについては、J. Rabaey その他が IEEE Design and
Test of Computers(PP.40 to 51, June 1991)の「デ
ータ・パス集約的アーキテクチャーの高速プロトタイプ
化」(Fast Prototyping of Data-Path-Intensive Arch
itectures )と題する論文の中で説明している。第二の
段階では、すべてのCDFGループを、変数の部分集合
(スキャン変数)をスキャン・レジスタに割り付けるこ
とによって切断する。最低一回のスキャン変数を消費す
る各処理をひとつの実行ユニット(モジュール)に割り
付け、そのスキャン変数を該当するレジスタ・ファイル
に割り付ける。第三の段階では、大域的資源利用率およ
び試験容易化手段を用いてCDFGの各処理の同時スケ
ジューリング/割付けを行う。
【0038】第一段階において実行ユニット量の初期配
分が決定されているため、問題は最小量のスキャン・レ
ジスタを用いてCDFGループを切断することである。
【0039】ゲート・レベル回路のSグラフの場合に関
する関連する問題が、すでに先行技術で扱われている。
ゲート・レベル回路の場合、スキャン・レジスタの必要
最低量は、スキャンした場合、Sグラフのループのすべ
てを切断するSグラフの頂点の最低量に等しい。極小フ
ィードバック頂点集合( minimum feedback vertex se
t)問題は、NP完全であるため、この問題を解くいく
つかのヒューリスティクスが先行技術に存在する。
【0040】ハードウエア・シェアリングを用いない場
合、極小フィードバック頂点集合問題の解は、直接CD
FGループの切断に適用できる。しかし、本発明の開示
内容に従ってハードウエア・シェアリングを用いた場
合、最低フィードバック頂点集合は必ずしも良い解では
ない。なぜなら、CDFGレベルでは、ループを切断す
るために選択した変数(スキャン変数)はスキャン・レ
ジスタを共用できるからである。
【0041】ループ切断の問題に対してハードウエア・
シェアリングが提供する新しい次元は、図3,図4,図
5にそれぞれ示すIIRフィルタのCDFG、データ・
パスおよびSグラフによって図示されている。極小フィ
ードバック頂点集合問題の一つの可能な解は、辺:
{(+1 ,D1),(+5 ,D3)}であろう。しか
し、変数D1およびD3は第一制御ステップにおいて同
時に生きていることから、これらは共用できない。した
がって、CDFGループを切断するには2つのスキャン
・レジスタが必要である。これに対して、スキャン変数
(+2 ,+1 )および(+6 ,+5 )が選択された場
合、すべてのCDFGループは切断される。スキャン・
レジスタは、ライフタイムがオーバラップしないため、
使用したスケジュールおよび割付けにかかわりなく、同
一スキャン・レジスタに記憶される。
【0042】もう一つの公知の方式は、境界変数(遅延
を伴って辺に対応する変数)の部分集合を用いてCDF
Gループを切断するというものである。すべての境界変
数は同時に存在するので、選ばれた各変数は、別個のス
キャン・レジスタに割り付けなければならない。スキャ
ン・レジスタの再使用の可能性を極大化するために、ラ
イフタイムの短い境界変数を選択する。後に、レジスタ
割付けの際に、境界変数はデータ・パスにおける割付け
ループの生成を極小化するため、中間変数とともにスキ
ャン・レジスタを共用する。
【0043】公知の方式はスキャン・レジスタを共用す
るという重要なアイデアを導入しているが、この技術は
CDFGループを切断するためにスキャン変数を選択し
ながら、ハードウエア・シェアリングを利用していな
い。第一に、公知の技術では、すべての境界変数は(第
一制御ステップに)同時に存在し、したがってスキャン
・レジスタを共用することはできない。これとは対照的
に、本発明の開示内容に従えば、スキャン変数の候補と
してCDFGループ内のすべての変数を考慮するステッ
プは、スキャン・レジスタの効率的な共用の可能性を大
幅に改善する。いま、図3のIIRフィルタを考えた場
合、スキャン変数を境界変数に限定することによって、
2つのスキャン・レジスタを使用することになる。しか
し、CDFGループ内のすべての変数を考慮することに
よって、上述のように単一のスキャン・レジスタのみを
用いるソリューションが得られることになる。
【0044】第二に、変数のライフタイムの長さは、ハ
ードウエア・シェアリングに間接的かつ二次的な影響し
か及ぼさない。2つの変数が同一のレジスタを共用でき
るという必要かつ十分な条件は、それらが同時に存在し
ないこと、および2つの変数を転送するための適切な相
互接続が配分されていることである。
【0045】本発明においては、CDFGループ切断の
目的は、以下の3つの基準が同時に満たされるようスキ
ャン変数の集合を選択することである:すなわち、自己
ループを除くすべてのCDFGループが切断されるこ
と;選択したスキャン変数が最少量のスキャン・レジス
タに割り付けられること;およびその後のスケジューリ
ングおよび割付け段階で生成される他のループを切断す
るためスキャン・レジスタが再使用可能であること。
【0046】上記の基準は極小ハードウエア・シェアリ
ング切断(HSC)問題である。ハードウエア・シェア
リングが認められない場合、極小HSC問題は、極小フ
ィードバック頂点集合問題に還元される。したがって、
極小HSC問題のための正確なアルゴリズムは、少なく
ともNP完全であることが知られている極小フィードバ
ック頂点集合問題と同様計算集約的である。
【0047】本発明においては、確率論的、かつヒュー
リスティックn技術を組み合わせた方式を用いて極小H
SC問題を扱う。極小HSC問題の上記3つの基準を満
足させるに当たって変数の効果を表現するために2つの
手段を用いる。
【0048】ループ切断効果(LCE)手段は、極小H
SC問題の第一の基準を満足させるのに役立つ。変数の
LCE手段は、当該変数をスキャン・レジスタに割り付
けることによって切断対象ループの量を推定する。ルー
プの量は指数関数的であり得るので、またループを効果
的に計数する既知のアルゴリズムがないため、ランダム
・ウォーク(random walk )手法が適用される。
【0049】ランダム・ウォークは、単位値をCDFG
の各ノードに割り付けることによって出発する。各逐次
反復において、各ノードvにおける値は一つのランダム
に選んだ有向辺に沿ってvからその近隣点の一つまで伝
播する。当該値を伝播するのに辺が用いられるたびごと
に、当該辺の輻輳計数がインクリメントされる。反復回
数は、本発明においては、ユーザーが指定するようにな
っているが、好ましいメンバーは,当該CDFGのノー
ド数の二次関数である。ランダム・ウォーク終了時に
は、CDFGの各辺の輻輳は、それぞれの辺が属するル
ープ数の推定値を与える。なお、この推定値はLCE手
段として用いられる。
【0050】ハードウエア・シェアリング効果(HS
E)手段は、極小HSC問題の第二、第三の基準を満足
させるために導入される。変数vのHSEは、vがデー
タ・パスの4種類のループすべてを切断するのに必要に
なる他の変数とともにスキャン・レジスタを共用できる
尤度を推定する。それは、以下の2つの構成部分から成
っている。
【0051】第一の構成部分は、スキャン変数選択の第
二の基準、すなわち、CDFGループを切断するのに必
要なスキャン・レジスタの量の極小化を扱う。HSE最
大値は、CDFGの他のSCCからのスキャン変数候補
ともっともライフタイムの重なりの少ない変数に割り付
けられる。この処理はまだスケージューリングされてい
ないため、ASAPおよびALAPタイミング情報を用
いて計算する。これらの計算は、R.A. Walker その他の
前掲論文に説明されている。
【0052】第二の構成部分は、変数vが割り付けられ
るスキャン・レジスタSR1がその後他の3つのタイプ
のループを切断するのに再使用できる尤度を測定する。
∫vを変数vが入力される処理のタイプとする。本ハー
ドウエア・モデルの文脈においては、SR1は同一タイ
プ∫v の処理への入力であり、またそのライフタイムが
vのライフタイムを重なり合わない変数集合{x}によ
ってのみ共用され得る。第二の構成部分は、集合{x}
の基数となるよう設定され、したがって割り付けられた
スキャン・レジスタが後に最大数の変数によって再使用
できるような変数が有利である。
【0053】CDFGループを切断するためスキャン変
数を選択するアルゴリズムは次のようなものである。 スキャン変数の選択
【0054】
【外1】
【0055】CDFGループを切断するためスキャン変
数を選択した後、すべてのスキャン変数を割り付けられ
るスキャン・レジスタの極小集合を識別する。これは、
素な(disjoint)ライフタイムを持つすべてのスキャン
変数を同じスキャン・レジスタに割り付けることによっ
て最適に行い得る。第二のステップとして、可能な限り
多くの実行ユニットの可能な限り多くのレジスタ・ファ
イルからスキャン・レジスタを選択する。第二のステッ
プは、スケジューリングと割付けの際にループの生成を
回避するため変数を割り付けるべくスキャン・レジスタ
を再使用できる機会を増す。
【0056】図6に示すIIRフィルタを用いてスキャ
ン変数を選択するプロセスは、本方法を図示するのに用
いられる。辺{(+2 ,+1 ),(+1 ,D1),(+
6 ,+5 ),(+5 ,D3)}は、ランダム・ウォーク
の際に極大に輻輳し、したがってLCE最大値を得る。
なお、これらの変数は、最大数のループを切断すること
に留意されたい。変数{(+2 ,+1 ),(+6
5 )}は、ライフタイムがそれぞれ重なり合わず、集
合{x}の基数が極大であることからHSE手段の両構
成部分において高く評価される。したがって、「スキャ
ン変数の選択」アルゴリズムは、変数{(+2
1 ),(+6 ,+5 )}を選択し、同じスキャン・レ
ジスタに割り付ける。
【0057】スキャン・レジスタの極小集合を用いてC
DFGループを切断した後、第三段階、すなわち最終段
階において、全体的試験容易性および資源利用手段を用
いて、CDFGの各処理を同時にスケジューリングし、
割付けする。その目的は、上述の3つのタイプのループ
の生成を回避しつつ、試験容易なデータ・パスを生成す
ることにある。しかし、最終設計が試験容易であるのみ
ならず、ハードウエア・コストにおいて競争力のあるも
のとするため制御ステップに対する制約条件を満足し、
資源利用率を極大化するスケジュールと割付けを用いる
ことが優先される。
【0058】アルゴリズムの各反復において、まだスケ
ジューリングおよび割付けを行っていない処理から、最
小のスラック(ALAP−ASAP)を持つ処理opi
を選択する。当該処理がスケジューリング/割付けされ
る(モジュール、制御ステップ)対の集合、{(Mi
i )}を識別する。各対について、試験容易性、資源
利用およびその後の処理のスケジューリングおよび割付
けの弾力性に関するコストが計算される。その後、最低
コストの対が選択される。コスト手段は以下に説明す
る。処理のスケジューリングおよび割付けアルゴリズム
は次のようなものである。 スケジューリングおよび割付け()
【0059】
【外2】
【0060】ある処理について試験容易性コストをスケ
ージュリングおよび割付けに関連づける目的は、当該ス
ケジューリングおよび割付けがデータ・パスの試験容易
性に、データ・パスにループを生成することによって影
響を及ぼす程度を測定することである。割付けは、3つ
のタイプのループ、すなわち割付けループ、疑似ルー
プ、レジスタ・ファイル・クリークを導入することが有
り得るため、生成されるループの各タイプと結合したコ
スト、およびループを切断するのに使われるスキャン・
レジスタから成るコスト関数を導き出す。
【0061】試験容易性コストの尺度は、以下の式で与
えられる。コスト手段の第一の構成部分、(size
assign_loop +costassign_scan )は、割付けルー
プ生成に起因するコストである。ここでsize
assign_loop は生成されたループの長さであり、cos
assign_scan は当該ループを切断するため既存の、ま
たは新しいスキャン・レジスタを用いるコストである。
第二、および第三構成部分は、他の2つのタイプのルー
プ、すなわち、疑似ループおよびレジスタ・ファイル・
クリークを扱い、costseq_depth は割付けに起因す
るシーケンシャル・デプスの増加を測定する。
【0062】 costTest=(sizeassign_loop +costassign_scan )+ (sizefalse_loop+costfloop_scan)+(sizeclique+ costclique_scan )+costseq_depth ループ生成に起因するコストの計算方法を説明する前に
モジュール割付けの際にこのようなループの生成を効果
的に検出する方法を説明する必要がある。
【0063】モジュール割付けが進むにともなって、ス
ケジューリング及び割付け()手順に示すようにデータ
・パス・グラフ(DP(;)が維持される。辺(Mi
j)は、スキャン・レジスタによって切断されないデ
ータ・パスにおけるモジュールMi からモジュールMj
の相互接続を表す。処理opk がモジュールMj に割り
付けられると、
【0064】
【外3】
【0065】に割り付けられている各モジュールMi
ついてMi からMj まで辺が付加され、Mi からMj
での辺はスキャン・レジスタによって切断されていな
い。
【0066】DPGに付加される辺(Mi ,Mj )に関
しては、DPGにMj からMi までのパスがあれば、処
理opk をモジュールMj に割り付けることによって疑
似ループが導入される。したがって、この割付けによっ
て導入される疑似ループを検出するには、opk をMj
に割り付けるとともにMj から
【0067】
【外4】
【0068】に割り付けられている各モジュールMi
のパスをチェックすれば十分である。
【0069】CDFG辺(opi ,opj )を、処理o
i およびopj が同一のモジュールに割り付けられて
いる場合、自己ループ変数と呼ぶことにする。自己ルー
プ変数は、モジュールノレジスタ・ファイル(左または
右)に結合される。これらの変数は、最終的にレジスタ
・ファイルの自己ループ・レジスタに割り付けられる。
自己ループ変数のライフタイムがオーバラップしなけれ
ば、これらは単一の自己ループ・レジスタに割り付けら
れる。しかし、ライフタイムがオーバラップする場合、
複数の自己ループ・レジスタに割り付けられる必要があ
り、その結果、Sグラフにおけるレジスタ・ファイル・
クリークが生成される。
【0070】図11は、図14に示すEWFの処理を割
り付けながら、モジュールA1の左側レジスタ・ファイ
ルに割り付けられた変数を示す。変数(opi ,o
j )、そのライフタイム、ソース・モジュール(op
i に割り付けられたモジュール)およびレジスタ割付け
を図11に示す。自己ループ変数(0,10)、(1,
7)、(6,19)および(33,31)は、すべて第
7制御ステップに存在し、4つの異なる自己ループ・レ
ジスタに割り付けられる必要がある。(P1,12)も
第7制御ステップに存在するため、もう一つのレジスタ
が必要である。図13に示す残りの変数を割り付けるこ
とによって、図示左側レジスタ・ファイルが生成し、モ
ジュールA1の左側レジスタ・ファイルに5つの自己ル
ープ・レジスタが生成する。
【0071】割付けに際してレジスタ・ファイル・クリ
ークの生成を検出するために、各モジュールMi の自己
ループ変数のライフタイムの情報が維持される。処理o
iのモジュールMi への割付けが行われると、Mi
既存の自己ループ変数とのオーバラップについてopi
の入力変数がチェックされる。サイズmのクリークがモ
ジュールMi について存在する場合、サイズ(m+k)
のレジスタ・ファイル・クリークが生成され、処理op
i のk入力変数はMi の既存の自己ループ変数と重なり
合うライフタイムを持っている。
【0072】割付けループの生成に起因するコストは、
以下のように計算される。まず、処理opi をモジュー
ルMj に割り付けることが、CDFGにおける処理op
i の推移ファンイン(transitive fanin)にパスをトラ
バースすることによって割付けループをもたらすかどう
かをチェックする。生成された各ループについて、まず
利用可能なスキャン・レジスタを用いてループを切断す
る試みがなされる。これが首尾よくいけば、使用したス
キャン・レジスタが同じ制御ステップの他の処理によっ
て使用されたかどうかによって異なるが、cost
available_scanがスキャン・レジスタ・コスト、cos
assign_scan に付加される。当該ループが利用可能な
スキャン・レジスタによって切断できず、新しいスキャ
ン・レジスタを付加することがMax_scan_regs_allowed
のユーザーが指定する制限によって認められる場合、当
該ループを切断するため新しいスキャン・レジスタが使
われる。そして、新規スキャン・レジスタのコスト、c
ostnew_scanがcostassign_scan に付加される。
割付けによってループが生成されるが、スキャン・レジ
スタを用いることによって切断される場合、size
assign_loop =0である。
【0073】利用可能なスキャン・レジスタがループを
切断できず、新しいスキャン・レジスタを用いることも
できない場合、データ・パスに割付けループが生成さ
れ、切断されないまま残される。データ・パスにループ
を残す恐れのある処理opi のモジュールMj への割付
けを防ぐため、生成するループのサイズをコスト関数に
付加する。後者の場合、スキャン・レジスタは用いられ
ず、costassign_scan =0となる。
【0074】opi のモジュールMj への割付けに関連
づけられるコストの計算は、以下のアルゴリズムによっ
て行われる。 costassignment_loop (opi ,Mj
【0075】
【外5】
【0076】疑似ループおよびクリークの生成に起因す
るコストは、割付けループのそれと同じような方法で計
算される。割付けによるシーケンス・デプスの増加は、
割り付けられる処理の推移ファンインをトラバースする
ことによって計算できる。
【0077】試験容易化設計の合成に関する面積オーベ
ーヘッドは、この手法が試験容易化計画のためのゲート
レベル設計よりも大きな利点を持つよう最低限に抑えな
ければならない。
【0078】以下は、高資源利用率を達成するのに必要
な基準である。スケジューリングおよび割付けにとって
最も困難な処理(低利用率になる恐れのある追加的なモ
ジュールを必要とする処理)を最初に扱うべきである。
後に容易に再使用できない相互接続の導入は避けるべき
である。全体的相互接続よりも局部的相互接続を優先す
べきである。レジスタもインプリメンテーション・コス
トの重要な部分である。導入するレジスタは、後で効果
的に再使用する可能性の大きいものでなけらばならな
い。
【0079】設計の物理的合成を完了した後、相互接続
が局部的か、全体的かを予測するのに用いる2つの単純
な基準がある。最初の基準は、あるユニットからそれ自
体への相互接続が、配置、配線の後になお局部的である
ことである。第二の基準は、チップの一部領域に高度の
輻輳を来すためにしばしば配線に最大の困難を来すこと
があるという事実に基づくものである。輻輳を避けるた
めに、相互接続の割付けおよび配分の段階で、ある特定
のレジスタ・ファイルから発する、またはそれに向かう
相互接続の数に制限を設ける。
【0080】ある処理についての特定の割付けおよびス
ケジュールについて、増加順に最適に使用できる以下の
資源にコストを割り当てる:(1)新レジスタ、(2)
新局部的相互接続、および(3)新全体的相互接続。
【0081】一つ以上のスケジューリングおよび割付け
の決定が同じハードウエア・コストである場合、後に再
使用の可能性の大きい新資源を導入する決定が優先され
る。導入した資源の再使用の可能性は、スケジューリン
グおよび割付けを行っていないCDFGノードで新資源
を使用できるものがいくつあるかを数えることによって
計算される。
【0082】フレキシビリティ・コストは、処理opi
の特定のスケジューリングおよび割付けがどの程度op
i の推移ファンアウト(transitive fanout )における
その後の処理のスケジューリングおよび割付けのフレキ
シビリティに悪影響を及ぼすかを測定する。フレキシビ
リティ・コストは、opi の推移ファンアウトにおける
処理のスラックの減少を合計することによって計算され
る。
【0083】本技術の効果を評価するため、以下のデー
タ・パス集約的回路をベンチマークとして選んだ。最初
の例は、オールゼロFIRウェーブ・デジタル・フィル
タ(WDF)である。第二の例は、4次カスケードII
Rフィルタである。最後の例は、広く使われている5次
楕円波デジタル・フィルタ(EWF)である。インプリ
メンテーション・バージョンのために選択されたこのフ
ィルタのローパス・タイプは、電気通信業界で使用する
CCITTG712 PCM仕様に従って設計された。
この例は、ビット・トルー(bit true)モードでシミュ
レートし、語長に20ビットおよび係数に6ビットを用
いたとき、0Hzから3kHzまでの+/−0.125
dBのパスバンド・リップルおよび4.0kHzで−1
4dB、4.6MHzで−32dBのストップバンド減
衰を持つという要求仕様に完全に合致することが検証さ
れた。16kHzの所要標本周波数は、完全ハードウエ
アーシェアリングによって容易に達成できるが、加算器
が1制御サイクル、乗算器が2制御サイクルを必要とす
ると仮定して、17制御ステップのクリティカルパス時
間にスケジュールすることに決定した。加算器および乗
算器の時間条件の選択に際しては、ハイレベル合成に関
する文献に説明されていた事実上標準的なベンチマーク
手順の影響を受けた。
【0084】EWFのスケジュールおよび割付け、なら
びにHyperシステムを用いて合成した対応するデー
タ・パスを図13および図14に示す。矩形および円
は、それぞれ乗算および加算を表す。モジュールの一つ
のレジスタ・ファイルの詳細な割付けを図12に示す。
本発明に従って得たスケジュール、割付けおよび対応す
るデータ・パスを図15および図16に示す。CDFG
ループを切断するため選ばれた8つのスキャン変数を図
15にカットラインで示す。これらのスキャン変数は、
モジュールA1(図11)のL1, R1および図16
のデータ・パスに示すモジュールA2の3つのスキャン
・レジスタしか必要としなかった。その後のスケジュー
リングおよび割付け段階は、図16に示す最低ループ・
データ・パスを生成するために3つのスキャン・レジス
タを用いる。
【0085】表1は、ハイレベル合成の後のベンチマー
ク設計の各種パラメータを示す。
【0086】
【表1】
【0087】3つの例のそれぞれについて、初期インプ
リメンテーションおよび最終インプリメンテーションの
2つの行がある。初期設計は試験容易性以外のパラメー
タを最適化して得た。また、最終設計は試験容易性を考
慮にいれて作成した。実行ユニット(EXU)の数およ
び制御ステップ(CS)は両段階の設計に関して同一で
ある。ある場合、たとえばEWFにおいては最終設計に
は、さらに数台のレジスタ(Reg)、マルチプレクサ
(MUX)および相互接続(Interconnect)を必要とし
たが、これは試験容易性の改善の結果、資源要件がわず
かながら増大する可能性があることを示している。しか
し、平均的にはエリア・オーバーヘッドはわずかなもの
である。
【0088】本発明の結果を評価するため、タイムフレ
ーム拡張ベースのゲート・レベル逐次ATPGを行っ
た。回路の試験容易性を識別するため、重要なATPG
パラメータ、すなわち故障検出率、試験効率、試験長お
よびSUN Sparcstation2上でのATPG時間を比較し
た。初期設計ではパーシャル・スキャンを用いなかった
が、最終設計では一部のフリップフロップを選択的にス
キャンした。比較のため、ゲート・レベル・パーシャル
・スキャン・ツール、OPUSを初期回路にアップライ
ン(appligned )した。OPUSについては、V. Chick
ermaneおよび J.H.Patel が国際コンピュータ支援設計
会議議事録(pp.400−403,Nov.199
1)の「故障指向パーシャル・スキャン設計方式」(A
Fault OrientedPartial Scan Design Approach )と題
する論文に説明されている。
【0089】
【表2】
【0090】表2には、回路の各種バージョン上でAT
PGを動作させた結果が含まれている。第1列の名前の
後の数字の添字は、インプリメンテーションのワードサ
イズに対応している。各回路に対応する4つの行があ
る。initとfinal と記してある行は、初期段階および最
終段階である。他の2つの行は、2つの異なるオプショ
ンで動作させたOPUSによって初期設計から得た回路
に対応している。GPS_cという行は、スキャン・フリッ
プフロップを用いてすべてのループ(自己ループを除
く)を切断した後、OPUSによって得た回路を示して
いる。GPS_n という行は、最終設計に存在するのと同じ
数のスキャン・フリップフロップを用いるようOPUS
に制約を課した場合に得られる回路を示している。
【0091】表2は、本発明を用いて得た最終設計が一
貫して初期設計より試験容易性に富んでいたことを示し
ている。ゲート・レベル・ツールのOPUSで同じレベ
ルの試験容易性を達成するためには、最終設計(Final
)で必要としたよりもかなり多くのフリプフロップ(G
PS_c ) をスキャンしなければならなかった。たとえ
ば、EWF.20の場合、OPUSではすべてのループ(自己
ループを除く)を切断し、最終設計(この場合、スキャ
ン・フリップフロップは60しか必要としなかった)と
同じレベルの試験容易性を達成するには、300のフリ
ップフロップを必要とした。
【0092】さらに、OPUSを最終設計(Final )の
場合と同じ数のフリップフロップ(GPS_n )をスキャン
するよう制限を設けた場合、得られる試験容易性は、最
終設計のそれを大幅に下回った。EWF.20の場合、最終設
計ではわずか233秒で100%の試験効率を達成した
が、GPS_n では14894秒でわずか40%の試験効率
しか得られなかった。
【0093】本発明は、最低ループ・データ・パスを合
成するのに必要なスキャン・レジスタの数を極小化する
ためハードウエア・シェアリングを利用する方法を説明
している。CDFGループを切断するのに必要な最小数
のスキャン・レジスタを選択し、データ・パスにさらに
ループが生成されるのを回避するためスケジューリング
および割付けの際に当該スキャン・レジスタを再使用す
るため新しいアルゴリズムを用いている。提案されてい
る技術は、すべてのベンチマーク設計について資源利用
率または性能を犠牲にすることなく高い試験容易性を達
成する。実験結果は、ゲート・レベルでのパーシャル・
スキャンの選択に比べて、ハイレベル合成の際にパーシ
ャル・スキャンを選択することの優位性を立証してい
る。
【0094】以上、パーシャル・スキャン試験の最適化
のためにハイレベル合成においてハードウエア・シェア
リングを行う好ましい方法と装置について説明、図示し
たが、ここに添付する特許請求の範囲によってのみ限定
される本発明の広範な内容と趣旨に反することなしに変
更と修正が可能なことは、当業者には明白であろう。
【図面の簡単な説明】
【図1】レジスタ・ファイル・モデルの略図である。
【図2】もう一つのレジスタ・ファイル・モデルの略図
である。
【図3】第4次IIRカスケード・フィルタのコントロ
ール・データ・フロー・グラフ(CDFG)である。
【図4】図3に示すCDFGのデータ・パスの略図であ
る。
【図5】図4に示すCDFGに対応するSグラフであ
る。
【図6】異なるスケジュールと割付けを持つ図3に示す
第4次IIRカスケード・フィルタのコントロール・デ
ータ・フロー・グラフである。
【図7】図6に示すCDFGのデータ・パスの略図であ
る。
【図8】図6に示すCDFGに対応するSグラフであ
る。
【図9】CDFGにおける2つのパスのセグメントを示
す。
【図10】図9に示すCDFGの代表的なデータ・パス
である。
【図11】図12の左のレジスタ・ファイルに割り付け
られた変数のライフタイムとレジスタ割付けの表を示す
図である。
【図12】モジュールA1の左および右のレジスタ・フ
ァイルの略図である。
【図13】資源利用のために合成された第5次ウエーブ
・デジタル・エリプティカル・フィルタのスケジュール
され、割り付けられたコントロール・データ・フロー・
グラフ(CDFG)である。
【図14】図13に示すCDFGのデータ・パスの略図
である。
【図15】試験容易性、資源利用率、スケジューリング
性能制約のために合成された第5次ウエーブ・デジタル
・エリプティカル・フィルタのスケジュールされ、割り
付けられたコントロール・データ・フロー・グラフであ
る。
【図16】図15に示すCDFGのデータ・パスの略図
である。
【符号の説明】
10 レジスタ 12,14,16,18 レジスタ・ファイル 20,22 機能ユニット
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ラビンドラ ケー ロイ アメリカ合衆国 08536 ニュージャー シー州 プ レインズボロ ラヴェンス クレスト ドライブ 51 18 (56)参考文献 米国特許5043986(US,A) PROCEEDINGS OF IN TERNATIONAL CONFER ENCE ON COMPUTER D ESIGN 1991,P.458−462,C. PAPACHRISTOU ET A L.,”SYNTEST:A METH OD FOR HIGH−LEVEL SYNTHESIS WITH SEL F−TESTABILITY" IEEE TRANSACTIONS ON COMPUTERS,VOL. 39,NO.4,P.544−548,K.− T.CHENGET AL.,”A P ARTIAL SCAN METHOD FOR SEQUENTIAL CI RCUITS WITH FEEDBA CK"

Claims (6)

    (57)【特許請求の範囲】
  1. 【請求項1】パーシャル・スキャン試験技術と両立させ
    るためハイレベル記述により集積回路を設計する方法に
    おいて、 資源利用率に基づいて実行ユニットを配分するステップ
    と、 データ・パス・ループを切断するための実行ユニットに
    関連する極小量のスキャン・レジスタに割付けできるス
    キャン変数を選択するステップと、 スキャン・レジスタを再使用し、データ・パス内への非
    切断ループの生成を回避するため実行ユニットへの処理
    をスケジューリングしおよび割付けるステップと、を含
    むことを特徴とする集積回路の設計方法。
  2. 【請求項2】前記スキャン変数の選択が、スキャン変数
    を選択し、スキャン変数のための最高のハードウエア・
    シェアリング効果値を計算することによって切断された
    ループの量を推定するためのループ切断効果値を計算す
    るステップと、および前記最高の計算されたループ切断
    効果値およびハードウエア・シェアリング効果によって
    スキャン変数を選択するステップとを含む、ことを特徴
    とする請求項1記載の集積回路の設計方法。
  3. 【請求項3】前記ループ切断効果値の計算を、ランダム
    ・ウォーク・アルゴリズムを用いて行うことを特徴とす
    る請求項2記載の集積回路の設計方法。
  4. 【請求項4】実質的に最小のコストに処理をスケジュー
    リングしおよび割付けるステップをさらに含むことを特
    徴とする請求項1記載の集積回路の設計方法。
  5. 【請求項5】前記スケジューリングおよび割付けは、 割付けループ、疑似ループ、レジスタ・クリークの存在
    に関連するコストを計算するステップと、 前記スケジューリングおよび割付けから生じるデータ・
    パス内のシーケンシャル・デプスに関連するコストを計
    算するステップと、をさらに含むことを特徴とする請求
    項4記載の集積回路の設計方法。
  6. 【請求項6】 前記スケジューリングおよび割付けは、
    さらに処理の実行ユニットへの前記スケジューリングお
    よび割付けに関連するコストを計算するステップをさら
    に含むことを特徴とする請求項4記載の集積回路の設計
    方法。
JP5331656A 1993-08-25 1993-12-27 集積回路の設計方法 Expired - Fee Related JP2687858B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/113056 1993-08-25
US08/113,056 US5513118A (en) 1993-08-25 1993-08-25 High level synthesis for partial scan testing
US8/113056 1993-08-25

Publications (2)

Publication Number Publication Date
JPH0765064A JPH0765064A (ja) 1995-03-10
JP2687858B2 true JP2687858B2 (ja) 1997-12-08

Family

ID=22347385

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5331656A Expired - Fee Related JP2687858B2 (ja) 1993-08-25 1993-12-27 集積回路の設計方法

Country Status (2)

Country Link
US (1) US5513118A (ja)
JP (1) JP2687858B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2778443B2 (ja) * 1993-12-28 1998-07-23 日本電気株式会社 スキャンパステスト回路の最適化方法
US5636132A (en) * 1994-11-22 1997-06-03 Mentor Graphics Corporation Method and apparatus for constraining the compaction of components of a circuit layout
US5731983A (en) * 1995-12-29 1998-03-24 Nec Usa, Inc. Method for synthesizing a sequential circuit
US5703789A (en) * 1995-12-29 1997-12-30 Synopsys, Inc. Test ready compiler for design for test synthesis
US6282506B1 (en) * 1996-02-20 2001-08-28 Matsushita Electric Industrial Co., Ltd. Method of designing semiconductor integrated circuit
US5828579A (en) * 1996-08-28 1998-10-27 Synopsys, Inc. Scan segment processing within hierarchical scan architecture for design for test applications
US5748647A (en) * 1996-10-31 1998-05-05 Nec Usa, Inc. Low cost testing method for register transfer level circuits
TW434477B (en) * 1997-01-22 2001-05-16 Matsushita Electric Ind Co Ltd Design method of easy checking and formation method of checking input series
US6334199B1 (en) * 1998-01-28 2001-12-25 Nec Corporation Method of generating test patterns for a logic circuit, a system performing the method, and a computer readable medium instructing the system to perform the method
US6961690B1 (en) 1998-05-19 2005-11-01 Altera Corporation Behaviorial digital simulation using hybrid control and data flow representations
US6697773B1 (en) 1998-05-19 2004-02-24 Altera Corporation Using assignment decision diagrams with control nodes for sequential review during behavioral simulation
US6237121B1 (en) * 1998-06-12 2001-05-22 Intel Corporation Method and apparatus for performing register transfer level scan selection
US7003475B1 (en) 1999-05-07 2006-02-21 Medcohealth Solutions, Inc. Computer implemented resource allocation model and process to dynamically and optimally schedule an arbitrary number of resources subject to an arbitrary number of constraints in the managed care, health care and/or pharmacy industry
JP3717144B2 (ja) * 1999-06-03 2005-11-16 シャープ株式会社 高位合成装置および高位合成方法並びに高位合成プログラムを記録した記録媒体
JP3386427B2 (ja) * 2000-01-28 2003-03-17 シャープ株式会社 高位合成方法並びに高位合成方法の実施に使用される記録媒体
JP3370304B2 (ja) * 2000-01-28 2003-01-27 シャープ株式会社 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体
US6728938B2 (en) * 2002-04-26 2004-04-27 Sun Microsystems, Inc. Knowledge-based intelligent full scan dump processing methodology
JP4528134B2 (ja) * 2002-12-17 2010-08-18 インターナショナル・ビジネス・マシーンズ・コーポレーション 集積回路診断方法、およびそのプログラム
WO2004107087A2 (en) * 2003-05-29 2004-12-09 Flextronics Design Limited Generating test cases
US7363334B2 (en) * 2003-08-28 2008-04-22 Accoutic Processing Technology, Inc. Digital signal-processing structure and methodology featuring engine-instantiated, wave-digital-filter componentry, and fabrication thereof
JP4345576B2 (ja) * 2004-05-26 2009-10-14 ヤマハ株式会社 信号経路設定装置および信号経路設定プログラム
CN100363932C (zh) * 2004-05-26 2008-01-23 鸿富锦精密工业(深圳)有限公司 点云三维处理系统及方法
CN100365636C (zh) * 2004-06-05 2008-01-30 鸿富锦精密工业(深圳)有限公司 激光扫描系统及方法
CN100370463C (zh) * 2004-11-26 2008-02-20 鸿富锦精密工业(深圳)有限公司 点云自动剪切系统及方法
CN100370464C (zh) * 2004-12-04 2008-02-20 鸿富锦精密工业(深圳)有限公司 仿真量测演示系统及方法
CN100403318C (zh) * 2005-01-17 2008-07-16 英业达股份有限公司 简化图形组件的系统及其方法
CN100403317C (zh) * 2005-01-18 2008-07-16 英业达股份有限公司 图形化修改电性约束条件集的视窗操作接口及方法
US7543200B2 (en) * 2005-02-17 2009-06-02 Advantest Corporation Method and system for scheduling tests in a parallel test system
CN100395762C (zh) * 2005-11-10 2008-06-18 复旦大学 可编程核版图自动生成方法
CN100410855C (zh) * 2005-12-31 2008-08-13 联想(北京)有限公司 一种使用键盘输入特定信息的方法
CN100424709C (zh) * 2006-03-20 2008-10-08 上海发电设备成套设计研究所 一种汽轮机高可用性的设计方法及其评价方法
CN101246510B (zh) * 2008-02-28 2010-12-29 复旦大学 可编程逻辑器件硬件结构通用建模方法
FR3045860B1 (fr) * 2015-12-21 2017-12-22 Sagem Defense Securite Procede de detection de problemes de testabilite d'un module informatique

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043986A (en) 1989-05-18 1991-08-27 At&T Bell Laboratories Method and integrated circuit adapted for partial scan testability

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5329471A (en) * 1987-06-02 1994-07-12 Texas Instruments Incorporated Emulation devices, systems and methods utilizing state machines
GB8805120D0 (en) * 1988-03-03 1988-03-30 Hewlett Packard Co Testing digital circuits
JP2616165B2 (ja) * 1989-07-12 1997-06-04 松下電器産業株式会社 検査入力生成方法および検査容易化設計方法
JPH03201035A (ja) * 1989-10-24 1991-09-02 Matsushita Electric Ind Co Ltd 検査系列生成方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5043986A (en) 1989-05-18 1991-08-27 At&T Bell Laboratories Method and integrated circuit adapted for partial scan testability

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON COMPUTERS,VOL.39,NO.4,P.544−548,K.−T.CHENGET AL.,"A PARTIAL SCAN METHOD FOR SEQUENTIAL CIRCUITS WITH FEEDBACK"
PROCEEDINGS OF INTERNATIONAL CONFERENCE ON COMPUTER DESIGN 1991,P.458−462,C.PAPACHRISTOU ET AL.,"SYNTEST:A METHOD FOR HIGH−LEVEL SYNTHESIS WITH SELF−TESTABILITY"

Also Published As

Publication number Publication date
JPH0765064A (ja) 1995-03-10
US5513118A (en) 1996-04-30

Similar Documents

Publication Publication Date Title
JP2687858B2 (ja) 集積回路の設計方法
Paulin et al. Force-directed scheduling in automatic data path synthesis
Moreano et al. Efficient datapath merging for partially reconfigurable architectures
US6415430B1 (en) Method and apparatus for SAT solver architecture with very low synthesis and layout overhead
Bakshi et al. Partitioning and pipelining for performance-constrained hardware/software systems
Potkonjak et al. Behavioral synthesis of area-efficient testable designs using interaction between hardware sharing and partial scan
Stroele et al. Hardware-optimal test register insertion
Chaudhuri et al. An exact methodology for scheduling in a 3d design space
JP4029959B2 (ja) 演算器アロケーション設計装置および演算器アロケーション設計方法
US20070028198A1 (en) Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units
Amellal et al. Scheduling of a control data flow graph
Potkonjak et al. Cost optimization in ASIC implementation of periodic hard-real time systems using behavioral synthesis techniques
Bergamaschi et al. A system for production use of high-level synthesis
Cortadella et al. Automatic handshake expansion and reshuffling using concurrency reduction
Dey et al. Synthesizing designs with low-cardinality minimum feedback vertex set for partial scan application
Vahid Procedure cloning: A transformation for improved system-level functional partitioning
Park et al. Theory of clocking for maximum execution overlap of high-speed digital systems
Ravi et al. Test synthesis of systems-on-a-chip
Katkoori et al. High level profiling based low power synthesis technique
Mujumdar et al. Behavioral synthesis of testable designs
Parulkar et al. Lower bounds on test resources for scheduled data flow graphs
Juan et al. Clock optimization for high-performance pipelined design
Yang The integrated scheduling and allocation of high-level test synthesis
Chakraborty et al. Efficient algorithms for approximate time separation of events
Takasaki et al. A high-level synthesis approach to partial scan design based on acyclic structure

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19970722

LAPS Cancellation because of no payment of annual fees