花费了两天的时间来研究VGA显示正弦波的试验,波形一直显示不出来。究其原因,是因为一直以来,都是用VGA显示的正弦波的数据,而其实正弦波的每个数据对应的只是一个VGA显示的屏幕上的一个点,而不是点阵。
整个试验的扩展图如下图所示,主要由四部分组成,其中PLL_40M用于生成40M的时钟信号;ROM_SIN用于存储正弦波数据;vga_sync_module用于输出行同步信号和列同步信号,以及当前的X地址和Y地址;vga_congtrol_module则用于从ROM中读取数据及输出显示。
![](/data:image/png;base64,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)
vga_sync_module:
module vga_sync_module
(
CLK,RSTn,Column_Addr_Sig,Row_Addr_Sig,HSYNC_Sig,VSYNC_Sig,Ready_Sig
);
input CLK; //时钟信号,40M
input RSTn; //复位信号
output [10:0]Column_Addr_Sig; //X坐标
output [10:0]Row_Addr_Sig; //Y坐标
output HSYNC_Sig; //行同步信号
output VSYNC_Sig; //列同步信号
output reg Ready_Sig;
reg [10:0]HSYNC_Cnt; //行计数
reg [10:0]VSYNC_Cnt; //列计数
always @(posedge CLK or negedge RSTn)
begin
if(!RSTn)
HSYNC_Cnt<=11'd0;
else if(HSYNC_Cnt==11'd1056)
HSYNC_Cnt<=11'd0;
else
HSYNC_Cnt<=HSYNC_Cnt+1'b1;
end
always @(posedge CLK or negedge RSTn)
begin
if(!RSTn)
VSYNC_Cnt<=11'd0;
else if(VSYNC_Cnt==11'd628&&HSYNC_Cnt==11'd1056)
VSYNC_Cnt<=11'd0;
else if(HSYNC_Cnt==11'd1056)
VSYNC_Cnt<=VSYNC_Cnt+1'b1;
end
always @(posedge CLK or negedge RSTn)
begin
if(!RSTn)
Ready_Sig<=1'b0;
else if(HSYNC_Cnt>=11'd216&&HSYNC_Cnt<11'd1017&&VSYNC_Cnt>=11'd27&&VSYNC_Cnt<11'd627) //屏幕显示区域
Ready_Sig<=1'b1;
else
Ready_Sig<=1'b0;
end
assign HSYNC_Sig=(HSYNC_Cnt<11'd128)?1'b0:1'b1;
assign VSYNC_Sig=(VSYNC_Cnt<11'd4)?1'b0:1'b1;
assign Column_Addr_Sig=Ready_Sig?(HSYNC_Cnt-11'd216):1'b0;
assign Row_Addr_Sig=Ready_Sig?(VSYNC_Cnt-11'd27):1'b0;
endmodule
vga_congtrol_module:
module vga_control_module
(
CLK,RSTn,Column_Addr_Sig,Row_Addr_Sig,Ready_Sig,ROM_Addr,ROM_Data,Red_Sig,Green_Sig,Blue_Sig
);
input CLK;
input RSTn;
input [10:0]Column_Addr_Sig;
input [10:0]Row_Addr_Sig;
input Ready_Sig;
input [7:0]ROM_Data;
output [7:0]ROM_Addr;
output reg Red_Sig;
output reg Green_Sig;
output reg Blue_Sig;
reg [7:0]m;
always @(posedge CLK or negedge RSTn)
begin
if(!RSTn)
m<=8'd0;
else if(Ready_Sig)
m<=Column_Addr_Sig[7:0]; //读取的地址为X,即行地址
else
m<=8'd0;
end
always @(posedge CLK or negedge RSTn)
begin
if(!RSTn)
begin
Red_Sig=1'b0;
Green_Sig=1'b0;
Blue_Sig=1'b0;
end
else if(!Ready_Sig)
begin
Red_Sig=1'b0;
Green_Sig=1'b0;
Blue_Sig=1'b0;
end
else if(Row_Addr_Sig==ROM_Data+200) //当数据与列地址相等的时候,该点显示;此处的加200,实际上是在VGA的显示中下移了200
begin
Red_Sig=1'b1;
Green_Sig=1'b1;
Blue_Sig=1'b1;
end
else
begin
Red_Sig=1'b0;
Green_Sig=1'b0;
Blue_Sig=1'b0;
end
end
assign ROM_Addr=m;
endmodule