打印
[Quartus]

spartan 6 中IDDR实现(与spartan3 相呼应)

[复制链接]
3488|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
读了GoldSunMonkey 写的IO结构,很有启发,萌发冲动,针对spartan6的ddr设计,写写最近读的资料心得。
      注意:ddr不是指内存条,而是一种时序结构,即时钟的上下边沿都触发数据。
     spartan6的实现非常简单,我们可以从物理通道分析:
     时钟信号经过IBUFGDS,信号名为ClkCtrl_InClk,一路送给IOB中的D触发器,一路经过IDLEAY、BUFIO,变为时钟ClkCtrl_MonClk,时钟ClkCtrl_MonClk对信号ClkCtrl_InClk采样。
       数据信号经过IBUFDS,送给IOB中的D触发器.
      假设PCB板上data和clk迹线长度相等,且数据在沿处变化(这个不是很关键,只要在fpga pad上数据和时钟有很确切的关系)。首先ClkCtrl_MonClk读取采样的clkCtrl_InClk值,如果正好采样在ClkCtrl_InClk边沿,采样值前后会不一致,记录下来,IDELAY延迟一个tap,继续采样,直到稳定,稳定后知道前一次是上升沿还是下降沿。不断增加IDELAY tap,直到检测下一次的沿。记录两次沿的tap值,设置最终的tap为平均值,可保证ClkCtrl_MonClk在ClkCtrl_InClk中间采样。
       data的相位与clk相位相同,所以可保证ClkCtrl_MonClk在数据中央采样
       上述有个假设,即IBUFDS、IBUFGDS延迟基本相等,出来之后到D触发器延迟基本相等,这个可以参照手册。
        详细过程参考xapp866 An Interface for Texas Instruments Analog-to-Digital Converters with Serial LVDS Outputs.pdf

未命名.JPG (27.19 KB )

未命名.JPG

相关帖子

沙发
atua| | 2011-6-2 12:18 | 只看该作者
图片重新弄一下吧,看不清

使用特权

评论回复
板凳
钻研的鱼|  楼主 | 2011-6-3 15:49 | 只看该作者
不是很会更改。图片放大就可以了

使用特权

评论回复
地板
edacsoft| | 2011-6-3 17:11 | 只看该作者
读了GoldSunMonkey 写的IO结构,很有启发,萌发冲动,针对spartan6的ddr设计,写写最近读的资料心得。
      注意:ddr不是指内存条,而是一种时序结构,即时钟的上下边沿都触发数据。
     spartan6的实现非常简单 ...
钻研的鱼 发表于 2011-6-2 11:40


提供给DDR的时钟也是ClkCtrl_InClk吗?

使用特权

评论回复
5
GoldSunMonkey| | 2011-6-4 21:17 | 只看该作者
3# 钻研的鱼
受我启发还不给我点好评啊~~哈哈~~

使用特权

评论回复
6
GoldSunMonkey| | 2011-6-4 21:25 | 只看该作者
本帖最后由 GoldSunMonkey 于 2011-6-4 21:36 编辑

3# 钻研的鱼
楼上的,肯定不能简单的说DDR的时钟是CLKCTRL_INCLK来提供。

鱼,我没看出来DDR的讲述,非DDR也可以用此结构啊.另外你是不是使用的Xilinx的MIG?

使用特权

评论回复
7
钻研的鱼|  楼主 | 2011-6-7 17:24 | 只看该作者
等几天时间,我再把资料好好消化

使用特权

评论回复
8
kakio| | 2011-6-8 11:00 | 只看该作者
这个图 没太看明白 :(

使用特权

评论回复
9
vivisa| | 2011-6-19 21:47 | 只看该作者
:L

使用特权

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

本版积分规则

64

主题

967

帖子

4

粉丝