Gmii数据发送方法和装置的制造方法
【技术领域】
[0001]本发明涉及以太网数据传输接口技术领域,特别是涉及一种GMII数据发送方法和装置。
【背景技术】
[0002]随着以太网技术的迅速发展和普及,以太网设备的吞吐率不断提升,网络的规模不断扩大,高速网络接口的稳定性面临巨大挑战。GMII (Gigabit Medium IndependentInterface,千兆媒体独立接口 )作为一种MAC (Medium Access Control,介质访问控制)层与PHY(物理层)芯片之间的高速以太网传输接口,对时序可靠性要求极高,其稳定性关系到以太网数据链路层到物理层的信号的正确传输。
[0003]根据IEEE802.3-2000,GMII为8位并行同步接口,兼容MII规定的10/100M传输模式。GMII的数据发送部分至少包括下列信号:
[0004]GTXCLK——1000M传输模式的工作时钟,频率为125MHz。
[0005]TXCLK——10/100M传输模式的工作时钟,在100M传输模式下为25MHZ,在1M传输模式下为2.5MHz。
[0006]TXD [7:0]——数据发送信号,在10/100M传输模式下只有低4位数据有效。
[0007]IEEE802.3-2000同时规定:1000M传输模式的工作时钟GTXCLK由GMII向PHY提供,TXD与GTXCLK同步;10/100M传输模式的工作时钟TXCLK,由PHY向GMII接口提供,TXD与TXCLK同步。
[0008]现有GMII接口的数据发送部分的逻辑实现如图1所示。该结构采用组合逻辑门控时钟结合异步FIF0(First Input First Output,先入先出队列)的设计方式。如图1所示,GMII接口与PHY通过MD10/MDC协商当前的速率模式(speed_mode)。来自MAC层的以太网数据(mac_tX_data)首先写入异步FIFO。在FIFO读数据时钟输入端,通过数据选择器MUX的Speed_mode信号选择125MHz的GTXCLK时钟或TXCLK时钟(2.5/25MHz)作为读时钟。在FIFO读出数据时,1000M传输模式下,每个125MHz时钟周期读出一个8位并行数据,触发器再将整个8位数据锁存发送至PHY。为了获取最大的数据建立保持时间SLACK,需要将125MHz的时钟反向输出。在10/100M传输模式下,每两个TXCLK时钟周期由FIFO读出一个8位并行数据,后级触发器在每个TXCLK时钟周期轮流锁存发送8位并行数据中的高4位或低4位作为输出。
[0009]发明人在研究中发现,现有GMII接口数据发送部分的逻辑实现结构至少存在下列技术问题:
[0010](I)FIFO的读时钟由组合逻辑产生,产生的时钟抖动、偏移以及毛刺将会对时序稳定性产生致命影响。如果采用ASIC(Applicat1n Specific Integrated Circuit,专用集成电路)实现GMII,需要进行复杂的后端设计去约束组合逻辑时钟。而如果采用可编程逻辑来实现GMII,将无法约束组合逻辑产生的时钟的周期和频率,并且多数可编程逻辑是自动布线,在多次重复编译过程中,每次布线结果都不相同,时钟质量无法保证。
[0011](2)现有技术采用FIFO缓存数据同样存在风险。以太网数据帧的有效长度可变,由于以太网传输抖动特性,某时刻FIFO可能缓存多个以太网帧,一旦读写异常,从异常时刻起之后的读数据无法恢复帧同步。同时,FIFO读时钟由组合逻辑产生,会加大FIFO读写异常出现的几率。
[0012]此外,触发器进行位宽选取锁存再输出,在组合逻辑产生时钟的抖动的影响下,也会造成不能正常输出数据。
【发明内容】
[0013]基于此,有必要提供一种GMII数据发送方法和装置,能够提高GMII接口,数据由MAC层向PHY传输的时序稳定性。
[0014]一种GMII数据发送方法,包括:
[0015]基于125MHz统一时钟域,采用乒乓存储架构的两乒乓存储器接收MAC层传输的以太网数据,并根据速率模式信号将轮流读出的所述两乒乓存储器的以太网数据进行输出;
[0016]根据速率模式,确定数据发送的传输模式为1000M传输模式或10/100M传输模式;
[0017]若传输模式为1000M传输模式,将轮流读出的所述两乒乓存储器的以太网数据通过触发器输出给PHY层;
[0018]若传输模式为10/100M传输模式,在125Mhz统一时钟域建立以太网数据与PHY提供的2.5/25Mhz时钟同步的输出数据时间基准,并将以太网数据按照预设的统一时钟域时钟周期间隔输出给所述PHY层。
[0019]在一个实施例中,所述采用乒乓存储架构的两乒乓存储器接收MAC层传输的以太网数据,并根据速率模式将轮流读出的所述两乒乓存储器的以太网数据进行输出,包括:
[0020]在1000M传输模式,每个统一时钟域时钟周期读出所述乒乓存储器中存储的一字节以太网数据,再通过触发器按照每个统一时钟域时钟周期锁存输出整个一字节数据;
[0021]在100M传输模式,每10个统一时钟域时钟周期读出所述兵兵存储器中存储的一字节以太网数据,再通过触发器按照每5个统一时钟域时钟周期轮流锁存输出低或高四位数据;
[0022]在1M传输模式,每100个统一时钟域时钟周期读出所述乒乓存储器中存储的一字节以太网数据,再通过触发器按照每50个统一时钟域时钟周期轮流锁存输出低或高四位数据。
[0023]在一个实施例中,所述若传输模式为10/100M传输模式,在125Mhz统一时钟域建立以太网数据与PHY提供的2.5/25Mhz时钟同步的输出数据时间基准,并将以太网数据按照预设的统一时钟域时钟周期间隔输出给所述PHY层的步骤,包括:
[0024]采用2.5/25MHZ时钟的上升沿或下降作为基准,结合控制数据存储器读写时序的方式,建立所述输出数据时间基准;所述数据存储器为存储轮流读出的所述两乒乓存储器的以太网数据的存储器。
[0025]在一个实施例中,所述采用2.5/25MHZ时钟的上升沿或下降作为基准,结合控制数据存储器读写时序的方式,建立所述输出数据时间基准的步骤,包括:
[0026]所述数据存储器预存储N字节以太网数据之后,进入输出状态;采用2.5/25MHZ时钟的上升沿或下降沿作为基准,延迟20/2个125MHZ统一时钟域时钟周期输出以太网数据,从而使得输出数据的建立时间为30/3个125MHZ统一时钟域时钟周期,保持时间为20/2个125MHZ统一时钟域时钟周期;
[0027]所述数据存储器深度至少为2N,N为整数,不小于2。
[0028]在一个实施例中,所述数据存储器仅在10/100M传输模式下存储所述以太网数据。
[0029]一种GMII数据发送装置,包括:
[0030]乒乓存储模块,用于基于125MHz统一时钟域,采用乒乓存储架构的两乒乓存储器接收MAC层传输的以太网数据,并根据速率模式信号将轮流读出的所述两乒乓存储器的以太网数据进行输出;
[0031]同步传输模块,用于根据速率模式信号,确定数据发送的传输模式为1000M传输模式或10/100M传输模式;若传输模式为1000M传输模式,将轮流读出的所述两兵兵存储器的以太网数据通过触发器输出给PHY层;若传输模式为10/100M传输模式,在125Mhz统一时钟域建立以太网数据与PHY提供的2.5/25Mhz时钟同步的输出数据时间基准,并将以太网数据按照预设的统一时钟域时钟周期间隔输出给所述PHY层。
[0032]在一个实施例中,所述乒乓存储模块,用于:
[0033]采用乒乓存储架构的两乒乓存储器,每个存储器存储一个以太网帧,并轮流读写两个乒乓存储器;
[0034]在1000M传输模式,每个统一时钟域时钟周期读出所述乒乓存储器中存储的一字节以太网数据,再通过触发器按照每个统一时钟域时钟周期锁存输出整个一字节数据;
[0035]在100M传输模式,每10个统一时钟域时钟周期读出所述兵兵存储器中存储的一字节以太网数据,再通过触发器按照每5个统一时钟域时钟周期轮流锁存输出低或高四位数据;
[0036]在1M传输模式,每100个统一时钟域时钟周期读出所述兵兵存储器中存储的一字节以太网数据,再通过触发器按照每50个统一时钟域时钟周期轮流锁存输出低或高四位数据。
[0037]在一个实施例中,所述同步传输模块,用于在传输模式为10/100M传输模式时,米用2.5/25MHZ时钟的上升沿或下降作为基准,结合控制数据存储器读写时序的方式,建立所述输出数据时间基准;所述数据存储器为所述同步传输模块内部的用于存储轮流读出的所述两乒乓存储器的以太网数据的存储器。
[0038]在一个实施例中,所述同步传输模块,用于控制所述数据存储器预存储N字节以太网数据之后,进入输出状态;采用2.5/25MHZ时钟的上升沿或下降沿作为基准,延迟20/2个125MHZ统一时钟域时钟周期输出以太网数据,从而使得建立时间为30/3个125MHZ统一时