大家看看我的FPGA驱动5‘tft
本帖最后由 wwwjjj-1 于 2012-4-20 09:37 编辑使用黑金开发板(EP2C8Q208C8)
显示横条正常
显示竖条好像地址有问题
仿真图如下 行场极性反的
各位仙人看看哪的问题
程序如下:
module sync_module(
CLK,RSTn,
VSYNC_Sig,HSYNC_Sig,Read_Sig,
Column_Addr_Sig,Row_Addr_Sig,DCLK
);
input CLK;
input RSTn;
output VSYNC_Sig;
output HSYNC_Sig;
output Read_Sig;
output Column_Addr_Sig;
output Row_Addr_Sig;
output DCLK;
reg Count_H;
always @(posedge CLK or negedge RSTn)
if(!RSTn)
Count_H<=11'd0;
else if(Count_H>=11'd928)
Count_H<=11'd0;
else
Count_H<=Count_H + 1'b1;
reg Count_V;
always @(posedge CLK or negedge RSTn)
if(!RSTn)
Count_V<=11'd0;
else if(Count_V>=11'd525)
Count_V<=11'd0;
else if(Count_H>=11'd928)
Count_V<=Count_V + 1'b1;
assign HSYNC_Sig = (Count_H<11'd88);
assign VSYNC_Sig = (Count_V<11'd3);
assign Read_Sig = (HSYNC_Sig<=800) && (VSYNC_Sig<=480);
//assign Frame_Sig = (Count_V==11'd803)? 1'b1 : 1'b0;
assign DCLK = CLK ;
assign Column_Addr_Sig = Count_H - 11'd88;
assign Row_Addr_Sig = Count_V-11'd32;
endmodule
tft手册如下:
看到了,信号反了,H/VSync使用的是下降沿,而你写成上升沿了。
assign HSYNC_Sig = (Count_H<11'd88);
assign VSYNC_Sig = (Count_V<11'd3);
这样就变成在第88列时/第3帧时同步,然后就变成你那样子了(注意你的竖条中间有一段是回扫信号,说明同步变晚了)。不过你的代码真简单,我写了450行左右。 但如果这样
assign HSYNC_Sig = (Count_H<11'd88) ? 1'b1: 1'b0;
assign VSYNC_Sig = (Count_V<11'd3)?1'b1: 1'b0;
连上面得效果都没有!!
页:
[1]