serdes的参考时钟输入可以输入mmcm吗

1、时钟纠正原理
时钟纠正比较简单,下面一个图就能说清楚。
首先为什么要使用时钟纠正,是因为CDR恢复的用户时钟user_clk和硬核时钟XCLK虽然频率一样,但是会有略微的不同,正是这样导致内部的FIFO有可能读空和写满,这样就会导致传输错误。与其传输出错误,不如我们就发送一个特定的序列让它去“出错”。在FIFO快满的时丢弃这个序列,在FIFO快读空时加入这个序列。由于收发双方约定好了这个序列是什么,这样可以避免出错。
2、设置buff大小
即设置最小延迟和最大延迟,buff中的内容在小于或大于这两个值时就会插入或删除特定的CC序列。设置最小延迟要求如下表。(IP核里面不用设置这个,因为提供了PPM offset核CC序列发送的周期,IP核会自己计算出来,真是智能!)
3、设置序列长度,跟上面一样,和comma码的长度有关。
4、IP核设置
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1637次
排名:千里之外
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'你的位置:
Xilinx K7系列中OSERDES的问题
我的ISE版本是14.6,设计了一个简单的OSERDES程序,用来产生DAC数据时钟,思路如下:
100MHz钟-->MMCM-->(CLK=500MHz钟,CLK_DIV=250MHz钟)-->OSERDES(DDR,4:1,并行数据=4'b1010)-->500MHz数据时钟输出
用ISIM做功能仿真正确,但implement后的时序仿真输出数据时钟始终不变(恒定为0),不知道到底怎么回事?麻烦高手指点迷津,谢谢!源码如下
`timescale 1ns/1ps
module TOP_DESIGN
reset_pll,
reset_serdes,
output mmcm_lock,
output CLK_TO_PINS_P,
output CLK_TO_PINS_N
highspeed_
MMCME2_ADV #
.BANDWIDTH
("OPTIMIZED"),
.CLKOUT4_CASCADE
("FALSE"),
.COMPENSATION
("ZHOLD"),
.STARTUP_WAIT
("FALSE"),
.DIVCLK_DIVIDE
.CLKFBOUT_MULT_F
.CLKFBOUT_PHASE
.CLKFBOUT_USE_FINE_PS ("FALSE"),
.CLKOUT0_DIVIDE_F
.CLKOUT0_PHASE
.CLKOUT0_DUTY_CYCLE
.CLKOUT0_USE_FINE_PS
("FALSE"),
.CLKOUT1_DIVIDE
.CLKOUT1_PHASE
.CLKOUT1_DUTY_CYCLE
.CLKOUT1_USE_FINE_PS
("FALSE"),
.CLKIN1_PERIOD
.REF_JITTER1
// Output clocks
(clkfbout),
.CLKFBOUTB
(clkout0),
(clkout1),
// Input clock control
(clkfbout_buf),
// Tied to always select the primary input clock
// Ports for dynamic reconfiguration
// Ports for dynamic phase shift
// Other control and status signals
(mmcm_lock),
.CLKINSTOPPED
.CLKFBSTOPPED
(reset_pll)
BUFG U2_BUFG
.O (clkfbout_buf),
.I (clkfbout)
BUFG U3_BUFG
.O (highspeed_clk),
.I (clkout0)
BUFG U4_BUFG
.O (lowspeed_clk),
.I (clkout1)
IBUFG U5_BUFG
.I (clk_in),
.O (clkin1)
.DATA_RATE_OQ
.DATA_RATE_TQ
.DATA_WIDTH
.TRISTATE_WIDTH (1),
.SERDES_MODE
("MASTER")
.SHIFTOUT1
.SHIFTOUT2
(rst_dly[4]),
(highspeed_clk),
(lowspeed_clk),
(oserdes_out),
(IO_RESET)
#(.IOSTANDARD ("LVDS"))
obufds_inst
(CLK_TO_PINS_P),
(CLK_TO_PINS_N),
(oserdes_out)
always @ (posedge lowspeed_clk or posedge reset_serdes)
if(reset_serdes)
IO_RESET <= 1'b1;
IO_RESET <= 1'b0;
rst_dly[7:1] <= rst_dly[6:0];
rst_dly[0] <= 1'b1;您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
7系列SERDES的TX复位设计.pdf 8页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:150 &&
7系列SERDES的TX复位设计
你可能关注的文档:
··········
··········
7 系列GTX 的TX 复位设计
Xilinx IO Specialist Antony Gu
随着半导体技术,特别是FPGA 的发展,单片芯片的处理能力越来越强。现在单片的处
理能力都在1Tbit 以上。而要处理这么多的数据,单靠原来的LVDS,
LVPECL 已经无法满足芯
片接口吞吐量的要求。所以,如今越来越多的应用都用到高速SERDES 。
的SERDES 作为业界翘楚,越来越多地被客户接受并广泛应用。而随之而来设计、
调试问题,也是让客户感到害怕的问题。特别是客户容易对高速SERDES 犯怵,碰到问题又
无从着手,导致进度受阻,压力倍增。
这是我着手总结SERDES 设计调试的初衷。
这次主要讲SERDES 复位设计。
复位的作用
众所周知,现在主流的FPGA 上实现的都是时序逻辑。时序逻辑有一个特点就是前面的
状态会影响到后面的状态。所以在这种应用里,初始状态的确定是整个设计里非常重要的一
个环节。复位就是用来初始化逻辑状态用的。
对于SERDES,根据不同的应用,其时钟方案是不同的。对此,SERDES 的状态,特别是
BUFFER 的状态会受到很大的影响。由于BUFFER 的读写时钟有效稳定的时间不同,大致会引
起以下2 种情况:
1. BUFFER 上下溢出,使得输入输出误码;
2. 多通道应用里,通道间引入偏移,使得各路通道绑定失败。
所以复位设计必须小心,特别需要和时钟方案相匹配,才能给可靠的设计打下良好的基
7 系列GTX 的时钟结构
上面说到,复位应该和时钟方案相匹配,所以在这里简单介绍一下7 系列GTX/GTH
时钟结构。
7 系列SERDES 是以QUAD 为单位的。在一个QUAD 里,有
a) GTX/GTH: 一个QUAD 里有4 个SERDES ;
b) 2 个参考钟:它们可以连到任意一个 PLL 上。而且可以给上下相邻的QUAD 提
供参考钟;
c) CPLL :这是每路GTX/GTH 都有的PLL。这个C 是指Channel ;
d) QPLL :每个QUAD
内的SERDES 共享的PLL。这个Q 是指QUAD 。
可以供到每个 SERDES
的发(TX )和收(RX )。在 SERDES
TX/RXSYSCLKSEL[1:0]端口选择使用哪个时钟源。
TX Polarity
正在加载中,请稍后...你的位置:
&& 详细内容
把握赛灵思FPGA中的主要时钟资源
热度530票&&浏览9720次
时间:日 17:24
把握DCM、PLL、PMCD 和MMCM 知识是稳健可靠的时钟设计策略的基础。 赛灵思在其FPGA 中提供了丰富的时钟资源,大多数设计人员在他们的FPGA 设计中或多或少都会用到。不过对FPGA设计新手来说, 什么时候用DCM、PLL、PMCD 和MMCM 四大类型中的哪一种,让他们颇为困惑。赛灵思现有的FPGA 中没有一款同时包含这四种资源(见表1)。这四大类中的每一种都针对特定的应用。例如,数字时钟管理器(DCM)适用于实现延迟锁相环(DLL)、数字频率综合器、数字移相器或数字频谱扩展器。DCM 还是镜像、发送或再缓冲时钟信号的理想选择。另一种时钟资源相位匹配时钟分频器(PMCD) 可用于实现相位匹配分配时钟或相位匹配延迟时钟。锁相环(PLL)和混合模式时钟管理器(MMCM)处理的工作有许多是相同的,比如频率综合、内外部时钟抖动滤波、时钟去歪斜等。这两种资源也可用于镜像、发送或再缓冲时钟信号。在深思设计实现细节时,把这些通常用法记在心里,有助于理清时钟选择的思路。对于长期产品发展规划而言,在制定合适的时钟策略时,应考虑各个器件系列之间的兼容性。下面让我们深入了解一下这些时钟资源。您可以使用DCM 将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。数字时钟管理器顾名思义,数字时钟管理器(DCM)是一种用于管理时钟架构并有助于时钟信号成形和操控的模块。DCM 内含一个延迟锁相环(DLL),可根据输入时钟信号,去除DCM 输出时钟信号的歪斜,从而避免时钟分配延迟。DLL 内含一个延迟元件和控制逻辑链路。延迟元件的输出是输入时钟延迟所得。延迟时间取决于延迟元件在延迟链路中的位置。这种延迟体现为针对原始时钟的相位改变或相移,这就是所谓的 “数字相移”。图1 所示的即为Virtex-4 器件中的典型DCM 模块。根据Virtex-4 FPGA 用户指南(UG070,2.6版本)的介绍,Virtex-4 中有三种不同的DCM 原语。一般来说,DLL 与PLL 类似。但与PLL 不同的是DLL 不含压控振荡器(VCO)。PLL 会一直存储相位和频率信息,而DLL 只存储相位信息。因此,DLL 略比PLL 稳定。DLL 和PLL 这两种类型都可以使用模拟和数字技术设计,或者混合两种技术设计。但赛灵思器件中的DCM 采用全数字化设计。由于DCM 可以在时钟路径上引入延迟,比如您就可使用DCM 可以精确地为DRAM 生成行和列访问选通信号的时序。与此类似,数据总线上的各个数据位可以在不同的时间到达。为了正确对数据位采样,接收端的时钟信号必须适当地与所有数据位的到达保持同步。如果接收器使用发射时钟,可能会要求延迟从发送端到接收端的时钟信号。有时设计可能需要一个更高的时钟频率来运行FPGA 上的逻辑。但是,只有低频率输出的时钟源可以用。此时可以使用DCM 将时钟源的输入时钟信号相乘,生成高频率时钟信号。与此类似,可以将来自高频率时钟源的输入时钟信号相除,生成低频率时钟信号。这种技术称为“数字频率综合”。设计人员使用扩频时钟并通过调制时钟信号来降低时钟信号的峰值电磁辐射。未经调制的时钟信号的峰值会产生高电磁辐射。但经调制后,电磁辐射被扩展到一系列时钟频率上,从而降低了所有频点的辐射。一般来说,如果需要满足一定的最大电磁辐射要求和在FPGA 上执行高速处理的时候(比如说通信系统中接收器使用的解串器),就需要使用扩频时钟。因此,FPGA 中的DCM 将乘以输入扩频时钟信号,在内部生成高频时钟信号。DCM 的输出必须准确地跟随扩频时钟,以保持相位和频率对齐并更新去歪斜和相移。DCM 相位和频率对齐的恶化会降低接收器的歪斜裕量。建立时钟的镜像需要将时钟信号送出FPGA 器件,然后又将它接收回来。可以使用这种方法为多种器件的板级时钟信号去歪斜。DCM 能够把时钟信号从FPGA 发送到另一个器件。这是因为FPGA 的输入时钟信号不能直接路由到输出引脚,没有这样的路由路径可用。如果仅需要发送时钟信号,那么使用DCM 将时钟信号发送到输出引脚,可以确保信号的保真度。另外也可选择在时钟信号发送之前,将DCM 输出连接到ODDR 触发器。当然也可以选择不使用DCM,仅使用ODDR 来发送时钟信号。往往时钟驱动器需要将时钟信号驱动到设计的多个组件。这会增大时钟驱动器的负荷,导致出现时钟歪斜及其它问题。在这种情况下,需要采用时钟缓冲来平衡负载。时钟可以连接到FPGA 上的一系列逻辑块上。为确保时钟信号在远离时钟源的寄存器上有合适的上升和下降时间(从而将输入输出时延控制在允许的范围内),需要在时钟驱动器和负载之间插入时钟缓冲器。DCM 可用作时钟输入引脚和逻辑块之间的时钟缓冲器。最后,还可以使用DCM 将输入时钟信号转换为差分I/O 标准信号。例如,DCM 可以将输入的LVTTL 时钟信号转换为LVDS 时钟信号发送出去。相位匹配时钟分频器设计人员可使用相位匹配时钟分频器(PMCD)来生成相位匹配的分频输入时钟信号。这与分频时钟的DCM 频率综合相似。PMCD 还能生成设计中相位匹配但有延迟的时钟信号。在后一种情况下,PCMD 能够在输入时钟信号和其它PMCD 输入时钟信号之间保持边缘对齐、相位关系和歪斜。与DCM 不同的是,在分频器的值可配置的情况下,赛灵思器件中现有的PMCD 生成的时钟信号仅按2、4 和8 分频。这意味着PMCD 生成的时钟信号的频率是输入时钟信号的1/2、1/4 和1/8。在如Virtex-4FPGA 这样的赛灵思器件中,PMCD 紧邻DCM 并与其位于同一列上。每一列有两个PMCD-DCM 对。因此DCM 的输出可以驱动PMCD 的输入。由于DCM 还负责处理去歪斜,因此只要不需要去歪斜时钟,设计人员就可以使用不带DCM 的PMCD。通过专用引脚,还可以把一列中的两个PMCD连接起来。图2 是Virtex-4 器件中的PMCD 原语。详细内容请参阅Virtex-4FPGA 用户指南(UG070,2.6 版本)。混合模式时钟管理器另一种类型的时钟资源——混合模式时钟管理器(MMCM),用于在与给定输入时钟有设定的相位和频率关系的情况下,生成不同的时钟信号。不过与DCM 不同是,MMCM 使用PLL 来完成这一工作。Virtex-6 FPGA 中的时钟管理模块(CMT) 有两个MMCM, 而Virtex-7 中的CMT 有一个MMCM 和一个PLL。Virtex-6 器件中的MMCM 没有扩频功能,因此输入时钟信号上的扩频不会被滤波,将直接被传送给MMCM输出时钟。但Virtex-7 FPGA 的MMCM却有扩频功能。Virtex-6 FPGA 中的MMCM 要求插入一个校准电路,以便在用户复位或用户断电后确保MMCM 正确运行。赛灵思ISE 设计套件11.5 版本及更高版本能够在设计的MAP 阶段自动插入必要的校准电路。若使用赛灵思ISE 的更早版本,则需要使用赛灵思技术支持部提供的设计文件手动插入校准电路。最后需要注意的是,在本移植该设计,以便用ISE11.5 版本或更高版本实现时,必须手动移除校准电路,或通过适当设置每个MMCM 上的综合属性,禁用自动插入功能。详细介绍请参阅赛灵思答复记录AR#33849。对7 系列器件中的MMCM 就不存在这样的问题,因为这些FPGA 只得到ISE 13.1 版本和更高版本以及新型Vivado 设计套件的支持。Virtex-6 系列中提供的MMCM 间专用走线可便于用户将全局时钟资源用于设计的其余部分。图3 显示了Virtex-6 FPGA 中的MMCM 原语。各个端口的详细介绍请参阅Virtex-6 FPGA 时钟资源用户指南(UG362,2.1 版本)。图4 显示了赛灵思7 系列FPGA 中的MMCM 原语,有关详细介绍请参阅7 系列FPGA 时钟资源用户指南(UG472,1.5 版本)。锁相环设计人员使用锁相环(PLL)主要用于频率综合。使用一个PLL 可以从一个输入时钟信号生成多个时钟信号。结合DCM 使用,还可以用作抖动滤波器。Spartan-6、Virtex-5 和7 系列FPGA 中都提供有PLL。Spartan-6 和Virtex-5 中均有专门的“DCM 到PLL”和“PLL 到DCM”走线。Spartan-6 和Virtex-5 中的PLL 输出是非扩频的。对这两种器件而言,如果设计使用多个不同时钟,都可以用PLL 替代DCM。PLL 时钟输出具有宽范的配置范围,而DCM 的输出是预定的,不可配置。PLL 和DCM 的选择还是取决于设计的要求。不过如果相移是必需的, 就应该明确地选择DCM。同时,7 系列器件中的PLL 所实现的功能没有MMCM 所实现的多。因此虽然MMCM 是建立在PLL 架构之上,但7 系列器件中也有独立的PLL。图5显示了Virtex-5 FPGA 中的PLL 原语。各个端口的详细介绍请参阅Virtex-5 用户指南(UG190,5.4 版本)。设计移植掌握四种主要的时钟资源之间的差异及其在不同器件系列中的可用性非常重要。同时,在不同的系列中,相似的资源(比如DCM)可能在功能上并不完全相同。例如,Spartan-6 FPGA 中的DCM 支持扩频时钟, 但Virtex-5 和Virtex-5 器件中的DCM 就不支持。在规划未来设计向更高端系列移植时,除了确保功能,为给定设计选择正确的时钟资源也很重要。如表1 所示,Virtex-6 和7 系列中的MMCM 能够与之前系列中的DCM 向后兼容。但需要判断在多大程度上支持向后兼容性,因为所有这些时钟资源都具有多功能性,提供与时钟相关的多种不同功能。在制定产品长期发展规划时,必须对兼容性了如指掌。
对本篇资讯内容的质量打分:
当前平均分:0.18 (207次打分)
【已经有235人表态】
[感动最多的]
[路过最多的]
[高兴最多的]
[难过最多的]
[搞笑最多的]
[愤怒最多的]
[无聊最多的]
[同情最多的]您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
Xilinx Notes.docx 64页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
&#xe600;下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:350 &&
Xilinx Notes
你可能关注的文档:
··········
··········
7 Series FPGAs Overview参考ds180_7Series_Overview.pdf。General Description7系列包括Artix 7、Kintex 7和Virtex 7。其中Artix 7面向较低端应用,功耗低,价格低,封装小;Kintex 7面向中端应用,性价比更高,性能约比Artix 7提高2倍;Virtex 7面向高端应用。采用28nm工艺。Summary of 7 Series FPGA FeaturesReal 6-input look-up table(LUT) technology configurable as distributed memory.SelectIO technology with support for DDR3 interfaces up to 1866Mb/s.600Mb/s to 6.6Gb/s up to 28.05Gb/s.包括一个用户可配置的ADC(双12位,1MSPS的ADC),芯片内部集成热和电源传感器。DSP slices with 25×18 multiplier, 48-bit accumulator, and pre-adder.Powerful clock management tiles(CMT), combining phase-locked loop(PLL) and mixed-mode clock manager(MMCM) blocks for high precision and low jitter.支持PCIe的endpoint和root port,支持gen3。1.0V核电压,当需要达到更低的功耗时,可配置0.9V核电压。CLBs, Slices, and LUTs7系列的FPGA可将任意一个查找表配置为6输入查找表(64bit ROM),或配置为2个5输入查找表(32bit ROM)。这两个5输入查找表共享地址和逻辑输入,每个查找表的输出有一个可选寄存器。4个6输入LUT,8个寄存器以及相应的乘法器、算数进位逻辑组成一个slice,2个slice组成一个CLB。Clock Management7系列FPGA最多有24个CMT(clock management tiles),每个CMT包含一个MMCM(mixed-mode clock manager)和一个PLL。具体可参考ug472_7Series_Clocking.pdf。Mixed-Mode Clock Manager and PLLMMCM和PLL共享很多相同的特性。D、M和O是3个重要参数。D为前分频,M为倍频,O为奇偶分频(?)。这些参数也可以通过DRP(Dynamic Reconfiguration Port)配置。PLL输出时钟数为6,MMCM为7。MMCM Additional Programmable FeaturesMMCM可实现小数倍频和分频。Clock Distribution通过6中不同类型的时钟线(BUFG, BUFR, BUFIO, BUFH, BUFMR, and the high-performance clock)满足3中不同应用目的:高扇出、低传输延时和极低的偏斜。时钟可分为3类,全局时钟、局部时钟和I/O时钟。I/O时钟are especially fast,且只能用于I/O逻辑和SERDES。7系列芯片中,MMCM输出可与I/O直连,提供低抖动、高性能接口。Block RAMBlock RAM的关键特性如下。双端口36KbRAM,端口宽度可达72可编程FIFO逻辑内置error correction circuitry7系列FPGA有50到1880个block ram。只是使用FIFO controller时,FIFO的读写端口的宽度必须一致。Digital Signal Processing-DSP SliceDSP的主要特点如下。25×18的二进制补码乘法器,48位的累加器Pre-adder可选的pipelining、ALU,以及专用的级联总线Pre-adder可改善资源利用率非常高的设计,降低DSP slice数量达50%。DSP具有48bit的pattern detector,用于convergent或者symmetric rounding。也可用于实现96bit宽的逻辑功能。DSP slice提供pipelining和extension capabilities,可提高除了DSP之外的许多应用的速度和效率。如宽动态总线移位、存储器地址生成、宽总线多路选择器和memory-mapped I/O register files。Input/Output主要特性。支持1866Mb/s DDR3内置高频解耦电容,提高信号
正在加载中,请稍后...}

我要回帖

更多关于 xilinx 差分时钟输入 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信