JP2009223554A - 動作合成装置、動作合成方法、及び、プログラム - Google Patents

動作合成装置、動作合成方法、及び、プログラム Download PDF

Info

Publication number
JP2009223554A
JP2009223554A JP2008066495A JP2008066495A JP2009223554A JP 2009223554 A JP2009223554 A JP 2009223554A JP 2008066495 A JP2008066495 A JP 2008066495A JP 2008066495 A JP2008066495 A JP 2008066495A JP 2009223554 A JP2009223554 A JP 2009223554A
Authority
JP
Japan
Prior art keywords
unit
description
bit width
storage unit
propagation rule
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.)
Pending
Application number
JP2008066495A
Other languages
English (en)
Inventor
Hiroshi Sakai
完 酒井
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008066495A priority Critical patent/JP2009223554A/ja
Publication of JP2009223554A publication Critical patent/JP2009223554A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】C/C++言語プログラム等の高位言語で記述された浮動小数点演算を含む動作から、その動作を実現するハードウェア記述を生成するのに好適な動作合成装置等を提供する。
【解決手段】文字列情報からなる動作記述と、前記動作記述に対応付けられる演算の伝播規則が記憶され、前記演算として定義される浮動小数点演算を仮数部と指数部とに変換し、当該仮数部と当該指数部とに基づき、冗長ビット幅を削除した冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する。
【選択図】図4

Description

