/ «2004-04-07 (Wed) ^ 2004-04-27 (Tue)» ?
   西田 亙の本:GNU 開発ツール -- hello.c から a.out が誕生するまで --

Categories Books | Hard | Hardware | Linux | MCU | Misc | Publish | Radio | Repository | Thoughts | Time | UNIX | Writing | プロフィール


2004-04-10 (Sat)

[Hard] From C to Hardware

DesignWave magazine 4月号

積ん読になっていた DesignWave magazine 4月号 に目を通す。清水尚彦氏の連載が終わってから、しばらく同誌からは足が遠のいていたのだけれど、第一特集「ハードとソフトの両刀使いでいこう!」の中の第二章「レッツエンジョイ "Cベース設計"!」が立ち読みで気になったので購入。

この記事は、有名な桑野雅彦氏とそのお弟子さんの共著らしい。で、その内容だが、素晴らしい!!おじさんは、久しぶりに雑誌記事で感動してしまいました。さすがは桑野氏だけあり、構成もよく練られているし、具体的なテーマ設定も素敵だ。この記事だけのために、3000円、いや5000円出しても惜しくはない。そう思わせるほどの完成度とインパクトを持っている。これ位優れた記事が、毎月色々な雑誌で読めるようになると、人生はもっと楽しくなるだろうに・・。

Handel-C

さて、その内容だが Handel-C によるハードウェア設計を、7セグメントLEDの点灯に始まり、非同期シリアル通信(昔懐かし UART)、VGA モニター用の CRTC、はてはブロック崩しと、具体的かつ面白いテーマを設定しながら、解説している。

具体的な手順としては、C感覚で上記のテーマを記述し、出来上がったコードを Handel-C コンパイラにより、VHDL に変換。この VHDL コードを Altera 社の FPGA/PLD 設計ツール Quartus II でコンパイル・フィッティングし、最終的なコンフィギュレーションデータを Altera 社 FPGA の Stratix にダウンロードして、ブロック崩しを楽しむ・・といった具合。途中で登場する、

いいのか、これで?ブロック崩しがあっさり完成

というフレーズが、なんとも面白い。

「Handel-C とは、なんじゃらほい?」という方のために(何を隠そう、私も数日前まではそうだった)、簡単に紹介しておくと、この処理系は 1990年代前半、イギリスは Oxford University Computing Laboratory において開発された。その目的は、C言語に拡張を施し、"Hardware compilation" 機能を持たせることにある。1996年、この技術は Celoxica (セロック シカ)社に民権移転された。変わった社名は、ラテン語の "Celox" および "ica" に由来しており、前者は "Rapid"、後者は "シリコン"を指しているらしい。渋い。Handel の由来は定かではないが、私が想像するに Hardware Description Language 中の Hard を Hand にモジったものではないかと思う。

とは言うものの、これでは全くイメージが湧かないので、興味のある方は是非とも DesignWave 4月号 67ページから103ページを舐めるように読んでみて欲しい。私は 88〜89ページに掲載されたリスト8の「シリアルポートテストプログラム sio.hcc」を読んで、思わず「おいらがやりたかったのは、これだよ、これぇ!!」と感涙にむせんでしまった。

基本機能だけとは言え、「3分間クッキング」の感覚で UART ハードウェアを記述出来るとは、驚き桃の木山椒の木である。しかも、ソースは読みやすい。ビット処理や、パリティ処理も超簡単。これまでのC言語のように、データをクルクルとシフト処理して、AND を取って・・などと言ったまどろっこしいことは、一切なし。素晴らしすぎると同時に、これほど強力な処理系を知らなかった自分にショックを覚える。なんだか、数年間は無駄に過ごしてしまった気分だ。

「いや、今からでも遅くはないよね」とばかりに、早速 Google & mail で問い合わせ。で、結論だが、実用になる Handel-C コンパイラは今のところ Celoxica 社が販売している「DK デザインスイート」しかない。それも、かなり高価だ。アカデミックプライスでも、75000円はする模様。ちなみに、DesignWave magazine 4月号には、DK2 の評価版が添付されているので、こちらで遊んでみるのも良いだろう。

この値段ではおいそれと手が出せないよねぇ・・という場合は、記事中で紹介されていたプロトタイプ版の Handel-C コンパイラが頼りになるかもしれない。詳細については、著者のサイトを参照のこと。DOS 版の HCC.EXE はこちら。Handel-C 言語リファレンスガイドはこちら

関西弁が得意という、Celoxica Japan 代表取締役 Colin Mason 氏の笑顔を見ていると、なんだか「おいらも Handel-C でいっちょ Happy になってやろうかなぁ・・」という気になってしまう。

そのうち、GCC も VHDL や Verilog HDL を吐き出す日がやってくるのだろうか?おじさんは、興奮してしばらく眠れそうにもない・・。