以太网到多路E1适配电路设计及FPGA实现
E1out:输出8路E1数据(8bit);
Framecode:E1帧同步码“10011011”;
N:配置E1路数(1~8);
Rdaddr:Buff读地址;
P2S:2×8字节并串转换存储区,写一组8字节时,读另一组8字节;
WR:P2S读写区域指示(0,1)。
输出的E1帧格式如图2所示,帧同步码和复帧计数都是为接收端提供同步信息。
2.2E1接收数据同步
E1接收侧要完成的功能是从多路E1数据中还原出以太网数据包。简单看就是发送侧反向复用的逆过程,通过高速时钟循环从1→n路E1中各读出一字节合成一路数据。但由于各路E1在传递过程中经过延时不同,同一时刻到达字节不对齐,在合并前必须对多路E1进行同步。考虑到同步过程的复杂性,在设计算法时采用了分步处理,以降低复杂度。
第一步处理是根据帧结构中帧同步码,通过置位同步法完成单路E1帧同步,同步原理图和状态机如图3所示。同步后每路输出数据产生独立的帧定时计数器TM,从0→31标记E1帧对应的32(256bit)字节,其中第0字节即帧同步码Framecode,第一字节即复帧计数器MFcnt。这一步并未涉及多路间的延时消除。
根据状态转移图确定的状态参数,α(搜索保护帧数)=3、β(同步保护帧数)=4。设线中误码率Pe=10-3,L(帧同步码长度)=8,Ts(E1帧周期)=125μs,得出同步机的性能指标:
平均同步时间≈[1/(L×Pe)β-(α-1/2)]×Ts≈8.5小时
同步失帧误码率≈1/2(α-1/2)(L×Pe)β≈5×10-9
可见在较高的误码率下(10-3),同步机还是能够保证比较好的同步质量,平绝每8.5小时出现一次失步,引入的附加误码率也只有10-9量级。
第二步处理根据E1帧同步产生的帧计数和每感数据中的复帧计数消除各之间的延时及时钟相位差。其基本原理见图4。在第0路数据延时最小的情况下,设第一步完成同步后到达RAM(0)的数据为第M复帧第T字节,数据以各自计数为写地址存入RAM,延时检测通过计数不停检测,直到所有路第M复帧T字节到达后,再统一以clk为读时钟,以M&T为起始地址顺序从RAM中读出数据。由于MFcnt最大为255,第二步同步能容纳的线路时延在(-128,+128)帧之间,超过这个范围MFcnt所代表的时延就可能是(n(任意整数)×128+MFcnt)帧,所以该算法能承受的最大线路延时为:
128×Ts(帧周期)=16ms
在线路误码率较低时,E1帧同步丢失较少,帧定时计数TM可以确定,影响第二步处理的只有数据中的复帧计数字节。在没有保护的条件下,假设目前某一路MFcnt由于误码使其读数由正确值A变为B,因为下一轮开始时A、B位置帧会重写,不会对数据整体逻辑产生较大影响,其它位置的误码会在后续的HDLC帧同步处理中检测。如果线睡误码率较高,由于E1会频繁失步使第二步处理根本无法进行。出于述考虑该步算法设计没有采用状态机保护。
2.3HDB3时钟提取
从接收的E1信号HDB3编码中提取时钟的原理如图5所示。首先通过一个高速时钟采样HDB3的码流(CODE)得到数据变化沿(EDGE),再根据EDGE位置由高速时钟分频出对应的2MHz时钟。
3电路设计
整体电路结构如图6所示。在输入数据缓存和消延时两部分处理中,由于需要较大存储空间,采用两块外挂的SSRAM。内部处理以字节为单位,全同步电路设计,对应以太网侧处理速率为12.5MHz,对尖E1侧时钟为256kHz(2.048MHz/8)。两侧速率匹配通过高速时钟采样低速时钟完成。
4时序分析
从逻辑验证到FPGA实现主要区别是增加了实现布线、引脚间的时延。使系统失效的时序问题主要有以下几点:
(1)输入经内部逻辑到输出的建立时间、保持时间和引脚时延大于一个时钟周期。
(2)并行处理的信号彼此之间时延过大,不能同时采样。
(3)在内部对时钟信号进行过多操作,引入时钟毛刺。
(4)对同一时钟,既使用上升沿,又使用下降沿触发,使时钟最高频率损失一半。
(5)在交叉时钟域中,直接采样由另一时钟作为触发的信号,引入不确定态。
对于这些常见问题,设计中采用如下相应对策:
(1)所有输入、输出引脚信号都经过时钟采样,减少引脚的时延。
(2)内部信号操作增加D触发器,两级触发器之间尽量减少组合逻辑,比较复杂的处理经多个时钟周期完成,减小信号保持时间。
(3)并行逻辑经过相同的处理流程,时分复用完成,并行引脚也尽量分配在一起。
《以太网到多路E1适配电路设计及FPGA实现(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/168416.html
Framecode:E1帧同步码“10011011”;
N:配置E1路数(1~8);
Rdaddr:Buff读地址;
P2S:2×8字节并串转换存储区,写一组8字节时,读另一组8字节;
WR:P2S读写区域指示(0,1)。
输出的E1帧格式如图2所示,帧同步码和复帧计数都是为接收端提供同步信息。
2.2E1接收数据同步
E1接收侧要完成的功能是从多路E1数据中还原出以太网数据包。简单看就是发送侧反向复用的逆过程,通过高速时钟循环从1→n路E1中各读出一字节合成一路数据。但由于各路E1在传递过程中经过延时不同,同一时刻到达字节不对齐,在合并前必须对多路E1进行同步。考虑到同步过程的复杂性,在设计算法时采用了分步处理,以降低复杂度。
第一步处理是根据帧结构中帧同步码,通过置位同步法完成单路E1帧同步,同步原理图和状态机如图3所示。同步后每路输出数据产生独立的帧定时计数器TM,从0→31标记E1帧对应的32(256bit)字节,其中第0字节即帧同步码Framecode,第一字节即复帧计数器MFcnt。这一步并未涉及多路间的延时消除。
根据状态转移图确定的状态参数,α(搜索保护帧数)=3、β(同步保护帧数)=4。设线中误码率Pe=10-3,L(帧同步码长度)=8,Ts(E1帧周期)=125μs,得出同步机的性能指标:
平均同步时间≈[1/(L×Pe)β-(α-1/2)]×Ts≈8.5小时
同步失帧误码率≈1/2(α-1/2)(L×Pe)β≈5×10-9
可见在较高的误码率下(10-3),同步机还是能够保证比较好的同步质量,平绝每8.5小时出现一次失步,引入的附加误码率也只有10-9量级。
第二步处理根据E1帧同步产生的帧计数和每感数据中的复帧计数消除各之间的延时及时钟相位差。其基本原理见图4。在第0路数据延时最小的情况下,设第一步完成同步后到达RAM(0)的数据为第M复帧第T字节,数据以各自计数为写地址存入RAM,延时检测通过计数不停检测,直到所有路第M复帧T字节到达后,再统一以clk为读时钟,以M&T为起始地址顺序从RAM中读出数据。由于MFcnt最大为255,第二步同步能容纳的线路时延在(-128,+128)帧之间,超过这个范围MFcnt所代表的时延就可能是(n(任意整数)×128+MFcnt)帧,所以该算法能承受的最大线路延时为:
128×Ts(帧周期)=16ms
在线路误码率较低时,E1帧同步丢失较少,帧定时计数TM可以确定,影响第二步处理的只有数据中的复帧计数字节。在没有保护的条件下,假设目前某一路MFcnt由于误码使其读数由正确值A变为B,因为下一轮开始时A、B位置帧会重写,不会对数据整体逻辑产生较大影响,其它位置的误码会在后续的HDLC帧同步处理中检测。如果线睡误码率较高,由于E1会频繁失步使第二步处理根本无法进行。出于述考虑该步算法设计没有采用状态机保护。
2.3HDB3时钟提取
从接收的E1信号HDB3编码中提取时钟的原理如图5所示。首先通过一个高速时钟采样HDB3的码流(CODE)得到数据变化沿(EDGE),再根据EDGE位置由高速时钟分频出对应的2MHz时钟。
3电路设计
整体电路结构如图6所示。在输入数据缓存和消延时两部分处理中,由于需要较大存储空间,采用两块外挂的SSRAM。内部处理以字节为单位,全同步电路设计,对应以太网侧处理速率为12.5MHz,对尖E1侧时钟为256kHz(2.048MHz/8)。两侧速率匹配通过高速时钟采样低速时钟完成。
4时序分析
从逻辑验证到FPGA实现主要区别是增加了实现布线、引脚间的时延。使系统失效的时序问题主要有以下几点:
(1)输入经内部逻辑到输出的建立时间、保持时间和引脚时延大于一个时钟周期。
(2)并行处理的信号彼此之间时延过大,不能同时采样。
(3)在内部对时钟信号进行过多操作,引入时钟毛刺。
(4)对同一时钟,既使用上升沿,又使用下降沿触发,使时钟最高频率损失一半。
(5)在交叉时钟域中,直接采样由另一时钟作为触发的信号,引入不确定态。
对于这些常见问题,设计中采用如下相应对策:
(1)所有输入、输出引脚信号都经过时钟采样,减少引脚的时延。
(2)内部信号操作增加D触发器,两级触发器之间尽量减少组合逻辑,比较复杂的处理经多个时钟周期完成,减小信号保持时间。
(3)并行逻辑经过相同的处理流程,时分复用完成,并行引脚也尽量分配在一起。
《以太网到多路E1适配电路设计及FPGA实现(第2页)》