在FPGA设计中如何充分利用NoC资源去支撑创新应用设计_第1页
在FPGA设计中如何充分利用NoC资源去支撑创新应用设计_第2页
在FPGA设计中如何充分利用NoC资源去支撑创新应用设计_第3页
在FPGA设计中如何充分利用NoC资源去支撑创新应用设计_第4页
在FPGA设计中如何充分利用NoC资源去支撑创新应用设计_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

在FPGA设计中如何充分利用NoC资源去支撑创新应用设计一个运用NoC访问片外GDDR6的例子黄仑,Achronix资深现场应用工程师日益增长的数据加速需求对硬件平台提出了越来越高的要求,FPGA作为一种可编程可定制化的高性能硬件发挥着越来越重要的作用。近年来,高端FPGA芯片采用了越来越多的HardIP去提升FPGA外围的数据传输带宽以及存储器带宽。但是在FPGA内部,可编程逻辑部分随着工艺提升而不断进步的同时,内外部数据交换性能的提升并没有那么明显,所以FPGA内部数据的交换越来越成为数据传输的瓶颈。为了解决这一问题,Achronix在其最新基于台积电(TSMC)7nmFinFET工艺的Speedster7tFPGA器件中包含了革命性的创新型二维片上网络(2DNoC)。这种2DNoC如同在FPGA可编程逻辑结构之上运行的高速公路网络一样,为FPGA外部高速接口和内部可编程逻辑的数据传输提供了大约高达27Tbps的超高带宽。作为Speedster7tFPGA器件中的重要创新之一,2DNoC为FPGA设计提供了几项重要优势,包括:提高设计的性能,让FPGA内部的数据传输不再成为瓶颈。节省FPGA可编程逻辑资源,简化逻辑设计,由NoC去替代传统的逻辑去做高速数据传输和数据总线管理。增加了FPGA的布线资源,对于资源占用很高的设计有效地降低布局布线拥塞的风险。实现真正的模块化设计,减小FPGA设计人员调试的工作量。本文用了一个具体的FPGA设计案例,来体现上面提到的NoC在FPGA设计中的几项重要作用。这个设计的主要目的是展示FPGA内部的逻辑如何去访问片外的存储器。如图1所示,本设计包含8个读写模块,这8个读写模块需要访问8个GDDR6通道,这样就需要一个8x8的AXIinterconnect模块,同时需要有跨时钟域的逻辑去将每个GDDR6用户接口时钟转换到逻辑主时钟。除了图1中的8个读写模块外,红色区域的逻辑都需要用FPGA的可编程逻辑去实现。图1传统FPGA实现架构对于AXIinterconnect模块,我们采用Github上开源的AXI4总线连接器来实现,这个AXI4总线连接器将4个AXI4总线主设备连接到8个AXI4总线从设备,源代码可以在参考文献2的链接中下载。我们在这个代码的基础上进行扩展,增加到8个AXI4总线主设备连接到8个AXI4总线从设备,同时加上了跨时钟域逻辑。为了进行对比,我们用另外一个设计,目的还是用这8个读写模块去访问8个GDDR6通道;不同的是,这次我们将8个读写模块连接到Achronix的Speedster7tFPGA器件的2DNoC上,然后通过2DNoC去访问8个GDDR6通道。如图2所示:图2Speedster7t1500的实现架构首先,我们从资源和性能上做一个对比,如图3所示:图3资源占用和性能对比从资源占用上看,用AXI总线连接器的设计会比用2DNoC的设计占用多出很多的资源,以实现AXIinterconnect还有跨时钟域的逻辑。这里还要说明一点,这个开源的AXIinterconnect实现的是一种最简单的总线连接器,并不支持2DNoC所能提供的所有功能,比如地址表映射,优先级配置。最重要的一点是AXIinterconnect只支持阻塞访问(blocking),不支持非阻塞访问(non-blocking)。阻塞访问是指发起读或者写请求以后,要等到本次读或者写操作完成以后,才能发起下一次的读或者写请求。而非阻塞访问是指可以连续发起读或者写请求,而不用等待上次的读或者写操作完成。在提高GDDR6的访问效率上面,阻塞访问会让读写效率大大下降。如果用FPGA的可编程逻辑去实现完整的2DNoC功能,包括64个接入点、128bit位宽和400MHz的速率,大概需要850kLE,等效于占用了Speedster7t1500FPGA器件56%的可编程资源。而2DNoC则可以提供80个接入点、256bit位宽和2GHz速率,而且不占用FPGA可编程逻辑。从性能上来看,使用AXI总线连接器的设计只能跑到157MHz,而使用NoC的设计则能跑到500MHz。如果我们看一下设计后端的布局布线图,就会有更深刻的认识。图4所示的是使用AXI总线连接器的设计后端布局布线图。图4使用AXIinterconnect的设计后端布局布线图从图中可以看到,因为GDDR6控制器分布在器件的两侧(图中彩色高亮的部分),所以AXI总线连接器的布局基本分布在器件的中间,既不能靠近左边,也不能靠近右边,所以这样就导致了性能上不去。如果增加pipeline的寄存器可以提高系统的性能,但是这样会占用大量的寄存器资源,同时会给GDDR的访问带来很大的延时。如果再看一下图5中使用了2DNoC的布局布线图,就会有很明显的对比。首先,因为用2DNoC实现了AXI总线连接器和跨时钟域的模块,这就节省了大量的资源;另外,因为2DNoC遍布在整个器件上,一共有80个接入点,所以8个读写模块可以由工具放置在器件的任何地方,而不影响设计的性能。图5使用2DNoC设计的后端布局布线图从本设计的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论