SRIO—IP核——3.SRIO时钟与复位

3.SRIO时钟与复位

3.1 IP核时钟

PHY(物理层)在两个时钟域上运行:

phy_clk:核主要的时钟

gt_pcs_clk:用于串行收发器接口

gt_clk不会被PHY使用,但会被串行收发器接口使用。

gt_pcs_clk是gt_clk的速率的一半。

按照一般规则,phy_clk等于(gt_clk*操作链路宽度)/4。因此,对于一个运行在2x的核来说,phy_clk是gt_clk频率的一般。如果核训练降到1x模式下,phy_clk必须切换到gt_clk速率的四分之一。串行收发器还需要一个使用收发器专用时钟引脚的参考时钟(refclk)。当核生成时,会选择参考时钟频率。

下表是针对每个线速的有效参考时钟:

LOG(逻辑层)操作在log_clk时钟域。为了获得最佳吞吐量,log_clk应至少和phy_clk一样快。

BUF(缓冲)在log_clk时钟域和phy_clk时钟域之间传输数据包。如果BUF选择为unified clocks,log_clk和phy_clk必须是同步的.否则,时钟必须匹配各接口子核的速率。

每个子核心配置寄存器接口上的cfg_clk域独立于子层时钟。然而,要使用含配置结构参考设计的LOG维护控制器,所有这些接口的cfg_clk必须是相当于log_clk。

下面三个表列出了在不同链路宽度情况下典型的时钟频率:

3.2时钟参考设计

    示例设计采用单一差分输入时钟sys_clk,并实例化产生时钟所需的始终缓冲区和时钟模块。

    sys_clk_p和sys_clk_n与DIFF_CLK接口相关联。对于7系列fpga来说,使用MMCM从串行收发器产生时钟(GT)参考时钟。

    时钟方案的框图如下图所示:

MMCM的乘法器和除法器值取决于参考时钟频率还有线速率。在4x配置情况,log_clk和gt_clk共享一个BUFG。在1x配置,log_clk和phy_clk共享一个BUFG(不需要BUFGMUX,因为只有一种可能的phy_clk速率)。另外,如果选中“Unified Clock”,log_clk和phy_clk需要具有相同的速率。这意味着可以移除log_clk/cfg_clk的BUFG,log_clk/cfg_clk可以绑定到phy_clk。

3.3复位

    每个时钟域都有一个相关的复位。复位应该在相应的时钟域的至少保持四个时钟周期,并同步释放。(注意,如果核被train down,phy_clk运行速度比原始速率慢,复位必须在维持四个完整的时钟周期)。

    包含复位的参考设计模块(srio_rst.v)有一个复位输入sys_rst。这个信号是一个异步输入。该模块同步复位到每个时钟域,并扩展脉冲,以满足最小复位周期的要求.

    初始硬件复位应该由用户设计生成。在使用RapidIO协议进行带内通信时也可以进行复位操作。在复位SRIO节点设备时,必须特别小心。两个链接对象应该一起复位,以保证ackID对齐。推荐的设计是链路伙伴之间复位重叠,以减少报文和控制符号丢失的发生。实现这一点的一种方法是对核复位进行握手操作。

    从链接伙伴接收到的复位通过来自核的phy_revd_link_reset断言传递给用户设计。sys_rst信号应该在收到链路复位时被断言。根据实现的不同,还可以向用户应用程序发出复位信号,以响应phy_revd_link_reset断言。要向链接伙伴发送复位请求,请断言phy_link_reset信号,直到port_initialized输出变成低为止。此时,应该对复位参考设计断言sys_rst,完成握手。

3.4时钟与复位

时钟设计:

设计纲要:将异步输入的复位信号sys_rst,同步到每个时钟域,并扩展脉冲,以满足最小复位周期的要求。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值