【【水 MicroBlaze 最后的介绍和使用】】

水 MicroBlaze 最后的介绍和使用

我对MicroBlaze 已经有了一个普遍的理解 了
现在我将看的两个 一个是 AXI4接口的 DDR读写实验 还有一个是 AXI DMA 环路实验
虽然是 水文 但是 也许能从中 得到一些收获

第一个是 AXI DDR 读写实验

Xilinx 从 Spartan-6 和 Virtex-6 系列开始使用 AXI 协议来连接 IP 核。在 7 系列器件中,Xilinx 在 IP 核中继续使用 AXI 协议。
AXI 协议就是
描述了主设备和从设备之间的数据传输方式,在该协议中,主设备和从设备之间通过握手信号建立连接。
AXI 协议是一种高性能、高带宽、低延迟的片内总线,具有如下特点:
1、总线的地址/控制和数据通道是分离的;
2、支持不对齐的数据传输;

3、支持突发传输,突发传输过程中只需要首地址;
4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。
在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息,这一组信号就组
成了接口。AXI4 协议支持以下三种类型的接口:
1、 AXI4:高性能存储映射接口。
2、 AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、 AXI4-Stream:用于高速数据流传输,非存储映射接口。

4、具有分离的读/写数据通道;
5、支持显著传输访问和乱序访问;
6、更加容易进行时序收敛。
在数字电路中只能传输二进制数 0 和 1,因此可能需要一组信号才能高效地传输信息,这一组信号就组
成了接口。AXI4 协议支持以下三种类型的接口:
1、 AXI4:高性能存储映射接口。
2、 AXI4-Lite:简化版的 AXI4 接口,用于较少数据量的存储映射通信。
3、 AXI4-Stream:用于高速数据流传输,非存储映射接口。
在这里我们首先解释一下存储映射(Meamory Map)这一概念。如果一个协议是存储映射的,那么主
机所发出的会话(无论读或写)就会标明一个地址。这个地址对应于系统存储空间中的一个地址,表明是
针对该存储空间的读写操作。
AXI4 协议支持突发传输,主要用于处理器访问存储器等需要指定地址的高速数据传输场景。AXI-Lite
为外设提供单个数据传输,主要用于访问一些低速外设中的寄存器。而 AXI-Stream 接口则像 FIFO 一样,
数据传输时不需要地址,在主从设备之间直接连续读写数据,主要用于如视频、高速 AD、PCIe、DMA 接
口等需要高速数据传输的场合。

实验任务 :
是通过自定义一个 AXI4 接口的 IP 核,通过 AXI 接口对 DDR3 进行读写测试。
下面是 本次设计的系统框图
在这里插入图片描述

在上图中,DDR3_TEST 是我们自定义的 IP 核,具有 AXI4 Master 端口,该端口通过 AXI Interconnect模块,最终连接 MIG IP 核。AXI UART IP 核打印从 DDR3 中读出的数据。DDR3_TEST IP 核在检测到按键按下后会启动读写过程,并将读出的数据与写入的数据作比较,比较完成后点亮 LED1。另外,如果在读写过程中出错,或者在比较的过程中发现读出的数据与写入的数据不一致,LED2 会点亮。

看上去这是 一个相对来说 比之前做过的都要大而复杂的设计
我们需要先自定义一个 带有 AXI4 接口的IP核

自定义IP 我们按照使用手册的要求 配置成了现在这样子
在这里插入图片描述

因为我们在创建的时候 选择了AXI接口 所以其实并不需要我们的其他操作 vivado IP工具就已经帮助我们实现了一个对 AXI 读写的
所以并不需要对这个代码有任何修改

因为以前的 Micro Blaze 的搭建是没有 DDR的系统结构 本次设计 我们将学习带有 DDR的 MicroBlaze 的搭建
在这里插入图片描述

我们修改 Micro Blaze 的第三页 cache的 内容
在这里插入图片描述

这里的数据 必须与 IP INITRATOR->Adress Editor->microblaze_0->的 mig_7series_0

下面是 AXI DMA 环路实验

DMA 是所有现代计算机的重要特色,它允许不同速度的硬件设备进行沟通,而不需要依于中央处理器
的大量中断负载。否则,中央处理器需要从来源把每一片段的数据复制到寄存器,然后把它们再次写回到
新的地方。在这个时间里,中央处理器就无法执行其它的任务。
DMA 是用硬件实现存储器与存储器之间或存储器与 I/O 设备之间直接进行高速数据传输。使用
DMA 时,处理器向 DMA 控制器发出一个存储传输请求,这样,DMA 控制器在传输数据时,处理器可
以执行其它操作,传输操作完成后 DMA 以中断的方式通知处理器。
为了发起传输事务,DMA 控制器必须得到以下数据:
⚫ 源地址 — 数据被读出的地址
⚫ 目的地址 — 数据被写入的地址
⚫ 传输长度 — 应被传输的字节数
在这里插入图片描述

DMA 存储传输的过程如下:

  1. 为了配置用 DMA 传输数据到存储器,处理器发出一条 DMA 命令。
  2. DMA 控制器把数据从外设传输到存储器或从存储器到存储器,而不占用 CPU 来传输数据。
  3. 数据传输完成后,向 CPU 发出一个中断来通知它 DMA 传输可以关闭了。

实验任务是
是使用 AXI DMA IP 核从 DDR3 中读取数据,并将数据写回到 DDR3 中。
下面展示 Micro Blaze 的 系统框图
在这里插入图片描述

这是 AXI DMA环路测试系统的框架图
我们会发现这其中 使用了一个我们上一个实验用过的MIG IP核
我们现在去 《正点原子的达芬奇 FPGA专栏了解 MIG的工作原理》

此处来自 正点原子 达芬奇 FPGA教学的 第44章节

DDR3 SDRAM(Double-Data-Rate Three Synchronous Dynamic Random Access Memory)是 DDR SDRAM 的第三代产品,相较于 DDR2,DDR3 有更高的运行性能与更低的电压。DDR SDRAM 是在SDRAM 技术的基础上发展改进而来的,同 SDRAM 相比,DDR SDRAM 的最大特点是双沿触发,即在时钟的上升沿和下降沿都能进行数据采集和发送,同样的工作时钟,DDR SDRAM 的读写速度可以比传统的SDRAM 快一倍。本次实验使用的 DDR3 芯片是南亚的 NT5CC128M16IP-DI,NT5CC128M16IP-DI 的 bank位宽为 3,行位宽为 14,列位宽为 10,所以它的地址大小等于 23*2142^10(即 2^27=128M),数据位宽为 16bit,所以容量大小为 128M16bit,也就是 256MByte。

由于 DDR3 的时序非常复杂,如果直接编写 DDR3 的控制器代码,那么工作量是非常大的,且性能难以得到保证。值得一提的是,Artix7 系列 FPGA 自带了 DDR3 控制器的硬核,用户可以直接借助 IP 核来实现对 DDR3 的读写操作,从而大大降低了 DDR3 的开发难度。所以我们一般来说,是使用 MIG 这样的IP控制器 来对DDR3 进行赋值操作
我们观察一下 MIG的结构框图
在这里插入图片描述

MIG IP核 对外分出了两组接口。左侧是用户接口(用户端 FPGA 同 MIG交互的接口)
右侧为 DDR 物理芯片接口,负责产生具体的操作时序,并直接操作芯片管脚。这一侧用户只负责分配正确的管脚,其他不用关心。
使用这个 IP 核,用户将可以进行 DDR3 的读写操作而不必熟悉 DDR3 具体的读写控制时序,当然用户必须掌握用户接口侧的操作时序,并严格遵照时序来编写代码,这样才能正确实现对 DDR3 的读写操作。在了解具体时序之前,大家有必要先了解相关的信号定义。下图给出了 MIG IP 核用户接口的信号及其说明
MIG IP 核用户侧端口数量共 26 个,当然用户并不用去关心所有的信号,只需要了解本实验要用到几组重要信号。下面将对这些信号逐一讲解并以表格的形式呈现给大家。为了与官方的文档保持一致,表中标明的信号的方向是以 MIG IP 核作为参照的,例如表格中的信号方向定义为输出,那么相对于用户端(FPGA)来说实际上是输入。
在这里插入图片描述