本発明は、C/C++言語プログラム等の高位言語で記述された浮動小数点演算を含む動作から、その動作を実現するハードウェア記述を生成するのに好適な動作合成装置、動作合成方法、及び、これらをコンピュータにて実現するためのプログラムに関する。
近年、市場に流通する機器の多くにLSI(Large Scale Integration)が搭載されてきている。半導体技術の進歩に伴って、市場に流通する機器のライフサイクルは、ますます短くなってきている。そのため、半導体メーカによっては、短期間で高性能なシステムLSIを開発することが重要となってきている。
短期間でシステムLSIを開発する技術として、動作合成ツールを用いたシステムLSIの開発技術が知られている。動作合成ツールとは、ハードウェアの動作を表現するアルゴリズムから、論理合成ツールに入力されるRTL(Register Transfer Level)記述を生成するEDA(Electronic Design Automation)ツールである。
動作合成ツールによるシステムLSIの開発期間を短縮する手法としては、例えば、ソフトウェア部分とハードウェア部分とを含めたシステム使用をC/C++言語などの動作記述レベルで記述し、システムレベルでの検証を行うソフトウェア/ハードウェア協調検証で使用された記述(C/C++言語などで記述されたシステム仕様のハードウェア部分の記述)を用いて動作合成を行う技術が知られている。
信号処理等で用いられている浮動小数点演算を動作合成ツールに入力し、ハードウェアとして実現する場合、動作記述中にライブラリ化された浮動小数点演算を記述することで、動作合成ツールへの入力を可能とする技術が知られている(例えば、特許文献1参照)。
動作合成においては、動作記述に記載されている演算に着目し、スケジューリング・共有化といった最適化処理を行っている。動作合成におけるスケジューリングとは、動作記述に基づいて、開発対象のLSIで実行される各演算の並列化や逐次化を行う処理である。動作合成におけるスケジューリング・共有化の対象となる演算器が演算ライブラリに備えられている。
また、動作合成では、アロケーションを行うことで、演算器の共有化が行われている。アロケーションとは、スケジューリングされた各演算を、演算器に割り当てるための処理である。
演算ライブラリは、動作合成におけるスケジューリング・共有化が可能な単純な演算器(加算器、減算器、乗算器等)で構成されている(例えば、特許文献1参照)。これらの演算器は、動作合成において、スケジューリング・共有化の対象となる。単純な演算器で構成されている場合、動作合成時に演算器のスケジューリング・共有化が制限されて自由度が低下することはない。
特開2007−316731号公報
しかしながら、特許文献1に開示されている構成では、一般にIEEE754に基づく浮動小数点演算を比較器・加減算器・乗算器等を用いて合成する場合、莫大なビット幅の演算器が要求されることが多く、スケジューリング・共有化を効果的に行うことが困難な場合があった。従って、動作合成によるスケジューリング・共有化を効率的に行うのに好適な新たな方法が求められている。
本発明は、上記問題に鑑みてなされたものであり、C/C++言語プログラム等の高位言語で記述された浮動小数点演算を含む動作から、その動作を実現するハードウェア記述を生成するのに好適な動作合成装置、動作合成方法、及び、これらをコンピュータにて実現するためのプログラムを提供することを目的とする。
また、動作合成によるスケジューリング・共有化を効率的に行うのに好適な動作合成装置等を提供することを目的とする。
上記の目的を達成するため、本発明の第1の観点に係る動作合成装置は、
文字列情報からなる動作記述が記憶される動作記述記憶部と、
前記動作記述に対応付けられる演算の伝播規則が記憶される伝播規則記憶部と、
前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換部と、
前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除部と、
前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力部と、
を備えることを特徴とする。
上記の目的を達成するため、本発明の第2の観点に係る動作合成方法は、
動作記述記憶部と、伝播規則記憶部と、変換部と、削除部と、出力部と、を有する動作合成装置にて実行される動作合成方法であって、
前記動作記述記憶部には、文字列情報からなる動作記述が記憶され、
前記伝播規則記憶部には、前記動作記述に対応付けられる演算の伝播規則が記憶され、
前記変換部は、前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換工程と、
前記削除部は、前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除工程と、
前記出力部は、前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力工程と、
を備えることを特徴とする。
上記の目的を達成するため、本発明の第3の観点に係るプログラムは、
コンピュータを、
文字列情報からなる動作記述が記憶される動作記述記憶部と、
前記動作記述に対応付けられる演算の伝播規則が記憶される伝播規則記憶部と、
前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換部と、
前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除部と、
前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力部と、
として機能させることを特徴とする。
本発明によれば、動作合成によるスケジューリング・共有化を効率的に行うことができる。
以下では、本発明の動作合成装置の実施形態の一つについて説明するが、当該実施形態は本発明の原理の理解を容易にするためのものであり、本発明の範囲は、下記の実施形態に限られるものではなく、当業者が以下の実施形態の構成を適宜置換した他の実施形態も、本発明の範囲に含まれる。
なお、以下の実施形態において、動作レベル(アルゴリズム・レベル)の記述をアルゴリズム記述と呼ぶ。また、RTLの記述をRTL記述と呼ぶ。また、ゲート・レベルの記述を論理記述と呼ぶ。従って、動作記述からRTL記述への展開を動作合成と呼び、RTL記述からゲート・レベルへの展開を論理合成と呼ぶ。さらに、以下に述べる実施形態では、アルゴリズム記述がC/C++言語を用いて記述されている場合を例示して本願発明の説明を行う。なお、これは本願発明に適用されるアルゴリズム記述がC/C++言語に制限されることを意味するものではない。
本発明の実施の形態に係る動作合成装置について、図1を参照して詳細に説明する。
動作合成装置10は、本装置10内に動作記述記憶部20と、動作合成処理部30と、出力RTL記憶部40と、浮動小数点位置情報記憶部50と、RTLシミュレータ部60と、演算伝播規則記憶部70と、入出力インタフェイス部80と、制御部90と、を備える。
動作合成装置10には、本装置10内に各種情報を入力するための入力部100と、本装置10からの各種情報を出力するための出力部110と、が接続されている。
入力部100は、例えば、キーボード、マウスポインタ、タッチパネル等から構成される。
出力部110は、例えば、ディスプレイ装置、印刷装置等から構成される。
なお、動作合成装置10と、入力部100及び出力部110とを一体の装置とすることもできる。
動作記述記憶部20は、動作合成によって生成されたRTL記述を記憶する。
動作合成処理部30は、RTL記述に基づいて動作合成を行う。
出力RTL記憶部40は、後述するRTL情報出力部36が出力するRTL記述を記憶する。
浮動小数点位置情報記憶部50は、後述する仮数部・指数部変換部32が変換する各浮動小数点の位置を記憶する。
RTLシミュレータ部60は、RTL記述の論理機能やタイミングを検証する。
演算伝播規則記憶部70は、各演算のビット幅、レンジ値の伝播規則を記憶する。
入出力インタフェイス部80は、入力部100及び出力部110と後述する制御部90との間で実行されるデータ通信を制御する。
制御部90は、CPU(Central Processing Unit)(図示せず)、メモリ(図示せず)、大容量記憶装置(図示せず)等を備える。CPU等はバスを介してそれぞれ接続されている。制御部90は、各部の制御を行う。
図2は、動作合成処理部30のプログラム構成を示したものである。動作合成処理部30は、字句解析・構文解析部31と、仮数部・指数部変換部32と、冗長ビット幅削除部33と、スケジューリング部34と、バインディング部35と、RTL情報出力部36と、を備える。
字句解析・構文解析部31は、入力部100から与えられた入力文字列(高位合成コンフィギュレーション指定情報)を動作記述記憶部20に保存し、当該入力文字列の字句解析・構文解析を行う。
仮数部・指数部変換部32は、各浮動小数点演算の変換を行い、仮数部・指数部に分割する処理を行う。
冗長ビット幅削除部33は、各変数(ユーザが定義した変数・内部で自動生成した変数)の取り得る値を静的に解析し、冗長なビット幅の削減処理を行う。
スケジューリング部34及びバインディング部35は、合成に必要な演算器/レジスタ資源の割当て・共有を行う。
RTL情報出力部36は、RTL出力処理および各浮動小数点演算に関する動作記述・RTL記述間対応情報の出力処理を行う。
図3は、冗長ビット幅削除部33をさらに詳細化したプログラム構成を示したものである。
CDFG(Control Data Flow Graph)生成部33aは、仮数部・指数部に分割する処理後、CDFGを生成する。
前向き解析部33bは、CDFGと演算伝播規則記憶部70に記憶された情報とを用いて、データフローを前向きに解析し、冗長なビット幅の削減を行う。
後向き解析部33cは、CDFGと演算伝播規則記憶部70に記憶された情報とを用いて、データフローを後向きに解析し、冗長なビット幅の削減を行う。
次に、本実施形態に係る動作合成装置10の動作について、図4を参照して説明する。
まず、字句解析・構文解析部31は、入力部100を介してユーザが記述したC/C++言語等の浮動小数点演算を含む動作記述を受け付ける。また、字句解析・構文解析部31は、エンティティとアーキテクチャとの対応関係が指定されたコンフィグレーション指定情報に基づいて、当該動作記述の字句・構文解析を行う(ステップS11)。
図5は、入力動作記述である浮動小数点型について定めたものである。
定義型として、unsigned型であるufloat、及びsigned型であるsfloatの2種類がある。また、各引数には、指数部のビット幅(ebw)、仮数部のビット幅(mbw)、及び丸めモード(t-mode)の指定が可能である。丸めモードについては、unbiased(最近値への丸め)、towards zero(ゼロ方向への丸め)、towards positive infinity(正の無限大方向への丸め)、及びtowards negative infinity(負の無限大方向への丸め)の4種類の指定が可能である。また、演算は、加算・減算・乗算・除算の指定が可能である。
丸めモードは、ビット幅を削減する際に重要な情報であり、導出されるビット解析(すなわち合成回路の品質)に大きな影響を与える。また、丸めモードの選択性がユーザに与えられない場合、ユーザは演算精度に関する調節を行うことができないため、設計の自由度及び利便性が著しく低下することとなる。
なお、本フォーマットでは、正規化数のみを扱うものとし、非正規化数は対象外とする。
次に、ステップS11において、字句・構文解析が処理された後、仮数部・指数部変換部32は、各浮動小数点演算の変換を行い、仮数部・指数部に分割する処理を行う(ステップS12)。
図6は、仮数部・指数部の変換(ステップS12)を、浮動小数点加算の場合について具現化したものである。
ここでは、図7に示すように、ufloat型の変数x(仮数部c1 bit、指数部c2 bit)、y(仮数部c3 bit、指数部c4 bit)、z(仮数部c5 bit、指数部c6 bit)が定義されたとき、z = x + yの加算処理が行われる。
以下では、図6に示す各(1)〜(5)について説明を行う。
(1)では、ufloat型の変数x、y、zについて、指数部を示す変数と仮数部を示す変数とに分割が行われる。
(2)及び(3)では、xの指数部の値とyの指数部の値とを比較し、両者の小数点位置を合わせる処理が行われる。
(4)では、zの指数部・仮数部の計算が行われる。また、キャリーを考慮して、x + yの結果が計算され、zの指数部・仮数部が求められる。
(5)では、代入部(z)の型において指定した丸めモードに従い、丸め処理が行われる。
また、図8は、仮数部・指数部の変換(ステップS12)を、浮動小数点乗算の場合について具現化したものである。
以下では、図8に示す仮数部・指数部の変換処理について、各(1)〜(3)について説明を行う。
(1)では、ufloat型の変数x、y、zについて、指数部を示す変数と仮数部を示す変数とに分割が行われる
(2)では、指数部・仮数部の計算処理が行われる。仮数部については、xとyの仮数部に関する乗算処理が行われ、指数部については、xとyの指数部に関する加算処理が行われる。
なお、このフェーズで、zの指数部が決定される。
(3)では、丸め処理が行われる。zの型に指定した丸めモードに従って、zの仮数部が決定される。
次に、冗長ビット幅削除部33は、各変数(ユーザが定義した変数・内部で自動生成した変数)の取り得る値を静的に解析し、冗長なビット幅の削減処理を行う(ステップS13)。
図9は、冗長ビット幅の削除処理(ステップS13)を、詳細化したフローチャートである。
CDFG生成部33aは、仮数部・指数部の変換処理部後、記述に基づいてCDFGを生成する(ステップS21)。
次に、前向き解析部33bは、コントロールフローグラフ上の後向き枝(back edge)を辿り、演算伝播規則記憶部70に記憶された各演算のビット幅(もしくはレンジ値)伝播規則(例えば、図10及び図11に示す加算・乗算)に従って、各変数の取り得るビット幅(もしくはレンジ値)を計算し、不動点(fixed point)に到達するまで何回も繰り返す(ステップS22)。fixed pointに到達した時に、各変数の取り得るビット幅が求まり、その(削減された)新しいビット幅に更新される。
次に、後向き解析部33cは、コントロールフローグラフ上の前向き枝(forward edge)を辿り、演算伝播規則記憶部70に記憶された各演算のビット幅(もしくはレンジ値)伝播規則(例えば、図12から図15に示す加算・乗算)に従って、各変数の取り得るビット幅(もしくはレンジ値)を計算し、不動点(fixed point)に到達するまで何回も繰り返す(ステップS23)。
ただし、各変数のビット幅は、前向き解析終了後の結果が反映された状況で、後向き解析を開始するものとする。fixed pointに到達した時に、各変数の取り得るビット幅が求まり、その(削減された)新しいビット幅に更新される。
なお、本処理で更新されたビット幅が最終的に決定されるビット幅となる。
たとえば、unsigned型の1ビットの変数x、y、zが与えられ、計算式w = (x + y) + zが存在する場合、変数wが必要とするビット幅について説明する。
従来、x + yの計算結果を保持するために必要なビット幅は2ビット(1 bit + 1bit = 2 bit)である。また、(x + y) + zの計算結果を保持するために必要なビット幅は3ビット(2 bit + 1 bit = 3 bit)である。従って、変数wに必要なビット幅は3ビットとなる。
一方、本発明に係る手法では、レンジ値に基づいて各変数の必要となるビットを導出することができる。
x + yが取り得るレンジ値は、[0, 2]([0, 1] + [0, 1] = [0, 2])となる。また、(x + y) + zの計算結果を保持するために必要なレンジ値は、[0, 3]([0, 2] + [0, 1] = [0, 3])である。従って、変数wに必要なビット幅は2ビットとなる。
さらに、データフローを下から上へ辿って、各変数のビット幅を決定する分析(後向き解析)では、解析精度は大きく異なる。
z = x >> yの右シフト(>>)処理が存在する場合を考える。ただし、zは出力変数とする。
従来、xは、出力変数zを7ビット左シフトした結果であるため、11ビット(4 bit + 7 bit = 11 bit)と計算される。
一方、xは出力変数z(レンジ値[0, 15])を4ビット左シフトした結果であるため、xの取り得る値は、[0, 255]すなわち8ビットと計算される。
次に、スケジューリング部34及びバインディング部35は、それぞれスケジューリングを行い、バインディングを実施する。さらに、スケジューリング部34及びバインディング部35は、合成に必要な演算器/レジスタ資源の割当て・共有を行う(ステップS14)。
最後に、RTL情報出力部36は、RTL出力処理、および各浮動小数点演算に関する動作記述・RTL記述間の対応情報の出力を行う(ステップS15)。
以上説明したように、本発明によれば、より柔軟かつ実用的な浮動小数点型を導入し、またデータフロー解析に基づく冗長なビット幅削減処理の導入処理を動作合成ツール内で行うことで、浮動小数点演算を含む動作記述から、より高性能な合成回路を出力することができる。
また、動作合成によるスケジューリング・共有化を効率的に行うことができる。
本実施形態に係る動作合成装置の構成を示すブロック図である。 動作合成処理部の構成を示す図である。 冗長ビット幅削除部の構成を示す図である。 動作合成装置の動作を説明するフローチャートである。 浮動小数点型の実現例を示す図である。 仮数部・指数部の変換処理における、浮動小数点加算の適用例を示す図である。 仮数部・指数部の変換処理前における、浮動小数点加算記述を示す図である。 仮数部・指数部の変換処理における、浮動小数点乗算の適用例を示す図である。 冗長ビット幅を削除する動作を説明するフローチャートである。 前向き解析における、unsigned型/signed型共通の加算の伝播規則例を示す図である。 前向き解析における、unsigned型/signed型共通の乗算の伝播規則例を示す図である。 後向き解析における、signed型の加算の伝播規則例を示す図である。 後向き解析における、unsigned型の加算の伝播規則例を示す図である。 後向き解析における、signed型の乗算の伝播規則例を示す図である。 後向き解析における、signed型の乗算の伝播規則例を示す図である。
符号の説明
10 動作合成装置
20 動作記述記憶部
30 動作合成処理部
31 文字解析・構文解析部
32 仮数部・指数部変換部
33 冗長ビット幅削除部
33a CDFG生成部
33b 前向き解析部
33c 後向き解析部
34 スケジューリング部
35 バインディング部
36 RTL情報出力部
40 出力RTL記憶部
50 浮動小数点位置情報記憶部
60 RTLシミュレータ部
70 伝残伝播規則記憶部
80 入出力インタフェイス部
90 制御部
100 入力部
110 出力部

