学生联盟网为您提供优质参考范文! 体会工作报告法律咨询精彩演讲各类材料
当前位置: 学生联盟网 > 试题综合 > 化学试题 > 片上网络GALS接口设计

片上网络GALS接口设计

时间:2021-10-23 00:24:45 来源:学生联盟网

片上网络 GALS 接口设计摘要 本文提出了一种基于握手协议的 GALS 接口设 计方法。该接口采用异步 FIFO 作为输入缓冲区,有效降低 了数据传输延迟;采用环形缓冲的概念来管理缓冲区,使接 口具有了可扩展性。

  FPGA 验证结果表明,该接口保证了适 配单元与网络路由之间完成准确的异步传输,4 通道的接口 共占用了 405 个 ALUTAdaptive Look-Up Table 和支持 211 MHz 的时钟频率。关键词 片上网络; GALS ;异步 FIFO ;环形缓冲 中图分类号 TP302.1 文献标识码 ADesign of GALS Interface for Network-on-ChipHONG Jia-jie,WU Ning College of Ination Technology Science,Nanjing Universityof Aeronautics and Astronautics ; Nanjing China ; 210016AbstractThis paper proposes a design for GALS Globally Asynchronous and Locally Synchronous interface based on handshake protocol.The delay of data transfer is reduced by using asynchronous FIFOs as buffers.The interface also uses concept of circular buffer to manage multi-buffers,so that the interface is scalable.The synthesis and simulation in FPGA show that our GALS can provide reliable asynchronous communication services,an interface with 4 channels required 405 ALUT Adaptive Look-Up Table and ran at 211MHz.Key words Network-on-Chip; GALS; Asynchronous FIFO; Circular buffer随着片上系统 SoC,System-on-Chip 集成的 IP 核数 目的不断增大,传统的基于总线的通信结构将严重制约整个 芯片的性能 1 。片上网络 NoC ,Network-on-Chip 将是一 种有效的通信解决方案,它可以看作是将互联网应用到 SoC 设计领域的结果 2 。NoC 不需要全局同步时钟是其较之于总线结构的一个 优点。随着工艺技术的进步和系统规模的增大,低延迟的全 局时钟布线将会变得非常困难;同时,全局时钟产生了巨大 的功耗 3 。全局异步局部同步架构 GALS 可以解决全局 同步时钟带来的诸多问题,它可以应用于 NoC 的设计,NoC 中的每个 IP 核是一个工作于独立时钟局部同步子系统,IP核与网络通过 GALS 接口以异步的方式进行数据传输 4 。GALS 接口是 NoC 同步时钟域与异步时钟域的分界,本 文设计 GALS 接口是按照握手协议来协调数据在不同时钟域 之间的异步传输。1GALS 接口总体结构GALS 网络接口可分为输出、输入两个端口,每个端口 主要由通道缓冲区、缓冲区选择模块、基于握手机制的自时 钟发生器、信号同步器四部分组成,它的总体结构如图 1 所 示。数据缓冲区由若干个缓冲块组成,缓冲块可以由 RAM 或 FIFO 实现。在 NoC 中可以将通信服务划分为保证服务 Guaranteed services,GT 和尽力服务 Best-effort services ,BE5 ,相应的数据包也分为 GT 包和 BE 包。为此,可以 将通道缓冲块分为两类,一类存储 GT 包,另一类用来存储 BE包。GT服务的优先级较高,所以 GT缓冲块的数据将优 先得到服务。对于输出缓冲区,往缓冲块写数据的过程同时也是数据 组包的过程。数据从缓冲块的第二个地址开始依次写入,数 据写入完毕后,再将数据包头写入首地址,这样就完成了一 个数据包的组包过程,而从缓冲块读数据是从首地址开始的,所以输出缓冲块需用 RAM 实现。对于输入缓冲区,从网络来的数据输入到缓冲对列,解 包模块首先从首地址读取的包头信息,再根据包头信息从输 入缓冲块中读取有效数据,由此可见,存取过程是一个先进 先出的过程,为了提高数据吞吐率可采用异步 FIFO 实现,异步 FIFO 的设计可参看文献 6 。自时钟发生器用于产生读写时钟,以输出端口为例,request 信号将在缓冲区满信号 afull 和目的缓冲区有空闲时 被触发,request 有效后,自时钟发生器将产生缓冲区读时钟 控制数据从缓冲区中读出; 当空标志 aempty 有效时,自时钟 发生器将停止产生读时钟。缓冲区的空 /满标志( aempty 和 afull )由于与本地时钟不同步,需要经过同步器后才能进入 组包或解包模块。2GALS 接口关键设计2.1 基于握手协议的自时钟发生器本文采用了基于握手协议的自时钟发生器来协调数据 包的异步传输。握手协议主要有两种形式二相握手和四相 握手,对于前者,它采用双时钟沿触发,不适合于在 FPGA 上实现。本文的自时钟发生器是基于四相握手协议的,它的 电路如图 2 所示。在图 2 中,当 request 被触发时,读时钟 r_clk 产生一个 上升沿,数据将会被读出。

  为了保证数据能正确写入,w_clk 的上升沿只能在数据到达后产生,因为数据传输有一定的延 迟,所以在自时钟发生器中需要插入延迟单元,而 FPGA 中 延迟单元对工艺、温度、压力等因素敏感,因此需要留有足 够的设计余量,延迟时间 TDelay 应满足 TDelayTDelay_Data TR_co Tack_su 。TDelay_Data为数据延迟时间,Tack_su为ack时钟信 号的最小建立时间,TR_co 为寄存器固有属性,是数据送到 输出端口的内部延时参数。2.2 输入缓冲区对于输入缓冲块,若采用双端口 RAM 实现,则需要将 包中所有的微片都加载到缓冲块后才能读出,数据的延迟将 与数据包的长度成线性关系。而输入缓冲块数据的存取是一 个先进先出的过程,可以采用异步 FIFO 来实现。输入缓冲 区的结构如图 3 所示。输入缓冲区设计的关键是准确地设计控制信号,与外 部模块相连的两个关键信号是afull和aempty。afull并不反映异步 FIFO 的满状态,而是标志在该异步 FIFO 缓冲块中还 有包微片没有读完,其它数据包不允许写入到该缓冲块,它 是由 w_ok 与 r_ok 异或得到的,w_ok 和 r_ok 分别在一个数 据包写完和读完时翻转。

  aempty 标志在该异步 FIFO 缓冲块 有数据可以读取,它是由 w_begin 与 r_ok 异或得到的,w_begin 在数据包头写进缓冲块后翻转。为了防止亚稳态的 发生,afull和aempty需要经过同步器后才可以送到外部模 块。3.3 环形缓冲区本文为全文原貌 未安装 PDF 浏览器用户请先下载安装 原 版全文缓冲区的大小需要根据实际的网络通信量确定,这就要求缓冲区具有良好的可扩展性。为此,在本文中采用了环形缓冲的概念来管理缓冲区,即将缓冲块 按环形组合起来。对于环形缓冲区的管理,在同步系统中可以用状态机来 实现,而在本系统中,由于缓冲区的读写时钟不同,不宜用 状态机来实现。最终,本文采用的是如图 4 所示的电路,该 电路当任意两个缓冲块同时为满时将出现不确定情况。但是 在这里,同时为满的情况不可能出现,所以该电路是可行的。路由单元向输入通道缓冲区输入数据包,一次只能对 一块缓冲块进行操作,控制电路是通过缓冲块的空标志来对 环形缓冲区的缓冲块进行操作。因为缓冲块有可能同时为 空,所以缓冲块选择模块不能采用如图 4 所示的电路。根据环形缓冲区的存取特点,满的缓冲块必是连续的,例如由 个缓冲块组成的环形缓冲区,“满空空满”的情况是可能的,而“满空满空”是不可能的。而将要选择的缓冲块必为沿存 储方向的第一个空缓冲块。由此得出 write_ennfullnfulln-1 (除缓冲块全为空、满时不适用),full 为缓冲块满信号,下 标为缓冲块编号,write_en 为 1 的存储块即是可以写入的数 据块。4 仿真结果输入输出端口分别为 4 缓冲块的网络接口用 Altera 公司 的 Stratix II 器件 EP2S15F484C3 进行布局布线后仿真,共占 用了 405 个 ALUT ,可以达到的最高频率为 211MHz 。输出端的波形如图5所示,data_out为组包模块输出的数据,在时钟 clk_r 的驱动下写入到输出缓冲块,flit_from_GT_a 为从网络接口输出的数据,在握手时钟 request的驱动下从输出缓冲块读出。从图5中可以看出,数据微片延迟了 mx Tclk_r3 xTclk_tran ,m 为数据包长度,Tclk_r 为发送端时钟周期,Tclk_tran 位握手时钟周期,延迟时间与数据包长度成线性关 系。输入端的波形如图6所示,data_net为来自网络的数据,在握手时钟 ack 的驱动下写入的输入缓冲块,de_data 为输入 到解包模块的数据,在目的时钟 clk_d 的驱动下从输入缓冲 块读出。从图 6 中可以看出,当往输入缓冲区输入两个微片后,FIFO 的空标志才无效,这是因为异步 FIFO 的空标志是保守 的,在读使能 fifo_read_en_a 有效后,数据开始从异步 FIFO 中读出,数据微片延迟了2X Tclk_tran2 x Tclk_d ,Tclk_d为接收端的时钟周期,与数据包的长度无关。5 结论本文基于 GALS 思想设计了片上网络适配单元与网络路 由之间的异步通信接口,采用的基于四相握手协议的自时钟 发生器保证了可靠的跨时钟域数据传输,用异步 FIFO 作为 输入缓冲区消除了数据包长度对传输延迟的影响,将多个缓 冲块组成循环缓冲区,使接口具有了良好的可扩展性。仿真 结果表明该接口支持较高的时钟频率和占用较少的面积。

  作为 NoC 的一个重要部件,该接口适用于各种拓扑结构的 NoC。参考文献1 Benini,L.,and De Micheli,G.Networks on chips a new SoC paradigmJ.Computer,2002,35 1 70-78.2 William J.Dally,Brian Towles.Route Packets,Not Wires On-Chip Interconnection NetworksC.Proceedings of the 38th Conference on Design Automation,Las Vegas,NV,2001684-689.3 E.G.Friedman.Clock Distribution Networks in Synchronous Digital Integrated CircuitsJ.Proceedings of the IEEE,2001,895 665-692.4 Andrew Linus.Nexus An Asynchronous Crossbar Interconnect for Synchronous System-on-Chip DesignC.11th Symposium on High Perance Interconnects,Stanford,Calif,USA,2003 2-9.5 K.Goossens,J.van Meerbergen,A.Peeters,and P.Wielage.Networks on Silicon Combining Best Effort and Guaranteed ServicesC.Proceedings of Design,Automation and Test in Europe Conference and Exhibition DATE 02 ,Paris,France,2002 423-425.6 赵永建 ,段国东 ,李苗 .集成电路中的多时钟域同步 设计技术J.计算机工程,2008,34 9 246-247.作者简介洪佳洁,硕士研究生,研究方向为集成电路设计和片上网络吴宁,教授,博士生导师,研究方向为数字系统理论与 技术、电子系统集成、专用集成电路设计等。本文为全文原貌 未安装 PDF 浏览器用户请先下载安装 版全文