AURORA64B66B IP核使用

文章目录

  • 前言
  • 一、IP核配置
  • 二、设计框图
  • 三、上板效果
  • 总结

前言

前面我们基于GT 64B66B设计了自定义PHY层,并且也介绍过了基于AURORA8B18B IP核的使用,AURORA8B18B IP核的使用可以说是与AURORA8B18B IP核完全一致,可参考前文:https://blog.csdn.net/m0_56222647/article/details/137261729?spm=1001.2014.3001.5502

一、IP核配置

与8B10B大题是一样,接口也类似
在这里插入图片描述

二、设计框图

设计框图与8B10B一致,模块功能也是一样的,大部分模块都直接使用example design当中的即可,只有aurora_64b66b_0_CLOCK_MODULE模块进行了简单的修改,将INIT_CLK的双端转单端放到了顶层模块。
在这里插入图片描述

module aurora64b66b_module(input               i_init_clk_100M         ,input               i_rst                   ,input               gt_refclk_p             ,input               gt_refclk_n             ,output [1 :0]       gt_txp                  ,output [1 :0]       gt_txn                  ,input  [1 :0]       gt_rxp                  ,input  [1 :0]       gt_rxn                  ,input  [63:0]       s_axi_tx_0_tdata        ,input  [7 :0]       s_axi_tx_0_tkeep        ,input               s_axi_tx_0_tlast        ,input               s_axi_tx_0_tvalid       ,output              s_axi_tx_0_tready       ,output [63:0]       m_axi_rx_0_tdata        ,output [7 :0]       m_axi_rx_0_tkeep        ,output              m_axi_rx_0_tlast        ,output              m_axi_rx_0_tvalid       ,output              o_hard_err_0            ,output              o_soft_err_0            ,output              o_channel_up_0          ,output              o_lane_up_0             ,input  [2 :0]       i_loopback_0            ,output              o_user_clk_0            ,output              o_user_rst_0            ,input  [63:0]       s_axi_tx_1_tdata        ,input  [7 :0]       s_axi_tx_1_tkeep        ,input               s_axi_tx_1_tlast        ,input               s_axi_tx_1_tvalid       ,output              s_axi_tx_1_tready       ,output [63:0]       m_axi_rx_1_tdata        ,output [7 :0]       m_axi_rx_1_tkeep        ,output              m_axi_rx_1_tlast        ,output              m_axi_rx_1_tvalid       ,output              o_hard_err_1            ,output              o_soft_err_1            ,output              o_channel_up_1          ,output              o_lane_up_1             ,input  [2 :0]       i_loopback_1            ,output              o_user_clk_1            ,output              o_user_rst_1          );IBUFDS_GTE2 IBUFDS_GTXE2_CLK1  
(.O               (i_gtref_clk   ),.ODIV2           (              ),.CEB             (1'b0          ),.I               (gt_refclk_p   ),.IB              (gt_refclk_n   )
);aurora_64b66b_0_gt_common_wrapper gt_common_support
(.gt_qpllclk_quad1_out       (gt_qpllclk_quad1_in    ),.gt_qpllrefclk_quad1_out    (gt_qpllrefclk_quad1_in ),.GT0_GTREFCLK0_COMMON_IN    (i_gtref_clk            ), //----------------------- Common Block - QPLL Ports ------------------------.GT0_QPLLLOCK_OUT           (gt0_qplllock_in        ),.GT0_QPLLRESET_IN           (gt0_qpllreset_out      ),.GT0_QPLLLOCKDETCLK_IN      (i_init_clk_100M        ),.GT0_QPLLREFCLKLOST_OUT     (gt0_qpllrefclklost_in  ),//---------------------- Common DRP Ports ----------------------.qpll_drpaddr_in            (0),.qpll_drpdi_in              (0),.qpll_drpclk_in             (0),.qpll_drpdo_out             (), .qpll_drprdy_out            (), .qpll_drpen_in              (0), .qpll_drpwe_in              (0)
);aurora64b66b_channel aurora64b66b_channel_u0(.i_init_clk_100M            (i_init_clk_100M        ),.i_rst                      (i_rst                  ),.i_gtref_clk                (i_gtref_clk            ),.gt_txp                     (gt_txp[0]              ),.gt_txn                     (gt_txn[0]              ),.gt_rxp                     (gt_rxp[0]              ),.gt_rxn                     (gt_rxn[0]              ),.s_axi_tx_tdata             (s_axi_tx_0_tdata       ),.s_axi_tx_tkeep             (s_axi_tx_0_tkeep       ),.s_axi_tx_tlast             (s_axi_tx_0_tlast       ),.s_axi_tx_tvalid            (s_axi_tx_0_tvalid      ),.s_axi_tx_tready            (s_axi_tx_0_tready      ),.m_axi_rx_tdata             (m_axi_rx_0_tdata       ),.m_axi_rx_tkeep             (m_axi_rx_0_tkeep       ),.m_axi_rx_tlast             (m_axi_rx_0_tlast       ),.m_axi_rx_tvalid            (m_axi_rx_0_tvalid      ),.o_hard_err                 (o_hard_err_0           ),.o_soft_err                 (o_soft_err_0           ),.o_channel_up               (o_channel_up_0         ),.o_lane_up                  (o_lane_up_0            ),.i_loopback                 (i_loopback_0           ),.o_user_clk                 (o_user_clk_0           ),.o_user_rst                 (o_user_rst_0           ),.gt0_qplllock_in            (gt0_qplllock_in        ),.gt0_qpllrefclklost_in      (gt0_qpllrefclklost_in  ),.gt0_qpllreset_out          (gt0_qpllreset_out      ),.gt_qpllclk_quad1_in        (gt_qpllclk_quad1_in    ),.gt_qpllrefclk_quad1_in     (gt_qpllrefclk_quad1_in ) 
);aurora64b66b_channel aurora64b66b_channel_u1(.i_init_clk_100M            (i_init_clk_100M        ),.i_rst                      (i_rst                  ),.i_gtref_clk                (i_gtref_clk            ),.gt_txp                     (gt_txp[1]              ),.gt_txn                     (gt_txn[1]              ),.gt_rxp                     (gt_rxp[1]              ),.gt_rxn                     (gt_rxn[1]              ),.s_axi_tx_tdata             (s_axi_tx_1_tdata       ),.s_axi_tx_tkeep             (s_axi_tx_1_tkeep       ),.s_axi_tx_tlast             (s_axi_tx_1_tlast       ),.s_axi_tx_tvalid            (s_axi_tx_1_tvalid      ),.s_axi_tx_tready            (s_axi_tx_1_tready      ),.m_axi_rx_tdata             (m_axi_rx_1_tdata       ),.m_axi_rx_tkeep             (m_axi_rx_1_tkeep       ),.m_axi_rx_tlast             (m_axi_rx_1_tlast       ),.m_axi_rx_tvalid            (m_axi_rx_1_tvalid      ),.o_hard_err                 (o_hard_err_1           ),.o_soft_err                 (o_soft_err_1           ),.o_channel_up               (o_channel_up_1         ),.o_lane_up                  (o_lane_up_1            ),.i_loopback                 (i_loopback_1           ),.o_user_clk                 (o_user_clk_1           ),.o_user_rst                 (o_user_rst_1           ),.gt0_qplllock_in            (gt0_qplllock_in        ),.gt0_qpllrefclklost_in      (gt0_qpllrefclklost_in  ),.gt0_qpllreset_out          (),.gt_qpllclk_quad1_in        (gt_qpllclk_quad1_in    ),.gt_qpllrefclk_quad1_in     (gt_qpllrefclk_quad1_in ) 
);endmodule

三、上板效果

数据收发一切正常
在这里插入图片描述

总结

整体设计与8B10B完全一致,完整工程代码可参考:https://github.com/shun6-6/AURORA64B66B_Pro

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/599618.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

simulink 的stm32 ADC模块输出在抽筋,不知为何

% outtypecast(uint16(1000),uint8) % 10003E8,E8232,out232 3 function [y,len] myfcn(u1) headuint8([255 85]);%帧头 out1typecast(uint16(u1),uint8); % out2typecast(uint16(u2),uint8); y[head,out1]; lenuint16(length(y)); 2023b版本,stm32硬件支持…

探索数据中心系统功能架构的演进与未来

随着信息技术的快速发展和数据规模的爆炸性增长,数据中心已经成为现代社会不可或缺的基础设施之一。数据中心系统功能架构的设计和演进对于数据中心的性能、效率和安全至关重要。本文将探讨数据中心系统功能架构的演进历程以及未来发展趋势。 随着云计算、大数据、…

IntelliJ IDEA - Since Maven 3.8.1 http repositories are blocked

问题描述 新下载的 IDEA 在构建项目时,在下载引用的包时出现 “Since Maven 3.8.1 http repositories are blocked” 的问题。 原因分析 从 Maven 3.8.1 开始,不再支持 http 的包了。由于现在对网络安全的日益重视,都在向 https 转变&#…

服务器主机安全受到危害的严重性

为了让小伙伴们了解到服务器主机安全受到危害的严重性,以下详细说明一下:1. 数据泄露:如果服务器主机遭受攻击,攻击者可能会窃取敏感数据,如用户数据、商业秘密、机密文件等,导致数据泄露和商业机密的泄漏。…

鸿蒙(HarmonyOS)APP开发实战课程(入门到精通)

2024培训课程 2024技术交流群 CSDN在线课程地址: https://edu.csdn.net/course/detail/39448 推荐阅读 鸿蒙Harmony OS核心架构 鸿蒙内核源码分析(系统调用篇) 鸿蒙(HarmonyOS)APP开发培训课程 鸿蒙(HarmonyOS)APP开发实战课程 鸿蒙系统(HarmonyOS&#xff0…

PCF8591(ADDA转换芯片)

工具 1.Proteus 8 仿真器 2.keil 5 编辑器 原理图 讲解 PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行IC总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接…

RabbitMQ Docker 安装与应用

1.官方镜像 该镜像包含用户操作界面 2.Docker运行,并设置开机自启动 docker run -d --restartalways --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.10-management 默认登录账户和密码 guest 3、使用 队列和交换机绑定

2024/4/1—力扣—栈的最小值

代码实现: typedef struct node {int val;struct node *next; } Node;typedef struct {struct node *top;int min; } MinStack;/** initialize your data structure here. */MinStack* minStackCreate() {MinStack *obj malloc(sizeof(*obj));obj->top NULL;ob…

手机软件何时统一--桥接模式

1.1 凭什么你的游戏我不能玩 2007年苹果手机尚未出世,机操作系统多种多样(黑莓、塞班、Tizen等),互相封闭。而如今,存世的手机操作系统只剩下苹果OS和安卓,鸿蒙正在稳步进场。 1.2 紧耦合的程序演化 手机…

【c语言】strncpy函数模拟实现

strncpy函数模拟实现 strncpy函数在cplusplus网站中的定义 模拟实现源码 //模拟实现 #include <stdio.h> #include <string.h> #include <assert.h>char* my_strncpy(char* destination, const char* source, size_t num) {assert(destination && so…

AI大模型下的策略模式与模板方法模式对比解析

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》《MYSQL应用》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 &#x1f680; 转载自热榜文章&#xff1a;设计模式深度解析&#xff1a;AI大模型下…

TypeScript学习笔记2-联合类型、类型断言

联合类型 联合类型&#xff1a;顾名思义&#xff0c;简单的说就是多种类型联合起来 栗子1&#xff1a;运用在函数中 栗子2&#xff1a;运用在dom上&#xff08;取不到值时可能为null类型&#xff09; 栗子3&#xff1a;定时器是个常用例子 在TypeScript中&#xff0c;联合类型…