标签:寄存器 应该 通信 有感 多个 功能 protocol 同步数据 连接
前几天看到群里的一个前辈说FPGA的入门就是搭建一个完整的以太网通信平台,颇有感触,就在博客平台上搭建一个以太网平台,包含多个模块,先整体驯熟一下实现的功能,再分别叙述各个模块的功能与实现。
整体功能:
工程的最终实现是PC将数据通过SFP接收接口发送到PHY层,为什么是PHY物理层呢?因为为了实现与外部的光通信,仅仅有MAC层是不够的,还必须有物理层,可参考OSI模型,然后PCS_PMA(物理编码子层和物理介质子层)将接收到的数据通过AXI-SREAM接口将接收到的数据发送给三态网IP,由于三态网输出的数据为8bit,所以在第一级FIFO中对输入数据进行寄存,将8位的数据转换为64bit,将64bit的数据进行二级寄存,(why?)因为一级级寄存器中的数据是不同步的,所以还需要将二级寄存器中的数据进行再一次寄存,保证数据完全同步,毕竟是千兆以太网通信,对于数据的同步性要求较高。然后,类似于帧缓存,将同步数据在FIFO中经过寄存之后将数据发送到UDP协议栈中。协议栈将数据发送出去之后为了保证数据随时存在,将发送出去的数据经过FIFO缓存,之后再进入三态网IP,三态网IP将数据发送到PHY层,最终实现一个闭环的UDP千兆以太网测试。
首先需要了解什么是SFP,即SFP光模块,主要成分是激光器(包括发射器和接收器)以及其他集成电路模块,平台式实现的是千兆UDP通信,就是1Gbps,此外还应该了解一下GBIC(Gigabit Interface Converter),吉比特接口转换,将千兆位的电信换转换为光信号,而SFP是GBIC的升级版,封装分销,毕竟是Small Form Plugganle的缩写。
期间搜索了一下UDP和TCP的区别,其实从英文名上更容易区别,TCP是Transmission Control Protocol,UDP是User Data Protocol。可以看出TCP侧重的是传输控制,所以TCP是面向连接的,提供可靠的服务,传输的数据不会丢失,没有重复,而UDP没有可靠性,TCP在用户和服务器交换数据之前,必须在双方之间建立一个TCP连接,之后才能传输数据,是全双工通信。UDP是面向报文的不可靠传输。
关于SFP的电气接口,关键是四个两组: RD+ RD- TD+ TD-,可以看出数据的传输是差分传输的,因为ROCKET I/O具有更高的传输速度,此外还需要注意一组信号就是Tx_Disabl,即发送禁用控制信号,高电平禁用,所以在编程时需要将其拉低。
标签:寄存器 应该 通信 有感 多个 功能 protocol 同步数据 连接
原文地址:https://www.cnblogs.com/luxinshuo/p/11919781.html