Transmit or Receiver 选择用作发送或者接收LMFC Bufffer Setting in Receiver 只有选择用作接收的时候可以设置因为每条line到达的时间不同该buffer就是用来对齐数据的选择最大的1024就会有较大的冗余空间Number of Lines选择用几条linePattern Generators 只有用作发送的时候才可以选择RPAT (Random Pattern随机码型)JSPAT (Jitter Pattern抖动码型)如果选择可以控制发送该码型接收端对应选择接收测试链路的稳定性。Clocking Option很简单选择时钟频率同步信号高有效还是低有效这一页选择share logic的模式根据官方的说法share logic in core是会把一些共享逻辑放在ip核中引出来对应的接口给使用share logi in example design就会把这些逻辑放在外面可以不同模式下生产对应的例子工程看一下对比。Default SYSREF AlwaysSYSREF信号模式。勾选Always表示SYSREF是连续周期脉冲LMFC边界会持续被它校准适用于Subclass 1。不勾选则表示SYSREF是单次脉冲或非连续模式。如果系统对确定性延迟要求极高通常勾选但需确保SYSREF时钟稳定。Default SCR (Scrambling)加扰开关。开启后数据在发送前会与伪随机序列异或目的是使频谱更平坦、减少EMI电磁干扰。必须与发送端ADC的设置一致。开启会消耗一点额外延迟但通常建议开启。Default F (Octets per Frame)每帧包含的字节数8位字节。这是最关键参数之一。例如 F4表示每帧有4个字节。它直接决定帧长度和链路带宽利用率。Default K (Frames per Multiframe)每个多帧包含的帧数。多帧周期 F × K 个字节。K和F共同决定LMFC周期LMFC周期 (F × K × 10) / 线速率。这是你之前问的LMFC Buffer释放点设置的“时间基准”所以务必与ADC侧的K值保持一致。Default SYSREF Required on Re-Sync重新同步时是否需要SYSREF。选Not Required表示当rx_sync信号触发重新同步时不用等待新的SYSREF脉冲IP核会基于内部时钟自行对齐LMFC相位。选Required则必须等到SYSREF到来才重新同步。当前选“Not Required”通常更灵活能加快重同步速度。该页配置204b的物理层Transceiver Type根据板子走选好板子型号这里就固定了Line Rate根据选择的GT Type有最大速率的限制Refrence Clock参考时钟根据对应的GT bank上接的时钟选择PLL Type用QPLL因为速率较高加上一个GT bank都用同一个QPLL可以保证每条line上的时钟同源DRP Clock Frequency根据需求自己选择Transciever Debug也是根据需求选择勾选后会多出来几根线用来debug配置完ip后打开对应的示例工程平台为2018.3的不同平台例子工程会有差异。demo_tb测试激励文件我也没有完全吃透这里有一部分是产生初始化序列有点难理解。rx_init_data和rx_init_ctrl数组存储了4个多帧的初始化序列ILAS每个条目对应一个“列”Column即所有Lane在同一时刻发送的字节或控制字符。ILAS按照JESD204B规范生成包含多帧1K28.0R起始随后是数据字节0~F*K-3最后以K28.3A结束。多帧2以K28.0开始然后是K28.4Q标志接着是链路配置参数DID、BID、ADJCNT等以及每个Lane特有的LID最后是校验和checksum和填充字节以K28.3结束。多帧3和4各以K28.0开始填充数据字节以K28.3结束。关键点配置参数如DID、L、M等都被复制到每个Lane上除了LID字段该字段在每个Lane上不同校验和则对每个Lane独立计算prechecksum J。这符合JESD204B要求在ILAS阶段每个Lane发送自己的LID并且校验和应使所有配置字节之和含LID为0模256。但这里直接计算了预校验和再加Lane编号确保校验和为0。然后解释下ip核上的axi接口定义这些都符合基本的axi接口协议是用来配置和回读寄存器的。s_axi_awaddr输入写地址。CPU发送要写入的寄存器地址如配置F参数的寄存器地址。s_axi_awvalid输入写地址有效。拉高表示awaddr上的地址是有效的。s_axi_awready输出写地址准备好。IP核拉高表示它已准备好接收地址。只有当awvalid和awready同时为高时地址传输才完成。s_axi_wdata输入写数据。CPU发送要写入寄存器的具体数值通常是32位。s_axi_wstrb输入写选通。这是一个4位的掩码对应32位数据中的4个字节指示wdata中哪些字节是有效的。例如4b0011表示只写入低16位。s_axi_wvalid输入写数据有效。拉高表示wdata上的数据是有效的。s_axi_wready输出写数据准备好。IP核拉高表示它已准备好接收数据。只有当wvalid和wready同时为高时数据传输才完成。s_axi_bresp输出写响应。返回状态码2b00表示成功OKAY2b10表示从机错误SLVERR。s_axi_bvalid输出写响应有效。IP核拉高表示bresp上的响应数据有效。s_axi_bready输入写响应准备好。CPU拉高表示它已准备好接收响应信号。只有当bvalid和bready同时为高时响应传输才完成整个写操作才算结束。s_axi_araddr输入读地址。CPU发送要读取的寄存器地址。s_axi_arvalid输入读地址有效。拉高表示araddr上的地址有效。s_axi_arready输出读地址准备好。IP核拉高表示它已准备好接收读地址。只有当arvalid和arready同时为高时读地址传输才完成。s_axi_rdata输出读数据。IP核返回的寄存器值通常是32位。s_axi_rresp输出读响应。返回状态码2b00表示成功OKAY2b10表示从机错误SLVERR。s_axi_rvalid输出读数据有效。IP核拉高表示rdata上的数据有效。s_axi_rready输入读数据准备好。CPU拉高表示它已准备好接收数据。只有当rvalid和rready同时为高时读传输才完成。简单说明以下仿真信号如下图。总的复位结束后axi总线会先配置以及回读一些寄存器这些寄存器的值是和配置ip时的选择有关的。然后是rx_aresetn信号拉高表示初始化已经完成可以接收数据ip核可以正常接收多帧脉冲。建链的流程其实ip内部已经给完成了最后根据rx_valid和rx_data信号正常读出来数据就可以了。学习记录仅供参考如有错误或疑问欢迎指正讨论。