JP5057509B2 - 動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 - Google Patents
動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 Download PDFInfo
- Publication number
- JP5057509B2 JP5057509B2 JP2007077907A JP2007077907A JP5057509B2 JP 5057509 B2 JP5057509 B2 JP 5057509B2 JP 2007077907 A JP2007077907 A JP 2007077907A JP 2007077907 A JP2007077907 A JP 2007077907A JP 5057509 B2 JP5057509 B2 JP 5057509B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- signal propagation
- scheduling
- behavioral synthesis
- clock
- 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
{ // block 1
ary[a] = b+c;
ach=b+c;
send(ch1,d);
send(ch1,e);
f=receive(ch2);
x=ary[g];
}
という処理を表している。
変数bとcの加算結果を、配列aryのa番目の要素に書き込む、
変数dの値を同期チャネルch1に送信し、相手が受信するまで待つ、
変数eの値を同期チャネルch1に送信し、相手が受信するまで待つ、
同期チャネルch2から受信したデータを変数fに代入する、
変数xに配列aryのg番目のデータを代入する、
という処理が表されている。
{ // block 2
i=receive(ch1);
j=receive(ch1);
ach = ary[k]+ach;
send(ch2,m);
}
という処理を表している。
同期チャネルからch1にデータが送信されるのを待ち、受信したデータを変数iに代入する、
同期チャネルからch1にデータが送信されるのを待ち、受信したデータを変数jに代入する、
非同期チャネルachに、achの値と配列aryのk番目のデータの加算結果を代入する、
同期チャネルch2に変数mの値を送信し、相手が受信するまで待つ、
という処理が表されている。
(課題1)
図13には、周波数が高いクロックclk_fastと周波数が低いclk_slowとがあり、ブロックpe1(301)がclk_fastにより駆動され、ブロックpe2(302)がclk_slowにより駆動される場合に同期チャネル通信を実現するための回路例を示すブロック図である。なお、ここでは、図10(a)に示した回路に、メタステーブルを防ぐための信号伝播保証回路MS−FF2(701)〜(703)を追加したことを想定した構成である。
(課題2)
図15は、クロックclk1により駆動されるブロックpe1と、クロックclk2により駆動されるブロックpe2との間で非同期チャネルachを介したデータ転送を行う回路例を示す回路図である。
(課題3)
クロックclk1により駆動されるブロックpe1(301)と、クロックclk2により駆動されるブロックpe2(301)とによりアクセスされる配列からデータを読み出す場合に、メモリデバイスが従来と同じタイミングで動作するものであっても、メモリデバイスの出力からブロックのポートまでに遅延サイクルが生じる。よって、「Rarray_addr」の演算処理と「Rarray_data」の演算処理との間に、遅延サイクル分の間隔を開けなければ、正しく回路動作させることができない。
(解決方法1)
図3は、図1のクロック情報例を示す波形図である。また、図4(a)および図4(b)は、コントロールデータフローグラフ例を示す図であり、図4(c)および図4(d)は、図4(a)および図4(b)のスケジューリング例を示す図である。
S1=S/Fステップとなる。
step_104+S/F≦step_105
というスケジューリング制約が与えられてスケジューリングが行われる。この結果、図4(c)に示すような2ステップ空いたスケジューリング結果が得られる。
S2=3×F/S+1ステップとなる。
step_109+3×F/S+1≦step_110
というスケジューリング制約が与えられてスケジューリングが行われる。この結果、図4(d)に示すような3ステップ空いたスケジューリング結果が得られる。
(解決方法2)
スケジューリング手段43によるスケジューリング工程(ステップST3)において、異なるクロック領域として、図3に示すクロックclk_fastにより駆動される回路ブロックと、図3に示すクロックclk_slowにより駆動される回路ブロックとからアクセスされる非同期チャネルachがあった場合に、各回路ブロックのCDFGに対してスケジューリング処理が行われる。
step_Wachan+Sd≦Step_Rachan
というスケジューリング制約が与えられてスケジューリングが行われる。
(解決方法3)
スケジューリング手段43によるスケジューリング工程(ステップST3)において、異なるクロック領域として、図3に示すクロックclk_fastにより駆動される回路ブロックと、図3に示すclk_slowにより駆動される回路ブロックとからアクセスされる配列aryがあった場合、各回路ブロックのCDFGに対してスケジューリング処理が行われる。
step_Rarray_addr+Sd≦Step_Rarray_data
というスケジューリング制約が与えられてスケジューリングが行われる。
2 操作入力部
3 表示部
4 CPU(中央演算処理装置;制御手段)
41 クロック情報解析手段
42 CDFG生成手段
43 スケジューリング手段
44 アロケーション手段
45 データパス・コントローラ生成手段
5 RAM
6 ROM
7 データベース
11 動作記述
12 クロック情報
13 RTL記述
101〜116 節点
301、302 ブロック(回路ブロック)
303、303a、303b ブロックmemory
401、402 コントローラ
403〜408 ポート
501、502 加算器
601、603〜605、902 セレクタ
602 制御信号を生成する回路
606 記憶素子
701〜703、807、808、903 信号伝播保証回路
801〜805 クロックを切り替える回路
806、901 記憶素子(記憶領域)
Claims (32)
- 回路の動作記述およびクロック情報から回路構成を示すレジスタトランスファレベル記述を自動生成する動作合成装置において、
異なる複数種類のクロックにより駆動される処理回路を合成する際に、該クロック情報から得られる信号伝播保証回路の遅延サイクルを考慮して、各処理がどの実行サイクルで実行するかを決定するスケジューリング手段と、該スケジューリング手段のスケジューリング結果に基づいて、該異なるクロック領域間の信号伝播を保証する信号伝播保証回路を生成する信号伝播保証回路生成手段とを有する動作合成装置。 - 前記スケジューリング手段は、前記クロックの周波数および位相の少なくとも一方が異なるクロック領域間で信号伝播が行われる場合に、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行う請求項1に記載の動作合成装置。
- 前記スケジューリング手段は、前記異なるクロック領域間の両クロック間の立ち上がり時間または立ち下がり時間の間隔が一定でない場合に、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行う請求項2に記載の動作合成装置。
- 前記スケジューリング手段は、回路中のあるブロックと、該ブロックと異なるクロック領域に存在する他のブロックとの間で通信を行う際に、通信が確立されてから次の通信を行うまでに、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行う請求項1に記載の動作合成装置。
- 前記スケジューリング手段は、複数のクロック領域から読み書きされるメモリがある場合に、回路中のブロックによって該メモリからデータを読み出す際に、該ブロックから制御信号およびアドレス情報が出力されてからそれらのクロック領域間の信号伝播保証回路の遅延サイクル後にデータが読み出されようにスケジューリングを行う請求項1に記載の動作合成装置。
- 前記スケジューリング手段は、前記異なるクロック領域間で同期通信を行う「send」演算処理および「receive」演算処理に対して、1つの同期チャネルに連続したステップを割り当てず、両クロックの周波数の比率に応じたステップ数分の時間間隔を開けて実行ステップを割り当てる請求項1または4に記載の動作合成装置。
- 前記異なる複数種類のクロックの一つの周期がSnsecで、該クロックの他の一つの周期がFnsecの場合(F<S)に、前記時間間隔として、前記「send」演算処理の1回目が終了してからその2回目を実行開始するまでのステップ数S1が、S/F以上の最小整数である請求項6に記載の動作合成装置。
- 前記異なる複数種類のクロックの一つの周期がSnsecで、該クロックの他の一つの周期がFnsecの場合(F<S)に、前記時間間隔として、前記「receive」演算処理の1回目が終了してその2回目を実行開始するまでのステップ数S2が、3×F/S+1以上の最小整数である請求項6に記載の動作合成装置。
- 前記スケジューリング手段は、前記異なるクロック領域から書き込みが行われる非同期チャネルに書き込みを行う「Wachan」演算処理および読み出しを行う「Rachan」演算処理に対して、前記信号伝播保証回路の遅延サイクルに応じたステップ数以上の時間間隔を開けて実行ステップを割り当てる請求項1に記載の動作合成装置。
- 前記スケジューリング手段は、前記異なるクロック領域から書き込みが行われる配列からデータを読み出すための「Rarray_addr」演算処理および「Rarray_data」演算処理に対して、前記信号伝播保証回路の遅延サイクルに応じたステップ数以上の時間間隔を開けて実行ステップを割り当てる請求項1または5に記載の動作合成装置。
- 前記信号伝播保証回路生成手段は、前記信号伝播保証回路として、フリップフロップがN(Nは2以上の整数)段直列に接続された回路を生成する請求項1に記載の動作合成装置。
- 前記信号伝播保証回路生成手段は、前記信号伝播保証回路として、フリップフロップが2段直列に接続されるかまたは、フリップフロップが3段直列に接続された回路を生成する請求項1または11に記載の動作合成装置。
- 前記信号伝播保証回路生成手段は、前記信号伝播保証回路として、要求される回路面積および処理速度の少なくとも一方に応じて前記信号伝播保証回路を生成する請求項1に記載の動作合成装置。
- 前記クロック情報を解析するクロック情報解析手段と、
前記動作記述からコントロールデータフローグラフを生成するコントロールデータフローグラフ生成手段と、
該コントロールデータフローグラフに対する前記スケジューリング手段によるスケジューリング後に、該コントロールデータフローグラフの各処理を演算器または通信器にそれぞれ割り当てるアロケーション手段と、
前記信号伝播保証回路生成手段を含み、スケジューリング結果およびアロケーション結果を元にデータパスと前記信号伝播保証回路とそれらを制御するコントローラを生成するデータパス・コントローラ生成手段とを更に有する請求項1に記載の動作合成装置。 - 前記信号伝播保証回路は、前記クロックと、前記異なるクロック領域間での伝播信号とを同期化させるための同期化回路である請求項1〜5および9〜14のいずれかに記載の動作合成装置。
- 回路の動作記述およびクロック情報から回路構成を示すレジスタトランスファレベル記述を自動生成する動作合成方法において、
異なる複数種類のクロックにより駆動される処理回路を合成する際に、スケジューリング手段が、記憶手段に格納されている該クロック情報を参照し、参照された該クロック情報から得られる信号伝播保証回路の遅延サイクルを考慮して、各処理がどの実行サイクルで実行するかを決定して決定結果であるスケジューリング結果を該記憶手段に格納するスケジューリング工程と、信号伝播保証回路生成手段が、該記憶手段に格納されている該スケジューリング結果を参照し、参照された該スケジューリング結果に基づいて、異なるクロック領域間の信号伝播を保証する信号伝播保証回路を生成して該記憶手段に格納する信号伝播保証回路生成工程とを有する動作合成方法。 - 前記スケジューリング工程は、前記スケジューリング手段が、前記クロックの周波数および位相の少なくとも一方が異なるクロック領域間で信号伝播が行われる場合に、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行うことを含む請求項16に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、前記異なるクロック領域間の両クロック間の立ち上がり時間または立ち下がり時間の間隔が一定でない場合に、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行うことを含む請求項17に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、回路中のあるブロックと、該ブロックと異なるクロック領域に存在する他のブロックとの間で通信を行う際に、通信が確立されてから次の通信を行うまでに、前記信号伝播保証回路の遅延サイクルに応じた時間間隔を開けてスケジューリングを行うことを含む請求項16に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、複数のクロック領域から読み書きされるメモリがある場合に、回路中のブロックによって該メモリからデータを読み出す際に、該ブロックから制御信号およびアドレス情報が出力されてからそれらのクロック領域間の信号伝播保証回路の遅延サイクル後にデータが読み出されようにスケジューリングを行うことを含む請求項16に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、前記異なるクロック領域間で同期通信を行う「send」演算処理および「receive」演算処理に対して、1つの同期チャネルに連続したステップを割り当てず、両クロックの周波数の比率に応じたステップ数分の時間間隔を開けて実行ステップを割り当てることを含む請求項16または19に記載の動作合成方法。
- 前記異なる複数種類のクロックの一つの周期がSnsecで、該クロックの他の一つの周期がFnsecの場合(F<S)に、前記時間間隔として、前記「send」演算処理の1回目が終了してからその2回目を実行開始するまでのステップ数S1が、S/F以上の最小整数である請求項21に記載の動作合成方法。
- 前記異なる複数種類のクロックの一つの周期がSnsecで、該クロックの他の一つの周期がFnsecの場合(F<S)に、前記時間間隔として、前記「receive」演算処理の1回目が終了してその2回目を実行開始するまでのステップ数S2が、3×F/S+1以上の最小整数である請求項21に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、前記異なるクロック領域から書き込みが行われる非同期チャネルに書き込みを行う「Wachan」演算処理および読み出しを行う「Rachan」演算処理に対して、前記信号伝播保証回路の遅延サイクルに応じたステップ数以上の時間間隔を開けて実行ステップを割り当てることを含む請求項16に記載の動作合成方法。
- 前記スケジューリング工程は、前記スケジューリング手段が、前記異なるクロック領域から書き込みが行われる配列からデータを読み出すための「Rarray_addr」演算処理および「Rarray_data」演算処理に対して、前記信号伝播保証回路の遅延サイクルに応じたステップ数以上の時間間隔を開けて実行ステップを割り当てることを含む請求項16または20に記載の動作合成方法。
- 前記信号伝播保証回路生成工程は、前記信号伝播保証回路生成手段が、前記信号伝播保証回路として、フリップフロップがN(Nは2以上の整数)段直列に接続された回路を生成することを含む請求項16に記載の動作合成方法。
- 前記信号伝播保証回路生成工程は、前記信号伝播保証回路生成手段が、前記信号伝播保証回路として、フリップフロップが2段直列に接続されるかまたは、フリップフロップが3段直列に接続された回路を生成することを含む請求項1または26に記載の動作合成方法。
- 前記信号伝播保証回路生成工程は、前記信号伝播保証回路生成手段が、前記信号伝播保証回路として、要求される回路面積および処理速度の少なくとも一方に応じて前記信号伝播保証回路を生成することを含む請求項16に記載の動作合成方法。
- クロック情報解析手段が前記クロック情報を解析して解析結果を前記記憶手段に格納するクロック情報解析工程と、
コントロールデータフローグラフ生成手段が前記動作記述からコントロールデータフローグラフを生成し、生成した前記コントロールデータフローグラフを該記憶手段に格納するコントロールデータフローグラフ生成工程と、
該記憶手段に格納された該コントロールデータフローグラフを参照し、参照された該コントロールデータフローグラフに対する前記スケジューリング工程によるスケジューリング後に、アロケーション手段が該コントロールデータフローグラフの各処理を演算器または通信器にそれぞれ割り当ててアロケーション結果を該記憶手段に格納するアロケーション工程と、
前記信号伝播保証回路生成工程を含み、データパス・コントローラ生成手段が、該記憶手段に格納された前記スケジューリング結果および該アロケーション結果を参照し、参照された該スケジューリング結果および該アロケーション結果を元にデータパスと前記信号伝播保証回路とそれらを制御するコントローラを生成して該記憶手段に格納するデータパス・コントローラ生成工程とを更に有する請求項16に記載の動作合成方法。 - 請求項1〜15のいずれかに記載の動作合成装置を用いて動作合成した回路情報に基づいてレジストパターンを設計し、この設計情報によりパターニングしたレジストパターンを用いて半導体集積回路を製造する半導体集積回路の製造方法。
- 請求項16〜29のいずれかに記載の動作合成方法の各工程をコンピュータに実行させるための処理手順が記述された動作合成プログラム。
- 請求項31に記載の動作合成プログラムが格納されたコンピュータ読み取り可能な可読記憶媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007077907A JP5057509B2 (ja) | 2007-03-23 | 2007-03-23 | 動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007077907A JP5057509B2 (ja) | 2007-03-23 | 2007-03-23 | 動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008242527A JP2008242527A (ja) | 2008-10-09 |
JP5057509B2 true JP5057509B2 (ja) | 2012-10-24 |
Family
ID=39913846
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007077907A Expired - Fee Related JP5057509B2 (ja) | 2007-03-23 | 2007-03-23 | 動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5057509B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5451318B2 (ja) | 2009-10-29 | 2014-03-26 | ラピスセミコンダクタ株式会社 | 伝送装置、信号送信装置、信号受信装置及び伝送方法、信号送信方法、信号受信方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11120212A (ja) * | 1997-10-09 | 1999-04-30 | Oki Electric Ind Co Ltd | 回路設計方法及び装置並びにそのプログラムを記録した記録媒体 |
JP3716967B2 (ja) * | 1999-07-29 | 2005-11-16 | シャープ株式会社 | 高位合成装置および高位合成方法並びにそれに用いられる記録媒体 |
JP2004265435A (ja) * | 2004-04-12 | 2004-09-24 | Matsushita Electric Ind Co Ltd | 半導体集積回路装置の設計方法 |
-
2007
- 2007-03-23 JP JP2007077907A patent/JP5057509B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2008242527A (ja) | 2008-10-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4007483B2 (ja) | 高位合成装置および高位合成方法 | |
EP1267287B1 (en) | High-level synthesis apparatus and method, method for producing logic circuit using the high-level synthesis method, and recording medium | |
US8181130B1 (en) | Method for jitter reduction by shifting current consumption | |
US20090271747A1 (en) | Logic circuit designing device, logic circuit designing method and logic circuit designing program for asynchronous logic circuit | |
Liang et al. | Hi-ClockFlow: Multi-clock dataflow automation and throughput optimization in high-level synthesis | |
JP5057509B2 (ja) | 動作合成装置、動作合成方法、半導体集積回路の製造方法、動作合成プログラムおよび可読記憶媒体 | |
JP2008204177A (ja) | 遅延調整回路を有するアレイ型プロセッサ | |
CN112906338A (zh) | 对物理分区结构进行时钟设计的方法、系统、介质和程序 | |
US7676685B2 (en) | Method for improving the data transfer in semi synchronous clock domains integrated circuits at any possible m/n clock ratio | |
JP2006154996A (ja) | 半導体集積回路の設計方法、半導体集積回路および半導体集積回路の設計プログラム | |
US6505340B2 (en) | Circuit synthesis method | |
JP3716967B2 (ja) | 高位合成装置および高位合成方法並びにそれに用いられる記録媒体 | |
US6532584B1 (en) | Circuit synthesis method | |
JPH10133768A (ja) | クロックシステム、半導体装置、半導体装置のテスト方法、及びcad装置 | |
EP3173895A1 (en) | Clock tree implementation method, system-on-chip and computer storage medium | |
Saito et al. | Scheduling methods for asynchronous circuits with bundled-data implementations based on the approximation of start times | |
Carloni et al. | A framework for modeling the distributed deployment of synchronous designs | |
JP4743427B2 (ja) | 回路動作検証方法 | |
JP2000057180A (ja) | 高位合成装置、高位合成方法および高位合成プログラムを記録した媒体 | |
JP6761182B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
Saito et al. | Ilp-based scheduling for asynchronous circuits in bundled-data implementation | |
JP4817688B2 (ja) | 半導体集積回路装置 | |
Konishi et al. | A control circuit synthesis method for asynchronous circuits in bundled-data implementation | |
JP6317603B2 (ja) | 情報処理装置、情報処理装置の制御方法及びプログラム | |
Bag Zeki | Energy-Aware Coarse Grained Reconfigurable Architectures Using Dynamically Reconfigurable Isolation Cells |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090218 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110912 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20111028 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120410 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120423 |
|
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: 20120727 |
|
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: 20120727 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: R3D04 |
|
LAPS | Cancellation because of no payment of annual fees |