opiviqo 发表于 2017-9-22 17:35:32

请教一下大家xilinx中如何将一个1-4MHZ的频率,倍频4倍

RT,请教一下大家,如何将一个外部时钟,1-4MHZ输入(频率不定),倍频4倍呢?
PLL的那个IP核貌似需要填上输出时钟,那样的话不是固定死了?

NJ8888 发表于 2017-9-22 17:40:42

你就填2M输入,8M输出,然后你输入1-4M。不过我没试过,不确定这个范围PLL能不能锁定,另外,锁定时间未知

浮华一生 发表于 2017-9-22 17:55:42

不怎么用FPGA . 不知道 1: 移相 异或2, 更高的频率采集 然后输出 . 这2种方案行不行

opiviqo 发表于 2017-9-22 18:05:34

NJ8888 发表于 2017-9-22 17:40
你就填2M输入,8M输出,然后你输入1-4M。不过我没试过,不确定这个范围PLL能不能锁定,另外,锁定时间未知 ...

非常感谢您的回复,我这个频率不算高,我能不能直接采上升沿,然后计数4次,再翻转然后输出呢?

zxq6 发表于 2017-9-22 18:46:58

opiviqo 发表于 2017-9-22 18:05
非常感谢您的回复,我这个频率不算高,我能不能直接采上升沿,然后计数4次,再翻转然后输出呢? ...

你这个操作是4分频,1M输入,250K输出

opiviqo 发表于 2017-9-22 19:20:25

zxq6 发表于 2017-9-22 18:46
你这个操作是4分频,1M输入,250K输出

哦对哦,我想错了。。。

ndk 发表于 2017-9-22 20:20:50

可以用高速时钟计数输入信号的一个周期内时钟的个数,缓存一下,下一个输入信号期间按照计数值的八分之一分别得到高、低输出信号即可,缺点:输入信号频率变化期间输出肯定错误,但只有1、2个输入信号周期的时间

opiviqo 发表于 2017-9-22 20:29:14

ndk 发表于 2017-9-22 20:20
可以用高速时钟计数输入信号的一个周期内时钟的个数,缓存一下,下一个输入信号期间按照计数值的八分之一分 ...

是的,刚试了一下PLL不行,看来只有用个高速的时钟来采集了,这样的话,最后那一个还是会出现误差的,没想到啥好办法了,先试一下吧!~~
还是非常感谢各位。

jianfengxixi 发表于 2017-9-22 20:29:54

Altera新的器件上有可以重配置的PLL,不知道xilinx有没有

wye11083 发表于 2017-9-22 20:34:05

jianfengxixi 发表于 2017-9-22 20:29
Altera新的器件上有可以重配置的PLL,不知道xilinx有没有

1M太低了,没有pll可以支持。这个只能高频采样,或者用一大堆lut自己做dll,或者用外部电路倍频,不保证占空比,且需要先2倍频,再修正占空比,然后再倍一次。

外部倍频法其实很简单,利用门电路或rc电路的延时,使得原信号与延时后的信号异或。但是它要求外部信号的占空比是50/50。否则出来的就不是方波,而是毛刺了。

3DA502 发表于 2017-9-22 22:52:36

DDS是个好东西

LZ测量输入频率,然后用DDS输出就OK了

FPGA搭建DDS是基本功

gzhuli 发表于 2017-9-23 00:37:54

全数字PLL:http://pallen.ece.gatech.edu/Academic/ECE_6440/Summer_2003/L080-ADPLL(2UP).pdf

ackyee 发表于 2017-9-23 00:56:25

用一个标准的 时钟 用内部PLL倍频到100MHZ然后将另一个1-4M时钟输入到FPGA的管脚。 FPGA可以计算出它的频率然后 FPGA内部用100MHZ 分频到那个时钟的4倍

sdram 发表于 2017-9-23 07:38:05

xilinx 的dcm可以干这个事情

opiviqo 发表于 2017-9-23 18:15:26

3DA502 发表于 2017-9-22 22:52
DDS是个好东西

LZ测量输入频率,然后用DDS输出就OK了


DDS输出能同步么?
我需要输出和输入同步的,比如3M的上升沿也是12M的上升沿。

3DA502 发表于 2017-9-23 20:37:35

本帖最后由 3DA502 于 2017-9-23 20:41 编辑

opiviqo 发表于 2017-9-23 18:15
DDS输出能同步么?
我需要输出和输入同步的,比如3M的上升沿也是12M的上升沿。 ...

原理上能

但是输出一定是滞后一个周期,逐个周期调频,这其实和DDS也没啥关系了
就是在起始沿-终结沿测量,下一个起始沿执行4倍频率输出,7楼还有其他楼说的都是这个意思

huangqi412 发表于 2017-9-23 22:05:19

opiviqo 发表于 2017-9-23 18:15
DDS输出能同步么?
我需要输出和输入同步的,比如3M的上升沿也是12M的上升沿。 ...

应该有一个时钟的抖动。DDS还是高倍采样输出。 假设你输入1--4M,FPGA工作在200M,也就是最少50倍采样,抖动一个时钟也就是1/200M S看能不能接受了。还不行,假设,只是假设,再把运行时钟翻上去,抖动更小。

xyz543 发表于 2017-9-23 23:01:14

opiviqo 发表于 2017-9-23 18:15
DDS输出能同步么?
我需要输出和输入同步的,比如3M的上升沿也是12M的上升沿。 ...

楼主,DDS 使用同一个 Clock 的来源,是可以同步的。
您再用示波器来观察这 DDS 的输出对于频率变换时那瞬间同步得惊人都!

xwkm 发表于 2017-9-24 10:11:33

外挂74HC4046,1M低频可以锁定。

opiviqo 发表于 2017-9-24 11:23:07

本帖最后由 opiviqo 于 2017-9-24 11:24 编辑

wye11083 发表于 2017-9-22 20:34
1M太低了,没有pll可以支持。这个只能高频采样,或者用一大堆lut自己做dll,或者用外部电路倍频,不保证 ...

非常感谢
我现在把系统时钟倍频到300MHZ来采集,但是现在用示波器看到的结果会“不定时:的出现杂波,如下图,我程序里面是直接拿要采集的这个未知波形的高低电平来做判断的(我感觉有点问题,试一下做个上升沿和下降沿的判断),这个地儿是不是因为抖动引起的呢?因为毫无规律,有时候就会出现这种波形:

wye11083 发表于 2017-9-24 11:45:49

本帖最后由 wye11083 于 2017-9-24 11:47 编辑

opiviqo 发表于 2017-9-24 11:23
非常感谢
我现在把系统时钟倍频到300MHZ来采集,但是现在用示波器看到的结果会“不定时:的出现杂波,如 ...

看上去貌似是时间测量结果变成了一半导致出了问题。

你可以试试采集N个周期,然后做中值滤波,然后对平均值进行4倍频输出,这样随着输入的sweep,你输出也会跟着sweep且能保持比较稳定的4倍频。

上升沿同步是很难做到的;你必须要保证输出的信号是完全独立的。然后再花几个周期同步到输入时钟上。不要直接采样输出。相位误差都是允许的,你看你最多能容忍多少周期的相位误差。

zaldy30 发表于 2017-9-24 12:01:05

数字锁相环74297可以试试看

opiviqo 发表于 2017-9-24 13:19:59

改了一下代码目前看起来还行,
非常感谢楼上的各位热心网友{:smile:}
页: [1]
查看完整版本: 请教一下大家xilinx中如何将一个1-4MHZ的频率,倍频4倍