BLANCAのアプリを作る 1日目
BLANCAのアプリを作ろうと思っています。
以前からFPGAを使って視覚的に訴えかけるディジタル信号処理をしたいを思っていたので、スペクトラムアナライザを作ろうと思います。
幸いなことに、BLANCAには音声入出力とアナログRGB出力がついているので、その用途にはぴったりです。
目標としては、BLANCAの音声入力にマイクをつないで、RGB出力にPC用のモニタをつなげばスペアナになる、というものです。FPGAの中にソフトコアのCPUをいれると、論理合成時間がやたらかかるので、CPUは使わずにハードウェアのロジックだけでFFTと画像表示とAC97の制御回路を動かしたいところです。
そういうわけで、まずはアナログRGB出力が動くのを確認しなければなりません。

サンプルのIPコアを見てみると、なにやらRGB出力は複雑なことをしていて理解するのが大変そうだったので自分で作ることにしました。
といっても、水平と垂直の同期信号を作って適当なタイミングで絵のデータを送るだけの簡単なものです。
ディスプレイに絵を出すには、FPGAから同期信号と、DAコンバータへの値とドットクロックを作ります。ドットクロックは25MHz、水平カウントは800、垂直カウントは525にしておけば、毎秒約60fpsのVGA画像が出力されます。
ここでDAコンバータに適当なカウンタの値を出力すれば、画面にグラデーションが表示されるはずです。
JTAGをつかって端子の状態をみてみると、いろいろな端子がチカチカと動いているのが見えます。

クロックは入っていて、動いている模様。
なのに、どうも絵が出ない。
オシロで垂直同期信号(VSYNC)を観てみると、たしかに60Hzくらいになっているのですが、
_____|_____|_____
という、常にLでたまにH、というパルスになっています。
これは異常で、本来は「常にHでたまにL」が正しいのです。
MITOUJTAGのロジアナを使ってみると、
 ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄| ̄ ̄ ̄ ̄ ̄ ̄
というように、常にHでたまにL、と正常な波形が表示されます。

もちろん、細かいところまでは見えませんが全体の傾向としてそういう感じが見えます。
原因は、簡単なことでした。
UCFファイルが間違っていました。
古い回路図を参照してピンを定義していたので、同期信号につながっている端子に別の信号が出てしまっていたようです。
つまり、JTAGロジアナとオシロの結果が異なる場合はピン定義を疑うべし、ということでした。
UCFファイルを最新の回路図をもとに作り直したら、ちゃんと絵が出ました。

次はAC97のチップから音声を取り込んで波形表示することをやってみます。
| 固定リンク


コメント