JP2008117318A - ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 - Google Patents
ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 Download PDFInfo
- Publication number
- JP2008117318A JP2008117318A JP2006302124A JP2006302124A JP2008117318A JP 2008117318 A JP2008117318 A JP 2008117318A JP 2006302124 A JP2006302124 A JP 2006302124A JP 2006302124 A JP2006302124 A JP 2006302124A JP 2008117318 A JP2008117318 A JP 2008117318A
- Authority
- JP
- Japan
- Prior art keywords
- clock
- hardware
- model
- block
- description
- 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.)
- Granted
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
-
- 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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
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)
Abstract
【解決手段】多相クロックにより動作するハードウェアの動作記述47を構文解析・字句解析処理手段41により解析し、クロックドメイン分割処理手段42によりハードウェアを各クロック系統毎にクロックドメインに分割して、CDFG生成手段43により各クロックドメイン毎にCDFG48A、48B、・・を生成する。そのCDFG48A、48B、・・を、スケジューリング・ステート割り振り手段44で各ブロックのクロック周波数によりスケジューリングしてステートに割り振り、サイクル精度モデル生成手段45によりステート毎にハードウェアのサイクル精度モデルを汎用プログラミング言語により表現した記述として生成する。
【選択図】図2
Description
#pragmaclock A
{
FunctionA();
}
#pragmaclock B
{
FunctionB();
}
#pragmaclock C
{
FunctionC();
}
上記記述例において、#pragma parallelに続く{}で囲まれる記述部分がそれぞれ並列動作する機能ブロック回路として高位合成される。また、#pragmaclockに続く数値A、B、Cをクロック周期として、続く{}で囲まれる記述部分が各クロック系統の機能ブロックとして高位合成される。本例中、FunctionA()、FunctionB()およびFunctionC()は、回路の動作を表す関数とする。
ステートA0 → ステートA1 → ステートA2
クロックドメインBのステートの変化
ステートB0 → ステートB1
クロックドメインCのステートの変化
ステートC0 → ステートC1
各クロックドメインのサイクル精度モデルが計算される順番を制御する方法としては、例えば以下の2つの方法を用いることができる。なお、以下の説明において、サイクル精度モデルを用いたシミュレーション時刻をtとし、シミュレーション時刻tは”0”を初期値(t0)とする。
この制御方法(1)では、ハードウェア5における各クロック系統の機能ブロック(クロックドメインA〜C)についてサイクル精度モデルの計算が実行される時刻を比較して、計算が実行されるまでの時間が最も短い時間を選定すると共にそのクロック系統のブロックを計算が実行されるブロックとして選定する処理と、次にサイクル精度モデルの計算が実行されるまでの時間を更新する処理とが繰り返し行われる。
上記式において、min()は与えられた引数の中から最小の値を持つクロックドメインのモデルを選定するための関数とする。
tA(x) < tB(y) < tC(z)
の関係が成り立つ場合には、D(x,y,z)はクロックドメインAのモデルとなる。
tA(x+1)=A
tB(y)=tB(y)−tA(x)
tC(z)=tC(z)−tA(x)
次に、計算が実行されるまでの時間が最も短い時間およびそのクロック系統のブロック(クロックドメインのモデル)を選定する処理は、以下の式によって表される。
以上のように、シミュレーション時刻tから各クロックドメインのモデルが計算されるまでの時間を比較し、最も時間が短いクロックドメインのモデルを計算して、次に、モデルの計算が実行されるまでの時間を更新する処理を繰り返すことによって、各クロックドメインのモデルが計算される順番を制御することができる。
上記式から、D(x,y,z)はクロックドメインAのモデルである。
tB(y)=2−1=1
tC(z)=3−1=2
次に、計算が実行されるクロックドメインのモデルが以下の式によって選定される。
上記式から、D(x+1,y,z)はクロックドメインBのモデルである。
tB(y+1)=3
tC(z)=2−1=1
次に、計算が実行されるクロックドメインのモデルが以下の式によって選定される。
上記式から、D(x+1,y+1,z)はクロックドメインAとクロックドメインCのモデルである。この場合、2つのクロックドメインのモデルが計算されるが、計算が行われる順番は任意である。サイクル精度モデルを用いたシミュレーションでは、どちらのクロックドメインのモデルから計算が実行されても、各モデルの計算結果は同じである。上述したように、サイクル精度モデルの計算とは、クロックドメインの回路内部に含まれるレジスタなどの記憶素子の値の変化、および回路外部へ出力される値の変化を求めるものであり、各クロックドメインのモデルの計算が開始される順番が変わっても、回路内部への入力の値は変わらないため、モデルの計算順序によって計算結果は変わらない。このようなサイクル精度モデルの詳細については、例えば特許文献2に述べられている。
tB(y+1)=3−1=2
tC(z+1)=4
次に、計算が実行されるクロックドメインのモデルが以下の式によって選定される。
以上により、クロックドメインの制御モデル生成手段46による制御方法(1)は、各クロック系統毎のブロックについてクロック精度モデルの計算が実行される時刻を比較し、この計算が実行されるまでの時間が最も短い時間を選定すると共に、各クロック系統毎のブロックの計算が実行されるブロックとして選定し、選定されたブロックについては次にクロック精度モデルの計算が実行される時刻を当該ブロックにおけるクロック周期の値に更新し、当該ブロック以外のブロックについてはクロック精度モデルが計算されるまでの時間から最も短い時間を減算し、順次同様に、計算が実行されるまでの時間が最も短い時間およびブロックの選定処理と、クロック精度モデルの計算が実行される時刻を更新する処理とを繰り返し行う。
この制御方法(2)では、ハードウェア5における各クロック系統の機能ブロック(クロックドメインA〜C)におけるクロック周期の最大公約数となる時間が計算され、各クロック系統のブロックについてサイクル精度モデルの計算が実行される時刻を示すカウンタの値にその最大公約数となる時間が加算されて、各クロック系統のブロックにおけるクロック周期とそのカウンタの値とが一致した場合に、そのブロックのサイクル精度モデルの計算が実行される。計算が実行されたブロックは、カウンタの値が初期化され、それ以外のブロックについてはカウンタの値にその最大公約数となる時間が加算される。
eB=exec(B−cB)
eC=exec(C−cC)
上記式において、exec()では、与えられた引数が0である場合に、そのクロックドメインのモデルが計算されると判定される。判定結果は、各クロックドメインにおいてeA、eBおよびeCとして表されている。また、各クロックドメインで計算が実行されるまでの時間を示すカウンタの値は、cA、cBおよびcCとして表されている。
cA=0
cB=cB+GCD
cC=cC+GCD
以降、同様に、計算の実行判定とカウンタの値にクロックの最大公約数を加算する処理とが繰り返されることによって、各クロックドメインのモデルが計算される順番を制御することができる。
eB=exec(3−0)
eC=exec(4−0)
上記式から、全てのクロックドメインのモデルについて、計算は実行されないと判定される。
cB=0+1=1
cC=0+1=1
次に、計算が実行されるブロックが、以下の式によって判定される。
eB=exec(3−1)
eC=exec(4−1)
上記式から、全てのクロックドメインのモデルについて、計算は実行されないと判定される。
cB=1+1=2
cC=1+1=2
次に、計算が実行されるブロックが、以下の式によって判定される。
eB=exec(3−2)
eC=exec(4−2)
上記式から、クロックドメインAの判定においてモデルの計算が実行されると判定され、それ以外のクロックドメインの判定においてはモデルの計算は実行されないと判定される。判定結果から、クロックドメインAのモデルの計算が実行される。
cB=2+1=3
cC=2+1=3
次に、計算が実行されるブロックが、以下の式によって判定される。
eB=exec(3−3)
eC=exec(4−3)
上記式から、クロックドメインBの判定においてモデルの計算が実行されると判定され、それ以外のクロックドメインの判定においてはモデルの計算は実行されないと判定される。判定結果から、クロックドメインBのモデルの計算が実行される。
cB=0
cC=3+1=4
次に、計算が実行されるブロックが、以下の式によって判定される。
eB=exec(3−0)
eC=exec(4−4)
上記式から、クロックドメインCの判定においてモデルの計算が実行されると判定され、それ以外のクロックドメインの判定においてはモデルの計算は実行されないと判定される。判定結果から、クロックドメインCのモデルの計算が実行される。
cB=0+1=1
cC=0
以上により、クロックドメインの制御モデル生成手段46による制御方法(2)は、各クロック系統毎のブロックにおけるクロック周期の最大公約数となる時間を計算し、各クロック系統毎のブロックについてクロック精度モデルの計算が実行される時刻を示すカウンタの値に最大公約数となる時間を加算し、各クロック系統毎のブロックにおけるクロック周期とカウンタの値とが一致したブロックについてはクロック精度モデルの計算が実行されるブロックと判定してカウンタの値を初期化し、それ以外のブロックについてはクロック精度モデルの計算が実行されないブロックと判定してカウンタの値に該最大公約数となる時間を加算する処理を繰り返し行う。
#pragmaclock A
#pragmaoffset offsetA
{
FunctionA();
}
#pragmaclock B
#pragmaoffset offsetB
{
FunctionB();
}
#pragmaclock C
#pragmaoffset offsetC
{
FunctionC();
}
上記式において、#pragma offsetに続く数値がオフセット時間とされており、それに続く{}で囲まれたクロックドメインが高位合成される。上記例では、FunctionA()のクロックドメインにオフセット時間offsetAが指定され、FunctionB()のクロックドメインにオフセットoffsetBが指定され、FunctionC()のクロックドメインにオフセットoffsetCが指定されている。
2 キーボードなどの入力装置
3 計算機本体
31 制御部(CPU)
32 メモリなどの可読記録媒体
33 磁気ディスクなどの可読記録媒体
4 ハードウェア高位合成プログラム
41 構文解析・字句解析処理手段
42 クロックドメイン分割処理手段
43 CDFG生成手段
44 スケジューリング・ステート割り振り手段
45 サイクル精度モデル生成手段
46 クロックドメインの制御モデル生成手段
47 多相クロックにより動作するハードウェアの動作記述
48A クロックドメインAのCDFG
48B クロックドメインBのCDFG
49A クロックドメインAのサイクル精度記述
49B クロックドメインBのサイクル精度記述
50 クロックドメインの制御情報
51 クロックドメインの制御記述
52 多相クロックにより動作するハードウェアの動作をサイクル精度レベルで検証可能な実行形式のハードウェア検証用プログラム
5 検証対象であるハードウェア
10 ハードウェア検証用プログラミング記述生成装置として機能するコンピュータシステム
Claims (25)
- 多相クロックにより回路動作するハードウェアについて、構造に関する情報は含まず、処理動作のみが記述された動作記述から、該ハードウエアを各クロック系統毎のブロックに分割し、分割された各ブロック毎に動作合成処理を行う動作合成処理手段と、該動作合成処理されたデータを用いて該ハードウェアをサイクル精度レベルで検証可能なクロック精度モデルを生成するクロック精度モデル生成手段とを有するハードウェア検証用プログラミング記述生成装置。
- 前記サイクル精度レベルで前記ハードウェアをシミュレーションする際に前記各クロック系統毎のブロックについて、前記クロック精度モデルの計算が行われる順番を制御するための制御モデルを生成するクロック制御モデル生成手段をさらに有する請求項1に記載のハードウェア検証用プログラミング記述生成装置。
- 前記動作合成処理手段は、
前記ハードウェアの動作記述を解析して該ハードウェアの動作情報を得る動作記述解析手段と、
該ハードウェアの動作情報から該ハードウェアを前記各クロック系統毎にブロックに分割するクロックドメイン分割処理手段と、
該各クロック系統毎のブロックについて、該ハードウェアの動作記述から、該ハードウェアの動作がノードと該ノード間を接続する枝とを用いて表現されたコントロールデータフローグラフを生成するコントロールデータフローグラフ生成手段とを有する請求項1に記載のハードウェア検証用プログラミング記述生成装置。 - 前記クロック精度モデル生成手段は、
前記動作合成処理されたデータとしてのコントロールデータフローグラフの各ノードを、該各ブロックのクロック周波数によりスケジューリングして各ステートに割り振るスケジューリング・ステート割り振り手段と、
該各ステート毎に、スケジューリング・ステート割り振り結果を用いて、該ハードウェアをサイクル精度により検証可能な動作モデルを前記クロック精度モデルとして生成するサイクル精度モデル生成手段とを有する請求項1または3に記載のハードウェア検証用プログラミング記述生成装置。 - 前記クロック精度モデルおよび前記制御モデルのうちの少なくともいずれかを汎用プログラミング言語により表現された記述として生成する請求項1、2および4のいずれかに記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロック制御モデル生成手段は、前記各クロック系統毎のブロックについて前記クロック精度モデルの計算が実行される時刻を比較し、該計算が実行されるまでの時間が最も短い時間を選定すると共に、該各クロック系統毎のブロックの計算が実行されるブロックとして選定し、選定されたブロックについては次に該クロック精度モデルの計算が実行される時刻を当該ブロックにおけるクロック周期の値に更新し、当該ブロック以外のブロックについては該クロック精度モデルが計算されるまでの時間から該最も短い時間を減算し、順次同様に、計算が実行されるまでの時間が最も短い時間およびブロックの選定処理と、該クロック精度モデルの計算が実行される時刻を更新する処理とを繰り返す請求項2に記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロック制御モデル生成手段は、前記各クロック系統毎のブロックにおけるクロック周期の最大公約数となる時間を計算し、該各クロック系統毎のブロックについて前記クロック精度モデルの計算が実行される時刻を示すカウンタの値に該最大公約数となる時間を加算し、該各クロック系統毎のブロックにおけるクロック周期と該カウンタの値とが一致したブロックについては該クロック精度モデルの計算が実行されるブロックと判定して該カウンタの値を初期化し、それ以外のブロックについては該クロック精度モデルの計算が実行されないブロックと判定して該カウンタの値に該最大公約数となる時間を加算する処理を繰り返し行う請求項2に記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロック制御モデル生成手段は、前記ハードウェアの動作記述から前記各クロック系統毎に指定された回路動作が開始される時刻を解析し、該各クロック系統毎のブロックについてクロック精度モデルの計算が開始される時刻を制御する請求項2に記載のハードウェア検証用プログラミング記述生成装置。
- 前記動作記述は、回路の機能単位でブロックに分割した形式により記述可能で、各機能ブロックに動作クロックを指定することが可能であり、該各機能ブロックを並列動作させることが指定可能とされている請求項1、3および8のいずれかに記載のハードウェア検証用プログラミング記述生成装置。
- 前記汎用プログラミング言語としてC言語が用いられている請求項5に記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロックドメイン分割処理手段は、前記動作記述において、前記各ブロックの並列動作に関する記述と、該各ブロックに指定された動作クロックとに従って、前記各クロック系統毎に前記ハードウェアをブロックに分割する請求項3または9に記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロックドメイン分割処理手段は、クロックドメイン分割処理の他に、前記各クロック系統毎のブロックについて前記クロック精度モデルの計算が行われる順番を制御するために用いる制御情報として、前記ブロックを示すクロックドメインの名前とクロック周期の値とによって構成されたクロックドメインの制御情報を作成する請求項3または11に記載のハードウェア検証用プログラミング記述生成装置。
- 前記動作記述から、多相クロックにより回路動作するハードウェアを高位合成し、高位合成したハードウェアを、請求項1〜12のいずれかに記載のハードウェア検証用プログラミング記述生成装置により生成されたハードウェア検証用プログラミング記述を用いて検証可能とする高位合成装置。
- 多相クロックにより回路動作するハードウェアについて、構造に関する情報は含まず、処理動作のみが記述された動作記述から、該ハードウエアを各クロック系統毎のブロックに分割し、分割された各ブロック毎に動作合成処理を行う動作合成処理工程と、該動作合成処理されたデータを用いて該ハードウェアをサイクル精度レベルで検証可能なクロック精度モデルを生成するクロック精度モデル生成工程とを有するハードウェア検証用プログラミング記述生成方法。
- 前記サイクル精度レベルで前記ハードウェアをシミュレーションする際に前記各クロック系統毎のブロックについて、前記クロック精度モデルの計算が行われる順番を制御するための制御モデルを生成するクロック制御モデル生成工程をさらに有する請求項14に記載のハードウェア検証用プログラミング記述生成方法。
- 前記動作合成処理工程は、
前記ハードウェアの動作記述を解析して該ハードウェアの動作情報を得る動作記述解析工程と、
該ハードウェアの動作情報から該ハードウェアを前記各クロック系統毎にブロックに分割するクロックドメイン分割処理工程と、
該各クロック系統のブロックについて、該ハードウェアの動作記述から、該ハードウェアの動作がノードと該ノード間を接続する枝とを用いて表現されたコントロールデータフローグラフを生成するコントロールデータフローグラフ生成工程とを有する請求項14に記載のハードウェア検証用プログラミング記述生成方法。 - 前記クロック精度モデル生成工程は、
前記動作合成処理されたデータとしてのコントロールデータフローグラフの各ノードを、前記各ブロックのクロック周波数によりスケジューリングして各ステートに割り振るスケジューリング・ステート割り振り工程と、
該各ステート毎に、スケジューリング・ステート割り振り結果を用いて、該ハードウェアをサイクル精度により検証可能な動作モデルを前記クロック精度モデルとして生成するサイクル精度モデル生成工程とを有する請求項14または16に記載のハードウェア検証用プログラミング記述生成方法。 - 前記クロック精度モデルおよび前記制御モデルのうちの少なくともいずれかを汎用プログラミング言語により表現された記述として生成する請求項14、15および17のいずれかに記載のハードウェア検証用プログラミング記述生成装置。
- 前記クロック制御モデル生成工程は、前記各クロック系統毎のブロックについて前記クロック精度モデルの計算が実行される時刻を比較し、該計算が実行されるまでの時間が最も短い時間を選定すると共に、該各クロック系統毎のブロックを計算が実行されるブロックとして選定し、選定されたブロックについては次に該クロック精度モデルの計算が実行される時刻を当該ブロックにおけるクロック周期の値に更新し、当該ブロック以外のブロックについては該クロック精度モデルが計算されるまでの時間から該最も短い時間を減算し、順次同様に、計算が実行されるまでの時間が最も短い時間およびブロックの選定処理と、該クロック精度モデルの計算が実行される時刻を更新する処理とを繰り返し行う請求項15に記載のハードウェア検証用プログラミング記述生成方法。
- 前記クロック制御モデル生成工程は、前記各クロック系統毎のブロックにおけるクロック周期の最大公約数となる時間を計算し、該各クロック系統毎のブロックについて前記クロック精度モデルの計算が実行される時刻を示すカウンタの値に該最大公約数となる時間を加算し、該各クロック系統毎のブロックにおけるクロック周期と該カウンタの値とが一致したブロックについては該クロック精度モデルの計算が実行されるブロックと判定して該カウンタの値を初期化し、それ以外のブロックについては該クロック精度モデルの計算が実行されないブロックと判定して該カウンタの値に該最大公約数となる時間を加算する処理を繰り返し行う請求項15に記載のハードウェア検証用プログラミング記述生成方法。
- 前記クロック制御モデル生成工程は、前記ハードウェアの動作記述から前記各クロック系統に指定された回路動作が開始される時刻を解析し、該各クロック系統毎のブロックについて前記クロック精度モデルの計算が開始される時刻を制御する請求項15に記載のハードウェア検証用プログラミング記述生成方法。
- 請求項14〜21のいずれかに記載のハードウェア検証用プログラミング記述生成方法により生成されたクロック精度モデルの記述とクロック制御モデルの記述とをコンパイルおよびリンクすることによって、多相クロックにより回路動作するハードウェアの処理動作をサイクル精度レベルで検証可能な実行形式のプログラムを生成するハードウェア検証用プログラム生成方法。
- 請求項14〜21のいずれかに記載のハードウェア検証用プログラミング記述生成方法をコンピュータにより実行させるための各処理手順が記述された制御プログラム。
- 請求項22に記載のハードウェア検証用プログラム生成方法により生成されたハードウェア検証用プログラムであって、コンピュータにより実行させるための各処理手順が記述された制御プログラム。
- 請求項23または24に記載の制御プログラムが記録されたコンピュータ読み取り可能な可読記憶媒体。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006302124A JP4293562B2 (ja) | 2006-11-07 | 2006-11-07 | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 |
US11/929,304 US7992112B2 (en) | 2006-11-07 | 2007-10-30 | Hardware verification programming description generation apparatus, high-level synthesis apparatus, hardware verification programming description generation method, hardware verification program generation method, control program and computer-readable recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006302124A JP4293562B2 (ja) | 2006-11-07 | 2006-11-07 | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008117318A true JP2008117318A (ja) | 2008-05-22 |
JP4293562B2 JP4293562B2 (ja) | 2009-07-08 |
Family
ID=39361112
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006302124A Expired - Fee Related JP4293562B2 (ja) | 2006-11-07 | 2006-11-07 | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7992112B2 (ja) |
JP (1) | JP4293562B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2350818A4 (en) * | 2008-11-03 | 2013-07-10 | Enginelab Inc | SYSTEM AND METHOD FOR THE DYNAMIC CONSTRUCTION OF A BEHAVIOR MODEL IN A HARDWARE SYSTEM |
US8225262B1 (en) * | 2009-03-18 | 2012-07-17 | Xilinx, Inc. | Method of and system for placing clock circuits in an integrated circuit |
US20110047522A1 (en) * | 2009-05-21 | 2011-02-24 | Dane Mark W P | Hardware Description Language Editing Engine |
US9201992B2 (en) * | 2014-02-19 | 2015-12-01 | Synopsys, Inc. | Method and apparatus using formal methods for checking generated-clock timing definitions |
US11048289B1 (en) * | 2020-01-10 | 2021-06-29 | Rockwell Collins, Inc. | Monitoring delay across clock domains using constant phase shift |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05101141A (ja) | 1991-08-13 | 1993-04-23 | Toshiba Corp | 高位合成装置 |
JP2001014356A (ja) | 1999-06-28 | 2001-01-19 | Toshiba Corp | プログラミング言語モデル作成可能な高位合成装置、及びプログラミング言語モデル作成可能な高位合成方法 |
US6993469B1 (en) * | 2000-06-02 | 2006-01-31 | Arm Limited | Method and apparatus for unified simulation |
JP3803561B2 (ja) * | 2001-06-29 | 2006-08-02 | 松下電器産業株式会社 | 論理回路設計方法 |
JP3909073B2 (ja) * | 2002-10-15 | 2007-04-25 | 株式会社ルネサステクノロジ | コンパイラ及び論理回路の設計方法 |
JP4204039B2 (ja) * | 2003-04-24 | 2009-01-07 | シャープ株式会社 | 動作合成システム、動作合成方法、制御プログラム、可読記録媒体、論理回路の製造方法および論理回路 |
US20040230414A1 (en) * | 2003-05-12 | 2004-11-18 | International Business Machines Corporation | Method for verification of hardware designs with multiple asynchronous frequency domains |
JP4175953B2 (ja) * | 2003-05-23 | 2008-11-05 | シャープ株式会社 | 高位合成装置、ハードウェア検証用モデル生成方法、ハードウェア検証方法、制御プログラムおよび可読記録媒体 |
US7257802B2 (en) * | 2003-12-29 | 2007-08-14 | Mentor Graphics Corporation | Method and system for hardware accelerated verification of digital circuit design and its testbench |
JP2006139729A (ja) | 2004-11-15 | 2006-06-01 | Sharp Corp | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 |
JP4580827B2 (ja) * | 2005-06-17 | 2010-11-17 | 株式会社東芝 | 動作合成装置及び自動動作合成方法 |
US20070129924A1 (en) * | 2005-12-06 | 2007-06-07 | Verheyen Henry T | Partitioning of tasks for execution by a VLIW hardware acceleration system |
-
2006
- 2006-11-07 JP JP2006302124A patent/JP4293562B2/ja not_active Expired - Fee Related
-
2007
- 2007-10-30 US US11/929,304 patent/US7992112B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20080109777A1 (en) | 2008-05-08 |
JP4293562B2 (ja) | 2009-07-08 |
US7992112B2 (en) | 2011-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7882462B2 (en) | Hardware definition language generation for frame-based processing | |
US9690550B2 (en) | Program optimization via compile time execution | |
US9710237B1 (en) | Systems and methods for hardware resource sharing | |
US7761272B1 (en) | Method and apparatus for processing a dataflow description of a digital processing system | |
Bezati et al. | High-level synthesis of dataflow programs for signal processing systems | |
US20130091482A1 (en) | Method and apparatus for design space exploration acceleration | |
JP4293562B2 (ja) | ハードウェア検証用プログラミング記述生成装置、高位合成装置、ハードウェア検証用プログラミング記述生成方法、ハードウェア検証用プログラム生成方法、制御プログラムおよび可読記録媒体 | |
JP4175953B2 (ja) | 高位合成装置、ハードウェア検証用モデル生成方法、ハードウェア検証方法、制御プログラムおよび可読記録媒体 | |
JP2006139729A (ja) | ハードウェア検証用プログラミング言語モデル生成装置、ハードウェア検証用プログラミング言語モデル生成方法、コンピュータシステム、ハードウェアシミュレーション方法、制御プログラムおよび可読記憶媒体 | |
JP5034916B2 (ja) | 性能評価モデル生成方法、システム性能評価方法、及び性能評価モデル生成装置 | |
US7606694B1 (en) | Framework for cycle accurate simulation | |
Potkonjak et al. | Considering testability at behavioral level: use of transformations for partial scan cost minimization under timing and area constraints | |
US7162403B2 (en) | System and method for efficiently tracing simulation data in hardware acceleration simulation systems | |
JPH05101141A (ja) | 高位合成装置 | |
US9223910B1 (en) | Performance and memory efficient modeling of HDL ports for simulation | |
JP2005275967A (ja) | システムlsiの設計支援システム及び設計支援方法 | |
US10223077B2 (en) | Determination of signals for readback from FPGA | |
JP5328447B2 (ja) | 高位合成装置および高位合成方法、半導体集積回路の製造方法、制御プログラム、可読記憶媒体 | |
Schlickling et al. | A framework for static analysis of VHDL code | |
JP5001126B2 (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、制御プログラムおよび可読記録媒体 | |
Hu et al. | Simulation of real-time systems with clock calculus | |
JP5147801B2 (ja) | ハードウェア検証用プログラミング記述生成装置、ハードウェア検証用プログラミング記述生成方法、及び制御プログラム | |
Ferreira | Restructuring Software Code for High-Level Synthesis Using a Graph-based Approach Targeting FPGAs | |
US8495539B1 (en) | Scheduling processes in simulation of a circuit design | |
Aybek | Transforming Models of Computation to Automotive Component Models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081107 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090109 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090202 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090306 |
|
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: 20090403 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090403 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
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: 20120417 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130417 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130417 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |