打印

请教一个FPGA控制ADC的问题

[复制链接]
2912|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lizardno1|  楼主 | 2011-11-24 23:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lizardno1 于 2011-11-24 23:31 编辑

并行输出ADC当中,主要有2中类型,按我的理解,
一种是要使用者提供CS信号(可能还要RD信号),之后AD的输出数据总线上会出现此次转化的数据;
另一种是给出一触发采样的上升沿,之后经过多少延时后数据出现在输出总线上。我看到的这种ADC好像都是pipeline型的。

我已知的:

对于第一种AD的控制,可以将一次采样所需的总CLK数计算出来,然后通过对应的CLK数来设计状态机控制AD
下图是第二种AD的时序

我的问题:
1.FPGA对这第二种AD的控制时,延时该如何生成才合适呢?刚才算了一下,延时为7个时钟的pipeline延时+6ns。关键就是这6ns了,20Mh的采样率下,6ns只有1/8个不到的cycle,如果在下一个时钟上升沿采样,那么数据的保持时间最少只有2ns,会不会不够?可不可以直接在第7个时钟的下降沿采样呢?这样就不用考虑输出延时了,只需考虑pipeline延时,不知道同时使用上下沿,对时钟的要求是怎样的?
2.看时序图的话,第二种比第一种控制起来方便很多,求请教二者的用途差异(比如说同速率,同能力的情况下)?
3.顺便问一个问了很久都没有得到答案的问题:“Low jitter, crystal-controlled oscillators make the best clock sources. If the clock is generated from another type of source (by gating, dividing, or other methods), it should be retimed by the original clock at the last step.”这是AD9225对时钟的要求,我在别的很多ADI文档里也看到了,但是这个retimed在数电里是什么含义呢?

相关帖子

沙发
mr.king| | 2011-11-25 10:27 | 只看该作者
本帖最后由 mr.king 于 2011-11-25 10:28 编辑

20MH时钟,标准周期50ns,半个周期25ns,图中Tpd相对时钟上升后数据能维持最少2ns,你设想用时钟下降沿采集完全没有问题,非常好     第一种ADC速度慢    be retimed我理解是用原始时钟(抖动小)重新打一下在作为控制用,当然原始时钟频率要比你generated from another type of source 高两倍以上

使用特权

评论回复
板凳
AutoESL| | 2011-11-25 17:40 | 只看该作者
帮顶

使用特权

评论回复
地板
GoldSunMonkey| | 2011-11-25 18:09 | 只看该作者
:)对AD不懂

使用特权

评论回复
5
lizardno1|  楼主 | 2011-11-25 18:36 | 只看该作者
本帖最后由 lizardno1 于 2011-11-25 18:38 编辑

谢谢各位!下午的时候查了点retiming的资料,需要算法支持的,看起来很复杂的样子,一时还没搞明白。不过看到一篇文档提到了部分FPGA的的综合器是支持retiming优化的,好像是Mentor Graphic的产品,不过AD速率不高的话,时钟要求应该不高吧:P,retiming就先放一边了。
我现在是有点排斥用下降沿获取数据的方法的(或许根本不是这个方法?求指教),因为上升沿肯定是要用来触发AD采样的,如果同时使用时钟的上下沿,对时钟要求比较高,第一次做这个,也怕出问题。
先再找找资料吧,TI的ADS2807挺符合要求的,主要它给出了数据有效的电平信号,就是说可以直接拿这个信号作为后面FIFO的时钟信号,可是它是同速率双通道的。。。我要两个单通道的或者双通道但是能提供双时钟信号的AD

不知道别的公司有没有这类AD呢?

使用特权

评论回复
6
GoldSunMonkey| | 2011-11-25 21:55 | 只看该作者
谢谢各位!下午的时候查了点retiming的资料,需要算法支持的,看起来很复杂的样子,一时还没搞明白。不过看到一篇文档提到了部分FPGA的的综合器是支持retiming优化的,好像是Mentor Graphic的产品,不过AD速率不高的 ...
lizardno1 发表于 2011-11-25 18:36

