从零开始 verilog 以太网交换机(一)架构分析

从零开始 verilog 以太网交换机(一)架构分析


声明:
博主主页:王_嘻嘻的CSDN主页
未经作者允许,禁止转载
本专题部分内容参考于乔庐峰教授的《Verilog HDL数字系统设计与验证——以太网交换机案例分析》,侵权必删

  当下很多IC设计的求职者可能苦于找不到合适的项目,或者是希望有一个区别于培训班的独特项目,所以博主从今天开始会根据一些资料,完成一个以太网交换机的手把手教学,并将所有工程代码开源。

  关注本专题的朋友们可以收获一个经典交换机设计的全流程,包括设计与验证(FPGA);以太网MAC层(Media Access Control,媒体介入控制层)的基础知识。新手朋友们还将获得一个具有竞争力的项目经历



一、ethernet switch作用

  在开始工程前,先讨论以下为什么要有以太网交换机。
  简单来说,当越来越多的设备接入网络后,子网下的点对点的通信需要某一设备来集中处理数据的转发。以太网交换机就是为了完成这一任务,当然随着时代发展,其内部对网络包的处理变得更为多样,但本工程仅仅完成最基本的交换机功能。


有关更多同一子网下数据的传输过程可以关注IB协议专题


二、ethernet switch架构

  首先我们需要明确,ethernet switch作用在ISO模型的传输层,物理层通常由外置的PHY完成,在更高级的交换机中,上层的网络层、链路层也可以进一步融入设计中

  ethernet switch的整体架构如下图,主要由mac_r/mac_t(MAC收发控制器)frame_mux(帧合并单元)frame_process(帧处理单元)MAC Lut(MAC地址查找表)queue manager(队列管理器) 组成,最后实现的交换机可以支持4 Port的数据输入输出。

基本功能如下:

  • mac_r 负责接受PHY上传的MAC帧,并检测是否出现CRC Error、帧长度错误、非字节对齐错误;
  • frame mux将4 Port的数据帧进行合路;
  • frame process需要根据数据帧进行Mac Address查找,地址逆向学习并维护MAC Address和输出Port的映射表;
  • MAC Lut 是基于hash算法的MAC Address和输出Port的映射表;
  • queue manager负责;
  • mac_t 功能和mac_r对称,负责将处理完的数据帧按PHY所要求的格式发送,包括添加帧起始符,CRC校验码等;

从零开始 verilog 以太网交换机(一)架构分析_第1张图片


  具体功能细节将在每个子模块设计中进行详细介绍与分析。
  本专题的后续章节将对MAC控制器、帧合并,处理单元、Mac地址LUT以及队列管理四部分进行设计与实现。




你可能感兴趣的:(从零开始ethernet,switch,fpga开发,verilog,网络)