毎日毎日コンパイルを繰り返し、カウンタを作り
同期信号を作ったり、外部信号を認識したり
少しずつ、FPGAの使い方が分かってきた頃、ふと気がついた
なんだろう?と思って調べて見ると、PICと言うICらしい
そもそもこれはなんの為についているんだろう?
私の上司は聞いても教えてくれない人で、本当に困ったが
ともかくFPGAを自力で動かす事に成功した私は
接続の意味から、このデバイスの役割を探り当てていく
私が作っているカメラは、カメラ部とフレームグラバー部に分かれていて
カメラ単体だと、I/Oができるのはカメラとフレームグラバーを繋ぐケーブルしかない
そしてそのケーブルの中で、UART(RS232Cみたいなやつ)に当たる線がPICに繋がっていて、その後、PICからFPGAにSPIの線が伸びている
今なら「なんだこれ、意味あるか?」と思うのだが、一つ一つ手探りだった私は
「なるほど、PCからの唯一の指示の手段がこのラインなのだな」
と言う事がわかったので、PICでRS232Cを送受信する方法を調べた
「ふむふむ、FPGAはHDL言語で制御するのに対して、PICはC言語で制御するんだな」
「C言語は、なんならHDLより得意だぜい」
そんな事を考えながら、PICを勉強しました、PICの勉強も一苦労ありました。
なんでこんな所にPICが配置されていたのかと言うと、FPGAではUARTが制御できないと思ったのと、PICには不揮発メモリが少しあって、値を記憶する為のようでした(その様に使いました)
でも、フレームグラバーの方のFPGAも私が作ったのですが、そっちにはPICはなかったので、今思うと変な回路でした。
結局フレームグラバーには、PICがなかったので、どの様にUARTを構築したかと言うと、UARTの仕様に従い、HDLだけでUARTのロジックを組みました。
いわゆるIPコアを作った訳ですが、ここでは敢えてIPコアとは書きません。
驚かれるかも知れないし、呆れる人もいると思うけれど、様々なデバイスが繋がるこの回路ですが、私は全てHDLを手書きしました。