[FPGA] ZedBoard から VGA 出力
FPGA マガジンや、FPGA プログラミング大全に乗っていた、VGA 出力を ZedBoard で試してみる。
分周回路
reg [1:0] cnt;
always @( posedge clk, posedge reset ) begin
if ( reset )
cnt <= 2'h0;
else
cnt <= cnt + 2'h1;
end
assign pck = cnt[1];
Zedboard のクロックは 100MHz なので、これを4分周して 25MHz のクロックを作っている。cnt レジスタは 2bit で +1 でカウントアップをし続けることで、00 -> 01 -> 10 > 11 を繰り返す。この時、最上位 bit の cnt[1] が 1 になる立ち上がりを取得することで 1/4 のクロックが得られる?
ボードからの出力
FPGA からの出力はデジタル情報なので「ラダー抵抗」と呼ばれる仕組みを使って D-A 変換を行い、目的の電圧 (0.7V?) に変換してから VGA 端子で出力している。当たり前だが VGA はアナログなので、アナログに変換しないといけない。
参考
- FPGA マガジン No.7
- FPGA プログラミング大全 Xilinx編
Video Graphics Array
https://ja.wikipedia.org/wiki/Video_Graphics_Array
VGA端子
https://ja.wikipedia.org/wiki/VGA%E7%AB%AF%E5%AD%90
VGA Signal Timing
http://www.tinyvga.com/vga-timing
11 VGA Port
https://digilent.com/reference/programmable-logic/zybo/reference-manual
ちょっとTea Time!? VGAを調べてみる
http://www.easyaudiokit.com/bekkan2020/TeaTime8/vga.html
VGAモジュールの作成
http://www.arch.cs.kumamoto-u.ac.jp/~kuga/cad/exp/sys/2009/vga.html
分周器・CPUトップモジュール
https://sagara-works.jp/research-and-development/code-prescaler/