Claims (6)

  1. 文字列情報からなる動作記述が記憶される動作記述記憶部と、
    前記動作記述に対応付けられる演算の伝播規則が記憶される伝播規則記憶部と、
    前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換部と、
    前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除部と、
    前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力部と、
    を備えることを特徴とする動作合成装置。
  2. 前記削除部は、CDFG(Control Data Flow Graph)を生成するCDFG生成部と、前向き解析部と、を備え、
    前記前向き解析部は、前記CDFG生成部が生成した前記CDFG上の後向き枝を辿り、前記伝播規則記憶部に記憶された演算のビット幅又はレンジ値の伝播規則に従って、不動点に到達するまで変数の取り得るビット幅又はレンジ値を算出する計算を繰り返す、
    ことを特徴とする請求項1に記載の動作合成装置。
  3. 前記削除部は、後向き解析部と、をさらに備え、
    前記後向き解析部は、前記前向き解析部が計算した結果に基づき、前記CDFG生成部が生成した前記CDFG上の前向き枝を辿り、前記伝播規則記憶部に記憶された演算のビット幅又はレンジ値の伝播規則に従って、不動点に到達するまで変数の取り得るビット幅又はレンジ値を算出する計算を繰り返す、
    ことを特徴とする請求項2に記載の動作合成装置。
  4. 前記変換部は、前記浮動小数点演算を丸めるモードとして、最近値への丸め、ゼロ方向への丸め、正の無限大方向への丸め、又は、負の無限大方向への丸めのうち少なくともいずれか1つモードを備える、
    ことを特徴とする請求項1乃至3のいずれか1項に記載の動作合成装置。
  5. 動作記述記憶部と、伝播規則記憶部と、変換部と、削除部と、出力部と、を有する動作合成装置にて実行される動作合成方法であって、
    前記動作記述記憶部には、文字列情報からなる動作記述が記憶され、
    前記伝播規則記憶部には、前記動作記述に対応付けられる演算の伝播規則が記憶され、
    前記変換部は、前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換工程と、
    前記削除部は、前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除工程と、
    前記出力部は、前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力工程と、
    を備えることを特徴とする動作合成方法。
  6. コンピュータを、
    文字列情報からなる動作記述が記憶される動作記述記憶部と、
    前記動作記述に対応付けられる演算の伝播規則が記憶される伝播規則記憶部と、
    前記演算として定義される浮動小数点演算を仮数部と指数部とに変換する変換部と、
    前記変換部が変換した前記仮数部と前記指数部とに基づき、冗長ビット幅を削除する削除部と、
    前記削除部が削除した前記冗長ビット幅に基づく前記浮動小数点演算に対応付けられた動作記述を出力する出力部と、
    として機能させることを特徴とするプログラム。
JP2008066495A 2008-03-14 2008-03-14 動作合成装置、動作合成方法、及び、プログラム Pending JP2009223554A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008066495A JP2009223554A (ja) 2008-03-14 2008-03-14 動作合成装置、動作合成方法、及び、プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008066495A JP2009223554A (ja) 2008-03-14 2008-03-14 動作合成装置、動作合成方法、及び、プログラム

Publications (1)

Publication Number Publication Date
JP2009223554A true JP2009223554A (ja) 2009-10-01

Family

ID=41240273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008066495A Pending JP2009223554A (ja) 2008-03-14 2008-03-14 動作合成装置、動作合成方法、及び、プログラム

Country Status (1)

Country Link
JP (1) JP2009223554A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232963A (ja) * 2010-04-27 2011-11-17 Signal Process Logic Inc 論理設計支援装置およびこのためのソフトウエア

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011232963A (ja) * 2010-04-27 2011-11-17 Signal Process Logic Inc 論理設計支援装置およびこのためのソフトウエア

Similar Documents

Publication Publication Date Title
US10140099B2 (en) Systems and methods for generating code from executable models with floating point data
Govindu et al. A library of parameterizable floating-point cores for FPGAs and their application to scientific computing
Liang et al. Floating point unit generation and evaluation for FPGAs
Fang et al. Toward efficient static analysis of finite-precision effects in DSP applications via affine arithmetic modeling
Su et al. Performance optimization using variable-latency design style
US10078717B1 (en) Systems and methods for estimating performance characteristics of hardware implementations of executable models
Park et al. A multi-granularity power modeling methodology for embedded processors
JP2001092636A (ja) 第1、第2、第3オペランドに浮動小数点演算を適用するためのデータ処理装置および方法
JP5014920B2 (ja) 回路設計方法、ならびにその方法により製造される集積回路
Zimmermann VHDL library of arithmetic units
Cong et al. Accelerating monte carlo based SSTA using FPGA
Gao et al. Energy efficient runtime approximate computing on data flow graphs
Kim et al. An automated framework for accelerating numerical algorithms on reconfigurable platforms using algorithmic/architectural optimization
JP2009223554A (ja) 動作合成装置、動作合成方法、及び、プログラム
US8843862B2 (en) Method and apparatus for creating and changing logic representations in a logic design using arithmetic flexibility of numeric formats for data
Tsoi et al. An arithmetic library and its application to the N-body problem
US20070027946A1 (en) Method and system for high-speed floating-point operations and related computer program product
Alecsa et al. FPGA implementation of a matrix structure for integer division
US20070277142A1 (en) LSI design supporting apparatus and LSI design supporting program used for designing and manufacturing LSI
Seidel Formal verification of an iterative low-power x86 floating-point multiplier with redundant feedback
Chung et al. Tools and techniques for efficient high-level system design on FPGAs
WO2018150588A1 (ja) 情報処理装置、情報処理方法及び情報処理プログラム
Murillo et al. Generating Posit-Based Accelerators With High-Level Synthesis
US11755801B1 (en) Data flow graph refinement using range set information for improved synthesis
Wang et al. A framework for core-level modeling and design of reconfigurable computing algorithms