新闻中心

EEPW首页 > EDA/PCB > 设计应用 > 使用 FPGA 控制 VGA 显示

使用 FPGA 控制 VGA 显示

作者: 时间:2009-05-26 来源:网络 收藏

而与我们电脑相关的地方,就是目前的显示器大都是采用了 RGB 颜色标准,这就是为什么它对我们来说这么重要了。

在显示器上,是通过电子枪打在屏幕的红、绿、蓝三色发光极上来产生色彩的,目前的电脑一般都能显示 32 位颜色,约有一百万种以上的颜色。如果说它所显示的颜色 还不能完全吻合自然界中的某种色彩的话,那已经几乎是我们肉眼所不能分辩出来的了。

而 RhicSP2200 开发板系统中每一个色 彩都是使 用 2bit 来 表示的,因 此可见 RhicSP2200 系统可以出现64 种不同的颜 色。其他色彩的使用请在实际工作中更多的加以体会。

显示

通过以上的讲述,已经可以在计算机显示器上显示一个有颜色的区域了,在这个小节中我们再举一个简单的例子,在显示器中显示两个镶嵌的正方形,字符等显示与其类似,可以参考瑞芯科技其他设计示例。 例如我们可以在 xpos 与 ypos 的某一区间给 RGB 信号赋不同的值将得到如图2 所示的显示效果。

例子 1:使用 50MHz 时钟频率产生的 同步脉冲以及视频有效信号

module sync_gen_50m(
rst_n,// synthesis attribute clock_buffer of rst_n is ibufg;
clk,

hsync,
vsync,
valid,
x_cnt,
y_cnt
);
input rst_n ;
input clk ;

output hsync ;
output vsync ;
output valid ;
output [9:0] x_cnt ;
output [9:0] y_cnt ;

reg hsync ;
reg vsync ;
reg valid ;
reg [9:0] x_cnt ;
reg [9:0] y_cnt ;

always @ ( posedge clk or negedge rst_n )
if ( !rst_n )
x_cnt = 10'd0;
else if ( x_cnt == 10'd1000 )
x_cnt = 10'd0;
else
x_cnt = x_cnt + 1'b1;

always @ ( posedge clk or negedge rst_n )
if ( !rst_n )
y_cnt = 10'd0;
else if ( y_cnt == 10'd665 )
y_cnt = 10'd0;
else if ( x_cnt == 10'd1000 )
y_cnt = y_cnt + 1'b1;

always @ ( posedge clk or negedge rst_n )
if ( !rst_n )
begin
hsync = 1'b0;
vsync = 1'b0;
end
else
begin
hsync = x_cnt = 10'd50;
vsync = y_cnt = 10'd6;
end

always @ ( posedge clk or negedge rst_n )
if ( !rst_n )
valid = 1'b0;
else
valid = ( ( x_cnt > 10'd180 ) ( x_cnt 10'd980)
( y_cnt > 10'd35) ( y_cnt 10'd635) );

endmodule


上一页 1 2 下一页

关键词: FPGA VGA

评论


相关推荐

技术专区

关闭