JP2008243092A - マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム - Google Patents

マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム Download PDF

Info

Publication number
JP2008243092A
JP2008243092A JP2007086120A JP2007086120A JP2008243092A JP 2008243092 A JP2008243092 A JP 2008243092A JP 2007086120 A JP2007086120 A JP 2007086120A JP 2007086120 A JP2007086120 A JP 2007086120A JP 2008243092 A JP2008243092 A JP 2008243092A
Authority
JP
Japan
Prior art keywords
cycle
cycle path
path
timing
report
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
JP2007086120A
Other languages
English (en)
Inventor
Kazunori Demachi
一則 出町
Tetsuya Akiyama
哲哉 穐山
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2007086120A priority Critical patent/JP2008243092A/ja
Publication of JP2008243092A publication Critical patent/JP2008243092A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】この発明は、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることにより、論理合成やレイアウト処理に要する時間を短縮させるようにしたマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムを提供することを目的としている。
【解決手段】論理回路のタイミング解析結果からタイミング違反をしている経路のタイミングレポートを抽出し、それに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する。変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を算出し、それに基づいて、マルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する。
【選択図】 図3

Description

この発明は、例えばLSI(large scale integrated circuit)の開発時等において、論理回路内に形成された各種の経路からマルチサイクルパスを自動的に検出するマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムに関する。
周知のように、近年では、RTL(resistor transistor logic)設計データとクロック情報[例えばSDC(synopsys design constraints)言語形式等で記述された情報]とを入力することにより、実際のチップ上では活性化されないフォルスパスや、2クロックサイクル以上の処理時間を有するマルチサイクルパス等を発見するツールが出現している。
マルチサイクルパスとは、通常、同期設計において論理回路中の組み合わせ回路部分の経路における遅延時間は、1クロックサイクル以内である必要があるのに対し、2クロックサイクル以上を費やすことのできる経路のことである。つまり、nサイクルのマルチサイクルパスと言えば、クロックのn周期までタイミング制約を緩められる経路となる。
そして、一般に、論理設計を自動的に行なう論理合成ツールにおいては、処理時間が1クロックサイクル以内の回路を生成する必要があるが、nサイクルのマルチサイクルパスの経路に対しては、マルチサイクルパス指定を行なうことにより、クロックのn周期までタイミング制約を緩められる。
また、レイアウトツールにおいても同様に、処理時間が1クロックサイクル以内となるように回路を配置・配線する必要があるが、nサイクルのマルチサイクルパスの経路に対しては、マルチサイクルパス指定を行なうことにより、クロックのn周期までタイミング制約を緩めることができる。
なお、論理合成ツールやレイアウトツールにあっては、nサイクルのマルチサイクルパスの経路に対して、マルチサイクルパス指定をしなかった場合、処理時間を1クロックサイクル以内に収めるように回路設計しようとして膨大な処理時間を費やし、最悪の場合、タイミング違反を残したままで終了するような事態が多く発生する。
ところで、マルチサイクルパス指定は、現在、人手によって行なわれている。そして、近年では、LSIの大規模化に伴ない、機能毎に回路設計の分担化が行なわれていることから、マルチサイクルパスが複数のモジュール間に跨る場合があって、設計者が意識していないマルチサイクルパスも多く存在することがある。
このため、抜けのない100%のマルチサイクルパス指定を行なうことは、事実上不可能となっている。また、マルチサイクルパス指定を行なうに当たって、判断ミスがあれば回路設計上の致命的な問題となることも、人手によるマルチサイクルパス指定の作業を困難にする大きな問題点となっている。
さらに、マルチサイクルパス指定に判断ミスや指定漏れ等があった場合には、論理合成やレイアウト作業に余分な時間を要し、チップサイズの増大や、最悪の場合、製造後の実機評価で正常に動作しないという事態に陥る。これらは、いずれも、LSIの開発期間やコストを増大させる要因となり、論理合成やレイアウト作業の問題点とされている。
特許文献1には、第1の順序回路素子と、その出力信号が入力される第2の順序回路素子との間で、マルチサイクルに関する値取込条件データを算出し、各素子間のパス集合から上記値取込条件データと合致するパス集合を分割して、その分割した集合内の全てのパスがマルチサイクルパスか否かを判定するようにした構成が開示されている。
また、特許文献2には、解析対象回路を構成するセルを含む各素子の名称、素子の端子への信号の意味や関係に対応して解析対象回路の分析を行ない、その分析結果を用いて始点から終点までのパスがマルチサイクルパスであるか否かを判定するようにした構成が開示されている。
さらに、特許文献3には、指定した始点から終点までの部分回路における信号線の値を順次決定し、その値からマルチサイクルパスであるか否かを判定し、全ての組み合わせについてマルチサイクルパスであるときに、その回路部分がマルチサイクルパスであると判定するようにした構成が開示されている。
また、特許文献4には、HDL(hardware description language)記述されたプログラムから同期回路部分及び非同期回路部分を分割し、その非同期回路部分の一部を同期回路部分に変換し、サイクルベースシミュレーション/静的タイミング検証により機能検証できる回路部分を多くするようにした構成が開示されている。
さらに、特許文献5には、回路内の全てのパスを抽出して遅延時間を算出し、遅延時間が動作周期を超えているパスを選択し、そのパスに対してタイミング制約、負荷容量制約、マッピングセルの使用制限の観点から制約条件データを生成し、そのデータに基づいて論理合成を行なうようにした構成が開示されている。
特開2006−146711号公報 特開2004−171149号公報 特開2003−157297号公報 特開平11−85810号公報 特開2000−113019号公報
そこで、この発明は上記事情を考慮してなされたもので、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることにより、論理合成やレイアウト処理に要する時間を短縮させるようにしたマルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラムを提供することを目的とする。
この発明に係るマルチサイクルパス検出装置は、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出するものを対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出手段と、抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換手段と、変換手段で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、抽出手段で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算手段と、変換手段により始点及び終点が設定され演算手段によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定手段とを備えるようにしたものである。
また、この発明に係るマルチサイクルパス検出方法は、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出する方法を対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する第1の工程と、第1の工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する第2の工程と、第2の工程で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、第1の工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する第3の工程と、第2の工程により始点及び終点が設定され第3の工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する第4の工程とを備えるようにしたものである。
さらに、この発明に係るマルチサイクルパス検出プログラムは、論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出するものを対象としている。そして、論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出工程と、抽出工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換工程と、変換工程で変換された始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、抽出工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算工程と、変換工程により始点及び終点が設定され演算工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定工程とを、コンピュータに実行させるようにしたものである。
上記した発明によれば、タイミング違反をしている経路について、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点を求め、その始点から終点までの間の経路における信号処理時間が、クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を算出し、算出したサイクル数探索基準値に基づいて、マルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定するようにしたので、マルチサイクルパスを高い確度で自動検出してマルチサイクルパス指定に供させることができ、論理合成やレイアウト処理に要する時間を短縮させることが可能となる。
以下、この発明の実施の形態について図面を参照して詳細に説明する。まず、図1は、RTL設計された論理回路内に存在する経路の一例を示している。この経路は、2つのフリップフロップFF1及びFF2の相互間に、組み合わせ回路としてのアンドゲートANDを介在させたものである。この経路において、データは、クロックCKに同期してフリップフロップFF1に取り込まれ、アンドゲートANDを経由してフリップフロップFF2に達する。
このような経路において、その始点となるフリップフロップFF1のデータ入力端から、その終点となるフリップフロップFF2のデータ入力端までデータが伝播するのに要する時間は、通常、クロックCKの1サイクル以内に設計される。これに対し、経路の始点から終点まで信号が伝播するのに要する時間として、クロックCKの2サイクル以上を費やすことが許容された経路を、マルチサイクルパスと称している。そして、この実施の形態では、論理回路内からマルチサイクルパスを高い確度で自動検出するようにしている。
ここで、マルチサイクルパス検出の自動化のポイントについて説明する。近年、マルチサイクルパス指定の正当性を検証するツールが存在する。このツールは、マルチサイクルパス指定と、HDLまたはネットリストを入力し、論理回路中にマルチサイクルパスがあるか否かの解析と判定とを行なうものである。以下、このツールをMCP−Validationツールと称する。この実施の形態では、このツールを利用するが、ツール利用に当たっては、以下の2点を考慮に入れている。
(1) 膨大な数のマルチサイクルパス指定を、MCP−Validationツールに入力した場合、処理に時間を要する。また、最悪の場合、処理が終わらない場合が想定される。
(2) SDCのマルチサイクルパスコマンドの書式は、論理回路中のマルチサイクルパスの経路指定とサイクル数とを指定する。MCP−Validationツールでマルチサイクルパス指定を判定させる場合は、このサイクル数の候補を1つ1つ指定して判定させる。
まず、上記(1)項の、処理に時間を要することの対応については、論理合成前の初期のマルチサイクルパス指定において、マルチサイクルパスであっても1サイクルに収まっているタイミング的に余裕のある回路に対しては、あえてマルチサイクル指定をしなくても良い点に着目している。
すなわち、マルチサイクルパス指定を全く指定していない状態で、簡易的な合成とタイミング解析とを実行する。タイミング解析結果からタイミング違反を起こした経路、または、タイミングレポート中に複数のレポートが存在する場合には、スラックの大きい順にソートし、所定の閾値を超えるスラックを有する経路のみを、このMCP−Validationツールで判定することにより、効率的な処理時間で実行することが可能となる。また、論理合成後、及びレイアウト後のタイミング解析結果のタイミングレポートで、マルチサイクルパス指定を判定する自動化についても、同様の処理を実行する。
次に、上記(2)項の、サイクル数の指定については、詳細な説明は後述するが、サイクル数の探索基準値を求め、その近傍のサイクル数を設定し、MCP−Validationツールに効率的な判定をさせるのが、この実施の形態の特徴でもある。
以上により、従来のマルチサイクルパス指定の人手介入を極力排除し、判断ミスや指定漏れ等を生じることなくマルチサイクルパス指定をすることで、論理合成の最適化、及びレイアウト工程の最適化を行なうことができるようになり、LSIの性能向上とチップサイズの縮小化、高品質化を図り、開発期間、開発コストを大幅に低減することが可能となる。
図2は、この実施の形態で説明するマルチサイクルパス検出部を用いた、論理回路の全体的な設計システムの一例を示している。すなわち、ファイル11には、ハードウエア記述言語であるHDL(Verilog−HDLあるいはVHDL)を使って所望のLSIがRTレベルで記述されている。また、ファイル12には、使用するクロックの周期やデューティ比等のクロック仕様が記述されている。
次に、論理合成前のマルチサイクルパス検出部13は、簡易論理合成部13aと、ネットリストが格納されるファイル13bと、タイミングレポートが格納されるファイル13cと、マルチサイクルパスコマンド生成部13dと、マルチサイクルパスコマンドが格納されるファイル13eと、RTL用コマンド変換部13fと、RTL用コマンド変換結果が格納されるファイル13gとで構成されている。
このうち、簡易論理合成部13aは、ファイル11のHDLとファイル12のクロック仕様とを入力し、ゲートレベル論理回路(ネットリスト)の自動生成と、タイミング解析をした結果のタイミングレポートとを出力する。生成されたネットリストは、ファイル13bに格納され、タイミングレポートは、ファイル13cに格納される。
この簡易論理合成部13aでは、マルチサイクルパスであっても、クロックの1サイクル内に収まっているタイミング的に余裕のある回路に対しては、マルチサイクルパス指定をしないという着目点を実現する処理を行なっており、マルチサイクルパス指定を全く指定しないで簡易的な論理合成を実行し、タイミング解析結果のタイミングレポートを得ている。
この簡易論理合成部13aとしては、一般的に市販されている論理合成ツール(logic synthesizer)を使用するか、またはEDA(electronics design automation)ツールに組み込まれている簡易合成ツールを使用することができる。また、論理合成を短時間で終わらせるために、論理回路最適化努力オプションを下げて実行するか、またはクロック周期を本来の仕様よりも緩めに設定して実行している。さらに、タイミング解析結果のタイミングレポート中に複数のレポートが存在する場合は、スラックのワースト順にソートされている。
マルチサイクルパスコマンド生成部13dは、ファイル13b,13cからゲートレベル論理回路(ネットリスト)とタイミングレポートとを入力し、マルチサイクルパスコマンドの自動生成を実行する。このマルチサイクルパスコマンド生成部13dの詳細については、図3乃至図6を使用して後述する。そして、このマルチサイクルパスコマンド生成部13dの生成結果は、ファイル13eに格納される。
RTL用コマンド変換部13fは、マルチサイクルパスコマンド生成部13dで生成されたゲートレベルのマルチサイクルパスコマンドを、後述する論理合成ツール14に入力するために、RTレベルのマルチサイクルパスコマンドに変換する処理を施している。ここでは、マルチサイクルパスコマンドのゲートレベル指定の始点及び終点情報を、RTレベル用に変換する処理を行なっているが、ゲートレベルの回路記述と、それに相当するRTレベルの回路記述とを対応付ける技術は公知であるため、その説明は省略する。そして、このRTL用コマンド変換部13fの変換結果は、ファイル13gに格納される。
上記論理合成ツール14は、一般的に市販されている論理合成ツールのことで、ゲートレベルの論理設計を自動的に行なうツールである。すなわち、ファイル11のHDLで表現したRTL記述、真理値表、状態遷移記述、特定の半導体製造技術に依存しない論理式や、ファイル12のクロック仕様、マルチサイクルパス検出部13で得られたマルチサイクルパスコマンドを入力として、所望の半導体製造技術の下で最適なゲートレベル論理回路(ネットリスト)を自動生成する。
この論理合成ツール14で生成されたネットリストは、ファイル15に格納される。また、論理合成ツール14がタイミング解析した結果のレポートであるタイミングレポートは、ファイル16に格納される。このタイミングレポートには、ネガティブスラック、または、ポジティブ・スラックのレポートが含まれる。スラックとは、要求されるタイミングに対するマージンがどの程度あるかを示したもので、正のスラック値(ポジティブスラック)は要求されるタイミングを満足していることを示し、負のスラック値(ネガティブスラック)は、タイミング違反が含まれていることを示している。
また、この論理合成ツール14が出力したゲートレベルのSDCファイルは、ファイル17に格納される。
そして、タイミング違反判定部18では、ファイル16に格納されたタイミングレポートにタイミング違反が存在する否かの判定処理を行なっている。タイミング違反判定部18でタイミング違反が存在すると判定された場合は、論理合成後のマルチサイクルパス検出部19の処理が行なわれる。
このマルチサイクルパス検出部19においても、マルチサイクルパスコマンド生成部19aが、ファイル15,16に格納されたネットリストとタイミングレポートとを入力として、新たなマルチサイクルパスコマンドを生成し、ファイル19bに格納する。
そして、RTL用コマンド変換部19cは、マルチサイクルパスコマンド生成部19aで生成されたゲートレベルのマルチサイクルパスコマンドを、論理合成ツール14に再入力するために、RTレベルのマルチサイクルパスコマンドに変換する処理を施している。このRTL用コマンド変換部19cの変換結果は、ファイル19dに格納される。
ただし、論理合成ツール14において、初期合成でRTレベルのマルチサイクルパスコマンドを使用し、その後、タイミング制約を追加した部分合成(インクリメンタル合成)を行なう場合は、RTL用コマンド変換部19cの処理は不要で、ゲートレベルのマルチサイクルパスコマンドをそのまま使用することが可能である。
その後、ファイルマージ部19eにより、マルチサイクルパスコマンド生成部19aで得られた結果を、前回のマルチサイクルパスコマンドにマージする処理が行なわれる。マージ結果は、ファイル19fに格納された後、論理合成ツール14部に再入力され、論理合成が繰り返し実行される。この論理合成の繰り返しは、タイミング違反判定部18で違反がなくなったと判定されるまで、違反があってもそのスラックの値が許容値以内に収まるまで、または、マルチサイクルパスコマンド生成部19aでマルチサイクルパスコマンドが生成されなくなるまで行なわれる。
また、上記論理合成ツール14で生成されたネットリストは、ファイル20にも格納される。このファイル20のネットリストは、レイアウトツール21に供給される。このレイアウトツール21は、自動レイアウトツールであり、マクロセルの接続情報、つまり、ファイル20のネットリスト(論理回路設計結果)及びファイル17のゲートレベルのSDCファイルを入力すると、チップ上にマクロセルを自動的に置き(配置し)、その間を自動的に結ぶ(配線する)ツールである。
そして、レイアウトツール21のレイアウト結果が、ある程度収束した場合は、STA(static timing analyzer)22を使用してタイミング解析が行なわれる。このSTA22は、一般的に市販されているもので、論理回路のタイミングを検証するためのツールであり、例えば、対象の回路が所望のクロック周波数で動作するか等、タイミング仕様を満足するか否かを調べるために使用される。
STA22による解析は以下のように行なわれる。まず、ファイル20のネットリストとファイル17のゲートレベルのSDCファイルとを入力し、各素子(論理ゲート)の遅延時間情報と配線遅延時間情報とに基づいて、対象回路に相当するグラフ(グラフ理論のグラフであり、棒グラフとか折れ線グラフではない)を作成する。そして、このグラフから最大遅延時間のパス等を抽出して、フリップフロップ間のタイミングが所望の仕様に合致しているか否かを調べる。そして、STA22によるタイミング解析結果であるタイミングレポートは、ファイル23に格納される。
その後、タイミング違反判定部24では、ファイル23に格納されたタイミングレポートにタイミング違反が存在する否かの判定処理を行なっている。タイミング違反判定部24でタイミング違反が存在しないと判定された場合は、次工程処理25が行なわれ、タイミング違反が存在すると判定された場合は、レイアウト後のマルチサイクルパス検出部26の処理が行なわれる。
このマルチサイクルパス検出部26では、先に述べた論理合成後のマルチサイクルパス検出部19と同様の処理を行なうが、異なる点は、タイミングレポートソート部26aが追加される点である。前述したように、論理合成ツールには、タイミングレポートに複数のレポートが存在する場合、スラックのワースト順にソートする機能がある。既存のSTAツールでは、このソート機能をサポートしていないものもあり、ここでは、その処理を行なっている。もう1つの相違点は、マルチサイクルパス検出部19に存在したRTL用コマンド変換部19cが削除されたことだが、先のレイアウトツール21では、ゲートレベルのネットリストを扱うことから、RTレベルへの変換は不要となる。
そして、このマルチサイクルパス検出部26においても、マルチサイクルパスコマンド生成部26bが、ファイル20に格納されたネットリストとタイミングレポートソート部26aから得られるタイミングレポートとを入力として、新たなマルチサイクルパスコマンドを生成し、ファイル26cに格納している。
その後、ファイルマージ部26dにより、マルチサイクルパスコマンド生成部26bで得られた結果を、前回のマルチサイクルパスコマンドにマージする処理が行なわれる。マージ結果は、ファイル26eに格納された後、STA22に再入力され、タイミング解析が繰り返し実行される。このタイミング解析の繰り返しは、タイミング違反判定部24で違反がなくなったと判定されるまで、違反があってもそのスラックの値が許容値以内に収まるまで、または、マルチサイクルパスコマンド生成部26bでマルチサイクルパスコマンドが生成されなくなるまで行なわれる。
上記した実施の形態によれば、マルチサイクルパス検出部13,19,26によりマルチサイクルパスを高い確度で自動的に検出してマルチサイクルパス指定に供させるようにしたので、論理合成ツール14及びレイアウトツール21における処理時間を高速化することができる。
従来では、論理合成ツールあるいはタイミング解析ツールのタイミングレポートを人手で解析し、これらのツールに対してマルチサイクルパス指定をしていたが、これらを自動化することにより指定ミスや指定漏れを削減することができる。また、タイミングレポートの人手による解析から再合成まで何回かの後戻りが発生していたが、この繰り返し回数を削減することができる。
図3は、上記マルチサイクルパスコマンド生成部19aの一例を示している。なお、他のマルチサイクルパスコマンド生成部13d,26bについては、マルチサイクルパスコマンド生成部19aと同様な構成であるため、その説明を省略する。
すなわち、マルチサイクルパスコマンド生成部19aは、各種処理を実行するものであって、ここでは、タイミング違反パス情報抽出部19a1、マルチサイクルパスコマンド変換部19a2、サイクル数探索基準値設定部19a3、サイクル数の近傍設定によるマルチサイクルパス判定部19a4により構成されている。
このうち、タイミング違反パス情報抽出部19a1は、ファイル16のタイミングレポートから、タイミング違反を起こした経路、または、タイミングレポート中に複数のレポートが存在する場合は、スラックの大きい順にソートし、所定の閾値を超えるスラックを有する経路のみを抽出する。
また、マルチサイクルパスコマンド変換部19a2は、タイミング違反パス情報抽出部19a1で抽出したタイミングレポートに対応する各経路の始点と終点とを、マルチサイクルパスコマンドの始点と終点とに変換するものである。マルチサイクルパスコマンドとは、SDC形式のコマンドの1つであるset_multicycle_pathコマンドのことである。これについては、図4を用いて後述する。
さらに、サイクル数探索基準値設定部19a3は、マルチサイクルパスコマンド表記のサイクル数指定を自動で探索する際の基準値を設定している。これについても、図4を用いて後述する。
また、マルチサイクルパス判定部19a4は、マルチサイクルパスコマンド変換部19a2の変換結果に基づき、サイクル数探索基準値設定部19a3で設定された基準値を初期値として、MCP-Validationツールを使用してマルチサイクルパスを判定する。初期値でマルチサイクルパスと判定されなかった場合は、初期値の近傍を与えて探索する。これについても、図4を用いて後述する。
そして、サイクル数の近傍設定によるマルチサイクルパス判定部19a4でマルチサイクルパスと判定されたマルチサイクルパスコマンドは、ファイル19bに格納される。
図4は、上記マルチサイクルパスコマンド生成部19aの処理動作をまとめたフローチャートを示している。なお、他のマルチサイクルパスコマンド生成部13d,26bについても、マルチサイクルパスコマンド生成部19aと同様な処理動作を行なうため、その説明を省略する。
すなわち、処理が開始(ステップS1)されると、ステップS2で、タイミング違反パス情報抽出部19a1によるタイミング違反パス情報の抽出が行なわれる。これは、図3のファイル16のタイミングレポートを入力とし、このタイミングレポートからタイミング違反パス情報を抽出する処理である。
ファイル16のタイミングレポートに複数のレポートが存在する場合は、前処理で、スラックの大きい順にソートされているので、ソートされたレポートのうち、所定の閾値を超えるスラックを有する経路のみを抽出対象としている。この閾値は、本プログラムの入力情報であり、タイミング違反のパスを対象とする場合は、−0.0を指定する。レイアウト後の遅延の変動やEDAツールのタイミング計算の誤差を考慮したい場合には、プラス値を与えてもよい。抽出したタイミングレポートは、ファイル27に格納される。
そして、このファイル27に格納されたタイミングレポートは、上記マルチサイクルパスコマンド変換部19a2での処理に供される。すなわち、マルチサイクルパスコマンド変換部19a2は、ステップS3で、ファイル27から1個目のタイミングレポートを取得するように動作する。
その後、ステップS4で、ファイル27内にタイミングレポートが存在しなくなったか否かを判別し、存在しなくなったと判断された場合(YES)、処理を終了(ステップS5)する。つまり、ステップS4は、ファイル27内に格納された複数個のレポートの全部を処理したか否かを判定するルーチンである。
また、上記ステップS4でファイル27内にタイミングレポートが存在していると判断さたれ場合(NO)、ステップS6で、タイミングレポート中のStartpoint行の情報から、マルチサイクルパスコマンドの始点を指定する処理が行なわれる。マルチサイクルパスコマンドの書式には、フリップフロップ間の始点を指定するfrom_listと、フリップフロップ間の終点を指定するto_listとがある。
このステップS6は、from_listを設定する処理であるが、その説明の前に、図5を使用してタイミングレポートの形式を先に説明する。図5のタイミングレポートの形式は、論理合成ツール14やSTA22がタイミング解析を行なった結果のファイル形式である。
図5において、符号501は、タイミング解析したフリップフロップ間の始点の情報であり、1列目がStartpoint:を表記し、2列目に始点のインスタンス情報が表記されている。符号502は、フリップフロップ間の終点の情報であり、1列目がEndpoint:を表記し、2列目に終点のインスタンス情報が表記されている。
また、符号503は、クロックドメイン情報であり、タイミング解析したフリップフロップに接続されているクロックグループ名が表記されている。符号504は、フリップフロップ間の始点から終点までに存在する論理回路の各素子の遅延情報である。符号505は、フリップフロップの始点から終点までに存在する論理回路の各素子の遅延量の積算値(通常、data arrival timeと称される)である。
さらに、符号506は、スラック値を表わしている。符号507は、このマルチサイクルパスコマンド変換部19a2の出力結果であるマルチサイクルパスコマンド(ファイル28に格納)の形式である。符号508は、符号501で示した2列目の始点のインスタンスをfrom_listとして設定する。これは、図4に示したステップS6の処理を意味している。
また、符号509は、符号502で示した2列目の終点のインスタンスをto_listとして設定する。これは、図4に示すステップS9のタイミングレポート中のEndpoint行の情報からマルチサイクルパスコマンドの終点を指定する処理を意味している。符号510は、サイクル数指定である(図4で後述する)。
図4において、ステップS7及びS10は、from_list及びto_listをビット表記にするかバス表記にするかを判定するルーチンである。通常、タイミング解析は、ビット単位の解析であるためタイミングレポートもビット単位である。ビット表記をバス表記に変換した場合には、マルチサイクルパスコマンドの行数削減、コマンドの管理がし易い、コマンドの可読性が良いというメリットがある。
バス表記にするかビット表記にするかは、このプログラムの入力情報として与えられる。ビット表記にする場合は、図5に示した符号508及び509の設定が使われる。バス表記にする場合は、ステップS8及びS11においてバスバインド処理が行なわれる。バスバインド処理は、図5に示した符号508及び509の2列目のインスタンス中にバスを表す表記(通常、インスタンスの末尾が[ ]で括られている)がある場合に、この処理が行なわれる。
符号509のゲートレベルのインスタンスと、このマルチサイクルパスコマンド生成部19aの入力情報である図3のRTL2とを対応付ける。ゲートレベルの回路記述と、それに相当するRTレベルの回路記述とを対応付ける技術は公知なので、ここでは、あえて触れない。上記ステップS6〜S11の処理の結果は、ファイル28に格納される。
そして、このファイル28に格納されたマルチサイクルパスコマンドは、上記サイクル数探索基準値設定部19a3での処理に供される。すなわち、サイクル数探索基準値設定部19a3は、ステップS12で、タイミングレポート中の図5の符号503で示したクロック情報と、ファイル12のクロック仕様とを照合し、一致したクロック指定のクロック周期(T)を求める。タイミングレポート中から符号505で示したdata arrival timeの値を取得し、以下の計算式により、サイクル数探索基準値を求める。
サイクル数探索基準値=data arrival time/T(クロック周期)
なお、上式で余りがあればサイクル数探索基準値+1とする。そして、求めたサイクル数探索基準値は、後段のサイクル数の近傍設定によるマルチサイクルパス判定部19a4の初期値として使用するために変数nに格納する。
このサイクル数の近傍設定によるマルチサイクルパス判定部19a4では、ステップS12で求めたサイクル数探索基準値をサイクル数の初期値として、MCP-Validationツールを使用してマルチサイクルパスを判定している。なお、初期値でマルチサイクルパスと判定されなかった場合は、初期値の近傍を与えて探索する。以下に、この処理動作について説明する。
すなわち、マルチサイクルパス判定部19a4は、ステップS13で、ファイル28に格納されたマルチサイクルパスコマンドに対して、変数nをサイクル数として設定する。これは、図5に示した符号510の部分に対して行なわれる。設定した値は、ファイル29に格納される。
次に、マルチサイクルパス判定部19a4は、ステップS14で、ファイル29のマルチサイクルパスコマンドと、図2のファイル15のネットリストと、図2のファイル12のクロック仕様とを入力として、マルチサイクルパスか否かの判定を実行する。マルチサイクルパス判定部19a4とは、前述したMCP-Validationツールを意味している。
そして、ステップS15で、マルチサイクルパスと判定されたか否かの判定を行ない、マルチサイクルパスであると判定されなかった場合(NO)、ステップS16で、サイクル数探索基準値を基準として、近傍のサイクル数を設定し、再度マルチサイクルパス判定を行なわせる。
基準値の近傍とは、すなわち、最初は、サイクル数探索基準値+1を指定し判定する。そして、判定不成立の場合は、サイクル数探索基準値−1で再判定する。さらに、判定不成立の場合は、サイクル数探索基準値+2で判定、サイクル数探索基準値−2で判定と交互に指定し、終了条件まで繰り返し、マルチサイクルパスか否かの判定を実行する。このプログラムの入力情報として、終了条件の加算時の上限値と減算時の下限値とが与えられる。
その後、ステップS17で、判定終了か否かが判定され、終了の場合(YES)、ステップS3の処理に戻され、終了でない場合(NO)、ステップS13の処理に戻される。
また、上記ステップS15でマルチサイクルパスであると判定された場合(YES)、ステップS18で、判定成立コマンドのファイル19bへの格納処理が行なわれる。次に、ステップS3に戻り、次のタイミングレポートを取得し、ステップS4以降の処理が繰り返される。ステップS4で取得すべきタイミングレポートがなくなった場合は、このマルチサイクルパス生成部19aの処理が終了(ステップS5)される。
以上の処理動作によれば、タイミングレポートからマルチサイクルパスコマンドに変換し、サイクル数の近傍を設定してマルチサイクルパスの自動判定をすることにより、人手を介さずにマルチサイクルパスコマンドを生成することが可能となる。
図6は、上記マルチサイクルパスコマンド生成部19aの他の処理動作をまとめたフローチャートを示している。図6において、図4と同一部分には同一符号を付して示し、異なる部分についてのみ説明すると、サイクル数探索基準値設定部19a3では、ステップS19で、サイクル数基準値に小さい時間数(例えば、初期値2)を設定する。この初期値は、本プログラムの入力情報として与えてもよい。
そして、サイクル数の近傍設定によるマルチサイクルパス判定部19a4では、ステップS19で設定されたサイクル数基準値(例えば、初期値2)に対し、ステップS14でマルチサイクルパスか否かを判定し、ステップS15の判定で不成立の場合は、ステップS20で、変数nを加算し、順次大きい時間数に指定し、ステップS17の終了条件まで再判定している。
なお、この発明は上記した実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を種々変形して具体化することができる。また、上記した実施の形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素から幾つかの構成要素を削除しても良いものである。さらに、異なる実施の形態に係る構成要素を適宜組み合わせても良いものである。
この発明の実施の形態を示すもので、RTL設計された論理回路内に存在する経路の一例を説明するために示すブロック構成図。 同実施の形態におけるマルチサイクルパス検出部を用いた論理回路の全体的な設計システムの一例を説明するために示す図。 同実施の形態におけるマルチサイクルパス検出部に用いられたマルチサイクルパスコマンド生成部の一例を説明するために示す図。 同実施の形態におけるマルチサイクルパスコマンド生成部の処理動作の一例を説明するために示すフローチャート。 同実施の形態における経路のタイミング解析を行なった結果のタイミングレポートの形式を説明するために示す図。 同実施の形態におけるマルチサイクルパスコマンド生成部の処理動作の他の例を説明するために示すフローチャート。
符号の説明
11…ファイル、12…ファイル、13…マルチサイクルパス検出部、14…論理合成ツール、15…ファイル、16…ファイル、17…ファイル、18…タイミング違反判定部、19…マルチサイクルパス検出部、20…ファイル、21…レイアウトツール、22…STA、23…ファイル、24…タイミング違反判定部、25…次工程処理、26…マルチサイクルパス検出部、27…ファイル、28…ファイル、29…ファイル。

