JP5229119B2 - モデル生成プログラム、方法及び装置 - Google Patents

モデル生成プログラム、方法及び装置 Download PDF

Info

Publication number
JP5229119B2
JP5229119B2 JP2009138838A JP2009138838A JP5229119B2 JP 5229119 B2 JP5229119 B2 JP 5229119B2 JP 2009138838 A JP2009138838 A JP 2009138838A JP 2009138838 A JP2009138838 A JP 2009138838A JP 5229119 B2 JP5229119 B2 JP 5229119B2
Authority
JP
Japan
Prior art keywords
circuit
storage unit
simulation
data storage
module
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
JP2009138838A
Other languages
English (en)
Other versions
JP2010286948A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009138838A priority Critical patent/JP5229119B2/ja
Priority to US12/797,363 priority patent/US8364448B2/en
Publication of JP2010286948A publication Critical patent/JP2010286948A/ja
Application granted granted Critical
Publication of JP5229119B2 publication Critical patent/JP5229119B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

本技術は、回路モジュールをモデル化するための技術に関する。
近年、LSI(Large Scale Integrated circuit)の開発規模は大きくなっているにもかかわらず、その開発期間は短縮されてきている。また、LSIの消費電力の削減も大きな課題となっており、LSI設計の初期段階で、LSIの性能・電力を見積もる必要がある。このように初期段階でLSI全体の性能・電力を見積もるためには、LSIの構成要素である回路モジュール毎に性能モデル(以下、モデルと称する)が必要である。
回路モジュールのモデル化の一例として、低レベル記述(例えばHDL(Hardware Description Language))から高レベル記述(例えばTLM(Transaction Level Model))へ回路記述を変換する技術が存在している。この技術では、低レベル回路記述においてシミュレーションを実施し、シミュレーションデータからトランザクションを抽出する。ここでは、信号パターンをメッセージにマッピングする処理が行われ、メッセージがトランザクションに変換される。その後、モデル抽出が行われる。モデル抽出では、入力シーケンスと出力シーケンスとの繰り返し相互関係に着目して、ニューラルネットワークが出力メッセージ生成及びコンポーネントの統計的挙動の推定に用いられる。また、データ依存性についても抽出される。最後に、高レベルに抽象化されたモデルを生成する。このモデルは、入力トランザクション又はメッセージを解析して出力トランザクション又はメッセージを出力するようなものであって、信号レベル等に注目することなくメッセージのタイミングや関係に着目したものである。しかしながら、どのようにシミュレーションを行うかについては詳しく考察されていない。
なお、LSI等を含むデジタルシステムに対して論理検証を行うために、検証対象のハードウェアと通信する外部モジュールをソフトウェアで模擬する際、ハードウェアに供給するクロック周波数を遅くするといった技術は存在している。しかし、モデル生成とは特に関係しない。
さらに、サイクル精度の動作シミュレーションあるいは機能論理シミュレーションにおいて、LSI設計上の各機能ブロックのクロック周波数制御あるいはバッファ挿入に関して、構成変更を容易に行いながら、複数の設計バリエーションを探索するための技術も存在している。具体的には、LSIの設計データを入力として機能論理検証を行う際に、被検証対象のLSIを構成する各機能ブロックに対して動作周波数を指定する周波数制御手段と、周波数制御手段によって指定された動作周波数に応じて各機能ブロックの動作クロックを変更するクロック周波数変更手段と、動作クロック変更後のLSIに対して機能シミュレーションを実行する機能シミュレーション手段とを備える。そして、周波数制御手段は、すべての機能ブロックに対してそれぞれの状態に応じた動作周波数を指定し、クロック周波数変更手段は、その指定の動作周波数に基づいて、各機能ブロックの動作クロックを変更する。機能シミュレーション手段は、動作クロック変更後の機能ブロック群を含むLSIに対して機能シミュレーションを実行する。そして、最適解が得られるように上記処理を繰り返す。これによれば、機能ブロック毎に適した動作クロックを指定するが、その指定は容易に行うことができ、その上でLSI全体の機能シミュレーションを行って検証するので、全体として、LSIの設計検証をターンアラウンドタイムの短い状態で効率良く行うことができる、とされる。しかしながら、モデル生成については考察されていない。
米国特許公開公報2007/0277144号公報 特開平10−228491号公報 特開2004−133525号公報
上で述べたようなモデル生成を精度良く行うためには、複雑な機能を有する各モジュールについて、様々な動作条件下でシミュレーションを行うことが必要である。しかしながら、「様々な動作条件」を実現するために通常必要となる膨大なシミュレーション入力データを用意するには、各モジュールの機能仕様を十分に理解する必要があり、非常に手間が掛かる。すなわち、モデル生成を行うのは簡単ではない。
従って、本技術の目的は、LSIのモジュールについてのモデル生成の手間を削減するための技術を提供することである。
本モデル生成方法は、モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている上記回路のデータと、モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されているクロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、シミュレーション結果データ格納部に格納されている上記回路シミュレーションの結果に含まれる、モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップとを含む。
LSIのモジュールについてのモデル生成の手間が削減される。
図1は、回路モジュールのHMMについて説明するための模式図である。 図2は、モジュール間のトランザクション・シーケンスの一例を示す図である。 図3は、クロック変更による信号出力タイミングのずれを模式的に示す図である。 図4は、モデル生成装置の機能ブロック図である。 図5は、クロック変更回路を説明するための図である。 図6は、本実施の形態におけるメインフローを示す図である。 図7は、モジュールM1についての回路シミュレーション結果の一例を示す図である。 図8は、モジュールM2についての回路シミュレーション結果の一例を示す図である。 図9は、クロック設定データ格納部に格納されるデータの一例を示す図である。 図10は、通常の場合における、クロックφ1及びφ2とトランザクション・シーケンスとの関係を表す図である。 図11は、クロック設定データに従った場合における、クロックφ1b及びφ2bとトランザクション・シーケンスとの関係を表す図である。 図12は、クロック設定データに基づきクロックを設定するための処理フローの一例を示す図である。 図13は、期待値データ格納部に格納されるデータの一例を示す図である。 図14は、コンピュータの機能ブロック図である。
まず、本技術の実施の形態の前提について図1乃至図3を用いて説明する。本実施の形態では、性能モデルの1つとして隠れマルコフモデル(HMM:Hidden Markov Model)を採用するものとする。より具体的には、互いに通信を行う2つのモジュールM1及びM2について、そのトランザクションについて周知の学習を行ってHMMを生成する。なお、説明を簡単にするため、モジュール間の通信は非同期通信とする。モジュールM1のHMMは、図1に示すように、複数の状態S0乃至S3と、その状態間の状態遷移(自己遷移を含む)と、状態遷移の条件(すなわち状態遷移確率)並びに出力及び出力の条件(出力値及びその発生確率を含む)a乃至hとで規定される。図1には示していないが、モジュールM2についても、HMMが生成される。但し、一般的には、モジュールM1のHMMとモジュールM2のHMMとは、状態数、状態遷移、状態遷移の条件並びに出力及び出力の条件は異なる。
また、HMMの生成には、様々な周知技術が存在する。例えばEMアルゴリズム、Baum−Welchアルゴリズムなどが存在しており、いずれのアルゴリズムを用いても良い。このような学習アルゴリズムを用いれば、回路モジュールM1及びM2の動作に適合するトランザクションを行わせる状態遷移がHMMにおいて発生するように、HMMの状態、状態遷移、状態遷移の条件並びに出力及び出力の条件が決定される。
例えば、図2に示すようなトランザクションがモジュールM1及びM2間で実施され、その観測結果が周知の学習アルゴリズムで学習されるものとする。すなわち、モジュールM1から信号(又はメッセージ)T1がモジュールM2に出力され、その後モジュールM2から信号(又はメッセージ)t1がモジュールM1に出力され、その後モジュールM1から信号T2がモジュールM2に出力され、その後モジュールM2から信号t2がモジュールM1に出力され、その後モジュールM1から信号T3がモジュールM2に出力される。
このようなトランザクション・シーケンスからすると、信号T1に応答して信号t1が出力され、信号t1に応答して信号T2が出力され、信号T2に応答して信号t2が出力され、信号t2に応答して信号T3が出力される、といったような因果関係があるように見える。しかしながら、このような関係が正しいかどうかについては、分からない。すなわち、このようなデータだけに基づいて学習を行っても、精度の高いHMMが生成されるとは限らない。
このため、モジュールM1及びM2に異なる動作を行わせて、様々なトランザクション・シーケンスでHMMの学習を行わせることが好ましいが、通常の回路シミュレーションの中でモジュールM1及びM2に多数の異なる動作を行わせるには、モジュールの動作についての知見及び膨大なシミュレーション入力データを用意する必要がある。
そこで、本実施の形態では、同じシミュレーション入力を用いるが、例えばモジュールM2のクロックを変更して(例えば周波数を低くして)、回路シミュレーションを実施し、その場合におけるトランザクション・シーケンスを観測する。そうすると、例えば図3において白抜き矢印で示すように、モジュールM2から出力される信号t1及びt2のタイミングが図2に示す場合に比して遅くなる一方、モジュールM1から出力される信号T2及びT3のタイミングが変化しない、ということが分かる場合がある。このように、クロック周波数を変化させることによって、図2及び図3を総合して把握される信号間の因果関係については、図2のみから把握される因果関係とは異なっている。すなわち、信号T1と信号t1、信号T2と信号t2については因果関係が見出され、信号t1と信号T2、信号t2と信号T3は因果関係がないということが分かる。なお、周波数は高くしても良い。
このように、回路シミュレーションの入力データについては既に用意されているものをそのまま用いるようにして、代わりにモデル化対象モジュールに入力されるクロックを変化させれば、必要な手間を削減しつつ様々な回路シミュレーションを実施することができる。すなわち、様々なトランザクション・シーケンスを観測することができるようになるので、精度の良いHMMを生成することができるようになる。
以下、モデル化対象モジュールに対するクロックを変化させてHMMを生成するための構成について具体的に述べる。
図4に、本実施の形態に係るモデル生成装置1の機能ブロック図を示す。本モデル生成装置1は、(a)以下で述べるようにモデル化対象モジュールに対して供給されるクロックを変更するクロック変更回路のデータであるクロック周波数変更回路データ1111とモデル化対象モジュールの回路データとを含む回路データ111を格納する回路データ格納部11と、(b)クロック変更回路に対するクロック設定データを格納するクロック設定データ格納部14と、(c)回路データ格納部11及びクロック設定データ格納部14に格納されているデータを用いて周知の回路シミュレータ100に対して回路シミュレーションを実施させ、回路シミュレータ100から回路シミュレーションの結果を受け取る回路シミュレーション制御部12と、(d)回路シミュレーション制御部12が受け取った回路シミュレーションの結果を格納するシミュレーション結果データ格納部13と、(e)シミュレーション結果データ格納部13に格納されているデータを用いてクロック設定データを生成して、クロック設定データ格納部14に格納するクロック設定データ生成部15と、(f)モデル化対象モジュールの入出力信号についての期待値データを格納する期待値データ格納部17と、(g)シミュレーション結果データ格納部13及び期待値データ格納部17に格納されているデータから回路シミュレーションの結果のうちモデル生成に不適格なデータを削除する処理を実施する不適格データ削除部16と、(h)シミュレーション結果データ格納部13に格納されているデータからHMMの周知の学習処理を実施するモデル生成部18と、(i)モデル生成部18によって生成されたHMMのデータを格納するモデルデータ格納部19とを有する。
ここでクロック変更回路について図5を用いて模式的に示しておく。モデル化対象モジュールM1に供給されるクロックφ1は、通常であればモジュールM1に直接入力されるが、本実施の形態ではクロック変更回路201によりクロックφ1bに変更した後にモジュールM1に入力される。同様に、モデル化対象モジュールM2に供給されるクロックφ2は、通常であればモジュールM2に直接入力されるが、本実施の形態ではクロック変更回路202によりクロックφ2bに変更した後にモジュールM2に入力される。クロック変更回路201及び202は、例えば入力クロックのクロック周波数をX倍(Xは正の実数)にするような回路であり、回路自体は周知なのでこれ以上述べない。なお、周波数を変更するのではなく、デューティー比率やクロック信号の立ち上がりのタイミングを前後させるような変更を行うようにしてもよい。但し、周波数自体を変更する方がモジュールの動作に与える影響が大きく、さらにバリエーションも多数採用できるので、異なる動作を観測しやすくなる。なお、周波数とその他の変更とを組み合わせるようにしても良い。
次に、図6乃至図13を用いて図4に示したモデル生成装置1の動作について説明する。この処理の前段階として、予め回路データ111が回路データ格納部11に格納されているものとする。まず、回路シミュレーション制御部12は、回路データ格納部11に格納されており且つモデル化対象モジュールの回路データを含む回路データ111を回路シミュレータ100に設定し(ステップS1)、回路シミュレータ100に回路シミュレーションを実施させる(ステップS3)。ステップS3では、クロック設定データを用いることなく、通常どおり1セットの入力データについて第1回目の回路シミュレーションを実施させ、回路シミュレーション制御部12は、第1回目の回路シミュレーションの結果を回路シミュレータ100から受け取り、シミュレーション結果データ格納部13に格納する。
シミュレーション結果データ格納部13に格納されるデータは、例えば図7及び図8に示すようなデータである。図7は、モジュールM1についてのデータ例を示している。具体的には、時刻9に信号T1を出力し(すなわち、出力端子から値T1の信号が出力される。以下同様。)、時刻16に信号t1が入力され(すなわち、入力端子に値t1の信号が入力される。以下同様。)、時刻19に信号T2を出力し、時刻25に信号t2が入力されたことが観測されている。また、図8は、モデル化対象モジュールM2についてのデータ例を示している。具体的には、時刻10に信号T1が入力され、時刻15に信号t1を出力し、時刻20に信号T2が入力され、時刻24に信号t2を出力したことが観測されている。
次に、クロック設定データ生成部15は、シミュレーション結果データ格納部13に格納されている第1回目の回路シミュレーションの結果から、クロック変更対象期間を抽出し、さらにクロック変更対象期間に基づきクロック設定データを生成し、クロック設定データ格納部14に格納する(ステップS5)。例えば、入力信号と出力信号の時間間隔が所定時間未満の部分をクロック変更対象期間として抽出する。例えば、モジュールM2に着目して、入力信号と出力信号の時間間隔が例えば「4」以下であれば抽出するとする。そうすると図8の例から、信号T2が入力された時刻20から信号t2が出力された時刻24までが抽出される。
なお、このようにして抽出した時間間隔を例えばユーザに対して提示してユーザにクロック変更対象期間を指定させるようにしても良い。また、ユーザにクロック変更対象期間を全て指定させるようにしても良い。さらに、他の基準にてクロック変更対象期間を特定するようにしても良い。
そして、クロック設定データ生成部15は、クロック変更対象期間に、クロックを変更させるためのクロック設定データを生成し、クロック設定データ格納部14に格納する。例えば、図9に示すようなデータをクロック設定データ格納部14に格納する。図9の例では、開始時刻ts1と、終了時刻ts2と、調整係数kとを含む。ここでは、クロック周波数を調整係数k倍(kは正の実数)するものとする。なお、kについては予め設定された固定の値を用いるようにしても良いが、例えば0より大きく設計仕様等で許可される最大値(例えば1.5など)以下の範囲で発生させた乱数値を採用するようにしても良い。
図10に模式的に示せば、モデル化対象モジュールM1からモデル化対象モジュールM2に信号T1乃至T3が出力され、モデル化対象モジュールM2からモデル化対象モジュールM1に信号t1及びt2が出力されている。そして、通常であればクロックφ1がモデル化対象モジュールM1に入力され、クロックφ2がモデル化対象モジュールM2に入力され、クロック周波数の変更は行われない。一方、クロック設定データに従えば、図11に示すように、モデル化対象モジュールM2に入力されるクロックφ2bの周波数が、モデル化対象モジュールM1から信号T2を受信してから信号t2を出力するまでの期間Lだけ、例えば半分になる。この際、信号t2が同じように出力されるか否か、そしてそれ以降の信号(例えばT3)が同じように出力されるか否かについては不明であるが、モジュール間のトランザクションを観測する。
さらに、上で述べたように周波数の実数倍というような変更だけではなく、他の修正方法を採用しても良い。さらに、図9のようなデータを例えば周波数の調整係数kが各々異なる複数セット用意するようにしてもよい。各セットについて以下で述べる2回目以降の回路シミュレーションを実施してその回路シミュレーションの結果を用いてHMMを生成すれば、HMMの精度を高くすることができる。また、複数のモデル化対象モジュールについてクロック設定データを少なくとも1セット用意して一度に回路シミュレーションを行わせる場合もあれば、モデル化対象モジュール1つ1つについてクロック設定データを少なくとも1セット用意してモデル化対象モジュール毎に回路シミュレーションを実施するようにしても良い。
例えば過去に作成した回路モジュールを再利用する場合や外部から調達した回路モジュールを新たに利用する場合など、回路モジュールのデータが既に存在するが、性能モデルは生成できていない場合、このようにして回路シミュレーションを実施すれば、クロック設定データを生成することができる。
なお、ユーザが自らの知識によってクロック設定データを生成できる又は他の手法によってクロック設定データを生成できる場合には、ステップS1乃至S5については、実施しなくとも良い。
その後、クロック設定データが用意できると、回路シミュレーション制御部12は、回路データ格納部11に格納されている回路データ111とクロック設定データ格納部14に格納されているクロック設定データと1セットの入力データとを回路シミュレータ100に設定し(ステップS7)、回路シミュレータ100に周知の回路シミュレーションを実施させる(ステップS9)。そして、回路シミュレーション制御部12は、第2回目の回路シミュレーションの結果を回路シミュレータ100から受け取り、シミュレーション結果データ格納部13に格納する。シミュレーション結果データ格納部13に格納されるデータについては、図7及び図8に示したようなデータ・フォーマットと同じデータである。なお、クロック設定データを複数セット生成した場合には、複数回回路シミュレーションを実施させる。
この第2回目以降の回路シミュレーションにおいて、クロック変更回路では、例えば図12に示すような処理を実施する。まず、初期的には、クロック変更回路の出力クロックφ2bに入力クロックφ2を設定する(ステップS31)。また、クロック設定データのカウンタnを1に初期化する(ステップS33)。その後、n番目のクロック設定データを読み出し(ステップS35)、時刻tとn番目のクロック設定データにおける開始時刻ts1とを比較する(ステップS37)。ここで時刻tが開始時刻ts1より前であれば(ステップS39:Noルート)、ステップS37に戻る。一方、時刻tが開始時刻ts1以降であれば(ステップS39:Yesルート)、時刻tが終了時刻ts2以前であれば(ステップS41:Yesルート)、出力クロックφ2bに入力クロックφ2*k(クロック設定データに含まれる調整係数)を設定する(ステップS43)。
一方、時刻tが終了時刻ts2より後になれば(ステップS41:Noルート)、出力クロックφ2bを入力クロックφ2に戻す(ステップS45)。そして、未処理のクロック設定データが存在するか判断し(ステップS47)、存在する場合にはカウンタnを1インクリメントして(ステップS49)、ステップS35に戻る。一方、未処理のクロック設定データが存在しない場合には、処理を終了する。すなわち、ステップS45の設定が回路シミュレーションが終了するまで維持される。
このようにすれば、クロック設定データに従ってクロック変更を回路シミュレーションにおいて実施することができるようになる。
図6の処理フローの説明に戻って、第2回目以降の回路シミュレーションの結果がシミュレーション結果データ格納部13に格納されると、不適格データ削除部16が、期待値データ格納部17に格納されている期待値データとシミュレーション結果データ格納部13に格納されている回路シミュレーションの結果データとを比較して、使用不可能な結果データを削除する(ステップS11)。期待値データ格納部17に格納されるデータの一例を図13に示す。図13は、モデル化対象モジュールM2についての期待値データを示しており、この図の例では、時刻制約及び信号条件が規定されるようになっている。例えば、信号T1が入力された時点をTt1とすると、信号t1の出力が、(Tt1+0)から(Tt1+5)までに発生するという条件が規定されている。同様に、信号T2が入力された時点をTt2とすると、信号t2の出力が、(Tt2+4)から(Tt2+15)までに発生するという条件が規定されている。これらは一例であって、信号間に相互異存関係のない条件を設定する場合もある。このような期待値データは、基本的にはモデル化対象モジュールを含む回路の設計仕様に従って決定される。さらに、例えば第1回目の回路シミュレーションの結果を基に、設定するようにしても良い。このように確認するのは、クロック設定データによってクロックを変化させすぎて、モジュールが正しく動作していない場合もあり、正しく動作していない場合の回路シミュレーションの結果データを用いてHMMを生成することは好ましくないからである。
例えば、図13と図8の回路シミュレーションの結果を比較すると、信号T1が入力されたのが時刻10=Tt1であり、信号t1が出力されたのが時刻15=Tt1+5であるから、項番A1及びA2の条件を満たしている。また、信号T2が入力されたのが時刻20であり、信号t2が出力されたのが時刻24=Tt2+4であるから、項番B1及びB2の条件を満たしている。例えば、信号t2が出力されたのが時刻40=Tt2+20である場合には、項番B1及びB2の条件を満たしていないことになるので、モジュールM2は正常に動作しておらず、モジュールM2の結果データについては削除する。
不適格データ削除部16の処理が終了した後に、モデル生成部18は、シミュレーション結果データ格納部13に格納されている使用可能な結果データ(例えば第1回目の回路シミュレーションの結果を含む)を用いて、性能モデル・データ、すなわちHMMのデータを周知の方法を用いて生成し、モデルデータ格納部19に格納する(ステップS13)。上で述べたように、EMアルゴリズムやBaum−Welchアルゴリズムなど、HMM生成に周知の方法を用いる。生成されるHMMのデータは、HMMの状態、状態遷移、状態遷移の条件(どのような条件で状態遷移が発生するのか)並びに出力及び出力の条件(状態遷移発生時に、どのような出力がどのような条件で出力されるのか)が決定される。
以上のような処理を実施すれば、回路シミュレーションに用いる膨大な入力データを用意せずに、異なる動作をモデル化対象モジュールに実施させることができ、その結果を用いて性能モデルを自動的に生成することができるようになる。
以上本技術の実施の形態を説明したが、本技術はこれに限定されるものではない。例えば図4に示した機能ブロック図は一例であって、必ずしも実際のプログラムモジュール構成と一致しない場合もある。
HMMではなく、他に学習手法が確立したモデルが存在する場合には、そのような他のモデルを採用して、モデル生成部18についてもそのような学習手法を実施するようなモデル生成部に置換しても良い。
なお、上で述べたモデル生成装置1は、コンピュータ装置であって、図14に示すように、メモリ2501とCPU2503とハードディスク・ドライブ(HDD)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。必要に応じてCPU2503は、表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、必要な動作を行わせる。また、処理途中のデータについては、メモリ2501に格納され、必要があればHDD2505に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウェアとOS及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上本実施の形態をまとめると以下のようになる。
本モデル生成方法は、モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている上記回路のデータと、モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されているクロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、シミュレーション結果データ格納部に格納されている上記回路シミュレーションの結果に含まれる、モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップとを含む。
このようにクロック変更回路を設けた上で回路シミュレーションにおいてクロックを変更させることによって、隠れマルコフモデル生成に必要なデータ作成の手間を削減できるようになる。
また、本モデル生成方法は、シミュレーション結果データ格納部に格納されている回路シミュレーションの結果が、入出力信号の値及び時刻の期待値を含む条件を満たしているか判断し、当該条件を満たしていない回路シミュレーションの結果を除外するステップをさらに含むようにしても良い。クロックを変更しすぎると、モデル化対象モジュールの動作が不適切になる場合があるので、不適切な動作に基づく回路シミュレーションの結果でモデル化を実施するのを避けるためである。
さらに、本モデル生成方法は、回路データ格納部に格納されている上記回路のデータを用いてクロックを変更させることなく回路シミュレータに回路シミュレーションを実施させ、第2の回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、シミュレーション結果データ格納部に格納されている第2の回路シミュレーションの結果から、モデル化対象モジュールに対する入力から出力までの時間が閾値未満である変更候補時間の開始時刻及び終了時刻を抽出し、当該開始時刻及び終了時刻を含むクロック設定データを生成し、クロック設定データ格納部に格納するステップとを含むようにしても良い。このように、前処理として通常どおりに回路シミュレーションを実施して、モデル化対象モジュールの動作に大きく影響を与えるタイミングとして、上で述べたようなモデル化対象モジュールに対する入力から出力までの時間が閾値未満である変更候補時間を特定する。この変更候補時間の全てについてクロックを変更しても良いし、ユーザに変更候補時間を提示して選択させるようにしても良い。
なお、上で述べたような処理をコンピュータに実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。なお、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、
前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップと、
をコンピュータに実行させるためのモデル生成プログラム。
(付記2)
前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果が、前記入出力信号の値及び時刻の期待値を含む条件を満たしているか判断し、当該条件を満たしていない前記回路シミュレーションの結果を除外するステップ
をさらに前記コンピュータに実行させるための付記1記載のモデル生成プログラム。
(付記3)
前記回路データ格納部に格納されている前記回路のデータを用いてクロックを変更させることなく前記回路シミュレータに回路シミュレーションを実施させ、第2の回路シミュレーションの結果を前記シミュレーション結果データ格納部に格納させるステップと、
前記シミュレーション結果データ格納部に格納されている前記第2の回路シミュレーションの結果から、前記モデル化対象モジュールに対する入力から出力までの時間が閾値未満である変更候補時間の開始時刻及び終了時刻を抽出し、当該開始時刻及び終了時刻を含むクロック設定データを生成し、前記クロック設定データ格納部に格納するステップと、
をさらに前記コンピュータに実行させるための付記1又は2記載のモデル生成プログラム。
(付記4)
モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、
前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップと、
を含み、コンピュータに実行されるモデル生成方法。
(付記5)
モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックの周波数を変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックの周波数を所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させる手段と、
前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号のタイミングについての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納する手段と、
を有するモデル生成装置。
1 モデル生成装置
11 回路データ格納部 12 回路シミュレーション制御部
13 シミュレーション結果データ格納部 14 クロック設定データ格納部
15 クロック設定データ生成部 16 不適格データ削除部
17 期待値データ格納部 18 モデル生成部
19 モデルデータ格納部 100 回路シミュレータ