以上是用户需要用到的信号,其他信号请大家自行了解。DDR3 的读或者写都包含写命令操作,其中写操作命令(app_cmd)的值等于 0,读操作 app_cmd 的值等于 1。首先来看写命令时序,如下图所示。首先检查 app_rdy,为高则表明此时 IP 核命令接收处于准备好状态,可以接收用户命令,在当前时钟拉高app_en,同时发送命令(app_cmd)和地址(app_addr),此时命令和地址被写入。

大概get 到了 我们现在回到 Micro Blaze 的章节
我们继续研究下整个结构
在这里插入图片描述

MicroBlaze处理器通过互连模块与AXI DMA IP核通信,从而实现设置、启动和监控数据传输。AXI DMA IP 核通过互连模块从 DDR3 中读取数据后发送给 AXI4 Stream Data FIFO,在这种情况下 AXI4 Stream Data FIFO 模块可以充当带有 Stream 接口的高速 DA。AXI DMA IP 核读取 AXI4 Stream Data FIFO 模块中的数据后通过互连模块将数据写入 DDR3,在这种情况下 AXI4 Stream Data FIFO 模块充当带有 Stream 接口的高速AD。

我们要有举一反三的精神 比照一下之前的 DMA 环路实验
在这里插入图片描述

接下来 我们回到现在的 Micro Blaze 的搭建 我们回到vivado
在这里插入图片描述

第二页 基本上是 一些优化的选项 我们无需变动 这里第 三页是配置 cache 的 选项
在这里插入图片描述

这里是对cache的配置
Debug 保持不变
接下来 我们来看 Buses 的 配置
在这里插入图片描述

这样子 我们先生成 block design

在这里插入图片描述

下面是 我们多个模块的作用
在这里插入图片描述

下面 我们 进行一系列优化之后的 Block Design
在这里插入图片描述

下面我来讲述一下 MIG 的配置原理 及 使用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

下面是对Controller Options

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/213125.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SSM框架(六):SpringBoot技术及整合SSM

文章目录 一、概述1.1 简介1.2 起步依赖1.3 入门案例1.4 快速启动 二、基础配置2.1 三种配置文件方式2.2 yaml文件格式2.3 yaml读取数据方式(3种) 三、多环境开发3.1 yml文件-多环境开发3.2 properties文件-多环境开发3.3 多环境命令行启动参数设置3.4 多…

【数值计算方法(黄明游)】函数插值与曲线拟合(一):Lagrange插值【理论到程序】

​ 文章目录 一、近似表达方式1. 插值(Interpolation)2. 拟合(Fitting)3. 投影(Projection) 二、Lagrange插值1. 天书1. 人话拉格朗日插值方法a. 线性插值(n1)基本思想线性插值与线…

解决uview中uni-popup弹出层不能设置高度问题

开发场景:点击条件筛选按钮,在弹出的popup框中让用户选择条件进行筛选 但是在iphone12/13pro展示是正常,但是切换至其他手机型号就填充满了整个屏幕,需要给这个弹窗设置一个固定的高度 iphone12/13pro与其他型号手机对比 一开始…

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于海洋捕食者算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.海洋捕食者算法4.实验参数设定5.算法结果…

工业机器视觉megauging(向光有光)使用说明书(四,轻量级的visionpro)

第三个相机的添加,突然发现需要补充一下: 第一步,假定你对c#编程懂一点,我们添加了一个页面“相机三”在tabcontrol1: 第二步,添加dll到工具箱: 第三步,点击‘浏览’,找…

Web前端JS如何获取 Video/Audio 视音频声道(左右声道|多声道)、视音频轨道、音频流数据

写在前面: 根据Web项目开发需求,需要在H5页面中,通过点击视频列表页中的任意视频进入视频详情页,然后根据视频的链接地址,主要是 .mp4 文件格式,在进行播放时实时的显示该视频的音频轨道情况,并…

Fiddler抓包工具之Fiddler+willow插件应用

安装Fiddler的安装包地址:fillderwillow 解压后安装fiddler4和willow1.4.*版本。 安装成功后,启动fiddler后会出现willow插件按钮: 说明安装成功。 重定向 willow重定向 进入willow界面后,通过右键->Add Project ->Add Ru…