Claims (8)

  1. 論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出装置であって、
    前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出手段と、
    前記抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換手段と、
    前記変換手段で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記抽出手段で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算手段と、
    前記変換手段により始点及び終点が設定され前記演算手段によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対して、マルチサイクルパスか否かを判定する判定手段とを具備することを特徴とするマルチサイクルパス検出装置。
  2. 前記判定手段は、マルチサイクルパスと判定されなかったマルチサイクルパスコマンドに対し、前記サイクル数探索基準値をその近傍の値に設定し直して再判定を行なうことを特徴とする請求項1記載のマルチサイクルパス検出装置。
  3. 前記判定手段は、マルチサイクルパスと判定されなかったマルチサイクルパスコマンドに対し、前記サイクル数探索基準値を前記演算手段で演算された値から遠ざかる値に順次設定し直して再判定を繰り返し行なうことを特徴とする請求項1記載のマルチサイクルパス検出装置。
  4. 前記演算手段は、前記抽出手段で抽出されたタイミングレポートに含まれる遅延時間をクロック周期で除算して前記サイクル数探索基準値を算出することを特徴とする請求項1記載のマルチサイクルパス検出装置。
  5. 前記抽出手段は、マルチサイクルパスを指定せずに論理合成処理を行なった結果のタイミング解析結果であるタイミングレポート、マルチサイクルパスを指定して論理合成処理を行なった結果のタイミング解析結果であるタイミングレポート、レイアウトを行なった結果のタイミング解析結果であるタイミングレポートのいずれかから、タイミング違反をしている経路のタイミングレポートを抽出することを特徴とする請求項1記載のマルチサイクルパス検出装置。
  6. 前記変換手段は、前記抽出手段で抽出されたタイミングレポートに対応する経路の始点及び終点のインスタンスがビット表記である場合に、バス表記に変換可能であることを特徴とする請求項1記載のマルチサイクルパス検出装置。
  7. 論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出方法であって、
    前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する第1の工程と、
    前記第1の工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する第2の工程と、
    前記第2の工程で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記第1の工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する第3の工程と、
    前記第2の工程により始点及び終点が設定され前記第3の工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する第4の工程とを具備することを特徴とするマルチサイクルパス検出方法。
  8. 論理回路内に存在する経路の中から、始点から終点まで信号が伝播する時間としてクロックの2サイクル以上を費やすことのできるマルチサイクルパスを検出するマルチサイクルパス検出プログラムであって、
    前記論理回路のタイミング解析結果であるタイミングレポートから、タイミング違反をしている経路のタイミングレポートを抽出する抽出工程と、
    前記抽出工程で抽出されたタイミングレポートに対応する経路の始点及び終点を、マルチサイクルパスを検出するためのマルチサイクルパスコマンドの始点及び終点に変換する変換工程と、
    前記変換工程で変換された始点から終点までの間の経路における信号処理時間が、前記クロックの何サイクル以上を費やすことができるかを示すサイクル数探索基準値を、前記抽出工程で抽出されたタイミングレポートに含まれるクロック情報と遅延情報とに基づいて算出する演算工程と、
    前記変換工程により始点及び終点が設定され前記演算工程によりサイクル数探索基準値が設定されたマルチサイクルパスコマンドに対してマルチサイクルパスか否かを判定する判定工程とを、
    コンピュータに実行させることを特徴とするマルチサイクルパス検出プログラム。
