情報処理学会全国大会

仮想周辺機器を備えたウェブブラウザベースハードウェア
実機検証環境における高位合成フロントエンドの開発
吉塚友美 1

山脇彰 2

概要：組み込みシステムが搭載された製品開発の試作では FPGA が使用されているが，FPGA を使用した開発は様々な問題を抱えており，開発者に深い知識と技術，および経験が求められている．これらの問題を解決するために，複数の開発者がネットワーク経由で FPGA ボードを共有でき，実際の FPGA ボードや各種周辺機器に依存しないブラウザベースのハードウェア実機検証環境を開発している．本論文では，高位合成フロントエンド機能の導入を試みる．
キーワード：FPGA，仮想周辺機器，リモート，ブラウザ，開発環境，高位合成

Development of high-level synthesis front-end for web browser-based
hardware verification system with virtual peripheral
TOMOMI YOSHIZUKA†1AKIRA YAMAWAKI†2

Abstract: FPGAs are used in prototyping for product development with embedded systems. However, development using FPGAs
has various problems and requires developers to have in-depth knowledge, skills, and experience. To solve these problems, we aredeveloping a browser-based hardware verification environment that allows multiple developers to share an FPGA board via anetwork and is independent of the actual FPGA board and various peripheral devices. In this paper, we attempt to introduce a highlevel synthesis front-end function.
Keywords: FPGA, virtual peripherals, remote, browser, development environment, rapid prototyping, high-level synthesis

1. はじめにドに Linux を導入し，Web サーバーを構築した．そして，遠隔ハードウェア検証の基本機能の実装を行い，データアッスマートフォンや自動車などの組み込みシステムが搭載

プロード機能と回路の切替機能を導入した．本稿では，ソフされた製品開発の試作では，回路を何度も書き換えられる

トウェアプログラムから HDL プログラムへの変換を容易か

FPGA が使用されている[1][2][3][4]．FPGA を使用すること

つ効率的に行うために高位合成フロントエンド機能の導入

で試作の度に新規にマイコンを開発しなくてよいため，設を試みる．

計期間・開発コストが抑えられる．しかしながら，FPGA を用いた試作では次のようなハードウェア開発の問題点が挙2. 提案の実機検証環境げられる．開発者が必要なハードウェア処理に加え，その動提案の実機検証環境の概要図を図 1 に示す．開発後の製作を実機で検証するために周辺機器のインタフェースもハ品に搭載される実周辺機器は各種市販の USB 機器に置き換ードウェアとして新規に開発する必要があり，製品ごとにえることで仮想化する．また，インタフェースはパソコンに異なる周辺機器を用意する必要がある．また，ハードウェア置き換えられるため，開発者はそれらに必要なインタフェ開発にはハードウェア記述言語を用いてクロックレベルでースやファームウェアの開発は必要なくなる．そして，CPUディジタル回路の動作を詳細に記述する必要がある．さら内蔵 FPGA とパソコンはネットワークを使って協調動作し，に，ハードウェア開発をするにあたって，様々な開発ソフト実際の製品と近い環境で試作が可能である．これにより，開やそれらを利用する知識が必要である．以上より，開発者に発者に必要なものは，CPU 内蔵 FPGA ボードと USB 機器をは深い知識と技術，および経験が求められ，負担がとても大備えたパソコン，任意のソフトウェア環境，インストールさきいことがわかる．近年では，組み込みエンジニアが人手不れた高位合成ツールと FPGA 実装ツールになる．

足であるため，これらの問題を解決し FPGA を用いた開発のさらなる負荷削減は非常に重要な課題である．

図 1 の左側は提案のユーザインタフェースである．作業
ツールをウェブブラウザに統一することで，開発者がハー

そこで，我々は複数の開発者がネットワークを介してドウェア開発に必要な各種ツールの複雑な使用方法を意識FPGA ボードを共有でき，実際の FPGA ボードや各種周辺機しなくてよくなる．さらに，各種 OS に合わせてスクリプト器に依存しない仮想周辺機器を備えたブラウザをユーザイや Docker イメージを用意し，OS に依存しないクロスプランタフェースとしたハードウェア実機検証環境を開発してットフォームな開発環境を実現する．

