アナログ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