Tech と Culture

テクノロジーとカルチャー

問題点メモ

ここまでで、YCbCr-RGB変換と、Upsampleの部分がハードウェア化でき、無事に動画が再生できました。 ここで、いろいろ問題点が出てきているのでメモとしてまとめておきます。

(1) windows上(msys, cygwin)のgrlibスクリプトがうまく動作しない。
最初は問題なく動いていましたが、一度スクリプト越しにISEを立ち上げると、以降modelsimを立ち上げてもファイルが見つからないと言われる。

色々調べると、うまく行っているときに生成されているスクリプトではファイル指定が、
"/home/kurimoto/......."または、"C:/msys/1.0/home/kurimoto/......."であるのに対して、

現在は、
"C:/home/kurimoto/......."と指定されている模様。
msysやcygwinの特徴である、ディレクトリパス指定の変換がうまく動いていない。

マニュアルにも安定性が低いと書いてあるのし、自分の知識不足で回避方法が分からない。。。
再インストールして、modelsimのみ使うようにするか、、、、

(2)誤差
DCT部分に誤差があり、今のところ原因が分かっていない。
double型で行った、単純なアルゴリズム確認のところですでに誤差が出来ていることが確認できている。IJGの dctint も dctft (float型で速度を犠牲にして精度を上げるバージョン)もほぼ同じ値を出力していることが確認できたので、ハードウェア確認ソフトに誤差があることが予想される。
さらにハードウェア確認ソフトと、実際に記述したRTLにも結構な誤差があった。
とりあえず、RTLとIJGの誤差を調べるところから始める。

(3)Linux版 ISE10.1
Linux ISE10.1 でマッピングした結果が、Windows版 ISE10.1より大きい。
Windows版では、Slice使用率88%だったが、Linux版では、94%になった。
11.1を使用すると、論理合成までは何もスクリプトを触らずに動いて大分使用率はさがったが、途中で止まる。以前のPendarさんのメールのやりとりを考えると、gaislerチームは、10.1を使用しているようなので、10.1を使用していた方が安全か。。。。

(4)FPGAリソース
上記のように、現在動画再生できたものは、Slice使用率94%に達している。
これから、二つDCTを足すが、以前のDCTデータパスRTLのみを合成して、Slice使用率5%だった(前段のデータパスビット幅が大きい方)。
このまま単純に追加するのは厳しくなってくることが予想される。
また、RAMB16sが 28/32 を使用している。
ダブルバッファ二つと、量子化係数格納メモリを使用することを考えるとちょっと厳しい。
(さらにハフマンデコーダ部分でもメモリが必要になってくる)
キャッシュ等の他の部分のメモリを減らすことが必要になってくる可能性大。

こんなところです。特に(1)が大きくのしかかってきています。

その他、データが大きくなってきたので、バックアップが必要だと思っていましたが、最近は無料のオンラインストレージが充実しているようで、DropBoxというものを使用してバックアップをとることにしました。

日曜工作と言っても、少しづつ複雑になってきました。
まあ、それでもASICに比べれば全然たいしたことないのでしょうけど。