AXI总线之DDR控制器的实现

2023-11-15

由于FPGA的内部RAM资源实在有限,同时又不得不面临大数据量缓存的问题,因此,将DDR进行共享成了最为直接有效的解决方案。

设计目标:

PL端有多个需要大量数据缓存的通道,让每个通道都将DDR作为外部缓存(FIFO)。注意,总的突发在1Gbps左右。

设计过程:

这是一个典型的PL端的DDR控制器实现,采用M-AXI总线,因为瞬间数据率可能在1Gbps左右,因此数据位宽设计成(64/32)位,突发传输长度(16~256)。

总体结构图:

to ddr----->[FIFO:ddr]---->from ddr

to ddr----->[FIFO:ddr]---->from ddr
实现结构图:

--->infifo--->|waddr,raddr,usednum,data|                  [ddr]                        |---outfifo--->

                                                              |----[mux]---[m-axi4]---[demux]---|

--->infifo--->|waddr,raddr,usednum,data|                                                  |---outfifo--->

其中,m-axi4与ddr进行数据交换。

后记:

画图工具不熟练,先做示意图。代码较多,整理好了会上传。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AXI总线之DDR控制器的实现 的相关文章

  • 深入 AXI4 总线(一)握手机制

    VALID READY 握手机制 AXI 总线共有 5 个独立的通道 分别为写地址 写数据 写回应 读地址 读数据通道 5 条通道相互独立 有一些细小的差别 但共同使用一套握手机制 VALID READY 机制 VALID READY 机制
  • 几种linux内核文件的区别(vmlinux、zImage、bzImage、uImage、vmlinuz、initrd )

    对于Linux内核 编译可以生成不同格式的映像文件 例如 make zImage make uImage zImage是ARM Linux常用的一种压缩映像文件 uImage是U boot专用的映像文件 它是在zImage之前加上一个长度为
  • 深入 AXI4 总线(二)架构

    五个独立通道 AXI4 总线的一大特征是它有 5 个独立的传输通道 这些通道都只支持单向传输 作为类比 SPI 总线有 2 条传输通道 MISO MOSI SPI 输入输出的数据 大路朝天 各走一条 而作为对比 IIC 协议则只有 SDA
  • DDR工作原理

    DDR SDRAM全称为Double Data Rate SDRAM 中文名为 双倍数据流SDRAM DDR SDRAM在原有的SDRAM的基础上改进而来 也正因为如此 DDR能够凭借着转产成本优势来打败昔日的对手RDRAM 成为当今的主流
  • VIVADO软件错误及解决办法汇总

    在VIVADO软件编写程序时会遇到很多类型的错误 写个博客记录下来防止再犯 短期可能只有几个问题 会长期保持更新 遇到问题就记录 2022 4 09 问题1 The debug port u ila 0 probe4 has 1 uncon
  • Verilog入门精简教程

    Verilog入门 1 关键字 1 1 module module endmodule 代表一个模块 我们的代码写在这个两个关键字中间 1 2 input output input关键词 模块的输入信号 比如input Clk Clk是外面
  • Xilinx FIFO Generator 需要注意RST复位

    Xilinx FIFO Generator 需要注意RST复位 系列文章推荐 Xilinx FIFO Generator 需要注意RST复位 Xilinx FIFO Generator 需要注意Actual Depth Xilinx FIF
  • Arria 10上进行DDR3管脚分配

    本文介绍下DDR3的管脚分配 其它系列的DDR管脚分配也基本一样的 FPGA型号 10AX027H4F34I3SG DDR3型号 MT41J128M16JT 125 QuartusI Prime18 0 首先介绍下A10器件能支持的DDR系
  • DDR SDRAM的内部结构Cell Structure(预充电+刷新)

    文章目录 读过程 包含预充电步骤 写过程 写0 写1 DDR为什么要刷新 以上图Cell0为例子 读过程 包含预充电步骤 首先关闭所有字线 W0 W1 Wn 让所有FET均不导通 然后将位线B0通过预充电开关Precharge 图中未画出
  • HLS图像处理系列——在ZEDBoard搭建DDR图像处理通路

    ZYNQ芯片内包含一个丰富特性的基于双核ARM Cortex A9的处理子系统 Processing System PS 和Xilinx 28nm可编程逻辑 Programmable Logic PL PS除了核心外还包括片上存储器 外部存
  • 从零开始zynq linux AXI DMA传输

    本文从0开始叙述过程 使用的工具为vivado2016 4 sdk也是2016 4 准备工作 首先下载如下的目标文件 1 下载xilinx官方的bootloader文件 git clone https github com Xilinx u
  • AWS SQS FIFO - 如何一次获取超过 10 条消息?

    目前我们想要拉下一个整个 FIFO 队列 并处理内容 如果有任何问题 将消息释放回队列中 问题是 目前 AWS 只给我们 10 条消息 并且不会再给我们 10 条消息 这是在 SQS 中获取批量消息的方式 多个 10 条最大消息请求 直到我
  • 无法写入通过 NFS 连接的 FIFO 文件

    我正在尝试写入位于 NFS 安装上的 FIFO 文件 但它会阻塞 可能是什么问题呢 我的 etc export tmp test 10 0 0 0 24 rw no root squash async NFS 服务器和客户端上的 ls tm
  • OSError: [Errno 11] 资源暂时不可用。这是什么原因造成的?

    背景 我有两个 python 进程需要相互通信 通信由名为 Pipe 的类处理 我为此创建了一个单独的类 因为大多数需要通信的信息都以字典的形式出现 因此 Pipe 实现了一个非常简单的协议来执行此操作 这是管道构造函数 def init
  • DDR详解

    DDR也就是常称的内存在一般使用过程中都是透明的 此文从多方面对DDR进行详解 DDR训练 高可靠性是系统级芯片SoC重要的质量和性能要求之一 SoC的复杂在于各个IP模块都对其产生至关重要的影响 从芯耀辉长期服务客户的经验来看 在客户的S
  • 在 NodeJS 中可靠地读取 FIFO

    我正在编写一个与第三方应用程序交互的 NodeJS 脚本 第三方应用程序将在文件打开期间将数据写入文件 我希望我的 NodeJS 应用程序能够实时接收这些数据 我的脚本创建一个 fifo child process spawnSync mk
  • 堆栈空异常

    我收到堆栈空异常 如果堆栈不为空 有 16 个项目 这怎么可能 我得到了错误的快照 有人可以解释一下吗 You must使用类似的东西时同步访问Stack
  • 让 readline 在 FIFO 上阻塞

    我创建一个 fifo mkfifo tofetch 我运行这个Python代码 fetchlistfile file tofetch r while 1 nextfetch fetchlistfile readline print next
  • 在C中读/写结构到fifo

    我正在尝试使用命名管道在进程之间传递结构 我在尝试打开管道非阻塞模式时陷入困境 这是我写入 fifo 的代码 void writeUpdate Create fifo for writing updates strcpy fifo writ
  • 在内核 OpenCL 中实现 FIFO 的最佳方法

    目标 在 OpenCL 中实现下图所示 OpenCl 内核所需的主要内容是将系数数组和临时数组相乘 然后最后将所有这些值累加为 1 这可能是最耗时的操作 并行性在这里非常有帮助 我正在为内核使用一个辅助函数来执行乘法和加法 我希望这个函数也

随机推荐

  • 大数据时代移动边缘计算架构中的差分隐私保护(二)

    大数据时代移动边缘计算架构中的差分隐私保护 二 实际上 给数据加拉普拉斯噪声或者是指数噪声是针对中心式的差分隐私处理框架的 对于本地化的差分隐私处理框架 现在已有的是采用随即相应技术 Bloom Filter等技术满足 本地化差分隐私 LD
  • 【iOS】—— SDWebImage源码学习

    SDWebImage源码 文章目录 SDWebImage源码 1 UIKit层 sd internalSetImageWithURL 1 取消之前下载操作 2 设置占位图 3 判断URL是否合法 2 工具层 SDWebImageManage
  • 毕业设计 - 基于单片机的智能水箱

    文章目录 1 简介 2 概述 2 1 系统描述 2 2 系统目标 3 具体实现 3 1 系统组成架构 3 2 系统功能 3 3 系统特点 3 4 水位检测及自动供水实现 3 5 水箱盖监控实现 3 6 信息实时传输实现 3 7 安卓客户端实
  • 【PIC单片机】2.编译器下载

    XC8 XC16和XC32对应8位 16位和32位PIC单片机 按实际使用的单片机选择下载最新版本即可 官网链接 https www microchip com en us development tools tools and softw
  • 目录:四种Qt程序的架构设计方法

    四种常见的关于Qt程序的架构设计方法 使用MVC设计模式MVC是Model View Controller的缩写 是应用程序开发中常用的设计模式 在Qt中 可以使用QAbstractItemModel和QTreeView等类来实现MVC模式
  • 如何设置、查询 ESP32 设备的 MAC 地址

    设置 查询 ESP32 设备的 MAC 地址有多种方式 如下 1 使用 AT 指令来设置 查询 ESP32 设备的 MAC 地址 1 1 使用 AT 指令设置 查询 Wi Fi Station 模式的 MAC 地址 使用 AT CIPSTA
  • 【数据库设计】无损连接的判别方法

    数据库设计 无损连接的判别方法 无损连接是指分解后的关系通过自然连接可以恢复成原来的关系 即通过自然连接得到的关系与原来的关系相比 既不多出信息 又不丢失信息 保持函数依赖分解是指在模式的分解过程中 函数依赖不能丢失的特性 即模式分解不能破
  • 数据库视图的基本操作(sql语句)

    表视图的增删改查 sql语句 概念 视图是一张虚拟表 它是从数据库的一张或多张表中导出的表 其内容由查询语句定义 作用 简单性 安全性 逻辑数据独立性 如果应用建立在视图上 当表发生变化时 可以修改视图屏蔽表的变化 使应用程序保持不变 如果
  • Python前台搜索-之百度网站搜索

    简述 selenium是谷歌公司的一个项目 这句代码的含义 从谷歌公司的一个项目导入 import 浏览器驱动webdriver 浏览器驱动是用代码来操作浏览器的 简述 调用webdriver Chrome 打开浏览器 简述 通过get方法
  • 多行文字 溢出隐藏 三个点 兼容 IE8+ 及常用浏览器

    常用浏览器css简单实现 text overflow ellipsis overflow hidden display webkit box webkit box orient vertical webkit line clamp 3 IE
  • Mac 使用rz sz 命令

    1 首先安装brew与lrzsz 参考 https blog csdn net weixin 35757704 article details 108880008 然后在控制台 brew install lrzsz 2 安装iterm2 自
  • SQL注入种类

    SQL注入攻击的种类 知彼知己 方可取胜 首先要清楚SQL注入攻击有哪些种类 工具 原料 云盾 方法 步骤 1 1 没有正确过滤转义字符 在用户的输入没有为转义字符过滤时 就会发生这种形式的注入式攻击 它会被传递给一个SQL语句 这样就会导
  • Java跳转语句(break,continue,return)

  • const char*和char *const

    1 const char const在指针前 修饰常量 指向常量的指针 指针指向可以改 指针指向的值不可以改 char ch 5 list const char pStr ch pStr w error pStr hi 提示 虽然不能用pS
  • 步进电机基础(5.1)-步进电机的驱动与控制-恒压驱动、恒流驱动

    步进电机基础 5 1 步进电机的驱动与控制 恒压驱动 前言 基本信息 前言说明 步进电机的驱动与控制 5 1 恒电压驱动 1 使用外加电阻的驱动 2 无外加电阻的驱动 3 电压驱动 5 2 恒电流驱动 前言 基本信息 名称 描述说明 教材名
  • 图像质量评估——论文精读系列

    Madhusudana P C Birkbeck N Wang Y et al Image quality assessment using contrastive learning J IEEE Transactions on Image
  • Java线程:线程状态的转换

    本文转载至 http lavasoft blog 51cto com 62575 99153 一 线程状态类型 1 新建状态 New 新创建了一个线程对象 2 就绪状态 Runnable 线程对象创建后 其他线程调用了该对象的start 方
  • Java等调用python深度学习训练的模型(待完成)

    1 参考博客园 java web应用调用python深度学习训练的模型 2 参考CSDN Java调用Python的训练模型 3 参考博客园 使用java调用python训练出的pmml模型 4 参考简书 java调用python方法 5
  • sum 加 Group By 的使用

    1 A 表 有server id 为1的两条数据 2 B表有server id 为1的数据也有两条 原本Sql是这样 乍一看没啥问题 但是group by 没生效 SELECT a server id sum b score as scor
  • AXI总线之DDR控制器的实现

    由于FPGA的内部RAM资源实在有限 同时又不得不面临大数据量缓存的问题 因此 将DDR进行共享成了最为直接有效的解决方案 设计目标 PL端有多个需要大量数据缓存的通道 让每个通道都将DDR作为外部缓存 FIFO 注意 总的突发在1Gbps