广告

在FPGA设计中如何充分利用NoC资源去支撑创新应用设计

2020-08-21 黄仑,Achronix资深现场应用工程师 阅读:
一个运用NoC访问片外GDDR6的例子

日益增长的数据加速需求对硬件平台提出了越来越高的要求,FPGA作为一种可编程可定制化的高性能硬件发挥着越来越重要的作用。近年来,高端FPGA芯片采用了越来越多的Hard IP去提升FPGA外围的数据传输带宽以及存储器带宽。但是在FPGA内部,可编程逻辑部分随着工艺提升而不断进步的同时,内外部数据交换性能的提升并没有那么明显,所以FPGA内部数据的交换越来越成为数据传输的瓶颈。cGxednc

为了解决这一问题,Achronix 在其最新基于台积电(TSMC)7nm FinFET工艺的Speedster7t FPGA器件中包含了革命性的创新型二维片上网络(2D NoC)。这种2D NoC如同在FPGA可编程逻辑结构之上运行的高速公路网络一样,为FPGA外部高速接口和内部可编程逻辑的数据传输提供了大约高达27Tbps的超高带宽。cGxednc

作为Speedster7t FPGA器件中的重要创新之一,2D NoC为FPGA设计提供了几项重要优势,包括:cGxednc

  • 提高设计的性能,让FPGA内部的数据传输不再成为瓶颈。
  • 节省FPGA可编程逻辑资源,简化逻辑设计,由NoC去替代传统的逻辑去做高速数据传输和数据总线管理。
  • 增加了FPGA的布线资源,对于资源占用很高的设计有效地降低布局布线拥塞的风险。
  • 实现真正的模块化设计,减小FPGA设计人员调试的工作量。

本文用了一个具体的FPGA设计案例,来体现上面提到的NoC在FPGA设计中的几项重要作用。这个设计的主要目的是展示FPGA内部的逻辑如何去访问片外的存储器。如图1所示,本设计包含8个读写模块,这8个读写模块需要访问8个GDDR6通道,这样就需要一个8x8的AXI interconnect模块,同时需要有跨时钟域的逻辑去将每个GDDR6用户接口时钟转换到逻辑主时钟。除了图1中的8个读写模块外,红色区域的逻辑都需要用FPGA的可编程逻辑去实现。cGxednc

cGxednc

图1 传统FPGA实现架构cGxednc

对于AXI interconnect模块,我们采用Github上开源的AXI4总线连接器来实现,这个AXI4总线连接器将4个AXI4总线主设备连接到8个AXI4总线从设备,源代码可以在参考文献2的链接中下载。我们在这个代码的基础上进行扩展,增加到8个AXI4总线主设备连接到8个AXI4总线从设备,同时加上了跨时钟域逻辑。cGxednc

为了进行对比,我们用另外一个设计,目的还是用这8个读写模块去访问8个GDDR6通道;不同的是,这次我们将8个读写模块连接到Achronix的Speedster7t FPGA器件的2D NoC上,然后通过2D NoC去访问8个GDDR6通道。如图2所示:cGxednc

cGxednc

图2 Speedster7t 1500的实现架构cGxednc

首先,我们从资源和性能上做一个对比,如图3所示:cGxednc

cGxednc

图3 资源占用和性能对比cGxednc

从资源占用上看,用AXI总线连接器的设计会比用2D NoC的设计占用多出很多的资源,以实现AXI interconnect还有跨时钟域的逻辑。这里还要说明一点,这个开源的AXI interconnect实现的是一种最简单的总线连接器,并不支持2D NoC所能提供的所有功能,比如地址表映射,优先级配置。cGxednc

最重要的一点是AXI interconnect只支持阻塞访问(blocking),不支持非阻塞访问(non-blocking)。阻塞访问是指发起读或者写请求以后,要等到本次读或者写操作完成以后,才能发起下一次的读或者写请求。而非阻塞访问是指可以连续发起读或者写请求,而不用等待上次的读或者写操作完成。在提高GDDR6的访问效率上面,阻塞访问会让读写效率大大下降。cGxednc

如果用FPGA的可编程逻辑去实现完整的2D NoC功能,包括64个接入点、128bit位宽和400MHz的速率,大概需要850 k LE,等效于占用了Speedster7t 1500 FPGA器件56%的可编程资源。而2D NoC则可以提供 80个接入点、256bit位宽和2GHz速率,而且不占用FPGA可编程逻辑。cGxednc

从性能上来看,使用AXI总线连接器的设计只能跑到157MHz,而使用NoC的设计则能跑到500MHz。如果我们看一下设计后端的布局布线图,就会有更深刻的认识。图4所示的是使用AXI总线连接器的设计后端布局布线图。cGxednc

cGxednc

图4 使用AXI interconnect的设计后端布局布线图cGxednc

从图中可以看到,因为GDDR6控制器分布在器件的两侧(图中彩色高亮的部分),所以AXI总线连接器的布局基本分布在器件的中间,既不能靠近左边,也不能靠近右边,所以这样就导致了性能上不去。如果增加pipeline的寄存器可以提高系统的性能,但是这样会占用大量的寄存器资源,同时会给GDDR的访问带来很大的延时。cGxednc

如果再看一下图5中使用了2D NoC的布局布线图,就会有很明显的对比。首先,因为用2D NoC实现了AXI总线连接器和跨时钟域的模块,这就节省了大量的资源;另外,因为2D NoC遍布在整个器件上,一共有80个接入点,所以8个读写模块可以由工具放置在器件的任何地方,而不影响设计的性能。cGxednc

cGxednc

图5 使用2D NoC设计的后端布局布线图cGxednc

从本设计的整个流程来看,使用2D NoC会极大的简化设计,提高性能,同时节省大量的资源;FPGA设计工程师可以花更多的精力在核心模块或者算法模块设计上面,把总线传输、外部接口访问仲裁和接口异步时钟域的转换等工作全部交给2D NoC吧。cGxednc

责编:赵明灿cGxednc

本文为EDN电子技术设计 原创文章,禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
  • 添加 Gd 稀土元素升级观测站,或将助已100 亿年的中微子 中微子,是轻子的一种,是组成自然界的最基本的粒子之一,它个头小、不带电,可自由穿过地球,以接近光速运动,与其他物质的相互作用十分微弱,号称宇宙间的“隐身人”。最近,日本“超级神冈”(Super-Kamiokande)中微子观测站通过添加 Gd 稀土元素升级,或将助已100 亿年的中微子再次现身。
  • 实例!详解FPGA如何实现FP16格式点积级联运算 通过使用Achronix Speedster7t FPGA中的机器学习加速器MLP72,开发人员可以轻松选择浮点/定点格式和多种位宽,或快速应用块浮点,并通过内部级联可以达到理想性能。
  • 汽车电子产品创新,给汽车原始设备制造商带来挑战 将三年前的汽车安全性技术与今天的技术进行对比,您就会发现摄像头数量已显著增加,以支持诸如全景可视、驾驶员注意力分散监测器、立体视觉摄像头、前向摄像头和多个后视摄像头等应用。除了摄像头,系统功能也增强了,包括自动紧急制动、车道偏离警告、后方盲点检测和交通标志识别等。这一趋势表明,汽车电子类产品在持续快速地创新,但这也给汽车原始设备制造商(OEM)带来了全新的挑战……
  • 中国科学院大学「一生一芯」计划对国产芯片的发展意味 “一生一芯”,能否在中国的教育中普及芯片设计
  • 超越英伟达的,不会是另一款GPU——鲲云数据流架构AI芯 跨界竞争不仅仅存在与商业模式中,技术体系的创新也能带来跨界竞争。AI行业的GPU竞争就是一例。鲲云数据流架构AI芯片利用率提升10倍以上,在AI芯片高端领域开启了性能大比拼
  • 拆解对比16款热门65W氮化镓快充,这三家芯片原厂赚翻了 在作为消费类电子风向标的手机行业中,目前已有华为、小米、OPPO、魅族、三星、努比亚、realme等多个知名品牌推出了氮化镓快充产品。电商方面,目前也有17家品牌先后推出了数十款氮化镓快充新品。通过对比拆解的16款市售热门65W氮化镓快充,发现氮化镓功率芯片供应商主要有PI、纳微、英诺赛科三家。
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了