いる．具体的には，CPU 内蔵 FPGA を搭載した FPGA ボー†1TOMOMI YOSHIZUKA, Kyushu Institute of Technologyⓒ2023 Information Processing Society of Japan†2 AKIRA YAMAWAKI, Kyushu Institute of Technology

1情報処理学会全国大会

本論文では画像処理を例に挙げてユーザインタフェースの概要を説明する．開発者は自分の慣れ親しんだ環境で画像処理を行うソフトウェアプログラムを開発する．そして，高位合成の対象として入力画像と共にブラウザで指定する．

処理結果（画像処理の結果や実行時間等）を HTML ファイルで返し，ブラウザに表示する．

3. 高位合成フロントエンドの開発

ブラウザからの指示を受け，高位合成ツールはソフトウェ

高位合成フロントエンドの構成を図 2 に示す．基盤環境

アプログラムを HDL プログラムに変換する．さらに，FPGAとして，CPU 搭載 FPGA の CPU 上に Linux の Ubuntu18.04

実装ツールがそれを回路データに変換する．実行ボタンをとウェブサーバー(Apache HTTP Server 2)，高位合成ツール

押すと CGI プログラムにより FPGA 上で実装されたハード(Xilinx 社 Vivado HLS 2018.3)を導入した．Linux イメージはウェアを起動し，回路データと画像データがネットワークSD カードにかかれ，FPGA に挿入される．そして，FPGA イ越しに FPGA に送られる．そして，FPGA にハードウェアがンタフェースを起動する．この環境下に，HTML で作成し構成され，画像データが処理される．CGI はハードウェアのたユーザインタフェース，PHP で作成したデータアップロード機能，CGI による HTML と FPGA ファームウェアとの図 1 提案の実機検証環境

図 2ⓒ2023 Information Processing Society of Japan

高位合成フロントエンドの構成2

情報処理学会全国大会換する．ユーザは，開発したソフトウェアプログラムのファイル名とハードウェア化対象の関数名の入力のみで高位合成フロントエンドを利用できる．
高位合成フロントエンドは，Perl で高位合成ツールを動かすための Tcl スクリプトファイルを作成する．図 3 に Perl フ
ァイルの概要を示す．１・２行目はコマンドライン引数を利用するための宣言をしている．４行目では，書き込む Tcl ス
クリプトファイルを書き込み専用で開く．６行目で
図 3

Perl プログラム

DATAFILE（Tcl ファイル）にデータを書き込む．8 行目で実行したいコマンドを引数に入力し，10 行目で実行している．
これにより，Vivado HLS のバッチモードでの Tcl スクリプトの実行が完了する．次に Perl に書き込まれた Tcl スクリプトファイルを図 4 に示す．Tcl は Vivado ツール環境に統合されているスクリプト言語である．7 行目は既存のプロジェクトを開く記述であり，指定したプロジェクトがない場
合は，新規に作成される．前情報を残さないために，-reset
オプションをつける．8 行目では，高位合成する対象の関数を指定している．9 行目は，ハードウェア化対象の C ソースファイルをプロジェクトに追加している．11 行目ではプロ

図 4

ジェクト内でソリューションを開き，12 行目ではプロジェ

Tcl スクリプト

インタフェース，C 言語による FPGA ファームウェアが存在する．
HTML で作成したユーザインタフェースでは，Web ブラウザから受け取った画像データと回路データを PHP 経由でローカルフォルダに保存する．そして，CGI からの指示でFPGA インタフェースを起動する．

クトで使用するパーツを指定している．13 行目では，ソリューションの仮想クロックを作成しており，クロック周期を 10ns に指定している．14 行目で，プロジェクトを合成している．

4. 高位合成フロントエンドの有用性の評価開発した高位合成フロントエンドの有用性を評価するた

高位合成フロントエンドでは，高位合成を用いてユーザめに，従来の高位合成ツールの GUI を用いたハードウェアが開発したソフトウェアプログラムを HDL プログラムに変化と高位合成フロントエンドでのハードウェア化の変換時

図 5 従来のハードウェア化の流れⓒ2023 Information Processing Society of Japan3

