本发明属于通信技术领域,更进一步涉及数据传输技术领域中的一种基于共享锁相环PLL(Phase Locked Loop)的奥若拉Aurora接口捆绑方法及装置。本发明提供一种可共享锁相环PLL的Aurora接口装置,并且通过锁相环时钟资源共享技术实现多个Aurora接口共享时钟,通过对Aurora接口的坏死检测以及数据对齐处理,完成Aurora接口的捆绑,实现了板间数据的高速并行可靠传输。
背景技术:
随着通信技术的发展,对接口数据传输速率及可靠性要求越来越高。目前现有的Aurora接口技术一般用于板间点对点单通道传输,由于技术的限制,单通道点对点的Aurora接口数据速率最高为10Gbps。这种方式虽然在背板互连的高速接口实现中得到了广泛的应用,但在某些应用中,要实现更高的传输数据数率时,则无法满足要求。因此,将多个Aurora接口捆绑一起并行传输是非常必要的。
无锡众志和达存储技术股份有限公司在其申请的专利文献“基于Aurora协议的高速总线接口的扩展结构”(申请号201310033124.5,申请公开号CN 103106169 A,公开日为2013.05.15)中提出了一种背板互连的Aurora接口装置,该接口装置对上层用户的数据进行Aurora协议封装之后,传输到链路层和达物理层并完成并串转换,转换成差分信号发送到接收方,接收方对数据的处理与发送方相反。但是,该专利的接口装置结构仍然存在的不足之处是,所提供的Aurora接口装置,是一种单通道的Aurora接口装置,Aurora接口装置内部并没有实现多个高速串行收发器的合并传输,无法满足更高数据速率的要求。该专利同时还提出了一种实现存储器接口的扩展方法,该方法定义了一种私有协议,通过私有协议对Aurora接口的数据封装,并根据私有协议定义的包格式选择将封装后的数据发送到系统内存访问LIS接口或寄存器访问DCR接口,实现存储器接口的扩展。但是,该接口的扩展方法仍然存在的不足之处是,其一,可扩展性差,由于开发板锁相环PLL资源有限,多个接口扩展会出现锁相环PLL时钟资源不足的问题。其二,没有扩展接口检测处理,无法实时获得每个Aurora接口的工作状态,不能保证数据传输的可靠性。其三,没有扩展接口数据对齐处理,不能保证数据传输的正确性。
技术实现要素:
本发明的目的在于克服上述现有技术的不足,解决了原有的Aurora接口装置传输速率较低,多个Aurora接口捆绑时占用锁相环PLL资源较多、接口坏死无法检测、接口数据不对齐、接口扩展性差等问题,提出了一种数据传输速率更快、资源利用率更高、结构更简单、扩展性更好的基于共享锁相环的Aurora接口捆绑方法,以改善其实用性能。
本发明基于共享锁相环的Aurora接口装置,包括发送方和接收方两部分,发送方包括发送方用户接口模块、发送方缓存模块、发送方高速串行收发器GTH模块、发送方共享锁相环PLL模块以及发送方数据对齐模块;接收方包括接收方用户接口模块、接收方缓存模块、接收方高速串行收发器GTH模块、接收方共享锁相环PLL模块以及接收方接口坏死检测模块;所述的发送方用户接口模块、发送方缓存模块、发送方高速串行收发器GTH模块通过数据总线和控制总线依次相连;所述的发送方共享锁相环PLL模块与发送方高速串行收发器GTH模块通过数据总线和控制总线相连;所述的发送方用户接口模块与发送方数据对齐模块通过数据总线和控制总线相连;所述的接收方用户接口模块、接收方缓存模块、接收方高速串行收发器GTH模块通过数据总线和控制总线依次相连;所述的接收共享锁相环PLL模块与接收方高速串行收发器GTH模块通过数据总线和控制总线相连;所述的接收方用户接口模块与接收方接口坏死检测模块通过数据总线和控制总线相连;所述的发送方高速串行收发器GTH模块与接收方高速串行收发器GTH模块之间通过差分并行信号线背板相连;其中:
所述发送方用户接口模块,用于接收上层用户发送的数据,提供发送方数据对齐模块的用户时钟信号;
所述发送方缓存模块,用于暂时缓存输入数据总线上的数据;
所述发送方高速串行收发器GTH模块,用于接收输入数据总线上的数据,提供一个共享的锁相环PLL;
所述发送方共享锁相环PLL模块,用于对输入时钟进行增大扇出处理,并提供发送方高速串行收发器GTP的时钟输入端口所需的时钟输入信号;
所述发送方数据对齐模块,用于对发送方用户接口模块的输出tx_dst_rdy_n_i信号进行对齐处理,并将数据对齐结果上传到上层用户;
所述接收方用户接口模块,用于接收接收方缓存模块发送的数据,并提供接口坏死检测所需的输入信号和时钟信号;
所述接收方缓存模块,用于暂时缓存输入数据总线上的数据;
所述接收方共享锁相环PLL模块,用于对输入时钟进行增大扇出处理,并提供接收方高速串行收发器GTP的时钟输入端口所需的时钟输入信号;
所述接收方接口坏死检测模块,用于检测接收方用户接口模块的输出channel_up信号,并判定每个接口的工作状态;
所述接收方高速串行收发器GTH模块,提供一个共享的锁相环PLL。
本发明基于共享锁相环的Aurora接口的捆绑方法,包括如下步骤:
(1)生成发送方的四个Aurora接口:
(1a)对发送方的四个高速串行收发器GTH的知识产权IP核分别进行例化;
(1b)将例化后的每个高速串行收发器GTH的知识产权IP核依次与发送方数据缓存模块和发送方用户接口模块连接,生成发送方的四个Aurora接口;
(2)生成接收方的四个Aurora接口:
(1a)对接收方的四个高速串行收发器GTH的知识产权IP核分别进行例化;
(1b)将例化后的每个高速串行收发器GTH的知识产权IP核依次与接收方数据缓存模块和接收方用户接口模块连接,生成接收方的四个Aurora接口;
(3)初始化:
(3a)用上层用户发送的用户数据的速率除以用户数据的位宽,得到Aurora接口工作的时钟频率值;
(3b)用时钟频率值分别替换四个接收方高速串行收发器GTH的知识产权IP核的时钟频率参数值;
(3c)用时钟频率值分别替换四个发送方高速串行收发器GTH的知识产权IP核的时钟频率参数值;
(3d)给发送方的四个Aurora接口一个统一复位信号,使得发送方的四个Aurora接口均处于复位状态;
(3e)给接收方的四个Aurora接口一个统一复位信号,使得接收方的四个Aurora接口均处于复位状态;
(4)共享发送方的锁相环PLL:
(4a)从发送方的四个高速串行收发器GTH中任意选择三个高速串行收发器GTH,屏蔽每个高速串行收发器GTH内部的锁相环PLL;
(4b)将一对差分系统时钟输入到未屏蔽的高速串行收发器GTH内部的锁相环PLL内,得到一个单端的时钟输出信号;
(4c)将单端的时钟输出信号通过发送方共享锁相环PLL模块进行增大扇出处理后,得到一个时钟输出信号;
(4d)将时钟输出信号同时发送到四个高速串行收发器GTH的时钟输入端口,实现发送方锁相环PLL资源的共享;
(5)共享接收方锁相环PLL:
(5a)从接收方的四个高速串行收发器GTH中任意选择三个高速串行收发器GTH,屏蔽每个高速串行收发器GTH内部的锁相环PLL;
(5b)将一对差分系统时钟信号输入到未屏蔽的高速串行收发器GTH内部的锁相环PLL内,得到一个单端的时钟输出信号;
(5c)将单端的时钟输出信号通过接收方共享锁相环PLL模块进行增大扇出处理后,得到一个时钟输出信号;
(5d)将时钟输出信号同时发送到四个高速串行收发器GTH的时钟输入端口,实现接收方锁相环PLL资源的共享;
(6)检测接收方Aurora接口:
(6a)当接收方用户接口模块的输出channel_up信号为0时,接收方接口坏死检测模块内部对应的时钟计数器从0开始计时;
(6b)判断时钟计数器的计时值是否等于上层用户发送的一个帧的帧长,若是,则执行步骤(6c),否则,判定该Aurora接口工作正常,执行步骤(7);
(6c)判定Aurora接口坏死,屏蔽接收方用户接口模块对应的Aurora接口;
(7)对齐发送方Aurora接口数据:
(7a)从四个发送方用户接口模块的四个输出时钟信号中,任意选择一个输出时钟信号作为用户时钟信号;
(7b)用户时钟信号发送到发送方数据对齐模块的时钟输入端口;
(7c)在用户时钟信号上升沿的当前周期到达时,数据对齐模块对每个发送方用户接口模块输出的tx_dst_rdy_n_i信号进行对齐处理,得到对齐处理的结果;
(7d)判断对齐处理的结果是否为0,若是,则判定发送方四个Aurora接口数据没有对齐,等待所选的用户时钟信号下一个周期的到来,再执行步骤(7c),否则,执行步骤(7e);
(7e)判定发送方四个Aurora接口数据实现对齐将,将对齐处理的结果上传到上层用户。
本发明与现有技术相比,具有以下优点:
第一,由于本发明Aurora接口装置中发送方高速串行收发器GTH模块与接收方高速串行收发器GTH模块之间,通过差分并行信号线背板相连,有效的克服了现有技术中Aurora接口装置单通道传输时,因接口结构限制了线速的问题,使得本发明Aurora接口装置具有更高的数据传输速率。
第二,由于本发明的扩展方法提出了一种共享发送方锁相环PLL的方法以及共享接收方锁相环PLL的方法,有效的克服了现有技术中Aurora接口扩展时锁相环PLL资源不足的问题,提高了本发明锁相环PLL资源利用率。
第三,由于本发明的扩展方法提出了检测接收方Aurora接口的方法,实时检测每个Aurora接口的工作状态,有效地克服现有技术在多个Aurora接口并行数据传输过程中无法实时获得每个Aurora接口工作状态的问题,提高了本发明数据传输的可靠性。
第四,由于本发明的扩展方法提出了一种对齐发送方Aurora接口数据的方法,使得多个Aurora接口数据可以对齐并行传输,有效地克服了现有技术中多个Aurora接口并行传输过程中每个Aurora接口数据不对齐的问题,使得本发明更具有实用性。
附图说明
图1为本发明Aurora接口装置的结构示意图;
图2为本发明Aurora接口捆绑方法的流程图。
具体实施方式:
下面结合附图对本发明做进一步的描述。
参照附图1对本发明Aurora接口装置整体结构做进一步的描述。
基于共享锁相环的Aurora接口装置,包括发送方和接收方两部分,发送方包括发送方用户接口模块、发送方缓存模块、发送方高速串行收发器GTH模块、发送方共享锁相环PLL模块以及发送方数据对齐模块;接收方包括接收方用户接口模块、接收方缓存模块、接收方高速串行收发器GTH模块、接收方共享锁相环PLL模块以及接收方接口坏死检测模块;所述的发送方用户接口模块、发送方缓存模块、发送方高速串行收发器GTH模块通过数据总线和控制总线依次相连;所述的发送方共享锁相环PLL模块与发送方高速串行收发器GTH模块通过数据总线和控制总线相连;所述的发送方用户接口模块与发送方数据对齐模块通过数据总线和控制总线相连;所述的接收方用户接口模块、接收方缓存模块、接收方高速串行收发器GTH模块通过数据总线和控制总线依次相连;所述的接收共享锁相环PLL模块与接收方高速串行收发器GTH模块通过数据总线和控制总线相连;所述的接收方用户接口模块与接收方接口坏死检测模块通过数据总线和控制总线相连;所述的发送方高速串行收发器GTH模块与接收方高速串行收发器GTH模块之间通过差分并行信号线背板相连。
发送方用户接口模块,用于接收上层用户发送的数据,提供发送方数据对齐模块的用户时钟信号。
发送方缓存模块,用于暂时缓存输入数据总线上的数据,包括三个随机存储器RAM,第一个随机存储器RAM1、第二个随机存储器RAM2和第三个随机存储器RAM3,第一个随机存储器RAM1用来缓存发送方缓存模块输入数据总线上的数据,第二个随机存储器RAM2用来缓存即将输出到发送方缓存模块的输出数据总线上的数据,第三个随机存储器RAM3用来暂时缓存第二个随机存储器RAM2中即将输出到发送方缓存模块的输出数据总线上的数据,四个随机存储器的位宽均为64位,工作时钟为156.25MHz。
发送方高速串行收发器GTH模块,用于接收输入数据总线上的数据,提供一个共享的锁相环PLL。
发送方共享锁相环PLL模块,用于对输入时钟进行增大扇出处理,并提供发送方高速串行收发器GTP的时钟输入端口所需的时钟输入信号。
发送方数据对齐模块,用于对发送方用户接口模块的输出tx_dst_rdy_n_i信号进行对齐处理,并将数据对齐结果上传到上层用户。
接收方用户接口模块,用于接收接收方缓存模块发送的数据,并提供接口坏死检测所需的输入信号和时钟信号。
接收方缓存模块,用于暂时缓存输入数据总线上的数据,包括三个随机存储器RAM,第一个随机存储器RAM4、第二个随机存储器RAM5和第三个随机存储器RAM6,第一个随机存储器RAM4用来缓存发送方缓存模块输入数据总线上的数据,第二个随机存储器RAM5用来缓存即将输出到发送方缓存模块输出数据总线上的数据,第三个随机存储器RAM6用来暂时缓存第二个随机存储器RAM5中即将输出到发送方缓存模块输出数据总线上的数据,四个随机存储器的位宽均为64位,工作时钟为156.25MHz。
接收方共享锁相环PLL模块,用于对输入时钟进行增大扇出处理,并提供接收方高速串行收发器GTP的时钟输入端口所需的时钟输入信号。
接收方接口坏死检测模块,用于通过内部时钟计数器对接收方用户接口模块的输出channel_up信号进行检测,并判定每个接口的工作状态。
接收方高速串行收发器GTH模块,提供一个共享的锁相环PLL。
参照附图2,对本发明Aurora接口捆绑方法做进一步的描述。
步骤1,生成发送方的四个Aurora接口。
对发送方的四个高速串行收发器GTH的知识产权IP核分别进行例化。
将例化后的每个高速串行收发器GTH的知识产权IP核依次与发送方数据缓存模块和发送方用户接口模块连接,生成发送方的四个Aurora接口。
步骤2,生成接收方的四个Aurora接口。
对接收方的四个高速串行收发器GTH的知识产权IP核分别进行例化。
将例化后的每个高速串行收发器GTH的知识产权IP核依次与接收方数据缓存模块和接收方用户接口模块连接,生成发送方的四个Aurora接口。
步骤3,初始化。
用上层用户发送的用户数据的速率除以用户数据的位宽,得到Aurora接口工作的时钟频率值。
用时钟频率值分别替换四个接收方高速串行收发器GTH的知识产权IP核的时钟频率参数值。
用时钟频率值分别替换四个发送方高速串行收发器GTH的知识产权IP核的时钟频率参数值。
给发送方的四个Aurora接口一个统一复位信号,使得发送方的四个Aurora接口均处于复位状态。
给接收方的四个Aurora接口一个统一复位信号,使得接收方的四个Aurora接口均处于复位状态。
步骤4,共享发送方的锁相环PLL。
从发送方的四个高速串行收发器GTH中任意选择三个高速串行收发器GTH,屏蔽每个高速串行收发器GTH内部的锁相环PLL。
将一对差分系统时钟输入到未屏蔽的高速串行收发器GTH内部的锁相环PLL内,得到一个单端的时钟输出信号。
将单端的时钟输出信号通过发送方共享锁相环PLL模块进行增大扇出处理后,得到一个时钟输出信号。
所述的增大扇出处理是指,通过赛灵思Xilinx原语全局缓冲BUFG对时钟信号的功率进行放大。
将时钟输出信号同时发送到四个高速串行收发器GTH的时钟输入端口,实现发送方锁相环PLL资源的共享。
步骤5,共享接收方的锁相环PLL。
从接收方的四个高速串行收发器GTH中任意选择三个高速串行收发器GTH,屏蔽每个高速串行收发器GTH内部的锁相环PLL。
将一对差分系统时钟信号输入到未屏蔽的高速串行收发器GTH内部的锁相环PLL内,得到一个单端的时钟输出信号。
将单端的时钟输出信号通过接收方共享锁相环PLL模块进行增大扇出处理后,得到一个时钟输出信号。
所述的增大扇出处理是指,通过赛灵思Xilinx原语全局缓冲BUFG对时钟信号的功率进行放大。
将时钟输出信号同时发送到四个高速串行收发器GTH的时钟输入端口,实现接收方锁相环PLL资源的共享。
步骤6,检测接收方Aurora接口。
第一步,当接收方用户接口模块的输出channel_up信号为0时,接收方接口坏死检测模块内部对应的时钟计数器从0开始计时。
第二步,判断时钟计数器的计时值是否等于上层用户发送的一个帧的帧长,若是,则执行步骤第三步,否则,判定该Aurora接口工作正常,执行步骤7。
第三步,判定Aurora接口坏死,屏蔽接收方用户接口模块对应的Aurora接口。
步骤7,对齐发送方Aurora接口数据。
第一步,从四个发送方用户接口模块的四个输出时钟信号中,任意选择一个输出时钟信号作为用户时钟信号。
第二步,用户时钟信号发送到发送方数据对齐模块的时钟输入端口。
第三步,在用户时钟信号上升沿的当前周期到达时,数据对齐模块对每个发送方用户接口模块输出的tx_dst_rdy_n_i信号进行对齐处理,得到对齐处理的结果。
数据对齐模块对每个发送方用户接口模块输出的tx_dst_rdy_n_i信号进行对齐处理的步骤如下:
第一步,任意设置四个寄存器信号,分别为tx_ready1信号、tx_ready2信号、tx_ready3信号和tx_ready4信号,并将这四个寄存器信号初始化为0;
第二步,对四个tx_dst_rdy_n_i信号均在用户时钟下打两拍,得到tx_dst_rdy_n_i1信号、tx_dst_rdy_n_i2信号、tx_dst_rdy_n_i3信号和tx_dst_rdy_n_i4信号;
第三步,将tx_dst_rdy_n_i1信号阻塞赋值给tx_ready1信号,tx_dst_rdy_n_i2信号阻塞赋值给tx_ready2信号,tx_dst_rdy_n_i3信号阻塞赋值给tx_ready3信号,tx_dst_rdy_n_i4信号阻塞赋值给tx_ready4信号;
第四步,对tx_ready1信号、tx_ready2信号、tx_ready3信号和tx_ready4信号依次进行位与运算,将位与运算的结果作为对齐处理的结果。
第四步,判断对齐处理的结果是否为0,若是,则判定发送方四个Aurora接口数据没有对齐,等待所选的用户时钟信号下一个周期的到来,再执行第三步,否则,执行第五步。
第五步,判定发送方四个Aurora接口数据实现对齐将,将对齐处理的结果上传到上层用户。