2012年04月30日

画面周りのRAM削減(1)

  画面周りのRAM削減に着手しました。

  今の構成は、

  CRTC は、14MHz で912×262を出力(1画面分、約1/60秒)
  ↓
  2ポートRAM で乗せ換え(1画面分のRAM)
  ↓
  VGA への出力は、25MHz で、800×524を出力(1画面分、約1/60秒)


  となっています。


  途中の1画面分のRAM がかなり大きく、今の構成では、5 bit × 65535 word を使っています。
  1 word 分(5ビット)が、1ドットに相当していて、色データを適当にエンコードして実装しています。


  で、この乗せ換えのRAMを減らす方針ですが...

  ・ CRTC の1画面の周期と、VGA の1画面の周期を完全に合わせる

  です。


  これだと、乗せ換えのRAM は1画面分は必要ではなく、揺らぎ分を吸収するだけでよくなります。


  この時に、出来る事と出来ない事を整理すると...

  ・14MHz、25MHz のクロック周波数は、動作途中で変更する事は出来ない。
  ・CRTC の出力クロックを変更するのは不可(本物の動作と変わるため)。
  ・PLLを使って、完全に合わせるのは難しい。ずれた時の対処も難しい。

   なので、結論としては、VGA の出力を変更することになります。


  VGA の仕様は、25.175MHz で、水平方向に800クロック、垂直方向に525クロックのようです。
  ですが、このクロック数は、多少増減しても動作はするみたいです。現に今の回路は524クロックになっています。


  計算してみると、垂直方向のクロック数を、520クロックもしくは522クロックのどちらかにすればいいようです。
  通常、520クロックにしていて、ある程度ずれたら522クロックを挟む、という構成になります。

  VSYNC から後ろの方のラインを2ライン分抜く事になるので、問題にならないかと思います。



  で、実装してみましたが...

  パソコン用モニタ3台、液晶テレビ(パソコン入力あり)1台試しました。

 ・パソコン用モニタ1台目:正常動作
 ・パソコン用モニタ2台目:正常動作
 ・パソコン用モニタ3台目:同期が取れず
 ・液晶テレビ      :同期は取れたが、上下にふらふらする


  と動かないものがありました。最近のものの方がNGです。


  うーん...もうちょっと解決策を探ってみます。










posted by えすび at 21:02| Comment(0) | FPGA化:回路全般 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。