次に、回路を設計する際につまずいたことを説明したいと思います。まず、この回路の動作が比較的シンプルであることは、先ほどの説明でお分かりいただけると思います。ソフトウエアでの実装なら、1日もあれば十分だと思います。しかし、ハードウエアの場合は、そういうわけにはいきませんでした。正直なところ、私も最初はすぐに完成するだろうと思っていました。

 つまずいたポイントは遅延です。処理(ii)において、色変換を行う処理がありますが、この処理には乗算や除算が含まれています。これをソフトウエアで実装するときは、気にする必要はほとんどありません。しかし、ハードウエアの場合は、大きい乗算や除算は遅延の原因となってしまいます。

 従って、演算処理を複数のプロセスに分ける必要がありました。それ自体はさほど難しいことはないのですが、この処理を行うモジュールは、前述の通り、既存の回路に新たに追加したものであるため、処理の変更に伴って既存の回路にも手を加えなければならず、苦労しました。遅延の情報は論理合成をかけた後に分かるため、その点も負担となりました(論理合成には20分ぐらいかかる)。

 COJTを受講した当初は、ハードウエア記述言語(HDL:Hardware Description Language)の文法やシミュレーションソフトの使い方など覚えなければならないことも多く、ハードウエアの設計なんて1年でできるようになるのかなと不安でいっぱいでした。ですが、ふと気付いたときには講師やティーチングアシスタント(TA)の方と、拙いですが技術的な会話ができるようになっていました。

 1年の集大成であるこの自由課題も、自分自身で設計・実装し、何とかカタチにすることができました。1年前の自分と比べると、エンジニアとして大きく進歩できたのかなと感じています。そして、それは講師、TA、そしてH/Wコースの仲間たちのおかげです。1年間、ありがとうございました。