说到MAC,全名叫做Media Access Control, 媒体访问控制

一般认为有线网的MAC具备以下几大功能【摘自《计算机网络,自顶向下方法》】:

(1)提供对物理层和对上层的接口。

(2)Framing, 成帧。

(3)差错检测和纠正。

xge_mac自带一个简单的spec。spec最开始有一个框图介绍了这个设计的结构。

可以看到这个MAC设计是XGMII接口,只设计到了802.3协议的MAC层。对外是要连接XGMII接口的PHY。

简单概括下,可以粗略看成4条通路,后面计划对每个模块进行详细分析

Fault 状态机:

连接TX和RX。用来产生Local Fault或者响应Remote Fault从而建立以太网链路。关于Fault状态机的具体定义可以参考802.3/第六章。

TX:

数据从pkt_tx_data读入,通过TX_EnQ转换成TX Data FIFO能够接收的数据格式,存入TX DataFIFO。 TX DeQ模块从Data FIFO取数据,从Hold FIFO(Control FIFO)中存取数据(进行插入PREM,计算CRC,等一系列操作),组成以太网frame,通过xgmii接口发送给物理层。

RX:

从物理层接收frame,通过RX_EnQ、RX Data FIFO 和RX Hold FIFO解析、暂存。RX Data FIFO中的数据通过RX_DeQ

Control/Status(Wishbone):

负责控制发送,存储MAC的状态/产生中断等等。

这个框图比较粗略,可以结合EDA工具生成的原理图进行分析。比如可以将code导入vivado查看elaborate之后的结构。

xge_mac学习(2) -- 模块结构相关推荐

  1. (一)深度学习项目代码结构

    1.代码结构 参考链接:李宏毅2021年机器学习HW2 Phoneme Classification 2.代码细节 获得运行设备 这两种写法的返回值都是字符串 #check device def ge ...

  2. 对Android和iOS项目中的模块结构和类结构设计的探讨

    1. 现有的代码规范缺少探讨的部分 1.1 关于项目的代码结构 通常来说,一个项目由多个模块组成:一个模块由多个类组成:一个类由多个方法组成:一个方法由多条语句组成: 按照代码粒度从大到小,可以划分为 ...

  3. python分支结构的关键字_学习python分支结构

    学习python分支结构 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  学习python分支结构.txt ] (友情提示:右键点上行txt文档名->目标另 ...

  4. node-webkit学习(2)基本结构和配置

    node-webkit学习(2)基本结构和配置 文/玄魂 目录 node webkit学习(2)基本结构和配置 前言 2.1  基本程序结构 2.2  package.json 2.2.1 必须的配置 ...

  5. AI:一个20年程序猿的学习资料大全—结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件——只有你不想要的,没有你找不到的

    AI:一个20年程序猿的学习资料大全-结构分析软件/办公软件/电气制造控制/高级语言编程/平面三维设计/视频编辑/FQ格式转换软件--只有你不想要的,没有你找不到的 目录 (有偿提供,替朋友转载,扫描 ...

  6. Python学习--Selenium模块

    1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台 转载于:https://www.cnblo ...

  7. 学习之模块架构 DotNetNuke 6

    前面的博客介绍了: 如何在本地安装DNN6 如何创建DNN模块 博客园原文地址 :  学习之模块架构 DotNetNuke 6 这篇博客主要是讲模块的架构和加载,以及模块与DotNetNuke门户网站 ...

  8. 【解析】在设计软件的模块结构时,()不能改进设计质量

    在设计软件的模块结构时,()不能改进设计质量: A.尽量减少高扇出结构  B.尽量减少高扇入结构 C.将具有相似功能的模块合并  D.完善模块的功能 解析: 在结构化设计中,系统由多个逻辑上相对独立的 ...

  9. 嵌入式Linux系统编程学习之一目录结构

    嵌入式Linux系统编程学习之一目录结构 文章目录 嵌入式Linux系统编程学习之一目录结构 前言 一.Linux目录结构 前言 Linux目录结构 一.Linux目录结构 /bin:存放Linux的 ...

最新文章

  1. Springboot之YAML语法
  2. 【ZooKeeper Notes 15】Watcher使用的注意事项
  3. 时间被空间和运动度量
  4. Android 文件布局一些细节备忘
  5. 结队作业,小学生3年级数学题出题器
  6. 飞机大战-控制飞机左右移动二
  7. 常见的Java审计代码函数关键字_转载:Java代码审计汇总系列(一)——SQL注入
  8. HackingTeam重磅炸弹: 估值超1000万美金带有军火交易性质的木马病毒以及远控源码泄露
  9. 每天一道Rust-LeetCode(2019-06-02)
  10. 关于deployment descripter(web.xml)的认识
  11. paip.网站上传服务里需要做的操作流程
  12. 使用PacketSifter从pcap中筛选有价值的信息
  13. FPGA学习网站推荐
  14. 服务器视频文件外链,视频图床 视频外链网站 视频上传外链分享
  15. 阿里云 RDS CPU性能优化
  16. ffmpeg java 合并_[置顶] ffmpg简介以及用它实现音频视频合并(java)
  17. python数字图像处理以及绘图
  18. USB gadget(1)----gadget driver
  19. java保存图片_java 保存图片
  20. 51NOD L4-第三章 树 刷题记录-zgw

热门文章

  1. Ubuntu 更换国内源
  2. [Jexus系列] 二、Jexus配置https
  3. 【汇正财经】大盘震荡收涨
  4. 如何将Mac磁盘映像转换为其他格式?
  5. java定义接口必用关键字_Java中定义接口的关键字是什么
  6. python函数——自定义函数详解
  7. MySQL如何自定义函数
  8. 电脑使用隔离卡,如何实时同步内外网数据?
  9. 软考系统集成项目管理工程师视频教程(计算机系统集成部分)-乔俊峰-专题视频课程...
  10. 山东大学软件学院2019web数据管理