您的位置 首页 FPGA

根据FPGA器材和Libem开发环境完成SpaeeWire Codec接纳端的时序规划

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

导言

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:

依据FPGA器材和Libem开发环境完成SpaeeWire Codec接纳端的时序规划

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接纳端的时序规划,给出了各个不同模块的时钟域区分,门控时钟和复位信号的有用处理,以及对串行数据的检测和判读,多时钟域信号的同步等完成办法。

本文作者立异点:对多时钟域复位信号选用了对应时钟域的异步复位同步开释办法;对串行总线数据判读选用了串行移位寄存器的办法,便于数据的正确辨认。对嵌入式时钟总线传输的接纳端规划有必定的参阅含义。

责任编辑:gt

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/340286.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部