打印

怎么才能使148.5M分频到3.072M

[复制链接]
5419|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
ywert000| | 2012-9-17 11:04 | 只看该作者
可以分,我前两天才回答过这个问题,是你吗?这个是SDI里面的是吧?
148.5/3.072=125*99/256
3.072=148.5*256/(125*99)=148.5*(32/25)*(32/11)/45
所以,这个方法是,使用两个DCM,分别做32/25和32/11,然后再软件分频45

使用特权

评论回复
板凳
strouledfox| | 2012-9-17 11:10 | 只看该作者
用DCM可能可以实现,但是毕竟实际应用中,DCM这类资源非常宝贵,往往在选型是可能就已经想好了用途了。为一个3.072就用2个,有时候实际中没办法用。
3.072M的时钟频率较低,且实际应用中对其占空比的要求是很低的,可以用计数分频来做。大致思路如下:
用27M分得3.072M:27/3.072=8.7890625,介于8和9之间。可以做一个模8计数器和一个模9计数器,在二者之间切换,用另一个计数器控制好模8和模9计数器切换的时刻即可。
同理,74.25M或74.25/1.001M分得3.072也是,介于24和25之间,在模24和模25计数器之间切换。
我看过别人的代码,大体思路就是上边这样的,有点扩频的意思。实际应用中,工作非常稳定,可见其精度也是够用的。因为是别人的代码,细节我就不过多涉及了。

使用特权

评论回复
地板
strouledfox| | 2012-9-17 11:10 | 只看该作者
上边这个思路用在对3.072时钟要求不高的场合。毕竟,音频这东西,只要把一帧内的样点均匀打散在一帧时间内就可以了,并不一定要那么严格的50%占空比。
如果有需要精度较高的,如果片内DCM资源确实富余(可能这种情况不多,即使有还可能对整体时钟系统稳定性有影响),也可以考虑使用片外PLL,许多厂家都有。

使用特权

评论回复
5
sleepybear| | 2012-9-17 12:29 | 只看该作者
本帖最后由 sleepybear 于 2012-9-19 10:39 编辑

用DCM可能能解决148.5M的情况,但是:
1、如果需要用148.5/1.001MHz得到3.072就麻烦了。(做广电的应该都明白这个1.001是什么意思。除非你的东西不需要支持这些制式)
2、何况还浪费宝贵的DCM资源,对布线可能也有影响。

实际上,3.072M很低,计数分频完全够用。148.5/3.072=48.33984375介于48和49之间。
1、做一个模48和一个模49的计数器,在二者之间切换即可。只要总的周期数够数目就可以了。3.072的时钟很低,完全可以符合要求。
用148.5/1.001MHz得到3.072MHz也是相同的思路。不过,还是建议把时钟二分频为74.25M或74.25/1.001M后再做。

2、或者片外加一个ICS662,FPGA输出74.25MHz或74.175MHz,只需一根控制线来控制ICS662来适应,得到12.288MHz,再四分频得到3.072MHz。

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
GoldSunMonkey + 4 谢谢分享
6
钻研的鱼| | 2012-9-17 13:00 | 只看该作者
“做广电的应该都明白这个1.001是什么意思”。
我不明白,请教这个1.001是干什么用的?

使用特权

评论回复
7
sleepybear| | 2012-9-17 13:00 | 只看该作者
3L的语言好眼熟。。。;P

使用特权

评论回复
8
sleepybear| | 2012-9-17 14:11 | 只看该作者
本帖最后由 sleepybear 于 2012-9-17 14:34 编辑

简言之,1.001的问题,是由模拟时代的NTSC制来的,NTSC的帧频是29.97Hz,也就是30/1.001。后来发展,模拟到数字,标清到高清,使用NTSC制的地区为了保持设备和素材的兼容性,都采用了29.97Hz的帧频。

后续的高清制式的时钟也就有了1.001的问题,如下表所列。


具体的细节,可以参考SMPTE的标准。关于NTSC的帧频(以及相关的行、场频率)的计算公式,在SMPTE-170中有详细描述。一些介绍电视原理的书中应该也有描述。
国内是PAL制及其延续,帧频25,没有1.001的问题。

即使设备不卖到NTSC制的国家和地区,可竞争对手的产品也是兼容这些的,只兼容PAL制的在宣传上也没优势。

使用特权

评论回复
9
51xlf| | 2012-9-17 18:36 | 只看该作者
设计个小数点的分频器就行了!

使用特权

评论回复
10
mylive| | 2012-9-18 00:37 | 只看该作者
多谢分享!学习了


8# sleepybear

使用特权

评论回复
11
weishukongji|  楼主 | 2012-9-18 00:40 | 只看该作者
8# sleepybear

楼楼好厉害~ 学习到了呢

使用特权

评论回复
12
GoldSunMonkey| | 2012-9-18 09:30 | 只看该作者
学习啦。哈哈

使用特权

评论回复
13
mahua001| | 2012-9-18 10:47 | 只看该作者
:lol我也是学习学习哈

使用特权

评论回复
14
SF小小白| | 2012-9-18 16:47 | 只看该作者
学习了。。。

使用特权

评论回复
15
credit| | 2012-9-19 11:37 | 只看该作者
学习了哈

使用特权

评论回复
16
doublewangbo| | 2012-9-20 17:50 | 只看该作者
学习了!谢谢!

使用特权

评论回复
17
ysdx| | 2012-9-21 15:10 | 只看该作者
这么麻烦干嘛。
count <=count+32'h54bbc10;
assign clkout =count[31];
不就行了吗?

使用特权

评论回复
18
钻研的鱼| | 2012-9-22 14:14 | 只看该作者
受教了

使用特权

评论回复
19
xxnemail| | 2012-9-24 16:21 | 只看该作者
试试先倍频148.5M,再用逻辑分频到3.072M。精度会搞一些。

使用特权

评论回复
20
jojojoy| | 2012-9-27 17:16 | 只看该作者
长知识了 嘿嘿

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

141

帖子

1

粉丝