canvas基础:fillStyle 和strokeStyle示例

canvas实例应用100 专栏提供canvas的基础知识,高级动画,相关应用扩展等信息。 canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重要的帮助。 文章目录 上色…

Spring Task 超详解版

目录 一、定时任务的理解 二、入门案例 三、Cron表达式 四、Cron实战案例 五、多线程案例 一、定时任务的理解 定时任务即系统在特定时间执行一段代码,它的场景应用非常广泛: 购买游戏的月卡会员后,系统每天给会员发放游戏资源。管理系…

基于姿态估计的3D动画生成

在本文中,我们将尝试通过跟踪 2D 视频中的动作来渲染人物的 3D 动画。 在 3D 图形中制作人物动画需要大量的运动跟踪器来跟踪人物的动作,并且还需要时间手动制作每个肢体的动画。 我们的目标是提供一种节省时间的方法来完成同样的任务。 我们对这个问题…

EasyMetagenome易宏基因组——简单易用的宏基因组分析流程-来自刘永鑫团队的秘密武器

原仓库地址如下,github有时候无法访问,等一段时间再试就行: YongxinLiu/EasyMetagenome: Easy Metagenome Pipeline (github.com) 相关文章,看文章更清晰这个可干啥: EasyAmplicon: An easy‐to‐use, open‐source…

JAVA高级-1

常用API 第一章 API 产品说明书 第二章 Scanner类(输入) 功能:获取键盘输入 package day7_12.demo01_Scanner;import java.util.Scanner; //1、导包 /* 功能:获取键盘输入引用类型一般使用步骤1、导包:impo…

深入了解汉字转拼音转换工具:原理与应用

一、引言 汉字作为世界上最古老、最具象形意的文字之一,承载了数千年的历史文明。然而,在现代信息技术环境下,汉字的输入、输出和检索等方面存在一定的局限性。拼音作为汉字的一种音标表达方式,能够有效地解决这些问题。本文将为…

JS利用时间戳倒计时案例

我们在逛某宝,或者逛某东时,我们时常看到一个倒计时,时间一到就开抢,这个倒计时是如何做的呢?让我为大家介绍一下。 理性分析一下: 1.用将来时间减去现在时间就是剩余的时间 2.核心:使用将来的时…

完全背包问题 非零基础

目录 之前学过一遍,但是12月2日再练忘光光了: 忘记点1 —— 为什么每个物品要遍历k件: 忘记点2 —— 数学优化: 之前学过一遍,但是12月2日再练忘光光了: 【模板】完全背包_牛客题霸_牛客网 (nowcoder.c…

智慧公厕新风系统是什么?具体作用?

大家好,你们可曾在公厕里遇到那个臭味怪兽,闻得让人头晕目眩?别怕,我们有一把利剑,叫做“智慧公厕新风系统”!不仅是空气净化器的升级版,还有一大堆高级功能等着你来领略! 1. 风清气…

Linux常用命令——awk命令

在线Linux命令查询工具 awk 文本和数据进行处理的编程语言 补充说明 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能…

1+x网络系统建设与运维(中级)-练习3

一.设备命名 AR1 [Huawei]sysn AR1 [AR1] 同理可得,所有设备的命名如上图所示 二.VLAN LSW1 [LSW1]vlan 10 [LSW1-vlan10]q [LSW1]int g0/0/1 [LSW1-GigabitEthernet0/0/1]port link-type access [LSW1-GigabitEthernet0/0/1]port default vlan 10 [LSW1-GigabitEt…

SQL数据库知识点总结

前后顺序可以任意颠倒,不影响库中的数据关系 关系数据库的逻辑性强而物理性弱,因此关系数据库中的各条记录前后顺序可以任意颠倒,不影响库中的数据关系 一名员工可以使用多台计算机(1:m),而一…

Knowledge Review(CVPR 2021)论文解析

paper:Distilling Knowledge via Knowledge Review official implementation:https://github.com/dvlab-research/ReviewKD 前言 识蒸馏将知识从教师网络转移到学生网络,可以提高学生网络的性能,作为一种“模型压缩”的方法被…