给个网站2022年手机上能用的,关键词优化公司济南兴田德润团队怎么样,做企业免费网站,天津公司网站文章目录 一、Aurora8B/10B协议二、时钟、复位与状态指示1、时钟2、复位3、状态指示 三、数据发送、接受接口#xff08;1#xff09;AXI4-Stream位排序#xff08;2#xff09;Streaming接口#xff08;3#xff09;Framing接口#xff08;帧传输接口#xff09; 四、… 文章目录 一、Aurora8B/10B协议二、时钟、复位与状态指示1、时钟2、复位3、状态指示 三、数据发送、接受接口1AXI4-Stream位排序2Streaming接口3Framing接口帧传输接口 四、ip核配置与使用实验描述ip配置 一、Aurora8B/10B协议
Aurora 协议是一个用于在点对点串行链路间移动数据的可扩展轻量级链路层协议由Xilinx开发提供。这为物理层提供透明接口让专有协议或业界标准协议上层能方便地使用高速收发器。Aurora协议在Xilinx的FPGA上有两种实现方式8B/10B 与 64B/10B。两个协议大部分相同主要区别在编码方式上
Aurora 8B/10B将8bit数据编码成10bit数码进行传输尽量平衡数据中“0”和“1”的个数以实现DC平衡显然这个编码方式的开销是20%也就是效率为80%。Aurora 64B/10B将64bit数据编码成66bit块传输66bit块的前两位表示同步头主要由于接收端的数据对齐和接收数据位流的同步。同步头有“01”和“10”两种“01“表示后面的64bit都是数据“10”表示后面的64bit是数据信息。数据信息0和1不一定是平衡的因此需要进行加扰开销较小。 二、时钟、复位与状态指示
1、时钟
高速接口的IO都在MGT bank上面 1个bank有4对Lane2对差分时钟。
ref_clk Aurora IP核是基于GT作为物理层实现的所以时钟ref_clk就是GT的参考时钟。GT的时钟参考只能使用外部的差分时钟所以具体的值取决板卡的硬件设计。默认125Mhz。INIT CLK 初始化阶段的时钟 在上电初始化阶段可以使用该时钟来驱动一些逻辑。默认值50Mhz。DRP CLK DRP时钟动态重配置一般没用默认值50Mhz通常一个内部模块需要进行配置使用两种方法端口控制和配置参数控制。一个常见的应用就是线速率切换。这时候就需要利用DRP端口来调整部分参数的值然后复位GTX使GTX工作在不同的线速率下。user_clk_out: 这个时钟是IP核根据设置的线速率及Lane的位宽计算出来的用户时钟用户需要传输的数据必须是该时钟域下的数据否则会存在亚稳态风险。 总结1、ref_clk 的值根据对应硬件设计的来 2、INIT CLK 和DRP CLK可以用PLL或者MMCM生成 3、user_clk_out是用户时钟域数据收发接口应该工作在此时钟域下。 2、复位
全双工模块下的复位设计 复位信号有gt_reset和系统复位reset两种,且都是高复位。 gt_reset复位比较底层,可以理解系统复位reset是gt_reset的子集。 reset用于复位 Aurora 8B/10B IP 核的协议层逻辑控制逻辑、数据路径等。它的作用是确保协议层逻辑处于正确的初始状态不会影响底层的 GT 模块。 gt_reset用于复位底层的高速收发器GT包括 PLL、CDR、SerDes 等。它的作用是确保 GT 模块的正确初始化和数据同步影响整个链路的物理层操作。 reset:至少保持6个user_clk周期、之后的channel_up保持三个周期后拉低。
get_reset至少保持6个init_clk。
使用a7板子在实际设计中复位时序如下 3、状态指示
Aurora IP还提供了一系列的指示接口出来方便进行调试
loopback回环模式实际使用一般接到0power down高电平有效。当其为高时GT会进入非工作、低功耗的模式类似睡眠模式。使用的时一般直接拉低。lane_up当对应的Lane初始化完成后会断言对应的lane_up – -channel_up当Auroa 8b/10b初始化完成后并且当前已经可以进行数据的传输时会断言该信号hard_err错误表征应信号主要是硬件类错误soft_err错误表征应信号主要是软件类错误frame_err 错误表征应信号主要是帧类错误 三、数据发送、接受接口
Aurora 8B/10B IP核支持AXI4-Stream协议并依据是否对AXI4-Stream协议进行再封装来提供两种数据传输接口Framing 接口帧传输接口和Streaming接口流传输接口。
Framing接口帧传输接口在AXI4-Stream的基础上添加了帧头、帧尾等控制信号使得传输更准确但是会降低传输效率和使用较多资源Streaming接口流传输接口基本上就是一个非常简化的AXI4-Stream接口只有数据有效、握手和数据信号此种方式传输效率高但无法保证传输的准确性
1AXI4-Stream位排序
Aurora 8B / 10B IP核采用升序排列。 首先发送和接收最高有效字节的最高有效位。 下图显示了n字节的Aurora 8B / 10B IP核的AXI4-Stream数据接口示例。
2Streaming接口
Streaming接口示意图如下 看起来比 Framing接口简化了很多因为发送端和接收端都少了keep和last这两个信号共4个。之前说过Framing接口的帧框架使得需要使用keep和last这两个信号来控制帧的长度所以信号较多。而Streaming接口则没有帧框架相当于一条不停流动的管道所以不需要使用keep和last这两个信号来控制长度。
用起来也很简单发送数据只要在tvalid信号和tready信号握手成功时就可以发送接收数据就更简单了只要tvalid为高则说明此时接收的数据是有效的。
Example A: TX Streaming Data Transfer数据发送
只有当s_axi_tx_tready、s_axi_tx_tvalid均为高成功握手时才可以发送数据。 Example B: RX Streaming Data Transfer接收数据
只有当m_axi_rx_tvalid为高时才说明接收到的数据为有效数据。 Streaming接口总结
Streaming接口就是经典的AXI4-Streaming接口没有帧的概念数据总线上数据长度是不受限制的发送端用户只需要在发送、接收双方完成握手后即可发送数据通信双方均可通过握手信号来反压对方接收端用户仅需要在valid信号有效时从总线上拿数据即可 3Framing接口帧传输接口
Framing接口示意图如下 Framing接口由于存在frame帧的概念所以接口信号较之Streaming接口要复杂一点主要接口如下
1发送端相对于用户来说 名称方向时钟域 说明s_axi_tx_tdata[(8n–1):0]输入user_clk用户要发送的数据位宽由链路位宽和链路数量决定s_axi_tx_tready输出user_clk为高表明当前IP核准备接收数据s_axi_tx_tlast输入user_clk发送的最后一个数据高电平有效s_axi_tx_tkeep[(n–1):0]输入user_clk用来指示发送的最后一个数据的有效字节s_axi_tx_tvalid输入user_clk为高表明当前用户发送的数据有效 2接收端相对于用户来说 名称方向时钟域说明m_axi_rx_tdata[8(n–1):0]输出user_clk接收到的数据位宽由链路位宽和链路数量决定m_axi_rx_tlast输出user_clk接收的最后一个数据高电平有效m_axi_rx_tkeep[(n–1):0]输出user_clk用来指示接收的最后一个数据的有效字节m_axi_rx_tvalid输出user_clk为高表明当前接收的数据有效 3Example A: Simple Data Transfer简单数据传输 注其实发送数据方式有很多这里只给出常用的一种即简单数据传输
在valid信号与ready信号握手成功期间传输数据传输到最后一个数据DATA2时拉高tlast信号表明此时传输的是最后一个数据。tkeep信号用来指示数据帧中哪些字节是有效的。 数据接收案例 接收数据过程简单的很只需要数据有效信号m_axi_rx_tvalid为高时则表示此时接收的数据有效。 Framing接口总结
Framing接口类似被再封装的AXI4-Streaming接口IP核自动加入帧头、帧尾并在固定时间内完成时钟补偿发送端用户只需要在发送、接收双方完成握手后即可发送数据通信双方均可通过握手信号来反压对方接收端用户仅需要在valid信号有效时从总线上拿数据即可由于是帧结构所以需要有信号来约束帧长度–tlast 四、ip核配置与使用
实验描述
使用aurora 8b10b 实现数据回环测试tx和rx短接在一起。 其中aurora ip设置部分数据流采用framing接口练习该接口的使用。之后的项目中实际使用streaming接口 aurora_tx_ctrl_inst模块负责产生tx_tdata 和ufc_tx_tdata。Aurora 8B/10B IP 核对接收到的并行数据进行并转串、8b/10b等操作后将数据通过 GT 模块输出而 GT 模块的 TX 串行数据接口如 gtptxn, gtptxp需要连接到物理管脚。数据的回环测试时不需要绑定管脚而是通过内部的回环机制在 FPGA 内部实现 关键时序设计 aurora_rx_ctrl_inst模块通过将TX和RX短接Aurora 8B/10B IP核的RX串行数据接口gtprxn, gtprxp 对接收到的串行数据进行解码和处理包括 8B/10B 解码、串行到并行转换等操作最后将并行数据输入到aurora_rx_ctrl_inst模块在该模块中例化ila验证完整的tx和rx数据通道是否无误。
TXN、TXPX细节 RXN、RXP细节 ip配置
1core options 标签页
2GT selections 标签页 3shared logic标签页