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

noc网络代码实现systemverilog详细解释 flit_t;} data;endpackagenoc.sv是一个SystemVerilog包,定义了一些网络芯片(Network on Chip,简称NoC)的参数和数据类型。以下是一些主要的定义:1. MESH_SIZE_X 和 MESH_SIZE_Y:定义了NoC网格的大小。 阅读详情
关注、星标公众号,精彩内容每日送达

来源:网络素材

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

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

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

  l  提高设计的性能,让FPGA内部的数据传输不再成为瓶颈。

  l  节省FPGA可编程逻辑资源,简化逻辑设计,由NoC去替代传统的逻辑去做高速数据传输和数据总线管理。

  l  增加了FPGA的布线资源,对于资源占用很高的设计有效地降低布局布线拥塞的风险。

  l  实现真正的模块化设计,减小FPGA设计人员调试的工作量。

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

862e0feefd1132cf0f536dcfcf7abe37.png

  图1 传统FPGA实现架构

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

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

902c2361168ab3cc77a7e47ed267e174.png

  图2 Speedster7t 1500的实现架构

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

3da69b6461ceb8626481805122bc8dda.png

  图3 资源占用和性能对比

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

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

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

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

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

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

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

从零构建:基于Versal AXI NoC的高性能内存子系统设计与仿真实战 本文详细介绍了基于Versal AXI NoC的高性能内存子系统设计与仿真方法。通过解析AXI NoC架构、配置QoS策略和流量生成器,实现精细化带宽与延迟控制,并利用仿真验证极端负载下的性能表现,为硬件工程师提供实战指导。 阅读详情

相关推荐

FPGA与ASIC设计优化及移植策略详解

FPGA(现场可编程门阵列)和ASIC(专用集成电路)是现代电子系统设计的两种核心技术。FPGA凭借其可重构特性,在原型开发和小批量生产中具有优势;而ASIC在大规模量产时展现出更高的性能和成本效益。理解两者的架构差异对工程师至关重要,特别是在从FPGA原型转向ASIC量产时。FPGA基于可编程逻辑单元和专用硬件模块,而ASIC采用标准单元库或全定制设计,这使得它们在性能、功耗和设计方法上存在显著差异。优化策略包括算术逻辑单元设计、多路复用器实现和存储子系统设计等。通过参数化设计和跨平台验证,可以确保设计

weixin_35459464的博客 435

基于FPGANoC硬件系统设计

设计了基于FPGA的片上网络系统硬件平台。系统由大容量的FPGA、存储器、高速A/D与D/A、通信接口和一个扩展的ARM9系统组成。完成了集高速数字信号处理、视频编解码和网络传输功能与一体的多核系统设计。针对典型的3×3 2D Mesh结构的NoC系统应用进行了探讨,阐述了NoC系统设计过程中的关键技术,并使用SigXplorer软件对系统的信号完整性解决方案进行了PCB的反射与串扰仿真。

Versal - 实战演练(AXI NoC 配置、仿真与 QoS 调优)

本文详细介绍了Versal平台上AXI NoC的配置、仿真与QoS调优实战经验。从基础认知到高级参数配置,涵盖开发环境准备、拓扑结构定制、QoS调优技巧以及性能分析方法,帮助开发者高效利用Versal的异构计算架构实现高性能数据传输。特别强调了QoS机制在优化实时视频流等关键数据传输中的应用

weixin_42620340的博客 407

noc-开源

此脚本允许在您指定的端口/服务上检查无限数量的服务器。

