The Implementation of Xilinx FPGAs’ Interconnection Module

Page 1

Transactions on Computer Science and Technology September 2015, Volume 4, Issue 3, PP.44-49

The Implementation of Xilinx FPGAs’ Interconnection Module Chao Xu#, Libo Huang, Yujiao Wang, Minxuan Zhang

College of Computer, National University of Defense Technology, Changsha Hu’nan 410000, P.R.China #

Email: xuchaolz@163.com

Abstract With the progress of technology, single chip integration of the number of transistors has exceeded billion. To chip design, verification, more FPGA verification platform has become an inevitable trend. However, under the condition of the logical resource increase rapidly, the FPGA has no corresponding rise in number of I/O port, the I/O port number become the bottleneck of the FPGA prototype verification system. In order to solve this problem, TDM (Time Division multiplexing) technology has been widely adopted. Based on Xilinx Virtex-7 XC7V2000TFLG1925 FPGA, this article on 2 and 4 measuring FPGA interconnect platform achieved more FPGA time-division multiplexing interconnection module, meet the communication needs as many as 2000 more signal. Through vivado software integrated after the functional test, after the implementation of functions and time sequence test and real test on interconnection platform. Keywords: Xilinx FPGA; TDM; LVDS; Verilog HDL; VIVADO

多 Xilinx FPGA 互连模块的实现 * 徐潮,黄立波,王玉姣,张民选 国防科大计算机学院,湖南 长沙 410000 摘 要:随着工艺技术的进步,单颗芯片上集成的晶体管的数量已经超过十亿。为了对大规模芯片设计进行验证,搭载多 颗千万门级 FPGA 的验证平台已经成为一种必然趋势。然而,在逻辑资源急速增加的情况下,FPGA 的 I/O 端口数量却没 有相应增加,使得 I/O 端口数量成为多 FPGA 原型验证系统的瓶颈。为了解决这个问题,时分复用技术 (TDM: TimeDivision-multiplexing)被广泛采纳。基于 Xilinx Virtex-7 XC7V2000TFLG1925 FPGA,本文在 2 颗以及 4 颗 FPGA 互连平 台上实现了多 FPGA 时分复用互连模块,利用约 100 个数据传输通道满足了多达数十倍信号数量的通信需求。通过 Xilinx 的集成设计环境 VIVADO 软件综合后的功能测试、实现后的功能和时序测试以及在互连平台上的真实测试证明, 本文所实现的多 Xilinx FPGA 互连模块能够正确高效工作。本文工作为后续更多颗的 FPGA 之间的互连以及在上面实现 各种高速互连协议奠定了基础。 关键词:赛灵思 现场可编程门阵列;时分复用技术;低压差分信号传输;硬件描述语言;集成设计环境

引言 目前在 ASIC 芯片设计领域,随着设计中所包含的逻辑资源越来越多,单颗 FPGA 的原型系统验证平台 已经远远不能满足设计需求。因此,利用多颗 FPGA 芯片搭建原型系统验证平台已经成为必然趋势。在大 规模、高性能芯片的设计中每个模块与其它的模块之间的通信交互是非常频繁的,这使得 FPGA 之间互连 信号的数量迅速增加,信号频率也在不断增长[1]。如何满足多 FPGA 之间大数量、高频率数据通信需求成为 亟待解决的问题。针对此问题,文献[6]提出了虚拟连接(Virtual wires)的概念:虚拟连接采用总线复用(时分 *

基金资助:受国家核高基课题(项目号 2015ZX01028-101) 、国家自然科学基金(项目号 61472435)支持资助。 - 44 http://www.ivypub.org/cst


复用)的方法,将并行的信号改为串行传输,将两组信号复用到一条物理连线上,共占用一对管脚资源。 虚拟连接技术能够很好解决管脚资源不足的问题,扩展片间传输带宽。目前,多 FPGA 系统多采用用户硬 连线来实现 FPGA 之间的互连[4],然后调用 FPGA 中的 LVDS(低压差分信号)接口发送接收模块。发送模 块将以并行方式的数据传输信号转换成串行的 LVDS 信号,接收模块再将串行的 LVDS 信号转换成并行传输 信号[5]。 在以上工作的基础上,本文实现了一种高效的 FPGA 互连模块。本模块采用 LVDS 传输,LVDS 传输具 有较高的噪声抑制功能,较小的功率以及更低的电磁辐射,降低了 FPGA 之间的直接和间接互连开销[6]。模 块中各个 FPGA 的主时钟采用同一个时钟。模块采用内部低速和传输高速共两套时钟,发送单元 FPGA 的 数据转换时钟会直接复制到发送和接收单元传输模块,使数据传输与发送单元时钟实现了同步[8,9]。本设计 采用 Verilog HDL 实现,集成在 X 处理器的多 FPGA 原型系统验证平台中。通过在 ASIC 设计验证平台中的 测试,证实了该设计方法能够有效满足多 FPGA 之间的互连需求,工程移植性强,对后续进一步实现更多 FPGA 之间的互连具有一定的指导意义。