支持TI

使用特权

评论回复
7
GoldSunMonkey| | 2011-11-25 22:08 | 只看该作者
我今天晚上好好看一下你的问题:
第一个问题,20Mh的采样率下,6ns只有1/8个不到的cycle,
如果在下一个时钟上升沿采样,那么数据的保持时间最少只有2ns,这个问题的说法不对。
明显不能用下降沿采样。
第二问题,没有什么区别,只是机制不同。
第三个问题:retiming,就是多寄存几拍,改善时序

使用特权

评论回复
8
GoldSunMonkey| | 2011-11-25 22:08 | 只看该作者
还有问题就给我发站内信

使用特权

评论回复
9
lizardno1|  楼主 | 2011-11-25 22:50 | 只看该作者
7# GoldSunMonkey
1.如果在下一个时钟上升沿采样,那么数据的保持时间最少只有2ns,这个问题的说法不对。
求版主详解
2.明显不能用下降沿采样。
这个不是很清楚为什么

使用特权

评论回复
10
GoldSunMonkey| | 2011-11-25 23:08 | 只看该作者
比方你20MHz的时钟,那么你的时钟周期是50ns,
你数据只是延时2~6ns, 不会影响你的时钟采样呢。
寄存器的延时比你还小
按照你的说法,寄存器用时钟拍出来数据,
那不全不能用上升沿采样了?

我说应该明白了

使用特权

评论回复
11
GoldSunMonkey| | 2011-11-25 23:16 | 只看该作者
izardno1
猴子,你好!其实我主要就是2ns那个地方想不明白,因为别人都说这个很简单,所以我也觉得我想复杂了。那这个2-6ns应该是什么意思呢?求指教

使用特权

评论回复
12
GoldSunMonkey| | 2011-11-25 23:16 | 只看该作者
GoldSunMonkey
就是有2~6ns的延时,这个延时是有这个时钟产生的。你那么小的时钟肯定没问题。
还有,叫我猴哥~嘿嘿

使用特权

评论回复
13
GoldSunMonkey| | 2011-11-25 23:16 | 只看该作者
猴哥!
那个2-6ns指的是在上升沿节拍后,数据出现在数据总线的延时,而整个数据在数据线上保持时间一共也是1个clk。那么在下一个clk上升沿采集的时候,相当于保持时间只剩下了2-6ns了,我是这么理解的

使用特权

评论回复
14
GoldSunMonkey| | 2011-11-25 23:17 | 只看该作者
这种理解了是对的:)
但是这个不影响你的使用,因为你的数据是有你时钟采样而来。
和寄存器一个道理。

使用特权

评论回复
15
GoldSunMonkey| | 2011-11-25 23:17 | 只看该作者
贴出了和大家分享

使用特权

评论回复
16
lizardno1|  楼主 | 2011-11-25 23:23 | 只看该作者
15# GoldSunMonkey
是该分享,这个问题我查了很多资料都没有找到,也许别人根本没把这个当问题,我多虑了。。。

使用特权

评论回复
17
GoldSunMonkey| | 2011-11-25 23:25 | 只看该作者
lizardno1
猴哥你的意思是2-6ns的保持时间完全够被打入FPGA的寄存器是把?

使用特权

评论回复
18
GoldSunMonkey| | 2011-11-25 23:25 | 只看该作者
不仅如此,关键这个是由该时钟生成的。
这个还可以offset的约束,到时候再说吧这个问题。

使用特权

评论回复
19
GoldSunMonkey| | 2011-11-25 23:26 | 只看该作者
到时候结帖,把分数都给俺哦~哈哈;P

使用特权

评论回复
20
lizardno1|  楼主 | 2011-11-25 23:33 | 只看该作者
19# GoldSunMonkey
哈哈,Mr.king给了retimed的建议,也好歹给别人留点哈

使用特权

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

本版积分规则

12

主题

55

帖子

0

粉丝