カテゴリ:未分類( 186 )

Pmod HDMI OUT の作り方

Pmod に HDMI コネクタをつける工作の話です。
適当に作ったら動いたって話なので、鵜呑みにはしないでくださいね。
HDMI コネクタを使っていますが、信号としては DVI 出力です。

Digilent の RGB to DVI IPを使っての出力を試しています。
解像度は 1280x800 の出力が出来ました。
FPGA 側の設計は ここ です。ポート接続は変える必要がありますが…
使っているコネクタはアマゾンで買った これ です。
このコネクタの仕様書は見つからなかったのですが、似たようなのがあったのでその通りに作ったらちゃんと動きました。
f0054075_12021546.png
DVI 出力なので、使うのはD2-0とCKのnega-posiで計8本です。Pmod 1個で接続可能です。
昨日の写真は2個分の幅がありますが、使っているPmodは1個だけです。
Pmodにつなぐ信号の他には、真ん中1行がグランド直結で、さらにオープン(OPN)とプルアップ(PU)とプルダウン(PD)が数本あります。
こいつらを固定しちゃっているせいで、DVIの出力しかできなくなっています。
プルアップ・ダウン抵抗は4.7KΩを使っていますが、多分もっと大きいほうがいいんじゃないかと思っています。
Pmod側のつなぎはRGB to DVI IPとの接続がつじつま合っていれば途中はどうでもよいでしょう。

[PR]
by tom01h | 2017-11-22 22:01 | Trackback | Comments(0)

Pmod HDMI OUT

かなり目がしょぼしょぼですが、何とか動くものが出来ました。
でも、ピンヘッダの向きを間違えたからか、ちょっと接触が悪いです。
部品はいっぱいあるし、はんだ付けのコツもちょっとだけつかめてきたので、
もう1回チャレンジしてみたいと思います。
本当は Arty 用なのですが、今は出力できる回路がないので Arty Z7 で試しています。
f0054075_23084284.jpg

[PR]
by tom01h | 2017-11-21 23:23 | Trackback | Comments(0)
そう思って部品だけ買い集めてみました。
DVI で使うなら これくらい適当 でも動くことを期待しています。
SD の基盤は、そのまま PMOD に刺さるかと思いきや、電源とグランドが逆でした。
しかも3.3V電源では動かないようです。レギュレータっぽいICを取っ払って直結すれば動くとの情報もあります。
f0054075_21410969.jpg

[PR]
by tom01h | 2017-11-16 22:40 | Trackback | Comments(0)

Vivado が立ち上がらない

V-scale を修正して、憎むべき D が1サイクル遅れるプロトコルから解放してみたんだけど、
Windows Update のせいかな? 1週間前には使えていた Vivado が立ち上がらない。
何もしてないのに壊れた。
[追記 この1週間で Fall Creators Update にしていたのを忘れていました。
こんな情報出てました。]
合成結果を確かめられないけど、とりあえず AXI 化も進めるか。

[PR]
by tom01h | 2017-11-14 00:27 | Trackback | Comments(0)

Arty ファミリ

なんかすごいの出るみたいですね。3倍ですよ。まぁ、2年も経ちゃそんなものですかね。

f0054075_18212699.png

[PR]
by tom01h | 2017-11-13 22:03 | Trackback | Comments(0)

Interface 12月号

とりあえず買ってみた。膨大な情報の羅列と、すごくマニアックな記事の組み合わせ?
なんだか読むの大変そうです…
f0054075_19434952.jpg

[PR]
by tom01h | 2017-10-25 19:49 | Trackback | Comments(0)

4値アクセラレータ完成

4値アクティベーションのアクセラレータも完成しました。
必要な工夫はモデル作成時の想定通りだったので、昨日以上のコメントもなく…
テストベンチは別に良いけど、回路部分だけはBNNと共通にしたいんです。
でも今はBNNが使えなくなっているはずで、直さなくちゃいけないけど Github は更新しています。

[PR]
by tom01h | 2017-10-22 23:57 | Trackback | Comments(0)
とりあえず C 言語で書いたサンプルモデルが出来上がりました。
やはり精度低下はバグが原因で、途中の演算精度を落としたせいではなかったようです。
ちなみに4値アクティベーションは、学習時は±1/3,1を使っていましたが、推論時は全体を3倍して±1,3を使います。
それに合わせて、正規化用の平均と分散も3倍します(正確にいうと分散を3倍するのではないですが…)。また、入力値から平均を引くのは良いとして、偏差で割るのは大変です。前もって逆数を計算しておいて掛けるのだって、やはり大変です。なので、次段の活性化で比較に使う1/2の方に偏差を掛けておきます。これで、2値の時と比べても、計算量は倍にはならないと思っています。
Github 更新してます。

[PR]
by tom01h | 2017-10-21 23:15 | Trackback | Comments(0)

蒸留

アクセラレータの4値化もやってはいるのですが、(バグ?)精度の低下の原因がわからなくて…

しょぼいニューラルネットの学習の方法に蒸留という方法があるらしいです。
大雑把にいうと、あいまいな答えしか出しようがないような教師データで変な癖がつかないように?、自分より賢い学習済みのネット(教師ネット)の出した判断結果を教師データとして使った学習法です。
例えば、教師ネットが ”1” の可能性が 60% で ”7” の可能性 40% と言うならそれが教師データになります。真実がどうとかは気にしません。正義みたいなもんです。
バイナリ化したネットでは、バイナリ化する前のネットを教師ネットにしてみるのもありなんじゃないか。
ということで試してみた。
1%くらい良くなっているような、誤差のうちのような…
f0054075_00405195.png


[PR]
by tom01h | 2017-10-20 23:59 | Trackback | Comments(0)

入力データ加工

入力データを
0~1の実数→0~255の整数→-255~255の奇数
と変更して試してみた結果、最後のが一番良い結果を見せました。
そもそも認識精度のばたつきが気になっていたのですが、精度そのものもちょっと上がったみたいです。こんなことで…
f0054075_18034763.png
次こそ4値化のアクセラレータ作る。
[PR]
by tom01h | 2017-10-14 18:04 | Trackback | Comments(0)