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 件のコメント:
コメントを投稿