ADSP TS201链路口通信的FPGA实现

时间:2022-10-23 04:24:48

ADSP TS201链路口通信的FPGA实现

摘 要:AD公司的TS201 DSP系列可通过其特有的链路口实现高速通信,为使不具备此接口的设备也能与TS201进行链路通讯,采用 FPGA实现数据在链路口与其他并行接口之间的传输,即 128位并行模式和4位通信模式之间的转换。设计选用Xilinx公司的Virtex4系列的FPGA,它具有低功耗差分(LVDS)模式,双倍数据速率(DDR)寄存器以及嵌入式先进先出(FIFO)存储器等功能,更适合于此设计。在ISE 和Modelsim等辅助工具的帮助下,使用VHDL语言编程,分析和优化整个设计,最终完成设计。可实现接收链路时钟频率为500 MHz,发送链路时钟频率为400 MHz。

关键词:链路口;低功耗差分;双倍数据速率;FPGA;VHDL

中图分类号:TN919文献标识码:B

文章编号:1004-373X(2009)03-167-04

Implementation of adsp ts201 Link Port Communication on FPGA

WEI Yunfei,ZHANG Suinan

(Xi′an Micro-electronics Technology Institute,Xi′an,710075,China)

Abstract:Through AD′s TS201 DSP series special high speed link ports communication,to enable the equipments which doesn′t has the interface to link with TS201 communication,the transmission of data between link ports and other parallel interfaces is realized by FPGA,that is,the conversion between 128 b and 4 b Xilinx Virtex4 grade -12 series FPGA is chosen,it contains a Low-power Differential (LVDS) model,Double Data Rate (DDR) register,embedded FIFO memory and other functions.In the ISE and Modelsim′s help,using VHDL language program,the entire design is analysed and optimized.It can get a receiving clock frequency about 500 MHz,a transmitting clock frequency about 400 MHz.

Keywords:link port;LVDS;DDR;FPGA;VHDL

0 引 言

随着电子技术的飞速发展,在实际应用中数据高速传输有着越来越高的要求,链路口为数据传送提供了高速、独立的通信机制,得到广泛应用。AD公司生产的TS201 DSP就具备这种端口。为了使不具备此接口的器件同样也能通过链路口与TS201进行高速通信,引入fpga进行设计。

FPGA器件因其集成度高、功能强大、现场可编程等优点被广泛应用于各种场合。通过在FPGA上参照链路口通信协议编写VHDL程序,完成数据传送方式的转换,实现此接口与其他设备通信,以满足系统的高速通信要求。

本文设计了一种基于Xilinx公司Virtex4系列的FPGA的128位并行数据与ADSP TS201的链路口通信方式。

1 ADSP TS201链路口协议

ADSP TS201有4个链路口均采用LVDS(Low Voltage Differential Signaling )电路, 每个链路口都是由4位双向差分数据线和另外3个控制信号构成。接收控制信号包括:Lxclkinp/n,Lxacko,Lxbcmpi;发送控制信号包括: Lxclkoutp/n,Lxacki和Lxbcmpo。其中,Lxclkoutp/n和Lxclkinp/n用于描述输出或输入信号的时钟,Lxacko和Lxacki则表示接收端发出的信号和发送端接收的信号表明是否可以继续发送,Lxbcmpi和Lxbcmpo说明块传输已经完成。

链路口每个方向(Rx或Tx)均可通过1位或4位数据总线通信,发送端发送数据到外部设备,接收通端从外部设备获取数据。这里主要讨论4位数据总线通信模式的具体实现。

在链路口通讯协议的时序上采用一些通用规则,具体规则如下:

① 第一个数据(1位或4位)必须在链路口时钟(Lxclkoutp)的第一个上升沿发送。

② 后一个数据(1位或4位)必须在链路口时钟(Lxclkoutp)最后一个下降沿发送。

③ 当链路口停止收发后Lxclkoutp被置为低。

④ 每次至少传送4个字(128位)。传送需要用16个链路口周期,如图1所示。

当Lxacki被置为高,即接收缓冲是空的,发送通道被初始化,发送端可以继续发送数据。如图2所示,第一个数据在第一个Lxclkoutp上升沿有效,最后一个数据在最后一个链路口时钟下降沿之前发送。当链路口停止时Lxclkoutp被置为低。

图1 4位模式时序

图2 链路口a只发送4个字的时序

图3 链路口a发送到接收端(Rx满)

图3表示当Lxacki被置为低时,说明接收端没有准备好接收更多数据的情况。此时若仍有数据传送,则会造成数据的丢失。

当发送数据长度可变时发送方用Lxbcmpo信号通告接收数据块传输已完成。Lxbcmpo与接收端的Lxbcmpi输入信号连接,当接收端识别该信息,就通知DMA通道数据块传送完毕。

Lxbcmpo信号通过在块的最后4个字传输的第一个Lxclkout上升沿变低,指示块传输完成。而在同一4个字的最后一个Lxclkout下降沿置位。若LTCTLx寄存器中的TBCMPE位被清除或当链路口传输由处理器核执行,Lxbcmpo无效。

2 模块建立与优化

ADSP TS201的链路口采用的是独立的发送和接收通道,因此对应的FPGA也需要采用不同的接收电路和发送电路。

无论是接收还是发送均由两部分组成:接收/发送缓冲和接收/发送模块。接收模块主要是用于接口和数据的拆包处理,发送模块是用于数据接收和打包处理。接收/发送缓冲则是用来分别配合接收/发送模块进行数据缓冲,并实现数据传输功能。

2.1 接收电路

接收模块:接收到由链路口4位数据总线送出的数据差分信号Lxdata_p/n和控制差分信号Lxclk_p/n以后不能直接拆包处理,需要将原来的差分信号转换成完整信号Lxdata和Lxclk,才可进入双倍数据速率器(DDR)寄存,此寄存器由时钟信号clkin(与Lxclk同频率)控制。由于是4位数据总线同时串行传送数据,其具体的数据排序如图4所示。

可见,每一路传送的数据均不是连续的,且都按模4余数分配。为了方便数据并行送出,需要将数据进行拆包整理。每个clkin周期收到8位数据,将此按位号由大到小的顺序整理,并放入mid(7:0)中。其间增加一级触发器作为缓冲。

上一篇:基于DDS驱动PLL结构的宽带频率合成器设计 下一篇:基于DDS技术的多路同步信号源的设计