アナログVGAテスト
昨日は、アセンブラも終わったことなので、トラ技2009/11月号を参考にカラーバーを出してみました。
ここまではあっさり行ったのですが、画像を描画しようと思ったら画像を転送する手段が・・・
SDカードに書いて転送しようとしたところでSDCにつっかえてます。
自作回路で萌え画像を拝める日は先か・・・
ああ、でもこのカラーバー、1ドットずれてる気がします。もしかしたら同期信号がちょっとずれてるのかも。
(10/03/19)コード落とすの忘れてた
`define CLK_ns 20 module vgac( input CLOCK_50, input [0:0] BUTTON, output VGA_HS, output VGA_VS, output [3:0] VGA_R, output [3:0] VGA_G, output [3:1] VGA_B, ); //registers reg rVGA_HS; assign VGA_HS = rVGA_HS; reg rVGA_VS; assign VGA_VS = rVGA_VS; reg [3:0] rVGA_R; assign VGA_R = rVGA_R; reg [3:0] rVGA_G; assign VGA_G = rVGA_G; reg [3:0] rVGA_B; assign VGA_B = rVGA_B; reg [10:0] rPIX_CNT; wire inRESET; reg [9:0] rLINE; smSW sSW (CLOCK_50, BUTTON, inRESET); always@(posedge CLOCK_50 or negedge inRESET) begin if(inRESET == 1'b0)begin rPIX_CNT <= 11'h0; rLINE <= 10'h0; rVGA_HS <= 1'h0; rVGA_VS <= 1'h0; rVGA_R <= 4'h0; rVGA_G <= 4'h0; rVGA_B <= 4'h0; rSD_CLK <= 1'h0; end else begin rPIX_CNT <= rPIX_CNT + 11'h1; if(rPIX_CNT == 11'd132) begin rVGA_B <= ~rVGA_B; end else if(rPIX_CNT == 11'd265) begin rVGA_R <= ~rVGA_R; rVGA_B <= ~rVGA_B; end else if(rPIX_CNT == 11'd398) begin rVGA_B <= ~rVGA_B; end else if(rPIX_CNT == 11'd531) begin rVGA_R <= ~rVGA_R; rVGA_G <= ~rVGA_G; rVGA_B <= ~rVGA_B; end else if(rPIX_CNT == 11'd664) begin rVGA_B <= ~rVGA_B; end else if(rPIX_CNT == 11'd800) begin rVGA_R <= 4'h0; rVGA_G <= 4'h0; rVGA_B <= 4'h0; end else if(rPIX_CNT == 11'd856) begin rVGA_HS <= ~rVGA_HS; end else if(rPIX_CNT == 11'd976) begin rVGA_HS <= ~rVGA_HS; end else if(rPIX_CNT == 11'd1039) begin rPIX_CNT <= 11'h0; rVGA_R <= 4'hf; rVGA_G <= 4'hf; rVGA_B <= 4'hf; end else if(rPIX_CNT == 11'd0) begin rLINE <= rLINE + 10'h1; if(rLINE == 10'd637) begin rVGA_VS <= ~rVGA_VS; end else if(rLINE == 10'd643) begin rVGA_VS <= ~rVGA_VS; end else if(rLINE == 10'd666) begin rLINE <= 10'd0; end end end end endmodule