温榆河”大规模片上互联网络(NoC

我需要将这些信息组织起来,分点说明。另外,参考内容提到NoC在芯片中的作用,比如数据通信的高效和低延迟,这对SoC设计很重要,特别是RISC-V生态的发展。同时,可能存在的挑战,比如技术复杂性和维护生态的困难,也应该提及,以提供全面回答。这是全球首个开源的,旨在打破ARM的垄断,支持64核互联,并且已经完成开发和验证,可以交付给企业评估。简言之,“温榆河”NoC IP是我国在半导体底层技术领域的重要突破,通过开源共享为全球芯片设计提供新选择,尤其对国内RISC-V生态的完善和高性能芯片研发具有战略意义。

luoganttcc的博客 1058

NoC片上网络

片上网络: 一般采用2D mesh拓扑,其核心为路由算法/流控机制,路由一般使用固定XY或虫孔算法, 目前比较好的NoC开源参考工程为:LisNoC http://www.lisnoc.org/flowcontrol.html ARM官方也有一些NoC应用: CoreLink NI-700 Network-on-Chip Interconnect Technical Reference Manual https://developer.arm.com/documentation/101566/l

timewh的专栏 3125

NoC协议概述

NoC协议概述介绍

weixin_60401853的博客 2108

1-- OpenNoc简介

总结而言,OpenNoC 作为一种基于 AMBA CHI 协议的开源核间通信框架,以其高度可配置、模块化设计、协议兼容性和社区支持等特点,在多核处理器系统中展现出了卓越的性能和灵活性。通过这些特点,OpenNoC 成为了多核处理器系统中一个值得信赖的解决方案,它不仅提高了系统的性能,还简化了系统设计过程。嵌入式系统:对于资源受限的嵌入式系统,OpenNoC 的灵活配置和模块化设计可以优化系统资源的使用。组件设计:项目采用了模块化设计,使得各个组件可以独立配置和编译,提高了系统的灵活性和可维护性。

u010037269的博客 860

FPGA加速器支撑ChatGPT类大语言模型创新

由于这些大语言模型需要巨大的规模才能以最小的延迟影响来执行训练和推理,模型的复杂性将继续增加,这将使得不断发展的语言理解、生成,甚至预测能力具有令人难以置信的准确性。最后,与GPU类似但与其他FPGA不同,Achronix的Speedster7t FPGA具有八组高效的GDDR6存储器IP,可支持更高的带宽,并且能够以4 Tbps的速度加载参数。大语言模型的构建通常需要一个大规模的系统来执行该模型,这个模型会持续变大,在其发展到一定程度后,仅靠在CPU上的运行就不再具有成本、功耗或延迟的优势了。

mahuahu的博客 408

NoC片上网络 On-Chip Network】从总线到NoC:多核芯片通信架构的演进与抉择

本文深入探讨了从总线到NoC(片上网络)的多核芯片通信架构演进历程。通过对比总线、交叉开关和NoC的性能、功耗及可扩展性,揭示了NoC在现代众核处理器中的优势,包括面积效率提升62%、功耗降低58%。文章还提供了NoC拓扑选择、路由算法优化等实战经验,为芯片架构师提供选型指南。

weixin_29913663的博客 202

音诺ai翻译机利用Achronix Speedster7t加速FPGA AI推理

音诺AI翻译机采用Achronix Speedster7t FPGA,结合AIM矩阵引擎与NoC架构,实现低延迟、高能效的端到端语音翻译加速,支持模型量化、硬件流水线优化及远程固件更新。

weixin_33256096的博客 931

FPGA实战手记:Cyclone V到Agilex的开发者迁移指南

本文详细解析了从Cyclone V到Agilex的FPGA技术迁移策略,涵盖架构对比、开发环境配置、硬件设计优化及调试技巧。针对Intel Agilex平台的10nm SuperFin工艺和3D SiP封装特性,提供全流程迁移方案,帮助开发者高效实现性能跃升。重点探讨了DDR5接口升级、HyperFlex时序优化等核心挑战,并分享实际案例中的功耗优化与性能提升经验。

9q8w7e6r5的博客 874

异构集成趋势下的FPGA动态重构应用与产业变革

架构突破:单芯片实现100TOPS混合精度算力‌ ‌标量引擎‌:集成ARM Cortex-A72处理器,提供确定性控制与复杂逻辑处理能力,单核性能较前代提升40%,支持实时操作系统(RTOS)与多任务调度。 ‌向量引擎‌:内置RISC-V向量核,针对金融风控中的高频数据流(如Level-2行情)进行并行化处理,单周期可完成128次浮点运算,延迟低于50ns。 ‌AI引擎‌:AI引擎阵列提供100TOPS混合精度算力(INT8/FP16),支持风险模型的毫秒级推理,例如信用评分模型单次预测耗时从20ms压缩

Made In SQL 1509

解密FPGA布线艺术:如何用互连资源构建硬件编程的神经网络

本文深入探讨了FPGA布线架构的神经形态优化,揭示了如何通过互连资源构建硬件编程的神经网络。文章详细分析了FPGA布线架构的生物学启示、三维重构艺术、时序收敛的神经动力学方法,以及面向异构计算的布线架构创新,为芯片设计提供了前沿视角和实用技术。

weixin_28455801的博客 620

FPGA实现 NIC 10G 网卡,纯verilog代码编写,提供3套工程源码和技术支持

FPGA实现NIC 10G UDP协议栈网卡,纯verilog代码编写,提供工程源码和技术支持 本设计是一个10G速率的网卡,Xilinx Virtex-7 xc7vx690t调用Virtex-7 FPGA Gen3 Integrated Block for PCI Express IP核实现FPGA网卡与电脑主机的数据交互,PCIE配有纯verilog编写的DMA控制器实现PCIE数据的搬运工作;调用10G Ethernet PCS/PMA (10GBASE-R/KR) GTH资源实现FPGA网卡与其他网

qq_41667729的博客 7372

FPGA纯verilog代码实现8位精简指令集CPU,一学期的微机原理不如看懂这套代码,提供工程源码和技术支持

主要参数如下: 8位数据总线; 8位地址总线; 2位控制总线; 256字节ROM;用于存放cpu指令; 256字节RAM;用于存放cpu数据; 1字节的cache,用于存放cpu计算的中间结果和预取; 32字节通用计算器,用于暂存cpu计算的中间结果; 2字节指令寄存器,用于暂存cpu指令和预取;

qq_41667729的博客 4429

FPGA 中的 Noc

FPGA中的Noc是什么,有什么用?

石头记 953

开源项目常见问题解决方案:Network on Chip Implementation

开源项目常见问题解决方案:Network on Chip Implementation 一、项目基础介绍 该项目是一个名为“Network on Chip Implementation”的开源项目,简称为NoC Implementation,主要是一个在SystemVerilog语言中实现的网络芯片(Network on Chip,简称NoC)路由器/网络结构。NoC是一种在多个处理器核心之间进行...

gitblog_01185的博客 639
上一篇: 影响FPGA设计中时钟因素的探讨
下一篇: 【知识分享】FPGA时序分析与优化-时序约束方法
Hack电子
博客等级 码龄5年 877粉丝 · 29原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值