第七十八章
「C言語ハードウェア設計の現在と未来」
株式会社ソリトンシステムズ
組み込みシステム部 部長 木下 智雄
■ソリトンシステムズについて
はじめまして、ソリトンシステムズ 組み込みシステム部でC言語ハードウェア設計環境の開発やハードウェア設計ソリューションビジネスを行っております木下と申します。
この場をお借りしましてC言語によるハードウェア設計の現状と未来について述べさせいただきます。

弊社は 30年近くネットワーク、セキュリティ、そしてハードウェア設計技術などを中心に日本の産業界へ様々なソリューションを提供してきました。私が属しております「組み込みシステム部」は、次世代の組み込み設計技術として期待されるC言語によるハードウェア設計技術を中心としたビジネスを行っております。その中でも特にC言語高位(動作)合成ツール eXCite というコア技術の開発およびC言語ハードウェア設計ソリューションに力を入れております。

ソリトンシステムズについては、こちらをご覧下さい。http://www.soliton.co.jp/

■C言語ハードウェアの過去から現在
まず、C言語などの抽象度の高い言語によるハードウェア設計の考えはある日突然沸いてきたわけではありません。このコンセプトがはじめに話題になったのは HDL が出現した 1990年前より前です。その当時のハードウェア設計は、ゲートレベル設計の時代だったのは多くの方がご存知と思いますが、その当時から高位合成技術は研究、開発されていました。しかしながら、その当時にC言語などの高位レベル記述が普及することは無く、当時、設計の主流であったゲートレベルに近い内容が確実に表現できる HDL がハードウェア設計の主流となりました。私がハードウェア設計技術や高位レベルハードウェア設計技術に関わり始めたのもこの頃でした。その頃は HDL ですら、本当に言語でハードウェアが設計できるのか?ってよく言われましたが、今では誰もが HDL で設計する時代になりました。内容もゲートレベルから RTL へと進化していきました。

その後、HDL 記述の書き方の延長として、ビヘイビアレベルの HDL 記述および HDL ベースの高位合成技術が1995年頃に登場しましたが、当時の技術では設計者を満足させることはできず、1990年後半に HDL を用いた高位レベルハードウェア設計技術は一旦衰退しました。

しかしながら、一旦は衰退した高位レベルハードウェア技術ですが、形を変えて 2000年ごろに新たに脚光を浴びるようになりました。それが、C言語からのハードウェア設計技術です。そのころは、システムレベル記述言語の普及と称して、ハードウェアもソフトウェアも記述できる言語、System-Level Design Language(SLDL)を作ろうという動きが盛り上がっていましたが、その一環でC言語などからの高位レベルハードウェア設計技術も見直されました。私達もはじめは SLDL 普及や SLDL からの高位レベルハードウェア設計技術の開発を検討したのですが、最終的には新しい言語よりも、既存のC言語からの設計手法を選択しました。標準C言語を選択した理由は、組み込みシステム設計者の約7割がC言語を設計言語として使用していることと、ソフトウェア設計資産のハードウェア化の実現が期待できると考えたからです。これらを実現するために私達は eXCite というC言語高位合成ツールを開発しました。

■C言語ハードウェア合成ツール eXCite
C言語ハードウェア合成ツール eXCite は、弊社子会社の Y Explorations, Inc. との共同開発製品です。C言語入力の論理合成可能な VHDL、Verilog 出力のツールです。高位合成エンジン、通信合成エンジン、IP 再利用データベースなどを搭載し、標準C言語から FPGA や ASIC で利用するハードウェア部品を設計することが出来ます。また出力 HDL 用テスト環境の自動生成やいくつかの FPGA ボードとの連携により実機レベル検証環境なども用意しています。これらを使うことで、設計者は面倒な HDL 設計から開放されます。

さて、この eXCite ですが、幸か不幸か標準C言語を選択したことにより、現在、組み込みシステム分野のお客様が増えています。このような技術の進歩が、現在のハードウェア設計者とソフトウェア設計者間の壁をなくし、システムレベル設計という分野を築くことができるのではと期待しています。

eXCite の情報:http://www.yxi.com/Japanese/indexJnew.html

■C言語ハードウェアの未来
今後の組み込みシステム設計において、ハードウェア設計とソフトウェア設計の融合は必須と言えます。多くのツールベンダーがコ・デザインというキーワードの元に設計環境を次から次に提唱していますが、ハードウェア設計者とソフトウェア設計者の距離は思ったようには近くなっていないようにも思えます。おそらく、現状ではハードウェア設計者の意向が強く出すぎていて、ソフトウェア設計者の視点からは距離が離れすぎているのだろうと思います。

標準C言語の高位レベルハードウェア技術は、ハードウェア設計者とソフトウェア設計者の融合や設計者間の距離を縮める、ある意味橋渡し的な技術と考えられます。今後の組み込みシステムにおいては、ハードウェアとソフトウェアのバランスの取れたシステム構成にすることが重要とされている今、この分野には更なる進化が求められています。

C言語ハードウェア設計の進化には、多くの再利用可能なハードウェア設計資産(IP)の整備やバスなどの共通のプラットフォームの整備、そしてC言語高位合成技術の進化が必要と思います。既に、各 FPGA ベンダなどは IP の強化や標準バスの提供などを行ってきています。また、弊社 eXCite を含め、高位合成技術も日々進化してきています。これらの業界の変化がC言語ハードウェア設計を後押していくと思います。

■がんばれ! 日本の組み込みシステム産業
私は長年 EDA 業界に身を置いていましたが、長くなればなるほど、米国 EDA ベンダ主導で動いているこの分野に違和感を感じるようになりました。そんな中、躍動感のある日本の組み込みシステム産業界を目のあたりにし、この組み込みシステム分野で活かせるソリューションを作って行こうと思うようになりました。その結果の一つが eXCite です。

日本の組み込みシステム技術は誰もが認める世界トップレベルです。ロボットや各種電子機器開発技術は、他にはまねの出来ないレベルと言っても良いでしょう。しかし、昨今の東アジア各国の技術力アップは目覚しく、我々も更なる努力をしないと負けてしまうかもしれません。そんなことの無いように、更なる組み込みシステム分野の発展を期待しますし、微力ながら私も貢献できればと考えています。

周りからは考え方が古いって言われそうですが、やっぱり私は「がんばれ!日本」です。技術立国日本を陳腐化させないよう、皆さん頑張りましょう。