当前位置: 首页 > news >正文

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

相关文章:

  • 图灵近期新书精彩不断,让你应接不暇
  • 远古vod5.0的安装!
  • 烫发
  • 理解T-SQL:数据库表的创建、修改、删除
  • 关于战略 - 杰克韦尔奇的5张PPT
  • Autodesk 2011系列新产品DevDay将于12月在北京/上海举行
  • Producer Consumer
  • DMZ基础及应用
  • Oracle编程高手箴言:位图索引(Bitmap Index)的故事
  • 一生有你做朋友
  • Linux+Svn+apache2安装与配置
  • sql 中要求现实数据保留两位小数
  • Forefront Security For Exchange的反病毒测试
  • Application Data转移,修改Application Data文件夹路径
  • SQL Server 2005利用分区对海量数据的处理
  • 345-反转字符串中的元音字母
  • 4. 路由到控制器 - Laravel从零开始教程
  • ES6系列(二)变量的解构赋值
  • Javascript设计模式学习之Observer(观察者)模式
  • Python学习之路13-记分
  • Redash本地开发环境搭建
  • Synchronized 关键字使用、底层原理、JDK1.6 之后的底层优化以及 和ReenTrantLock 的对比...
  • Vue2.x学习三:事件处理生命周期钩子
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从零开始在ubuntu上搭建node开发环境
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 高性能JavaScript阅读简记(三)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 用Canvas画一棵二叉树
  • 自制字幕遮挡器
  • 回归生活:清理微信公众号
  • 交换综合实验一
  • ​水经微图Web1.5.0版即将上线
  • ​一些不规范的GTID使用场景
  • #Z2294. 打印树的直径
  • (C语言)fgets与fputs函数详解
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (篇九)MySQL常用内置函数
  • (转)VC++中ondraw在什么时候调用的
  • .chm格式文件如何阅读
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .Net Core缓存组件(MemoryCache)源码解析
  • .Net MVC4 上传大文件,并保存表单
  • .NET 将多个程序集合并成单一程序集的 4+3 种方法
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .NET4.0并行计算技术基础(1)
  • .net开源工作流引擎ccflow表单数据返回值Pop分组模式和表格模式对比
  • @31省区市高考时间表来了,祝考试成功
  • @JSONField或@JsonProperty注解使用
  • @media screen 针对不同移动设备
  • @NestedConfigurationProperty 注解用法
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [BUUCTF]-Reverse:reverse3解析