基于FPGA器件和Libem开发环境实现SpaeeWire Codec接收端的时序设计

时间:2025-09-17  作者:Diven  阅读:0

引言

基于FPGA器件和Libem开发环境实现SpaeeWire Codec接收端的时序设计

SpacewiTe是欧空局2003年提出的高速的、点对点、全双工的串行总线网络,面向空间应用。以IEEE 1355—1995和LVDS标准为基础,提供了通用接口标准以简化和规范不同设备之间的互连,对解决目前星上数据处理系统的总线带宽不足有重要作用。而且,随着FPGA容量增大和功耗降低,以及内部软核的应用,使用FPGA开发数字电路,可以缩短设计时间、减少PCB面积、提高系统的可靠性,FPGA已成为解决系统级设计的重要选择方案。本文在Actel的集成开发环境Libem下编写了HDL代码,利用内部集成仿真工具Mod—elSim对设计进行了时序仿真。

1、SpaceWire Codec接收端概述

SpaceWire标准饵CSS—E一50—12A)包括链路,节点和交换机三方面的内容。SpaceWire采用线路交换形式,节点是指传输包的流出设备或者流向设备,链路是指数据包传输的路径。

SpaceWire是总线数据网络结构,包括6层协议:物理层,信号层,字符层,交换层,信息包层和网络层。SpaceWire Codec实现的是信号层,字符层和交换层的相关内容。

SpaceWire物理层电缆采用九针微型D连接器.由四对双绞线组成,传输四对差分信号。

SpaceWire信号层用LVDS差分信号传输,抑制了共模噪声,保证了低电磁干扰。采用DS(data-strobe)编码实现嵌入式时钟总线传输,Ds编码用data信号表示实际传输的数据,strobe信号随D信号变化而编码,原则是在任一时钟周期Ds信号只有一个发生变化,这样DS信号异或就可得到接收端的时钟。如图1:

SpaceWire字符层定义了两种类型的字符:四个控制字符和数据字符,采用奇校验方式。

串行比特流各个字符之间没有分隔符,每个字符以奇偶检验位开始,第二位是ctrl—flag位,即区分数据字符和控制字符的标志,后面是不同的数据字符和控制字符。串行的比特流以包的形式传输,包以控制字符EOP标志结尾。

SpaceWire交换层定义了链路的初始化和状态机的运转,实现链路的拥塞控制,检测链路的断开等。

SpaceWire Codec由发送端,接收端和控制器组成,控制器根据接收端收到的不同数据字符控制状态机的运行,协调发送端和接收端的工作。

其中接收端实现时钟恢复,检测DS信号,判断并处理Data数据,进行奇偶校验,把数据字符送到fifo中,实现链路的拥塞控制,检测链路的断开状况等。这些功能的实现使用到不同的时钟,设计时需要解决多时钟域信号传输的同步问题。

在本设计中。SpaceWire Codec接收端按照功能不同划分为以下几个模块:

图2接收端模块划分

上图中的asyrst_n由epu复位信号和控制器的复位信号做组合逻辑得到。设计时用cpu配置链路状态,控制FPGA运行。数据字符经过6fo送到epu存储区中。

2、时钟域划分

上图中,虚线表示了不同的时钟域。

用恢复的时钟clk0进行Ds信号的检测和处理.在clk0时钟域内实现的是同步检测和设计。由于DS信号不能通过自身恢复得到的时钟去检测DS链路的断开.因此需要采用FPGA的pU模块倍频得到的高频时钟gclk 来检测链路的断开状_re况。在本设计中,拥塞控制要和发送端配合工作,发送端使用的是本地时钟gclk,因此链路拥塞控制模块也要用本地时钟gclk来控制。用cpu时钟clk_c读走fifo中数据,送到cpu存储区中。

3、复位信号处理

接收端模块的复位信号由cpu给出,链路状态机运行到复位状态也要对接收端进行复位。由于复位信号扇出很大,且要在不同的时钟域起作用.因此对复位信号的处理相当重要。

在接收端中,DS信号到来之前,DS信号检测和Data数据一处理模块的寄存器必须有确定的状态,这两个模块复位时clk0还没有出现,因此采用了不需要时钟控制的异步复位。

对复位信号而言,复位信号的释放和时钟沿之间也存在时间约束关系,如同触发器的D输入端必须满足建立和保持时间一样,复位信号相对时钟也必须满足recovery time/removaltime。如图3所示,recovery time指复位信号无效电平相对时钟沿到来前的稳定时间,removal time指复位信号无效电平相对时钟沿到来后的稳定时间。

图3复位信号的recovery/removal time

4、 DS信号的检测

如图4示,恢复的clkO时钟是D信号频率的1/2,用clk0检测DS信号,必须用elk0的上沿和下沿实现,如下图所示:

图4 DS信号的检测

clk0是DS组合逻辑得到的门控时钟,且clk0的扇出很大,上沿和下沿都要用到,布局布线时将放在全局时钟bu雎r上,保证了clkO有最小的抖动和偏移。

5 、data数据处理

SpaceWire总线定义的串行数据的最大特点是各个不同的数据之间没有分割字符。处理数据时不仅要对本次数据格式进行正确判断和校验,并且要根据判读和检验结果指出下一个data起始位,否则下一个数据的判断将会出现错误。