情報処理学会全国大会

図 6

コマンドラインでの実行
成フロントエンドを開発した．開発には Perl を用いて高位合成ツールを動かすための Tcl スクリプトを開発し，それを実現した．ソフトウェアプログラムから HDL プログラムへの変換を容易かつ効率的に行うことが目的である高位合成フロントエンドの効果を確かめるために，C プログラムから HDL プログラムに変換するまでの時間を測定した．その結果，変換速度は従来の変換方法より高位合成フロントエンドの方が早くなり，その効果を明らかにできた．今後は，HDL プログラムを回路データに変換する高位合成バックエンドの開発を行い，提案システムのさらなる実現をめざす．

図 7 ソフトウェアからハードウェアへの変換時間間を比較した．実験用に画像のポスタリゼーションとグレースケール化のプログラムを C 言語で記述した．必要なツールのパスは設定済みとする。まず，それぞれの変換作業の流れについて説明する．
高位合成ツール GUI を用いたハードウェア化の流れを図5 に示す．グレースケール化のプログラムの高位合成を例に挙げて説明する．高位合成ツールは Xilinx 社 Vivado HLS
2018.3 を使用する．ツールを立ち上げたら，新規プロジェクトを作成する（①）．次に高位合成する対象の関数名を指定し（②），ソリューション名を指定する（③）．そして，ソリューションの仮想クロックの設定を行い（④），プロジェク
トで使用するパーツを指定する（⑤）．プロジェクトができたら，高位合成対象の C ソースファイルを追加し（⑥），高位合成を行う（⑦）．高位合成が終了すると図のような HDLファイルが作成される．
次に，我々が開発した高位合成フロントエンドを用いたハードウェア化の流れを図 6 に示す．高位合成対象の関数名とハードウェア化対象の C ソースを引数で指定し，Perl ファイルを実行している．Perl ファイルの中身には Tcl スクリプトを実行するコマンドが記載されているため，Tcl スクリプト作成完了後に HDL への変換が行われる．
図 7 に変換時間の測定結果を示す．ポスタリゼーション・グレースケール化共に従来法より高位合成フロントエンドの方が，変換が高速に実施できることを確認した．

5. おわりに仮想周辺機器を備えたウェブブラウザベースハードウェ

参考文献[1]秋山雅裕 他：「FPGA を用いたコンパクトで高性能なパルスパワー発生装置の開発」，J.Plasma FusionRes, Vol.85, No.9
pp.631-635 (2009)[2]照屋大地 他：「PyJer：高位合成ツールと SoC を用いた IoT 向けデバイスプロトタイピングのためのフレームワーク」，電子情報通信学会論文誌 D，Vol.J100-D，No.3 pp.287-297 (2017)[3]E.Tang and E.Giacomin : "OpenFPGA : An Opensource
Framework Ending Rapid Prototyping of Customizable FPGAs",
29th International Conference on Field Programmable Logicand Applications (FPL), pp.367-374 (2019)[4]S.J.H.Pirzada and A.Murtaza : "A Reconfigurable ModelBased Design for Rapid Prototyping on FPGA", International
Journal of Computer Theory and Engineering, Vol.12, No.3
pp.80-84 (2020)[5]Tomomi Y, Akira Y, "Building Primitive Functionality ofWeb browser-based FPGA Hardware Verification System", Proc.
of 27th Int'l Symp. on Artificial Life and Robotics 2022
(AROB 2022), pp.706-709 (2022)[6]Atsushi S, Akira Y, "Development of simple verification
environment using FPGA for image processing hardware
created by High-Level-Synthesis using TCP/IP", Proc. of the8th IIAE International Conference on Intelligent Systems
and Image Processing, pp.221-226, 2021
[7]Wicaksana A, Charf A, Andriamisaina C, Ventroux N,"Hybrid prototyping methodology for rapid system validationin HW/SW co-design", The Conference on Design andア実機検証環境においてソフトウェアプログラムから HDL

Architectures for Signal and Image Processing 2019 (DASIP

プログラムへの変換を容易かつ効率的に行うための高位合2019), Montreal, Canada. cea-02494007 (2019)ⓒ2023 Information Processing Society of Japan4