打印
[FPGA]

AD采样问题

[复制链接]
8131|22
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
本帖最后由 jingyuxiong 于 2014-3-31 15:34 编辑

大家好,我现在在调试一块AD转换器,FPGA是Virtex 5,AD型号AD9643,现在遇到一些问题,AD9643的采样时钟是使用AD9516产生的,频率为200Mhz,在FPGA里使用chipscope观察AD9643的输出时钟(DCO)时发现DCO信号会出现时有时无的情况,如图所示

而我在使用示波器观察这个时钟信号时并没有发现任何异常,请问有谁遇到过这类问题吗?另外200Mhz的时钟信号是不是应该加一些时序约束才行?

相关帖子

沙发
ococ| | 2014-3-31 17:23 | 只看该作者
chipscope不是片内示波器,是片内分析仪。
示波器看这个时钟正常就足够了,为何还要在片内抓时钟呢?chipscope不是这么用的。

使用特权

评论回复
板凳
jingyuxiong|  楼主 | 2014-3-31 18:22 | 只看该作者
ococ 发表于 2014-3-31 17:23
chipscope不是片内示波器,是片内分析仪。
示波器看这个时钟正常就足够了,为何还要在片内抓时钟呢?chipsc ...

主要是现在采样有点问题,想看下采样时钟是不是正常的,我用pll产生的400M信号采的这个时钟,出现这种现象是正常的吗?

使用特权

评论回复
地板
蓝色风暴@FPGA| | 2014-3-31 21:24 | 只看该作者
400MHZ采200Mhz,FPGA已经被你奸的凌乱了,还是想人家正常的给你显示波形?
示波器能看到就足够了,采样有什么问题?

使用特权

评论回复
5
jingyuxiong|  楼主 | 2014-4-1 07:48 | 只看该作者
蓝色风暴@FPGA 发表于 2014-3-31 21:24
400MHZ采200Mhz,FPGA已经被你奸的凌乱了,还是想人家正常的给你显示波形?
示波器能看到就足够了,采样有 ...

我也知道频率高了不行。。。现在的问题是八通道的ADC需要同步,一片AD有两个通道,通道1在上升沿采样,通道2在下降沿采样,我在每个通道的采样的锁存器之后加了一个fifo,输入时钟使用采样时钟DCO,输出使用PLL产生的clk_200m时钟信号,希望通过这样实现同步,但是现在的问题是chipscope使用采样时钟DCO采锁存器的输出信号是同步的,chipscope使用clk_200m采fifo的输出有时会出现错位的情况,请问这种现象怎么解决啊?第一次弄这种同步采样有点拙计。。

使用特权

评论回复
6
ococ| | 2014-4-1 08:37 | 只看该作者
DCO和clk_200m是同频的吗?不是的话经过FIFO肯定有溢出或者读空的情况

使用特权

评论回复
7
jingyuxiong|  楼主 | 2014-4-1 09:12 | 只看该作者
ococ 发表于 2014-4-1 08:37
DCO和clk_200m是同频的吗?不是的话经过FIFO肯定有溢出或者读空的情况

这个DCO是200M的,频率应该相同,但是这个DCO是ADC外部输入的,跟clk_200m不同源,这种情况也会溢出吗?

使用特权

评论回复
8
ococ| | 2014-4-1 10:22 | 只看该作者
jingyuxiong 发表于 2014-4-1 09:12
这个DCO是200M的,频率应该相同,但是这个DCO是ADC外部输入的,跟clk_200m不同源,这种情况也会溢出吗? ...

不同源就会有溢出或读空。
ADC应该有采样时钟输入吧,为什么不用FPGA的时钟输出当ADC的采样时钟呢?这样就统一时钟了。

使用特权

评论回复
9
jingyuxiong|  楼主 | 2014-4-1 10:52 | 只看该作者
ococ 发表于 2014-4-1 10:22
不同源就会有溢出或读空。
ADC应该有采样时钟输入吧,为什么不用FPGA的时钟输出当ADC的采样时钟呢?这样 ...

这个主要是与为了与前端信号相参,使用9516将前端时钟输入锁相到200Mhz作为采样时钟,而且FPGA的pll输出200Mhz这个时钟信号的性能应该不能满足ADC的要求。现在确定是fifo溢出,先把溢出控制下看看效果。

使用特权

评论回复
10
ococ| | 2014-4-1 11:36 | 只看该作者
不大了解你具体使用目的。
如果不是必须使用连续的采样数据的话,可把FPGA内部读取FIFO的时钟使用比200M高一些比如205M,这样读取时钟比写入时钟快,就不会有溢出,就不会丢失数据,但要控制好读取,每隔一段时间读取一次,这样把连续输入的ADC采样数据分成一段段的数据,达到同步的目的。
但是如果你的需求必须是连续的采样数据那就不能这么处理。

使用特权

评论回复
11
蓝色风暴@FPGA| | 2014-4-1 19:56 | 只看该作者
jingyuxiong 发表于 2014-4-1 07:48
我也知道频率高了不行。。。现在的问题是八通道的ADC需要同步,一片AD有两个通道,通道1在上升沿采样,通 ...

且不管你数据出错,你的同步方法有问题
既然是双通道,1通道对应时钟上升沿,2通道对于时钟下降沿,那么你应该使用一个DDIO模块将通道1和通道2的数据合并成16位(假设每通道8位),这样16位的数据与采样时钟的上升沿对齐,然后再通过FIFO进行时钟域转换,我们几G采样率的都是这么做的

使用特权

评论回复
12
jingyuxiong|  楼主 | 2014-4-2 07:49 | 只看该作者
蓝色风暴@FPGA 发表于 2014-4-1 19:56
且不管你数据出错,你的同步方法有问题
既然是双通道,1通道对应时钟上升沿,2通道对于时钟下降沿,那么 ...

好像Altera有DDIO,Xilinx也有吗?我找了好久没找到,现在准备fifo读写都用AD采样时钟,这样就能同步了,也就只是实现了对齐这个上升沿和下降沿,要是有DDIO就没这么麻烦了。

使用特权

评论回复
13
蓝色风暴@FPGA| | 2014-4-2 20:10 | 只看该作者
jingyuxiong 发表于 2014-4-2 07:49
好像Altera有DDIO,Xilinx也有吗?我找了好久没找到,现在准备fifo读写都用AD采样时钟,这样就能同步了, ...

xilinx肯定有啊

使用特权

评论回复
14
jingyuxiong|  楼主 | 2014-4-3 10:47 | 只看该作者
蓝色风暴@FPGA 发表于 2014-4-2 20:10
xilinx肯定有啊

额,这是个IP核还是啥?core generator里哪里能找到啊?

使用特权

评论回复
15
蓝色风暴@FPGA| | 2014-4-3 20:26 | 只看该作者
jingyuxiong 发表于 2014-4-3 10:47
额,这是个IP核还是啥?core generator里哪里能找到啊?

ISE我用的少,不太清楚
但是我研究过altera和xilinx芯片结构对比
它们的IOE结构类似、都有double data input和output的结构
你找到V5的IOE结构看看,如果结构支持,肯定有相应的IP

使用特权

评论回复
16
jingyuxiong|  楼主 | 2014-4-4 15:26 | 只看该作者
蓝色风暴@FPGA 发表于 2014-4-3 20:26
ISE我用的少,不太清楚
但是我研究过altera和xilinx芯片结构对比
它们的IOE结构类似、都有double data in ...

找到了,在ISE中是使用原语例化,IDDR 和 ODDR。

使用特权

评论回复
17
sule121| | 2014-4-5 08:47 | 只看该作者
恩,显示波形就够了吧

使用特权

评论回复
18
GoldSunMonkey| | 2014-4-7 21:55 | 只看该作者
jingyuxiong 发表于 2014-4-4 15:26
找到了,在ISE中是使用原语例化,IDDR 和 ODDR。

搞定了?

使用特权

评论回复
19
jingyuxiong|  楼主 | 2014-4-10 22:48 | 只看该作者
GoldSunMonkey 发表于 2014-4-7 21:55
搞定了?

应该是没问题了,后面的问题是异步fifo没控制好,导致fifo输出的数据没对齐。

使用特权

评论回复
20
GoldSunMonkey| | 2014-4-12 23:52 | 只看该作者
jingyuxiong 发表于 2014-4-10 22:48
应该是没问题了,后面的问题是异步fifo没控制好,导致fifo输出的数据没对齐。 ...

恭喜兄弟了

使用特权

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

本版积分规则

5

主题

78

帖子

1

粉丝