由TMDS_Bit_clock_Ratio、TMDS_clk和色彩深度,就可以确定出tmds_clk,cdr_clk,vid_clk和ls_clk之间的关系。
1、Tmds_clk时钟频率的确定:
原理:通过一个100M的时钟与被测时钟在一定时间内的计数,可以得到被测时钟的频率。
文件模块
mr_rate_detect
 
refclock
被测时钟
 
measure_clk
参考时钟,为固定100M
 
reset
复位,高电平有效
 
refclock_measure
在一定时间内被测时钟的计数值
 
valid
计数完成时的效指示信号
 

tmds_clk时钟既与色彩深度有关,也与数据速率有关。

tmds时钟速率(tmds clock rate)时钟通道在HDMI电缆上振荡的速率。当字符速率小于等于340Mcsc时,TMDS时钟速率与字符速率相等。

当字符速率大于340Mcsc时,tmds时钟速率是字符速率的1/4。

字符速率(TMDS character Rate):HDMI传输线上每个数据通道上10位字符传输的速率,字符速率的表述单位为Mega-characters/second/channel(Mcsc),

当编码方式为4:2:0时24的YCbCr时,字符速率等于0.5倍的像素时钟速率;

当编码方式为4:2:0时30的YCbCr时,字符速率等于0.625倍的像素时钟速率;

当编码方式为4:2:0时36的YCbCr时,字符速率等于0.75倍的像素时钟速率;

当编码方式为4:2:0时48的YCbCr,4:2:2YCbCr或者RGB4:4:4 24位时,字符速率等于1倍的像素时钟速率;

当编码方式为4:4:4时30的RGB时,字符速率等于1.25倍的像素时钟速率;

当编码方式为4:4:4时36的RGB时,字符速率等于1.5倍的像素时钟速率;

当编码方式为4:4:4时48的RGB时,字符速率等于2倍的像素时钟速率;

像素时钟速率(Pixel Clock Rate)视频时钟中的像素传输脉冲。当像素复制有效时也包括复制像素(比如,480p的单像素复制会产生一个54M的像素时钟)

当TMDS_Bit_clock_Ratio为1时,说明接收到的HDMI字符速率在大于340 Mcsc,这时实际的TMDS_CLK时钟是字符速率的四分之一,所以程序提供的计算

字符速率的方法是:

