f[6];
R=fopen('R.txt','r');
G=fopen('G.txt','r');
B=fopen('B.txt','r');
out=fopen('out.txt','w');
while(!feof(R) || !feof(G) || !feof(B))
{
fscanf(R,'%d',&r);
fscanf(G,'%d',&g);
fscanf(B,'%d',&b);
t=start++;
for(int i=5;i>=0;i--)
{
buf[i]=t%16;
t=t>>4;
}
//输出数据地址
for(i=0;i<6;i++)
fprintf(out,'%X',buf[i]);
//数据打印部分
fprintf(out,': 00');
fprintf(out,'%X',b/16);
fprintf(out,'%X',b%16);
fprintf(out,'%X',g/16);
fprintf(out,'%X',g%16);
fprintf(out,'%X',r/16);
fprintf(out,'%X',r%16);
fputc(' ',out);
}
printf('任务以结束! ');
}
时钟信号50MHZ进过FPGA上的锁相环进行分频处理得到25MHZ的时钟信号。
parameter Length = 128;//定义图片显示的大小
parameter Width = 128;
always @ (posedge VGA_CLK ) //行计数达到计数周期将重置
begin
if(H_Cnt==H_Tg-1) H_Cnt <=0;
else H_Cnt<= H_Cnt +1;
end
always @ ( negedge Hs)//场计数达到计数周期将重置
begin
if(V_Cnt==V_Tg-1) V_Cnt <=0;
else V_Cnt <= V_Cnt +1;
end
always @ ( posedge VGA_CLK )//产生行同步信号
begin
if(H_Cnt<=H_Ta-1) Hs<=0;
else Hs<=1;
end
always @ (V_Cnt)//产生场同步信号
begin
if(V_Cnt<=V_Ta-1) Vs<=0;
else Vs<=1;
end
always @ ( posedge VGA_CLK )
begin //在显示器上显示范围的控制
if(H_Cnt>=H_Ta+H_Tb+H_Tc &&
H_Cnt <=H_Ta+H_Tb+H_Tc+length-1 &&
V_Cnt>=V_Ta+V_Tb+V_Tc &&
V_Cnt <=V_Ta+V_Tb+V_Tc+width-1)
begin // ROM读取控制和数据处理
R<={Rom_Data[23:16],2'd3};
G<={Rom_Data[15:8],2'd3};
B<={Rom_Data[7:0],2'd3};
address<=address+1;//ROM地址加1
end
else
begin
R<=10'd0;
G<=10'd0;
B<=10'd0;
end
要把一幅图像的数据写入ROM,首先必须解决的就是写入文件的格式问题。一般的方法是通过编程器把Intel Hex,或者二进制文件.bin逐字节写入ROM。而图像都具有固定的格式,如BMP,JPEG,GIF等,其中的BMP格式图像是一种很常见的图像格式,没有经过压缩处理,且文件结构相对简单,易于处理,在本设计中采用了BMP图像作为研究对象。将BMP文件直接转化为Intel Hex文件比较困难,因此可先将BMP格式文件转化成mif格式文件,再由Quartus II 9.0直接将mif文件转化为Intel Hex文件,最后再将图像数据烧写入ROM中,本设计中,我们首先通过MATLAB将要显示的图片进行处理得到RGB三个颜色的分量,然后通过编程将各颜色分量生成一个mif文件,用于初始化LPM_ROM,利用Quartus II 9.0自带的MegaWizard Plug-In Manager创建存储RGB值的ROM模块, 同样利用Quartus II 软件生产一个存储器初始化(.mif)文件,其大小为Word size=32,Number of words =16384,将生产的RGB颜色值导入到mif文件中。
结 语
VGA接口显示器给我们提供了一个方便的显示方案,通过FPGA构造显示时序、以及ADV7123实现数模转化,在面积和速度上能够满足我们大部分的显示应用。实践证明基于FPGA 和ADV7123的VGA显示接口能够很好地在多种场合应用。
参考文献
[ 1 ] 潘松,黄继业. EDA 技术实用教程[M] . 科学出版社,1999 :2622265.
[ 2 ] 夏宇闻.Verilog数字系统设计教程[M].北京:北京航空航天大学出版社,2006.
[ 3 ]夏宇闻.复杂数字电路与系统的Verilog HDL设计技术[M].北京:北京航空航天大学出版社,1998.
[ 4 ] 刘宝琴.数字电路与系统[M].北京:北京清华大学出版社,1993.
2/2 首页 上一页 1 2 |