JP6407181B2 - 設計支援装置、設計支援方法及び設計支援プログラム - Google Patents
設計支援装置、設計支援方法及び設計支援プログラム Download PDFInfo
- Publication number
- JP6407181B2 JP6407181B2 JP2016042514A JP2016042514A JP6407181B2 JP 6407181 B2 JP6407181 B2 JP 6407181B2 JP 2016042514 A JP2016042514 A JP 2016042514A JP 2016042514 A JP2016042514 A JP 2016042514A JP 6407181 B2 JP6407181 B2 JP 6407181B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic expression
- latency
- design support
- analysis unit
- support apparatus
- 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.)
- Expired - Fee Related
Links
- 238000013461 design Methods 0.000 title claims description 88
- 238000000034 method Methods 0.000 title claims description 85
- 230000014509 gene expression Effects 0.000 claims description 171
- 238000004364 calculation method Methods 0.000 claims description 79
- 238000000605 extraction Methods 0.000 claims description 50
- 238000012545 processing Methods 0.000 claims description 47
- 239000000284 extract Substances 0.000 claims description 15
- 238000006243 chemical reaction Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 description 26
- 230000015572 biosynthetic process Effects 0.000 description 18
- 238000010195 expression analysis Methods 0.000 description 17
- 238000003786 synthesis reaction Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
- Stored Programmes (AREA)
Description
ループ回数が回数閾値以下である演算式をソースコードから抽出し、前記演算式を抽出演算式として出力する解析部と、
前記解析部から出力された前記抽出演算式がハードウェア記述言語に変換された変換演算式におけるレイテンシを、演算式レイテンシとして記憶部に保管するレイテンシ保管部と、
前記演算式レイテンシがレイテンシ閾値以上の場合に、前記抽出演算式を判定結果として出力する判定部とを備えた。
***構成の説明***
図1を用いて、本実施の形態に係る設計支援装置100の構成について説明する。
本実施の形態において、設計支援装置100は、コンピュータである。設計支援装置100は、プロセッサ910、記憶装置920、入力装置930、出力装置940といったハードウェアを備える。記憶装置920は、補助記憶装置921とメモリ922とを有する。
以下の説明では、設計支援装置100におけるソースコード取得部110と、解析部120と、抽出結果保持部130と、高位合成部140と、判定部150の機能を、設計支援装置100の「部」の機能という。解析部120の機能とは、演算式解析部121と、ループ解析部122と、変数解析部123と、特定演算解析部124と、演算子解析部125の機能である。
設計支援装置100の「部」の機能は、ソフトウェアで実現される。
プロセッサ910は、プロセッシングを行うIC(Integrated Circuit)である。プロセッサ910は、具体的には、CPU(Central Processing Unit)である。
なお、「部」の機能を実現するプログラムを設計支援プログラムともいう。設計支援プログラムは、「部」として説明している機能を実現するプログラムである。また、設計支援プログラムプロダクトと称されるものは、設計支援プログラムが記録された記憶媒体及び記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
本実施の形態に係る設計支援装置100の動作について説明する。
図2を用いて、本実施の形態に係る設計支援装置100の設計支援方法510及び設計支援プログラム520による設計支援処理S100の概要について説明する。
設計支援処理S100は、ソースコード取得処理S110と、解析処理S120と、レイテンシ保管処理S130と、判定処理S140とを備える。
図3を用いて、本実施の形態に係る解析処理S120について説明する。
ステップS121において、解析部120の演算式解析部121は、ソースコード180の文を解析し、等式(=)を含む演算式があるか否かを判定する。演算式解析部121は、文に等式を含む演算式がある場合、ステップS122に進む。演算式解析部121は、文に等式を含む演算式がない場合、処理を終了する。
なお、ループ解析部122は、演算式のループ回数を解析することにより、演算式をテーブル化した場合のテーブルサイズを判断してもよい。この場合、記憶部170にテーブルのライン数を記憶しておき、演算式のテーブルサイズ(ループ回数)がライン数以下であれば、ステップS123に進む。
また、記憶部170は、入力装置930を介して、ユーザから入力された回数閾値172を予め記憶する。回数閾値172は、ユーザにより指定可能なパラメータである。
記憶部170は、入力装置930を介して、ユーザから入力された変数閾値173を予め記憶する。変数閾値173は、ユーザにより指定可能なパラメータである。
記憶部170は、入力装置930を介して、ユーザから入力された特定の演算174を予め記憶する。特定の演算174は、ユーザにより指定可能なパラメータである。
記憶部170は、入力装置930を介して、ユーザから入力された演算子閾値175を予め記憶する。演算子閾値175は、ユーザにより指定可能なパラメータである。
図4を用いて、本実施の形態に係るレイテンシ保管処理S130について説明する。
ステップS131において、高位合成部140は、解析処理S120により記憶部170に記憶された抽出演算式181を読み出す。高位合成部140は、高位言語で記述されている抽出演算式181を、ハードウェア記述言語に変換する。具体的には、高位合成部140は、抽出演算式181を高位合成ツールに入力することにより、抽出演算式181をハードウェア記述言語に変換する。
ステップS132において、高位合成部140は、ハードウェア記述言語で記載された変換演算式810におけるレイテンシを演算式レイテンシ183として出力する。高位合成部140は、変換演算式810と演算式レイテンシ183とをレイテンシ情報として出力する。具体的には、高位合成部140は、抽出演算式181を高位合成ツールに入力し、抽出演算式181がハードウェア記述言語で記載された変換演算式810と、変換演算式810におけるレイテンシである演算式レイテンシ183とを出力する。
ステップS133において、レイテンシ保管部182は、抽出演算式181がハードウェア記述言語に変換された変換演算式810における演算式レイテンシ183を、記憶部170に記憶する。
図5を用いて、本実施の形態に係る判定処理S140について説明する。
ステップS141において、判定部150は、記憶部170に記憶されている演算式レイテンシ183とレイテンシ閾値176とを読み出し、演算式レイテンシ183とレイテンシ閾値176とを比較する。
演算式レイテンシ183がレイテンシ閾値176以上の場合、処理はステップS142に進む。
ステップS142において、判定部150は、抽出演算式181をテーブル化演算式185として出力する。すなわち、判定部150は、抽出演算式181をテーブル化演算式185として記憶部170に記憶する。
演算式レイテンシ183がレイテンシ閾値176より小さい場合、処理を終了する。
以上のように、設計支援処理S100によれば、テーブル化に適している抽出演算式181から、演算式レイテンシ183がレイテンシ閾値176以上の演算子がテーブル化演算式185として抽出される。テーブル化演算式185は、判定部150の判定処理S140による判定結果184である。
図6及び図7は、ソースコード180の具体例を示している。また、回数閾値172=30、変数閾値173=1、演算子閾値175=5であるものとする。
ステップS121において、演算式解析部121は、図6のソースコードから、演算式b[i]=7*sqrt(5*(i+1)−3)+10;を、等式を含む演算式として抽出する。処理はステップS122に進む。
ステップS122において、ループ解析部122は、演算式のループ回数を解析し、ループ回数(すなわち、テーブルサイズ)は10であると判定する。ループ解析部122は、演算式のループ回数は10であり、回数閾値172は30であるため、ループ回数≦回数閾値172を満たすと判定する。処理はステップS123に進む。
ステップS123において、変数解析部123は、演算式の変数の数を解析し、変数(演算式中のiが該当)の数は1個であると判定する。変数解析部123は、演算式の変数の数は1であり、変数閾値173は1であるため、変数の数≦変数閾値173を満たすと判定する。処理はステップS124に進む。
ステップS124において、特定演算解析部124は、演算式に含まれる演算の種類を解析し、演算式に特定の演算174(ここではsqrtが該当)が含まれると判定する。特定演算解析部124は、演算式に特定の演算sqrtが含まれると判定したので、処理はステップS125に進む。
ステップS125において、演算子解析部125は、演算式の演算子を解析し、演算子の数は5個(乗算2個、減算1個、加算1個、平方根1個)と判定する。演算子解析部125は、演算子の数は5であり、演算子閾値175は5であるため、演算子の数≧演算子閾値175を満たすと判定する。演算子解析部125は、この演算式b[i]=7*sqrt(5*(i+1)−3)+10;を、抽出演算式181として出力する。
ステップS141において、判定部150は、演算式レイテンシ183が10であり、レイテンシ閾値176が5であるため、演算式レイテンシ183≧レイテンシ閾値176を満たすと判定する。処理はステップS142に進む。
ステップS142において、判定部150は、抽出演算式181(b[i]=7*sqrt(5*(i+1)−3)+10;)がテーブル化する演算式であると判定し、抽出演算式181をテーブル化演算式185として記憶部170に記憶する。
ステップS121において、演算式解析部121は、図7のソースコードから、演算式z[x][y]=8*y+x;を、等式を含む演算式として抽出する。処理はステップS122に進む。
ステップS122において、ループ解析部122は、演算式のループ回数を解析し、ループ回数(すなわち、テーブルサイズ)は200であると判定する。ループ解析部122は、演算式のループ回数は200であり、回数閾値172は30であるため、ループ回数≦回数閾値172を満たさないと判定し、処理を終了する。
このように、ループ回数が多すぎる演算式については、テーブル化によるレイテンシの削減が見込めないため、テーブル化する演算子の候補から外している。
図8では、図6のソースコードに含まれるテーブル化演算式185(b[i]=7*sqrt(5*(i+1)−3)+10;)をテーブル化したものである。テーブル化演算式185(b[i]=7*sqrt(5*(i+1)−3)+10;)において、変数iの取り得る値(0から9までの整数)の出力値b[i]を算出することにより、図8に示すテーブルが得られる。
図9は、本実施の形態に係るテーブル化演算式185をテーブル化する際のプラグマ記述例を示す図である。図9では「#pragma b=table」をプラグマとしている。
本実施の形態では、演算式解析部121の処理、ループ解析部122の処理、変数解析部123の処理、特定演算解析部124の処理、演算子解析部125の処理の順に処理を行ったが、処理の順番は上記の順番に限らない。
以下に、解析部120による解析処理S120のバリエーションについて説明する。
図10を用いて、本実施の形態の変形例に係る設計支援装置100xの構成について説明する。
図10に示すように、設計支援装置100xは、処理回路909、入力装置930、出力装置940といったハードウェアを備える。
以上のように、本実施の形態に係る設計支援装置100によれば、演算式のループ回数を解析すると共にレイテンシの大きい演算式を抽出するため、テーブル化をすれば効率的にレイテンシを小さくすることができるテーブル化演算式を的確に抽出することができる。すなわち、本実施の形態に係る設計支援装置100によれば、ループ回数が多過ぎてテーブル化に適さない演算式はテーブル化演算式185から省くことができるので、テーブル化に適した演算式を的確に抽出することができる。
なお、上記の実施の形態は、本質的に好ましい例示であって、本発明、その適用物や用途の範囲を制限することを意図するものではなく、必要に応じて種々の変更が可能である。
Claims (10)
- ループ回数が回数閾値以下である演算式をソースコードから抽出し、前記演算式を抽出演算式として出力する解析部と、
前記解析部から出力された前記抽出演算式がハードウェア記述言語に変換された変換演算式におけるレイテンシを、演算式レイテンシとして記憶部に保管するレイテンシ保管部と、
前記演算式レイテンシとレイテンシ閾値とを比較し、前記演算式レイテンシがレイテンシ閾値以上の場合に、前記抽出演算式をテーブル化の対象であるテーブル化演算式と判定し、前記抽出演算式を判定結果として出力する判定部と
を備えた設計支援装置。 - 前記解析部は、
前記演算式に含まれる変数の数が変数閾値以下である場合に、前記演算式を前記抽出演算式として出力する請求項1に記載の設計支援装置。 - 前記解析部は、
前記演算式が特定の演算を含む場合に、前記演算式を前記抽出演算式として出力する請求項1又は2に記載の設計支援装置。 - 前記解析部は、
前記演算式に含まれる演算子の数が演算子閾値以上である場合に、前記演算式を前記抽出演算式として出力する請求項1から3のいずれか1項に記載の設計支援装置。 - 前記設計支援装置は、入力装置を備え、
前記記憶部は、
前記入力装置を介して入力された前記回数閾値を記憶すると共に、前記入力装置を介して入力された前記レイテンシ閾値を記憶する請求項1から4のいずれか1項に記載の設計支援装置。 - 前記設計支援装置は、入力装置を備え、
前記記憶部は、
前記入力装置を介して入力された前記変数閾値を記憶する請求項2に記載の設計支援装置。 - 前記設計支援装置は、入力装置を備え、
前記記憶部は、
前記入力装置を介して入力された前記特定の演算を記憶する請求項3に記載の設計支援装置。 - 前記設計支援装置は、入力装置を備え、
前記記憶部は、
前記入力装置を介して入力された前記演算子閾値を記憶する請求項4に記載の設計支援装置。 - 解析部が、ループ回数が回数閾値以下である演算式をソースコードから抽出し、前記演算式を抽出演算式として出力し、
レイテンシ保管部が、前記解析部から出力された前記抽出演算式がハードウェア記述言語に変換された変換演算式におけるレイテンシを、演算式レイテンシとして記憶部に保持し、
判定部が、前記演算式レイテンシとレイテンシ閾値とを比較し、前記演算式レイテンシがレイテンシ閾値以上の場合に、前記抽出演算式をテーブル化の対象であるテーブル化演算式と判定し、前記抽出演算式を判定結果として出力する設計支援方法。 - ループ回数が回数閾値以下である演算式をソースコードから抽出し、前記演算式を抽出演算式として出力する解析処理と、
前記解析処理により出力された前記抽出演算式がハードウェア記述言語に変換された変換演算式におけるレイテンシを、演算式レイテンシとして記憶部に保管するレイテンシ保管処理と、
前記演算式レイテンシとレイテンシ閾値とを比較し、前記演算式レイテンシがレイテンシ閾値以上の場合に、前記抽出演算式をテーブル化の対象であるテーブル化演算式と判定し、前記抽出演算式を判定結果として出力する判定処理と
をコンピュータに実行させる設計支援プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016042514A JP6407181B2 (ja) | 2016-03-04 | 2016-03-04 | 設計支援装置、設計支援方法及び設計支援プログラム |
US15/237,292 US20170255733A1 (en) | 2016-03-04 | 2016-08-15 | Design support device, design support method, and non-transitory computer readable recording medium recorded with design support program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016042514A JP6407181B2 (ja) | 2016-03-04 | 2016-03-04 | 設計支援装置、設計支援方法及び設計支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017157154A JP2017157154A (ja) | 2017-09-07 |
JP6407181B2 true JP6407181B2 (ja) | 2018-10-17 |
Family
ID=59723912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016042514A Expired - Fee Related JP6407181B2 (ja) | 2016-03-04 | 2016-03-04 | 設計支援装置、設計支援方法及び設計支援プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170255733A1 (ja) |
JP (1) | JP6407181B2 (ja) |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2317245A (en) * | 1996-09-12 | 1998-03-18 | Sharp Kk | Re-timing compiler integrated circuit design |
US6745160B1 (en) * | 1999-10-08 | 2004-06-01 | Nec Corporation | Verification of scheduling in the presence of loops using uninterpreted symbolic simulation |
US7086047B1 (en) * | 2002-12-04 | 2006-08-01 | Xilinx, Inc. | Determining hardware generated by high level language compilation through loop optimizations |
JP2007272797A (ja) * | 2006-03-31 | 2007-10-18 | Toshiba Corp | パイプライン高位合成システム及び方法 |
JP2007287044A (ja) * | 2006-04-19 | 2007-11-01 | Toshiba Corp | 設計支援装置 |
JP5622257B2 (ja) * | 2009-11-20 | 2014-11-12 | 日本電気株式会社 | 動作合成システム及び動作合成プログラム |
JP5644344B2 (ja) * | 2010-10-05 | 2014-12-24 | 富士通セミコンダクター株式会社 | 設計データ生成装置、設計データ生成方法及びプログラム |
JP5910108B2 (ja) * | 2012-01-25 | 2016-04-27 | 株式会社ソシオネクスト | 高位合成装置,高位合成方法,高位合成プログラム,集積回路の設計方法 |
JP5979966B2 (ja) * | 2012-05-10 | 2016-08-31 | 三菱電機株式会社 | 回路設計支援装置及び回路設計支援方法及びプログラム |
US9514259B2 (en) * | 2012-11-20 | 2016-12-06 | Taiyo Yuden Co., Ltd. | Logic configuration method for reconfigurable semiconductor device |
US9547738B1 (en) * | 2014-05-08 | 2017-01-17 | Altera Corporation | Invariant code optimization in high-level FPGA synthesis |
-
2016
- 2016-03-04 JP JP2016042514A patent/JP6407181B2/ja not_active Expired - Fee Related
- 2016-08-15 US US15/237,292 patent/US20170255733A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20170255733A1 (en) | 2017-09-07 |
JP2017157154A (ja) | 2017-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Soh et al. | An fpga-based unscented kalman filter for system-on-chip applications | |
US9235672B2 (en) | High-level synthesis data generation apparatus, high-level synthesis apparatus, and high-level synthesis data generation method | |
JP6345346B2 (ja) | 分析装置及び分析方法及び分析プログラム | |
JP2009205509A (ja) | リーク電流解析プログラム、該プログラムを記録した記録媒体、リーク電流解析装置、およびリーク電流解析方法 | |
JP6407181B2 (ja) | 設計支援装置、設計支援方法及び設計支援プログラム | |
JP6246445B1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
JPWO2008081544A1 (ja) | シミュレーションシステム、シミュレーションプログラムおよび該プログラムを記録した記録媒体 | |
US10963613B1 (en) | Partial reconfiguration of integrated circuits using shell representation of platform design with extended routing region | |
KR102228995B1 (ko) | 여러 가지 수치 포맷의 데이터를 갖는, 데이터 베이스화된 함수 모델의 연산을 위한 모델 연산 유닛 및 제어 장치 | |
JP6567215B2 (ja) | アーキテクチャ選定装置、アーキテクチャ選定方法およびアーキテクチャ選定プログラム | |
US20130185686A1 (en) | Semiconductor circuit design supporting apparatus and method, and non-transitory computer-readable medium | |
US8443314B1 (en) | Abstraction level-preserving conversion of flip-flop-inferred hardware description language (HDL) to instantiated HDL | |
JP6611963B2 (ja) | プログラム解析装置、プログラム解析システム、プログラム解析方法および解析プログラム | |
JP7038577B2 (ja) | プログラム分析装置及びプログラム分析方法 | |
WO2017154183A1 (ja) | 高位合成装置、高位合成方法及び高位合成プログラム | |
JP6242170B2 (ja) | 回路設計支援装置及びプログラム | |
US10289786B1 (en) | Circuit design transformation for automatic latency reduction | |
GB2573417A (en) | Scale calculation device and scale calculation program | |
US20170220585A1 (en) | Sentence set extraction system, method, and program | |
WO2016189721A1 (ja) | ソースコード評価装置及びソースコード評価方法及びソースコード評価プログラム | |
US10303832B2 (en) | Architecture generating device | |
JP6630840B2 (ja) | ログ分析のためのランドマークデリミタを推定するシステムおよび方法 | |
JP6342065B2 (ja) | 回路設計支援装置及び回路設計支援方法及び回路設計支援プログラム | |
US20230004645A1 (en) | Labeling device and labeling program | |
JP4217204B2 (ja) | タイミング例外パス検出装置、タイミング例外パス検出方法およびタイミング例外パス検出プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170822 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180608 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180703 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180803 |
|
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: 20180821 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180918 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6407181 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |