JP6342065B2 - 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム - Google Patents

回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム Download PDF

Info

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
Application number
JP2017511392A
Other languages
English (en)
Other versions
JPWO2016162970A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of JPWO2016162970A1 publication Critical patent/JPWO2016162970A1/ja
Application granted granted Critical
Publication of JP6342065B2 publication Critical patent/JP6342065B2/ja
Active 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/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/392Floor-planning or layout, e.g. partitioning or placement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-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

本発明は、回路設計を支援する技術に関する。
従来より、半導体集積回路(以下、LSI(Large Scale Integration)ともいう)の設計に関して、ハードウェア記述言語を用いて、レジスタ(フリップフロップ)間の組み合わせ回路の動作を記述したRTL(Register Transfer Level)を生成する技術が存在する。
近年では集積回路の回路規模が増大しており、RTLの生成に多大な時間を要するようになっていた。
そこで、RTLよりも抽象度が高いC言語、C++言語、SystemC言語などの高級言語を用いて、自動的にRTLを生成する技術が提唱されている。
そして、高級言語からRTLを生成するツールが高位合成ツールとして市販されている。
動作記述では、動作の仕様のみが記述され、実装についての仕様は記述されない。
しかし、高位合成における一般的な制約から、動作記述は、記述方法によっては、動作記述の結果として得られる実装に影響を与える場合がある。
例えば、動作記述中の配列変数は、高位合成において、一般的にメモリやレジスタなどの記憶素子の機能モジュール(以下、記憶素子の機能モジュールをメモリモジュールという)へ割り当てられる。
配列変数は大きなサイズで記述されることが多く、このため、高位合成においても配列変数は大きなサイズのメモリモジュールへ割り当てられる。
高位合成における大きなサイズのメモリモジュールへの割り当てによって、サイズの大きなメモリ(ハードウェア)が割り当てられ、設計対象のLSIの面積が増大する可能性がある。
通常、このような大きなメモリは、設計対象のLSIの外部にある外部メモリにて実現する。
しかし、今の高位合成ツールでは、特定のメモリモジュールを、自動的に外部メモリへ割り当てることができない。
このため、特定のメモリモジュールを外部メモリで実現するアーキテクチャとなるようにするためには、設計者自身が動作記述を修正し、LSIと外部メモリとの通信インターフェイスを記述しなければならない。
例えば特許文献1では、設計者が作成した動作記述に、設計するハードウェアの構成情報(外部メモリの有無)、マッピング情報(動作記述中の配列変数に対する、外部メモリへの割り当て指定)を与えることで、設計者が動作記述を修正せずとも、自動的にLSIと外部メモリとの通信インターフェイスを自動生成する方法が開示されている。
特開2008−204341号公報
しかしながら、特許文献1では、動作記述中の配列変数をどのメモリに割り当てるかについては、設計者自身が選択する必要がある。
つまり、特許文献1の方法では、外部メモリを割り当てるメモリモジュールを設計者自身が選択しなければならず、効率的でないという課題がある。
本発明は上記のような課題を解決することを主な目的としており、回路設計手順を効率化できる構成を得ることを主な目的とする。
本発明に係る回路設計支援装置は、
設計対象回路の機能モジュールとして複数のメモリモジュールが記述されるバインディングデータを取得するバインディングデータ取得部と、
前記設計対象回路に関する制約条件に基づいて、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールを選択するメモリモジュール選択部とを有する。
本発明によれば、回路設計支援装置が、外部メモリとして実装すべきメモリモジュールを選択するため、設計者が外部メモリとして実装すべきメモリモジュールを検討する必要がなく、回路設計手順を効率化できる。
実施の形態1における高位合成システムの機能構成例を示す図である。 実施の形態1における回路設計支援装置の機能構成例を示す図である。 実施の形態1における回路設計支援装置の動作例を示すフローチャート図。 実施の形態1における制約情報の例を示す図である。 実施の形態1におけるバインディングデータの例を示す図である。 実施の形態1におけるライトアクセスタイミングとリードアクセスタイミングの例を示す図である。 実施の形態1におけるライトデータ保持サイクル時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定処理の対象となるメモリモジュールの例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1におけるリードアクセス待ち時間に基づく外部メモリモジュール候補の判定例を示す図である。 実施の形態1における外部メモリモジュール候補の例を示す図である。 実施の形態1における外部メモリモジュールの選択手順の例を示す図である。 実施の形態1における回路設計支援装置のハードウェア構成例を示す図である。
実施の形態1.
***構成の説明***
図1は、実施の形態1における高位合成システム100の機能構成例を示す。
実施の形態1における高位合成システム100の機能構成を、図1に基づいて説明する。
但し、高位合成システム100の構成は図1と異なる構成であっても構わない。
例えば、高位合成装置110および回路設計支援装置200を1台の装置で構成しても構わない。
高位合成システム100は、半導体集積回路等の回路設計のために、高位合成を行うシステムである。
以下では、高位合成システム100において高位合成が行われる、設計対象の回路を設計対象回路という。
高位合成は、C言語、C++言語、SystemC言語などの高級言語を用いた設計対象回路の動作を記述した動作記述から、レジスタ転送レベル(RTL)で設計対象回路の動作を記述したRTL記述を生成する技術である。
高位合成システム100は、高位合成を実行する高位合成装置110と、高位合成の実行を支援する回路設計支援装置200とを備える。
高位合成装置110は、CDFG生成部111と、スケジューリング部112と、バインディング部113と、RTL記述生成部114と、高位合成装置記憶部120とを備える。
CDFG生成部111は、設計対象回路の動作記述を含む動作記述ファイル121からCDFG(Control Data Flow Graph)を含むCDFGデータ122を生成する。
CDFGは設計対象回路が行う複数の演算の演算順序を表す。
CDFGは、コントロールフローグラフ(CFG)とデータフローグラフ(DFG)とを含む。
スケジューリング部112は、CDFGデータ122に基づいて、スケジューリングデータ123を生成する。
スケジューリングデータ123は、CDFGに含まれる各演算の実行時間帯を示すデータである。
スケジューリングデータ123を生成する方法は、従来の高位合成におけるスケジューリング方法と同様でよい。
バインディング部113は、CDFGデータ122とスケジューリングデータ123とに基づいて、バインディングデータ124を生成する。
バインディングデータ124には、設計対象回路の機能モジュールが記述される。
バインディングデータ124には、機能モジュールとして、CDFGに含まれる各演算に割り当てられる演算モジュール(演算リソース)が複数記述される。
演算モジュールは、演算器およびレジスタなどである。
また、バインディングデータ124には、演算モジュールが利用する記憶素子のモジュールであるメモリモジュールが複数記述される。
バインディングデータ124の詳細は後述する。
なお、バインディングデータ124を生成する方法は、従来の高位合成におけるバインディング方法と同様でよい。
RTL記述生成部114は、CDFGデータ122とスケジューリングデータ123とバインディングデータ124とに基づいて、RTL記述を示すRTL記述ファイル125を生成する。
RTL記述ファイル125を生成する方法は、従来の高位合成におけるRTL記述生成方法と同様でよい。
高位合成装置記憶部120は、高位合成装置110が使用、生成または入出力するデータを記憶する。
具体的には、高位合成装置記憶部120は、動作記述ファイル121、CDFGデータ122、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を記憶する。
図2は、実施の形態1における回路設計支援装置200の機能構成例を示す。
実施の形態1における回路設計支援装置200の機能構成を、図2に基づいて説明する。
但し、回路設計支援装置200の機能構成は図2と異なる機能構成であっても構わない。
回路設計支援装置200は、制約情報入力受付部210と、バインディングデータ取得部220と、外部メモリ判定部230と、外部メモリ選択部240と、CDFGデータ取得部280と、外部メモリインターフェイス生成部250と、支援データ提供部260と、支援装置記憶部270とを備える。
制約情報入力受付部210は、設計対象回路に関する制約条件等が定義される制約情報271を受け付ける。
制約情報271の入力は、回路設計支援装置200を使用するユーザーが実施する。
バインディングデータ取得部220は、高位合成装置110からバインディングデータ124を取得する。
なお、バインディングデータ取得部220により行われる処理が、バインディングデータ取得処理の例に相当する。
外部メモリ判定部230は、制約情報271と、バインディングデータ124より、メモリモジュールのリードサイクル時間及びライトサイクル時間を解析する。
そして、外部メモリ判定部230は、設計対象回路外の外部メモリとして実装すべきメモリモジュールである外部メモリモジュールの候補となる外部メモリモジュール候補を抽出する。
そして、外部メモリ判定部230は、抽出した外部メモリモジュール候補が示される外部メモリ判定結果272を生成する。
外部メモリ選択部240は、制約情報271と、バインディングデータ124と、外部メモリ判定結果272より、制約条件を満たすメモリアーキテクチャを探索する。
すなわち、外部メモリ選択部240は、外部メモリモジュール候補の中から、制約条件を満たすメモリモジュールを外部メモリモジュールとして選択する。
より具体的には、外部メモリ選択部240は、回路規模の制約条件及びレイテンシの制約条件の少なくともいずれかに基づいて、外部メモリモジュール候補の中から、外部メモリモジュールを選択する。
そして、外部メモリ選択部240は、選択した外部メモリモジュールが示される外部メモリ選択結果273を生成する。
外部メモリ判定部230と外部メモリ選択部240は、メモリモジュール選択部2000を構成する。
また、外部メモリ判定部230と外部メモリ選択部240により行われる処理が、メモリモジュール選択処理の例に相当する。
CDFGデータ取得部280は、高位合成装置110からCDFGデータ122を取得する。
外部メモリインターフェイス生成部250は、外部メモリ選択結果273より、設計対象回路が外部メモリと通信するために用いる通信インターフェイスのモジュールの記述を生成する。
そして、外部メモリインターフェイス生成部250は、CDFGデータ122内の外部メモリモジュールに対応するメモリモジュールの記述を、通信インターフェイスのモジュールの記述に置き換えることによって、変換後のCDFGデータ274を生成する。
支援データ提供部260は、変換後のCDFGデータ274を高位合成装置110に提供する。
高位合成装置110のスケジューリング部112は、提供された変換後のCDFGデータ274に基づいて、スケジューリングデータ123を再生成する。
そして、バインディング部113およびRTL記述生成部114は、再生成されたスケジューリングデータ123と変換後のCDFGデータ274とに基づいて、バインディングデータ124およびRTL記述ファイル125を再生成する。
***動作の説明***
図3は、実施の形態1における回路設計支援装置200が実行する回路設計支援処理のフローチャートである。
実施の形態1における回路設計支援装置200が実行する回路設計支援処理を、図3に基づいて説明する。
但し、回路設計支援処理は図3と異なる処理手順により実現されてもよい。
なお、図3に示す回路設計支援処理が、本願の回路設計支援方法及び回路設計支援プログラムの例に相当する。
S110において、制約情報入力受付部210は、回路設計支援装置200を動作させるために必要な制約情報271をユーザーから受け付け、取得(受信)した制約情報271を支援装置記憶部270に格納する。
制約情報には、以下の5つ値が定義されている。
(a)外部メモリ判定におけるサイクル時間閾値Tth
(b)外部メモリ選択におけるレイテンシ制約Lmax
(c)外部メモリ選択における回路規模制約Smax
(d)外部メモリ選択における最適化方針情報P
(e)外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfo
まず、(a)外部メモリ判定におけるサイクル時間閾値Tthについて説明する。
外部メモリ判定におけるサイクル時間閾値Tthは、外部メモリモジュール候補を抽出するための基準となる閾値である。
外部メモリ判定におけるサイクル時間閾値Tthは、S132とS134で使用される。
以下、外部メモリ判定におけるサイクル時間閾値Tthは、単にサイクル時間閾値Tthともいう。
次に、(b)外部メモリ選択におけるレイテンシ制約Lmaxについて説明する。
外部メモリ選択におけるレイテンシ制約Lmaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、レイテンシについての制約条件である。
外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxを満たすメモリアーキテクチャを探索する。
外部メモリ選択におけるレイテンシ制約Lmaxは、S140で使用される。
以下、外部メモリ選択におけるレイテンシ制約Lmaxは、単にレイテンシ制約Lmaxともいう。
次に、(c)外部メモリ選択における回路規模制約Smaxについて説明する。
外部メモリ選択における回路規模制約Smaxとは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、回路規模についての制約条件である。
外部メモリ選択部240は、外部メモリ選択における回路規模制約Smaxを満たすメモリアーキテクチャを探索する。
外部メモリ選択における回路規模制約Smaxは、S140で使用される。
以下、外部メモリ選択における回路規模制約Smaxは、単に回路規模制約Smaxともいう。
次に、(d)外部メモリ選択における最適化方針情報Pについて説明する。
外部メモリ選択における最適化方針情報Pは、外部メモリモジュール候補から外部メモリモジュールを選択する際に参照される、最適化の指針である。
外部メモリ選択における最適化方針情報Pとして、回路規模最適化と、レイテンシ最適化とが選択される。
外部メモリ選択における最適化方針情報Pが回路規模最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、回路規模が最小となるメモリアーキテクチャを探索する。
外部メモリ選択における最適化方針情報Pがレイテンシ最適化の場合は、外部メモリ選択部240は、外部メモリ選択におけるレイテンシ制約Lmaxと外部メモリ選択における回路規模制約Smaxとを満たしつつ、レイテンシが最小となるメモリアーキテクチャを探索する。
外部メモリ選択における最適化方針情報Pは、S140で使用される。
以下、外部メモリ選択における最適化方針情報Pは、単に最適化方針情報Pともいう。
次に、(e)外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoについて説明する。
外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S135で選択された外部メモリモジュールが、どのようなハードウェアに実装されるのかを示す情報である。
例えば、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoには、外部メモリの種類(DRAMなのか、DDR−SDRAMなのか、QDR−SDRAMなのか等)等が示される。
外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、S140とS160で使用される。
以下、外部メモリ選択および外部メモリインターフェイス生成における外部メモリ構成情報Minfoは、単に外部メモリ構成情報Minfoともいう。
制約情報入力受付部210は、例えば、図4に示すような制約情報271を取得する。
S110の後、処理はS120に進む。
S120において、回路設計支援装置200のバインディングデータ取得部220は、高位合成装置110のバインディング部113によって生成されたバインディングデータ124を高位合成装置110から取得(受信)する。
S120の後、処理はS130に進む。
図5は、実施の形態1におけるバインディングデータ124の一例を示す図である。
実施の形態1は、図5に示すバインディングデータに基づいて説明する。
バインディングデータは、図5に示すように、設計対象回路に含まれる複数の機能モジュールが記述されている。
図5のfuncと記載された四角形は、設計対象回路の演算モジュールである。
演算モジュールは、前述のように、演算を行う演算器、レジスタを表す。
図5のmemと記載された四角形は、設計対象回路のメモリモジュールである。
メモリモジュールは、前述のように、記憶素子を表す。
図5の矢印はデータの流れを表している。
バインディングデータでは、各演算モジュールがどのメモリモジュールにリードアクセスを行うか(どのメモリからデータを読み出すか)、どのメモリモジュールにライトアクセスを行うか(演算結果をどのメモリに格納するか)が示される。
また、図5では図示されていないが、バインディングデータには、各メモリモジュールで発生するリードアクセスのタイミング(サイクル時間)とリードアクセスを行う演算ブロック(リードアクセス演算ブロック)、ライトアクセスのタイミング(サイクル時間)とライトアクセスを行う演算ブロック(ライトアクセス演算ブロックという)とが記述されている。
本実施の形態では、バインディングデータ取得部220は、図5のバインディングデータ124を取得する。
図3に戻り、S130から説明を続ける。
S130において、外部メモリ判定部230は、バインディングデータ124に記述されている複数のメモリモジュールから、任意のメモリモジュールを選択する。
以下、S130で選択されたメモリモジュールを、判定対象メモリモジュールという。
S130の後、処理はS131に進む。
S131において、外部メモリ判定部230は、判定対象メモリモジュールのライフサイクルを解析し、以下2つのサイクル時間を取得する。
(1)判定対象メモリモジュールについて、ライトアクセスが終了した時のサイクル時間
(2)判定対象メモリモジュールについて、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間
次に、外部メモリ判定部230は、「(1)のサイクル時間−(2)のサイクル時間」を計算し、判定対象メモリモジュールのライトデータ保持サイクル時間Tsを算出する。
ライトデータ保持サイクル時間Tsは、上記の式に示されるように、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたライトデータへの最後のリードアクセスが開始するまでの時間である。
S131の後、処理はS132に進む。
S132において、外部メモリ判定部230は、S131で求めた判定対象メモリモジュールのライトデータ保持サイクル時間Tsと、制約情報271中の外部メモリ判定におけるサイクル時間閾値Tthとを比較し、判定対象メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
Ts≧Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とすると判定し(YES)、処理はS135に進む。
Ts<Tthの場合、外部メモリ判定部230は、判定対象メモリモジュールを外部メモリモジュール候補とせず(NO)、処理はS133に進む。
図6は、実施の形態1における各メモリモジュールのライフタイムサイクル解析結果の一例を示す。
図7は、実施の形態1における各メモリモジュールのライフタイムサイクル解析結果に基づいた外部メモリモジュール候補の抽出判定結果の一例を示す。
S131及びS132の具体例を、図6および図7に基づいて説明する。
図6は、バインディングデータ124中の各メモリモジュールについて、ライトアクセスサイクル時間、及びリードアクセスサイクル時間を解析した結果を示す。
この解析結果より、外部メモリ判定部230は、メモリモジュールごとに、ライトアクセスが終了した時のサイクル時間と、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間とを取得する。
図7は、外部メモリ判定部230が図6より取得した、メモリモジュールごとに、ライトアクセスが終了した時のサイクル時間と、ライトデータに対する最後のリードアクセスが開始した時のサイクル時間とを示す。
また、外部メモリ判定部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から説明を続ける。
S132の結果、外部メモリモジュール候補では無いと判定された判定対象メモリモジュールに対し、外部メモリ判定部230は、「判定対象メモリモジュールを必要とする演算モジュールを動作開始させるために必要なデータが、閾値Tth以内のサイクル時間で揃うか」という判定基準を適用する。
つまり、外部メモリ判定部230は、上記の判定基準に基づき、判定対象メモリモジュールを外部メモリモジュール候補とするか否かを判定する。
S133では、外部メモリ判定部230は、判定対象メモリモジュールを解析して以下の2つの情報を取得する。
(1)判定対象メモリモジュールを必要とする機能の1イタレーションに必要な判定対象メモリモジュール格納データ
(2)上記の(1)のデータが揃うまでに必要なサイクル時間Tg
上記の2つの情報の取得後、処理はS134に進む。
S134において、外部メモリ判定部230は、S133で求めたサイクル時間Tgと、制約情報271中の外部メモリ判定時におけるサイクル時間閾値Tthとを比較し、判定対象メモリモジュールを外部メモリモジュール候補として抽出するか否かを判定する。
Tg≧Tthの場合、判定対象メモリモジュールは外部メモリモジュール候補と判定し(YES)、処理はS135に進む。
Tg<Tthの場合、判定対象メモリモジュールは内部メモリとして実装する内部メモリモジュールの候補と判定し(NO)、処理はS136に進む。
図8は、S133の外部メモリ判定の対象となるメモリモジュールの例を示す図である。
図8において、mem1及びmem4以外のメモリモジュール(矢印が差しているメモリモジュール)がS133の外部メモリ判定の対象となるメモリモジュールである。
図9は、mem5を対象とする外部メモリモジュール候補の判定例を示す。
図10は、mem3を対象とする外部メモリモジュール候補の判定例を示す。
S131及びS132の具体例を、図8、図9および図10に基づいて説明する。
S131及びS132において、mem1およびmem4については、既に外部メモリモジュール候補として確定している。
従って、図8に示すように、mem2、mem3、mem5、mem6が、S133およびS134における外部メモリ判定の対象となる。
図9は、mem5を対象に外部メモリモジュール候補とするか否かの判定を実施した結果を示す。
まず、外部メモリ判定部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は外部メモリモジュール候補として抽出される。
図10は、mem3を対象に外部メモリモジュール候補とするか否かの判定をした結果を示す。
まず、外部メモリ判定部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は、メモリモジュールごとに、バインディングデータ124に記述されるライトアクセスのタイミング及びライトアクセスを行う演算ブロック(ライトアクセス演算ブロック)とリードアクセスのタイミング及びリードアクセスを行う演算ブロック(リードアクセス演算ブロック)とを解析する。
また、外部メモリ判定部230は、リードアクセス演算ブロック(例えば、図9のfunc6)が演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロック(例えば、図9のfunc5)が動作を開始してからリードアクセス演算ブロック(例えば、図9のfunc6)が被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間(例えば、図9のサイクル時間Tg)を算出する。
そして、外部メモリ判定部230は、算出したリードアクセス待ち時間が閾値以上であるメモリモジュール(例えば、図9のmem5)を外部メモリモジュール候補として抽出する。
図3に戻り、S135から説明を続ける。
S135において、外部メモリ判定部230は、S132とS134の結果、S131で選択された判定対象メモリモジュールが外部メモリモジュール候補と判定された場合に、判定対象メモリモジュールの情報を外部メモリ判定結果272に書き込む。
S135の後、処理はS136に進む。
S136において、外部メモリ判定部230は、バインディングデータ124中の全てのメモリモジュールを解析済みかどうかをチェックする。
解析していないメモリモジュールがある場合(NO)は、処理はS130に戻る。
全てのメモリモジュールが解析済みである場合(YES)は、処理はS140に進む。
S140において、外部メモリ選択部240は、制約情報271に基づいて、外部メモリ判定結果272中の外部メモリモジュール候補の中から、外部メモリモジュールを選択する。
S140の後、処理はS150に進む。
図11は、実施の形態1における外部メモリ判定結果272の例を示す。
図12は、実施の形態1におけるメモリアーキテクチャ探索結果の例を示す。
S140の具体例を、図11および図12に基づいて説明する。
図11は、外部メモリ判定部230でバインディングデータ124に記述されているメモリモジュールについて外部メモリモジュール判定を実行した結果、外部メモリモジュール候補と判定されたメモリモジュールの一覧を示す。
図11の例の場合、mem1、mem4、mem5、mem6が外部メモリモジュール候補である。
従って、外部メモリ選択部240は、mem1、mem4、mem5、mem6の中から、どのメモリモジュールを外部メモリモジュールとするかを探索する。
一般的に、LSI内部のメモリを外部メモリにすることによって、LSIからメモリを省くことができるため、LSIの回路規模は小さくなる。
しかし、外部メモリからデータを取得するために必要なサイクル時間は、LSI内部のメモリからデータを取得する場合と比べると長くなる。
即ち、LSI内部メモリの外部メモリ化には、回路規模と処理レイテンシのトレードオフが伴う。
従って、図11に示す外部メモリモジュール候補と判定されたメモリを、全て外部メモリとして実現することが最適解であるとは限らない。
そのため、図11に示す外部メモリモジュール候補と判定されたメモリモジュールのうち、どのメモリモジュールを外部メモリとして実現するべきか探索する必要がある。
本実施の形態では、外部メモリ選択部240は、複数の外部メモリモジュール候補の全ての組合せを生成する。
そして、外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の回路規模及びレイテンシを、バインディングデータ124に基づき算出する。
更に、外部メモリ選択部240は、算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、選択した組合せに含まれる外部メモリモジュール候補を、外部メモリモジュールとして選択する。
より具体的には、外部メモリ選択部240は、外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する。
算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せが複数存在する場合は、外部メモリ選択部240は、算出された回路規模が最小である組合せを選択する。
もしくは、外部メモリ選択部240は、算出されたレイテンシが最小である組合せを選択するようにしてもよい。
図12は、外部メモリ選択部240が算出した、外部メモリモジュール候補の組合せごとの回路規模とレイテンシを示す。
図12のLSI全体の回路規模とは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路の回路規模と周辺回路の回路規模とを合わせた回路規模である。
また、図12のLSI全体の処理レイテンシとは、複数のメモリモジュールの中から、任意のメモリモジュールを外部メモリとして実現した場合の設計対象回路で発生する処理レイテンシである。
LSI全体の回路規模は、具体的には、以下で計算される。
LSI全体の回路規模
= 全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模
− 外部メモリ化するメモリモジュールの回路規模
+ 外部メモリとの通信インターフェイスの回路規模
つまり、外部メモリ選択部240は、これら3つの回路規模を算出し、3つの回路規模を用いた上記の計算を行う。
1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の回路規模」は、バインディングデータ124に記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合の設計対象回路の回路規模である。
2つ目の「外部メモリ化するメモリモジュールの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合の外部メモリの回路規模である。
3つ目の「外部メモリとの通信インターフェイスの回路規模」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリと通信するために用いる通信インターフェイスの回路規模である。
LSI全体の処理レイテンシは、具体的には、以下で計算される。
LSI全体の処理レイテンシ
= 全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ
+ 外部メモリからデータを取得する際の処理レイテンシ
つまり、外部メモリ選択部240は、これら2つの処理レイテンシを算出し、2つの処理レイテンシを用いた上記の計算を行う。
1つ目の「全メモリモジュールを内部メモリとした場合の設計対象回路の処理レイテンシ」は、バインディングデータに記述される全てのメモリモジュールが設計対象回路内の内部メモリとして実装される場合に発生するレイテンシであり、第1のレイテンシに相当する。
また、2つ目の「外部メモリからデータを取得する際の処理レイテンシ」は、組合せに含まれる外部メモリモジュール候補が外部メモリとして実装される場合に設計対象回路が外部メモリからデータを取得するために要するレイテンシであり、第2のレイテンシに相当する。
なお、外部メモリ選択部240は、外部メモリからデータを取得するために必要なサイクル時間を、外部メモリ構成情報Minfoを元に計算する。
図4の例の場合、外部メモリはDDR_SDRAMであるため、これに従って外部メモリからデータを取得するために必要なサイクル時間を計算する。
外部メモリ選択部240は、制約情報271中のレイテンシ制約Lmax、回路規模制約Smax、最適化方針情報Pを元に、図12の結果の中から、条件を満たす組合せを選択する。
図4の例の場合、最適化方針情報Pは回路規模優先となっているため、レイテンシ制約Lmax、回路規模制約Smaxを満たし、且つ、回路規模が最小となるメモリアーキテクチャ(外部メモリモジュールの組合せ)を選択する。
そして、外部メモリ選択部240は、選択結果が記述される外部メモリ選択結果273を生成する。
図3に戻り、S150から説明を続ける。
S150において、回路設計支援装置200のCDFGデータ取得部280は、高位合成装置110のCDFG生成部111によって生成されたCDFGデータ122を高位合成装置110から取得(受信)する。
S150の後、処理はS160に進む。
S160において、回路設計支援装置200の外部メモリインターフェイス生成部250は、外部メモリ選択結果273に基づいて外部メモリインターフェイスを自動生成する。
外部メモリインターフェイス生成部250は、CDFGデータ122中の外部メモリモジュールとして選択されたメモリモジュールの記述を、自動生成された外部インターフェイスの記述に変換して、変換後のCDFGデータ274を生成する。
例えば、外部メモリインターフェイス生成部250は、特許文献1に開示されているインターフェイス生成装置などを用いて、変換後のCDFGデータ274を生成する。
S160の後、処理はS170に進む。
S170において、支援データ提供部260は、変換後のCDFGデータ274を高位合成装置110に提供(送信)する。
そして、高位合成装置110のスケジューリング部112、バインディング部113およびRTL記述生成部114は、提供された変換後のCDFGデータ274に基づいて、スケジューリングデータ123、バインディングデータ124およびRTL記述ファイル125を生成する。
***実施の形態の効果の説明***
以上のように、本実施の形態によれば、回路設計支援装置が、動作記述中の記憶素子(メモリ)の機能モジュールであるメモリモジュールの中から、外部メモリとして実装すべきメモリモジュールを抽出し、また、メモリモジュールを外部メモリとして実装する際に必要な回路を高位合成で自動生成できるという効果がある。
***まとめ***
以上、本実施の形態では、
動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援装置であって、
前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定部と、
外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択部と、
外部メモリ選択部の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成部を備える回路設計支援装置を説明した。
また、本実施の形態では、
動作記述を入力として高位合成(動作合成)処理を行いRTL記述を出力する回路設計支援方法であって、
前記高位合成された結果であるバインディング結果から、各メモリモジュールのライトデータの保持サイクル時間と、各メモリモジュールを必要とする各機能を動作開始させるために必要なデータが揃うまでのサイクル時間を算出し、各メモリモジュールを外部メモリ化すべきかを判定する外部メモリ判定工程と、
外部メモリモジュール候補となったメモリモジュールの中から、制約条件を満たすメモリアーキテクチャを探索する外部メモリ選択工程と、
外部メモリ選択工程の選択結果から、外部メモリとの通信インターフェイスを自動生成する外部メモリインターフェイス生成工程を含む回路設計支援方法を説明した。
***ハードウェア構成の説明***
最後に、回路設計支援装置200のハードウェア構成例を図13を参照して説明する。
回路設計支援装置200はコンピュータである。
回路設計支援装置200は、プロセッサ901、補助記憶装置902、メモリ903、通信装置904、入力インターフェイス905、ディスプレイインターフェイス906といったハードウェアを備える。
プロセッサ901は、信号線910を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
入力インターフェイス905は、入力装置907に接続されている。
ディスプレイインターフェイス906は、ディスプレイ908に接続されている。
プロセッサ901は、プロセッシングを行うIC(Integrated Circuit)である。
プロセッサ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)である。
補助記憶装置902には、図2に示す制約情報入力受付部210、バインディングデータ取得部220、外部メモリ判定部230、外部メモリ選択部240、外部メモリインターフェイス生成部250、支援データ提供部260、CDFGデータ取得部280(以下、これらをまとめて「部」と表記する)の機能を実現するプログラムが記憶されている。
このプログラムは、メモリ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)といった他の種類の処理回路をも包含する概念である。
100 高位合成システム、110 高位合成装置、111 CDFG生成部、112 スケジューリング部、113 バインディング部、114 RTL記述生成部、120 高位合成装置記憶部、121 動作記述ファイル、122 CDFGデータ、123 スケジューリングデータ、124 バインディングデータ、125 RTL記述ファイル、200 回路設計支援装置、210 制約情報入力受付部、220 バインディングデータ取得部、230 外部メモリ判定部、240 外部メモリ選択部、250 外部メモリインターフェイス生成部、260 支援データ提供部、270 支援装置記憶部、271 制約情報、272 外部メモリ判定結果、273 外部メモリ選択結果、274 変換後のCDFGデータ、280 CDFGデータ取得部、2000 メモリモジュール選択部。

