三、仿真测试
在XC5VLX50T函数模拟传动链路口,输出的8位并行数据data_for_tx通过DDR模块发送缓冲区,通过转换,0bufds,输出所需的差分数据和差分时钟。从功能仿真图,可以看到发送链接完成的功能是正确的。
图3.5发送链路口功能仿真图 Fig 3.5 Send link functional simulation
下图显示的布局,图形仿真接口定时发送,从图中可以看到,布局布线,时钟和数据通信稍移,但不影响功能的实现。
图3.6发送链路口布局布线后时序仿真
Fig 3.6 Simulation timing transmission chain intersection after the wiring layout
3.3.2 FPGA接收设计 一、接收链路口的设计结构
链路接收模块的逻辑电路主要由两部分组成:接收模块和接收缓冲模块。接收模块用于ADSP ts20l和链路传输通道接口,时钟,数据包处理。接收缓冲区模块用于将接收模块的缓冲数据,与其他模块与FPGA的连接和数据传输功能的实现。电路结构如下图所示的[16]:
18
圈3 7接收链路口设计框图
Fig.3.7 Receive chain intersection design diagram
链路接收模块主要用于实现DDR数据接收和可选的纠错控制等。
●
DDR数据。链路口的8位并行数据Data[7:O]传输数据,被送往4 DDR模块的数据输入,在时钟传输0比特3 ~上升沿,沿传输4比特~下降7,即每一个时钟周期内完成一个字节的数据传输。
错误检查。选择错误检查模块的使用,16个连续的时钟周期的8位并行数据接收数据(RXDATA)输出到接收缓冲区,并计算16个周期的数据添加本地校验。计算出的校验和比较收到的8位数据第十七次,如果比较结果相同,那么错误标志低电流128位的接收的数据是正确的;否则err_flag在高层次上,报告处理模块。
接收缓冲区主要完成模拟链路口与FPGA内部的数据宽度和速率匹配。通过调用异步FIFO来实现这一功能,不对称。
接收控制单元主要是用来控制传送缓冲器FIFO的读写,并根据FIFO的现状,给出了lxacko水平的变化。由于TS201链路协议的规定,ACK信号为低电平,接收链路仍能继续接受256位数据。所以应该接收缓冲区的实时检测,如果缓冲区无法继续接受256位的数据,然后lxacko信号变为低电平,表示接收缓冲区的“全”,DSP发送者不能继续发送数据;否则,DSP信号保持高水平,使DSP发送端发送数据。
●
●
●
二、接收链路技术
关键接收模块的设计是基于接口接收协议数据传输,并根据不连续的链路口时钟给
19
接收缓冲区的读写控制标志。要实现这一功能是对两级数据接收缓冲区使用的关键组装和保存。
链路协议发送数据的接口,时钟的上升沿和下降沿4位数据同时传输,链传动是至少在这128位的数据,所以在宽度数据缓冲模块raml6x1d打8深度为16位1bit。然后统一的本地时钟local_clk读出的数据存储。
第二接收缓冲区生成只需要调用IP核Xilinx,产生所需的FIFO。但要注意之间的接收与FPGA内部逻辑链连接的连接问题,例如内部的数据宽度,和内部时钟频率的使用。按照先进先出的旗帜标志位,有效地给lxacko变化。
接收控制单元的设计点,这是有效的数据读写控制。在这个模块,主要是基于不连续的链路口时钟没有设计,以确定在有效的读写操作。 三、接收链路口仿真测试
XC5VLX50T模拟在接收链交叉功能。接收模块通过ibufds输入差分转换数据和时钟为单端数据和时钟。通过两级缓冲机制将接收接口协议数据拼接,造成8位并行数据RXDATA,和RXDATA和链接的价值直接接收数据是相同的。从功能的模拟,我们可以看到接收链路口的功能是正确的。
图3 8功能仿真图
Fig 3.8 Receiving linkport simulation diagram
对于链在接收部分,实际测试需要调试和DSP相匹配,DSP链路来发送数据,FPGA模拟接收部分。在实际的测试中,连接多发4e4e4e4e和e4e4e4e4数据,ChipScope软件是用来捕获的实际结果[18]。
20
图3 9在线分析图
Fig 3.9 Analysis diagram logic received online link
3.4实际硬件调试
3.4.1高速链路端口硬件调试方案
实际的硬件设计方案,利用回路调试,即ts20l第一发送模块发送的时钟和数据,FPGA链接收数据,将发送缓冲区有着内在的联系,然后通过FPGA传输模块传送到外部的DSP,由DSP接收外部ts20l。然后发送数据和接收数据接收模块,FPGA的启动环节,将存储在接收缓冲器的数据;然后开始FPGA路段和交叉口,高速链的FPGA设计。DSP通过DMA接口通信方式,通过发送缓冲区和DSP接收缓冲区的数据,因此实际的硬件测试。实际操作过程如下所示:
图3.10链路口硬件调试说明图
Fig 3.10 Link of hardware debugging illustration
3.4.2实际硬件调试中 注意事项 一、FPGA注意事项
21
在实际的硬件连接,除了相应的引脚的FPGA部分连接的步行板对应于DSP引脚的线,还要特别注意分配链交叉时钟管脚。最好的时钟信号分配到bank4 Bank3和全局时钟引脚,所以做的时钟线将通过全局时钟网络,获得更好的稳定性。
此外,在FPGA仿真接收链路功能,要求的接收时钟和数据的一部分,以确保接收链路时钟能正确的样本数据。
时序约束部分 程序如下:
?NET “lx_clkin_p” TNM_NET = lx_clkin_p;
?TIMESPEC TS_lx_clkin_p = PERIOD “lx-clkin_p” 115.5MHz HIGH 50%; ?NET “lx_clkin_n” TNM_NET = lx_clkin_n;
?TIMESPEC TS_lx_clkin_p = PERIOD “lx-clkin_n”TS_lx_clkin_p PHASE 4.329 ns HIGH 50%;
?OFFSET = IN 2 ns valid 3.5 ns BEFORE “lx_clkin_p”; 二、DSP注意事项
部分DSP链路口是自动初始化后,启动电源复位,没有额外的软件控制。但当DSP与FPGA的连接,并在某些情况下,系统可以完成自动初始化函数,并且需要在DSP软件初始化链接。
在接收部分DSP链,如果你想复位后正常使用,需要一个初始化的握手信号一般。但在通用DSP与DSP直接互连系统,是完成初始化函数西李引脚,的结束初始化这个引脚释放块完成标志后。当DSP与FPGA和DSP接收,销不再完整的初始化任务,因此系统必须通过软件初始化。
软件的初始化是通过改变接收控制寄存器lrctlx相应的功能实现。在这里,它是功能介绍:
● ● ●
如果 REN=1,链路接收部分可以,但强制初始化链接是禁止的。 如果 REN =0, RINIF=0,链路接收部分和连接力初始化是禁止的。
如果REN=0,RINIF=1,而RINIV =0,链路接收部分是被禁止的,和链路初始化被迫0。这个职位相当于使用lxbcmpi初始化时间,lxbcmpi = 0。
如果REN=0,RINIF =l,而RINIV= l,链路接收部分是被禁止的,和链路初始化被迫1。这个职位相当于使用lxbcmpi初始化时间,lxbcmpi = L.
●
所以,实现软件的初始化,处理器应该达到以下操作: l、首先写REN=0,RINIF=1,RINIV=1,初始化链路接收部分 2、再写REN=1,链路口接收使能
以上操作步骤,在Visual DSP++软件中对应 程序为: yr0=0xDO;; LRCTL0=yr0;; yr0=0x11;;
22