设计中采取了串行移位寄存器的方法,设置了5个两位的寄存器。在同—个cIkO周期内能看到串行数据线上的10位串行数据,根据不同数据位进行判读和奇偶校验。正确判读后,根据不同的data数据长度.分别用不同的ready信号指示下—个data的起始位,进而进行下一个数据格式的处理。

这些信号都是clkO时钟域的同步信号,且移位寄存器间没有长路径延时,这样可以保证数据处理模块的稳定运行。

6 、多时钟设计

接收端不同的时钟域产生的信号是异步信号,信号传输时需要同步到不同的时钟域。数据信号通过fifo传输,控制信号在标志位同步模块中实现同步到gclk时钟域。

在链路被动启动时,接收端收到NULL信号后,给出异got—NULL标志,使link_enabh信号有效,链路由ready状态进入started状态,因此gotNULL信号电平有效。gotNULL信号由clkO时钟域的DS数据处理模块给出,需要同步到FPGA的本地时钟域。电平同步通常用两个D触发器构成同步器,第一级触发器在采样输入信号时可能进入亚稳态,后面的触发器获得前一个触发器输出时,前一个触发器已退出了亚稳态,并且输出已稳定.极大地减小了亚稳态的发生。

其标志位信号,如gotDATA、gotFCT、gotEOP、gotEEP等都是脉冲有效,这些信号的同步是在电平同步的基础上做组合逻辑实现的,如图5所示:

图5电平信号gotDATA的同步

在信号同步中,第二级寄存器的输出是稳定可用的,把第二级的输出再延迟一拍,对gotDATA_2和gotDATA_3寄存器的输出做组合逻辑,实现了一个gclk周期的有效电平。在时序允许的情况下,打一拍输出,实现了脉冲有效信号的同步。

链路检测模块在gclk_re时钟域实现,根据协议要求,当离上一次DS信号出现850m后没有Ds数据出现,则认为链路断开。该模块给出的链路断开标志link_dis相对gclk时钟,是快时钟域信号,为了便于信号同步,link_dis标志输出电平而非脉冲。

7、结束语

本文介绍了SpaeeWire Codec接收端的时序设计,给出了各个不同模块的时钟域划分,门控时钟和复位信号的有效处理,以及对串行数据的检测和判读,多时钟域信号的同步等实现方法。

本文作者创新点:对多时钟域复位信号采用了对应时钟域的异步复位同步释放方法;对串行总线数据判读采用了串行移位寄存器的方法,便于数据的正确识别。对嵌入式时钟总线传输的接收端设计有一定的参考意义。

猜您喜欢

在现代生活中,数据线是非常重要的配件。不仅用于充电,还负责数据传输,连接各种设备。数据线主要优势体现在以下几个方面。数据线提供了快速充电的能力。许多高品质的数据...
2013-11-22 00:00:00

焊台是电子维修与组装中不可少的精密工具,集加热、控温与烙铁于一体,专为高效、精准焊接而设计。采用先进的恒温技术,确保焊接过程温度稳定,无论是高导热材料还是敏感元...
2018-12-26 00:00:00

0402贴片电阻是一种体积非常小的电子元件,尺寸仅为0.4mm x 0.2mm。由于其微小的尺寸,识别其阻值需要借助特定的标识方法。通常,0402贴片电阻使用三...
2024-11-26 11:29:23

一、准备 本篇文章主要介绍使用RT-Thread Studio 和瑞萨 CPK-RA2L1评估板,使用大佬的轮子采集温湿度二、硬件准备 CPK-RA2L1评估板...
2023-10-11 11:34:00

贴片电阻0Ω,也称作零欧姆电阻,乍一看数值让人疑惑,实际上并非真正意义上的零电阻。更像一根导线,电阻值非常小,通常在几毫欧到几十毫欧之间。那么,为什么不直接用导...
2024-11-29 10:26:15

金属化薄膜电容器是现代电子设备中重要的元件。这种电容器良好的性能和稳定性而受到应用。卷绕工艺是其制造中的关键步骤。下面我们将详细介绍金属化薄膜电容器的卷绕工艺。...
2025-03-25 13:30:02

变容二极管是特殊类型的二极管,其主要功能是通过改变施加在其上的电压来调节其电容值。BB910是一款应用于无线电频率(RF)电路中的变容二极管,因其优良的性能和稳...
2025-03-30 09:30:34

现代电力电子技术中,电流采样是确保系统稳定性和安全性的重要环节。三电阻采样相电流采样技术是一种常用的电流测量方法,应用于电机驱动、逆变器和其电力电子设备中。本文...
2025-03-18 02:31:38

扁锉是常用的手工工具,应用于金属加工、木工和工艺制作中。了解扁锉的参数对于选择合适的工具非常重要。扁锉的长度通常在200毫米到400毫米之间,长度不同适用于不同...
2009-11-08 00:00:00

二极管是电子电路中重要的元件,应用于整流、信号调制、波形产生等领域。了解不同类型二极管的符号,对于电子工程师和爱好者来说非常重要。本文将为您详细介绍各种二极管的...
2025-03-29 11:30:34