JP3816286B2 - 演算ディレイ計算装置及び方法 - Google Patents
演算ディレイ計算装置及び方法 Download PDFInfo
- Publication number
- JP3816286B2 JP3816286B2 JP36783599A JP36783599A JP3816286B2 JP 3816286 B2 JP3816286 B2 JP 3816286B2 JP 36783599 A JP36783599 A JP 36783599A JP 36783599 A JP36783599 A JP 36783599A JP 3816286 B2 JP3816286 B2 JP 3816286B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- delay
- type
- continuous
- bit width
- 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
Description
【発明の属する技術分野】
本発明は、動作記述から論理回路を合成する高位合成技術に係り、特に高位合成技術により論理回路を合成するためのスケジューリング処理に使用される演算ディレイ計算装置及び方法に関する。
【0002】
【従来の技術】
近年、製品サイクルが短くなり、設計から市場投入までの時間の短縮が求められている。この設計期間短縮のため、論理設計のレベルを従来のレジスタ転送レベル(以下RTレベルと記す)より抽象度の高い動作レベルヘ上げた設計技術が現れてきている。特に、動作レベルの記述(以下動作記述と記す)から論理回路を合成する高位合成技術が注目されてきている。
【0003】
この高位合成技術により性能の良い回路を合成するためには、性能の良いスケジューリング処理が必要である。スケジューリングとは動作記述中の演算をクロック・サイクル毎に実行されるグルーブに分割する処理である。1クロック・サイクル内で実行できる演算列はひとつのグループに入れることができる。
【0004】
【発明が解決しようとする課題】
ところで、上記したスケジューリングは、演算のディレイに基づいてグループ分けするので、ディレイ計算の正確さがスケジューリング結果に大きく影響する。特に、連続した演算のディレイを従来では個々の演算のディレイの合計として計算しているため、実際のディレイ値との誤差が大きく、本来なら連続した演算を1クロック・サイクルで実行できるにも拘らず、1クロック・サイクルで実行できないという誤判定が生じ、連続した演算を別々のグループヘ分割するといった状況が起っている。このため、動作終了までのクロック・サイクル数が多い、即ち処理速度が遅い論理回路が合成されるといった問題があった。
【0005】
本発明は、上述の如き従来の課題を解決するためになされたもので、その目的は、連続した演算のディレイを精度よく計算することができ、従ってスケジューリングを正確に行うことができる演算ディレイ計算装置及び方法を提供することである。
【0006】
【課題を解決するための手段】
上記目的を達成するために、請求項1の発明の特徴は、第1の演算と第2の演算から成る連続演算を論理回路で行わせる際のディレイを計算する演算ディレイ計算方法において、前記第1の演算の種類と前記第2の演算の種類のペア及び前記第1の演算のビット幅と前記第2の演算のビット幅のペアにより一意的に決まる追加ディレイを計算する過程と、前記第1の演算の種類とビット幅で決まる予め知られいてる第1の演算のディレイに前記算出された追加ディレイを加算して、前記第1、第2の演算から成る連続演算のディレイを算出する過程とを具備することにある。 請求項2の発明の特徴は、前記第1の演算の種類と前記第2の演算の種類のペアで決まる計算タイプを設定し、この計算タイプと前記第1の演算のビット幅と前記第2の演算のビット幅のペアにより一意的に決まる追加ディレイを計算することにある。
【0007】
請求項3の発明の特徴は、第1の演算と第2の演算から成る連続演算を論理回路で行わせる際のディレイを計算する演算ディレイ計算装置において、前記第1の演算と前記第2の演算から成る連続演算の各演算の種類及びビット幅を求める解析手段と、前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを求めるタイプ選択手段と、前記求まった計算タイプに対応する追加ディレイの計算方法を選択する計算方法選択手段と、前記選択された計算方法を用い且つ前記求まった各演算のビット幅をパラメータとして追加ディレイを算出し、得られた追加ディレイを前記第1の演算のディレイに加算して前記連続演算のディレイを算出するディレイ計算手段とを具備することにある。
【0008】
請求項4の発明の前記タイプ選択手段は、前記第1の演算と前記第2の演算のビット幅を変えて求めた前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを保持する第1の保持手段を有し、この保持手段を参照して前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを求め、前記計算方法選択手段は、前記タイプ別に予め求められた前記第1の演算と前記第2の演算のビット幅の関数で表される追加ディレイの計算方法を保持する第2の保持手段を有し、この保持手段を参照して前記計算タイプに対応する追加ディレイの計算方法を求める。
【0009】
請求項5の発明の特徴は、前記連続演算の計算タイプ毎に前記第1、第2の演算の各ビット幅を変化させて、前記連続演算を論理合成で得られた論理回路により実行することで得られるディレイデータを収集し、これら収集したディレイデータに基づいて前記追加ディレイの計算方法で用いる定数を求める定数生成手段を設けたことにある。
【0010】
動作記述から論理回路を合成する高位合成の処理の一つであるスケジューリングは、演算のディレイを見積もる必要がある。この見積もり値と実際の値との差がスケジューリング結果に大きく影響する。特に、連続した演算のディレイを個々の演算のディレイの合計として見積もっていたのでは、実際の値との差が大きい。この差がスケジューリング結果に悪い影響を与える。そこで、連続した演算のディレイ値の正確な計算方法を提供することにより、性能の良いスケジューリング処理を可能にする。
【0011】
上記発明によれば、第1の演算と第2の演算から成る連続演算のディレイを計算するに際し、前記第1の演算の種類と前記第2の演算の種類のペア及び前記第1の演算のビット幅と前記第2の演算のビット幅のペアにより一意的に決まる追加ディレイを計算し、この追加ディレイを第1の演算のデイレイに加算することにより、連続演算のディレイを求めている。
【0012】
【発明の実施の形態】
以下、本発明の実施形態を図面に基づいて説明する。図1は、本発明の演算ディレイ計算装置の一実施形態に係る構成を示したブロック図である。演算ディレイ計算装置は、連続演算式100を入力する連続演算入力部1、入力された連続演算式100の演算の種類とビット幅を解析する連続演算解析部2、入力された連続演算式100の演算の種類に応じて計算タイプを選択する計算タイプ選択部3、演算の種類に応じた計算タイプを保持する計算タイプライブラリ4、入力された連続演算式100の計算タイプに従って計算方法を選択する計算方法選択部5、計算タイプに応じた追加ディレイの計算方法を保持する計算方法ライブラリ6、入力された連続演算式100のディレイを計算して連続演算のディレイ200を出力するディレイ計算部7を有している。
【0013】
次に本実施の形態の動作について説明する。連続演算式100はディレイ計算対象となる演算式である。連続演算入力部1は、連続演算式100を連続演算解析部2に入力する。連続演算解析部2は連続演算式100の各演算の種類やビット幅を解析する。例えば、連続演算式100が「(x+y)×z」であり、その加算のビット幅が16で、掛け算のビット幅が32の場合、その解析結果は図2に示す如くである。
【0014】
計算タイプ選択部3は連続演算解析部2で解析された各演算の種類に応じて、計算タイプライブラリ4に登録されている計算タイプを選択する。この計算タイプライブラリ4に登録されている演算の種類と計算タイプの対応関係は例えば図3に示す如くである。
【0015】
計算方法選択部5は計算タイプ選択部3で選択された計算タイプに従って計算方法ライブラリ6に登録されている計算方法を選択する。ディレイ計算部7は計算方法選択部5で選択された計算方法を用い、連続演算解析部2で解析された各演算のビット幅をパラメータとして連続演算式100のディレイを計算する。連続演算のディレイ200は上記のように計算された結果である。
【0016】
次に上記した連続演算解析部2、計算タイプ選択部3、計算方法選択部5及びディレイ計算部7の処理方法を図4のフローチャートを参照して詳しく説明する。
【0017】
図4は連続演算解析部2からディレイ計算部7に至るまでの処理の流れを示したフローチャートである。このフローチャートでは、連続演算式100は2つの演算の連続した構成を有している場合を想定している。
【0018】
まず、連続演算解析部2はステップ401で、連続演算の第一演算の種類をop1、ビット幅をw1、第二演算の種類をop2、ビット幅をw2と解析する。計算タイプ選択部3はステップ402で、連続演算の種類op1とop2に基づいて計算タイプを計算タイプライブラリ4から選択する。
【0019】
例えば、図3に示したように計算タイプはタイプ1からタイプ3までの三種類がある。これらの計算タイプは、予め計算タイプライブラリ4に登録されている。これら計算タイプにより追加ディレイの計算方法が異なる。計算タイプ選択部3はステップ403で計算タイプに従って計算方法を計算方法ライブラリ6から選択する。この実施例では、2つの連続した演算のディレイを「第一演算のディレイ+追加ディレイΔ」の形で計算する。
【0020】
図5は計算タイプ毎の追加ディレイの計算方法例を示した表図である。但し、図中、d、d1,d2は関数で、cは定数である。タイプ1の場合、追加ディレイΔは、定数cおよび第二演算のビット幅w2と第一演算のビット幅w1の差(w2−w1)の関数の和によって計算される。差(w2−w1)の関数として、w1とw2の大小関係によって異なる関数d1又はd2が用いられる。
【0021】
定数cは第一演算の種類op1と第二演算の種類op2によって異なる値を取る。関数d1、d2は図6に示すような第二演算のビット幅w2と第一演算のビット幅w1の差(w2−w1)の関数である。関数d1、d2に現れる定数a、bは第一演算の種類op1と第二演算の種類op2によって異なる値を取る。
【0022】
タイプ2の場合、追加ディレイΔは、第一演算のビット幅w1の関数dと、第二演算のビット幅w2と第一演算のビット幅w1の差(w2−w1)の関数との和によって計算される。関数dは図7に示すようなw1の関数である。関数dに現れる定数c1とc2は第一演算の種類op1と第二演算の種類op2によって異なる値を取る。差(w2−w1)の関数としては、w1とw2の大小関係によって異なる関数d1またはd2が用いられる。関数d1、d2はタイプ1の場合と同様に図6に示した関数である。
【0023】
タイプ3の場合、追加ディレイΔは、定数cおよび第二演算のビット幅w2と第一演算のビット幅w1の差(w2−W1)の関数の和によって計算される。但し、w2がw1より大きい場合は追加ディレイΔは定数cとして計算される。関数d1は図6に示したものである。
【0024】
上記のように選択した計算方法に従ってステップ404で第一演算のビット幅w1と第二演算のビット幅w2をパラメータとして追加ディレイΔを計算する。最後に、ディレイ計算部7はステップ405で第一演算のディレイ(計算方法ライブラリ6等に格納されている)とステップ404で計算した追加ディレイΔの和を取って連続演算のディレイを計算する。
【0025】
関数Δ(w1,w2)、d1(w2−w1)、d2(w2−w1)に現れる定数c、a、bの値の例を図8に示す。これらの値は実際に論理合成したディレイ値に基づいて計算される。例として、連続演算(x+y+z)のディレイ計算結果を図9に示す。図9に示した例は第一演算のビット幅が16、第二演算のビット幅が32の場合である。図9には従来のディレイ計算の結果も示してある。例えば、制約としてクロック・サイクルが10NS秒であるとして、スケジューリングを実行する際、従来のディレイ計算方法を用いた場合、15.17NS秒と計算され、連続した加算を同じクロック・サイクルで実行するようにスケジューリングできない。
【0026】
しかし、本発明の計算方法を用いた場合、9.37NS秒と計算され、連続した加算を同じクロック・サイクルで実行できるようにスケジューリングが可能である。実際、関数Δ(w1、w2)等に現れる定数の計算に用いる実際のディレイ値の収集時と同じ条件下での論理合成後のディレイは9.26NS秒であり、合成後の論理回路を制約で与えたクロック・サイクルで動作させることが可能である。このように本発明のディレイ計算装置を用いることにより、より良いスケジューリングが可能となる。
【0027】
次に上記した計算方法ライブラリ6に登録されている計算方法で使用する定数の生成について図10を参照して説明する。
【0028】
図10は上記計算方法で使用する定数の生成手順を示したフローチャートである。ステップ101で計算方法を生成する連続演算を指定する。そして、第一演算の種類をop1、第二演算の種類をop2とする。ステップ102で連続演算の計算タイプを指定し、それをtypeとする。演算の種類と計算タイプの対応例は図3に示してある。ステップ103で第一演算のビット幅と第二演算のビット幅を変えて計算タイプtype用のデータを収集する。計算タイプ毎の収集データの一覧を図11に示す。
【0029】
例えば、タイプ1の場合、演算(列)欄の演算に対して、第一演算のビット幅と第二演算のビット幅欄の値を変化させたディレイ値を収集する。これらのディレイは、例えば論理合成を実行して収集する。ステップ104において、ステップ103で収集したデータに基づいて追加ディレイΔに現れる定数を計算する。これらの定数の計算方法例を図12に示す。ステップ105でステップ104で計算された定数を持った追加ディレイΔを計算方法ライブラリ6に登録する。
【0030】
例として連続演算(x+y+z)の追加ディレイΔに現れる定数の計算に必要なデータを図13に、そのデータを用いた定数の計算結果を図14に示す。第一演算の種類が「加算」、第二演算の種類が「加算」である連続演算は「タイプ1」である。この場合の図14に示す結果は図8に示した値と一致している。
【0031】
一般に追加ディレイΔに現れる定数は論理合成で用いる論理ライブラリ毎に異なる。論理ライブラリ毎に人手で計算する方法でライブラリ6を構築していたのでは時間が掛かり、また、間違いが混入する恐れがある。そこで、本実施例で示した方法で追加ディレイ関数を自動生成することにより、間違いがなく、時間を掛けることなく、計算方法ライブラリ6を構築することが可能となる。
【0032】
本実施の形態によれば、連続した第一の演算と第二の演算のディレイを第一の演算のディレイに別途計算して得た追加ディレイΔを加算して算出することにより、従来よりも連続演算のディレイを精度よく計算することができ、スケジューリングを正確に行うことができる。このため、従来の計算方法では、同じクロック・サイクルで実行できないディレイ値が出たものを、本例の方法で計算すると、同じクロック・サイクルで実行できるディレイ値が出ることがあり、これを用いて高位合成することにより、処理時間の速い高性能の論理回路を得ることができる。
【0033】
尚、本発明の演算ディレイ計算方法は典型的には図4のフローチャートに示した各ステップをプログラム化してコンピュータに実行させることにより実現でき、同様に連続演算のディレイを精度よく計算することができる。その際、コンピュータプログラムは、フロッピーディスクやハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワークなどの各種のプログラム記録媒体を通じてコンピューターに供給することができる。
【0034】
【発明の効果】
以上詳細に説明したように、本発明の演算ディレイ計算装置及び方法によれば、連続演算のディレイを精度よく計算することができ、従ってスケジューリングを正確に行うことができる。
【図面の簡単な説明】
【図1】本発明の演算ディレイ計算装置の一実施形態に係る構成を示したブロック図である。
【図2】図1に示した連続演算解析部の解析結果例を示した表図である。
【図3】図1に示した計算タイプライブラリに登録されている演算の種類と計算タイプの対応例を示した表図である。
【図4】図1に示した連続演算解析部からディレイ計算部に至るまでの処理の流れを示したフローチャートである。
【図5】図1の計算方法ライブラレに登録されている計算タイプ毎の計算方法例を示した表図である。
【図6】図5に示した関数d1、d2の具体例を示した表図である。
【図7】図5に示した関数dの具体例を示した表図である。
【図8】図1に示したディレイ計算部で扱った関数Δ(w1,w2)、d1(w2−w1)、d2(w2−w1)に現れる定数c、a、bの値を示した表図である。
【図9】図1に示した装置で連続演算(x+y+z)のディレイ計算を行った結果と従来の計算方法で行った結果例を示した表図である。
【図10】図1に示した計算方法ライブラリに登録されている計算方法で使用する定数の生成手順を示したフローチャートである。
【図11】図10のステップ103で収集する計算タイプ毎の収集データ例を一覧とした表図である。
【図12】図10のステップ104で扱う追加ディレイΔに現れる定数の計算方法を示した表図である。
【図13】図10のステップ104で扱う追加ディレイΔに現れる定数の計算に必要なデータ例を示した表図である。
【図14】図10に示した方法で生成した定数計算の結果例を示した表図である。
【符号の説明】
1 連続演算入力部
2 連続演算解析部
3 計算タイプ選択部
4 計算タイプライブラリ
5 計算方法選択部
6 計算方法ライブラリ
7 ディレイ計算部
100 連続演算式
200 連続演算のディレイ
Claims (3)
- 第1の演算と第2の演算から成る連続演算を論理回路で行わせる際のディレイを計算する演算ディレイ計算装置において、
前記第1の演算と前記第2の演算から成る連続演算の各演算の種類及びビット幅を求める解析手段と、
前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを求めるタイプ選択手段と、
前記求まった計算タイプに対応する追加ディレイの計算方法を選択する計算方法選択手段と、
前記選択された計算方法を用い且つ前記求まった各演算のビット幅をパラメータとして追加ディレイを算出し、得られた追加ディレイを前記第1の演算のディレイに加算して前記連続演算のディレイを算出するディレイ計算手段と、
を具備することを特徴とする演算ディレイ計算装置。 - 前記タイプ選択手段は、前記第1の演算と前記第2の演算のビット幅を変えて求めた前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを保持する第1の保持手段を有し、この保持手段を参照して前記第1の演算と前記第2の演算の種類のペアに対応する計算タイプを求め、
前記計算方法選択手段は、前記計算タイプ別に予め求められた前記第1の演算と前記第2の演算のビット幅の関数で表される追加ディレイの計算方法を保持する第2の保持手段を有し、この保持手段を参照して前記計算タイプに対応する追加ディレイの計算方法を求めることを特徴とする請求項1記載の演算ディレイ計算装置。 - 前記連続演算の計算タイプ毎に前記第1、第2の演算の各ビット幅を変化させて、前記連続演算を論理合成で得られた論理回路により実行することで得られるディレイデータを収集し、これら収集したディレイデータに基づいて前記追加ディレイの計算方法で用いる定数を求める定数生成手段を設けたことを特徴とする請求項1又は2記載の演算ディレイ計算装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36783599A JP3816286B2 (ja) | 1999-12-24 | 1999-12-24 | 演算ディレイ計算装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP36783599A JP3816286B2 (ja) | 1999-12-24 | 1999-12-24 | 演算ディレイ計算装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001184377A JP2001184377A (ja) | 2001-07-06 |
JP3816286B2 true JP3816286B2 (ja) | 2006-08-30 |
Family
ID=18490322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP36783599A Expired - Fee Related JP3816286B2 (ja) | 1999-12-24 | 1999-12-24 | 演算ディレイ計算装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3816286B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4771076B2 (ja) * | 2006-05-29 | 2011-09-14 | 日本電気株式会社 | 回路解析装置、回路解析方法、およびプログラム |
JP5228546B2 (ja) * | 2008-03-13 | 2013-07-03 | 日本電気株式会社 | 動作合成装置、および、プログラム |
JP5267376B2 (ja) * | 2009-08-07 | 2013-08-21 | 日本電気株式会社 | 動作合成装置、動作合成方法、ならびに、プログラム |
-
1999
- 1999-12-24 JP JP36783599A patent/JP3816286B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001184377A (ja) | 2001-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8661396B1 (en) | DSP design system level power estimation | |
JP2954894B2 (ja) | 集積回路設計方法、集積回路設計のためのデータベース装置および集積回路設計支援装置 | |
US8468475B2 (en) | Conversion of circuit description to an abstract model of the circuit | |
US5940779A (en) | Architectural power estimation method and apparatus | |
US6442739B1 (en) | System and method for timing abstraction of digital logic circuits | |
JP2005092885A (ja) | デジタル回路の統計的タイミング解析のためのシステムおよび方法 | |
Choi et al. | Search-based wordlength optimization for VLSI/DSP synthesis | |
WO2004034290A9 (en) | Method of using clock cycle-time in determining loop schedules during circuit design | |
US7260809B2 (en) | Power estimation employing cycle-accurate functional descriptions | |
US20070033561A1 (en) | Speeding up timing analysis by reusing delays computed for isomorphic subcircuits | |
Baghdadi et al. | Design space exploration for hardware/software codesign of multiprocessor systems | |
US7761268B2 (en) | Non-linear transient analysis module and method for phase locked loop | |
JP3816286B2 (ja) | 演算ディレイ計算装置及び方法 | |
CN114186519A (zh) | 时序瓶颈探查方法、装置、终端设备及存储介质 | |
US5805459A (en) | Method of measuring activity in a digital circuit | |
Horstmannshoff et al. | Mapping multirate dataflow to complex RT level hardware models | |
US7131087B2 (en) | Multi-cycle path analyzing method | |
Venkataramani et al. | System-level retiming and pipelining | |
JP5146087B2 (ja) | 消費電力見積方法、回路設計支援装置及びプログラム | |
CN115705446A (zh) | 集成电路的后仿真方法和装置 | |
Guzey et al. | Increasing the efficiency of simulation-based functional verification through unsupervised support vector analysis | |
Jervis | Advances in DSP design tool flows for FPGAs | |
JP2001209664A (ja) | 高位合成方法並びに高位合成方法の実施に使用される記録媒体 | |
Eory | A core-based system-to-silicon design methodology | |
Ding et al. | Improving the efficiency of Monte Carlo power estimation [VLSI] |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060307 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060427 |
|
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: 20060530 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060607 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090616 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100616 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110616 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |