JP6495842B2 - 変換方法、変換プログラムおよび変換装置 - Google Patents
変換方法、変換プログラムおよび変換装置 Download PDFInfo
- Publication number
- JP6495842B2 JP6495842B2 JP2016027435A JP2016027435A JP6495842B2 JP 6495842 B2 JP6495842 B2 JP 6495842B2 JP 2016027435 A JP2016027435 A JP 2016027435A JP 2016027435 A JP2016027435 A JP 2016027435A JP 6495842 B2 JP6495842 B2 JP 6495842B2
- Authority
- JP
- Japan
- Prior art keywords
- variable
- program
- conversion
- data type
- bit width
- 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
Landscapes
- Devices For Executing Special Programs (AREA)
Description
まず、高位合成およびプリプロセッサについて、図1を用いて説明する。図1は、高位合成およびプリプロセッサについて説明するための図である。前述の通り、RTL設計においては、C言語等のプログラム言語で記述された動作レベル設計のプログラムは、高位合成により、verilog等のハードウェア記述言語で記述されたRTLのプログラムに変換される。そして、高位合成により生成されたRTLのプログラムは、論理合成およびレイアウト設計が行われた後、FPGAロードモジュールに出力される。
図3を用いて、第1の実施形態の変換装置の構成について説明する。図3は、第1の実施形態に係る変換装置の構成を示すブロック図である。図3に示すように、変換装置10は、入力部11、解析部12、変換部13および出力部14を有する。また、変換装置10は、実施形態のプログラムの入力を受け付け、C言語のプログラムを出力する。
ここで、変換部13が実施形態のプログラムをC言語のプログラムに変換する方法を、具体例を用いて説明する。まず、図5を用いて、第1の変換方法について説明する。図5は、第1の実施形態に係る第1の変換方法について説明するための図である。
第1の変換方法を用いた場合、シミュレーション時に値のオーバーフロー等のバグを検出できない場合がある。例えば、変数Aは本来ビット幅が2ビットであるため、シミュレーションにおいて変数Aに2ビットより大きい値、例えば4以上の数値を代入する処理が実行されると、値のオーバーフローエラーが発生しなければならない。しかしながら、変数Aは、第1の変換方法によってunit8_tの変数に変換されているため、シミュレーションにおいて例えば3ビットの数値である4を代入する処理が実行されてもエラーが発生しない。
ただし、C言語の構造体のメンバーは配列とすることができないため、図7に示すように、例えば実施形態のプログラムで各要素のビット幅が2ビットである配列A[4]が定義されていた場合、第2の変換方法を用いて変換することができず、ビット幅が8ビットの変数の配列に変換せざるをえない。図7は、第1の実施形態に係る第2の変換方法の課題を説明するための図である。
実施形態のプログラムでは、所定のビット幅の変数を、ビット幅が1ビットの変数を要素とする配列として定義してもよい。そして、第4の変換方法では、変換部13は、解析部12によって取得された変数が、ビット幅が1ビットの変数を要素とする配列である場合、配列の各要素を、第2のデータ型の変数であるメンバーを有する構造体であって、あらかじめ指定されたビット幅より大きいビット幅の数値がメンバーに代入された場合にはエラーを発生させる構造体のメンバーに変換する。
また、例えばverilogで定義可能な変数のビット幅には制限がないが、C言語で定義可能な変数のビット幅は64ビットであるため、図10に示すように、実施形態のプログラムにおいて要素数が64を超える配列が定義されている場合、変換部13は、当該配列を第4の変換方法では変換することができない。そのため、要素数が64を超える配列が定義されている場合、図10に示すように、変換部13は、当該配列を複数の構造体に分割して変換する。図10は、第1の実施形態に係る第5の変換方法を説明するための図である。
図11を用いて、実施形態のプログラムを用いてシミュレーションを行う際の処理について説明する。図11は、第1の実施形態に係る変換装置を用いたシミュレーションの処理の流れを示すフローチャートである。図11に示すように、まず、変換装置10に実施形態のプログラムが入力される(ステップS11)。そして、変換装置10は、第1の変換方法から第5の変換方法のいずれか、または複数を用いて入力されたプログラムを変換する(ステップS12)。そして、変換装置10は、変換したC言語のプログラムを出力する(ステップS13)。
入力部11は、ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける。そして、解析部12は、入力部11によって受け付けられたプログラムから、第1のデータ型を用いて定義された変数を取得する。そして、変換部13は、解析部12によって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)および当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
一実施形態として、変換装置は、パッケージソフトウェアやオンラインソフトウェアとして上記の変換を実行する変換プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の変換プログラムを情報処理装置に実行させることにより、情報処理装置を変換装置として機能させることができる。ここで言う情報処理装置には、デスクトップ型またはノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
11 入力部
12 解析部
13 変換部
14 出力部
Claims (6)
- ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力工程と、
前記入力工程によって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析工程と、
前記解析工程によって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換工程と、
を含んだことを特徴とする変換方法であって、
前記変換工程は、前記解析工程によって取得された変数が、前記第1のデータ型の変数を要素とする第1の配列である場合、前記第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、あらかじめ指定されたビット幅より大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換方法。 - ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力工程と、
前記入力工程によって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析工程と、
前記解析工程によって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換工程と、
を含んだことを特徴とする変換方法であって、
前記変換工程は、前記解析工程によって取得された変数を二進数表記した場合の各ビットを要素とする第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、1ビットより大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換方法。 - コンピュータに、
ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力ステップと、
前記入力ステップによって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析ステップと、
前記解析ステップによって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換ステップと、
を実行させることを特徴とする変換プログラムであって、
前記変換ステップは、前記解析ステップによって取得された変数が、前記第1のデータ型の変数を要素とする第1の配列である場合、前記第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、あらかじめ指定されたビット幅より大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換プログラム。 - コンピュータに、
ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力ステップと、
前記入力ステップによって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析ステップと、
前記解析ステップによって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換ステップと、
を実行させることを特徴とする変換プログラムであって、
前記変換ステップは、前記解析ステップによって取得された変数を二進数表記した場合の各ビットを要素とする第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、1ビットより大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換プログラム。 - ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力部と、
前記入力部によって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析部と、
前記解析部によって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換部と、
を有することを特徴とする変換装置であって、
前記変換部は、前記解析部によって取得された変数が、前記第1のデータ型の変数を要素とする第1の配列である場合、前記第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、あらかじめ指定されたビット幅より大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換装置。 - ビット幅が1バイトの整数倍でない第1のデータ型を用いて変数が定義されたプログラムの入力を受け付ける入力部と、
前記入力部によって受け付けられた前記プログラムから、前記第1のデータ型を用いて定義された変数を取得する解析部と、
前記解析部によって取得された変数を、ビット幅が1バイトの整数倍である第2のデータ型を用いて定義された変数に変換する変換部と、
を有することを特徴とする変換装置であって、
前記変換部は、前記解析部によって取得された変数を二進数表記した場合の各ビットを要素とする第1の配列の各要素を、前記第1の配列と同数の要素を持つ配列の各要素である構造体であって、メンバーが前記第2のデータ型の変数であり、1ビットより大きいビット幅の数値が前記メンバーに代入された場合にはエラーを発生させる構造体に変換することを特徴とする変換装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016027435A JP6495842B2 (ja) | 2016-02-16 | 2016-02-16 | 変換方法、変換プログラムおよび変換装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016027435A JP6495842B2 (ja) | 2016-02-16 | 2016-02-16 | 変換方法、変換プログラムおよび変換装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017146747A JP2017146747A (ja) | 2017-08-24 |
JP6495842B2 true JP6495842B2 (ja) | 2019-04-03 |
Family
ID=59681454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016027435A Active JP6495842B2 (ja) | 2016-02-16 | 2016-02-16 | 変換方法、変換プログラムおよび変換装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6495842B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6542848B2 (ja) | 2017-07-28 | 2019-07-10 | 株式会社アマダホールディングス | レーザ切断用ノズル製造方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10260997A (ja) * | 1997-03-19 | 1998-09-29 | Toshiba Corp | 論理シミュレーション・システム |
GB2355085A (en) * | 1999-10-05 | 2001-04-11 | Sharp Kk | Translating a source operation to a target operation |
JP2005346272A (ja) * | 2004-06-01 | 2005-12-15 | Sony Corp | 構造体型配列のデータのメモリ使用方法 |
-
2016
- 2016-02-16 JP JP2016027435A patent/JP6495842B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2017146747A (ja) | 2017-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11042675B2 (en) | Systems and methods for automatically realizing models for co-simulation | |
US11106437B2 (en) | Lookup table optimization for programming languages that target synchronous digital circuits | |
JP2022036889A (ja) | チップを検証する方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム | |
US8990739B2 (en) | Model-based retiming with functional equivalence constraints | |
US9600384B2 (en) | System-on-chip verification | |
Damavandpeyma et al. | Modeling static-order schedules in synchronous dataflow graphs | |
US20160070844A1 (en) | Selectively reducing graph based analysis pessimism | |
Darulova et al. | Synthesis of fixed-point programs | |
KR20210112330A (ko) | 스레드 실행 순서를 유지하는 동기식 디지털 회로를 생성하는 언어 및 컴파일러 | |
US10990073B2 (en) | Program editing device, program editing method, and computer readable medium | |
US8448113B2 (en) | Efficiently applying a single timing assertion to multiple timing points in a circuit using creating a deffinition | |
JP6495842B2 (ja) | 変換方法、変換プログラムおよび変換装置 | |
JP7310921B2 (ja) | 検査装置、検査方法及び検査プログラム | |
US10929584B1 (en) | Environmental modification testing for design correctness with formal verification | |
Khan et al. | Accelerating SpMV multiplication in probabilistic model checkers using GPUs | |
KR102656567B1 (ko) | 다양한 유형의 신경망 모델을 변환 및 활용할 수 있도록 하는 방법 및 장치 | |
US8281263B2 (en) | Propagating design tolerances to shape tolerances for lithography | |
Karandikar et al. | Cdpu: Co-designing compression and decompression processing units for hyperscale systems | |
Lee et al. | External don’t cares in logic synthesis | |
US20180137217A1 (en) | Context-dependent useful skew estimation for optimization, placement, and clock tree synthesis | |
US20230325476A1 (en) | Obfuscation device, obfuscation method, and obfuscation program | |
US9769025B2 (en) | Predicting the performance of a multi-stage communications network under load from multiple communicating servers | |
JP6674048B2 (ja) | 判定装置、判定方法及び判定プログラム | |
Schaumont et al. | Data flow modeling and transformation | |
JP6788249B2 (ja) | 生成装置、生成方法及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181031 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20181113 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190110 |
|
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: 20190305 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190307 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6495842 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |