JP6735951B2 - 高位合成装置、高位合成方法および高位合成プログラム - Google Patents

高位合成装置、高位合成方法および高位合成プログラム Download PDF

Info

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
Application number
JP2020510172A
Other languages
English (en)
Other versions
JPWO2019186618A1 (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 JPWO2019186618A1 publication Critical patent/JPWO2019186618A1/ja
Application granted granted Critical
Publication of JP6735951B2 publication Critical patent/JP6735951B2/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
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit 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

本発明は、高位合成装置、高位合成方法および高位合成プログラムに関する。特に、高位合成または動作合成を利用した半導体設計を支援する高位合成装置、高位合成方法および高位合成プログラムに関する。
高位合成または動作合成は、動作記述からRTL(Register Transfer Level)といったハードウェア記述言語を自動生成する技術である。
従来の半導体集積回路の設計では、ハードウェア記述言語を用いて、フリップフロップによるレジスタ間の組み合わせ回路の動作を記述していた。近年では、集積回路の回路規模が増大しており、ハードウェア記述言語を用いた設計では多大な設計時間を要する。そこで、ハードウェア記述言語よりも抽象度が高いC言語、C++言語、SystemC言語、あるいはMatlab言語といった高級言語を用いて設計を行い、RTLを自動的に生成する技術が提供されている。そして、この技術を実現するツールが高位合成ツールとして市販されている。
設計者は、高級言語を用いたソースコードと、回路仕様とを高位合成ツールに入力することで、回路設計を行う。また、設計者は、高級言語では表現できない、あるいはソースコードで表現するには効率的でない回路仕様については、オプション、アトリビュート、あるいはプラグマといった高位合成オプションを設定して、高位合成ツールに入力する。
レイテンシおよび回路規模といった非機能要件を満たす回路を設計するために、高位合成オプションが選択される。回路アーキテクチャ、バッファの挿入、あるいはパイプライン指定といった高位合成オプションの選択は、設計者が行う必要がある。このように、依然として設計者が行う部分が多く、設計効率の観点では、改善の余地がある。そこで、特許文献1では、非機能要件から回路アーキテクチャを自動的に判定し、高位合成を行うことで、設計効率の改善を行っている。
国際公開第2017/154183号
特許文献1では、回路をパイプライン化指定して高位合成を実行する。しかし、データハザードによりパイプライン化ができない場合がある。データハザードによりパイプライン化ができない場合の対処方法は、2種類ある。しかし、特許文献1では、この対処方法については開示がされておらず、決められたアーキテクチャで高位合成ができない場合は、正しく回路が合成されない。
本発明は、データハザードが発生した場合、自動で最適な対処方法を得ることができる高位合成装置を提供する。
本発明に係る高位合成装置は、
回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置において、
データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出部と、
前記回路のレイテンシと回路規模とに基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定部とを備えた。
本発明に係る高位合成装置によれば、データハザードが発生した場合、自動で最適な対処方法を得ることができる。
データハザードの発生について説明する図。 2サイクルに1度の処理をさせたときのタイミングチャート例。 動作周波数を落として合成したときのタイミングチャート例。 実施の形態1に係る高位合成装置の構成図。 実施の形態1の高位合成装置の入出力を示す図。 実施の形態1に係る高位合成処理による高位合成処理のフローチャート。 実施の形態1に係るソースコードのサンプル例。 図7のソースコードのサンプル例から得られた、各関数のレイテンシと回路規模を示す図。 直列型の回路構成例。 並列型の回路構成例。 直列型の処理の時間軸上の流れの例を示す図。 並列型の処理の時間軸上の流れの例を示す図。 DIIを変更した場合の第1の性能の例。 周波数を低減させた場合の第2の性能の例。 DIIを変更して回路性能を算出する機能と高位合成部とを連携させる場合のフローチャート。 動作周波数を落として回路性能を算出する機能と高位合成部とを連携させる場合のフローチャート。 DII=2のときの第1の全体回路性能の例。 DII=3のときの第1の全体回路性能の例。 周波数低減を行ったときの第2の全体回路性能の例。 並列型が入力された場合の対処決定処理のフローチャート。 関数がデータハザード発生関数の場合にDIIを変更したときの第1の全体回路性能の例。 関数がデータハザード発生関数の場合に周波数低減を行ったときの第2の全体回路性能の例。 実施の形態1の変形例に係る高位合成装置の構成図。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
図1から図3は、データハザードの発生について説明する図である。
図1を用いて、データハザードと、データハザードが発生したときの対処方法について説明する。データハザードとは、図1に示すように、変数を参照した後で、その変数に代入しなければならない論理があるときに発生する可能性があるパイプラインハザードの一種である。図1では、変数aについて、次のiteration時にaの代入が終了していなければ、パイプライン化ができない。
一般的に、データハザードに対する対処方法は、2つある。
1つ目は、回路のパイプライン化の性能を落とす方式である。すなわち、パイプライン合成の指示として、2サイクルに1度の処理をさせることである。ここで、1サイクルに一度の処理を行うことをDII(Data Initiation Interval)=1という。DIIはIIともいう。また、2サイクルに一度の処理を行うことをDII=2という。なおDII=2はDII=1と比較し、性能が半分になる。また、DII=2でもデータハザードが解消されない場合、DIIをさらにあげることもある。DIIはサイクル数の一例である。回路のパイプライン化の性能を落とす方式は、動作記述におけるデータハザード箇所を1度処理する際のサイクル数を増加させる方式である。
2つ目は、データハザード箇所の動作周波数を落とす方式である。すなわち、動作周波数を落として合成することである。動作周波数を落として合成するため、目標の周波数とはならないので、回路の性能は劣化する。ここで動作周波数をどれほど落とすかは、データハザードが解消されるまで落とす。つまり、データハザードが発生している変数の処理が次のサイクル、つまり1サイクルで処理しきれる程度の動作周波数となる。
図2に2サイクルに1度の処理をさせたときのタイミングチャート例を示す。また図3に動作周波数を落として合成したときのタイミングチャート例を示す。
以上のように、データハザードが発生したときの対処方法は2種類がある。
***構成の説明***
図4を用いて、本実施の形態に係る高位合成装置100の構成を説明する。
高位合成装置100は、コンピュータである。高位合成装置100は、プロセッサ910を備えるとともに、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940といった他のハードウェアを備える。プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
高位合成装置100は、機能要素として、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170と記憶部180とを備える。記憶部180には、ソースコード181と非機能要件182と仕様定義183とRTL184と合成レポート185とが記憶される。
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能は、ソフトウェアにより実現される。記憶部180は、メモリ921に備えられる。
プロセッサ910は、高位合成プログラムを実行する装置である。高位合成プログラムは、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能を実現するプログラムである。
プロセッサ910は、演算処理を行うIC(Integrated Circuit)である。プロセッサ910の具体例は、CPU、DSP(Digital Signal Processor)、GPU(Graphics Processing Unit)である。
メモリ921は、データを一時的に記憶する記憶装置である。メモリ921の具体例は、SRAM(Static Random Access Memory)、あるいはDRAM(Dynamic Random Access Memory)である。
補助記憶装置922は、データを保管する記憶装置である。補助記憶装置922の具体例は、HDDである。また、補助記憶装置922は、SD(登録商標)メモリカード、CF、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVDといった可搬記憶媒体であってもよい。なお、HDDは、Hard Disk Driveの略語である。SD(登録商標)は、Secure Digitalの略語である。CFは、CompactFlash(登録商標)の略語である。DVDは、Digital Versatile Diskの略語である。
入力インタフェース930は、マウス、キーボード、あるいはタッチパネルといった入力装置と接続されるポートである。入力インタフェース930は、具体的には、USB(Universal Serial Bus)端子である。なお、入力インタフェース930は、LAN(Local Area Network)と接続されるポートであってもよい。
出力インタフェース940は、ディスプレイといった出力機器のケーブルが接続されるポートである。出力インタフェース940は、具体的には、USB端子またはHDMI(登録商標)(High Definition Multimedia Interface)端子である。ディスプレイは、具体的には、LCD(Liquid Crystal Display)である。
高位合成プログラムは、プロセッサ910に読み込まれ、プロセッサ910によって実行される。メモリ921には、高位合成プログラムだけでなく、OS(Operating System)も記憶されている。プロセッサ910は、OSを実行しながら、高位合成プログラムを実行する。高位合成プログラムおよびOSは、補助記憶装置922に記憶されていてもよい。補助記憶装置922に記憶されている高位合成プログラムおよびOSは、メモリ921にロードされ、プロセッサ910によって実行される。なお、高位合成プログラムの一部または全部がOSに組み込まれていてもよい。
高位合成装置100は、プロセッサ910を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、高位合成プログラムの実行を分担する。それぞれのプロセッサは、プロセッサ910と同じように、高位合成プログラムを実行する装置である。
高位合成プログラムにより利用、処理または出力されるデータ、情報、信号値および変数値は、メモリ921、補助記憶装置922、または、プロセッサ910内のレジスタあるいはキャッシュメモリに記憶される。
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えてよい。ロジック判定処理とバッファ判定処理とコード変換処理と高位合成処理とデータハザード検出処理と性能算出処理と対処決定処理の「処理」を「プログラム」、「プログラムプロダクト」または「プログラムを記録したコンピュータ読取可能な記憶媒体」に読み替えてよい。
高位合成プログラムは、上記の各部の「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程を、コンピュータに実行させる。また、高位合成方法は、高位合成装置が高位合成プログラムを実行することにより行われる方法である。
高位合成プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよい。また、高位合成プログラムは、プログラムプロダクトとして提供されてもよい。
<高位合成装置100の入出力>
図5を用いて、本実施の形態の高位合成装置100の入出力について説明する。
高位合成装置100は、回路の動作を記述した動作記述であるソースコード181に対して高位合成処理を行い、回路を動作させるハードウェア記述言語であるRTL184を出力する。具体的には、高位合成装置100は、ソースコード181と非機能要件182と仕様定義183とを入力として高位合成処理を行い、RTL184と合成レポート185とを出力する。
ソースコード181は、高位合成対象の回路の動作をC言語、C++言語、SystemC言語、Matlab言語といった高級言語で記述した動作記述である。ソースコード181は、入力装置から入力インタフェース930を介して入力され、記憶部180に記憶される。ソースコード181は、回路の動作を記述した動作記述の一例である。
非機能要件182には、要求する回路の非機能要件が定義されている。具体的には、非機能要件182には、要求する回路のレイテンシ、面積、スループット、消費電力、メモリ使用量、乗算器使用量、さらに回路への入力データの充填期間といった情報が定義されている。非機能要件182は、入力装置から入力インタフェース930を介して入力され、記憶部180に記憶される。回路の非機能要件とは回路の特性および性能を表す回路特性の一例である。
仕様定義183には、回路の仕様が定義されている。具体的には、仕様定義183には、外部とのインタフェース定義、マッピングするデバイス名、および周波数といった情報が定義されている。マッピングするデバイス名は、具体的には、FPGA(Field−Programmable Gate Array)の形名、あるいはASIC(Application Specific Integrated Circuit)のプロセス名である。仕様定義183は、入力装置から入力インタフェース930を介して入力され、記憶部180に記憶される。
RTL184は、ハードウェア記述言語、すなわちHDLの例である。
合成レポート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を用いて、本実施の形態について説明する。
<合成処理S010:最初の合成のトライアル>
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140により、以下の情報が出力される。ロジックアーキテクチャ情報と、各関数のレイテンシ見積もり値と、高位合成周波数と、高位合成実施後の高位合成ログとが出力される。高位合成ログには、レジスタ数、マルチプレクサ数、使用している演算器のその個数、およびデータハザード情報といった回路規模情報が含まれる。ロジックアーキテクチャ情報は、回路のロジックアーキテクチャを表す。ロジックアーキテクチャには、直列型と並列型がある。
図8は、図7のソースコード181のサンプル例から得られた、各関数のレイテンシ見積もり値と回路規模情報を示す図である。また、ロジックアーキテクチャ情報は、本来は、直列型と並列型とのいずれかである。しかし、本実施の形態では、直列型と並列型とのそれぞれが出力された場合について説明する。また、簡単のため、各ロジックアーキテクチャで、各関数のレイテンシ見積もり値と、高位合成周波数は同一とする。
回路規模情報について補足する。全体の回路規模は、レジスタと、マルチプレクサと、四則演算といった演算であるFunction Unitの回路規模の合計値となる。レジスタの回路規模は、(1bitのレジスタの回路規模)*(レジスタのビット数)である。マルチプレクサの回路規模は、1bitマルチプレクサの2way、3way、およびNwayといった選択される本数から、Σ(1bitのNwayの回路規模*bit数)で表される。また、Function Unitは、加算器および乗算器といった回路の各々のNbitの回路規模に対して、その使用個数の総和で算出される。
図9は、直列型の回路構成例を示す図である。図10は、並列型の回路構成例を示す図である。
直列型とは、図9で示すように、各処理で、バッファを共有し、時分割で処理する回路構成である。並列型とは、図10に示すように、各処理がパイプラインステージで構成され、各処理の間にPing−pongバッファのようなバッファが構成される回路である。
図11は、直列型の処理の時間軸上の流れの例を示す図である。図12は、並列型の処理の時間軸上の流れの例を示す図である。
<データハザード検出処理S110>
データハザード検出部150について説明する。
データハザード検出部150は、データハザードが発生した動作記述の箇所をデータハザード箇所511として検出する。具体的には、データハザード検出部150は、高位合成ログから、データハザードが発生しているログを抽出し、データハザード箇所511を特定する。そして、データハザード検出部150は、そのデータハザードが発生しない周波数と等しいクリティカルパス情報を送出する。図7に示すように、本実施の形態では、F関数がデータハザード箇所511であるとして説明する。
<性能算出処理S120>
次に、性能算出部160について説明する。性能算出部160は回路性能算出部ともいう。
性能算出部160は、データハザード箇所511に回路のパイプライン化の性能を落とす方式を施した場合のデータハザード箇所511のレイテンシと回路規模とを含む第1の性能611を算出する。また、性能算出部160は、データハザード箇所511の動作周波数を落とす方式を施した場合のデータハザード箇所のレイテンシと回路規模とを含む第2の性能612を算出する。そして、性能算出部160は、第1の性能611と第2の性能612とを性能見積もり値610として出力する。
具体的には、性能算出部160は、データハザード箇所に対して、回路のパイプライン化の性能を落とす方式によりDIIを変更して回路性能の見積もり値を算出する機能を有する。また、性能算出部160は、動作周波数を落とす方式により動作周波数を落として回路性能の見積もり値を算出する機能を有する。これらの機能は独立にそれぞれ実行される。しかし、後述するように、この2つの機能を組み合わせてもよい。以降、それぞれ独立に動作する場合を説明する。なお、ここでの回路性能とは、レイテンシと回路規模である。データハザード箇所に対して、DIIを変更して算出された回路性能は、第1の性能611の例である。データハザード箇所に対して、動作周波数を落として算出された回路性能は、第2の性能612の例である。
図13は、回路のパイプライン化の性能を落とす方式によりDIIを変更して算出された第1の性能611の例である。
図14は、動作周波数を落とす方式により動作周波数を低減させて算出された第2の性能612の例である。
DIIを変更して回路性能を算出する機能は、DII値と、そのDIIで合成したときのレイテンシの見積もり値を算出する。レイテンシ値は、以下の式1のように算出する。
(式1):DII * Lat(F())
本実施の形態では、Fにデータハザードが発生しているので、上記式1で、F==Fとなる。また、DII値は、入力となるデータハザード発生で設定されたDIIに対して、1なら2のようにインクリメント値を任意の値の上限までインクリメントし算出する。この任意の値は、外部より設定してもよい。ここでは任意の値を3とする。また、入力となるデータハザード発生で設定されたDIIを1とする。
次に、各DII値での回路規模の見積もり方法について説明する。DII=2はDII=1と比べて、2サイクルに1回の動作となるため、回路共有が可能になる。DII=1での合成結果として、使用している演算器のその個数をDII値で割った値を使用する演算器数として、回路規模を見積もる。つまり、各演算器について以下の式2を算出し、その総和を取る。
(式2):演算器の回路規模 * 使用数/DII
具体例としては、DII=1では、乗算器が6個、加算器が2個使用されている場合で、DII=2のとき、乗算器の回路規模 * 6/2+加算器の回路規模 * 2/2となる。すなわち、DII=2では、乗算器が3個、加算器が1個使用されている。
さらにマルチプレクサは、回路共有により増加する。そのため、マルチプレクサの回路規模はDIIの値をかける。
レジスタについては、変わらない。
以上のように、DIIを変更して回路性能を算出する機能により、図13の第1の性能611が出力される。
動作周波数を落として回路性能を算出する機能は、データハザード検出部から送出されるクリティカルパス情報から、そのクリティカルパスを解消する周波数を、データハザード解消周波数とする。つまり、データハザード検出部からはデータハザード箇所とともにクリティカルパス情報が出力され、その情報からデータハザード解消周波数が得られる。このデータハザード解消周波数をF_afterとする。またデータハザードが生じた周波数をF_hazardとする。
このとき、F_after < F_hazardの関係にある。
周波数を低減させた場合の回路規模は、レジスタ数のみ変更となる。レジスタの回路規模は、単純に入力された合成結果である回路規模を、F_after/F_hazard倍することで求める。
具体的には、図7のソースコード181のサンプル例の場合、100MHz入力であり、90MHzでハザード回避をするとする。すなわち、F_hazard=100MHzであり、F_after=90MHzとなる。よって、周波数を低減させた場合の回路規模は、90/100 * (1000)となる。
図14は、動作周波数を低減させた場合の処理結果を示す図である。なお、図14では、参考までにデータハザードが生じたDII=1のときも合わせて示している。
以上のように、回路性能を見積もることで、高位合成を毎回実行せずに、回路性能に関する情報、すなわち第1の性能611、および、第2の性能612を得ることができる。よって、短時間に回路性能に関する情報を得ることが可能になるという効果がある。
また、性能算出部160は、データハザード箇所に対して、DIIを変更して回路性能を算出する機能と、動作周波数を落として回路性能を算出する機能を高位合成部と連携して算出させてもよい。
図15は、DIIを変更して回路性能を算出する機能と高位合成部とを連携させる場合のフローチャートである。
性能算出部160は、サイクル数をインクリメントして高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまでサイクル数をインクリメントした後の高位合成処理を繰り返す。具体的な処理を以下に記載する。
ステップS101において、性能算出部160は、DIIの指定変更を行う。性能算出部160は、データハザード箇所に対して、DIIの指定を変更する。DIIは、入力となるデータハザード発生で設定されたDIIに対して、1なら2のようなインクリメント値を設定する。
ステップS102において、性能算出部160は、変更されたDIIで、高位合成を再度実行し、高位合成ログを出力させる。
再度データハザードが発生した場合、ステップS101に戻り、DIIの指定変更を再度実行し、データハザードがなくなるまで処理を繰り返す。
図16は、動作周波数を落として回路性能を算出する機能と高位合成部とを連携させる場合のフローチャートである。
性能算出部160は、データハザード箇所の動作周波数を低減して高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまで動作周波数を低減した後の高位合成処理を繰り返す。具体的な処理を以下に記載する。
ステップS201において、性能算出部160は、動作周波数の低減指示を行う。性能算出部160は、データハザード箇所に対して、入力となるデータハザード箇所に設定されている高位合成時の動作周波数の設定値から、指定された低減値だけ周波数を引いた値に設定する。具体例としては、最初のデータハザードが発生した動作周波数が100MHzであり、指定された低減値が10MHzである場合、90MHz(100MHz−10MHz)に指定する。
ステップS202において、性能算出部160は、変更された周波数で、高位合成を実行し、高位合成ログを出力させる。
再度データハザードが発生した場合、性能算出部160は、ステップS101に戻り、動作周波数の低減指示を再度実行し、データハザードがなくなるまで処理を繰り返す。
図15および図16に示すように、高位合成の結果を使うことで、より正確にレイテンシおよび回路規模を見積もることができるという効果がある。
なお、性能算出部160は、DIIを変更して回路性能を算出する機能と動作周波数を落として回路性能を算出する機能とを組み合わせてもよい。
つまり、性能算出部160は、サイクル数をインクリメントするとともにデータハザード箇所の動作周波数を低減して高位合成部140に高位合成処理を行わせる。そして、性能算出部160は、データハザード箇所のデータハザードが解消するまでサイクル数をインクリメントするとともにデータハザード箇所の動作周波数を低減した後の高位合成処理を繰り返す。このように、性能算出部160は、DIIと動作周波数との両条件を変更して、性能見積もり値610を算出してもよい。
性能算出部160は、算出した性能見積もり値610を対処決定部170に出力する。
<対処決定処理S130>
次に、対処決定部170の動作について説明する。上述したように、ここでは、図7のソースコード181において、F関数にデータハザードが発生した場合の対処決定部170の動作を説明する。対処決定部170は、データハザード対処方法決定部ともいう。
対処決定部170は、性能見積もり値610に基づいて、データハザード箇所のデータハザードを解消する対処方式を決定する。対処決定部170は、回路のパイプライン化の性能を落とす方式と、データハザード箇所の動作周波数を落とす方式と、回路のパイプライン化の性能を落とす方式とデータハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを対処方式として決定する。
性能見積もり値610は、回路のレイテンシと回路規模とを含む回路性能の見積もり値である。上述したように、性能見積もり値610には、第1の性能611と、第2の性能612とが含まれる。
対処決定部170は、第1の性能611に基づいて、データハザード箇所に回路のパイプライン化の性能を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第1の全体回路性能711を算出する。また、対処決定部170は、データハザード箇所の動作周波数を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第2の全体回路性能712を算出する。そして、対処決定部170は、第1の全体回路性能711と第2の全体回路性能712とに基づいて対処方式を決定する。
最後に、対処決定部170は、対処方式を行って高位合成部140に高位合成処理を再度行わせる。
すなわち、対処決定部170は、データハザード発生箇所の回路性能と、ロジックアーキテクチャからのロジックアーキテクチャ情報とを元に、DII値での対処方法か、あるいは設定周波数での対処方法かを選択し、回路全体を再度合成する機能部である。ここで、データハザード発生箇所の回路性能とは、DII変更時、周波数低減時、またはその組み合わせ時のデータハザード発生箇所の回路性能である。
対処決定部170は、回路が直列型か並列型かを示すロジックアーキテクチャ情報に基づいて、対処方式の決定方法を選択する。回路のロジックアーキテクチャが直列型であるか並列型であるかにより、対処方式の決定方法が異なるため、直列型と並列型とのそれぞれに分けて説明する。
ロジックアーキテクチャとして、直列型が入力された場合の処理を説明する。まず、性能算出部160から出力されたレイテンシを基に、直列型で、DIIの指定を反映した処理時間の算出式は、(式3)となる。
(式3):ΣLat(F())/Fr
ここで、Frは周波数である。
図8のF関数以外の関数のレイテンシと、図13に示すF関数以外のDII=2のときのレイテンシより、(1000+200+2000)/100MHz=3200*5nsecになる。同様にDII=3のときは、(1000+200+2000)/100MHz=3300*5nsecになる。
回路規模も同様に総和を取る。上記計算により得られる結果について、図17および図18に示す。
図17は、DII=2のときの全体の回路規模と性能、すなわち第1の全体回路性能711を示す図である。また、図18は、DII=3のときの全体の回路規模と性能、すなわち第1の全体回路性能711を示す図である。
直列型において周波数低減を行う場合は、データハザードが発生していない関数についても、データハザードが発生した周波数と同一の周波数にする必要がある。直列型では、データハザード発生回路のみ、周波数を変更して合成することはできないためである。よって、周波数低減を行う場合は、全体のレイテンシに以下の(式4)ように算出する。
(式4):F_after * (ΣLat(F())+Lat(F())
ここで、Fはデータハザード発生関数、Fはデータハザードが発生していない関数である。
またFの回路規模についても、上述したように、レジスタ数のみ変更となる。レジスタの回路規模は、単純に入力された合成結果である回路規模を、F_after/F_hazard倍することで求める。
図19は、周波数低減を行った場合の関数ごとの回路規模と性能、すなわち第2の全体回路性能712を示す図である。
上述したように、対処決定部170は、直列型の場合、DII変更と、周波数低減でそれぞれ、回路全体の処理性能を算出し、処理時間が最小になるものを選択する。図17から図19の例では、対処決定部170は、32usecであるDII=2を選択する。つまり、対処決定部170は、データハザード箇所511についてDII=2にするという方式を対処方式として決定する。
また、対処決定部170は、決定した対処方式を、出力インタフェース940を介して高位合成装置100の外部に出力してもよい。外部に出力された対処方式をユーザが判断し、その後の対処を決定してもよい。
あるいは、高位合成装置100では、処理時間と回路規模のどちらを優先するかを優先情報として予め設定してもよい。対処決定部170は、優先情報に従って、処理時間と回路規模のどちらを優先するか決定する。具体例として、回路規模が優先される場合、図17から図19の例では、対処決定部170は、Area totalが2700である周波数低減を選択する。
次に、ロジックアーキテクチャとして、並列型が入力された場合の処理を説明する。
図20は、並列型が入力された場合の対処決定処理のフローチャートである。
ステップS301において、対処決定部170は、データハザード発生関数が、並列型のレイテンシを決定付けるMax(LatF())となるFと等しいかを判定する。
Max(LatFn())となるFがデータハザード発生関数と等しくない場合、ステップS302に進む。Max(LatF())となるFがデータハザード発生関数と等しい場合、ステップS303に進む。
データハザード発生関数は、そのレイテンシが、Max(LatF())を超えないのであれば、全体のレイテンシ性能に影響を与えない。よって、ステップS302において、対処決定部170は、DII、周波数低減、およびそれらの組み合わせのうち、回路規模が最も小さい対処方法を選択する。
具体例では、図19からMax(LatF())は、Fである。しかしながらデータハザード発生関数はFである。よって、データハザード発生関数は、レイテンシがMax(LatF())を超えない。そこで、回路規模が最小なのは、図13および図14の結果から、DII=3である。また、DII=3のときのFのレイテンシは、Max(LatF())を超えない。
このようにデータハザードが発生した場合でも、全体の処理時間を維持しつつ、回路規模を削減できるという効果がある。
Max(LatF())となるFがデータハザード関数と等しい場合は、データハザード発生回路が、並列型の全体の処理時間を決定付けることになる。よって、ステップS303において、対処決定部170は、処理時間を優先に、DII、周波数低減、またはそれらの組み合わせのうち、どれが最も処理時間を小さいかの比較を行う。そして、対処決定部170は、処理時間が最も小さい対処方法を選択する。
ステップS304において、対処決定部170は、データハザード発生箇所以外の関数の処理時間が、決定された最も小さい処理時間以下の範囲で、全て再合成を実施する。ステップS303において決定された最も小さい処理時間が、並列型全体の処理時間となる。このため、データハザードが発生していないその他の関数は、決定された最も小さい処理時間よりも処理時間が小さければ問題ない。言い換えると、データハザードが発生していないその他の関数は、決定された最も小さい処理時間よりも小さければ、処理時間を大きくしても問題ない。そのため、データハザード発生箇所以外の関数の処理時間が、決定された最も小さい処理時間以下の範囲で、全て再合成を実施する。
上述した具体例では、この条件に合わないため、本来ならば実行されないが、説明のため、別のサンプルを定義する。以下では、データハザード発生関数がFではなく、Fであるものとして説明する。
図21は、F関数がデータハザード発生関数の場合にDIIを変更した際のレイテンシと回路規模、すなわち第1の全体回路性能711の例を表す図である。
図22は、F関数がデータハザード発生関数の場合に周波数低減を行った際のレイテンシと回路規模、すなわち第2の全体回路性能712の例を表す図である。
がデータハザード発生関数とする場合、図19より、Max(LatF())となるFがデータハザード関数と等しくなる。
図21および図22では、DII=2のとき4000/100MHz=40usecであり、90MHzのとき2000/90MHz=22usecである。このため、最も処理時間が小さいものとして、動作周波数を低減する方式であるとの結果が得られる。つまり、22usecが回路全体の性能を決めることになる。ここでは、DII=1でデータハザードが発生することを前提としている。よって、データハザードの対処方法としては、DII=2の方式、あるいは、動作周波数を90MHzに低減する方式のどちらかの方式が選択される。ここでは、動作周波数を90MHzに低減する方式が選択される。
次に、対処決定部170は、データハザードが発生していない関数F,Fそれぞれで、処理時間22usecを上限に回路共有を行わせ、回路規模削減を行う。
このように、データハザードが発生し、レイテンシは増加するものの、回路規模については、削減できるという効果がある。
以上のように、対処決定部170は、決定されたデータハザード回避方法である対処方式、および、データハザード発生以外の関数に対して、再度高位合成を行うように高位合成部に指示することで、最良の回路全体のハードウェア記述言語を得ることができる。
***他の構成***
<変形例1>
高位合成装置100は、ネットワークを介して他の装置と通信する通信装置を備えていてもよい。通信装置は、レシーバとトランスミッタを有する。通信装置は、無線で、LAN、インターネット、あるいは電話回線といった通信網に接続している。通信装置は、具体的には、通信チップまたはNIC(Network Interface Card)である。高位合成装置100は、通信装置を介して、ソースコード、非機能要件、あるいは使用定義を取得してもよい。あるいは、高位合成装置100は、通信装置を介して、RTLあるいは合成レポートを外部の表示装置に表示してもよい。
<変形例2>
本実施の形態では、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能がソフトウェアで実現される。変形例として、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能がハードウェアで実現されてもよい。
図23は、本実施の形態の変形例に係る高位合成装置100の構成を示す図である。
高位合成装置100は、電子回路909、メモリ921、補助記憶装置922、入力インタフェース930、および出力インタフェース940を備える。
電子回路909は、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能を実現する専用の電子回路である。
電子回路909は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、または、FPGAである。GAは、Gate Arrayの略語である。
ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。
別の変形例として、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、高位合成装置100において、ロジック判定部110とバッファ判定部120とコード変換部130と高位合成部140とデータハザード検出部150と性能算出部160と対処決定部170の機能は、プロセッシングサーキットリにより実現される。
***本実施の形態の効果の説明***
本実施の形態に係る高位合成装置100は、動作記述を入力として高位合成あるいは動作合成処理を行いHDL記述を出力する。性能算出部が、データハザードが発生した回路性能情報、あるいは、パイプラインの構成の変更から、レイテンシおよび回路規模の性能を算出する。対処決定部が、データハザード箇所に対して、データハザードを解消するために、パイプライン化の性能を落とす方式と、または動作周波数を落とす方式のいずれか、または両方の方式の組み合わせを決定する。対処決定部は、データハザード発生箇所以外も含めた回路全体のレイテンシと回路規模から、データハザードを解消するための方式を判断する。よって、本実施の形態に係る高位合成装置100よれば、これまで手動で行ってきた、データハザード発生に対する対処を、自動に行うことができる。さらに、設計者に依存せず、短時間で最適な回路の設計が可能になる。
また、本実施の形態に係る高位合成装置100では、対処決定部が、データハザード発生回路におけるパイプライン構成の変更、または周波数の変更結果から、データハザード以外の回路に対して、レイテンシおよび回路規模を探索し、再度高位合成する。よって、本実施の形態に係る高位合成装置100よれば、回路全体において最良のハードウェア記述言語を得ることができる。
以上の実施の形態1では、高位合成装置の各部を独立した機能ブロックとして説明した。しかし、高位合成装置の構成は、上述した実施の形態のような構成でなくてもよい。高位合成装置の機能ブロックは、上述した実施の形態で説明した機能を実現することができれば、どのような構成でもよい。また、高位合成装置は、1つの装置でなく、複数の装置から構成されたシステムでもよい。
また、実施の形態1のうち、複数の部分を組み合わせて実施しても構わない。あるいは、この実施の形態のうち、1つの部分を実施しても構わない。その他、この実施の形態を、全体としてあるいは部分的に、どのように組み合わせて実施しても構わない。
すなわち、実施の形態1では、各実施の形態の自由な組み合わせ、あるいは各実施の形態の任意の構成要素の変形、もしくは各実施の形態において任意の構成要素の省略が可能である。
なお、上述した実施の形態は、本質的に好ましい例示であって、本発明の範囲、本発明の適用物の範囲、および本発明の用途の範囲を制限することを意図するものではない。上述した実施の形態は、必要に応じて種々の変更が可能である。
100 高位合成装置、110 ロジック判定部、120 バッファ判定部、130 コード変換部、140 高位合成部、150 データハザード検出部、511 データハザード箇所、160 性能算出部、610 性能見積もり値、611 第1の性能、612 第2の性能、170 対処決定部、711 第1の全体回路性能、712 第2の全体回路性能、180 記憶部、181 ソースコード、182 非機能要件、183 仕様定義、184 RTL、185 合成レポート、909 電子回路、910 プロセッサ、921 メモリ、922 補助記憶装置、930 入力インタフェース、940 出力インタフェース、S100 高位合成処理、S010 合成処理、S110 データハザード検出処理、S120 性能算出処理、S130 対処決定処理。

Claims (10)

  1. 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置において、
    データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出部と、
    前記回路のレイテンシと回路規模とを含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定部と
    を備えた高位合成装置。
  2. 前記高位合成装置は、
    前記データハザード箇所に前記回路のパイプライン化の性能を落とす方式を施した場合の前記データハザード箇所のレイテンシと回路規模とを含む第1の性能を算出するとともに、前記データハザード箇所の動作周波数を落とす方式を施した場合の前記データハザード箇所のレイテンシと回路規模とを含む第2の性能を算出し、前記第1の性能と前記第2の性能とを前記性能見積もり値として出力する性能算出部を備え、
    前記対処決定部は、
    前記性能見積もり値に基づいて前記対処方式を決定する請求項1に記載の高位合成装置。
  3. 前記回路のパイプライン化の性能を落とす方式は、前記動作記述における前記データハザード箇所を1度処理する際のサイクル数を増加させる方式であり、
    前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
    前記性能算出部は、
    前記サイクル数をインクリメントして前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記サイクル数をインクリメントした後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。
  4. 前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
    前記性能算出部は、
    前記データハザード箇所の動作周波数を低減して前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記データハザード箇所の動作周波数を低減した後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。
  5. 前記回路のパイプライン化の性能を落とす方式は、前記動作記述における前記データハザード箇所を1度処理する際のサイクル数を増加させる方式であり、
    前記高位合成装置は、前記高位合成処理を行う高位合成部を備え、
    前記性能算出部は、
    前記サイクル数をインクリメントするとともに前記データハザード箇所の動作周波数を低減して前記高位合成部に前記高位合成処理を行わせ、前記データハザード箇所のデータハザードが解消するまで前記サイクル数をインクリメントするとともに前記データハザード箇所の動作周波数を低減した後の前記高位合成処理を繰り返す請求項2に記載の高位合成装置。
  6. 前記対処決定部は、
    前記第1の性能に基づいて、前記データハザード箇所に前記回路のパイプライン化の性能を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第1の全体回路性能を算出するとともに、前記データハザード箇所の動作周波数を落とす方式を施した場合の回路全体のレイテンシと回路規模とを含む第2の全体回路性能を算出し、前記第1の全体回路性能と前記第2の全体回路性能とに基づいて前記対処方式を決定する請求項3から5のいずれか1項に記載の高位合成装置。
  7. 前記対処決定部は、
    前記回路が直列型か並列型かを示すロジックアーキテクチャ情報に基づいて、前記対処方式の決定方法を選択する請求項3から6のいずれか1項に記載の高位合成装置。
  8. 前記対処決定部は、
    前記対処方式を行って前記高位合成部に前記高位合成処理を再度行わせる請求項3から7のいずれか1項に記載の高位合成装置。
  9. 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置の高位合成方法において、
    データハザード検出部が、データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出し、
    対処決定部が、前記回路のレイテンシと回路規模を含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する高位合成方法。
  10. 回路の動作を記述した動作記述に対して高位合成処理を行い、前記回路を動作させるハードウェア記述言語を出力する高位合成装置の高位合成プログラムにおいて、
    データハザードが発生した前記動作記述の箇所をデータハザード箇所として検出するデータハザード検出処理と、
    前記回路のレイテンシと回路規模を含む回路性能の見積もり値である性能見積もり値に基づいて、前記回路のパイプライン化の性能を落とす方式と、前記データハザード箇所の動作周波数を落とす方式と、前記回路のパイプライン化の性能を落とす方式と前記データハザード箇所の動作周波数を落とす方式との組み合わせから成る方式とのいずれかを、前記データハザード箇所のデータハザードを解消する対処方式として決定する対処決定処理と
    をコンピュータである前記高位合成装置に実行させる高位合成プログラム。
JP2020510172A 2018-03-26 2018-03-26 高位合成装置、高位合成方法および高位合成プログラム Active JP6735951B2 (ja)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023032348A (ja) * 2021-08-26 2023-03-09 国立大学法人 東京大学 情報処理装置、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
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 三菱電機株式会社 高位合成装置、高位合成方法及び高位合成プログラム

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