2011年09月30日

VGA出力の設計(1)

 VDG周りが出来たので、それを表示するためにVGAモニタ出力の回路を設計する事にしました。

 ビデオ出力も考えましたが、ハードルがかなり高いようです。

 詳しく書かれているページはこちら → http://picavr.uunyan.com/
 この中のAVRの工作、の所にいろいろ書いています。


 VGA出力は、かなり簡単なようです。

 VGA出力の仕様はこちら → http://www.epanorama.net/documents/pc/vga_timing.html

 このページによると、HSYNC、VSYNC、を適切に出力すれば、出力できるようです。


 とりあえずテスト的にカウンタを組んで、HSYNC、VSYNC、を出力するように HDL を組みました。
 データはとりあえずベタ"1111"としました。

 で、QuarutsII でレイアウトすると...画面が出ない。

 ロジアナで見てみると、カウンタの値がめちゃくちゃ。


 ちゃんとタイミング制約ファイル(〜.sdc)を作らないとだめかー、という事で(どうせ必要なので)、作成してみることにしました。

 その制約ファイルがこれです。

sdc ファイル


 この際なので、後から必要なものも入れました。

  2〜 3行目:外部からのクロックの設定
  5〜12行目:PLLの逓倍/分周の設定
 14〜18行目:clock uncertainty の設定
 20〜25行目:それぞれのクロックは非同期なので、それらの間のパスはタイミング検証しないようにする。
 28〜37行目:出力信号の遅延値の設定

 PLLの分周比は変な数字ですが、出来るだけオリジナルのクロック周波数に近づけた結果です。

 50MHz × 63/220 = 14.318MHz(VDG周りのクロック)
 50MHz × 23/ 72 = 15.972MHz(CPUのクロック)
 50MHz × 1/ 2 = 25MHz  (VGA出力のクロック)


 これで、レイアウトしてみると...やはりまだだめ。

 ロジアナで見たカウンタ値もめちゃくちゃ。

 ....と思ったら。ロジアナの信号のアサインが、MSBとLSBが逆でした。


 カウンタはキチンと動いていて、パルスもちゃんと出力されているのに、画面が出ない...


 もしやと思って、表示期間以外を"0000"にするようにすると...おー、ちゃんと色がでたー。

 しょーもないミスをしてしまいました。


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

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

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


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

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