assign measure_for_compare = TMDS_Bit_clock_Ratio? {measure[21:0], 2'b00} : measure;当TMDS_Bit_clock_Ratio为1时说明,字符速率

大于340Mcsc,字符速率= TMDS_CLK*4。

(详细可以参考HDMI2.0规格书的 6 Link Layer)
 

2、cdr_clk时钟的确定

cdr_clk时钟频率做为PMA部分中CDR的参考时钟,该时钟的大小与线速率有关的,如下图中的设置部分,设置Date Rate =6000Mbps,

cdr参考时钟频率为600M,而PAM与PCS之间的接口位宽为20。查看CDR的内部结构可以知道,CDR其实也是一个PLL,输出为高速串行时钟,该

高速串行时钟频率就是6000M,也就是说cdr对时钟进行了10倍频。当然如果cdr参考时钟为300M也是可以的,这样CDR就是进行20倍倍频,所以

CDR的参考时钟与ls_clk的时钟不是很明显,但是PCS部分接口位宽与线速率的倍数关系,刚好是串行时钟与ls_clk之间的关系。也就是说,

6000M/20=300M就是ls_clk的频率。但也有例外就是因为GXB只能接收1Gbps以前的数据速率,当数据速率低于1Gbps时要对数据进行过采样,

过采则要由CDR参考时钟及PLL配置来决定,举例说明:如果速率为500Mbps,参考时钟为500M,要满足不小于1Gbps的要求,则要把PLL倍频到1G

以前这里以1.5G为例,也就是PLL要三倍频,这样采到的串行数据是1.5Gbps,串转并以后,1.5G/20 = 75M,这个时钟就rx_clk的时钟,但不是

ls_clk的时钟,因为ls_clk对应的是实际的链路时钟,实际的链路上是500Mbps/20= 25M,也就是串转并之后再进行去过采样的结果。

4、ls_clk与vid_clk时钟的确定

(以单字符为例)ls_clk 对应的是执行 TMDS 和 TERC4 编码的时钟,ls_clk也是连接到收发器输出时钟。TMDS和TERC4是把8位编码
成10位的过程,vid_clk是像素时钟,对应的字符位宽可能有8位,10位,12位及16位种,而ls_clk是链路时钟,链路上数据位宽固定,只
能是10位,所以如果字符是8位的,那么相应的ls_clk和vid_clk时钟是1:1的速率关系;如果字符是10位的,把10位编码后的位宽自然也
大于10位,所以ls_clk的速率相应要提高,这时ls_clk和vid_clk关系比值为10:8(5:4),同样如果像素是12位和16位的话,相应的
ls_clk和vid_clk的速率关系是12:8(3:2),16:8(2:1)。

因为HDMI IP处理是per clock 2 Symbols。所以个人认为ls_clk相对于tmds_clk在速率上又要降一半。vid_clk是像素时钟,
每时钟 1 个字符模式=视频像素时钟,每时钟 2 个符号的模式=像素时钟的一半,每时钟 4 个符号的模式=像素时钟的 1/4 
 
DIM
TMDS_Bit_clock_Ratio
TMDS_CLK
CDR_CLK
LS_CLK
(2symbol)
 
VID_CLK
(2symbol)
8bpc
4k60fps
1
148.5
594
297
297
12bpc
4K30FPS
1
111.375
445.5
222.75
148.5
8bpc
4K30FPS
4K25fps
4k24fps
4k23fps
4k29fps
 
0
297
297
148.5
148.5
12bpc
1080p60fps
0
222.75
222.75
111.375
74.25
8bpc
1080P60fps,
1080p50fps
0
148.5
148.5
74.25
74.25
12bpc
1080p30fps
1080p24fps
1080p25fps
720p60fps
720p50fps
 
0
111.375
111.375
55.6875
37.125
8bpc
1080p30fps
1080p24fps
1080p25fps
720p60fps
720p50fps
0
74.25
371.25
(像素复制5倍)
74.25*5
37.125
37.125
8bpc
720p30fps
 
0
37.125
185.625
18.625
18.625
12bpc
720p30fps
 
0
55.6875
278.4375
27.9375
18.625
8bpc
720x576,50fps
720x480,60fps
0
27
135
13.5
13.5
12bpc
720x480,60fps
 
0
40.5(27*1.5)
202.7276(40.5*5)
10.125
13.5

 

 

HDMI ip中的时钟 vid_clk与ls_clk的更多相关文章

  1. TCP/IP中链路层的附加数据(Trailer数据)和作用

    1.TCP/IP中链路层的附加数据是什么 在用wireshark打开报文时,链路层显示的Trailer数据就是附加数据,如图 2.如何产生 1.例如以太网自动对小于64字节大小的报文进行填充(未实验) ...

  2. TCP/IP中最高大上的链路层简介(二)

    引言 对于程序猿来讲,似乎越接近底层,就越显得高大上.这也算是程序猿们的共同认知吧,虽然不是所有人.今天LZ就和各位一起探讨一下TCP/IP中最高大上的一层,也就是最底层的链路层. 这一层LZ了解的还 ...

  3. TCP/IP协议原理与应用笔记11:TCP/IP中地址与层次关系

    1. 网络中常用的地址: 2. TCP/IP中地址与层次关系 :

  4. BAT面试上机题从3亿个ip中找出访问次数最多的IP详解

    我们面临的问题有以下两点:1)数据量太大,无法在短时间内解决:2)内存不够,没办法装下那么多的数据.而对应的办法其实也就是分成1)针对时间,合适的算法+合适的数据结构来提高处理效率:2)针对空间,就是 ...

  5. TCP/IP中的传输层协议TCP、UDP

    TCP提供可靠的通信传输,而UDP则常用于让广播和细节控制交给应用的通信传输. 传输层协议根据IP数据报判断最终的接收端应用程序. TCP/IP的众多应用协议大多以客户端/服务端的形式运行.客户端是请 ...

  6. 数字设计中的时钟与约束(gate)

    转载:https://www.cnblogs.com/IClearner/p/6440488.html 最近做完了synopsys的DC workshop,涉及到时钟的建模/约束,这里就来聊聊数字中的 ...

  7. HDMI IP学习笔记

    在HDMI的IP核中点击,生成例子.找到./simulaion/mentor文件夹,把modelsim路径转到该路径下,即可仿真.

  8. TCP/IP中你不得不知的十大秘密

    这段时间 有一点心很浮躁,不过希望自己马上要矫正过来.好好学习编程!这段时间我想好好地研究一下TCP/IP协议和网络传输这块!加油 一.TCP/IP模型 TCP/IP协议模型(Transmission ...

  9. 三叔学FPGA系列之一:Cyclone V中的时钟资源

    之前的项目中更多的是有师兄提供经验和帮助,追求的是快速上手,所以不管对于硬件电路设计,还是verilog电路编程,甚至是FPGA内部的资源,都没来得及系统地学习,最近在做算法到电路的实现,正好系统学习 ...

随机推荐

  1. 国内淘宝镜像 cnpm转npm

    npm install -g cnpm --registry=http://registry.npm.taobao.org

  2. linux下安装以及升级npm,node的方法

    1.最开始使用阿里云文档提供的安装方法一直都是失败的状态,后来找到了新的方法重新安装,按照以下操作一步一步的走即可实现,亲测可用 2.安装完之后,会发现npm和node的版本都偏低,需要重新升级以下, ...

  3. Angular5学习札记

    1.使用cnpm安装jQuery和bootstrap后,页面没有加载的问题 -使用cnpm安装的路径和使用npm安装路径不一样,解决如下: 把css路径改成"../node_modules/ ...

  4. mysql中如何使用一句话将一个表的数据导入到另一个表中:insert into ...select

    INSERT INTO cdcd2015(`filename`,`xmlfile`,`updatetime`,`isDel`) SELECT `filename`,`xmlfile`,`updatet ...

  5. 史上最全的MSSQL复习笔记

    1.什么是SQL语句 SQL语言,结构化的查询语言(Structured Query Language),是关系数据库管理系统的标准语言.它是一种解释语言,写一句执行一句,不需要整体编译执行. 语法特 ...

  6. ----转载----【前端工具】Chrome 扩展程序的开发与发布 -- 手把手教你开发扩展程序

    关于 chrome 扩展的文章,很久之前也写过一篇.清除页面广告?身为前端,自己做一款简易的chrome扩展吧. 本篇文章重在分享一些制作扩展的过程中比较重要的知识及难点. 什么是 chrome 扩展 ...

  7. jupyter notebook 初步使用配置调整

    jupyter notebook 官方说明 初始部分: 如何打开特定的笔记本? 以下代码应在当前运行的笔记本服务器中打开给定的笔记本,必要时启动一个. jupyter notebook noteboo ...

  8. C# devexpress gridcontrol 分页 控件制作

    这个小小的功能实现起来还是有一点点复杂, 分页单独一个usercontrol 出来,导致查询换页 与gridcontrol页面分离,  一般通过换页事件通知girdcontrol 做出查询 查询来说有 ...

  9. C# oracle 日期型字段,使用参数传值时,遇到ORA-01810: format code appears twice错误

    C#操作oracle数据库时,发现使用to_date('2014-01-03 18:00:00','yyyy-mm-dd hh:MM:ss')时,会出现ORA-01810: format code a ...

  10. (转)关于X64位系统IIS7下支持32位asp.net程序

    最近在windows2008 x64位系统下的IIS7下部署asp.net程序. vs2005或vs2008默认的情况下是Any cpu 的也就是支持x86和x64两种系统的.可我的程序在引用了一个三 ...