微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > FPGA,CPLD和ASIC > 江湖救急! 大侠请看!

江湖救急! 大侠请看!

时间:10-02 整理:3721RD 点击:
时钟频率为2M,但要求能够产生以64K为基数的频率(64K*N,N为整数小于32),这样一个东东应从何下手! 目前我的思路有两个:
1 对2M进行分频产生(但这样做是不是很麻烦? 小数分频!)
2 对2M信号进行32分频得到64K的信号,再以64K做为基频来倍频,从而得到我要的频率
请问这个两个方法可行吗? 我觉得 1 会很麻烦,而且出来的频率也不准! 2 这个方法倒还可以但是要实现N倍频,这样的话是不是太浪费资源了! 就用FPGA上本身带的PLL我怕不够用!
请问各位大侠:可有什么好的方法呀!希望大侠们给点建议呀! 热切盼望中! 谢谢

江湖救急! 大侠请看!
你说的2M时钟,应该是2.048MHz的。你先确定一下吧。

江湖救急! 大侠请看!
是的,是2.048

江湖救急! 大侠请看!
E1?如果方便的话,能不能讲一下你的工作环境?

江湖救急! 大侠请看!
环境一般了!

江湖救急! 大侠请看!
呵呵,我是问你做的东西的工作环境。

江湖救急! 大侠请看!
是终端接入设备!

江湖救急! 大侠请看!
[这个贴子最后由Nicholas在 2003/11/21 02:14pm 第 1 次编辑]
不知道你使用的是什么FPGA,有没有其他时钟。假设没有其他高频时钟,前一种方法后一种方法,本质上没什么差别。后一种方法需要使用DLL或PLL的倍频功能,那么,前一种方法完全也可以用DLL或PLL的倍频功能先将你的2M时钟倍频(比如4倍频),然后分频的方法实现(虽然是小数分频,但这个小数分频的系数是确切的,类似9/10分频这种)。这样做资源少用些。毕竟,分频比可通过寄存器或其他方式配置,而后一种方法,倍频系数要达到32,这个好象比较困难(Xilinx单级DLL我记得好象只能到8,请用过Xilinx的指正)。

江湖救急! 大侠请看!
请问XILINX那款的DLL允许输入时钟是64K的?
我想这样做不知可不可以:
根据F=2.048M*n/32。我使用一个锁相环,锁相环的输入时钟为2.048M/32,而反馈的比较时钟为F/N,最后输出的时钟为F。不知道这样做是否妥当,其抖动及精度能否满足要求。另及:可否使用器件上自带的PLL?

江湖救急! 大侠请看!
DLL 最小的输入频率为25M

在virtexII中,如果采用FX时钟输出,DCM的输入时钟频率最小可以是1M,但此时FX的输出至少要求24M,以上是Datasheet的值,未实际使用过这么低的频率。

江湖救急! 大侠请看!
建议用片外pll去做吧,如果你的N要是可以从1-32任意值可选,难度相当大。

江湖救急! 大侠请看!
我就多说几句,请指正。
数字复接设备的输出抖动指标等问题应该不是你考虑的,因为从你的表述看,实际是一个成帧/解帧过程,只有64K数据上插/下分到正确的时隙就可。也就是说,如果只有一个时隙需要上插数据,那么,你产生64K时钟,这个时钟的产生是有规律的,比如说在2M的Ch1产生,等等。如果有N个时隙要产生数据,那么产生N个64K时钟即可?不知我的理解对否?
如果我上面的理解正确,那么,问题更简单。首先产生Ch1时隙的64K时钟,然后以这个时钟作为一个基准,产生其他Ch的时钟。其他CH的时钟产生完全可以采用计数器实现,比如ChN的时钟就是以2M作为输入时钟,Ch1的64K时钟作为启动脉冲,计数器计到N时产生输出,这个输出和2M时钟相与就是你所需要的CHn的时钟。
有了CHn的时钟,将这些时钟或起来是不是可以得到64K*N的时钟?
当然,以上说法前提是我的理解正确,因为你的描述不是很清晰,所以我只好这样理解。
从你的文字看,你能产生64K时钟,然后用F/N作为反馈,这样做当然很好。不过,为什么不直接用2M来做这种反馈呢?Xilinx器件的DLL输入时钟你可以查Datasheet或请求技术支持。我刚看了一下Datasheet,Spartan好象有点困难。
请TX指正,谢谢。

江湖救急! 大侠请看!
各位大侠就真的没有办法了吗? 我用锁相环不能锁出来吗?

江湖救急! 大侠请看!
如果是成帧和解帧的过程,那么为什么需要2.048/N的分频呢?我想无论通道化E1还是非通道化E1,这样的时钟在成帧/解帧的过程中都是不需要的。这也是我问题工作条件的原因。

江湖救急! 大侠请看!
我也感觉比较奇怪。问题的解决办法有很多种,需要看具体的情况选择。
从他的描述看,要产生的是64K*N的时钟,这个不是2.048/N能得到的。这点恐怕需要注意。考虑到用在数字复接设备上,我认为应该是Framer/De_framer的过程。
我还是希望能将问题讲明白,做什么用,准备怎么用,等等。需求不明确,问题不好解释。

江湖救急! 大侠请看!
他说的这个东东,我在做v.35的时候见到过,确实有这种要求(我指Nx64k时钟),我的建议还是在片外做。

江湖救急! 大侠请看!
各位大侠,实在是太感激了!
其实这个东东就是从E1的时隙中取出我需要的时隙出来,有点象E1转V35!
具体的工作是这样的,从E1中取出我需要的时隙,将数据存储起来,而我产生一个64k*n的信号频率去取数据。比如说我只需前三个时隙的数据,那么E1的前三个时隙数据就存进BUF中,在BUF的另一端用192K频率的信号去取! 而且希望192K的频率是1:1的!

江湖救急! 大侠请看!
nicholas 同志的做法是可行的

江湖救急! 大侠请看!
用直接数字频率
合成

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top