Claims (5)

  1. モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、
    前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップと、
    をコンピュータに実行させるためのモデル生成プログラム。
  2. 前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果が、前記入出力信号の値及び時刻の期待値を含む条件を満たしているか判断し、当該条件を満たしていない前記回路シミュレーションの結果を除外するステップ
    をさらに前記コンピュータに実行させるための請求項1記載のモデル生成プログラム。
  3. 前記回路データ格納部に格納されている前記回路のデータを用いてクロックを変更させることなく前記回路シミュレータに回路シミュレーションを実施させ、第2の回路シミュレーションの結果を前記シミュレーション結果データ格納部に格納させるステップと、
    前記シミュレーション結果データ格納部に格納されている前記第2の回路シミュレーションの結果から、前記モデル化対象モジュールに対する入力から出力までの時間が閾値未満である変更候補時間の開始時刻及び終了時刻を抽出し、当該開始時刻及び終了時刻を含むクロック設定データを生成し、前記クロック設定データ格納部に格納するステップと、
    をさらに前記コンピュータに実行させるための請求項1又は2記載のモデル生成プログラム。
  4. モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックを変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックを所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させるステップと、
    前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号についての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納するステップと、
    を含み、コンピュータに実行されるモデル生成方法。
  5. モデル化対象モジュールと当該モデル化対象モジュールに入力されるクロックの周波数を変更する回路とを含む回路のデータを格納している回路データ格納部に格納されている前記回路のデータと、前記モデル化対象モジュールに入力されるクロックの周波数を所定のタイミングで変更させるためのクロック設定データを格納するクロック設定データ格納部に格納されている前記クロック設定データとを用いて、回路シミュレータに回路シミュレーションを実施させ、当該回路シミュレーションの結果をシミュレーション結果データ格納部に格納させる手段と、
    前記シミュレーション結果データ格納部に格納されている前記回路シミュレーションの結果に含まれる、前記モデル化対象モジュールに対する入出力信号の値及び時刻から、所定のアルゴリズムによって、前記モデル化対象モデルに対する入出力信号のタイミングについての隠れマルコフモデルを生成し、当該隠れマルコフモデルについてのデータを隠れマルコフモデルデータ格納部に格納する手段と、
    を有するモデル生成装置。
