tag 标签: fpga

相关博文
  • 2025-6-18 15:40
    63 次阅读|
    0 个评论
    它分为两部分,这里是第一部分。 NVM Express(NVMe)是一种高性能、可扩展的接口协议,用于通过PCI express(PCIe)总线,实现主机软件与NVM设备之间的通信。目前,由于NVMe SSD相比于SATA SSD具有更高的吞吐量、更快的访问速度和更低的功耗,已经被广泛应用于各种计算领域和存储系统。 # NVMe队列 NVMe协议采用成对的提交队列(Submission Queue,SQ)和完成队列(Completion Queue,CQ)机制。SQ用于存放提交命令,而CQ则用于存放完成信息。队列状态信息通过门铃寄存器(Door Bell,DB)来检测。这两个队列采用了环形队列结构,队列可以映射到任何PCIe可访问的内存中,通常放在主机侧内存。对于提交队列,主机端是生产者,NVMe SSD是消费者。完成队列的情况刚好相反。因此SQ Tail指针和CQ Head指针由主机更新,而其他两个指针由NVMe控制器更新。NVMe的队列结构如图1所示。 图1 队列示意图 NVMe队列的深度是固定的,通过Tail和Head来分别指向队列的首尾位置,队列实际可用的大小是队列大小减1,当Head条目指针等于Tail条目指针时,队列为空。当Head条目指针比Tail条目指针多一个时,队列为满。 NVMe协议中根据命令类型将队列分为了Admin队列和I/O队列,Admin队列用来缓存管理Admin命令,如获取SSD属性、创建I/O队列等。而I/O队列用来缓存管理I/O命令,如读、写、识别等。在一个系统中只能有一对Admin SQ/CQ,但可以存在多对IO SQ/CQ。Admin SQ/CQ仅用来进行Admin命令的交互,I/O SQ/CQ仅用来进行I/O命令的交互。对于多核系统来说,每个核内虽然只有1个I/O CQ,但是可以存在多个I/O SQ,如图2所示。 图2 NVME 多队列示意图 由于Host端可能存在多个流水线,多队列的设计可以让系统的性能最大化。同时,可以通过对不同的队列设置不同的优先级,来保证高优先级队列的命令更快完成。NVMe协议中规定Admin SQ/CQ的队列深度最大可以支持4096(4K),I/O SQ/CQ的队列深度最大可以支持65536(64K)。在一个实际设计中,SQ的个数和深度的设置可以根据项目需求和硬件资源进行配置。队列深度的设置主要和系统中队列消费者和生产者之间的速率有关。 # NVMe分层结构 NVMe协议栈结构分为应用层和传输层两个层次。在应用层中实现NVMe命令生成、队列管理和流程控制,而传输层则借助PCIe协议进行实现。PCIe协议分为三层,即事务层、数据链路层和物理层。事务层负责将数据传输请求和响应打包成事务进行传输,数据链路层则负责数据传输的可靠性和流控制,通过链路层控制器(Link Layer Controller, LLC)实现。物理层则负责物理传输,包括电信号的发射和接收、时序控制和线路管理等。其分层结构图如图3所示。首先,在应用层生成NVMe命令传输至事务层。其次,在事务层会对上层传输的数据添加首部和校验,封装成TLP(Transaction Level Packet)传输至数据链路层。然后,在数据链路层会对TLP添加序列号和校验,封装成DLLP。最后,在物理层对数据包进行编码和并转串处理后,通过SerDes(Serializer/Deserializer)将数据发送至PCIe链路中。 图3 NVMe 分层结构示意图 由于NVMe协议是基于PCIe协议实现的,下面通过在PCIe拓扑结构中介绍NVMe协议中的SQ、CQ和DB的位置,以及数据在Host和NVMe SSD之间的传输流程。NVMe SSD在PCIe拓扑结构中的位置如图4所示。 图4 PCIe拓扑结构图 PCIe的拓扑结构由三部分组成,根联合体(Root Complex, RC)、PCIe交换器(PCIe Switch)和端点(Endpoint, EP)。根联合体位于拓扑结构的根部,最靠近CPU。端点设备位于PCIe的端末。交换机位于根联合体和端点设备之间。PCIe使用串行链路连接,一个链路的两端只能有两个设备。因此PCIe需要通过PCIe Switch扩展PCIe链路后,才能连接多个EP设备。在NVMe存储结构中,NVMe SSD也作为PCIe的一个EP端挂载在RC上。 NVMe协议中的SQ和CQ位于Host内存中,主机在初始化时根据队列的个数和深度在主机内存开辟出相应的内存空间,来存放SQ、CQ命令。DB寄存器位于NVMe SSD中,且被映射到BAR(Base Address Register)空间中,Host可以通过访问BAR空间来更新DB寄存器的值。 当Host需要向NVMe SSD发送命令时,首先将命令存放在主机内存开辟的SQ区域中,其次通过访问BAR空间的DB寄存器来告诉NVMe SSD到主机端内存区域取走待执行的命令。待命令执行完成后,NVMe SSD向主机内存的CQ区域写入完成命令。 想进一步了解相关视频,请搜索B站用户:专注与守望 或者链接:https://space.bilibili.com/585132944/dynamic?spm_id_from=333.1365.list.card_title.click
  • 热度 4
    2025-6-18 11:49
    2435 次阅读|
    0 个评论
    在RoCE v2协议中,RoCE v2队列是数据传输的最底层控制机制,其由工作队列(WQ)和完成队列(CQ)共同组成。其中工作队列采用双向通道设计,包含用于存储即将发送数据的发送队列(SQ)和用于存储已接收到的数据的接收队列(RQ),二者共同组成了端到端的数据传输管道(Pipeline)每一个SQ与RQ绑定起来称为队列对(QP),每个队列对中包含有若干个工作队列元素(WQE)和一些其他元素如本地接收队列指针、本地发送队列指针、远程接收队列指针、远程发送队列指针等。同样的,每一个CQ中也存在着若干完成队列元素(CQE)。这两种元素共同作用,管理数据传输过程并确保数据传输的顺利进行。 前面提到的五种操作中,只有RECEIVE操作会被添加到接收队列。SEND/RECEIVE操作的完整流程,如图1所示,首先由应用程序创建一个工作请求(WR),并将其提交到相应的工作队列。接着,工作队列会随机生成一个工作队列元素(WQE),该元素包括数据发送缓冲区的起始地址、数据长度、操作类型等相关信息,用于后续的传输操作。在该WQE被网卡操作结束后,网卡将生成一个CQE并放入与工作队列(SQ)对应的完成队列中。对于接收端:接收端网卡同样生成一个WR,其中包含数据接收相关参数,在完整接收数据包之后,将数据放入指定内存位置,并生成一个CQE放入与工作队列(RQ)对应的完成队列中。 图1 SEND/RECEIVE操作流程图 而对于READ、WRITE、ATOMIC这三种单边操作,接收端并不感知这一数据传输过程,故而只消耗发送端QP中的WR,并不消耗接收端即远程主机QP中的WR(有立即数的RDMA Write(RDMA Write with immediate)操作不在此范围内)。 RoCE v2作为RoCE v2协议通信的重要机制,通常有五种队列工作状态,分别为:重置(RESET)状态、初始化(INIT)状态、接受就绪(Ready to Receive,RTR)状态、发送就绪(Ready to Send,RTS)状态及错误(ERROR)状态,其不同状态间的切换由RoCE v2队列状态机控制,RoCE v2队列状态机的状态转移图如图2所示 图2 RoCE v2队列状态转移图 RESET状态:当队列处于RESET状态时,表示该QP已经创建但尚未完成初始化,在此状态下,QP既不能接收也不能发送任何数据请求,待初始化完成后会转至INIT状态。 INIT状态:队列处于INIT状态时,表示该QP已完成初始化,能够接收和发送请求。然而,在此状态下,队列只能接收Connect请求或发送Accept请求。 RTR状态:队列对处于RTR状态标识该队列对已经准备好接收Send请求(即进行Receive操作)和Read请求。 RTS状态:队列对处于RTS状态标识该队列对已准备好接收及发送任何RDMA请求,包括READ、WRITE、SEND、RECEIVE等。 ERROR状态:队列对处于ERROE状态标识该队列对已经发生错误,不再被使用,也不再接收或发送任何请求。该状态的产生原因可能为发送队列用尽、接收队列用尽、缓冲区不可读写等。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video
  • 热度 1
    2025-6-17 08:23
    696 次阅读|
    0 个评论
    RoCE v2原语 在RoCE v2协议中,应用程序并不直接与网卡接口相关联,开发者使用RDMA原语进行应用程序的开发。RDMA原语分为单边(one-side)语义和双边(two-side)语义,其中,WRITE、READ、ATOMIC为单边语义,SEND、RECEIVE为双边语义,且双边语义往往成对出现。 单边语义指:当本地主机调用单边语义进行操作时,远程主机的CPU完全不会感知这一过程,只有本机的CPU参与数据处理和数据传输流程 。READ、WRITE、ATOMIC操作为单边语义。我们常说的RDMA都是指RDMA单边操作,它提供了最高的吞吐量和最低的数据延迟,同时显著降低CPU负载。在进行READ和WRITE操作之前,需要进行队列创建、队列连接、信息交换等步骤,这些步骤将在之后一一说明。 (1)RDMA READ操作将远端主机内存中的数据读取到本地。具体流程为:本地主机将需要请求数据的地址、长度及对应的远程访问密钥发送给远程主机,远程主机比对密钥通过后,则将数据返回给本地主机。 (2)RDMA WRITE操作将本机内存中的数据写入远程主机。具体流程为:本机将携带写入地址、数据长度、远程访问密钥信息和数据的网络包发送至远程主机,远程主机确认后将数据写入远程主机内存中。 (3)ATOMIC操作即原子操作。简单地讲,该操作以64bit为单位,完全以原子方式读取、修改或写入该地址,同时保证在读取/写入之间,同一通道的其他队列对不会对该地址进行操作。该操作通常在同一子网内的不同节点间进行,用来实现分布式应用中各节点工作的同步。 双边语义指:数据在传输的过程中本地主机及远程主机的CPU都参与工作。SEND、RECEIVE操作为双边语义。其中发送方使用SEND操作,而接收方使用RECEIVE操作。在SEND/RECEIVE操作中,使用SEND操作的一方仅需要发送缓冲区(SEND BUFFER)信息和长度信息即可发送数据包,而不指定接收方具体的接收内存地址;而接收方提供接收缓冲区(RECEIVE BUFFER)及缓冲区长度信息。SEND操作与RECEIVE操作往往成对存在,由于需要双方CPU参与,数据吞吐量较低,但是可以保证数据在传输过程中不会丢失,故双边语义通常用来进行信息交换或错误处理等操作。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video
  • 2025-6-16 17:51
    0 个评论
    随着数据中心对于网络带宽和延迟的要求日益增长,传统的TCP/IP网络已无法满足性能要求,RDMA网络则凭借其高带宽、低延时的特性脱颖而出。相较于传统TCP/IP协议,RDMA具有零拷贝、不需要CPU接入、消息基于事务等特点 。RDMA协议与传统TCP/IP协议在通信过程中的区别如图1所示。 图1TCP/IP协议与RDMA协议区别图 在图1中,左侧部分为传统TCP/IP协议的通信过程,当需要发送数据包时,应用程序将要传输的数据拷贝到TCP/IP协议栈的BUFFER中,TCP/IP协议栈组包后,再经由驱动程序下发到网卡内的BUFFER中。右侧部分则为RDMA协议的通信过程,其将RDMA协议部署在融合以太网卡(RNIC)上,在对数据包的组装和拆解过程中,不需要CPU及操作系统介入干预,也不需要进行内存拷贝操作。当发送数据包时,直接由应用程序通知网卡要发送的数据在内存中的起始地址及数据长度,而后RNIC则读取其已经在内存中注册好的区域数据并依照协议规范进行数据包的组装及传输。 相关视频感兴趣者,请搜B站用户名: 专注与守望 或链接: https://space.bilibili.com/585132944/upload/video
  • 2025-6-5 09:39
    0 个评论
    “硬件系统庞杂、调试周期长” “高频模拟前端不稳定,影响采样精度” “接收和发射链路难以同步,难以扩展更多通道” “数据流量大,处理与存储跟不上” 这些是大部分客户在构建多通道、高频宽的射频采样链路时,面临的主要问题。 AXRF49 正是为解决这些瓶颈而来——它依托于 AMD 第三代 Zynq UltraScale+ RFSoC ZU49DR,整合了: 16 通道 14 位高性能 ADC/DAC 高速可编程逻辑(FPGA) 四核 ARM A53 + 双核 ARM R5 处理器 高性能射频模拟前端(支持 sub-6GHz 直接采样) 让您从繁琐的硬件集成中解脱出来,专注于算法和系统创新。 通信原型开发:从分立器件走向单芯片平台 传统的 Massive MIMO 或小基站原型开发通常需要多个高速 ADC/DAC 模块、FPGA 板卡与嵌入式处理器组合而成,存在体积大、延时高、功耗高、接口调试复杂等问题,导致研发周期长、系统稳定性差。 AXRF49 通过内建的 16 路 14 位 DAC(最高 9.85GSPS)与 16 路 14 位 ADC(最高 2.5GSPS),实现了 sub-6GHz 频段内的直接射频采样与发射,彻底省去了中频变换链路。再加上其高达930K 逻辑单元、4272 DSP 单元的 FPGA 资源,可直接实现信道估计、波束赋形、DFFT、LDPC 解码等物理层加速逻辑。 光纤接口支持2×100G QSFP28,配合 5GB PL DDR4 带宽缓存与 M.2 NVMe,本地与远端处理无缝衔接,打造低延时、高并发的无线接入测试平台,适合5G NR和未来的 6G 空口研究。 相控阵雷达 同步、多通道、高速处理能力合一 雷达波束控制与干扰信号合成通常对 多通道同步、采样精度、低相位噪声、高带宽处理 能力 要求极高。而传统以多卡片堆叠方式构建阵列系统,不仅接口繁杂,同步性差,且系统集成工作量巨大。 通过 RFSoC ZU49DR 的 RF-ADC/DAC 模块,AXRF49 可同步采集/发射 16 路射频信号 ,为相控阵波束形成提供硬件基础。利用其 可编程插值/抽取(1x~40x)功能 ,在保证高采样率的同时实现频域调制、抗混叠处理,满足雷达对不同信号体制的适配需求。 结合 FPGA 逻辑资源,可实现 LFM信号调制、脉压、MTI/MTD 处理 等关键算法,借助高速光口与外部后端进行实时数据记录或识别。相比传统方案,AXRF49 将“模拟前端+数字处理+系统控制”三者融合于单板,有效缩短系统搭建周期,并降低干扰路径复杂度。 医疗/工业检测新模式 高速数据采集与边缘AI融合处理 在高端超声、光学成像、射线检测等场景中,既需要高采样精度和实时性,又希望将更多智能前处理下沉至边缘端。 AXRF49 通过 RFSoC 将高速模拟采集链路(ADC)与 AI 运算能力有机结合,16 路 14 位 ADC 可覆盖 多探头传感器阵列 ,用户可基于强大的 FPGA 资源,灵活部署 降噪、滤波、特征提取、智能压缩 等算法,在 ARM Cortex-A53 与 R5 核心上进行深度模型推理或控制逻辑处理。 数据可通过 NVMe SSD 或 USB3.0 实时落盘,或经高速光纤/以太网上传至边缘服务器,满足工业质检与远程医疗对实时性与数据完整性的双重需求。AXRF49 支持在本地 FPGA 内部署 预处理逻辑 ,真正实现 “边采集、边处理” 的架构升级,顺应“采集即智能”的行业趋势。 从多通道射频采集到边缘智能预处理,再到高速数据外联,AXRF49 让原型验证不再受制于平台碎片化。它能帮助您缩短研发路径,助力您的方案更快落地、更稳健走向工程化。 ALINX 提供完整的用户开发手册和工具链与全备的技术支持,帮助您缩短从原型到量产的周期。欢迎您花 1 分钟扫码填写“客户信息登记表”,告诉我们您的需求。
相关资源
  • 所需E币: 5
    时间: 2025-5-23 13:08
    大小: 4.53MB
    上传者: htwdb
    本文基于近红外光谱分析技术,研制了高速、高精度的数据采集系统,同时基于项目组自主研发的近红外光谱仪,设计和开发了多功能、高性能的近红外微型光谱仪并实现了近红外光谱检测,论文的主要研究内容和成果综述如下:1.介绍了本课题的研究背景,分析了近红外光谱仪研究的意义,并在此基础上阐述了近年国内外微型光谱仪的类型以及发展现状。2.介绍了光谱仪及近红外光谱分析技术的基本原理,近红外光谱分析技术的具体步骤及其优势。3.搭建了探测系统的整体框架,通过采用FPGA+ARM的硬件架构,实现了数据协同处理一体化的集成设计理念。基于近红外微型光谱仪的应用与元器件价格的考量,选用了高云GW1N系列FPGA芯片,滨松公司C14384MA的CMOS光电探测器件,亚德诺公司LTC2368CMS的AD转换器件以及意法半导体STM32系列微处理器。逐步完成了C14384MA的驱动电路设计,并根据CMOS器件输出信号分析设计了LTC2368CMS驱动电路、设计了FPGA配置电路、FPGA时钟电路、微处理器的最小电路系统及其外部设备电路设计和FPGA系统的电源电路设计。4.基于GOWIN软件对FPGA进行开发设计,包括:驱动模块、模拟前端接口模块、数据存储和处理模块以及控制模块。利用Verilog语言编写源文件设计驱动脉冲时序,ModelSim(QuestaSim)等软件进行仿真,最后通过Synplifypro软件生成资源报告。5.将FPGA配置文件下载到FPGA芯片中进行板级验证,通过对大豆光谱的检测验证了光谱仪系统的功能性,实现了光谱仪的微型化。
  • 所需E币: 5
    时间: 2025-5-23 10:26
    大小: 2.07MB
    上传者: htwdb
    本文详细介绍了基于FPGA的两相式混合步进电机细分驱动器的设计和实现。具体的设计工作主要包括:1)细分驱动器的硬件系统设计;本设计选用Altera的EP2C8Q208C8N作为驱动控制系统的控制处理器,TI的DRV8432作为步进电机的功率放大器、AnalogDevices的AD7874作为系统的A/D采样转换器、精密的仪表运算放大器对采样电阻的电压信号进行放大并辅以其它辅助电路完成了方案的硬件实现。2)增量式PID调节算法的研究与实现;本文对增量式PID控制算法进行研究,并使用VHDL硬件描述语言对其进行了设计实现;并在调试过程中,根据细分驱动器系统的特性,对PID调节算法的参数进行了调整。3)人机交互模块的设计;本文在FPGA上实现串口通信模块,使得使用者可以通过计算机能够为外部系统设置细分驱动器的参数,获取驱动器的运行状态。4)完成了对步进电机的细分控制系统控制软件设计,并采用VHDL语言进行了实现。
  • 所需E币: 5
    时间: 2025-5-23 10:40
    大小: 3.3MB
    上传者: htwdb
    本文设计并实现了AES-RSA混合加解密算法,并结合ZYNQ-7000系列FPGA芯片设计了相关验证系统对混合加解密模块进行功能仿真和验证。首先,选取DES、AES、RSA三种不同类型的加解密算法,分别用C语言实现其加解密功能,再用Verilog语言重现AES、RSA两种算法的加解密模块,将设计完成的两个加解密模块导入Vivado仿真软件中,进行模块功能的仿真测试。基于已经设计并实现的AES、RSA加解密模块,编写AES-RSA顶层模块,通过定义控制信号和数据信号的传输将两个模块组合,设计出AES-RSA混合加解密模块。
  • 所需E币: 5
    时间: 2025-1-8 22:24
    大小: 48.15KB
    上传者: 木头1233
    基于FPGA的等精度频率计设计论文基于FPGA的等精度频率计设计论文
  • 所需E币: 5
    时间: 2025-1-9 09:46
    大小: 262.5KB
    上传者: 木头1233
    基于FPGA数字频率计毕业论文基于FPGA数字频率计毕业论文
  • 所需E币: 5
    时间: 2025-1-8 22:25
    大小: 3.78MB
    上传者: 木头1233
    基于FPGA的数字频率计的设计资料基于FPGA的数字频率计的设计资料
  • 所需E币: 5
    时间: 2025-1-9 09:47
    大小: 155.09KB
    上传者: 木头1233
    基于FPGA数字频率计的设计论文基于FPGA数字频率计的设计论文
  • 所需E币: 0
    时间: 2024-8-13 09:00
    大小: 1.96MB
    上传者: 乖乖兔爸爸
    真传一句话,假传万卷书;FPGA_入门,还要看FPGA_老鸟写的材料;
  • 所需E币: 0
    时间: 2024-6-20 15:01
    大小: 21.02MB
    FPGA新手适用的开发例程教程,很实用
  • 所需E币: 5
    时间: 2024-3-1 11:21
    大小: 3.8MB
    上传者: htwdb
    本文系统主要由三部分组成:数据采集、FPGA+ARM控制、上位机软件。数据采集部分包括电压电流信号调理电路、AD7606模数转换电路。数据处理模块基于ARM+FPGA双核心架构,通过FPGA控制,达到对电网三相电压、电流信号的同步采样,完成三相锁相环算法对频率进行同步跟踪,对电流信号的谐波分析采用深度为256的快速傅立叶变换,FPGA与ARM之间利用FSMC进行通信。在STM32上移植嵌入式实时操作系统FreeRTOS来进行任务调度,管理各种外设并进行数据计算和处理,通过串口通信将电能质量各项参数传输至数据分析软件。上位机软件是用C#语言在MicrosoftVisualStudio2013上完成,实现了电能质量指标和波形的显示。  最后使用信号发生器进行系统测试,利用代表性输入信号,测试系统的测量精度。测试结果表明本系统达到了电能质量分析的基本要求,具有应用价值。
  • 所需E币: 0
    时间: 2024-2-21 13:56
    大小: 2.58MB
    附开发指南+电路图集+例程源码
  • 所需E币: 0
    时间: 2023-12-14 10:27
    大小: 2.72MB
    上传者: xines广州星嵌
    OMAPL138+FPGA工业开发板TIARM9+C674xDSP中科亿海微国产FPGAEQ6HL45LL-2CSG324G,基于OMAPL138+国产FPGA的DSP+ARM+FPGA三核评估套件。
  • 所需E币: 0
    时间: 2023-10-11 13:13
    大小: 7.27MB
    上传者: zhusx123
    高云FPGA资料
  • 所需E币: 0
    时间: 2023-7-19 16:55
    大小: 10.33MB
    上传者: zhusx123
    fpga开发语言——verilog语言详细教程
  • 所需E币: 1
    时间: 2023-7-12 09:12
    大小: 951.99KB
    上传者: 张红川
    明德扬点拨FPGA课程学习指导.pdf
  • 所需E币: 1
    时间: 2023-7-12 09:11
    大小: 12.47MB
    上传者: 张红川
    FPGA至芯X教程v3.pdf
  • 所需E币: 2
    时间: 2023-6-21 15:47
    大小: 158.63MB
    上传者: 韩阔海
    深入浅出玩转FPGA第三版
  • 所需E币: 1
    时间: 2023-6-20 13:16
    大小: 150.58KB
    上传者: 张红川
    13下载FPGA引脚定义.docx
  • 所需E币: 2
    时间: 2023-6-16 11:05
    大小: 9.89MB
    上传者: Argent
    专为Zynq-7000系列FPGA设计的20W电源电路设计
  • 所需E币: 5
    时间: 2023-6-8 14:15
    大小: 16.87MB
    上传者: 二月半
    这本书给你实践的经验,是最佳的实用设计方法学