2014年7月16日水曜日

my_FPGA_BOARD 10 (dvi_encの実装 1)

FT2232HLの非同期FT245モードの動作確認はできたので、今度は趣向を変えて画像出力 (dvi_enc)をやってみることにした。 画面サイズはXGA (1024 x 768)を目指す。  my_FPGA_BOARDに搭載しているMachXO2はTMDSやCML信号出力をサポートしていないのでMachXO2がサポートしている出力レベルで出力し、これを外付け回路でTMDSにレベル変換する必要がある。  DVI I/Fは端的に言えばシリアルI/Fであり信号レートはドットクロックの10倍のレートになる。 XGAの場合はドットクロックが65MHzなので650Mbps (325MHz)である。 MachXO2のデータシートによると、このレートに対応できるのはLVDSのみであるので、LVDSで出力することにする。

システムアーキテクチャは以下のようにした。 まともに動作するか不安もあったので、フレームバッファの回路は実装せず、dvi_encのデモ回路のみを実装している。

基本的にdvi_encのRTLをそのまま使用しているが、クロックやdvi_tmds_txはMachXO2用に若干変更した。

クロックの位相関係

合成は出来たが、1箇所だけタイミングがmetしていない。

metしていない部分の詳細

合成制約等の設定を変えれば解決できるのでは無いかと思うが、とりあえずこのままで動作確認してみることにした。
レベル変換回路は以下のようにした。

この回路をユニバーサル基板に実装した。


動作した。!!


デジタルI/Fだけあって、階調も綺麗に出ている。

レベル変換回路出力のコモンモードレベルと差動振幅レベルに不安もあったのだが、レベル変換基板の出力をLCDディスプレイ(SAMSUNG SyncMaster 2243)と直結した場合でも、また、BUFFALOのHDMIセレクタを介した場合でも動作した。  こんなに簡単にXGAが表示できるとは想定してなかったので嬉しい。 \(^_^)/   ただし、現状はdvi_enc部のみで実用性は無い。 フレームバッファも入れてみよう。


0 件のコメント:

コメントを投稿

自作CPUで遊ぶ 25

まだ制御ソフトが完成していないので今まではスピンドルを移動するために一々簡単なプログラムを書いて移動させていたのだが、非常に面倒なのでCNCペンダント的なものを作ることにした。 右側の縦に2つ並んでいるスイッチ...