A/DコンバータをAvalonバスでCプログラムから読んで温度を計る

AlteraのFPGA開発環境には、Nios IIというFPGA組み込み用のCPUライブラリ(FPGAの世界ではIPというらしい)がついていて、このプロセッサをベースとしてCのプログラムが動かせるようになってる。
そこにSDRAMコントローラのIPやLCDコントローラのIPなどを組み合わせていくと、一台のコンピュータになる。


そうすると、ハードウェア制御はHDLで書いて、手続きはCで書いてという使い分けができるようになって、実際に動くモノを作るには非常に生産性がよい。
まあ、そうなると、Cの部分は単なる組み込み開発になってそんなに目新しいものでもなくなるのだけど、HDLのコンパイル(FPGAの世界では合成というらしい)に比べてCのコンパイルは格段に早いし、なにより手続きが書きやすいので、自分で作った回路の動作確認などもやりやすくなる。


ただ、そのためにはNios IIプロセッサとやりとりするためのAvalonバスに接続できる回路を書いてあげる必要があって、その作法を知っておかないといけない。
まあ、バスに接続するといっても、モジュールの入出力をあわせてあげるだけなのだけど。それが単独で動かすよりは結構大変。

続きを読む