AURORA64B66B IP核使用

news2025/1/23 22:27:05

文章目录

  • 前言
  • 一、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.coloradmin.cn/o/1576084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

绝地求生:29.1版本爆料杜卡迪联名、新通行证、成长型AUG和异色、战队皮

这回的更新爆料是真的多,虽然不会同时上线,本期杜卡迪因为没有轮毂和轮胎,所以车漆的颜色可能会贵一点,但是似乎会有进阶优惠礼包可以购买 合作者战队 本期合作者战队皮肤感觉比较一般,武器不是热门武器,而…

项目:自主实现Boost搜索引擎

文章目录 写在前面开源仓库和项目上线其他文档说明 项目背景项目的宏观原理技术栈与环境搜索引擎原理正排索引倒排索引 去标签和数据清洗模块html文件名路径保存函数html数据解析函数文件写入函数 建立索引模块检索和读取信息建立索引建立正排索引建立倒排索引jieba工具的使用倒…

物联网可视化平台

随着数字化转型的深入,物联网技术正在成为企业实现智能化、高效化运营的重要工具。物联网可视化平台,作为连接物理世界与数字世界的桥梁,为企业提供了直观、实时的数据展示和监控能力,从而在数字化转型中扮演着关键角色。 一、物…

Android 11 上的文件读写无权限问题

Android 6以上需要动态申请读写权限,但是11以上动态申请了读写权限也是无效。并且手动给予权限没有该按钮。 如上图华为钱包有个所有文件权限、但是百度地图只有仅媒体权限,仅媒体权限(动态申请读写权限)给予后软件还是没法访问文…

js通过Object.defineProperty实现数据响应式

目录 数据响应式属性描述符propertyResponsive 依赖收集依赖队列寻找依赖 观察器 派发更新Observer完整代码关于数据响应式关于Object.defineProperty的限制 数据响应式 假设我们现在有这么一个页面 <!DOCTYPE html> <html lang"en"><head><m…

Android Studio学习15——多页面情况下再看Activity生命周期

按返回键退出APP时&#xff1a; 走正常页面的退出流程&#xff1a;onPause–>onStop–>onDestroy(会Destroy,因为它从任务栈中退出了) 再点击图标回来时&#xff1a; 走正常页面的创建流程&#xff1a;onCreate–>onStart–>onResume 按Home键退出App时&#xff1a…

Leetcode 581. 最短无序连续子数组

心路历程&#xff1a; 本以为这道题要用动态规划求解&#xff0c;因为题目中这几个关键字与动态规划太匹配了&#xff0c;结果想了半天也没发现dp(i)和dp(i-1)的递推关系。 这道题本意考察双指针的做法&#xff0c;也可以用排序后做比较的方式来做。 注意的点&#xff1a; 1…

Advanced RAG 02:揭开 PDF 文档解析的神秘面纱

编者按&#xff1a; 自 2023 年以来&#xff0c;RAG 已成为基于 LLM 的人工智能系统中应用最为广泛的架构之一。由于诸多产品的关键功能&#xff08;如&#xff1a;领域智能问答、知识库构建等&#xff09;严重依赖RAG&#xff0c;优化其性能、提高检索效率和准确性迫在眉睫&am…

为什么函数式编程应该成为软件开发的未来

它很难学&#xff0c;但是你的代码会产生更少的意外 你可能认为软件产品生命周期中最长最昂贵的阶段是系统的初始开发阶段&#xff0c;因为所有那些伟大的功能都是在最初的想象中创建的。事实上&#xff0c;最困难的部分是之后的维护阶段。这是程序员为他们在开发过程中走捷径付…

探索实践昏暗光线低光照场景下目标检测,基于YOLOv7【tiny/l/x】模型开发构建昏暗光线低光照场景下的目标检测识别系统

昏暗光线低光照条件下的目标检测问题&#xff0c;是机器视觉领域一个长期存在且持续受到关注的挑战。这个问题的背景主要源自现代社会对机器视觉技术的广泛需求&#xff0c;特别是在光线条件不佳的环境下&#xff0c;如夜间监控、自动驾驶、安防系统等场景。在昏暗光线或低光照…

C++:红黑树封装实现map、set

一、map、set的底层结构 前面对map、set等树形结构的关联式容器进行了简单的介绍&#xff0c;了解到map、set都是由红黑树封装实现的。红黑树是一种由二叉搜索树进行平衡处理后的平衡树&#xff0c;其查找、插入、删除等操作的时间复杂度为O(logn)&#xff0c;详情请参考数据结…

neo4j图数据库下载安装配置

neo4j下载地址Index of /doc/neo4j/3.5.8/ 1.说明&#xff1a;jdk 1.8 版本对应的 neo4j 数据库版本 推荐安装3.X版本 2.配置系统环境变量 3.启动 neo4j.bat console 4.访问

【Lavavel框架】——各目录作用的介绍

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

SQLite 4.9的虚拟表机制(十四)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite 4.9的 OS 接口或“VFS”&#xff08;十三&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 1. 引言 虚拟表是向打开的 SQLite 数据库连接注册的对象。从SQL语句的角度来看&#xff0c; 虚拟表对象与任何其他…

【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…

C++ | Leetcode C++题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; class Solution { public:int threeSumClosest(vector<int>& nums, int target) {sort(nums.begin(), nums.end());int n nums.size();int best 1e7;// 根据差值的绝对值来更新答案auto update [&](int cur) {if (abs(cur…

蓝桥杯-单片机组基础14——定时计数器与延时函数2方法实现长短按功能

蓝桥杯单片机组备赛指南请查看 &#xff1a;本专栏第1篇文章 本文章针对蓝桥杯-单片机组比赛开发板所写&#xff0c;代码可直接在比赛开发板上使用。 型号&#xff1a;国信天长4T开发板&#xff08;绿板&#xff09;&#xff0c;芯片&#xff1a;IAP15F2K61S2 &#xff08;使…

Python+Vuecil笔记

Nginx 进入目录: C:\nginx-1.20.2\nginx-1.20.2 start nginx 开始 nginx -s stop 停止 nginx -s quit 退出CSS 通过标签去写css 循环展示数据 JS 点击时执行事件 Django 配置media 在seetings里面修改 STATIC_URL /static/ MEDIA_URL /upload/ MEDIA_ROOT os.pat…

力扣 583. 两个字符串的删除操作

题目来源&#xff1a;https://leetcode.cn/problems/delete-operation-for-two-strings/description/ C题解1&#xff1a;动态规划 寻找word1和word2拥有的公共最长子序列&#xff0c;之后分别对word1和word2进行删除操作&#xff0c;即可使word1和word2相等。 寻找公共最长子…

linux 任务管理器(top, ps),面试考点与面试技巧

图2-1 top命令 RES 表示内存占用。 SHR 表示 share 内存占用. 该视图会自动刷新&#xff0c;按"P"(大写要用 shift) 按照cpu使用率倒排 按 "M"按照内存占用倒排。 图 2-2 top命令开头的几行 top命令开头的几行见图2-2. load average后的三个小数分别表…