Claims (10)

  1. 設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得するバインディングデータ取得部と、
    メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択するメモリモジュール選択部とを有する回路設計支援装置。
  2. 前記バインディングデータ取得部は、
    前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述されるバインディングデータを取得し、
    前記メモリモジュール選択部は、
    複数の外部メモリモジュール候補を抽出した場合に、
    外部メモリモジュール候補の組合せを複数生成し、
    外部メモリモジュール候補の組合せごとに、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の回路規模及びレイテンシを、前記バインディングデータに基づき算出し、
    算出した回路規模及びレイテンシに基づき、外部メモリモジュール候補の複数の組合せの中から、いずれかの組合せを選択し、
    選択した組合せに含まれる外部メモリモジュール候補を、前記外部メモリモジュールとして選択する請求項1に記載の回路設計支援装置。
  3. 前記メモリモジュール選択部は、
    外部メモリモジュール候補の複数の組合せの中から、算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せを選択する請求項2に記載の回路設計支援装置。
  4. 前記メモリモジュール選択部は、
    算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出された回路規模が最小である組合せを選択する請求項3に記載の回路設計支援装置。
  5. 前記メモリモジュール選択部は、
    算出された回路規模が回路規模の制約条件に合致し、算出されたレイテンシがレイテンシの制約条件に合致する組合せの中から、算出されたレイテンシが最小である組合せを選択する請求項3に記載の回路設計支援装置。
  6. 前記メモリモジュール選択部は、
    外部メモリモジュール候補の組合せごとに、
    前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合の前記設計対象回路の回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合の前記外部メモリの回路規模と、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリと通信するために用いる通信インターフェイスの回路規模とを算出し、
    前記設計対象回路の回路規模から前記外部メモリの回路規模を減算し、減算値に前記通信インターフェイスの回路規模を加算して得られる回路規模が回路規模の制約条件に合致するか否かを判断し、
    前記バインディングデータに記述される全てのメモリモジュールが前記設計対象回路内の内部メモリとして実装される場合に発生する第1のレイテンシと、組合せに含まれる外部メモリモジュール候補が前記外部メモリとして実装される場合に前記設計対象回路が前記外部メモリからデータを取得するために要する第2のレイテンシとを算出し、
    前記第1のレイテンシに前記第2のレイテンシを加算して得られるレイテンシが、レイテンシの制約条件に合致するか否かを判断する請求項3に記載の回路設計支援装置。
  7. 前記メモリモジュール選択部は、
    メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、メモリモジュールへのライトアクセスが終了してから、当該ライトアクセスでメモリモジュールに書き込まれたデータへの最後のリードアクセスが開始するまでの時間であるライトデータ保持時間を算出し、
    算出したライトデータ保持時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項1に記載の回路設計支援装置。
  8. 前記バインディングデータ取得部は、
    前記設計対象回路の機能モジュールとして、前記複数のメモリモジュールが記述されるとともに、演算を行う複数の演算ブロックが記述され、更に、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミング及びライトアクセスを行うライトアクセス演算ブロックと、メモリモジュールへのリードアクセスのタイミング及びリードアクセスを行うリードアクセス演算ブロックとが記述されるバインディングデータを取得し、
    前記メモリモジュール選択部は、
    メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミング及びライトアクセス演算ブロックとリードアクセスのタイミング及びリードアクセス演算ブロックとを解析して、リードアクセス演算ブロックが演算に用いる被演算データのライトアクセスを行うライトアクセス演算ブロックが動作を開始してから前記リードアクセス演算ブロックが前記被演算データのリードアクセスを開始できるまでの時間であるリードアクセス待ち時間を算出し、
    算出したリードアクセス待ち時間が閾値以上であるメモリモジュールを前記外部メモリモジュール候補として抽出する請求項1に記載の回路設計支援装置。
  9. コンピュータが、設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得し、
    前記コンピュータが、メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択する回路設計支援方法。
  10. 設計対象回路の機能モジュールとして複数のメモリモジュールが記述され、メモリモジュールごとに、メモリモジュールへのライトアクセスのタイミングとリードアクセスのタイミングが記述されるバインディングデータを取得するバインディングデータ取得処理と、
    メモリモジュールごとに、前記バインディングデータに記述されるライトアクセスのタイミングとリードアクセスのタイミングとを解析して、前記バインディングデータに記述される前記複数のメモリモジュールの中から、前記設計対象回路外の外部メモリとして実装すべき外部メモリモジュールの候補である外部メモリモジュール候補を抽出し、抽出した外部メモリモジュール候補の中から、前記設計対象回路に関する制約条件に基づいて、前記外部メモリモジュールを選択するメモリモジュール選択処理とをコンピュータに実行させる回路設計支援プログラム。
JP2017511392A 2015-04-08 2015-04-08 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム Active JP6342065B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017033336A1 (ja) * 2015-08-27 2017-03-02 三菱電機株式会社 回路設計支援装置および回路設計支援プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
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

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