Tech と Culture

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

Leon BBS

Leon users has active BBS. Go to LEON BBS This entry's contents is written for discussion of Leon BBS. I analysis structure of false-path net. Altera quartus version is 10.0 .I found critial warninng message related to these false-path. Bu…

OpenCV を使ってみました

どうもソースコードの清書がやる気が起きない。。。 という訳で、ちょっと気分転換に今流行りのOpenCVをいじってみました。Visual C++ と、OpenCV2.1をダウンロードしてくると簡単に付属しているプログラムが動作しました。「Open CV プログラミングブック」…

ボード検討

デバッグにChipscopeのライセンスが必要、かつ現在のボードの使用率いっぱいいっぱいということでボードの検討などをしてみました。Leon3はXilinx,Altera,....多数のテクノロジーで動くようなソースコード記述がなされています。その中でも、$GR_HOME/design…

米著作権庁の発表

非常に大きなニュースが飛び込んできました。 米著作権庁 合法利用の範囲を大幅拡大日本では、iPhoneのjailbreakがグレーゾーンから合法になったというニュアンスで報じられていますが、そんなに単純な話ではありません。数年後のハイテク業界の勢力図に大き…

エントリ公開します。

jpegファイルによっては画像が乱れるというバグがまだ残っているのですが、とりあえず当初考えていたネットワークmotionJPEGビューワが動作したので、大きな間違いはないだろうと思って過去のエントリも公開します(データパスのビット幅等、これから文章見直…

ネットワーク上のmotionJPEG再生

サーバー側の準備が整ったので、クライアント側を考えます。FPGA上のプログラム djpeg で、ソケットをきちんと作成すれば、後は普通にファイルを読むようにデータをネットワーク越しに読み込めるはず。以下のようなシステムが動くはずです。 djpegの中で、フ…

ffserver

とりあえず簡単な通信ができるようになりました。いろいろHPを眺めていると、どうやらデータを送信するときには全てを一度に送れなかったりすることがあるようです。そこら辺もプログラムしても良いのですが、今回はサーバー側のプログラムは自作せずにffser…

TCP/IP 通信

せっかくLinux上でシステムが動いていますのでネットワークで通信させたいと考えて、TCP/IPのソケット通信について勉強してみました。geekなページ ネットワークプログラミングの基礎知識二つのHPを参考に勉強しました。サーバのIPアドレスを指定してソケッ…

バグ

動画が再生できるようになったのですが、どうやらどこかにバグが潜んでいるようで、motionJPEGファイルによっては画像が乱れます。たまにおかしくなるようなバグが一番厄介なのですが、、、、、 いろいろ探って、画像が壊れる一枚のJPEGファイルを作り出すこ…

motion JPEG再生

デバイスドライバのデバッグに苦労してました。 原因は、ioctlでデータを渡す構造体のサイズが大きすぎて、そこでページフォルトが起きていました。 8bitキャッシュのデータを一度に渡そうとしていました。ページサイズ相当のデータをいきなり渡していたら、…

雑記

前回のバスの問題というのは間違いでした。 書き込みがうまく行かなかったものは、JPEGモジュールの入り口と最終段のFIFOの段数が少ない時です。 FIFOをFPGAのブロックRAMぎりぎりの512段に変更した後は、バスのウェイトは起きてない模様です。そうすると性…

Linux上でのJPEG表示

デバッグしてました。。。前のエントリに書いた修正以外にも沢山。 fetch stageのステートマシンの遷移条件は以下のように修正。 デバッグ以外にも、motionJPEGへの対応のためSOSマーカーが出てくるまでFIFOデータを単に消費し続けるモードを追加しました。t…

雑記

FPGAに収めるためにいろいろ変更中です。。。シフタを純粋なシフタ記述に変更 ハフマンモジュールとDCTモジュールの間のメモリを3つから2つに減らす。 YCC-RGB変換の固定値乗算の部分を部分積の足し算にRTL変更。 ISEのバージョンアップ それに伴うVHDL微小…

雑記

シフタを乗算器を使わずに普通に記述し、YCC-RGB変換モジュールの固定値乗算を乗算器を使わないようにすれば入るかもしれないと思い変更中です。ISEの謎のInternal Error等が出るのでISEのバージョンUPを行いました。これまでISE10を使っていましたが、Gaisl…

FPGA仮インプリ

メモリとコントローラを以前のものを変更してコーディングし、接続してISEにかけてみました。 面積と周波数(クリティカルパスの遅延)を見るためです。 合成結果は、、、、、Device utilization summary: ---------------------------Selected Device : 3s1…

64画素メモリ

複数のjpeg画像ファイルでハフマンデコードが問題なく行われていることが確認できました。これまでの方針で一応ハフマンデコードできると考えられます(バグはまだ入っている可能性大)。 しかし、FPGAにインプリしてまともに動くかどうかはまだ分かりません…

雑記

いきなりRTLを書いて、シミュレーションを通すという方法をとりましたが、デバッグにかなりてこずりました。。。 ようやく、いつもの80x80の画像のハフマン符号がきちんと出力されるようになりました。 過去のエントリの図も修正しました。まだまだバグがい…

雑記

デバッグ中。。。。 フェッチの部分に問題が発覚して修正方法を考えている最中です。。。。「電子書籍の衝撃」佐々木俊尚著 を読みました。 なかなか面白い本でした。日本には本の再販制度というものがあり、書店の売れ残りは出版社が保障してくれるようにな…

ハフマンデコードモジュール 11 AMBAアドレス

AMBAのアドレスは以下のようにしました。 とりあえず、これで頭の中での設計は一旦終了。実際のコーディングに入ります。 C言語でワークメモリのウェイトを表現して検証するのが面倒くさいので、直接RTL書こうかと思っていたのだけど、これぐらいの規模にな…

ハフマンデコードモジュール 10 デコードパート ステートマシン

デコードパートのステートマシンは以下のようにしました。 条件が書かれていない部分は、他の矢印の条件以外すべての意味です。

ハフマンデコードモジュール 9 メモリアドレスカウンタ

デコードしたRunlengthの値分だけアドレスを飛ばして、値を書き込んでいきます。 そのためのカウンターは以下のようにしました。 また、このカウンタの値によって、Huffman Cache mem や Serial Huffval mem で出てきた符号(DC/AC, id)を決定します。

雑記

ここまで考えてきて、今更ながらシリアルと呼んでいるものを16個作って比較器の出力でどれか一つ選ぶハードウェアが一番シンプルで高速なように思えてきました。。。。。。まあ、けど、いろいろ考えていると際限がないので、とりあえず今のまま設計します。 …

ハフマンデコードモジュール 8 レジスタ演算とシフト量演算

内部レジスタの演算と、シフト量演算部分は以下のようにしました。Huffman cache -> シフト量演算 -> -> シフタ -> sign_extention -> メモリ のパスが一番重そうな気がします。。。ここで出てくるレジスタ信号はステートマシンの遷移の判断にも使用されます…

ハフマンデコードモジュール 7 シフター

シフターは、32bitならまじめにコーディングしても結構良いものができるような気もしますが、FPGAリソースに詳しくないので以下のように乗算器を用いて構成しようと思います。乗算器ハードを使ってくれれば高速になるかと思ってやっていますが、実際のところ…

ハフマンデコードモジュール 6 シリアル

シリアル処理部分の回路は以下のようにしました。 基本的にIJGのハフマンデコードの所で調べた、Huffval[code + offset[k]] という演算を行います。 serialcheckステートで、9,10,11,.....とフェッチレジスタから持ってくるデータ量を増やしながら、Maxvalue…