本发明专利技术提供一种FC链路弹性缓冲区电路,包括:写数据接口(1)、IDLE检测电路(2)、写指针控制电路(3)、格雷码转换电口(4)、IDLE标志存储器电路(5)、数据存储器电路(6)、读写指针比较电路(7)、当前数据是IDLE检测电路(8)、下一个数据是IDLE检测电路(9)、读指针加3电路(10)、读指针控制电路(11)、读数据接口(12)。本发明专利技术通过硬件电路自动检测FC链路接收数据缓冲区空、满状态,管理FC端口接收端数据的连续写入和弹性读出操作,校正接收缓冲区读、写时钟之间的时钟频率累积偏差,完成发送、接收端口数据传输速率精确匹配,防止接收缓冲区上溢和下溢引起的数据损坏,保证接收数据的完整性,实现FC链路数据高速、高可靠传输。
【技术实现步骤摘要】
FC链路弹性缓冲区电路
本专利技术属于计算机
,尤其设计一种FC链路弹性缓冲区电路。
技术介绍
随着FC技术发展和应用的日趋成熟,使得以FC网络作为机载环境中的主干网络成为可能。FC网络搭建过程中大量使用到FC节点机、FC交换机等设备,虽然所有通信设备必须工作在同一频率,但是由于时钟相位的差异,以及晶振生产制造过程中工艺的因素,两个时钟频率被允许有一定的误差。FC网络协议规定的时钟的误差为±100×10-6,即在每一百万和理想的时钟周期的时间范围内允许±100个时钟周期的偏差。最坏情况下,两个不同的晶振可能存在的最大误差为200×10-6,累积10-6/200=5000个时钟周期会产生一个时钟周期的偏移。对于高速传输的连续的数据流,用于缓存接收数据的缓冲区,数据的写时钟来源于从接收数据中恢复出的发送端时钟,读时钟来源于接收端本地晶振产生的时钟,如果不能正确处理写时钟和读时钟之间的累积时钟周期偏移,将会导致数据接收缓冲区的溢出,损坏接收到的数据或者产生数据丢失,严重影响系统通信的功能和性能。
技术实现思路
专利技术目的:本专利技术的目的是提供一种FC链路弹性缓冲区电路,通过对缓冲区的写操作和读操作进行控制,校正数据接收端缓冲区写时钟和读时钟的频率累积差异,解决FC端口设计过程中由于频率累积偏差而导致的数据损坏或者丢失。技术方案:本专利技术提供一种FC链路弹性缓冲区电路,包括写数据接口1、IDLE检测电路2、写指针控制电路3、第一格雷码转换电路4-1、第一格雷码转换电路4-2、第一格雷码转换电路4-3、IDLE标志存储器电路5、数据存储器电路6、读写指针比较电路7、当前数据是IDLE检测电路8、下一个数据是IDLE检测电路9、读指针加3电路10、读指针控制电路11、读数据接口12,其中写数据接口1、IDLE检测电路2、写指针控制电路3、第一格雷码转换电路4-1、IDLE标志存储器电路5、数据存储器电路6,完成写时钟域下,写数据接口1输入数据到IDLE标志存储器电路5和数据存储器电路6的写入操作;第二格雷码转换电路4-2、第三格雷码转换电路4-3、IDLE标志存储器电路5、数据存储器电路6、读写指针比较电路7、当前数据是IDLE检测电路8、下一个数据是IDLE检测电路9、读指针加3电路10、读指针控制电路11以及读数据接口12,完成读时钟域下,有效数据从读数据接口12输出操作,通过仅在读时钟域对读数据指针进行控制,实现接收端口数据缓冲的弹性控制,防止缓冲区的上溢和下溢造成的数据丢失。所述写数据接口1输出写数据信号d_in到IDLE检测电路2;写数据接口1输出写时钟信号w_clk、写时钟域的复位信号w_rst以及写使能信号w_en到写指针控制电路3,控制写指针wprtb的变化;写数据接口1输出写时钟信号w_clk、写时钟域的复位信号w_rst以及写数据信号d_in数据存储器电路6;所述IDLE检测电路2将检测到的IDLE标志位输出到IDLE标志存储器电路5;所述写指针控制电路3输出写指针wprtb到第一格雷码转换电路4-1;所述第一格雷码转换电路4-1输出转换后的格雷码指针wprt到IDLE标志存储器电路5、数据存储器电路6以及读写指针比较电路7;所述IDLE标志存储器电路5在第二格雷码转换电路4-2输出的读指针rprt信号以及第二格雷码转换电路4-3输出的读指针rprt_pre信号控制下,输出数据到当前数是IDLE检测电路8、下一个数是IDLE检测电路9;所述数据存储器电路6输出读数据到读数据接口12;所述读写指针比较电路7输出即将满信号a_full、即将空信号a_empty到读指针控制电路11;所述当前数据是IDLE检测电路8输出DoutIsIdle信号到读指针控制电路11;所述下一个数据是IDLE检测电路9输出DoutNextIsIdle信号到读指针控制电路11;所述读指针加3电路10输出rprtb+3信号到第二格雷码转换电路4-2;所述第三格雷码转换电路4-3输出转换后的读指针到IDLE标志存储器电路5、数据存储器电路6以及读写指针比较电路7;所述读指针控制电路11输出2进制的读指针到读指针加3电路10、第三格雷码转换电路4-3;所述读数据接口12输出读时钟信号r_clk、读时钟域的复位信号r_rst以及读使能信号r_en到读指针控制电路11;输出读时钟信号w_clk到数据存储器电路6。所述写数据接口1包括:弹性缓冲区数据输入:d_in;弹性缓冲区写时钟:w_clk;弹性缓冲区写复位信号:w_rst;弹性缓冲区写使能信号:w_en;所述IDLE检测电路2用于对写数据接口1d_in输入的数据进行检测,判断从d_in输入的两个连续数据组成一个完整的IDLE原语信号,完整的IDLE原语信号的16进制值为0xBC95B5B5,最高八位的字符0xBC为K字符;所述写指针控制电路3用于在写使能信号有效时,控制写指针wptrb每个写时钟周期加1,写指针复位后的初始值应该位于弹性缓冲区的中间位置;所述第一格雷码转换电路4-1、第二格雷码转换电路4-2、第三格雷码转换电路4-3用于在于将写指针控制电路3输出的二进制的写指针wptrb、读指针控制电路11输出的读指针rptrb,以及读指针加3电路输出的读指针rptrb+3的值分别转换为格雷码。以二进制写指针wptrb转换成格雷码wptr为例,转换电路的处理方法为:wptr=(wptrb>>1)^wptrb,二进制的读指针rptrb以及读指针rptrb+3的转换方法与此相同。所述IDLE标志存储器电路5,用于对IDLE检测电路输出的结果进行存储,检测到IDLE原语信号时写入1,否则写入0,写入的地址和数据存储器电路中数据写入的地址相同;IDLE标志存储器电路的深度必须和数据存储器电路的深度相同,数据位宽为1位;所述数据存储器电路6,用于在每个写时钟周期,存储d_in接口输入的数据到写指针wptr对应的存储位置,在每个读时钟周期输出读指针rptr对应存储位置的接收到的数据到d_out接口;数据存储器电路的存储深度可根据写时钟和读时钟的时钟相位和频率偏差决定,数据存储位宽和输入数据d_in、输出数据d_out的宽度相同;所述读写指针比较电路7,将转换为格雷码的读指针和写指针的高两位进行比较,使用到的比较方法如下所示:a_full=(wptr[N]^rptr[N-1])&~(wptr[N-1]^rptr[N]);a_empty=(~wptr[N]^rptr[N-1])&(wptr[N-1]^rptr[N]);a_full为1表示写指针将要追上读指针,弹性缓冲区即将满,a_empty为1表示读指针将要追上写指针,弹性缓冲区即将空。所述当前数据是IDLE检测电路8,和IDLE检测电路2的工作原理相同,检测转换为格雷码的当前读指针rptr,其对应的数据存储电路中存储的数据是否为IDLE原语信号,是则DoutIsIdle信号为1,否则为0;所述下一个数据是IDLE检测电路9,和IDLE检测电路的工作原理相同,检测转换为格雷码的当前读指针的下一个位置rprt_pre,其对应的数据存储电路中存储的数据是否为IDLE原语信号,是则DoutNextIs本文档来自技高网...
【技术保护点】
1.一种FC链路弹性缓冲区电路,其特征在于,包括写数据接口(1)、IDLE检测电路(2)、写指针控制电路(3)、第一格雷码转换电路(4‑1)、第二格雷码转换电路(4‑2)、第三格雷码转换电路(4‑3)、IDLE标志存储器电路(5)、数据存储器电路(6)、读写指针比较电路(7)、当前数据是IDLE检测电路(8)、下一个数据是IDLE检测电路(9)、读指针加3电路(10)、读指针控制电路(11)、读数据接口(12),其中写数据接口(1)、IDLE检测电路(2)、写指针控制电路(3)、第一格雷码转换电路(4‑1)、IDLE标志存储器电路(5)、数据存储器电路(6),完成写时钟域下,写数据接口(1)输入数据到IDLE标志存储器电路(5)和数据存储器电路(6)的写入操作;第二格雷码转换电路(4‑2)、第三格雷码转换电路(4‑3)、IDLE标志存储器电路(5)、数据存储器电路(6)、读写指针比较电路(7)、当前数据是IDLE检测电路(8)、下一个数据是IDLE检测电路(9)、读指针加3电路(10)、读指针控制电路(11)以及读数据接口(12),完成读时钟域下,有效数据从读数据接口(12)输出操作,通过仅在读时钟域对读数据指针进行控制,实现接收端口数据缓冲的弹性控制,防止缓冲区的上溢和下溢造成的数据丢失。...
【技术特征摘要】
1.一种FC链路弹性缓冲区电路,其特征在于,包括写数据接口(1)、IDLE检测电路(2)、写指针控制电路(3)、第一格雷码转换电路(4-1)、第二格雷码转换电路(4-2)、第三格雷码转换电路(4-3)、IDLE标志存储器电路(5)、数据存储器电路(6)、读写指针比较电路(7)、当前数据是IDLE检测电路(8)、下一个数据是IDLE检测电路(9)、读指针加3电路(10)、读指针控制电路(11)、读数据接口(12),其中写数据接口(1)、IDLE检测电路(2)、写指针控制电路(3)、第一格雷码转换电路(4-1)、IDLE标志存储器电路(5)、数据存储器电路(6),完成写时钟域下,写数据接口(1)输入数据到IDLE标志存储器电路(5)和数据存储器电路(6)的写入操作;第二格雷码转换电路(4-2)、第三格雷码转换电路(4-3)、IDLE标志存储器电路(5)、数据存储器电路(6)、读写指针比较电路(7)、当前数据是IDLE检测电路(8)、下一个数据是IDLE检测电路(9)、读指针加3电路(10)、读指针控制电路(11)以及读数据接口(12),完成读时钟域下,有效数据从读数据接口(12)输出操作,通过仅在读时钟域对读数据指针进行控制,实现接收端口数据缓冲的弹性控制,防止缓冲区的上溢和下溢造成的数据丢失。2.如权利要求1所述的FC链路弹性缓冲区电路,其特征在于,所述写数据接口(1)输出写数据信号d_in到IDLE检测电路(2);写数据接口(1)输出写时钟信号w_clk、写时钟域的复位信号w_rst以及写使能信号w_en到写指针控制电路(3),控制写指针wprtb的变化;写数据接口(1)输出写时钟信号w_clk、写时钟域的复...
【专利技术属性】
技术研发人员:李攀,杨海波,王玉欢,霍卫涛,蔡叶芳,
申请(专利权)人:中国航空工业集团公司西安航空计算技术研究所,
类型:发明
国别省市:陕西,61
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。