JP2007086120A 2007-03-29 2007-03-29 マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム Pending JP2008243092A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007086120A JP2008243092A (ja) 2007-03-29 2007-03-29 マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007086120A JP2008243092A (ja) 2007-03-29 2007-03-29 マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム

Publications (1)

Publication Number Publication Date
JP2008243092A true JP2008243092A (ja) 2008-10-09

Family

ID=39914310

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007086120A Pending JP2008243092A (ja) 2007-03-29 2007-03-29 マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム

Country Status (1)

Country Link
JP (1) JP2008243092A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248038A (ja) * 2011-05-30 2012-12-13 Mitsubishi Electric Corp マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム
KR101423083B1 (ko) * 2013-01-16 2014-07-25 한밭대학교 산학협력단 Hevc 복호기용 역변환기 설계 방법
JP2016071430A (ja) * 2014-09-26 2016-05-09 Necスペーステクノロジー株式会社 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法
JP7351189B2 (ja) 2019-11-13 2023-09-27 株式会社リコー タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012248038A (ja) * 2011-05-30 2012-12-13 Mitsubishi Electric Corp マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム
KR101423083B1 (ko) * 2013-01-16 2014-07-25 한밭대학교 산학협력단 Hevc 복호기용 역변환기 설계 방법
JP2016071430A (ja) * 2014-09-26 2016-05-09 Necスペーステクノロジー株式会社 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法
JP7351189B2 (ja) 2019-11-13 2023-09-27 株式会社リコー タイミング制約抽出装置、タイミング制約抽出方法およびタイミング制約抽出プログラム