1

总体方案设计 本设计中的 FPGA 芯片采用的是 Virtex-7 系列的 XC7V2000T 芯片,采用 FLG1925 封装,该款 FPGA 的

1925 个端口总共分布在 17 个 I/O 块中。其中用户可用的 I/O 端口数为 1200[2,7]。在本系统中,有 360 个端口 要用来连接系统的外设,板子上其他的硬件资源也需要和 FPGA 连接,最后只有 480 个端口可以进行 FPGA 之间的互连,本文的 4 颗 FPGA 原型验证系统中,每个 FPGA 分别需要与其它三个 FPGA 互连,每两个 FPGA 之间的信号通道一共有 80 个;两颗 FPGA 原型验证系统中,由于只需要和一块 FPGA 互连,作为差 分信号传输的信号通道有 160 个。 Xilinx 的 Virtex-7 系列的新型混合模式时钟管理器(MMCM),实现了最低的抖动和抖动滤波,为高性能 的 FPGA 设计提供了更高性能的时钟管理功能[2]。 另外,Virtex-7 系列的 FPGA 内部集成了一些 SelectIO 资源。这些 SelectIO 资源包含了 V7 系列 FPGA 的所有基本逻辑资源。包括延时控制模块(IDELAYCTRL)、可编程延迟模块(IDELAY)、输入串并转换器 (ISERDESE2)、输出并串转换器(OSERDESE2)等 [7]。而且,所有的 SelectIO 都有高性能的可配置 SelectIO 驱 动器与接收器,支持非常广泛的接口标准。 FPGA2

FPGA1 延时控制信号 复位信号

时钟信号 复位信号

信号发 送单元

数据传输时钟

信号接 收单元

数据信号

时钟信号

时钟复位 延时控制 单元

时钟复位 延时控制 单元 时钟信号

信号接 收单元

信号发 送单元

数据传输时钟 数据信号

时钟信号 复位信号

复位信号 延时控制信号

图 1 设计框图

本设计的目标是在保证系统稳定、可靠运行的前提下提高互连信号的复用比,减少传输的延迟,因此 整个系统在设计的过程中缩减了状态机的状态,减少了关键路径的延迟。设计由时钟复位延时控制单元、 信号发送单元、信号接收单元组成。本文以两颗 FPGA 之间互连设计为例来介绍。图 1 为 FPGA1 与 FPGA2 - 45 http://www.ivypub.org/cst


互连模块的设计框图。FPGA1 上的时钟复位延时控制单元主要负责产生 FPGA1 上信号发送单元的时钟、 FPGA1 与 FPGA2 之间的数据传输时钟、FPGA1 上信号接收单元的时钟信号、FPGA1 中的复位信号、 FPGA2 上信号接收单元的复位以及延时控制信号。

信号发送单元设计

