VGA_HS,VS,DOTCLOCK和分辨率之间的计算


//假如所要求显示的参数为1280*1024@60hz,则需要HS=64KHZ,VS=60HZ,PCLK=108MHZ
// H_Sync Generator, Ref. 64KHz Clock
always@(posedge iCLK or negedge iRST_N)
begin
//iCLK是由外部vga_pll输出点时钟108M提供
 if(!iRST_N)
 begin
  H_Cont  <= 0;
  mVGA_H_SYNC <= 0;
 end
 else
 begin
//计算一下:点时钟=108M,则每个时钟的周期为9.25*10(-3)us,所以1688个方波时钟
//=15.6us,换算成频率=64K,该方波脉宽比=112:1566=1:14
  // H_Sync Counter
  if( H_Cont < H_SYNC_TOTAL )
  H_Cont <= H_Cont+1;
  else
  H_Cont <= 0;
  // H_Sync Generator
  if( H_Cont < H_SYNC_CYC )
  mVGA_H_SYNC <= 0;//一开始为0
  else
  mVGA_H_SYNC <= 1;//后面一直高,计算时,一定要先转成周期
 end
end

// V_Sync Generator, Ref. H_Sync
always@(posedge iCLK or negedge iRST_N)
begin
 if(!iRST_N)
 begin
  V_Cont  <= 0;
  mVGA_V_SYNC <= 0;
 end
 else
 begin
  // When H_Sync Re-start
  if(H_Cont==0)
//每扫描完一行,场才进行计数,相当于基于行频的时钟,即这里的基准时钟为64k
//同样可以计算出V_hync频率=60hz
  begin
   // V_Sync Counter
   if( V_Cont < V_SYNC_TOTAL )
   V_Cont <= V_Cont+1;
   else
   V_Cont <= 0;
   // V_Sync Generator
   if( V_Cont < V_SYNC_CYC )
   mVGA_V_SYNC <= 0;
   else
   mVGA_V_SYNC <= 1;
  end
 end
end

 

//.h文件如下:这里的112,248,48等参数详见VGA时序参数表
// Horizontal Parameter ( Pixel )
parameter H_SYNC_CYC = 112;
parameter H_SYNC_BACK = 248;
parameter H_SYNC_ACT = 1280; 
parameter H_SYNC_FRONT= 48;
parameter H_SYNC_TOTAL= 1688;
// Virtical Parameter  ( Line )
parameter V_SYNC_CYC = 3;
parameter V_SYNC_BACK = 38;
parameter V_SYNC_ACT = 1024; 
parameter V_SYNC_FRONT= 1;
parameter V_SYNC_TOTAL= 1066;

 

VGA_HS,VS,DOTCLOCK和分辨率之间的计算

转载于:https://www.cnblogs.com/gmh915/archive/2009/09/30/1576966.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值