JP6735951B2 - 高位合成装置、高位合成方法および高位合成プログラム - Google Patents
高位合成装置、高位合成方法および高位合成プログラム Download PDFInfo
- Publication number
- JP6735951B2 JP6735951B2 JP2020510172A JP2020510172A JP6735951B2 JP 6735951 B2 JP6735951 B2 JP 6735951B2 JP 2020510172 A JP2020510172 A JP 2020510172A JP 2020510172 A JP2020510172 A JP 2020510172A JP 6735951 B2 JP6735951 B2 JP 6735951B2
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- level synthesis
- data hazard
- performance
- location
- 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
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
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/34—Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
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)
Description
従来の半導体集積回路の設計では、ハードウェア記述言語を用いて、フリップフロップによるレジスタ間の組み合わせ回路の動作を記述していた。近年では、集積回路の回路規模が増大しており、ハードウェア記述言語を用いた設計では多大な設計時間を要する。そこで、ハードウェア記述言語よりも抽象度が高いC言語、C++言語、SystemC言語、あるいはMatlab言語といった高級言語を用いて設計を行い、RTLを自動的に生成する技術が提供されている。そして、この技術を実現するツールが高位合成ツールとして市販されている。
設計者は、高級言語を用いたソースコードと、回路仕様とを高位合成ツールに入力することで、回路設計を行う。また、設計者は、高級言語では表現できない、あるいはソースコードで表現するには効率的でない回路仕様については、オプション、アトリビュート、あるいはプラグマといった高位合成オプションを設定して、高位合成ツールに入力する。
回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置において、
データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出部と、
前記回路のレイテンシと回路規模とに基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定部とを備えた。
図1から図3は、データハザードの発生について説明する図である。
図1を用いて、データハザードと、データハザードが発生したときの対処方法について説明する。データハザードとは、図1に示すように、変数を参照した後で、その変数に代入しなければならない論理があるときに発生する可能性があるパイプラインハザードの一種である。図1では、変数aについて、次のiteration時にaの代入が終了していなければ、パイプライン化ができない。
1つ目は、回路のパイプライン化の性能を落とす方式である。すなわち、パイプライン合成の指示として、2サイクルに1度の処理をさせることである。ここで、1サイクルに一度の処理を行うことをDII(Data Initiation Interval)=1という。DIIはIIともいう。また、2サイクルに一度の処理を行うことをDII=2という。なおDII=2はDII=1と比較し、性能が半分になる。また、DII=2でもデータハザードが解消されない場合、DIIをさらにあげることもある。DIIはサイクル数の一例である。回路のパイプライン化の性能を落とす方式は、動作記述におけるデータハザード箇所を1度処理する際のサイクル数を増加させる方式である。
以上のように、データハザードが発生したときの対処方法は2種類がある。
図4を用いて、本実施の形態に係る高位合成装置100の構成を説明する。
高位合成装置100は、コンピュータである。高位合成装置100は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
高位合成プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、高位合成方法は、高位合成装置が高位合成プログラムを実行することにより行われる方法である。
高位合成プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、高位合成プログラムは、プログラムプロダクトとして提供されてもよい。
図5を用いて、本実施の形態の高位合成装置100の入出力について説明する。
高位合成装置100は、回路の動作を記述した動作記述であるソースコード181に対して高位合成処理を行い、回路を動作させるハードウェア記述言語であるRTL184を出力する。具体的には、高位合成装置100は、ソースコード181と非機能要件182と仕様定義183とを入力として高位合成処理を行い、RTL184と合成レポート185とを出力する。
合成レポート185は、RTL184とともに高位合成ツールから出力される。合成レポート185には、生成されたRTL184の非機能要件が設定される。すなわち、合成レポート185には、生成されたRTLのレイテンシ、面積、スループット、消費電力、メモリ使用量、乗算器使用量、さらに回路への入力データの充填期間といった情報が設定されている。
ロジック判定部110は、複数の実行単位を含む動作記述であるソースコード181を取得し、非機能要件182を満たす回路全体の回路構成を決定回路構成として決定する。ロジック判定部110は、ロジックアーキテクチャ判定部ともいう。ソースコード181は、複数の実行単位として、ループ記述、関数、動作単位、あるいはサブモジュールを含む。本実施の形態では、主に、実行単位を関数として説明する。
また、バッファ判定部120は、決定回路構成において、各関数を接続するバッファ構成を決定する。バッファ判定部120は、内部バッファアーキテクチャ判定部ともいう。
このように、非機能要件182を満たす回路の回路構成と、この回路を構成する関数と、各関数を接続するバッファ構成とを決定することを、回路構成を探索するともいう。
コード変換部130は、回路特性が閾値を満たす決定回路構成となるように、ソースコード181を変換するとともに高位合成オプションを設定する。
高位合成部140は、高位合成処理を行う。高位合成部140は、コード変換部130により変換されたソースコード181と、コード変換部130により設定された高位合成オプションとを用いて、回路構成が決定回路構成となるようにソースコード181に対して高位合成処理を実行する。
図6を用いて、本実施の形態に係る高位合成処理100による高位合成処理S100について説明する。
高位合成処理S100は、合成処理S010と、データハザード検出処理S110と、性能算出処理S120と、対処決定処理S130とを有する。
図7は、本実施の形態に係るソースコード181のサンプル例を示す。以下、図7のソースコード181を用いて、本実施の形態について説明する。
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140により、以下の情報が出力される。ロジックアーキテクチャ情報と、各関数のレイテンシ見積もり値と、高位合成周波数と、高位合成実施後の高位合成ログとが出力される。高位合成ログには、レジスタ数、マルチプレクサ数、使用している演算器のその個数、およびデータハザード情報といった回路規模情報が含まれる。ロジックアーキテクチャ情報は、回路のロジックアーキテクチャを表す。ロジックアーキテクチャには、直列型と並列型がある。
直列型とは、図9で示すように、各処理で、バッファを共有し、時分割で処理する回路構成である。並列型とは、図10に示すように、各処理がパイプラインステージで構成され、各処理の間にPing−pongバッファのようなバッファが構成される回路である。
図11は、直列型の処理の時間軸上の流れの例を示す図である。図12は、並列型の処理の時間軸上の流れの例を示す図である。
データハザード検出部150について説明する。
データハザード検出部150は、データハザードが発生した動作記述の箇所をデータハザード箇所511として検出する。具体的には、データハザード検出部150は、高位合成ログから、データハザードが発生しているログを抽出し、データハザード箇所511を特定する。そして、データハザード検出部150は、そのデータハザードが発生しない周波数と等しいクリティカルパス情報を送出する。図7に示すように、本実施の形態では、F2関数がデータハザード箇所511であるとして説明する。
次に、性能算出部160について説明する。性能算出部160は回路性能算出部ともいう。
性能算出部160は、データハザード箇所511に回路のパイプライン化の性能を落とす方式を施した場合のデータハザード箇所511のレイテンシと回路規模とを含む第1の性能611を算出する。また、性能算出部160は、データハザード箇所511の動作周波数を落とす方式を施した場合のデータハザード箇所のレイテンシと回路規模とを含む第2の性能612を算出する。そして、性能算出部160は、第1の性能611と第2の性能612とを性能見積もり値610として出力する。
図13は、回路のパイプライン化の性能を落とす方式によりDIIを変更して算出された第1の性能611の例である。
図14は、動作周波数を落とす方式により動作周波数を低減させて算出された第2の性能612の例である。
(式1):DII * Lat(Fn())
本実施の形態では、F2にデータハザードが発生しているので、上記式1で、Fn==F2となる。また、DII値は、入力となるデータハザード発生で設定されたDIIに対して、1なら2のようにインクリメント値を任意の値の上限までインクリメントし算出する。この任意の値は、外部より設定してもよい。ここでは任意の値を3とする。また、入力となるデータハザード発生で設定されたDIIを1とする。
(式2):演算器の回路規模 * 使用数/DII
具体例としては、DII=1では、乗算器が6個、加算器が2個使用されている場合で、DII=2のとき、乗算器の回路規模 * 6/2+加算器の回路規模 * 2/2となる。すなわち、DII=2では、乗算器が3個、加算器が1個使用されている。
さらにマルチプレクサは、回路共有により増加する。そのため、マルチプレクサの回路規模はDIIの値をかける。
レジスタについては、変わらない。
このとき、F_after < F_hazardの関係にある。
具体的には、図7のソースコード181のサンプル例の場合、100MHz入力であり、90MHzでハザード回避をするとする。すなわち、F_hazard=100MHzであり、F_after=90MHzとなる。よって、周波数を低減させた場合の回路規模は、90/100 * (1000)となる。
図14は、動作周波数を低減させた場合の処理結果を示す図である。なお、図14では、参考までにデータハザードが生じたDII=1のときも合わせて示している。
性能算出部160は、サイクル数をインクリメントして高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまでサイクル数をインクリメントした後の高位合成処理を繰り返す。具体的な処理を以下に記載する。
ステップS101において、性能算出部160は、DIIの指定変更を行う。性能算出部160は、データハザード箇所に対して、DIIの指定を変更する。DIIは、入力となるデータハザード発生で設定されたDIIに対して、1なら2のようなインクリメント値を設定する。
ステップS102において、性能算出部160は、変更されたDIIで、高位合成を再度実行し、高位合成ログを出力させる。
再度データハザードが発生した場合、ステップS101に戻り、DIIの指定変更を再度実行し、データハザードがなくなるまで処理を繰り返す。
性能算出部160は、データハザード箇所の動作周波数を低減して高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまで動作周波数を低減した後の高位合成処理を繰り返す。具体的な処理を以下に記載する。
ステップS201において、性能算出部160は、動作周波数の低減指示を行う。性能算出部160は、データハザード箇所に対して、入力となるデータハザード箇所に設定されている高位合成時の動作周波数の設定値から、指定された低減値だけ周波数を引いた値に設定する。具体例としては、最初のデータハザードが発生した動作周波数が100MHzであり、指定された低減値が10MHzである場合、90MHz(100MHz−10MHz)に指定する。
ステップS202において、性能算出部160は、変更された周波数で、高位合成を実行し、高位合成ログを出力させる。
再度データハザードが発生した場合、性能算出部160は、ステップS101に戻り、動作周波数の低減指示を再度実行し、データハザードがなくなるまで処理を繰り返す。
つまり、性能算出部160は、サイクル数をインクリメントするとともにデータハザード箇所の動作周波数を低減して高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまでサイクル数をインクリメントするとともにデータハザード箇所の動作周波数を低減した後の高位合成処理を繰り返す。このように、性能算出部160は、DIIと動作周波数との両条件を変更して、性能見積もり値610を算出してもよい。
次に、対処決定部170の動作について説明する。上述したように、ここでは、図7のソースコード181において、F2関数にデータハザードが発生した場合の対処決定部170の動作を説明する。対処決定部170は、データハザード対処方法決定部ともいう。
性能見積もり値610は、回路のレイテンシと回路規模とを含む回路性能の見積もり値である。上述したように、性能見積もり値610には、第1の性能611と、第2の性能612とが含まれる。
対処決定部170は、第1の性能611に基づいて、データハザード箇所に回路のパイプライン化の性能を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第1の全体回路性能711を算出する。また、対処決定部170は、データハザード箇所の動作周波数を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第2の全体回路性能712を算出する。そして、対処決定部170は、第1の全体回路性能711と第2の全体回路性能712とに基づいて対処方式を決定する。
最後に、対処決定部170は、対処方式を行って高位合成部140に高位合成処理を再度行わせる。
(式3):ΣLat(Fn())/Fr
ここで、Frは周波数である。
図17は、DII=2のときの全体の回路規模と性能、すなわち第1の全体回路性能711を示す図である。また、図18は、DII=3のときの全体の回路規模と性能、すなわち第1の全体回路性能711を示す図である。
(式4):F_after * (ΣLat(Fn())+Lat(Fm())
ここで、Fmはデータハザード発生関数、Fnはデータハザードが発生していない関数である。
図19は、周波数低減を行った場合の関数ごとの回路規模と性能、すなわち第2の全体回路性能712を示す図である。
あるいは、高位合成装置100では、処理時間と回路規模のどちらを優先するかを優先情報として予め設定してもよい。対処決定部170は、優先情報に従って、処理時間と回路規模のどちらを優先するか決定する。具体例として、回路規模が優先される場合、図17から図19の例では、対処決定部170は、Area totalが2700である周波数低減を選択する。
図20は、並列型が入力された場合の対処決定処理のフローチャートである。
ステップS301において、対処決定部170は、データハザード発生関数が、並列型のレイテンシを決定付けるMax(LatFn())となるFnと等しいかを判定する。
Max(LatFn())となるFnがデータハザード発生関数と等しくない場合、ステップS302に進む。Max(LatFn())となるFnがデータハザード発生関数と等しい場合、ステップS303に進む。
具体例では、図19からMax(LatFn())は、F3である。しかしながらデータハザード発生関数はF2である。よって、データハザード発生関数は、レイテンシがMax(LatFn())を超えない。そこで、回路規模が最小なのは、図13および図14の結果から、DII=3である。また、DII=3のときのF2のレイテンシは、Max(LatFn())を超えない。
図22は、F3関数がデータハザード発生関数の場合に周波数低減を行った際のレイテンシと回路規模、すなわち第2の全体回路性能712の例を表す図である。
F3がデータハザード発生関数とする場合、図19より、Max(LatFn())となるFnがデータハザード関数と等しくなる。
このように、データハザードが発生し、レイテンシは増加するものの、回路規模については、削減できるという効果がある。
<変形例1>
高位合成装置100は、ネットワークを介して他の装置と通信する通信装置を備えていてもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。高位合成装置100は、通信装置を介して、ソースコード、非機能要件、あるいは使用定義を取得してもよい。あるいは、高位合成装置100は、通信装置を介して、RTLあるいは合成レポートを外部の表示装置に表示してもよい。
本実施の形態では、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能がソフトウェアで実現される。変形例として、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能がハードウェアで実現されてもよい。
高位合成装置100は、電子回路909、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
本実施の形態に係る高位合成装置100は、動作記述を入力として高位合成あるいは動作合成処理を行いHDL記述を出力する。性能算出部が、データハザードが発生した回路性能情報、あるいは、パイプラインの構成の変更から、レイテンシおよび回路規模の性能を算出する。対処決定部が、データハザード箇所に対して、データハザードを解消するために、パイプライン化の性能を落とす方式と、または動作周波数を落とす方式のいずれか、または両方の方式の組み合わせを決定する。対処決定部は、データハザード発生箇所以外も含めた回路全体のレイテンシと回路規模から、データハザードを解消するための方式を判断する。よって、本実施の形態に係る高位合成装置100よれば、これまで手動で行ってきた、データハザード発生に対する対処を、自動に行うことができる。さらに、設計者に依存せず、短時間で最適な回路の設計が可能になる。
また、実施の形態1のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態1では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
Claims (10)
- 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置において、
データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出部と、
前記回路のレイテンシと回路規模とを含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定部と
を備えた高位合成装置。 - 前記高位合成装置は、
前記データハザード箇所に前記回路のパイプライン化の性能を落とす方式を施した場合の前記データハザード箇所のレイテンシと回路規模とを含む第1の性能を算出するとともに、前記データハザード箇所の動作周波数を落とす方式を施した場合の前記データハザード箇所のレイテンシと回路規模とを含む第2の性能を算出し、前記第1の性能と前記第2の性能とを前記性能見積もり値として出力する性能算出部を備え、
前記対処決定部は、
前記性能見積もり値に基づいて前記対処方式を決定する請求項1に記載の高位合成装置。 - 前記回路のパイプライン化の性能を落とす方式は、前記動作記述における前記データハザード箇所を1度処理する際のサイクル数を増加させる方式であり、
前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
前記性能算出部は、
前記サイクル数をインクリメントして前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記サイクル数をインクリメントした後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。 - 前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
前記性能算出部は、
前記データハザード箇所の動作周波数を低減して前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記データハザード箇所の動作周波数を低減した後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。 - 前記回路のパイプライン化の性能を落とす方式は、前記動作記述における前記データハザード箇所を1度処理する際のサイクル数を増加させる方式であり、
前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
前記性能算出部は、
前記サイクル数をインクリメントするとともに前記データハザード箇所の動作周波数を低減して前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記サイクル数をインクリメントするとともに前記データハザード箇所の動作周波数を低減した後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。 - 前記対処決定部は、
前記第1の性能に基づいて、前記データハザード箇所に前記回路のパイプライン化の性能を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第1の全体回路性能を算出するとともに、前記データハザード箇所の動作周波数を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第2の全体回路性能を算出し、前記第1の全体回路性能と前記第2の全体回路性能とに基づいて前記対処方式を決定する請求項3から5のいずれか1項に記載の高位合成装置。 - 前記対処決定部は、
前記回路が直列型か並列型かを示すロジックアーキテクチャ情報に基づいて、前記対処方式の決定方法を選択する請求項3から6のいずれか1項に記載の高位合成装置。 - 前記対処決定部は、
前記対処方式を行って前記高位合成部に前記高位合成処理を再度行わせる請求項3から7のいずれか1項に記載の高位合成装置。 - 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置の高位合成方法において、
データハザード検出部が、データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出し、
対処決定部が、前記回路のレイテンシと回路規模を含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する高位合成方法。 - 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置の高位合成プログラムにおいて、
データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出処理と、
前記回路のレイテンシと回路規模を含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定処理と
をコンピュータである前記高位合成装置に実行させる高位合成プログラム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2018/011999 WO2019186618A1 (ja) | 2018-03-26 | 2018-03-26 | 高位合成装置、高位合成方法および高位合成プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019186618A1 JPWO2019186618A1 (ja) | 2020-06-25 |
JP6735951B2 true JP6735951B2 (ja) | 2020-08-05 |
Family
ID=68059377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020510172A Active JP6735951B2 (ja) | 2018-03-26 | 2018-03-26 | 高位合成装置、高位合成方法および高位合成プログラム |
Country Status (3)
Country | Link |
---|---|
US (1) | US20200410149A1 (ja) |
JP (1) | JP6735951B2 (ja) |
WO (1) | WO2019186618A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2023032348A (ja) * | 2021-08-26 | 2023-03-09 | 国立大学法人 東京大学 | 情報処理装置、及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3108215B2 (ja) * | 1992-08-13 | 2000-11-13 | 富士通株式会社 | パイプライン制御機構生成装置及び制御機構生成方法 |
JPH11102381A (ja) * | 1997-09-29 | 1999-04-13 | Matsushita Electric Ind Co Ltd | アーキテクチャ動作合成装置、アーキテクチャ動作合成方法、プロセッサの設計方法およびプロセッサのアーキテクチャ動作記述方法 |
JP6246445B1 (ja) * | 2016-03-17 | 2017-12-13 | 三菱電機株式会社 | 高位合成装置、高位合成方法及び高位合成プログラム |
-
2018
- 2018-03-26 JP JP2020510172A patent/JP6735951B2/ja active Active
- 2018-03-26 US US16/978,968 patent/US20200410149A1/en not_active Abandoned
- 2018-03-26 WO PCT/JP2018/011999 patent/WO2019186618A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JPWO2019186618A1 (ja) | 2020-06-25 |
WO2019186618A1 (ja) | 2019-10-03 |
US20200410149A1 (en) | 2020-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8631378B2 (en) | Implementing enhanced clock tree distributions to decouple across N-level hierarchical entities | |
JP2007193529A (ja) | 半導体集積回路の高位合成方法 | |
Ma et al. | Algorithm-hardware co-design of single shot detector for fast object detection on FPGAs | |
US7752592B2 (en) | Scheduler design to optimize system performance using configurable acceleration engines | |
US20120266120A1 (en) | Glitch power reduction | |
JP5014920B2 (ja) | 回路設計方法、ならびにその方法により製造される集積回路 | |
GB2385691A (en) | Designing a System LSI | |
JP6735951B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
JP6890741B2 (ja) | アーキテクチャ推定装置、アーキテクチャ推定方法、およびアーキテクチャ推定プログラム | |
JP6246445B1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
JP2009211614A (ja) | 動作合成装置、動作合成方法、および、プログラム | |
US10599803B2 (en) | High level synthesis apparatus, high level synthesis method, and computer readable medium | |
CN115293076A (zh) | 生成电路的方法、电子设备及存储介质 | |
US10366001B1 (en) | Partitioning memory blocks for reducing dynamic power consumption | |
JP6305644B2 (ja) | アーキテクチャ生成装置およびアーキテクチャ生成プログラム | |
JP6545406B2 (ja) | 高位合成装置、高位合成方法および高位合成プログラム | |
JPWO2018167940A1 (ja) | 情報処理装置、情報処理方法及び情報処理プログラム | |
JP5267376B2 (ja) | 動作合成装置、動作合成方法、ならびに、プログラム | |
JP2006502500A (ja) | 回路合成中における最小コストで正確なタイミングのハードウェアの設計方法 | |
JP2953431B2 (ja) | 高位合成装置及びその記録媒体 | |
WO2021214944A1 (ja) | 構成変換装置、構成変換方法、および構成変換プログラム | |
US8768991B2 (en) | Mechanism to find first two values | |
WO2016162970A1 (ja) | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム | |
JP5692063B2 (ja) | 動作合成装置、動作合成方法、及びプログラム | |
JP2009223554A (ja) | 動作合成装置、動作合成方法、及び、プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200304 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200304 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200610 |
|
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: 20200616 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200714 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6735951 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |