小特集 3-1 高位合成ツールを用いたハードウェア設計

電子情報通信学会 - IEICE会誌 試し読みサイト
Vol.100 No.2 (2017/2) 目次へ

前の記事へ次の記事へ


3.FPGA開発を始めるにあたって

小特集 3-1

高位合成ツールを用いたハードウェア設計

――FPGAを用いた専用コンピュータの開発がお手軽にできる時代が来た!――

Hardware Design with High Level Synthesis: Custom FPGA Computer Development Is Available to Everyone

高前田伸也

高前田伸也 正員 北海道大学大学院情報科学研究科情報エレクトロニクス専攻

Shinya TAKAMAEDA, Member (Graduate School of Information Science and Technology, Hokkaido University, Sapporo-shi, 060-0814 Japan).

電子情報通信学会誌 Vol.100 No.2 pp.103-108 2017年2月

©電子情報通信学会2017

abstract

 従来のFPGAハードウェアの開発は,Verilog HDLやVHDLなどのハードウェア記述言語を用いた低い抽象度の実装が主流であり,目的のハードウェアを実現するためには長い開発時間が必要であった.しかし現在では,ソフトウェア記述からハードウェア記述を生成する高位合成ツールを用いることによって,従来よりも大幅に短い期間でのハードウェア開発が可能になった.本稿では,従来のハードウェア記述言語との比較や,代表的な高位合成ツールの利用方法などの例をもって,高位合成ツールを用いた今時のFPGAハードウェアの開発方法を紹介する.

キーワード:FPGA,高位合成,ハードウェア記述言語,ドメイン固有言語

1.高位合成とは?

 CPUやGPU上のソフトウェア開発は,プログラミングモデルによって違いは存在するものの,ハードウェア上で実行される処理の手順を設計するものである.一方,FPGAを用いて計算処理の高速化を行うには,処理の手順ではなく,どの回路要素をどのように組み合わせるのかの,ハードウェア構成,とりわけ論理回路を設計する必要がある.従来のFPGA回路の論理設計では,Verilog HDLやVHDLなどのハードウェア記述言語(HDL: Hardware Description Language)を用いたレジスタ転送レベル(RTL: Register Transfer Level)での設計が一般的であった.RTL設計では,論理回路中の記憶素子の構成と,それらに格納される値を生成する組合せ回路の構成を設計者が明示する.つまり,対象の処理について,実装する回路が何をするか(What)の機能レベルの記述だけではなく,どの素子が,どのタイミングで(When),どのように(How)駆動されるかを全て明示しなければならない.特に,このように,回路要素の駆動タイミングを指定する設計方式は,タイムド設計(Timed Design)と呼ばれる.

 このように,FPGA上に目的のハードウェアを実現するには,逐次処理のソフトウェア開発とは異なるハードウェア設計ならではの考え方を必要とする.また,ソフトウェア開発と比較して,一般に長い開発期間を要するという欠点が存在する.そのため,これまでのFPGAハードウェアの開発は,主にハードウェア技術者によってのみ行われており,ソフトウェア技術者へは余り普及していなかった.これに対して,本稿で紹介する高位合成(HLS: High Level Synthesis)と呼ばれる技術が近年普及してきた.高位合成とは,Cなどのプログラミング言語で記述した処理内容の記述から,Verilog HDLやVHDLなどのハードウェア記述言語により記述されたハードウェア構成を生成するコンパイラ及び設計ツールを用いた設計方式である.高抽象度の動作モデルからハードウェア記述を生成することから,動作合成(Behavioral Synthesis)とも呼ばれる.


続きを読みたい方は、以下のリンクより電子情報通信学会の学会誌の購読もしくは学会に入会登録することで読めるようになります。 また、会員になると豊富な豪華特典が付いてきます。


続きを読む(PDF)   バックナンバーを購入する    入会登録


  

電子情報通信学会 - IEICE会誌はモバイルでお読みいただけます。

電子情報通信学会誌 会誌アプリのお知らせ

電子情報通信学会 - IEICE会誌アプリをダウンロード

  Google Play で手に入れよう

本サイトでは会誌記事の一部を試し読み用として提供しています。