JP2009138838A 2009-06-10 2009-06-10 モデル生成プログラム、方法及び装置 Expired - Fee Related JP5229119B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009138838A JP5229119B2 (ja) 2009-06-10 2009-06-10 モデル生成プログラム、方法及び装置
US12/797,363 US8364448B2 (en) 2009-06-10 2010-06-09 Model generating method and device and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009138838A JP5229119B2 (ja) 2009-06-10 2009-06-10 モデル生成プログラム、方法及び装置

Publications (2)

Publication Number Publication Date
JP2010286948A JP2010286948A (ja) 2010-12-24
JP5229119B2 true JP5229119B2 (ja) 2013-07-03

Family

ID=43307148

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009138838A Expired - Fee Related JP5229119B2 (ja) 2009-06-10 2009-06-10 モデル生成プログラム、方法及び装置

Country Status (2)

Country Link
US (1) US8364448B2 (ja)
JP (1) JP5229119B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2506700A3 (en) * 2007-11-27 2014-02-26 Hewlett-Packard Development Company, L.P. System synthesis to meet an exergy loss target value
US8903696B2 (en) * 2011-07-15 2014-12-02 Cadence Design Systems, Inc. System and method for controlling granularity of transaction recording in discrete event simulation
FR2982685B1 (fr) * 2011-11-10 2014-06-27 Commissariat Energie Atomique Systeme et procede de conception de circuit numerique a capteur d'activite, circuit numerique correspondant
US9262560B2 (en) * 2013-03-13 2016-02-16 Saudi Arabian Oil Company Automatic recovery of reservoir simulation runs from processing system failures
CN105573520B (zh) * 2015-12-15 2018-03-30 上海嵩恒网络科技有限公司 一种五笔的长句连打输入方法及其系统
JP2019200524A (ja) * 2018-05-15 2019-11-21 ルネサスエレクトロニクス株式会社 プログラム、情報処理装置、および情報処理方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09265489A (ja) * 1996-03-29 1997-10-07 Fujitsu Ltd シミュレーション処理方法
JPH10228491A (ja) 1997-02-13 1998-08-25 Toshiba Corp 論理検証装置
JP2001126056A (ja) * 1999-10-26 2001-05-11 Mitsubishi Electric Inf Technol Center America Inc 複数の形態で動作するシステムをモデリングするための方法および多様な形態で動作する動的システムをモデリングするための装置
JP2004133525A (ja) * 2002-10-08 2004-04-30 Matsushita Electric Ind Co Ltd Lsi設計検証装置およびlsi設計検証方法
JP4074174B2 (ja) 2002-10-18 2008-04-09 株式会社アドバンテスト 電圧制御発振器測定装置、方法、プログラムおよび該プログラムを記録した記録媒体
US7457367B2 (en) * 2004-07-07 2008-11-25 University Of Utah Research Foundation Detector and method for estimating data probability in a multi-channel receiver
US7848440B2 (en) * 2005-07-07 2010-12-07 University Of Utah Research Foundation Multi-channel communication method and apparatus using plural Markov Chain Monte Carlo simulations
WO2007066319A1 (en) 2005-12-08 2007-06-14 Mentor Graphics Corporation Conversion of switching signals of a circuit simulation into a transaction model

Also Published As

Publication number Publication date
US20100318342A1 (en) 2010-12-16
JP2010286948A (ja) 2010-12-24
US8364448B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
CN110192192B (zh) 用于电路设计的基于神经网络的物理综合
JP5229119B2 (ja) モデル生成プログラム、方法及び装置
CN104143327B (zh) 一种声学模型训练方法和装置
US8051399B2 (en) IC design flow incorporating optimal assumptions of power supply voltage drops at cells when performing timing analysis
JP5883676B2 (ja) Lsi設計方法
US20180129771A1 (en) Design support method, and information processing apparatus
JP2005122298A (ja) タイミング解析装置、タイミング解析方法及びプログラム
US20090271747A1 (en) Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit
CN112560374A (zh) 集成的仿真器与分析和优化引擎
JPWO2010092825A1 (ja) 回路解析方法
US9727676B1 (en) Method and apparatus for efficient generation of compact waveform-based timing models
US8321825B2 (en) Method and system for synthesizing relative timing constraints on an integrated circuit design to facilitate timing verification
US11625617B2 (en) Reduction of edges in a knowledge graph for entity linking
US7984404B2 (en) Black box timing modeling method and computer system for latch-based subsystem
JP5119506B2 (ja) 半導体集積回路の設計装置、そのデータ処理方法、およびその制御プログラム
US10896283B1 (en) Noise-based optimization for integrated circuit design
US10902167B1 (en) Feedback-aware slack stealing across transparent latches empowering performance optimization of digital integrated circuits
US10776543B2 (en) Automated region based optimization of chip manufacture
JP4370335B2 (ja) Lsi解析プログラム、該プログラムを記録した記録媒体、lsi解析装置、およびlsi解析方法
US8443314B1 (en) Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL
US11068632B2 (en) Simulation apparatus, description conversion method and simulation method
JP5104356B2 (ja) 検証支援プログラム、検証支援装置、および検証支援方法
Paulweber et al. Unified (A) Synchronous Circuit Development
US20240330551A1 (en) Timing analysis of a digital integrated circuit using intent based timing constraints
CN113688587B (zh) 一种电路布图的生成方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120214

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130304

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees