基于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.hqwc.cn/news/616564.html

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

相关文章

ARM内核的CPU架构模型

1.引言 程序员在编码的时候,如果想有进一步的提升,我认为还是要深入底层理解程序运行原理才好。最近看了一些ARM架构的讲解,总结了如下。虽然是以ARM为原型画的图形,但是对于C和C的编程,还是有一些参考价值的。 2. AR…

Java 基于微信小程序的智能停车场管理小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Nexus 如何修改启动端口

默认的 Nexus 的启动端口为 8081。 如果我们使用这个启动端口可能会对我们其他的服务有冲突。 我们需要使用 Nexus 的默认启动端口。 修改文件 根据我们的安装配置为: /opt/nexusdata/nexus3/etc 目录下的 nexus.properties 文件。 注释掉 Jetty 的配置中有关端…

【leetcode】 跳跃游戏 IV

跳跃游戏IV 题目思路代码 题目 给你一个整数数组 arr &#xff0c;你一开始在数组的第一个元素处&#xff08;下标为 0&#xff09;。每一步&#xff0c;你可以从下标 i 跳到下标 i 1 、i - 1 或者 j &#xff1a;i 1 需满足&#xff1a;i 1 < arr.length i - 1 需满足&…

UBuntu18.04通过ODBC连接MySQL远程数据库

今天在做一个Qt视频播放器的小项目然后想要在ubuntu18.04运行这个项目&#xff0c;需要在Qt中连接远程的MySQL数据库&#xff0c;所以用到了ODBC。我在连接时遇到了一些问题&#xff0c;加之网上的教程各说纷纭&#xff0c;所以我花了很多时间去解决&#xff0c;所以决定做做笔…

pytorch车牌识别

目录 使用pytorch库中CNN模型进行图像识别收集数据集定义CNN模型卷积层池化层全连接层 CNN模型代码使用模型 使用pytorch库中CNN模型进行图像识别 收集数据集 可以去找开源的数据集或者自己手做一个 最终整合成 类别分类的图片文件 定义CNN模型 卷积层 功能&#xff1a;提…

Matlab之过球面一点的平面方程

这篇文章描述2件事情&#xff1a; 1、已知球面上任意点&#xff0c;求过该点、地心、与北极点的平面方程&#xff08;即过该点的经线平面方程&#xff09;&#xff1b; 2、绕过球心的任意轴旋转平面得到新平面的方程 一、已知球面上任意点&#xff0c;求过该点、地心、与北极点…

NPM 命令备忘单

NPM 简介 Node Package Manager (NPM) 是 Node.js 环境中不可或缺的命令行工具&#xff0c;充当包管理器来安装、更新和管理 Node.js 应用程序的库、包和模块。对于每个 Node.js 开发人员来说&#xff0c;无论他们的经验水平如何&#xff0c;它都是一个关键工具。 NPM 的主要…

MyBatis批量插入的五种方式

MyBatis批量插入的五种方式: 一、准备工作 1、导入pom.xml依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- MySQL驱动依赖 --…

文件操作(C语言)

目录 1.为什么使用文件&#xff1f; 2.什么是文件&#xff1f; 2.1程序文件 2.2数据文件 2.3文件名 3.二进制文件和文本文件 4.文件的打开和关闭 4.1流和标准流 4.1.1流 4.1.2标准流 4.2文件指针 4.3文件的打开和关闭 5.文件的顺序读写 5.1顺序读写函数介绍 5.2…

12 Php学习:魔术常量

PHP魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的&#xff0c;只有在加载了这些扩展库时才会出现&#xff0c;或者动态加载后&#xff0c;或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改…

【Unity】常见性能优化

1 前言 本文将介绍下常用的Unity自带的常用优化工具&#xff0c;并介绍部分常用优化方法。都是比较基础的内容。 2 界面 2.1 Statistics窗口 可以简单查看Unity运行时的统计数据&#xff0c;当前一帧的性能数据。 2.1.1 Audio 音频相关内容。 Level&#xff1a;音量大小&a…