2

信号发送单元负责将 n 位并行数据转换为 LVDS 串行数据。该单元由 3 个模块组成分别为并串转换模块 (OSERDESE2)、传输时钟产生模块(ODDR)和数据发送模块(data_transmittal)。图 2 为信号发送单元的设计框 图。 并串转换模块 OSERDESE2 采用的是 4:1 的并串转换,该模块的并行传输与串行传输时钟均由时钟复 位延时控制单元提供。发送单元中共使用了 4 个 OSERDESE2,即 4 个数据转换通道,前三个通道平均分配 数据转换位数,最后一个通道用来转换剩余位数。传输时钟产生模块 ODDR 为 Virtex-7 器件的输出逻辑的 专用寄存器,用来实现 DDR(双倍数据传输:时钟的上升沿和下降沿都可以进行数据传输)功能。ODDR 的输入时钟 clk_Tran 为并行传输时钟,ODDR 可以将串行传输时钟的一个副本传送到输出,为数据传输提 供时钟,确保数据传输时钟的一致性。data transmittal 为发送单元的数据选择器。因为 LVDS 接口需要在接 收端自动对齐,check_done 信号作为接收端向发送端返回的对齐状态标志。传输信号都对齐后,check_done 信号有效,通过数据选择器选通相关传输数据进行发送,当任意有一对 LVDS 没有对齐时,check_done 信 号无效,数据选择器关闭,不能发送传输数据,此时发送的数据为一个固定值。 在发送单元中,数据选择器应用了 TDM 的思想。在设计中,定义了一个 TDM 的控制信号,将要传输 的数据分成了 20 组,每一组数据的位数为 64,则当 TDM 控制信号为不同的值的时候,分别转换 20 组数据 的 0-3 位、4-7 位、8-11 位、12-15 位、16-19 位;最后转换 20 组数据的 60-63 位;因为高 40 位皆为复制, 60-63 位等于转换的 20-23 位有效值部分[3,4,5]。 check_done

controller

data_check data_from_user

data_tran_p

data transmittal

OSERDESE2

OBUFDS data_tran_n clk_Tran_copy_p

clk_Tran

ODDR

clk_Tran_copy

OBUFGDS

clk_Tran_copy_n

图 2 信号发送单元设计框图

3

信号接收单元设计 信号接收单元负责将 LVDS 串行数据转换为并行数据。该单元由 4 个模块组成分别为数据校验模块、

数据分配模块(data_distribute)、串并转换模块(ISERDESE2)和对齐控制模块(BIT_ALIGN_MACHINE)。图 3 为信号接收单元的设计框图。 数据校验模块主要将接收单元最终接收到的数据的位异或值与发送单元发送数据的位异或值进行比较, 如果不同,表明数据传输过程中发生了错误,模块报错。而且数据校验模块会将第一串要发送的数据 (data_check)在发送前就存储在信号接收单元。当第一串数据传输过来后,该数据会和存储的数据比较,如 果不同,同样表明传输过程中发生了错误,模块报错。 接收单元负责将 4 对 LVDS 串行数据转换为并行数据,接收中采用 1:4 的串并转换器(与发送单元匹 配),接收单元串并转换器 ISERDESE2 需要的串行传输和并行传输时钟由延时复位控制单元提供。与发送 单元相比较,接收单元的设计较为复杂,因为在 FPGA 内部需要实现一个动态对齐算法。为了与发送单元 的 4 个数据转换通道对应,接收单元一共建立了 4 个数据转换通道。由于 LVDS 接口为源同步接口,接收单 元的时钟来源于发送单元。每路串并转换器 ISERDESE2 产生的 4 位并行数据必须通过对齐控制模块 - 46 http://www.ivypub.org/cst


BIT_ALIGN_MACHINE 实现对齐。4 路 4 位并行数据通过数据选择器送到对齐控制模块。数据选择器数据 在下一次数据发出之前,当前并行数据要完成对齐。DATA_ALIGNED 信号用于通知数据分配模块当前数据 的对齐已经完成。位对齐模块产生 3 个信号来控制 ISERDES2 中的时序调整。INC 和 ICB 信号使 IDELAY 调整数据通道的延迟,当参考时钟为 200MHz 时,每次固定减少 75ps。Bitslip 主要用来对 ISERDESE2 输出 的并行数据进行调整,满足字对齐。对齐完毕后,信号接收单元开始接收数据。 rst check_done data_tran_p

counter

IBUFDS

Start_train data_distribut e

data_tran

data_tran_n data_check

data_train

IDELAY

data_delay

ISERDE SE2

ICB、INC DATA_ALIGNED

BIT_ALIGN _MACHINE

DATA_IN_TO_DEVICE

bitslip

图 3 信号接收单元整体框图

4

设计仿真、测试结果与分析 本设计在 xilinx 的集成设计环境 VIVADO 上面实现了软件仿真并且在两颗以及四颗的 FPGA 原型验证

平台上实现了测试,测试流程为:首先设计在 VIVADO 中编程并完成仿真,紧接着采用 Synopsys 的 Synplify_premier 进行综合,然后用 S2C 的 TAI_player 进行工程的分割,最后设计在 VIVADO 上实现并生成 bit 流,生成 bit 流之后,在 FPGA 原型验证平台上进行硬件测试。图 4(a)、(b)分别为双颗和 4 颗的 FPGA 原 型验证平台的实物图,目前,这两个平台已在工程实践中运行,进行了多款处理器的原型验证。

(a) 双颗 FPGA 原型验证平台实物图

(b) 四颗 FPGA 原型验证平台实物图

图 4 FPGA 原型验证平台实物图

4.1 设计时序仿真分析 图 5 为设计时序仿真图。首先,配置好系统的延时基准时钟 clk_refp/clk_refn、传输时钟 clk_p/clk_n 以 及系统的全局时钟 clk_core_p/clk_core_n,设计的校验模块会检验传输的数据是否正确,如果正确,信号 error0 为 0,如图 5(a)所示。系统初始化完毕后,发送单元开始启动,传输数据经过转换形成差分数据信号 DATA_OUT_TO_DEVICE_P/DATA_OUT_TO_DEVICE_N 送往 LVDS 传输模块,接收单元首先激活对齐控 制电路,与发送单元一起调整数据传输时钟 clk_p_o/clk_n_o 与发送单元的并行传输时钟 clk_Tran 的同步关 系。check_done 信号由低跳变到高时,表示接收单元对齐控制过程的完成,接收单元开始接收传输数据, 当信号 train_done 为 1,表明数据接收完毕,时序如图 5(b)所示。从图 5(a)中可以看出,发送单元要发送的 数据 data_from_user 与接收单元接收到的数据 data_to_user 一致,设计模块时序、功能正确。 - 47 http://www.ivypub.org/cst


(a) 顶层设计仿真波形

(b) 信号发送接收单元仿真波形

图 5 设计时序仿真图

4.2 设计性能仿真分析 4.2.1

软件性能仿真结果分析

在 VIVADO 平台上,通过设定时序约束,可以模拟实际测试时的情况,从而验证设计的性能;表 1 为 在软件仿真之后的性能结果: 表 1 软件性能仿真结果 实验次数 /时钟 clk_ref clk clk_core

第一次 200M 32M 4M

第二次 200M 250M 16M

第三次 200M 200M 32M

第四次 200M 1000M 64M

从表 1 中可以看出,在延迟单元控制时钟 clk_ref 不变的情况下,随着设计时钟 clk_core 频率增加,需 要不断调整转换时钟 clk,设计的性能是主时钟、延时基准时钟以及传输时钟互相制约平衡的结果。 4.2.2

X 处理器性能仿真结果分析

本文的 X 处理器采用 Xilinx Virtex-7 FPGA 芯片进行设计,将生成的 bit 文件下载到相应的 FPGA 中,随 同整个互连模块进行测试、验证。测试时将不同的 X 处理器的工程设计进行分割后得到了一些性能参数。实 际测试结果如表 2 所示。所有的实验延时模块的控制时钟都是 200M,高速转换时钟都是 250M。从表 2 中可 以看出,当设计的复杂性提高的时候,工程的设计时钟频率会相应减少,但仍然能达到 10M 以上。 表 2 X 处理器工程性能仿真结果 工程名 处理器1 处理器2 处理器3 处理器4 处理器5 处理器6

5

互连信号数 2274 2154 1894 1887 1803 1795

占用通道数 143 135 119 119 77 75

复用比 15.90 15.59 15.91 15.86 23.41 23.93

最高设计频率(MHz) 17.9 17.9 17.9 17.9 15.6 15.6

结语 本文在基于 Xilinx Virtex-7 FPGA 芯片的两颗和四颗 FPGA 原型验证平台上实现了时分复用互连模块,

满足了数十倍于信号通道的信号传输需求,并重点描述了互连模块数据转换过程的实现。利用 Xilinx 的集 成验证环境 VIVADO 实现了互连模块的仿真,并且在多 FPGA 原型验证平台上进行了测试。与传统方法相 比,此设计充分利用了 Virtex-7 的 SelectIO 逻辑资源,最大限度地发挥了芯片性能,减小了设计复杂度,缩 短了设计周期,很好的完成了 FPGA 之间数据互相传输的目的。目前,整个设计已经在实际应用中运行, 进行了多款处理器的 FPGA 原型验证,稳定可靠,具有很高的可移植性和工程实践应用价值,对后续跨 PCB 板之间的多 FPGA 互连模块的实现具有指导意义。 - 48 http://www.ivypub.org/cst


REFERENCES [1] 陈海燕, 郭阳, 刘祥远, 陈吉华. 集成电路计算机辅助设计与验证实践[M]. 长沙: 国防科技大学出版社, 2010 [2] 王春平, 张晓华, 赵翔. Xilinx 可编程逻辑器件设计与开发(基础版)[M]. 北京: 人民邮电出版社, 2011 [3] 余慧. 时分交换的新型 FPGA 互连结构研究 [D]. 上海: 复旦大学, 2011 [4] 张承畅. 多 FPGA 系统的关键问题及应用研究 [D]. 重庆: 重庆大学, 2011 [5] 范丹, 何永强, 方晋贤. 高速 LVDS 接口电路设计[J]. 仪表技术, 2010, 4: 7-8 [6] J.Babb, R.Tessier, M.Dahl, S.Z.Hanono, D.MHoki, A.Agarwal, Logic emulation with virtual wires Computer-Aided Design of Integrated Circuits and Systems[J]. IEEE Transactions, 1997, 16: 609-626 [7] Xilinx. Virtex-7 User Guide [Z]. America: Xilinx Inc, 2013 [8] Greg Burton. 16-Channel DDR LVDS Interface with Per-Channel Alignment [Z]. America: Xilinx Inc, 2006 [9] John F Snow. Efficient 8X Oversampling Asynchronous Serial Data Recovery Using IDELAY [Z]. America: Xilinx Inc, 2007

【作者简介】 徐潮(1989-),男,汉,硕士研究生,

王玉姣(1988-),女,汉,硕士研究生,研究方向为 FPGA

研究方向为 FPGA 原型验证平台的搭建

原型验证平台的搭建以及应用。

以及应用。Email: xuchaolz@163.com

Email: xiaoshuangewr@163.com 张民选(1954-),男,汉,博士生导师,研究方向计算机 系统结构、高性能微处理器设计。

黄立波(1983-),男,汉,博士,研究方向计算机系统结

Email:mxzhang@nudt.edu.cn

构。Email: libohuang@nudt.edu.cn

- 49 http://www.ivypub.org/cst


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.