基于8B/10BGT收发器的PHY层设计(1)

一、PHY层简介

PHY层(Physical Layer)是OSI模型中最低的一层,也是最基本的一层,PHY是物理接口收发器,它实现物理层。包括MII/GMII(介质独立接口)子层、PCS(物理编码子层)、PMA(物理介质附加)子层、PMD(物理介质相关)子层。主要功能包括:

  • 将mac层的数据转换为适合在相应物理介质中传输的信号
  • 进行编码或者解码,进行直流平衡,使得对端接收简单
  • 对数据进行调制解调,或者加入扰码使其数据接近白噪声,提高在信道中的刚干扰能力
  • 在MAC层之前进行数据对齐

其中MII/GMII是与MAC与PHY之间的接口(具体可参考之前写的一篇文章),PCS主要是将数据进行编码或是加入扰码,例如8B/10B、64B/66B,另外一个功能进行CRC校验编码。PMA的主要作用是进行并串/串并转换,将数字信号转换为模拟信号,并可以选择进行前加重、后加重,继承了SEDDES、发送/接收缓冲器、时钟发生器和时钟恢复器。PMD主要指的是将光信号转变为电信号的光电转换模块。

此次要设计PHY层的PCS\PMA主要利用7系列FPGA的GT实现,而我们主要是对GT接收过来的数据进行数据对齐以及大小端转换,对于发送的数据我们主要进行一个大小端转换和加入随机码。

二、GT IP核介绍

1、打开7系列GT IP核

选择将共享逻辑放入到例子工程中,方便我们后续使用

2、线速率、参考时钟选择(CPLL应该是6.6G以下可以使用)

3、编码/时钟选择

4、COMMOA对齐和均衡

COMMOA的作用只是标记一帧的开始和结束,同时进行时钟矫正。在从串行数据转换为并行数据的过程中,会按位流动的检测COMMOA符号,当检测到所设置的COMMOA时,证明有数据到来。

5、PCIe、SATA所使用的选项

只勾选LOOPBACK选项

6、时钟矫正

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

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

相关文章

王道汽车4S企业管理系统 SQL注入漏洞复现

0x01 产品简介 王道汽车4S企业管理系统(以下简称“王道4S系统”)是一套专门为汽车销售和维修服务企业开发的管理软件。该系统是博士德软件公司集10余年汽车行业管理软件研发经验之大成,精心打造的最新一代汽车4S企业管理解决方案。 0x02 漏洞概述 王道汽车4S企业管理系统…

SQL语言自用(持续更新)+实验记录

课本:《数据库原理及其应用教程》(第四版) (主编)黄德才&(副主编)陆亿红 实验:学校实验课材料 其他: [ ]表示可以被删除,也表示可以被替换,请自行判断。如果有一些截图或照片,是暂时懒得整…

5、LMDeploy 量化部署 LLMVLM实战(homework)

基础作业(结营必做) 完成以下任务,并将实现过程记录截图: 配置lmdeploy运行环境 由于环境依赖项存在torch,下载过程可能比较缓慢。InternStudio上提供了快速创建conda环境的方法。打开命令行终端,创建一…

鸿蒙开发快速入门

基本概念 ArkTS 因为ArkTS是基于Type Script扩展而来,是Type Script的超集,所以也可以关注一下Type Script的语法来理解ArkTS的语法 ArkUI HarmonyOS提供了一套UI开发框架,即方舟开发框架(ArkUI框架)。方舟开发框架…

【日常记录】【CSS】SASS循环的使用

