コーディングを始めると視野が狭くなりがち

 次に、私がどのように回路を設計したか、そしてつまずいたポイントや気付いたことをお伝えします。回路の設計は、以下のように進めました。

設計プロセス
[画像のクリックで拡大表示]

 回路は、モジュール単位で記述します。そのため最初に前出のモジュール図を作成しました。モジュール図を作成したら、仕様を信号単位で考え、信号一覧を作成します。信号一覧には、信号のビット数、各モジュールとの入出力関係、信号の簡単な説明などを記述しました。描画回路で使用する信号の種類数は200以上と、表示回路やキャプチャー回路(信号数はいずれも100弱)よりも多いため、信号一覧を作成することで、大規模な回路の仕様をコーディングレベルまで落とし込んで理解できるようになりました。

 この時点でコーディングを始めることもできますが、AXIバスやコマンド解析、画素間演算など制御が複雑になる部分も多いので、そういった部分に対してタイミングチャートを作成しました。個人的に、タイミングチャートがないと、シミュレーションを繰り返して調整することになってしまいがちだからです。信号・条件式の追加や削除でシミュレーションを通過させることもできるのですが、条件式が複雑になることが多くなります。条件式が複雑だからといってダメだというわけではないですが、あるシミュレーションを通すためだけに調整すると別のシミュレーションで誤動作を起こす恐れがあります。私は、いったんコーディングを始めると視野が狭くなりがちなので、そうなる前に細かな仕様、タイミングチャートを作成することが重要だと感じました。