Similar Documents

Publication Publication Date Title
CN104573169B (zh) 以自动流水线操作能力设计集成电路的方法和工具
JP2008065496A (ja) Lsiの消費電力ピーク見積プログラム及びその装置
US7882483B2 (en) Method for checking constraints equivalence of an integrated circuit design
US6851102B2 (en) Method and program for supporting register-transfer-level design of semiconductor integrated circuit
US7380228B2 (en) Method of associating timing violations with critical structures in an integrated circuit design
CN101689216A (zh) 压缩型电路仿真输出
US9305125B2 (en) Integrated circuit design timing path verification tool
US20080059923A1 (en) Lsi power consumption calculation method and calculation program
JP2008243092A (ja) マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム
CN107784185B (zh) 一种门级网表中伪路径的提取方法、装置及终端设备
US6834379B2 (en) Timing path detailer
US10430535B2 (en) Verification support program medium, verification support method, and information processing device for verification of a circuit
US20200285791A1 (en) Circuit design method and associated computer program product
US7617466B2 (en) Circuit conjunctive normal form generating method, circuit conjunctive normal form generating device, hazard check method and hazard check device
US8959467B2 (en) Structural rule analysis with TCL scripts in synthesis or STA tools and integrated circuit design tools
JP5447547B2 (ja) マクロ遅延解析装置、マクロ境界パスの遅延解析方法、マクロ境界パスの遅延解析プログラム
JP2006259820A (ja) 故障検出改善装置、故障検出改善プログラム、故障検出改善方法
JP2011242825A (ja) 消費電力情報算出プログラム、消費電力情報算出方法、及び消費電力情報算出装置
US7962875B2 (en) Method, apparatus and program for designing circuits
JP2005293349A (ja) 回路設計支援システム、設計方法及びプログラム
JP2007226686A (ja) クリティカルパス推定プログラム、推定装置、推定方法、および集積回路設計プログラム。
JP4217204B2 (ja) タイミング例外パス検出装置、タイミング例外パス検出方法およびタイミング例外パス検出プログラム
JP4587754B2 (ja) クロック合成方法、半導体装置及びプログラム
CN111695321B (zh) 电路设计方法及相关的电脑程序产品
JP2016014950A (ja) 回路設計支援装置及び回路設計支援方法及びプログラム