文章目录 1、引言2、安装3、举例4、参考链接 1、引言 目前在任何项目框架中,都会有css 预处理器,目前一般使用 sass、less 这俩其中之一,它可以简化css的书写 Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (v…

【深度学习实战(2)】如何使用matplotlib.pyplot模块记录自己的训练,验证损失

一、matplotlib库 在我们自己训练模型时,常常会使用matplotlib库来绘制oss和accuracy的曲线图,帮助我们分析模型的训练表现。 matplotlib库安装:pip install matplotlib 二、代码 import matplotlib.pyplot as plt import torch import to…

设计模式-组合模式(Composite Pattern)

1. 概念 组合模式是一种结构型设计模式,它允许将对象组合成树状的层次结构,用来表示“整体-部分”的关系。 2. 原理结构图 原理图 抽象角色(Component):这是组合模式的核心,它定义了树叶和树枝构件的公…

【产品经理修炼之道】- 融资租赁相关业务介绍

一、什么是融资租赁? 根据《民法典》第735条的规定,融资租赁合同是出租人根据承租人对出卖人、租赁物的选择,向出卖人购买租赁物,提供给承租人使用,承租人支付租金的合同。 例如,A工厂因业务发展需要欲购置…

c/c++普通for循环学习

学习一下 for 循环的几种不同方式,了解一下原理及差异 完整的测试代码参考 GitHub :for 循环测试代码 1 常用形态 对于 for 循环来说,最常用的形态如下 for (表达式1; 表达式2; 表达式3) {// code }流程图如下: 编写测试代码…

stack和queue模拟实现

前言 上一期我们介绍了stack和queue的使用,本期我们来模拟实现一下他们! 本期内容介绍 容器适配器 deque介绍 为什么stack和queue的底层选择deque为默认容器? stack 模拟现实 queue 模拟实现 什么是容器适配器? 适配器是一种设…

springboot抑郁症科普知识测试系统ssm-java

本系统设计了二种角色:管理员,用户。通过此系统,管理员可以在线视频、案例展示、、测试试卷、测试试题进行测试。以及在线对测试试卷进行批阅和批量删除,用户可以对自己的测试试卷进行测试,对管理员已经批阅过的试卷可…

MySQL——链表

主键:非空 唯一(针对整列数据而言) 为了方便管理一般主键都是设置为自增 外键:一张表中的一列的值是另一张表的主键,使用外键建立两张数据表的数据关系 一、两张表连接 将两张表格拼接成一个表 1、格式:s…

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧

NL2SQL实践系列(1):深入解析Prompt工程在text2sql中的应用技巧 NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2):主流大模型…

STK与matlab交互 Astrogator模块 (11)

一、背景知识 前面由于定轨的大作业,关于Astrogator模块的学习有所滞后,在本节将重新聚焦Astrogator模块,在本节中,首先解决的问题是已知两个卫星的轨道六根数,求解其中某一颗卫星LVLH坐标下另一颗卫星的位置速度。这…

AI实践与学习4_大模型之检索增强生成RAG实践

背景 针对AI解题业务场景,靠着ToT、CoT等提示词规则去引导模型的输出答案,一定程度相比Zero-shot解答质量更高(正确率、格式)等。但是针对某些测试CASE,LLM仍然不能输出期望的正确结果,将AI解题应用生产仍…

AcWing 796. 子矩阵的和——算法基础课题解

AcWing 796. 子矩阵的和 题目描述 输入一个 n 行 m 列的整数矩阵,再输入 q 个询问,每个询问包含四个整数 x1,y1,x2,y2,表示一个子矩阵的左上角坐标和右下角坐标。 对于每个询问输出子矩阵中所有数的和。 输入格式 第一行包含三个整数 n&…

导航指令生成新篇章:将语义地图转化为机器人眼中的“道路”

引言:导航指令生成的挑战与机遇 在人工智能领域,视觉与语言导航(Vision and Language Navigation, VLN)任务是一个充满挑战的研究领域,它要求智能体根据自然语言指令在物理环境中进行导航。然而,VLN任务的…

《QT实用小工具·十九》回车跳转到不同的编辑框

1、概述 源码放在文章末尾 该项目实现通过回车键让光标从一个编辑框跳转到另一个编辑框&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : p…

使用SquareLine Studio创建LVGL项目到IMX6uLL平台

文章目录 前言一、SquareLine Studio是什么&#xff1f;二、下载安装三、工程配置四、交叉编译 前言 遇到的问题&#xff1a;#error LV_COLOR_DEPTH should be 16bit to match SquareLine Studios settings&#xff0c;解决方法见# 四、交叉编译 一、SquareLine Studio是什么…

appium driver install uiautomator2 安装失败

报错 Installing ‘uiautomator2’ using NPM install spec ‘appium-uiautomator2-driver’ Error: Encountered an error when installing package: npm command ‘install --save-dev --no-progress --no-audit --omitpeer --save-exact --global-style --no-package-lock…