JP6342065B2 - 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム - Google Patents
回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム Download PDFInfo
- Publication number
- JP6342065B2 JP6342065B2 JP2017511392A JP2017511392A JP6342065B2 JP 6342065 B2 JP6342065 B2 JP 6342065B2 JP 2017511392 A JP2017511392 A JP 2017511392A JP 2017511392 A JP2017511392 A JP 2017511392A JP 6342065 B2 JP6342065 B2 JP 6342065B2
- Authority
- JP
- Japan
- Prior art keywords
- memory module
- external memory
- circuit
- binding data
- latency
- 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.)
- Active
Links
- 238000013461 design Methods 0.000 title claims description 77
- 238000000034 method Methods 0.000 title claims description 43
- 230000015654 memory Effects 0.000 claims description 469
- 238000012545 processing Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 15
- 230000014759 maintenance of location Effects 0.000 claims 2
- 230000015572 biosynthetic process Effects 0.000 description 48
- 238000003786 synthesis reaction Methods 0.000 description 48
- 238000004364 calculation method Methods 0.000 description 23
- 238000005457 optimization Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 14
- 239000000284 extract Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000003542 behavioural effect Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000008685 targeting Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
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/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2111/00—Details relating to CAD techniques
- G06F2111/04—Constraint-based CAD
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
- Semiconductor Integrated Circuits (AREA)
Description
近年では集積回路の回路規模が増大しており、RTLの生成に多大な時間を要するようになっていた。
そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する技術が提唱されている。
そして、高級言語からRTLを生成するツールが高位合成ツールとして市販されている。
しかし、高位合成における一般的な制約から、動作記述は、記述方法によっては、動作記述の結果として得られる実装に影響を与える場合がある。
配列変数は大きなサイズで記述されることが多く、このため、高位合成においても配列変数は大きなサイズのメモリモジュールへ割り当てられる。
高位合成における大きなサイズのメモリモジュールへの割り当てによって、サイズの大きなメモリ(ハードウェア)が割り当てられ、設計対象のLSIの面積が増大する可能性がある。
通常、このような大きなメモリは、設計対象のLSIの外部にある外部メモリにて実現する。
しかし、今の高位合成ツールでは、特定のメモリモジュールを、自動的に外部メモリへ割り当てることができない。
このため、特定のメモリモジュールを外部メモリで実現するアーキテクチャとなるようにするためには、設計者自身が動作記述を修正し、LSIと外部メモリとの通信インターフェイスを記述しなければならない。
つまり、特許文献1の方法では、外部メモリを割り当てるメモリモジュールを設計者自身が選択しなければならず、効率的でないという課題がある。
設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得するバインディングデータ取得部と、
前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択するメモリモジュール選択部とを有する。
***構成の説明***
図1は、実施の形態1における高位合成システム100の機能構成例を示す。
実施の形態1における高位合成システム100の機能構成を、図1に基づいて説明する。
但し、高位合成システム100の構成は図1と異なる構成であっても構わない。
例えば、高位合成装置110および回路設計支援装置200を1台の装置で構成しても構わない。
以下では、高位合成システム100において高位合成が行われる、設計対象の回路を設計対象回路という。
高位合成は、C言語、C++言語、SystemC言語などの高級言語を用いた設計対象回路の動作を記述した動作記述から、レジスタ転送レベル(RTL)で設計対象回路の動作を記述したRTL記述を生成する技術である。
CDFGは設計対象回路が行う複数の演算の演算順序を表す。
CDFGは、コントロールフローグラフ(CFG)とデータフローグラフ(DFG)とを含む。
スケジューリングデータ123は、CDFGに含まれる各演算の実行時間帯を示すデータである。
スケジューリングデータ123を生成する方法は、従来の高位合成におけるスケジューリング方法と同様でよい。
バインディングデータ124には、設計対象回路の機能モジュールが記述される。
バインディングデータ124には、機能モジュールとして、CDFGに含まれる各演算に割り当てられる演算モジュール(演算リソース)が複数記述される。
演算モジュールは、演算器およびレジスタなどである。
また、バインディングデータ124には、演算モジュールが利用する記憶素子のモジュールであるメモリモジュールが複数記述される。
バインディングデータ124の詳細は後述する。
なお、バインディングデータ124を生成する方法は、従来の高位合成におけるバインディング方法と同様でよい。
RTL記述ファイル125を生成する方法は、従来の高位合成におけるRTL記述生成方法と同様でよい。
具体的には、高位合成装置記憶部120は、動作記述ファイル121、CDFGデータ122、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を記憶する。
実施の形態1における回路設計支援装置200の機能構成を、図2に基づいて説明する。
但し、回路設計支援装置200の機能構成は図2と異なる機能構成であっても構わない。
制約情報271の入力は、回路設計支援装置200を使用するユーザーが実施する。
なお、バインディングデータ取得部220により行われる処理が、バインディングデータ取得処理の例に相当する。
そして、外部メモリ判定部230は、設計対象回路外の外部メモリとして実装すべきメモリモジュールである外部メモリモジュールの候補となる外部メモリモジュール候補を抽出する。
そして、外部メモリ判定部230は、抽出した外部メモリモジュール候補が示される外部メモリ判定結果272を生成する。
すなわち、外部メモリ選択部240は、外部メモリモジュール候補の中から、制約条件を満たすメモリモジュールを外部メモリモジュールとして選択する。
より具体的には、外部メモリ選択部240は、回路規模の制約条件及びレイテンシの制約条件の少なくともいずれかに基づいて、外部メモリモジュール候補の中から、外部メモリモジュールを選択する。
そして、外部メモリ選択部240は、選択した外部メモリモジュールが示される外部メモリ選択結果273を生成する。
また、外部メモリ判定部230と外部メモリ選択部240により行われる処理が、メモリモジュール選択処理の例に相当する。
そして、外部メモリインターフェイス生成部250は、CDFGデータ122内の外部メモリモジュールに対応するメモリモジュールの記述を、通信インターフェイスのモジュールの記述に置き換えることによって、変換後のCDFGデータ274を生成する。
そして、バインディング部113およびRTL記述生成部114は、再生成されたスケジューリングデータ123と変換後のCDFGデータ274とに基づいて、バインディングデータ124およびRTL記述ファイル125を再生成する。
図3は、実施の形態1における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。
実施の形態1における回路設計支援装置200が実行する回路設計支援処理を、図3に基づいて説明する。
但し、回路設計支援処理は図3と異なる処理手順により実現されてもよい。
なお、図3に示す回路設計支援処理が、本願の回路設計支援方法及び回路設計支援プログラムの例に相当する。
制約情報には、以下の5つ値が定義されている。
(a)外部メモリ判定におけるサイクル時間閾値Tth
(b)外部メモリ選択におけるレイテンシ制約Lmax
(c)外部メモリ選択における回路規模制約Smax
(d)外部メモリ選択における最適化方針情報P
(e)外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfo
外部メモリ判定におけるサイクル時間閾値Tthは、外部メモリモジュール候補を抽出するための基準となる閾値である。
外部メモリ判定におけるサイクル時間閾値Tthは、S132とS134で使用される。
以下、外部メモリ判定におけるサイクル時間閾値Tthは、単にサイクル時間閾値Tthともいう。
外部メモリ選択におけるレイテンシ制約Lmaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、レイテンシについての制約条件である。
外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxを満たすメモリアーキテクチャを探索する。
外部メモリ選択におけるレイテンシ制約Lmaxは、S140で使用される。
以下、外部メモリ選択におけるレイテンシ制約Lmaxは、単にレイテンシ制約Lmaxともいう。
外部メモリ選択における回路規模制約Smaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、回路規模についての制約条件である。
外部メモリ選択部240は、外部メモリ選択における回路規模制約Smaxを満たすメモリアーキテクチャを探索する。
外部メモリ選択における回路規模制約Smaxは、S140で使用される。
以下、外部メモリ選択における回路規模制約Smaxは、単に回路規模制約Smaxともいう。
外部メモリ選択における最適化方針情報Pは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、最適化の指針である。
外部メモリ選択における最適化方針情報Pとして、回路規模最適化と、レイテンシ最適化とが選択される。
外部メモリ選択における最適化方針情報Pが回路規模最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、回路規模が最小となるメモリアーキテクチャを探索する。
外部メモリ選択における最適化方針情報Pがレイテンシ最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、レイテンシが最小となるメモリアーキテクチャを探索する。
外部メモリ選択における最適化方針情報Pは、S140で使用される。
以下、外部メモリ選択における最適化方針情報Pは、単に最適化方針情報Pともいう。
外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S135で選択された外部メモリモジュールが、どのようなハードウェアに実装されるのかを示す情報である。
例えば、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoには、外部メモリの種類(DRAMなのか、DDR−SDRAMなのか、QDR−SDRAMなのか等)等が示される。
外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S140とS160で使用される。
以下、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、単に外部メモリ構成情報Minfoともいう。
S110の後、処理はS120に進む。
S120の後、処理はS130に進む。
実施の形態1は、図5に示すバインディングデータに基づいて説明する。
図5のfuncと記載された四角形は、設計対象回路の演算モジュールである。
演算モジュールは、前述のように、演算を行う演算器、レジスタを表す。
図5のmemと記載された四角形は、設計対象回路のメモリモジュールである。
メモリモジュールは、前述のように、記憶素子を表す。
図5の矢印はデータの流れを表している。
バインディングデータでは、各演算モジュールがどのメモリモジュールにリードアクセスを行うか(どのメモリからデータを読み出すか)、どのメモリモジュールにライトアクセスを行うか(演算結果をどのメモリに格納するか)が示される。
また、図5では図示されていないが、バインディングデータには、各メモリモジュールで発生するリードアクセスのタイミング(サイクル時間)とリードアクセスを行う演算ブロック(リードアクセス演算ブロック)、ライトアクセスのタイミング(サイクル時間)とライトアクセスを行う演算ブロック(ライトアクセス演算ブロックという)とが記述されている。
図3に戻り、S130から説明を続ける。
以下、S130で選択されたメモリモジュールを、判定対象メモリモジュールという。
S130の後、処理はS131に進む。
(1)判定対象メモリモジュールについて、ライトアクセスが終了した時のサイクル時間
(2)判定対象メモリモジュールについて、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間
次に、外部メモリ判定部230は、「(1)のサイクル時間−(2)のサイクル時間」を計算し、判定対象メモリモジュールのライトデータ保持サイクル時間Tsを算出する。
ライトデータ保持サイクル時間Tsは、上記の式に示されるように、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたライトデータへの最後のリードアクセスが開始するまでの時間である。
S131の後、処理はS132に進む。
Ts≧Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とすると判定し(YES)、処理はS135に進む。
Ts<Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とせず(NO)、処理はS133に進む。
図7は、実施の形態1における各メモリモジュールのライフタイムサイクル解析結果に基づいた外部メモリモジュール候補の抽出判定結果の一例を示す。
S131及びS132の具体例を、図6および図7に基づいて説明する。
この解析結果より、外部メモリ判定部230は、メモリモジュールごとに、ライトアクセスが終了した時のサイクル時間と、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間とを取得する。
また、外部メモリ判定部230は、メモリモジュールごとに、ライトデータの保持サイクル時間Tsを算出し、TsとTthとの比較により各メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
図4に示すようにTthは1500であり、図7に示すようにmem1のTsは9000であり、mem4のTsは2200である。
このように、mem1とmem4は、Ts>Tthであるため、図7の例では、mem1とmem4が外部メモリモジュール候補として抽出される。
図5のバインディングデータ及び図6のサイクル時間では、func1の計算結果を外部メモリに蓄え、func7が動作開始する際に外部メモリからデータを取得するようにすれば、mem1は内部メモリとして設計対象回路の内部に置かなくてもよい。
このため、mem1は、外部メモリモジュール候補として抽出される。
同様の考えにより、mem4も内部メモリとして設計対象回路の内部に置かなくてもよいため、外部メモリモジュール候補として抽出される。
ただし、mem1については、func2でも利用するため、別途小容量の内部メモリを実装する必要がある。これについては後述する。
図3に戻り、S133から説明を続ける。
つまり、外部メモリ判定部230は、上記の判定基準に基づき、判定対象メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
(1)判定対象メモリモジュールを必要とする機能の1イタレーションに必要な判定対象メモリモジュール格納データ
(2)上記の(1)のデータが揃うまでに必要なサイクル時間Tg
上記の2つの情報の取得後、処理はS134に進む。
Tg≧Tthの場合、判定対象メモリモジュールは外部メモリモジュール候補と判定し(YES)、処理はS135に進む。
Tg<Tthの場合、判定対象メモリモジュールは内部メモリとして実装する内部メモリモジュールの候補と判定し(NO)、処理はS136に進む。
図8において、mem1及びmem4以外のメモリモジュール(矢印が差しているメモリモジュール)がS133の外部メモリ判定の対象となるメモリモジュールである。
図10は、mem3を対象とする外部メモリモジュール候補の判定例を示す。
S131及びS132の具体例を、図8、図9および図10に基づいて説明する。
従って、図8に示すように、mem2、mem3、mem5、mem6が、S133およびS134における外部メモリ判定の対象となる。
まず、外部メモリ判定部230は、mem5へのリードアクセスを抽出する。
抽出した結果、mem5がループ内でリードされているのであれば、外部メモリ判定部230は、ループの1回目のイタレーションで、mem5のどの要素がアクセスされているかを解析する。
図9の例の場合、ループの1回目では、i=0であるため、mem5[i]及びmem5[N−i]より、mem5[0]とmem5[N]とがアクセスされている。
即ち、mem5[0]とmem5[N]のデータが揃えば、func6は動作開始可能である。
次に、外部メモリ判定部230は、mem5へのライトアクセスを抽出する。
そして、外部メモリ判定部230は、mem5[0]とmem5[N]が、どのタイミングで揃うかを算出する。
図9の例の場合、mem5[N]へのライトアクセスが発生するまで、即ち、func5の動作が終了するまで、func6は動作を開始することができない。
図9の例では、func5が動作を開始してから、func6が動作を開始できるようになるまで(mem5[N]へのライトアクセスが発生するまで)のサイクル時間Tgは2000である。
このため、「Tg≧Tth」となり、mem5は外部メモリモジュール候補と判定される。
図5のバインディングデータ及び図6のサイクル時間では、func5の計算結果を外部メモリに蓄え、func6が動作開始する際に外部メモリからデータを取得するようにすれば、mem5は内部メモリとして設計対象回路の内部に置かなくてもよい。
したがって、mem5は外部メモリモジュール候補として抽出される。
まず、外部メモリ判定部230は、mem3へのリードアクセスを抽出する。
抽出した結果、mem3がループ内でリードされているのであれば、外部メモリ判定部230は、ループの1回目のイタレーションで、mem3のどの要素がアクセスされているかを解析する。
図10の例の場合、ループの1回目では、i=0であるため、mem3[i]、mem3[i+1]及びmem3[i+2]より、mem3[0]とmem3[1]とmem3[2]とがアクセスされている。
即ち、mem3[0]とmem3[1]とmem3[2]のデータが揃えば、func5は動作開始可能である。
次に、外部メモリ判定部230は、mem3へのライトアクセスを抽出する。
そして、外部メモリ判定部230は、mem3[0]とmem3[1]とmem3[2]が、どのタイミングで揃うかを算出する。
図10の例の場合、mem3[2]へのライトアクセスが発生するまでfunc5は動作開始できない。
しかし、func3の動作終了を待たずとも、mem3[2]にはデータが書き込まれるので、func5を動作開始することができる。
図10の例では、func3が動作を開始してから、func5が動作を開始できるようになるまで(mem3[2]へのライトアクセスが発生するまで)のサイクル時間Tgは100である。
このため、「Tg<Tth」となり、mem3は内部メモリで実現すると判定される。
また、外部メモリ判定部230は、リードアクセス演算ブロック(例えば、図9のfunc6)が演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロック(例えば、図9のfunc5)が動作を開始してからリードアクセス演算ブロック(例えば、図9のfunc6)が被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間(例えば、図9のサイクル時間Tg)を算出する。
そして、外部メモリ判定部230は、算出したリードアクセス待ち時間が閾値以上であるメモリモジュール(例えば、図9のmem5)を外部メモリモジュール候補として抽出する。
S135の後、処理はS136に進む。
解析していないメモリモジュールがある場合(NO)は、処理はS130に戻る。
全てのメモリモジュールが解析済みである場合(YES)は、処理はS140に進む。
S140の後、処理はS150に進む。
図12は、実施の形態1におけるメモリアーキテクチャ探索結果の例を示す。
S140の具体例を、図11および図12に基づいて説明する。
図11の例の場合、mem1、mem4、mem5、mem6が外部メモリモジュール候補である。
従って、外部メモリ選択部240は、mem1、mem4、mem5、mem6の中から、どのメモリモジュールを外部メモリモジュールとするかを探索する。
しかし、外部メモリからデータを取得するために必要なサイクル時間は、LSI内部のメモリからデータを取得する場合と比べると長くなる。
即ち、LSI内部メモリの外部メモリ化には、回路規模と処理レイテンシのトレードオフが伴う。
従って、図11に示す外部メモリモジュール候補と判定されたメモリを、全て外部メモリとして実現することが最適解であるとは限らない。
そのため、図11に示す外部メモリモジュール候補と判定されたメモリモジュールのうち、どのメモリモジュールを外部メモリとして実現するべきか探索する必要がある。
そして、外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の回路規模及びレイテンシを、バインディングデータ124に基づき算出する。
更に、外部メモリ選択部240は、算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、選択した組合せに含まれる外部メモリモジュール候補を、外部メモリモジュールとして選択する。
より具体的には、外部メモリ選択部240は、外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する。
算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せが複数存在する場合は、外部メモリ選択部240は、算出された回路規模が最小である組合せを選択する。
もしくは、外部メモリ選択部240は、算出されたレイテンシが最小である組合せを選択するようにしてもよい。
図12のLSI全体の回路規模とは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路の回路規模と周辺回路の回路規模とを合わせた回路規模である。
また、図12のLSI全体の処理レイテンシとは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路で発生する処理レイテンシである。
LSI全体の回路規模
= 全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模
− 外部メモリ化するメモリモジュールの回路規模
+ 外部メモリとの通信インターフェイスの回路規模
つまり、外部メモリ選択部240は、これら3つの回路規模を算出し、3つの回路規模を用いた上記の計算を行う。
1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模」は、バインディングデータ124に記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合の設計対象回路の回路規模である。
2つ目の「外部メモリ化するメモリモジュールの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の外部メモリの回路規模である。
3つ目の「外部メモリとの通信インターフェイスの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリと通信するために用いる通信インターフェイスの回路規模である。
LSI全体の処理レイテンシ
= 全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ
+ 外部メモリからデータを取得する際の処理レイテンシ
つまり、外部メモリ選択部240は、これら2つの処理レイテンシを算出し、2つの処理レイテンシを用いた上記の計算を行う。
1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ」は、バインディングデータに記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合に発生するレイテンシであり、第1のレイテンシに相当する。
また、2つ目の「外部メモリからデータを取得する際の処理レイテンシ」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリからデータを取得するために要するレイテンシであり、第2のレイテンシに相当する。
図4の例の場合、外部メモリはDDR_SDRAMであるため、これに従って外部メモリからデータを取得するために必要なサイクル時間を計算する。
図4の例の場合、最適化方針情報Pは回路規模優先となっているため、レイテンシ制約Lmax、回路規模制約Smaxを満たし、且つ、回路規模が最小となるメモリアーキテクチャ(外部メモリモジュールの組合せ)を選択する。
そして、外部メモリ選択部240は、選択結果が記述される外部メモリ選択結果273を生成する。
図3に戻り、S150から説明を続ける。
S150の後、処理はS160に進む。
外部メモリインターフェイス生成部250は、CDFGデータ122中の外部メモリモジュールとして選択されたメモリモジュールの記述を、自動生成された外部インターフェイスの記述に変換して、変換後のCDFGデータ274を生成する。
例えば、外部メモリインターフェイス生成部250は、特許文献1に開示されているインターフェイス生成装置などを用いて、変換後のCDFGデータ274を生成する。
S160の後、処理はS170に進む。
そして、高位合成装置110のスケジューリング部112、バインディング部113およびRTL記述生成部114は、提供された変換後のCDFGデータ274に基づいて、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を生成する。
以上のように、本実施の形態によれば、回路設計支援装置が、動作記述中の記憶素子(メモリ)の機能モジュールであるメモリモジュールの中から、外部メモリとして実装すべきメモリモジュールを抽出し、また、メモリモジュールを外部メモリとして実装する際に必要な回路を高位合成で自動生成できるという効果がある。
以上、本実施の形態では、
動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援装置であって、
前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定部と、
外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択部と、
外部メモリ選択部の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成部を備える回路設計支援装置を説明した。
動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援方法であって、
前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定工程と、
外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択工程と、
外部メモリ選択工程の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成工程を含む回路設計支援方法を説明した。
回路設計支援装置200はコンピュータである。
回路設計支援装置200は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インターフェイス905、ディスプレイインターフェイス906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インターフェイス905は、入力装置907に接続されている。
ディスプレイインターフェイス906は、ディスプレイ908に接続されている。
プロセッサ901は、例えば、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリ、HDD(Hard Disk Drive)である。
メモリ903は、例えば、RAM(Random Access Memory)である。
通信装置904は、データを受信するレシーバー9041及びデータを送信するトランスミッター9042を含む。
通信装置904は、例えば、通信チップ又はNIC(Network Interface Card)である。
入力インターフェイス905は、入力装置907のケーブル911が接続されるポートである。
入力インターフェイス905は、例えば、USB(Universal Serial Bus)端子である。
ディスプレイインターフェイス906は、ディスプレイ908のケーブル912が接続されるポートである。
ディスプレイインターフェイス906は、例えば、USB端子又はHDMI(登録商標)(High Definition Multimedia Interface)端子である。
入力装置907は、例えば、マウス、キーボード又はタッチパネルである。
ディスプレイ908は、例えば、LCD(Liquid Crystal Display)である。
このプログラムは、メモリ903にロードされ、プロセッサ901に読み込まれ、プロセッサ901によって実行される。
更に、補助記憶装置902には、OS(Operating System)も記憶されている。
そして、OSの少なくとも一部がメモリ903にロードされ、プロセッサ901はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
図13では、1つのプロセッサ901が図示されているが、回路設計支援装置200が複数のプロセッサ901を備えていてもよい。
そして、複数のプロセッサ901が「部」の機能を実現するプログラムを連携して実行してもよい。
また、「部」の処理の結果を示す情報やデータや信号値や変数値が、メモリ903、補助記憶装置902、又は、プロセッサ901内のレジスタ又はキャッシュメモリに記憶される。
また、「部」を「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
「回路」及び「サーキットリー」は、プロセッサ901だけでなく、ロジックIC又はGA(Gate Array)又はASIC(Application Specific Integrated Circuit)又はFPGA(Field−Programmable Gate Array)といった他の種類の処理回路をも包含する概念である。
Claims (10)
- 設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得するバインディングデータ取得部と、
メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択するメモリモジュール選択部とを有する回路設計支援装置。 - 前記バインディングデータ取得部は、
前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述されるバインディングデータを取得し、
前記メモリモジュール選択部は、
複数の外部メモリモジュール候補を抽出した場合に、
外部メモリモジュール候補の組合せを複数生成し、
外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の回路規模及びレイテンシを、前記バインディングデータに基づき算出し、
算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、
選択した組合せに含まれる外部メモリモジュール候補を、前記外部メモリモジュールとして選択する請求項1に記載の回路設計支援装置。 - 前記メモリモジュール選択部は、
外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する請求項2に記載の回路設計支援装置。 - 前記メモリモジュール選択部は、
算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出された回路規模が最小である組合せを選択する請求項3に記載の回路設計支援装置。 - 前記メモリモジュール選択部は、
算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出されたレイテンシが最小である組合せを選択する請求項3に記載の回路設計支援装置。 - 前記メモリモジュール選択部は、
外部メモリモジュール候補の組合せごとに、
前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合の前記設計対象回路の回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の前記外部メモリの回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリと通信するために用いる通信インターフェイスの回路規模とを算出し、
前記設計対象回路の回路規模から前記外部メモリの回路規模を減算し、減算値に前記通信インターフェイスの回路規模を加算して得られる回路規模が回路規模の制約条件に合致するか否かを判断し、
前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合に発生する第1のレイテンシと、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリからデータを取得するために要する第2のレイテンシとを算出し、
前記第1のレイテンシに前記第2のレイテンシを加算して得られるレイテンシが、レイテンシの制約条件に合致するか否かを判断する請求項3に記載の回路設計支援装置。 - 前記メモリモジュール選択部は、
メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたデータへの最後のリードアクセスが開始するまでの時間であるライトデータ保持時間を算出し、
算出したライトデータ保持時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項1に記載の回路設計支援装置。 - 前記バインディングデータ取得部は、
前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述され、更に、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミング及びライトアクセスを行うライトアクセス演算ブロックと、メモリモジュールへのリードアクセスのタイミング及びリードアクセスを行うリードアクセス演算ブロックとが記述されるバインディングデータを取得し、
前記メモリモジュール選択部は、
メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミング及びライトアクセス演算ブロックとリードアクセスのタイミング及びリードアクセス演算ブロックとを解析して、リードアクセス演算ブロックが演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロックが動作を開始してから前記リードアクセス演算ブロックが前記被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間を算出し、
算出したリードアクセス待ち時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項1に記載の回路設計支援装置。 - コンピュータが、設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得し、
前記コンピュータが、メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択する回路設計支援方法。 - 設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得するバインディングデータ取得処理と、
メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択するメモリモジュール選択処理とをコンピュータに実行させる回路設計支援プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2015/060955 WO2016162970A1 (ja) | 2015-04-08 | 2015-04-08 | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2016162970A1 JPWO2016162970A1 (ja) | 2017-07-13 |
JP6342065B2 true JP6342065B2 (ja) | 2018-06-13 |
Family
ID=57072604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017511392A Active JP6342065B2 (ja) | 2015-04-08 | 2015-04-08 | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US10311188B2 (ja) |
JP (1) | JP6342065B2 (ja) |
WO (1) | WO2016162970A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017033336A1 (ja) * | 2015-08-27 | 2017-03-02 | 三菱電機株式会社 | 回路設計支援装置および回路設計支援プログラム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3045286B2 (ja) * | 1997-12-19 | 2000-05-29 | 日本電気株式会社 | 回路設計方法および装置、情報記憶媒体 |
US6862563B1 (en) * | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
JP3542967B2 (ja) * | 1998-12-15 | 2004-07-14 | 松下電器産業株式会社 | クロック位相調整方法、及び集積回路とその設計方法 |
JP2002230065A (ja) * | 2001-02-02 | 2002-08-16 | Toshiba Corp | システムlsi開発装置およびシステムlsi開発方法 |
JP4007483B2 (ja) * | 2001-07-16 | 2007-11-14 | シャープ株式会社 | 高位合成装置および高位合成方法 |
JP2007034584A (ja) * | 2005-07-26 | 2007-02-08 | Toshiba Corp | 高位合成装置、自動高位合成方法、高位合成プログラム及びゲートネットリスト自動検証方法 |
US8291396B1 (en) * | 2006-01-17 | 2012-10-16 | Altera Corporation | Scheduling optimization of aliased pointers for implementation on programmable chips |
JP4853312B2 (ja) * | 2007-01-30 | 2012-01-11 | 日本電気株式会社 | テストベンチ生成機能を有する動作合成装置と方法及びプログラム |
JP2008204341A (ja) | 2007-02-22 | 2008-09-04 | Nec Corp | インタフェース合成装置 |
US7904850B2 (en) * | 2007-11-30 | 2011-03-08 | Cebatech | System and method for converting software to a register transfer (RTL) design |
JP2011022863A (ja) | 2009-07-16 | 2011-02-03 | Renesas Electronics Corp | 動作合成装置及び動作合成方法 |
JP2011134308A (ja) * | 2009-11-25 | 2011-07-07 | Ricoh Co Ltd | 高位合成装置、高位合成方法および高位合成プログラム |
US8621414B2 (en) * | 2010-04-21 | 2013-12-31 | National Cheng Kung University | Method and algorithm analyzer for determining a design framework |
JP5751669B2 (ja) * | 2011-07-08 | 2015-07-22 | ルネサスエレクトロニクス株式会社 | 言語変換処理方法及び言語変換処理プログラム |
KR20130019082A (ko) * | 2011-08-16 | 2013-02-26 | 삼성전자주식회사 | 비휘발성 메모리 장치의 설계 방법 |
US9852250B2 (en) * | 2015-02-20 | 2017-12-26 | Esilicon Corporation | Memory optimization in VLSI design using generic memory models |
US9477807B1 (en) * | 2015-06-11 | 2016-10-25 | International Business Machines Corporation | Automating system on a chip customized design integration, specification, and verification through a single, integrated service |
-
2015
- 2015-04-08 US US15/556,180 patent/US10311188B2/en active Active
- 2015-04-08 WO PCT/JP2015/060955 patent/WO2016162970A1/ja active Application Filing
- 2015-04-08 JP JP2017511392A patent/JP6342065B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JPWO2016162970A1 (ja) | 2017-07-13 |
US20180039722A1 (en) | 2018-02-08 |
WO2016162970A1 (ja) | 2016-10-13 |
US10311188B2 (en) | 2019-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Da Silva et al. | Performance Modeling for FPGAs: Extending the Roofline Model with High‐Level Synthesis Tools | |
US10579303B1 (en) | Memory controller having command queue with entries merging | |
US10216217B1 (en) | Adaptive compilation and execution for hardware acceleration | |
US10963613B1 (en) | Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region | |
US10387600B2 (en) | Dynamic power reduction in circuit designs and circuits | |
JP6342065B2 (ja) | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム | |
WO2017135219A1 (ja) | 設計支援装置、設計支援方法、および設計支援プログラムを格納した記録媒体 | |
US11449347B1 (en) | Time-multiplexed implementation of hardware accelerated functions in a programmable integrated circuit | |
US20190034562A1 (en) | High-level synthesis device, high-level synthesis method, and computer readable medium | |
JP6567215B2 (ja) | アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム | |
US8522175B2 (en) | Semiconductor circuit design supporting apparatus and method, and non-transitory computer-readable medium | |
JPWO2020188658A1 (ja) | アーキテクチャ推定装置、アーキテクチャ推定方法、およびアーキテクチャ推定プログラム | |
KR102350941B1 (ko) | 집적 회로 설계 방법 및 이를 수행하는 집적 회로 설계 시스템 | |
US10599803B2 (en) | High level synthesis apparatus, high level synthesis method, and computer readable medium | |
US20200410149A1 (en) | High-level synthesis apparatus, high-level synthesis method, and computer readable medium | |
JP6305644B2 (ja) | アーキテクチャ生成装置およびアーキテクチャ生成プログラム | |
JP6091140B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
US10684862B2 (en) | Processor synthesis device, processor synthesis method, and computer readable medium | |
US20200004503A1 (en) | Information processing device, information processing method, and computer readable medium | |
JP6545406B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
JP7320624B2 (ja) | リタイミングパイプラインのためのストライプベースのセルフゲーティング | |
JP2011090518A (ja) | 高位合成装置、高位合成方法、及び高位合成プログラム | |
US20160004797A1 (en) | Circuit designing support apparatus and program | |
US10346572B1 (en) | Inclusion and configuration of a transaction converter circuit block within an integrated circuit | |
JP2011022863A (ja) | 動作合成装置及び動作合成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170207 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170207 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170927 |
|
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: 20180417 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180515 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6342065 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |