Vivado IDE 中的共享逻辑选项配置核心,包括可收集的资源,如收发器四路 PLL(QPLL),收
发器差分缓冲区(IBUFDS_GTE2)以及核心或示例设计中的时钟和复位逻辑。 当选择了核心选项中的包含共享逻辑时,所有可共享的资源可用于核心的多个实例,从而最小化所需的 HDL 修改量,同时保 留灵活性来解决更多的用例。 共享逻辑层次结构称为<component_name>_support。图显示了共享逻辑块包含在核心或示例设计中的两个层次结构。两个层次之间的区别是核心的
边界。它使用 Vivado IDE 中的 Shared Logic 选项进行控制(后面 IP CORE 使用的例子中可以看到)。 注意:当共享逻辑处于内核时,单端选项将从内核中排除相应的差分时钟缓冲区。
共享逻 辑 的 内 容 取 决 于 物 理 接 口 和 目 标 设 备 。 共 享 逻 辑 包 含 收 发 器 差 分 缓 冲 器
(IBUFDS_GTE2/IBUFDS_GTE3)的实例,支持复位逻辑,以及实例化<USER_COMPONENT_NAME:> _ CLOCK_MODULE。 共享逻辑还包含基于选定的收发器类型的收发器公共实例 GTPE2_COMMON, GTPE2_COMMON 或 GTHE2_COMMON。 支持复位逻辑包含复位和 gt_reset 端口的去保护逻辑。
注意:Aurora 8B / 10B 内核使用 CPLL,不使用 QPLL(也就是说,GTPE2_COMMON/ GTHE2_COMMON)。为 Zynq-7000 和 7 系列器件提供 QPLL,并与共享逻辑实例化,以实现与其他赛灵思串行连接内核的一致性。
gt_refclk1_out 和 gt_refclk2_out 信号可以由其他收发器共享在设计中,应遵循收发器时钟指南,以实现连接和收发器四方接近。 图显示了具有共享逻辑(aurora_8b10b_0)的内核与没有共享逻辑(aurora_8b10b_1)的另 一核心实例的可共享资源连接。 某些端口可能会根据核心配置和所选收发器的类型而改变。
使用加扰/解扰器
对于具有多项式 G(x)= X16 + X5 + X4 + X3 + 1 的数据实现的 16 位加法扰码器/解扰器可
在<component name> _scrambler.v [hd]模块。 它确保长时间不发生重复数据。 基于时钟补偿字符的发送和接收,分别对加扰器和解扰器进 行同步。
注意:扰码器仅影响数据符号。
使用 CRC
在<component name>_crc_top.v [hd]模块中可以使用为用户数据实现的 16 位或 32 位 CRC。
生成 CRC16 用于 2 字节设计,CRC32 生成 4 字节设计。crc_valid 和 crc_pass_fail_n 信号表示发送 CRC 的接收 CRC 的结果
。
热插拔逻辑
Aurora 8B/10B 中的热插拔逻辑(使用自由运行的 init_clk 信号)基于接收到的时钟补偿字
符。 通过 Aurora RX 接口接收时钟补偿字符意味着通信通道是活的,不会破坏。 如果在预定时间内未接收到时钟补偿字符,则热插拔逻辑复位核心和收发器。 时钟补偿模块必须用于 Aurora 8B/10B设计。
重要信息:为了确保可预测的链接操作,强烈建议热插拔逻辑不被禁用。
时钟补偿
时钟补偿功能允许在 Aurora 8B/10B 通道的每一侧使用的参考时钟频率高达±100 ppm 的差异。
标准时钟补偿模块<component_name>_standard_cc_module.v[hd]根据 Aurora 8B/ 10B 协议规范
(SP002)与内核一起生成。standard_cc_module 处理产生时钟补偿字符的周期性,如表 所 示。周期可以用 CC_FREQ_FACTOR 控制。
防止 16 字节 UFC 消息与时钟补偿序列冲突所需的先行循环次数取决于通道中的通道数和每个
通道的宽度。 本地流控制消息请求在时钟补偿字符传输期间不被确认。 这有助于防止 NFC 消息和时钟补偿 序列的冲突。
重要信息:参数 CC_FREQ_FACTOR 决定 CC 序列的频率。 任何增加或减少参数的尝试都应该仔细分析和测试。
•确保选择的持续时间和周期足以纠正所使用时钟频率之间的最大差异。
•不要在八个周期内执行多个时钟校正序列。
•用 CC 序列代替长时间的空闲序列(小于 12 个周期)可以降低 EMI。
使用小端支持
Aurora 8B/10B 内核默认支持大端格式的用户界面。它还支持小端点格式,无缝连接到兼容
AXI4-Stream 的 IP 内核。