JP4083544B2 - マルチサイクルパス解析方法 - Google Patents
マルチサイクルパス解析方法 Download PDFInfo
- Publication number
- JP4083544B2 JP4083544B2 JP2002334069A JP2002334069A JP4083544B2 JP 4083544 B2 JP4083544 B2 JP 4083544B2 JP 2002334069 A JP2002334069 A JP 2002334069A JP 2002334069 A JP2002334069 A JP 2002334069A JP 4083544 B2 JP4083544 B2 JP 4083544B2
- Authority
- JP
- Japan
- Prior art keywords
- path
- storage element
- circuit
- end point
- cycle path
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
Description
【発明の属する技術分野】
本発明はディジタル回路のタイミング解析、および論理検証において解析対象回路内の、例えば2つの記憶素子の間のパスのうちで、パスの始点から終点まで信号が伝搬するのに2サイクル以上ついやすことのできるマルチサイクルパスを検出するためのマルチサイクルパス解析方法に関する。
【0002】
【従来の技術】
ディジタル回路におけるマルチサイクルパスとは、例えば2つの記憶素子の間で、始点の記憶素子から終点の記憶素子まで信号が伝搬するために2サイクル以上の時間をかけることのできるパスである。一般的に記憶素子の間のパスは1サイクルで信号が伝搬するシングルサイクルパスとして扱われる。
【0003】
しかしながら記憶素子の間の遅延が大きくなると、その間のパスをシングルサイクルパスとして扱うと設計が難しくなる。パスの始点から終点まで2サイクル以上かけてよいマルチサイクルパスを見つけると、制約がゆるくなって設計を簡単にすることができる。
【0004】
従来においては、マルチサイクルパスの解析に有効な技術はあまり存在せず、人間が設計時にマルチサイクルパスを指定するのが一般的であった。
純粋な論理回路を対象とする場合の従来技術として次の文献がある。
【0005】
【非特許文献1】
H.Higuchi:An Implication-based Method to Detect
Multi-Cycle Paths in Large Sequential Circuits,
IEEE/ACM Design Automation Conf. pp.164-169,2002
しかしながら、実際の一般的なディジタル回路では論理ゲートがセルライブラリのセルにマッピングされ、クロックが2つ以上あったり、ゲーティッドクロックが使用されていたりするために、実際のディジタル回路でマルチサイクルパスを自動で検出することは困難であった。
【0006】
また回路の状態遷移、すなわち初期状態からの到達可能性を、回路全体を1つの有限状態機械として計算し、マルチサイクルパスの検出に利用する方法があった。この方法は次の文献に記述されている。
【0007】
【非特許文献2】
K.Nakamura他“Waiting False Path Analysis of Sequential Logic Circuits for Performance Optimization”,IEEE/ACM ICCAD 98 pp.392-395,
しかしながら、この方法では、回路全体を1つの有限状態機械として扱うために、回路が複雑になると有限状態機械の規模が膨大になり、マルチサイクルパスを検出する実用的な方法としては必ずしも有効ではなかった。
【0008】
更に2つの記憶素子の間のパスを一まとめとしてマルチサイクルパスを検出する従来の方法では、対象となるマルチサイクルパスが本当に活性化されるか、すなわちそのパスを通して始点における記憶素子の値変化が終点の記憶素子まで伝搬しているのか、あるいは始点以外の記憶素子の値変化が終点の記憶素子まで伝搬しているのか区別がつけられなかった。
【0009】
【発明が解決しようとす課題】
近年の回路の大規模化に伴って、マルチサイクルパスの解析は複雑となり、処理時間が増大するという問題点が生じている。またゲーティッドクロックが使用されているようにクロックが複雑な場合には、クロックの影響を正確に把握することができず、マルチサイクルパスの検出が困難になるという問題もあった。
【0010】
また2つの記憶素子の間のパスを一まとめとしてマルチサイクルパスを検出する従来の方法では、対象となるマルチサイクルパスが本当に活性化されるか否かを調べていなかったために、マルチサイクルパスの検出の能力が低下するという問題点があった。
【0011】
更に設計の早い段階で、設計者によってマルチサイクルパスが指定されている場合、そのマルチサイクルパスの指定は一般に固定されていたために、設計後の段階で実際にタイミングが厳しいパスに指定が行われず、タイミング制約が満たされないという問題点があった。またチップ製造による回路の遅延のバラつきが増大している傾向があるが、タイミング制約は設計段階で固定されていたため、製品の歩留まりの低下が問題となっていた。
【0012】
本発明の課題は、上述の問題点に鑑み、ゲーティッドクロックの使用や回路の大規模化にも対応可能であり、処理時間が短く、正確にマルチサイクルパスを検出できるマルチサイクルパス解析方法を提供することである。
【0013】
またパスの活性化条件を調べることによってマルチサイクルパスの検出能力を向上させ、更に設計段階でマルチサイクルパスが指定されている場合にも、マルチサイクルパスの移動可能性を調べることによって製品の遅延のバラつきにも対応できる解析方法を提供することである。
【0014】
【課題を解決するための手段】
図1は本発明のマルチサイクルパス解析方法の原理的な機能ブロック図である。同図は解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬するのに2サイクル以上ついやしてよいマルチサイクルパスの解析方法の機能ブロック図である。
【0015】
図1において、1で回路を構成するセルを含む各素子の名称、素子の端子への信号の意味、関係に対応して解析対象回路の分析が行われ、2で始点から終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定が行われる。
【0016】
発明の実施の形態においては、回路分析1において素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換を行い、その変換結果を用いてマルチサイクルパス判定2を行うこともできる。
【0017】
この場合、素子の端子への信号のうちで、パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、イネーブル信号に変換する回路変換を行うこともでき、マルチサイクルパス判定2において始点と終点の記憶素子へのイネーブル信号の値に基づいて、記憶素子の値が変化し得るか否かによってマルチサイクルパスの判定を行うこともできる。
【0018】
更に回路変換において、始点、終点の記憶素子への値の設定を制御するセレクタへの選択制御信号をイネーブル信号に変換する回路変換を行うことも、また始点、終点の記憶素子を駆動するクロックのクロックソースが記憶素子である時、そのクロックソースの記憶素子へのイネーブル信号を始点、終点の記憶素子へのイネーブル信号に変換する回路変換を行うことも、更に始点、終点の記憶素子を駆動するクロックのクロックゲーティング情報を用いて、駆動するクロックをイネーブル信号に変換する回路変換を行うこともできる。
【0019】
また実施の形態においては、イネーブル信号の値に基づくマルチサイクルパスの判定においてマルチサイクルパスと判定されなかったパスに対して、そのパスの始点と終点の間の全てのパスが非活性である時、そのパスをマルチサイクルパスと判定することもできる。
【0020】
また実施の形態においては、回路の分析1において回路の外部入力端子への値設定信号、外部出力端子からの値読み出し信号の間の関係に関する条件に基づいて、その条件に対応する制約回路を解析対象回路に付加し、付加後の解析対象回路に対してマルチサイクルパス判定2を行うことも、また分析1において各素子の名称に対応して回路内の記憶素子をグループ化し、グループのそれぞれが表す有限状態機械の到達可能状態を計算し、計算結果を用いてマルチサイクルパスの判定2を行うこともできる。
【0021】
更に実施の形態においては、マルチサイクルパスと判定されたパスのうちで、パスの始点と終点とにある記憶素子の間のパス上に1つ以上の記憶素子があり、かつ回路設計時に連続する2つの記憶素子の間の部分パスの一部にマルチパス制約が設定されている時、そのマルチパス制約を他の部分パスに移動可能か否かを、始点と終点の記憶素子へのイネーブル信号によって更に調べることもできる。
【0022】
また以上の説明のように、解析対象回路の分析1において回路変換を実際に行う代わりに、回路変換を行うために必要な情報を記憶し、その記憶内容を用いてマルチサイクルパス判定2を行うこともできる。
【0023】
また実施形態におけるマルチサイクルパス解析装置は、前述のマルチサイクルパスの解析のための回路変換を実行する回路変換手段と、回路変換結果を用いてマルチサイクルパスの判定を行うマルチサイクルパス判定手段とを備え、また回路変換手段がパスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、イネーブル信号に変換する回路変換を行うこともできる。
【0024】
更に実施形態においては、マルチサイクルパス解析方法を実現するためのプログラムとして、マルチサイクルパスの解析のための回路変換を行う手順と、その変換結果を用いてマルチサイクルパス判定を行う手順とを計算機に実行させるためのプログラムが用いられる。
【0025】
以上のように本発明によれば、例えば回路を構成する各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換が行われ、その結果を用いてマルチサイクルパスの判定が行われる。
【0026】
【発明の実施の形態】
図2は本発明の実施形態におけるマルチサイクル検出の基本処理の説明図である。同図において、まずステップS1でマルチサイクルパス検出処理に必要なデータの入力が行われる。このデータとしては検出対象となる回路、その回路におけるパス、例えば始点としての記憶素子と、その記憶素子からの信号がパスを経由して入力される終点の記憶素子との組、外部入出力の値の設定や、記憶素子からのデータの読み出し時刻に関する始点と終点の間の関係についての制約などが入力される。この外部入出力の値設定や、読み出し時刻の間の関係の制約については後述する。
【0027】
次のステップS2からS6までが、マルチサイクルパスの検出の本質的な処理である。まずステップS2では、各種の信号の中で、例えば記憶素子へのイネーブル信号に変換可能な信号が全てイネーブル信号に変換される。本実施形態においては回路内のパスの始点と終点における記憶素子の記憶値、例えばフリップフロップの値の変化によってマルチサイクルパスの検出が行われるが、このフリップフロップの値の変化の有無は基本的にイネーブル信号の値によって支配されるため、このイネーブル信号の値によってマルチサイクルパスの検出が行われる。
【0028】
ステップS2では、このようなイネーブル信号への変換可能な信号として、まず第1に値設定制御セレクタに対する選択制御入力のイネーブル信号への変換が行われる。値設定制御セレクタとは、後述するように、例えば始点や終点におけるフリップフロップへの値の設定を制御するためのセレクタであり、そのセレクタへの選択制御入力がイネーブル信号に変換される。
【0029】
イネーブル信号に変換される第2の信号は、ゲーティッドクロックである。ゲーティッドクロックとは、元々のクロック信号とフリップフロップのクロック端子との間に、例えばアンドゲートが挿入され、このアンドゲートへの入力の条件によってアンドゲートの出力が決定される形式で、クロックが与えられるものである。
【0030】
第3の信号変換は、例えばフリップフロップのクロック端子に更に記憶素子が接続され、その記憶素子がクロックソースとなっている場合に、その記憶素子へのイネーブル信号を始点や終点におけるフリップフロップへのイネーブル入力信号に変換するものである。
【0031】
ステップS3では、ステップS2で変換された信号を含めて始点、および終点の記憶素子へのイネーブル入力信号の抽出が行われ、続いてステップS4で、ステップS1で説明した外部入出力の値設定や、読み出し時刻の始点と終点の間での関係についての制約に対する等価回路の付加が行われる。この処理についても後述する。
【0032】
続いてステップS5で、回路中の局所的な有限状態機械(FSM)が同定され、その初期状態から到達可能な状態を数え上げる検出処理が行われる。その詳細についても後述する。
【0033】
ステップS6では始点にある、例えばフリップフロップがイネーブルになる時刻の次の時刻で、終点にあるフリップフロップがイネーブルになるか否かが調べられる。次の時刻で終点にあるフリップフロップがイネーブルになる場合には、1サイクルで始点から終点に信号が伝達することになるので、そのパスはマルチサイクルパスではなく、シングルサイクルパスであることになる。
【0034】
またステップS6では、始点から終点へのパスが活性化されるか、すなわち1サイクルで始点からの信号が終点に到達するか否かが調べられ、始点・終点の間の全てのパスが活性化されない場合には、始点と終点をむすぶパスはマルチサイクルパスであることになる。
【0035】
以上によってマルチサイクルパス検出の基本処理が終了し、ステップS7でマルチサイクルパスの判定結果が出力されて、マルチサイクルパスの検出処理を終了する。
【0036】
図3は、始点の記憶素子と終点の記憶素子との間のパス上に他の記憶素子が存在するか、すなわちパスが記憶素子をまたいでいるか否かを調べて、そのような記憶素子をまたいでいるマルチサイクルパスを対象として、そのパス上で例えば設計時に指定されているマルチサイクルパス制約を移動することが可能か否かを調べるマルチサイクルパス移動可能性検出処理の基本フローチャートである。
【0037】
まずステップS8で対象となる回路の指定が行われる。
ステップS9で、記憶素子をまたぐパスを検出対象として、その始点と終点の間のパス上で(またいだ記憶素子数+1)のサイクル数を越えるマルチサイクルパスの検出が行われる。例えば始点のフリップフロップと終点のフリップフロップとの間のパス上に1つのフリップフロップが存在する場合には、(またいだ記憶素子数+1)は“2”となり、2サイクルを越えるマルチサイクルパス、すなわち3サイクル以上かかるマルチサイクルパスの検出が行われる。
【0038】
続いてステップS10で、マルチサイクルパスが始点と終点の間で、どの記憶素子の間のパスに移動可能かの移動可能性が出力される。前述のようにパス上に1つの記憶素子をまたぐ形式で3サイクル以上のマルチサイクルパスが検出された場合には、例えば設計段階で指定されているマルチサイクルパスが始点とパス上の記憶素子の間か、パス上の記憶素子と終点の間のいずれに指定されているかによって、指定されたパスが例えば始点とパス上の記憶素子との間である場合には、そのマルチサイクルパス制約をパス上の記憶素子と終点との間に移動することが可能であり、その可能性がステップS10で出力される。
【0039】
図4はデータ処理装置、すなわちコンピュータを用いて図2および図3の基本処理を実行する場合のデータ処理装置の構成ブロック図である。同図において、データ処理装置10には入出力装置11と記憶装置12とが接続されている。入出力装置11は回路データの読み込みや、ユーザの操作入力、検出結果のマルチサイクルパスデータの出力などを行うものであり、記憶装置12は回路データ、処理の中間結果などを格納するものである。
【0040】
データ処理装置10の内部には、与えられた回路の中でマルチサイクルパス解析を行うべきパスの始点と終点の組を指示する始点・終点指示部13、図2のステップS2の処理を実行するイネーブル信号化部14、ステップS3の処理を実行するイネーブル入力抽出部15、ステップS4の処理を実行する外部端子値設定・読み出し時刻制約回路生成部16、ステップS5の処理を実行する局所FSM到達可能性解析部17、ステップS6の処理を実行するマルチサイクルパス解析部18、および図3のステップS9の処理を実行する記憶素子をまたいだマルチサイクルパス解析部19を備えている。
【0041】
図5は本実施形態におけるマルチサイクルパス解析処理の詳細フローチャートである。同図の処理を各ステップの詳細処理や、回路の具体例を示す図6〜図20を用いて詳細に説明する。
【0042】
図5において処理が開始されると、まずステップS12で解析処理の対象となる回路C、始点と終点の組の集合P、および外部端子のタイミング的条件Eの入力が行われる。このタイミング的条件Eとしては、例えば外部入力Aの値が変化してから5クロックの間は外部入力Bの値が変化しないという条件や、外部出力Dの値はAの値が変化してから、3クロック後のみ以降に観測されるなどの条件が考えられる。
【0043】
ステップS13では回路Cの中のクロックツリー以外の部分(例えば論理演算部のみ)のそれぞれの記憶素子、例えばフリップフロップFFiについて、そのフリップフロップを駆動するクロックのゲーティッドクロックと、クロックソースとなっている(クロックツリー内部の)記憶素子へのイネーブル入力とがFFiのイネーブル信号に変換される。
【0044】
この処理では、クロックツリー以外の部分の例えばフリップフロップFFiについて、それを駆動するクロックがクロックソースからの信号を条件によってマスクするゲーティッドクロックかどうかが調べられ、クロックソースからの信号がマスクされない条件に対応する回路が合成されてFFiのイネーブル信号ENgatedに変換される。
【0045】
またクロックソースが記憶素子である場合には、その記憶素子に対するイネーブル入力がそのままFFiのイネーブル信号ENclksrcとされる。FFiに対する元々のイネーブル入力をFNorigとすると、これら3つのイネーブル信号をファンインとするアンドゲートが生成され、その出力がFFiのイネーブル入力に接続される。
【0046】
図6はこのステップS13の詳細フローチャートである。同図の処理を図7と図8の回路の具体例を用いて説明する。
図6で処理が開始されると、ステップS31でクロック信号の情報、図7ではクロック端子からの信号xがクロック信号であるという情報が入力され、ステップS32でクロックツリーCTの解析が行われる。
【0047】
この解析ではクロック信号を出す端子、図7ではxを出す端子から出力方向、すなわちFFのクロック入力端子への方向で論理ゲート以外のセル、またはモジュールに到達するまで、ここではFF21に到達するまでファンアウトがたどられ、その時たどった部分回路がクロックツリーCTとされる。
【0048】
図7では、信号xを伝達するパスと、アンドゲート22、およびアンドゲート22の出力fをFF21のクロック端子に接続するパスによって構成される部分回路がクロックツリーである。アンドゲートに対するもう一方の入力、すなわちg1の伝達パスはクロックツリーCTには含まれない。
【0049】
ステップS33でクロックツリーCTの根、図7ではクロック端子とCT以外のノードの出力端子、すなわちg1を出力する部分回路23の端子に論理変数g1が割り当てられ、CTの葉、すなわちFFへのクロック入力端子における論理関数の計算が行われる。
【0050】
図7ではFFが1つしか存在せず、CTの葉は1つのみであるが、一般に回路C内には複数のFFが存在するため、ステップS33ではすべてのFFに対応してクロック入力端子における論理関数の計算が行われる。ここで計算される論理関数は図7に対しては次式となる。
f=x・g1
続いてステップS34で、クロックツリーCTの葉がクロック入力につながっているFFの集合Aが求められる。図7ではこの集合Aは1つのFF21のみを要素としている。
【0051】
ステップS35で集合Aが空になっているか否かが判定され、空になっていない場合にはステップS36で集合AからFFが1つ取り出され、FFiとされる。続いてステップS37でFFiのクロック入力としての、クロックツリーCTの葉における論理関数fが、ツリーの根における論理変数としてのクロック端子からの信号xに依存する場合、すなわちxをそのままの形で含む場合には正相クロック、x’すなわちxの反転信号に依存する場合、すなわちx’を含む場合には逆相クロックとする判定処理が行われ、その判定結果に対応してステップS38でゲーティッドクロックがイネーブルになる条件を表す論理関数Fが求められる。
【0052】
すなわちステップS38では、論理関数f内のxを“1”とした場合のfの値や、xを“0”とした場合のfの値の反転値などを用いて、正相クロックと逆相クロックに対応して、次式によって論理関数Fが求められる。次式で*は積を示す。
正相クロックのとき F=f|x←1*(f|x←0)’
逆相クロックのとき F=f|x←0*(f|x←1)’
図7では、論理関数fはxに依存しているため、ステップS37で正相クロックと判定される。ステップS38で正相クロックに対応する式においてxに“1”を代入した時のfの値はg1であり、xに“0”を代入した時のfの値、すなわち“0”の反転値は“1”となることからFの値はg1となる。
【0053】
図6のステップS39でこの論理関数Fを計算する論理回路が生成され、その回路の入力が対応するCの中の端子と接続され、生成された回路の出力がFFiに対するイネーブル信号ENgatedとされ、ステップS35以降の処理が繰り返され、ステップS35で信号Aが空であると判定された時点で処理を終了する。
【0054】
図8はステップS39で図7に対応して生成された回路である。この回路ではF、すなわちg1を生成する回路の出力がそのままENgatedとされ、元々のイネーブル信号ENorigと共にアンドゲート25に入力され、そのアンドゲート25の出力がFF21のイネーブル端子に入力される。一方クロック端子からの信号xはそのままクロック端子に入力される。
【0055】
図5に戻り、続いてステップS14でタイミング的条件Eが外部端子に対する制約回路に変換され、回路Cに付け加えられる。例えば外部入力Aの値が変化してから5クロックの間は外部入力Bの値が変化しないという条件に対しては、外部入力Aの値が変化した次の時刻に“0”となり“5”まで数えてその後はその値を保持するカウンタを生成し、その値が“5”の時にのみ外部入力Bに外部から値を取り込む回路が付け加えられる。
【0056】
図9はステップS14の詳細処理のフローチャートである。同図において処理が開始されると、まずステップS41で外部入力の値設定、読み出し時刻制約が例えばメモリから取り出される。この制約は図5のステップS12で入力された外部端子のタイミング的条件Eに相当する。
【0057】
続いてステップS42で、外部入力に対応する値設定制約、すなわち“入力PI1が値設定されてからK時間、入力PI2に対しては“値が設定されない”という制約に対して、図10に示すような付加回路が構成される。この制約は例えばPI1としてアドレスが外部から指定されても、それに対応するデータがIP2に与えられるのが時間的に遅れることに相当する。
【0058】
図10においては、回路C30の外部入力端子PI1に対しては、FF31とXOR32とを用いた回路、また外部入力端子PI2に対してはFF33とセレクタ34を用いた回路が付け加えられる。
【0059】
図10において外部入力信号PI1の値が変化、例えば“0”から“1”に変化すると、その値は外部入力端子PI1に与えられると共に、FF31に対するデータ入力、およびXOR32の一方の入力に与えられる。この時点ではFF31の出力はそれ以前のPI1の値、すなわち“0”であり、XOR32の出力XはPI1が“0”から“1”に変化した時点、例えば時刻tにおいて“1”となる。
【0060】
そこでこのX(t)=1に対応して外部入力端子PI2の入力側に接続されるセレクタ34に対する選択制御信号Cを、次式のように与える関係を、例えばメモリに保存しておき、時刻t以降の計算に使用するものとする。
保存された、このような関係を使用することより、外部入力PI2の値にかかわらず、時刻t+1からt+Kまでの間はセレクタ34への選択制御信号Cの値が“0”となり、セレクタ34はデータ入力0、すなわちFF33の出力を選択することによって、時刻t+1から時刻t+Kの間は、外部入力PI2の値は設定されないことになる。
【0061】
図9に戻り、ステップS43で次の外部入力の値設定制約「PI1=vの時、PI2は値設定されない」という制約に対して付加回路が構成される。ここでvは“0”でも“1”でもよいものとするが、例えばv=0とした場合の付加回路の例を図11に示す。
【0062】
図11では、PI2の入力端子の前にセレクタ35とフリップフロップ36で構成される回路が付け加えられている。外部入力PI1=0の時には、セレクタ35はFF36の出力を選択するが、この時FF36には以前に設定されたPI2の値、例えば“0”が記憶されており、外部入力端子PI2には常にFF36の出力として以前に設定された値、例えば“0”が出力される。PI2として外部から新しい値を設定しようとしても、PI1=0である限り、その値は設定されない。
【0063】
再び図9のステップS44で、外部出力の値の読み出し制約「PO1=vの時、PO2は値読み出しされない」という制約において、例えばv=0とすると、付加回路の例は図12に示される。
【0064】
図12では外部出力端子PO2の出力側にセレクタ37とFF38とによって構成される回路が付け加えられる。外部出力PO1=0の時には、セレクタ37はFF38の値、すなわち以前に読み出されたPO2の値として、例えば“0”を出力し、外部からPO2の値を読み出そうとしても、新しい値を読み出すことはできない。PO=1に変化して、初めてPO2の新しい値を外部から読みだすことが可能となる。
【0065】
続いて図5のステップS15で回路Cの内部の記憶素子がグループ化され、各グループが表す有限状態機械(FSM)の到達可能状態の数え上げが行われる。この処理では、回路C内の記憶素子が、例えばその名前などによってグループ化され、それそれのグループを局所FSMとして、初期状態から到達可能な状態が全て数え上げられ、その情報が保持される。
【0066】
図13はこのステップS15の詳細処理フローチャートである。この処理について図14を用いて説明する。
図13において処理が開始されると、まずステップS46で外部から指定された、あるいは例えば各フリップフロップにつけられた名前の類似性から自動的に得られるグループのうち、クリア端子を持つグループか、プリセット端子を持つグループが1つのFSMとされる。
【0067】
例えば共にクリア端子を持ち、その名前がFSM−REG−1、FSM−REG−0という類似した名前を持つ2つのFFのグループが1つのFSMとされる。ここでクリア端子を共に持つことから、クリア入力を“1”とすることによって、このFSMの初期状態は次のようになる。
【0068】
(FSM−REG−1,FSM−REG−0)=(0,0)
この初期状態を求める処理がステップS47である。ステップS47では、それぞれのFSMのFFがクリア端子を持つか、あるいはプリセット端子を持つかによって、FSMの初期状態が求められる。すなわちクリア端子を持つFFのグループは初期値が0であり、プリセット端子を持つFFのグループは初期値が1となる。
【0069】
続いてステップS48でその初期状態から到達可能な状態が全て求められる。図14はその状態探索の結果としての状態遷移の説明図である。同図においては回路Cの構成に従って、初期状態(0,0)からの到達可能状態は次のようになる。状態(1,0)には回路Cの構成状態によって遷移できないことが分かる。
【0070】
{00,01,11}
続いてステップS49で到達可能状態の集合から含意関係が抽出される。含意関係とは、この状態探索の結果から抽出される状態の間のユニークな関係を示し、その例として次の関係が抽出される。
【0071】
FSM−REG−0(t)=0⇒FSM−REG−0(t+1)=1
図5に戻り、ステップS16で始点と終点の組の集合Pが空であるか否かが判定される。ここでは一般的に空ではなく、ステップS17で集合Pから始点Sと終点Tの組が1つ取り出され、ステップS18で始点Sおよび終点Tに対応する値設定制御セレクタの選択制御入力が、始点Sと終点Tにおけるフリップフロップに対するイネーブル信号に変換される。
【0072】
この処理では、例えば始点SにおけるフリップフロップのD入力にセレクタが直接つながり、かつセレクタへのデータ入力の一方がそのフリップフロップのQ出力と等価であれば、そのセレクタが始点Sに対する値設定制御セレクタとして認識され、そのセレクタの選択制御入力とフリップフロップへのイネーブル信号の論理積をとった出力が、あらためてそのフリップフロップのイネーブル入力に接続される。終点Tにおけるフリップフロップについても同様の処理が行われる。
【0073】
図15はステップS18の変換処理の詳細フローチャートである。同図においては、例えば始点Sに対応する処理が全て終了した後に、終点Tに対応する処理が再び実行される。
【0074】
処理が開始されると、まずステップS51で始点SにおけるフリップフロップへのD入力がセレクタの出力になっているか否かが判定され、セレクタの出力でない場合には直ちに処理を終了する。すなわち、セレクタの出力になっていない場合には、フリップフロップへのD入力はセレクタ以外の、例えばアンドゲートやオアゲートから与えられることになり、セレクタの制御入力の変換は不必要であり、直ちに処理を終了する。
【0075】
セレクタの出力である場合には、ステップS52でセレクタへのデータ入力の1つがそのフリップフロップのQ出力であるか否かが判定され、Q出力でない場合にも、そのセレクタに対しては、選択制御入力のイネーブル信号への変換が必要ないものとして、直ちに処理を終了する。
【0076】
Q出力である場合には、ステップS53でセレクタへの入力データとして、フリップフロップのQ出力を選択するための選択制御入力信号値を生成する回路からの信号が、始点Sにおけるフリップフロップに対するイネーブル信号とされて、処理を終了する。
【0077】
図16はステップS53における処理の説明図である。同図において、例えば始点Sにおけるフリップフロップ51のD入力にセレクタ52の出力が与えられ、またFF51のQ出力がセレクタ52のデータ入力端子0に接続されている。この回路ではセレクタ52に対する選択制御信号Cが“0”の場合にはFF51の出力が選択され、FF51のD入力に与えられるが、信号Cが“1”となることによって外部入力に相当する信号XがD入力に与えられることになる。従ってこの信号Cは、セレクタ52が存在せず、外部からの信号XがFF51のD入力に直接与えられている場合に、FFに対するイネーブル信号の役割を果たすことになり、この信号CをFFのイネーブル端子にそのまま接続することができる。
【0078】
前述のように、始点Sに対する図15の処理が終了すると、終点Tに対する図15の処理が行われ、終点Tにおけるフリップフロップに対応するセレクタの選択制御信号がイネーブル信号に変換される。
【0079】
再び図5のステップS19に戻り、マルチサイクルパスの判定が開始される。まずステップS19では、始点Sにおける記憶素子がイネーブルになる時刻の次の時刻で、終点Tにおける記憶素子がディセーブルであるか否かが判定される。
【0080】
すなわち始点Sの記憶素子がイネーブルとなって値が変化する可能性が発生した時刻の次の時刻で、終点Tの記憶素子がイネーブルになって値が変化し得る場合には、始点Sの記憶素子に取り込まれた値は1サイクルで終点Tの記憶素子に到達する必要がある可能性があり、SとTの間のパスはマルチサイクルパスであるとはいえない。
【0081】
このようなことが決してなく、次の時刻で終点Tの記憶素子がディセーブルである場合には、始点Sの記憶素子に取り込まれた値は1サイクルで終点Tの記憶素子に到達する必要がなく、そのパスはマルチサイクルパスであることが分かる。
【0082】
図17はそのようなマルチサイクルパスの具体例の説明図である。同図においてFF1を始点Sにおける記憶素子、FF2を終点Tにおける記憶素子とする。FF1とFF2との間の組合せ回路部におけるパスがマルチサイクルパスであるか否かを判定する。ある時刻tにおいてFF1に対するイネーブル信号が“1”であるとすると、FF3とFF4の出力は共に“0”である。次の時刻t+1でFF3の出力は“0”、FF4の出力は“1”となり、FF2へのイネーブル信号は“0”となる。そこでステップS19の判定条件が成立することが分かる。
【0083】
図5に戻り、ステップS19で終点Tがディセーブルである場合には直ちにステップS21でそのパスがマルチサイクルパスと判定され、ステップS16以降の処理が繰り返される。
【0084】
これに対してステップS19で、次の時刻で終点Tの記憶素子がディセーブルであると明確に判定できなかった場合には、ステップS20でパス活性化条件を調べることによって、そのパスがマルチサイクルパスであると判定されるか否かが調べられる。
【0085】
すなわち、この処理では始点Sの記憶素子がイネーブルになった時刻で始点Sから終点Tまでの全てのパスが非活性か否か、すなわち始点Sでの値変化が終点まで伝搬しないかが、後述するパス活性化条件を利用して調べられる。全てのパスが非活性であると分かれば、ステップS21でそのパスはマルチサイクルパスと判定され、ステップS16以降の処理が繰り返される。ステップS20で全てのパスが必ずしも非活性でなく、1つでも活性のパスが存在する場合には直ちにステップS16に移行する。
【0086】
図18はステップS20の判定処理の詳細フローチャートである。同図において処理が開始されると、ステップS56で始点Sと終点Tとの間で未処理のパスが存在するか否かが判定され、存在する場合にはその未処理のパスがステップS57で1つ選択され、ステップS58で活性化条件として、例えばスタティックコセンシティゼーション条件を用いて調べられる。この条件については次の文献がある。
【0087】
【非特許文献3】
S.Davadas他:Logic Synthesis,p.239,McGraw-Hill,1994
このスタティックコセンシティゼーション条件について簡単に説明する。パス上に例えばアンドゲートが存在する場合には、その出力としてのコントロールドバリューは“0”であり、そのアンドゲートに対する入力のうち、パス上の入力の値はコントロールリングバリューとしての“0”でなければならないという条件が与えられる。すなわち、このアンドゲートに対する他の入力としては他のパスからの信号が与えられるが、パス上の入力の値が“0”であれば他のパスからの入力の値に無関係に出力は“0”となり、そのパスのアンドゲートに対しては活性化条件が成立することになる。
【0088】
例えばオアゲートに対するコントロールドバリューは“1”であり、パス上の入力の値がコントロールバリューとしての“1”であれば、そのオアゲートに対しては活性化条件が成立する。
【0089】
パス上の全てのノード(ゲートやセル)に対して全て活性化条件が成立した場合には、ステップS59で活性化条件が成立したと判定されて処理を終了するが、活性化条件が成立しない場合には、ステップS56からの処理が未処理のパスに対して繰り返され、未処理のパスが存在しないと判定された時点で処理を終了する。
【0090】
図5のステップS16で始点、終点の組の集合Pが空であると判定されると、ステップS22で始点の記憶素子と終点の記憶素子との間のパス上に記憶素子が存在するマルチサイクルパス、すなわち記憶素子をまたいでいるマルチサイクルパスを対象として、(またいだ記憶素子の数+1)のサイクル数を越えたサイクル数のマルチサイクルパスの検出が行われる。
【0091】
そしてそのようなマルチサイクルパスが検出されると、ステップS23でそのマルチサイクルパス上で、記憶素子と記憶素子との間のそれぞれの部分的なパス上で、例えばある部分パスに対して設計時に指定されたマルチサイクルパス制約が他の部分パスに移動できるかどうかを示す移動可能性が出力されて処理を終了する。
【0092】
図19はそのようなマルチサイクルパス制約の移動可能性が調べられるマルチサイクルパスの具体例の説明図である。同図は回路Cの一部分であり、FFAは値が設定されてから3クロックたつまでその値を保持するものとし、FFBは1クロック毎にFFAから組合せ回路を介して入力される値を取り込むものとし、FFCはFFAに値が制約定されてから3クロック経過後に、FFBから組合せ回路を介して入力される値を取り込むものとする。
【0093】
そこでFFBをまたいだFFAとFFCの間のパスは3サイクルのマルチサイクルパスとなるが、このマルチサイクルパス上にはFFBが1つしかないため、FFAとFFBとの間、またはFFBとFFCとの間のいずれかを2サイクルパスにすることができる。例えば設計時にFFAとFFBとの間が2サイクルのマルチサイクルパスとする制約が入力されていたとしても、そのマルチサイクルパスをFFBとFFCとの間に移動することが可能と考えられる。
【0094】
図20は図5のステップS22、すなわち(またいだ記憶素子の数+1)のサイクル数を越えたマルチサイクルパスの検出処理の詳細フローチャートである。同図においては回路C内のFFの全ての組合せ、すなわちFF対に対して、ステップS61〜ステップS65の処理が実行される。
【0095】
処理が開始されると、まずステップS61で未処理のFF対が存在するか否かが判定され、存在する場合にはステップS62で未処理のFF対が1つ選択され、その始点がS、終点がTとされ、ステップS63で始点と終点の間にFFが存在するか、すなわち選択されたFF対の間のパスが記憶素子をまたいでいるか否かが判定され、またいでいない場合にはステップS61以降の処理が繰り返される。
【0096】
またいだFFが存在する場合には、ステップS64で始点Sと終点Tの間に並列的に存在するパスのそれぞれにあるFFの数が調べられ、その数の最大値がKとされ、ステップS65でその最大数KのFFをまたぐパスが(K+2)サイクル以上のマルチサイクルパスであるか否かが調べられ、(K+2)サイクル以上のマルチサイクルパスである場合には、そのパスはマルチサイクルパスの移動可能性があるマルチサイクルパスと判定されて、ステップS61以降の処理が繰り返され、ステップS61で未処理のFF対が存在しないと判定された時点で処理を終了する。
【0097】
なおステップS65で(K+2)サイクル以上のマルチサイクルパスであるか否かを調べる処理では、そのパス上でまたいでいるFFを取り除いたものとして、図5のステップS19、およびS20の処理を実行することができる。
【0098】
以上のようなマルチサイクルパスの移動可能性の情報を用いて、回路製造後の製品の遅延のバラつきに応じて、マルチサイクルパスを移動させ、製品毎にタイミング制約を変化させることもできる。またすでにマルチサイクルパスであると分かっているパスに対して、図5のステップS22のみを適用して、マルチサイクルパスの移動可能性のみを調べることも可能である。
【0099】
以上の説明では、サイクル数2を基本として、サイクル数が2以上のマルチサイクパスの検出について説明したが、一般的にサイクル数Kのマルチサイクルパスの解析は、図20のステップS65に対する説明と同様に、パスの始点で記憶素子の値が変化する可能性のある時刻、すなわちイネーブルとなる時刻の次の時刻から始めて、現在の時刻から(K−1)時刻後までの範囲で、終点の記憶素子がイネーブルになることがないかどうかを調べることによって行うことができる。
【0100】
また以上の説明では、例えばゲーティッドクロックや、クロックソースの記憶素子のイネーブル入力を、フリップフロップの実際のイネーブル端子への信号に回路として変換する形式で実施形態を説明したが、そのような情報を例えばメモリに保持しておき、図5のステップS19、およびS20でその情報を参照して判定に利用するという実施形態も考えられる。
【0101】
図5のステップS14における外部端子に対する条件の制約回路への変換や、ステップS18のセレクタの選択制御入力のイネーブル信号への変換についてもそのような情報をメモリに保持しておき、ステップS19、S20でその情報を参照して判定することも可能である。更に大規模な回路に対しては、ステップS20で全てのパスを調べる手数が膨大となるため、ステップS20の処理を省略することも可能である。
【0102】
(付記1)解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上ついやすことのできるマルチサイクルパスの解析方法において、
前記解析対象回路を構成するセルを含む各素子の名称、および/または該各素子の端子への信号の意味および/または関係に対応して解析対象回路の分析を行い、
該分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定を行うことを特徴とするマルチサイクルパス解析方法。
【0103】
(付記2)前記解析対象回路の分析において、各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換を行い、
該回路変換の結果を用いて、前記マルチサイクルパス判定を行うことを特徴とする付記1記載のマルチサイクルパス解析方法。
【0104】
(付記3)前記回路変換において、前記素子の端子への信号のうちで、前記パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、該イネーブル信号に変換する回路変換を行うことを特徴とする付記2記載のマルチサイクルパス解析方法。
【0105】
(付記4)前記マルチサイクルパス判定において、前記パスの始点と終点における記憶素子へのイネーブル信号の値に基づいて、該記憶素子の値が変化し得るか否かに対応してマルチサイクルパスの判定を行うことを特徴とする付記3記載のマルチサイクルパス解析方法。
【0106】
(付記5)前記イネーブル信号の値に基づくマルチサイクルパスの判定においてマルチサイクルパスと判定されなかったパスに対して、該パスの始点と終点の間の全てのパスが非活性である時、該パスをマルチサイクルパスと判定することを特徴とする付記4の記載のマルチサイクルパス解析方法。
【0107】
(付記6)前記回路変換において、前記始点および/または終点の記憶素子への値の設定を制御するセレクタへの選択制御信号を、前記イネーブル信号に変換する回路変換を行うことを特徴とする付記3記載のマルチサイクルパス解析方法。
【0108】
(付記7)前記回路変換において、前記始点および/または終点の記憶素子を駆動するクロックのクロックソースも記憶素子である時、該クロックソースの記憶素子へのイネーブル信号を、該始点および/または終点の記憶素子へのイネーブル信号に変換する回路変換を行うことを特徴とする付記3記載のマルチサイクルパス解析方法。
【0109】
(付記8)前記回路変換において、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて、該記憶素子を駆動するクロックを、前記イネーブル信号に変換する回路変換を行うことを特徴とする付記3記載のマルチサイクルパス解析方法。
【0110】
(付記9)前記解析対象回路の分析において、前記各素子の名称に対応して回路内の記憶素子をグループ化し、
該グループのそれぞれが表す有限状態機械の到達可能状態を計算し、
該計算結果を用いて前記マルチサイクルパス判定を行うことを特徴とする付記1記載のマルチサイクルパス解析方法。
【0111】
(付記10)前記解析対象回路の分析において、該回路の外部入力端子への値設定信号、外部出力端子からの値読み出し信号の間の関係についての条件に基づいて、該条件に対応する制約回路を前記解析対象回路に付加し、
該付加後の解析対象回路に対して前記マルチサイクルパス判定を行うことを特徴とする付記1記載のマルチサイクルパス解析方法。
【0112】
(付記11)記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出することを特徴とする付記1記載のマルチサイクルパス解析方法。
【0113】
(付記12)前記解析対象回路の分析において、回路を構成するセルを含む各素子の端子への信号の意味に対応して、マルチサイクルパスの解析のための回路変換に必要な情報を記憶し、
該記憶内容を用いて、前記マルチサイクルパス判定を行うことを特徴とする付記1記載のマルチサイクルパス解析方法。
【0114】
(付記13)解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上ついやすことのできるマルチサイクルパスの解析装置において、
回路を構成するセルを含む各素子の端子への信号の意味に対応して、マルチサイクルパス解析のための回路変換を行う回路変換手段と、
該回路変換結果を用いて、始点から終点までのパスがマルチサイクルパスであるか否かを判定するマルチサイクルパス判定手段とを備えることを特徴とするマルチサイクルパス解析装置。
【0115】
(付記14)前記回路変換手段が、前記素子の端子への信号のうちで、前記パスの始点と終点における記憶素子へのイネーブル信号に変換可能な信号を、該イネーブル信号に変換する回路変換を行うことを特徴とする付記13記載のマルチサイクルパス解析装置。
【0116】
(付記15)解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上ついやすことのできるマルチサイクルパスの解析を行う計算機によって使用されるプログラムにおいて、
回路を構成するセルを含む各素子の端子への信号の意味に対応してマルチサイクルパスの解析のための回路変換を行う手順と、
該回路変換結果を用いて、始点から終点までのパスがマルチサイクルパスであるか否かを判定する手順とを計算機に実行させるためのプログラム。
【0117】
【発明の効果】
以上説明したように本発明によれば、パスの始点と終点の記憶素子の値の変化をイネーブル信号の値で判定するために、その値の変化する条件を回路の論理を解析して抽出する必要がなくなる。またセレクタの選択制御入力など、回路中のセルの情報や、局所的な有限状態機械の到達可能性の情報を利用することによって、マルチサイクルパスの解析を高速化し、解析能力を向上させることが可能となる。
【0118】
また、マルチサイクルパスの移動可能性を解析することによって、設計者の手間を必要とすることなく、タイミング制約をより満足しやすくなるため、設計時間の短縮が実現される。更に移動可能性解析の結果を、製造後の回路の遅延バラつきに応じてタイミング制約を変化させることに応用することによって製品歩留まりの向上につながり、マルチサイクルパス解析の実用性の向上に寄与するところが大きい。
【図面の簡単な説明】
【図1】本発明のマルチサイクルパス解析方法の原理的な機能ブロック図である。
【図2】マルチサイクルパス検出処理の基本的な処理フローチャートである。
【図3】マルチサイクルパスの移動可能性解析処理の基本フローチャートである。
【図4】本実施形態のマルチサイクルパス解析方法を実現するためのデータ処理装置の構成を示すブロック図である。
【図5】マルチサイクルパス解析処理の全体フローチャートである。
【図6】ゲーティッドクロックのフリップフロップに対するイネーブル信号への変換処理の詳細フローチャートである。
【図7】ゲーティッドクロックの変換処理の具体例の説明図である。
【図8】図7の回路の変換結果である。
【図9】外部端子のタイミング的条件の外部端子に対する制約回路への変換処理の詳細フローチャートである。
【図10】図9における制約回路への変換の具体例(その1)の説明図である。
【図11】図9における制約回路への変換の具体例(その2)の説明図である。
【図12】図9における制約回路への変換の具体例(その3)の説明図である。
【図13】有限状態機械の到達可能状態数え上げ処理の詳細フローチャートである。
【図14】図13の処理の具体例を説明する図である。
【図15】セレクタの選択制御入力のイネーブル信号への変換処理の詳細フローチャートである。
【図16】図15の変換処理の具体例の説明図である。
【図17】イネーブル信号の変化の具体例の説明図である。
【図18】始点、終点間の全てのパスの活性化条件判定処理の詳細フローチャートである。
【図19】マルチサイクルパス移動可能性判定の具体例の説明図である。
【図20】マルチサイクルパス移動可能性判定処理の詳細フローチャートである。
【符号の説明】
10 データ処理装置
11 入出力装置
12 記憶装置
13 始点・終点指示部
14 イネーブル信号化部
15 イネーブル入力抽出部
16 外部端子値設定・読み出し時刻制約回路生成部
17 局所FSM到達可能性解析部
18 マルチサイクルパス解析部
19 記憶素子をまたいだマルチサイクルパス解析部
Claims (10)
- コンピュータにより行われる、解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上費やすことのできる、マルチサイクルパスの解析方法において、前記コンピュータは、
解析対象となる回路、始点としての記憶素子と終点としての記憶素子との組で示される該解析対象回路におけるパス、及び外部入力端子から該解析対象回路への入力値の設定、及び該解析対象回路から外部出力端子への出力値の読み出し、についての制約条件を取得し、
前記始点および/または前記終点の記憶素子への値の設定を制御するセレクタへの選択制御信号をイネーブル信号に変換し、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて該記憶素子を駆動するクロックを前記イネーブル信号に変換し、及び該記憶素子がクロックソースとなっている場合に該記憶素子へのイネーブル信号を前記始点または終点となっている記憶素子へのイネーブル信号に変換し、
前記始点の記憶素子と前記終点の記憶素子とへ入力されるイネーブル信号を抽出し、
前記外部入力端子から該解析対象回路への入力値の設定、及び該解析対象回路から前記外部出力端子への出力値の読み出しについての制約条件と等価な回路である制限回路を該解析対象回路に付加し、
前記解析対象回路中の局所的な有限状態機械を同定し、該同定された有限状態機械の初期状態から到達可能な状態を検出する到達可能状態検出処理を行い、
前記到達可能状態検出処理における検出結果に応じて、前記始点にある記憶素子がイネーブルになる時刻の次の時刻で、前記終点にある記憶素子がイネーブルになるか否かに基づいて、前記始点から前記終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定を行う
ことを特徴とするコンピュータにより行われるマルチサイクルパス解析方法。 - 前記コンピュータは、前記マルチサイクルパス判定において、前記パスの始点における記憶素子がイネーブルになる時刻の次の時刻で、前記終点における記憶素子がディセーブルである場合、該パスはマルチサイクルパスであると判定する
ことを特徴とする請求項1記載のコンピュータにより行われるマルチサイクルパス解析方法。 - 前記コンピュータは、前記マルチサイクルパス判定において、前記パスの始点における記憶素子がイネーブルになる時刻の次の時刻で、前記終点における記憶素子がディセーブルであると判定できない場合、さらに、該パスの始点と終点の間の全てのパスが非活性である時、該パスをマルチサイクルパスと判定する
ことを特徴とする請求項2記載のコンピュータにより行われるマルチサイクルパス解析方法。 - 前記コンピュータは、前記到達可能状態検出処理において、外部から指定された、または前記各記憶素子につけられた名前の類似性から得られるグループのうち、クリア端子を持つグループまたはプリセット端子を持つグループを1つの有限状態機械とし、該各有限状態機械の記憶素子がクリア端子を持つかプリセット端子を持つかにより初期値を決めることにより、該有限状態機械の初期状態を求め、さらに該初期状態から到達可能な状態を全て求め、該到達可能状態の探索結果から抽出される状態の間のユニークな関係を示す含意関係を前記到達可能状態の集合から抽出する
ことを特徴とする請求項1記載のコンピュータにより行われるマルチサイクルパス解析方法。 - 前記コンピュータは、前記制限回路の付加において、前記外部入力端子から解析対象回路への入力値の設定についての制約条件に対応する前記制約回路を該外部入力端子に付加し、前記解析対象回路から外部出力端子への出力値の読み出しについての制約条件に対応する前記制約回路を該外部入力端子に付加する
ことを特徴とする請求項1記載のコンピュータにより行われるマルチサイクルパス解析方法。 - 前記コンピュータは、さらに、
前記到達可能状態検出処理における検出結果に応じて、記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出する
ことを特徴とする請求項1記載のコンピュータにより行われるマルチサイクルパス解析方法。 - 解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上費やすことのできるマルチサイクルパスの解析を行うマルチパス解析装置において、
解析対象となる回路、始点としての記憶素子と終点としての記憶素子との組で示される該解析対象回路におけるパス、及び外部入力端子から該解析対象回路への入力値の設定、及び該解析対象回路から外部出力端子への出力値の読み出し、についての制約条件を取得する取得手段と、
前記始点および/または前記終点の記憶素子への値の設定を制御するセレクタへの選択制御信号をイネーブル信号に変換し、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて該記憶素子を駆動するクロックを前記イネーブル信号に変換し、及び該記憶素子がクロックソースとなっている場合に該記憶素子へのイネーブル信号を前記始点または終点となっている記憶素子へのイネーブル信号に変換する変換手段と、
前記始点の記憶素子と前記終点の記憶素子とへ入力されるイネーブル信号を抽出する抽出手段と、
前記外部入力端子から該解析対象回路への入力値の設定、及び該解析対象回路から前記外部出力端子への出力値の読み出しについての制約条件と等価な回路である制限回路を該解析対象回路に付加する制限回路付加手段と、
前記解析対象回路中の局所的な有限状態機械を同定し、該同定された有限状態機械の初期状態から到達可能な状態を検出する到達可能状態検出手段と、
前記到達可能状態検出手段における検出結果に応じて、前記始点にある記憶素子がイネーブルになる時刻の次の時刻で、前記終点にある記憶素子がイネーブルになるか否かに基づいて、前記始点から前記終点までのパスがマルチサイクルパスであるか否かを判定マルチサイクルパス判定手段と、
を備えることを特徴とするマルチサイクルパス解析装置。 - 前記マルチサイクルパス解析装置は、さらに、
前記到達可能状態検出手段における検出結果に応じて、記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出するマルチサイクルパス検出手段
を備えることを特徴とする請求項7記載のマルチサイクルパス解析装置。 - 解析対象回路内のパスのうちで、パスの始点から終点まで信号が伝搬する時間として2サイクル以上費やすことのできるマルチサイクルパスの解析をコンピュータに実行させるマルチサイクルパス解析プログラムにおいて、
解析対象となる回路、始点としての記憶素子と終点としての記憶素子との組で示される該解析対象回路におけるパス、及び外部入力端子から該解析対象回路への入力値の設定、及び該解析対象回路から外部出力端子への出力値の読み出し、についての制約条件を取得する取得処理と、
前記始点および/または前記終点の記憶素子への値の設定を制御するセレクタへの選択制御信号をイネーブル信号に変換し、前記パスの始点と終点とにおける記憶素子を駆動するクロックのクロックゲーティング情報を用いて該記憶素子を駆動するクロックを前記イネーブル信号に変換し、及び該記憶素子がクロックソースとなっている場合に該記憶素子へのイネーブル信号を前記始点または終点となっている記憶素子へのイネーブル信号に変換する変換処理と、
前記始点の記憶素子と前記終点の記憶素子とへ入力されるイネーブル信号を抽出するイネーブル信号抽出処理と、
前記外部入力端子から前記解析対象回路への入力値の設定、及び該解析対象回路から前記外部出力端子への出力値の読み出しについての制約条件と等価な回路である制限回路を該解析対象回路に付加する制限回路付加処理と、
前記解析対象回路中の局所的な有限状態機械を同定し、該同定された有限状態機械の初期状態から到達可能な状態を検出する到達可能状態検出処理と、
前記到達可能状態検出処理における検出結果に応じて、前記始点にある記憶素子がイネーブルになる時刻の次の時刻で、前記終点にある記憶素子がイネーブルになるか否かに基づいて、前記始点から前記終点までのパスがマルチサイクルパスであるか否かのマルチサイクルパス判定を行うマルチサイクルパス判定処理と、
をコンピュータに実行させることを特徴とするマルチサイクルパス解析プログラム。 - 前記マルチサイクルパス解析プログラムは、さらに、
前記到達可能状態検出処理における検出結果に応じて、記憶素子をまたぐパスに対して、前記マルチサイクルパス解析を行うことにより記憶素子をまたいで移動可能なマルチサイクルパス制約を検出するマルチサイクルパス制約検出処理
をコンピュータに実行させることを特徴とする請求項9記載のマルチサイクルパス解析プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002334069A JP4083544B2 (ja) | 2002-11-18 | 2002-11-18 | マルチサイクルパス解析方法 |
US10/705,847 US7131087B2 (en) | 2002-11-18 | 2003-11-13 | Multi-cycle path analyzing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002334069A JP4083544B2 (ja) | 2002-11-18 | 2002-11-18 | マルチサイクルパス解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004171149A JP2004171149A (ja) | 2004-06-17 |
JP4083544B2 true JP4083544B2 (ja) | 2008-04-30 |
Family
ID=32290246
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002334069A Expired - Fee Related JP4083544B2 (ja) | 2002-11-18 | 2002-11-18 | マルチサイクルパス解析方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7131087B2 (ja) |
JP (1) | JP4083544B2 (ja) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1413937A1 (en) * | 2002-10-21 | 2004-04-28 | ABB Schweiz AG | Finite state machine display for operator guidance |
JP4217204B2 (ja) | 2004-11-22 | 2009-01-28 | 富士通株式会社 | タイミング例外パス検出装置、タイミング例外パス検出方法およびタイミング例外パス検出プログラム |
US7594200B2 (en) * | 2005-12-19 | 2009-09-22 | International Business Machines Corporation | Method for finding multi-cycle clock gating |
US20090070619A1 (en) * | 2006-06-05 | 2009-03-12 | Shinichi Gotoh | Multi-cycle path information verification method and multi-cycle path information verification device |
JP4200465B2 (ja) | 2006-09-05 | 2008-12-24 | 日本電気株式会社 | 半導体集積回路の設計方法及び設計システム |
WO2008050505A1 (fr) * | 2006-10-24 | 2008-05-02 | Panasonic Corporation | Appareil de simulation |
US8245178B2 (en) * | 2009-07-13 | 2012-08-14 | International Business Machines Corporation | Method for multi-cycle clock gating |
JP5520790B2 (ja) * | 2010-11-19 | 2014-06-11 | 株式会社日立製作所 | 設計支援装置および設計支援プログラム |
JP7351189B2 (ja) | 2019-11-13 | 2023-09-27 | 株式会社リコー | タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5191541A (en) * | 1990-05-14 | 1993-03-02 | Sun Microsystems, Inc. | Method and apparatus to improve static path analysis of digital circuits |
US6053949A (en) * | 1996-09-20 | 2000-04-25 | Matsushita Electric Industrial Co., Ltd. | Simulator of logic circuit and simulation method |
JPH1131162A (ja) * | 1997-07-11 | 1999-02-02 | Mitsubishi Electric Corp | 論理回路のシミュレーション装置及び論理検証方法 |
JP4176906B2 (ja) * | 1999-01-14 | 2008-11-05 | 株式会社ルネサステクノロジ | 静的・動的タイミング検証方法及び記憶媒体 |
US6442722B1 (en) * | 1999-10-29 | 2002-08-27 | Logicvision, Inc. | Method and apparatus for testing circuits with multiple clocks |
US6615392B1 (en) * | 2000-07-27 | 2003-09-02 | Logicvision, Inc. | Hierarchical design and test method and system, program product embodying the method and integrated circuit produced thereby |
JP2003006253A (ja) * | 2001-06-20 | 2003-01-10 | Mitsubishi Electric Corp | ロジック回路設計方法およびその方法をコンピュータに実行させるプログラム |
US20030225559A1 (en) * | 2002-05-29 | 2003-12-04 | Sharma Anup K. | Verification of multi-cycle paths |
JP2004013720A (ja) * | 2002-06-10 | 2004-01-15 | Fujitsu Ltd | 論理回路のタイミング制約モデル生成方法、論理回路のタイミング制約モデル生成プログラム、およびタイミング制約モデルを用いるタイミングドリブンレイアウト方法 |
-
2002
- 2002-11-18 JP JP2002334069A patent/JP4083544B2/ja not_active Expired - Fee Related
-
2003
- 2003-11-13 US US10/705,847 patent/US7131087B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040098685A1 (en) | 2004-05-20 |
JP2004171149A (ja) | 2004-06-17 |
US7131087B2 (en) | 2006-10-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4083544B2 (ja) | マルチサイクルパス解析方法 | |
JP2002267719A (ja) | 半導体集積回路及びそのテスト方法 | |
US11461523B1 (en) | Glitch analysis and glitch power estimation system | |
US9965575B2 (en) | Methods and systems for correcting X-pessimism in gate-level simulation or emulation | |
CN114280454A (zh) | 芯片测试方法、装置、芯片测试机及存储介质 | |
US6725187B1 (en) | Latch inference using dataflow analysis | |
Ravi et al. | TAO: Regular expression-based register-transfer level testability analysis and optimization | |
JP2007304699A (ja) | 回路連言標準形生成方法及び回路連言標準形生成装置並びにハザードチェック方法及びハザードチェック装置 | |
Pomeranz | Generation of functional broadside tests for logic blocks with constrained primary input sequences | |
JP3272915B2 (ja) | スタティックタイミング解析装置 | |
Ashar et al. | Exploiting multicycle false paths in the performance optimization of sequential logic circuits | |
US10796043B1 (en) | Non-adaptive pattern reordering to improve scan chain diagnostic resolution in circuit design and manufacture | |
JP3905951B2 (ja) | シミュレーション/エミュレーションの効率を増すための論理変換方法 | |
Yahya et al. | Statistical static timing analysis of conditional asynchronous circuits using model-based simulation | |
JPH06282600A (ja) | 論理シミュレーション装置 | |
JP5338919B2 (ja) | 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置 | |
JP3017504B2 (ja) | 論理回路シミユレーシヨン用期待値抽出方法 | |
Oh et al. | Efficient logic-level timing analysis using constraint-guided critical path search | |
CN116502578B (zh) | 网表化简时序模型的构建方法及静态时序分析方法 | |
JP3908192B2 (ja) | 論理回路の故障診断装置、故障診断方法およびそのプログラム | |
JP3047884B2 (ja) | 論理合成方法および装置 | |
JP2845478B2 (ja) | 論理回路の遅延時間解析装置 | |
JPH06148293A (ja) | 論理回路テスト回路 | |
CN108226743A (zh) | 一种测试向量的生成方法及装置 | |
JP3312605B2 (ja) | 逆論理展開システム及び逆論理展開方法並びにプログラムを記録した機械読み取り可能な記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20071019 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20071226 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080212 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080213 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110222 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120222 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130222 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140222 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |