[FPGA] AD采样问题

[复制链接]
9315|22
 楼主| jingyuxiong 发表于 2014-3-31 15:34 | 显示全部楼层 |阅读模式
本帖最后由 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已经被你奸的凌乱了,还是想人家正常的给你显示波形?
示波器能看到就足够了,采样有什么问题?
 楼主| 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的输出有时会出现错位的情况,请问这种现象怎么解决啊?第一次弄这种同步采样有点拙计。。
ococ 发表于 2014-4-1 08:37 | 显示全部楼层
DCO和clk_200m是同频的吗?不是的话经过FIFO肯定有溢出或者读空的情况
 楼主| jingyuxiong 发表于 2014-4-1 09:12 | 显示全部楼层
ococ 发表于 2014-4-1 08:37
DCO和clk_200m是同频的吗?不是的话经过FIFO肯定有溢出或者读空的情况

这个DCO是200M的,频率应该相同,但是这个DCO是ADC外部输入的,跟clk_200m不同源,这种情况也会溢出吗?
ococ 发表于 2014-4-1 10:22 | 显示全部楼层
jingyuxiong 发表于 2014-4-1 09:12
这个DCO是200M的,频率应该相同,但是这个DCO是ADC外部输入的,跟clk_200m不同源,这种情况也会溢出吗? ...

不同源就会有溢出或读空。
ADC应该有采样时钟输入吧,为什么不用FPGA的时钟输出当ADC的采样时钟呢?这样就统一时钟了。
 楼主| jingyuxiong 发表于 2014-4-1 10:52 | 显示全部楼层
ococ 发表于 2014-4-1 10:22
不同源就会有溢出或读空。
ADC应该有采样时钟输入吧,为什么不用FPGA的时钟输出当ADC的采样时钟呢?这样 ...

这个主要是与为了与前端信号相参,使用9516将前端时钟输入锁相到200Mhz作为采样时钟,而且FPGA的pll输出200Mhz这个时钟信号的性能应该不能满足ADC的要求。现在确定是fifo溢出,先把溢出控制下看看效果。
ococ 发表于 2014-4-1 11:36 | 显示全部楼层
不大了解你具体使用目的。
如果不是必须使用连续的采样数据的话,可把FPGA内部读取FIFO的时钟使用比200M高一些比如205M,这样读取时钟比写入时钟快,就不会有溢出,就不会丢失数据,但要控制好读取,每隔一段时间读取一次,这样把连续输入的ADC采样数据分成一段段的数据,达到同步的目的。
但是如果你的需求必须是连续的采样数据那就不能这么处理。
蓝色风暴@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采样率的都是这么做的
 楼主| jingyuxiong 发表于 2014-4-2 07:49 | 显示全部楼层
蓝色风暴@FPGA 发表于 2014-4-1 19:56
且不管你数据出错,你的同步方法有问题
既然是双通道,1通道对应时钟上升沿,2通道对于时钟下降沿,那么 ...

好像Altera有DDIO,Xilinx也有吗?我找了好久没找到,现在准备fifo读写都用AD采样时钟,这样就能同步了,也就只是实现了对齐这个上升沿和下降沿,要是有DDIO就没这么麻烦了。
蓝色风暴@FPGA 发表于 2014-4-2 20:10 | 显示全部楼层
jingyuxiong 发表于 2014-4-2 07:49
好像Altera有DDIO,Xilinx也有吗?我找了好久没找到,现在准备fifo读写都用AD采样时钟,这样就能同步了, ...

xilinx肯定有啊
 楼主| jingyuxiong 发表于 2014-4-3 10:47 | 显示全部楼层
蓝色风暴@FPGA 发表于 2014-4-2 20:10
xilinx肯定有啊

额,这是个IP核还是啥?core generator里哪里能找到啊?
蓝色风暴@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
 楼主| jingyuxiong 发表于 2014-4-4 15:26 | 显示全部楼层
蓝色风暴@FPGA 发表于 2014-4-3 20:26
ISE我用的少,不太清楚
但是我研究过altera和xilinx芯片结构对比
它们的IOE结构类似、都有double data in ...

找到了,在ISE中是使用原语例化,IDDR 和 ODDR。
sule121 发表于 2014-4-5 08:47 | 显示全部楼层
恩,显示波形就够了吧
GoldSunMonkey 发表于 2014-4-7 21:55 | 显示全部楼层
jingyuxiong 发表于 2014-4-4 15:26
找到了,在ISE中是使用原语例化,IDDR 和 ODDR。

搞定了?
 楼主| jingyuxiong 发表于 2014-4-10 22:48 | 显示全部楼层
GoldSunMonkey 发表于 2014-4-7 21:55
搞定了?

应该是没问题了,后面的问题是异步fifo没控制好,导致fifo输出的数据没对齐。
GoldSunMonkey 发表于 2014-4-12 23:52 | 显示全部楼层
jingyuxiong 发表于 2014-4-10 22:48
应该是没问题了,后面的问题是异步fifo没控制好,导致fifo输出的数据没对齐。 ...

恭喜兄弟了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

78

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部